mirror of
https://github.com/github/codeql.git
synced 2026-04-26 17:25:19 +02:00
Rust: add back getAttr to ArrayExpr
This commit is contained in:
@@ -359,7 +359,7 @@ fn get_fields(node: &AstNodeSrc) -> Vec<FieldInfo> {
|
||||
result.push(FieldInfo {
|
||||
name: "is_semicolon".to_string(),
|
||||
tp: "predicate".to_string(),
|
||||
is_many: true,
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
_ => {}
|
||||
|
||||
15
rust/ql/.generated.list
generated
15
rust/ql/.generated.list
generated
@@ -1,8 +1,8 @@
|
||||
lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 2dfc45d5b2b93b3aa226924da7f9321c2d7a20e60ac7a6a48215118f73fdb181 f1ec54884508eb1f72dcda6677f8e11b79043e906b1c7f3e408e1606e290e347
|
||||
lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 2a4a561c08eafa7dfcac45c40b1bbde65e401983be3af4e0850f016a6bb2a732 9c86adf714e681e013dc4a0d944f2aa153a143ef8a8033d87254db9ae18cd896
|
||||
lib/codeql/rust/elements/Abi.qll 4c973d28b6d628f5959d1f1cc793704572fd0acaae9a97dfce82ff9d73f73476 250f68350180af080f904cd34cb2af481c5c688dc93edf7365fd0ae99855e893
|
||||
lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be
|
||||
lib/codeql/rust/elements/ArgList.qll 661f5100f5d3ef8351452d9058b663a2a5c720eea8cf11bedd628969741486a2 28e424aac01a90fb58cd6f9f83c7e4cf379eea39e636bc0ba07efc818be71c71
|
||||
lib/codeql/rust/elements/ArrayExpr.qll 04e5710b083ce29b51e9c9cefd3fa24df5fbf79b0dbaef23b1724d7e708372e5 dd0b89075c985e67aaeb19e1750cc9301f0c1c991232d67a185797dcfe75b223
|
||||
lib/codeql/rust/elements/ArrayExpr.qll e4e7cff3518c50ec908271906dd46c1fbe9098faa1e8cd06a27f0a6e8d165ed1 fe02a4f4197f57ecd1e8e82d6c9384148ec29d8b106d7f696795b2f325e4a71b
|
||||
lib/codeql/rust/elements/ArrayListExpr.qll 451aedcecb479c385ff497588c7a07fda304fd5b873270223a4f2c804e96b245 a8cb008f6f732215623b5626c84b37b651ca01ccafb2cf4c835df35d5140c6ad
|
||||
lib/codeql/rust/elements/ArrayRepeatExpr.qll 4b7ed5be7d2caaf69f6fc0cd05b0e2416c52d547b1a73fb23d5a13007f75f4dd f6366f21cc48376b5fdf37e8c5c2b19415d4cbdeef09f33bb99cde5cb0f5b0e7
|
||||
lib/codeql/rust/elements/ArrayType.qll affd43d308200d60d08e8924cdbb2a17a827ebaa62a296e07bb9ce97451e3c4c 80589a7f79bf2ac293a027faf2589b3027a6c4a286533f2ffccad259a306a8cb
|
||||
@@ -176,7 +176,6 @@ lib/codeql/rust/elements/internal/AbiImpl.qll 01439712ecadc9dc8da6f74d2e19cee13c
|
||||
lib/codeql/rust/elements/internal/AddressableImpl.qll e01a6104980960f5708d5a0ada774ba21db9a344e33deeaf3d3239c627268c77 b8bfc711b267df305ac9fe5f6a994f051ddeca7fc95dacd76d1bae2d4fa7adde
|
||||
lib/codeql/rust/elements/internal/ArgListConstructor.qll a73685c8792ae23a2d628e7357658efb3f6e34006ff6e9661863ef116ec0b015 0bee572a046e8dfc031b1216d729843991519d94ae66280f5e795d20aea07a22
|
||||
lib/codeql/rust/elements/internal/ArgListImpl.qll 19664651c06b46530f0ae5745ccb3233afc97b9152e053761d641de6e9c62d38 40af167e571f5c255f264b3be7cc7f5ff42ec109661ca03dcee94e92f8facfc6
|
||||
lib/codeql/rust/elements/internal/ArrayExprImpl.qll b43ef2dc4b3ae6c9d89b61abe41a3723309c341fdc881d8c3264c251d669c321 667ea0b7fccda95365562e4755435af634cc043dd46fe965be0676b8883e3d2a
|
||||
lib/codeql/rust/elements/internal/ArrayExprInternal.qll 07a219b3d3fba3ff8b18e77686b2f58ab01acd99e0f5d5cad5d91af937e228f5 7528fc0e2064c481f0d6cbff3835950a044e429a2cd00c4d8442d2e132560d37
|
||||
lib/codeql/rust/elements/internal/ArrayExprInternalConstructor.qll f9756bc40beee99c5e4355bf157030b440c532dff5bdf43e848b3aa1a00fea90 39467f7f313e6f9ede1fe92375ee408098dc65291ca8ee50e36a3684a2767836
|
||||
lib/codeql/rust/elements/internal/ArrayExprInternalImpl.qll ae4488846c8309b2d4a51d54b36fce0a75107917c0b1f8af5ccf40797f570580 37838c7d6a04b95a16ed46e963d7e56def7a30b5e5ef1ab7e0dfdb5f256fa874
|
||||
@@ -419,7 +418,7 @@ lib/codeql/rust/elements/internal/YieldExprImpl.qll af184649a348ddd0be16dee9daae
|
||||
lib/codeql/rust/elements/internal/generated/Abi.qll 87e1ea6b2a8ebf60e1c69176632740e4e27fc56c3f173939b098ba376562b5fa 94b2121e71c4ec94d53a79f972c05a8484ef0d80ed638f53031e7cf4dc5343d5
|
||||
lib/codeql/rust/elements/internal/generated/Addressable.qll 96a8b45166dd035b8d2c6d36b8b67019f2d4d0b4ccff6d492677c0c87197613e d8f1ce29feafc8ff7179399fc7eac5db031a7e1a8bc6b2cd75cfce1da3132e9b
|
||||
lib/codeql/rust/elements/internal/generated/ArgList.qll 1b75b2d7dcf524eb468a0268af6293e9d17832d6bedf3feec49a535824339b57 2bcaf464454bdfdda45fbd24d063f0f1df0eb69f684197b37105adc8f72cd1ea
|
||||
lib/codeql/rust/elements/internal/generated/ArrayExpr.qll 64d194a9a9d6467d123b90f910775ffc28b6c04e44990d6a1af6d1dbb2ec5bf5 ccc6183f9e90a6c11c5f79a068003a7d63db227fa69287d3ac12d48e8af63ac7
|
||||
lib/codeql/rust/elements/internal/generated/ArrayExpr.qll 73806a0de8168b38a9436fa6b8c6d68c92eeab3d64a1ae7edfff82f871929992 7ad998cdd8f4fed226473517ad7a5765cb35608033047aad53bf8aa3969fd03b
|
||||
lib/codeql/rust/elements/internal/generated/ArrayExprInternal.qll 67a7b0fae04b11cf771727ff39a123fb2d5ce6e2d650d32478fcb33a26ed5688 15833405fa85f6abe0e5146dac283cb5a142a07f08300ccc15a1dae30ed88942
|
||||
lib/codeql/rust/elements/internal/generated/ArrayListExpr.qll f325163c2bd401286305330482bee20d060cecd24afa9e49deab7ba7e72ca056 ae3f5b303e31fc6c48b38172304ee8dcf3af2b2ba693767824ea8a944b6be0eb
|
||||
lib/codeql/rust/elements/internal/generated/ArrayRepeatExpr.qll ac2035488d5b9328f01ce2dd5bd7598e3af1cbb383ddb48b648e1e8908ea82fc 3ec910b184115fb3750692287e8039560e20bd6a5fb26ac1f9c346424d8eaa48
|
||||
@@ -520,7 +519,7 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll c808c9d84dd7800573832b
|
||||
lib/codeql/rust/elements/internal/generated/ParenExpr.qll bc0731505bfe88516205ec360582a4222d2681d11342c93e15258590ddee82f2 d4bd6e0c80cf1d63746c88d4bcb3a01d4c75732e5da09e3ebd9437ced227fb60
|
||||
lib/codeql/rust/elements/internal/generated/ParenPat.qll ce24b8f8ecbf0f204af200317405724063887257460c80cf250c39b2fdf37185 e7c87d37e1a0ca7ea03840017e1aa9ddb7f927f1f3b6396c0305b46aeee33db6
|
||||
lib/codeql/rust/elements/internal/generated/ParenType.qll 9cc954d73f8330dcac7b475f97748b63af5c8766dee9d2f2872c0a7e4c903537 c07534c8a9c683c4a9b11d490095647e420de0a0bfc23273eaf6f31b00244273
|
||||
lib/codeql/rust/elements/internal/generated/ParentChild.qll 2a2132e9df63ceeee7e2abbb6b6d9fd62856ae93d113b60ae7d8311d4c9535be b7aaa62c085e71c2dff42e7f2886770c48d964dfe45981c2857af4b9126a8a7b
|
||||
lib/codeql/rust/elements/internal/generated/ParentChild.qll 8bec00eb2527dad0c361736d318745169296e4e949fc4263790d25c3286b2f79 91b5bd23de043906d91b3d7b75cd75b9cdc77e037a2be2af75912bc285068cbc
|
||||
lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4
|
||||
lib/codeql/rust/elements/internal/generated/Path.qll 4c1c8e840ed57880e574142b081b11d7a7428a009f10e3aa8f4645e211f6b2e0 989668cf0f1bdee7557e2f97c01e41d2a56848227fed41477833f5fc1e1d35f6
|
||||
lib/codeql/rust/elements/internal/generated/PathExpr.qll 2096e3c1db22ee488a761690adabfc9cfdea501c99f7c5d96c0019cb113fc506 54245ce0449c4e263173213df01e079d5168a758503a5dbd61b25ad35a311140
|
||||
@@ -599,9 +598,11 @@ test/extractor-tests/generated/Abi/Abi.ql 7f6e7dc4af86eca3ebdc79b10373988cd0871b
|
||||
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 5b6c0d3f9c75e2cfde4fbe6dc443cb992e91925ba108664b04b88f9567322c28 01b891665f2c8a98770e4b4ac284aafc0d680dbaa10ad54a7799eda62048e21a
|
||||
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 cdf73db3b37a9b98a1c63c51bdca9691fcd16f952ce8730385240b7194c55819 8dc29fb0db5df4c4cdd87b406cea92e6e6602908d087af16037a2dec6f9204b8
|
||||
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/ArrayType/ArrayType.ql d781ea647d60218777261d82230bd85f989a4768a043e736d268363b5a777390 b5c7fa0aa1b8b1f3a82b8af7254bf20efd3477bba83ad53530959d1733636604
|
||||
test/extractor-tests/generated/ArrayType/ArrayType_getConstArg.ql b6a250873bc2d553219b8301a15bd19a4044f590085992c532a800bf3ab744cb 5e6b9dbbe2d3ea7f6fa3fba4811517a528d5eb58169b69d1b9113e1508c6e627
|
||||
|
||||
3
rust/ql/.gitattributes
generated
vendored
3
rust/ql/.gitattributes
generated
vendored
@@ -178,7 +178,6 @@
|
||||
/lib/codeql/rust/elements/internal/AddressableImpl.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/ArrayExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ArrayExprInternal.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ArrayExprInternalConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ArrayExprInternalImpl.qll linguist-generated
|
||||
@@ -602,8 +601,10 @@
|
||||
/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/ArrayType/ArrayType.ql linguist-generated
|
||||
/test/extractor-tests/generated/ArrayType/ArrayType_getConstArg.ql linguist-generated
|
||||
|
||||
@@ -111,6 +111,21 @@ module MakeCfgNodes<LocationSig Loc, InputSig<Loc> Input> {
|
||||
* Gets the number of expressions of this array expression.
|
||||
*/
|
||||
int getNumberOfExprs() { result = count(int i | exists(this.getExpr(i))) }
|
||||
|
||||
/**
|
||||
* Gets the `index`th attr of this array expression (0-based).
|
||||
*/
|
||||
Attr getAttr(int index) { result = node.getAttr(index) }
|
||||
|
||||
/**
|
||||
* Gets any of the attrs of this array expression.
|
||||
*/
|
||||
Attr getAnAttr() { result = this.getAttr(_) }
|
||||
|
||||
/**
|
||||
* Gets the number of attrs of this array expression.
|
||||
*/
|
||||
int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) }
|
||||
}
|
||||
|
||||
final private class ParentArrayListExpr extends ParentAstNode, ArrayListExpr {
|
||||
|
||||
1
rust/ql/lib/codeql/rust/elements/ArrayExpr.qll
generated
1
rust/ql/lib/codeql/rust/elements/ArrayExpr.qll
generated
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
private import internal.ArrayExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
|
||||
@@ -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 `ArrayExpr`.
|
||||
*
|
||||
@@ -6,12 +5,15 @@
|
||||
*/
|
||||
|
||||
private import codeql.rust.elements.internal.generated.ArrayExpr
|
||||
private import codeql.rust.elements.internal.generated.Raw
|
||||
private import codeql.rust.elements.internal.generated.Synth
|
||||
|
||||
/**
|
||||
* INTERNAL: This module contains the customizable definition of `ArrayExpr` and should not
|
||||
* be referenced directly.
|
||||
*/
|
||||
module Impl {
|
||||
// the following QLdoc is generated: if you need to edit it, do it in the schema file
|
||||
/**
|
||||
* The base class for array expressions. For example:
|
||||
* ```rust
|
||||
@@ -19,5 +21,18 @@ module Impl {
|
||||
* [1; 10];
|
||||
* ```
|
||||
*/
|
||||
class ArrayExpr extends Generated::ArrayExpr { }
|
||||
class ArrayExpr extends Generated::ArrayExpr {
|
||||
cached
|
||||
private Raw::ArrayExprInternal getUnderlyingEntity() {
|
||||
this = Synth::TArrayListExpr(result) or this = Synth::TArrayRepeatExpr(result)
|
||||
}
|
||||
|
||||
override Expr getExpr(int index) {
|
||||
result = Synth::convertExprFromRaw(this.getUnderlyingEntity().getExpr(index))
|
||||
}
|
||||
|
||||
override Attr getAttr(int index) {
|
||||
result = Synth::convertAttrFromRaw(this.getUnderlyingEntity().getAttr(index))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,13 +22,6 @@ module Impl {
|
||||
* ```
|
||||
*/
|
||||
class ArrayListExpr extends Generated::ArrayListExpr {
|
||||
cached
|
||||
private Raw::ArrayExprInternal getUnderlyingEntity() { this = Synth::TArrayListExpr(result) }
|
||||
|
||||
override string toString() { result = "[...]" }
|
||||
|
||||
override Expr getExpr(int index) {
|
||||
result = Synth::convertExprFromRaw(this.getUnderlyingEntity().getExpr(index))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,9 +21,6 @@ module Impl {
|
||||
* ```
|
||||
*/
|
||||
class ArrayRepeatExpr extends Generated::ArrayRepeatExpr {
|
||||
cached
|
||||
private Raw::ArrayExprInternal getUnderlyingEntity() { this = Synth::TArrayRepeatExpr(result) }
|
||||
|
||||
override string toString() {
|
||||
result =
|
||||
"[" + this.getRepeatOperand().toAbbreviatedString() + "; " +
|
||||
@@ -33,9 +30,5 @@ module Impl {
|
||||
override Expr getRepeatOperand() { result = this.getExpr(0) }
|
||||
|
||||
override Expr getRepeatLength() { result = this.getExpr(1) }
|
||||
|
||||
override Expr getExpr(int index) {
|
||||
result = Synth::convertExprFromRaw(this.getUnderlyingEntity().getExpr(index))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
private import codeql.rust.elements.internal.generated.Synth
|
||||
private import codeql.rust.elements.internal.generated.Raw
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl
|
||||
|
||||
@@ -38,5 +39,20 @@ module Generated {
|
||||
* Gets the number of expressions of this array expression.
|
||||
*/
|
||||
final int getNumberOfExprs() { result = count(int i | exists(this.getExpr(i))) }
|
||||
|
||||
/**
|
||||
* Gets the `index`th attr of this array expression (0-based).
|
||||
*/
|
||||
Attr getAttr(int index) { none() }
|
||||
|
||||
/**
|
||||
* Gets any of the attrs of this array expression.
|
||||
*/
|
||||
final Attr getAnAttr() { result = this.getAttr(_) }
|
||||
|
||||
/**
|
||||
* Gets the number of attrs of this array expression.
|
||||
*/
|
||||
final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1190,11 +1190,12 @@ private module Impl {
|
||||
}
|
||||
|
||||
private Element getImmediateChildOfArrayExpr(ArrayExpr e, int index, string partialPredicateCall) {
|
||||
exists(int b, int bExpr, int n, int nExpr |
|
||||
exists(int b, int bExpr, int n, int nExpr, int nAttr |
|
||||
b = 0 and
|
||||
bExpr = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfExpr(e, i, _)) | i) and
|
||||
n = bExpr and
|
||||
nExpr = n + 1 + max(int i | i = -1 or exists(e.getExpr(i)) | i) and
|
||||
nAttr = nExpr + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and
|
||||
(
|
||||
none()
|
||||
or
|
||||
@@ -1202,6 +1203,9 @@ private module Impl {
|
||||
or
|
||||
result = e.getExpr(index - n) and
|
||||
partialPredicateCall = "Expr(" + (index - n).toString() + ")"
|
||||
or
|
||||
result = e.getAttr(index - nExpr) and
|
||||
partialPredicateCall = "Attr(" + (index - nExpr).toString() + ")"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
| gen_array_list_expr.rs:5:5:5:13 | [...] | getNumberOfExprs: | 3 |
|
||||
| gen_array_list_expr.rs:5:5:5:13 | [...] | getNumberOfExprs: | 3 | getNumberOfAttrs: | 0 |
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
import codeql.rust.elements
|
||||
import TestUtils
|
||||
|
||||
from ArrayListExpr x, int getNumberOfExprs
|
||||
from ArrayListExpr x, int getNumberOfExprs, int getNumberOfAttrs
|
||||
where
|
||||
toBeTested(x) and
|
||||
not x.isUnknown() and
|
||||
getNumberOfExprs = x.getNumberOfExprs()
|
||||
select x, "getNumberOfExprs:", getNumberOfExprs
|
||||
getNumberOfExprs = x.getNumberOfExprs() and
|
||||
getNumberOfAttrs = x.getNumberOfAttrs()
|
||||
select x, "getNumberOfExprs:", getNumberOfExprs, "getNumberOfAttrs:", getNumberOfAttrs
|
||||
|
||||
7
rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getAttr.ql
generated
Normal file
7
rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getAttr.ql
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
// 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)
|
||||
@@ -1 +1 @@
|
||||
| gen_array_repeat_expr.rs:5:5:5:11 | [1; 10] | getNumberOfExprs: | 2 | 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] | 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 |
|
||||
|
||||
@@ -2,12 +2,15 @@
|
||||
import codeql.rust.elements
|
||||
import TestUtils
|
||||
|
||||
from ArrayRepeatExpr x, int getNumberOfExprs, Expr getRepeatOperand, Expr getRepeatLength
|
||||
from
|
||||
ArrayRepeatExpr x, int getNumberOfExprs, int getNumberOfAttrs, Expr getRepeatOperand,
|
||||
Expr getRepeatLength
|
||||
where
|
||||
toBeTested(x) and
|
||||
not x.isUnknown() and
|
||||
getNumberOfExprs = x.getNumberOfExprs() and
|
||||
getNumberOfAttrs = x.getNumberOfAttrs() and
|
||||
getRepeatOperand = x.getRepeatOperand() and
|
||||
getRepeatLength = x.getRepeatLength()
|
||||
select x, "getNumberOfExprs:", getNumberOfExprs, "getRepeatOperand:", getRepeatOperand,
|
||||
"getRepeatLength:", getRepeatLength
|
||||
select x, "getNumberOfExprs:", getNumberOfExprs, "getNumberOfAttrs:", getNumberOfAttrs,
|
||||
"getRepeatOperand:", getRepeatOperand, "getRepeatLength:", getRepeatLength
|
||||
|
||||
7
rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getAttr.ql
generated
Normal file
7
rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getAttr.ql
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
// 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)
|
||||
@@ -565,6 +565,7 @@ class ArrayExpr(Expr):
|
||||
```
|
||||
"""
|
||||
exprs: list[Expr] | child
|
||||
attrs: list[Attr] | child
|
||||
|
||||
@synth.from_class(ArrayExprInternal)
|
||||
class ArrayListExpr(ArrayExpr):
|
||||
|
||||
Reference in New Issue
Block a user