Rust: regenerate code

This commit is contained in:
Arthur Baars
2024-10-01 15:18:17 +02:00
parent 69f0e8bcf7
commit 6ede20cccc
20 changed files with 472 additions and 13 deletions

View File

@@ -1,2 +1,2 @@
mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7
top.rs 855f5f0639dfafd8603c9b842f6470ca6d1214bb72391890a1de64db2adebba1 855f5f0639dfafd8603c9b842f6470ca6d1214bb72391890a1de64db2adebba1
top.rs 00321b829ffca674c66daa86c003b9d5f8c64fef42873d03fa677cfa479039a2 00321b829ffca674c66daa86c003b9d5f8c64fef42873d03fa677cfa479039a2

View File

@@ -1032,6 +1032,110 @@ impl From<trap::Label<Lifetime>> for trap::Label<Locatable> {
}
}
#[derive(Debug)]
pub struct MacroItems {
pub id: trap::TrapId<MacroItems>,
pub items: Vec<trap::Label<Item>>,
}
impl trap::TrapEntry for MacroItems {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("macro_items", vec![id.into()]);
for (i, v) in self.items.into_iter().enumerate() {
out.add_tuple("macro_items_items", vec![id.into(), i.into(), v.into()]);
}
}
}
impl trap::TrapClass for MacroItems {
fn class_name() -> &'static str { "MacroItems" }
}
impl From<trap::Label<MacroItems>> for trap::Label<AstNode> {
fn from(value: trap::Label<MacroItems>) -> Self {
// SAFETY: this is safe because in the dbscheme MacroItems is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<MacroItems>> for trap::Label<Element> {
fn from(value: trap::Label<MacroItems>) -> Self {
// SAFETY: this is safe because in the dbscheme MacroItems is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<MacroItems>> for trap::Label<Locatable> {
fn from(value: trap::Label<MacroItems>) -> Self {
// SAFETY: this is safe because in the dbscheme MacroItems is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct MacroStmts {
pub id: trap::TrapId<MacroStmts>,
pub expr: Option<trap::Label<Expr>>,
pub statements: Vec<trap::Label<Stmt>>,
}
impl trap::TrapEntry for MacroStmts {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("macro_stmts", vec![id.into()]);
if let Some(v) = self.expr {
out.add_tuple("macro_stmts_exprs", vec![id.into(), v.into()]);
}
for (i, v) in self.statements.into_iter().enumerate() {
out.add_tuple("macro_stmts_statements", vec![id.into(), i.into(), v.into()]);
}
}
}
impl trap::TrapClass for MacroStmts {
fn class_name() -> &'static str { "MacroStmts" }
}
impl From<trap::Label<MacroStmts>> for trap::Label<AstNode> {
fn from(value: trap::Label<MacroStmts>) -> Self {
// SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<MacroStmts>> for trap::Label<Element> {
fn from(value: trap::Label<MacroStmts>) -> Self {
// SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<MacroStmts>> for trap::Label<Locatable> {
fn from(value: trap::Label<MacroStmts>) -> Self {
// SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct MatchArm {
pub id: trap::TrapId<MatchArm>,

View File

@@ -67,8 +67,10 @@ lib/codeql/rust/elements/LoopExpr.qll 58ade0bc4a01a1cc361363682fde3ea56f4c5fbb4b
lib/codeql/rust/elements/MacroCall.qll 16933db15c6c0dbb717ef442f751ad8f63c444f36a12f8d56b8a05a3e5f71d1b ac05cbf50e4b06f39f58817cddbeac6f804c2d1e4f60956a960d63d495e7183d
lib/codeql/rust/elements/MacroDef.qll acb39275a1a3257084314a46ad4d8477946130f57e401c70c5949ad6aafc5c5f 6a8a8db12a3ec345fede51ca36e8c6acbdce58c5144388bb94f0706416fa152a
lib/codeql/rust/elements/MacroExpr.qll ea9fed13f610bab1a2c4541c994510e0cb806530b60beef0d0c36b23e3b620f0 ad11a6bbd3a229ad97a16049cc6b0f3c8740f9f75ea61bbf4eebb072db9b12d2
lib/codeql/rust/elements/MacroItems.qll 4acf8e5ab8f84dc8fae442d52a29266be2f1e7160120bb1dd52238b3d62b4cab 0d6e25bbf1f3082b739bb846d7c3ef21a58c79e6a65b72272a00cffc3d32aa47
lib/codeql/rust/elements/MacroPat.qll dbf193b4fb544ac0b5a7dcfc31a6652de7239b6e643ff15b05868b2c142e940c 19b45c0a1eb1198e450c05d564b5d4aa0d6da29e7db84b9521eadf901e20a932
lib/codeql/rust/elements/MacroRules.qll a94535506798077043b9c1470992ac4310bf67bcce5f722080886d1b3e6d90d1 bd8e08a7171991abc85100b45267631e66d1b332caf1e5882cd17caee5cf18a3
lib/codeql/rust/elements/MacroStmts.qll 66b3e877c4e3f8ef552152c92188aae7d5901a7b2e21dec581a61ee390be2fbc cc535cb6afb29783be37b1647d3267dd693c3434d42e1ab561d3a6a74ce20cfc
lib/codeql/rust/elements/MacroType.qll e5a153643e49a6be41483ad944550a030e0500764947b4e328cef6fa08c4fbd4 a42332c0a9c5cf7317fc49f3e1049e7751004fcc3efa056bbe058a8bfa2ef0cb
lib/codeql/rust/elements/MatchArm.qll c39fd6cc0da24b1ff8d1e42835bcfee7695ad13580e3c7c50acd7c881b1cd894 62a31d2bd125e6aaebefc406e541a641271d3c497a377959f94dd4735b2bfbf8
lib/codeql/rust/elements/MatchArmList.qll e6c48fd7419d88e996b82eb45e4aa2686dfd079b283b02be7710192fb2cb93a0 0ec63a0ca56f5f7f80093fd3e77b198b74c6289e67be55dc6a4deb610753c7bd
@@ -274,10 +276,14 @@ lib/codeql/rust/elements/internal/MacroDefConstructor.qll 382a3bdf46905d112ee491
lib/codeql/rust/elements/internal/MacroDefImpl.qll f26e787ffd43e8cb079db01eba04412dbf32c338938acf1bc09a2f094bbdfdfe 044f43bc94fe4b6df22afae32e9f039d1d0d9e85ad9f24b6388be71211c37ce5
lib/codeql/rust/elements/internal/MacroExprConstructor.qll b12edb21ea189a1b28d96309c69c3d08e08837621af22edd67ff9416c097d2df d35bc98e7b7b5451930214c0d93dce33a2c7b5b74f36bf99f113f53db1f19c14
lib/codeql/rust/elements/internal/MacroExprImpl.qll 92dd9f658a85ae407e055f090385f451084de59190d8a00c7e1fba453c3eced4 89d544634fecdbead2ff06a26fc8132e127dab07f38b9322fa14dc55657b9f1a
lib/codeql/rust/elements/internal/MacroItemsConstructor.qll 8e9ab7ec1e0f50a22605d4e993f99a85ca8059fbb506d67bc8f5a281af367b05 2602f9db31ea0c48192c3dde3bb5625a8ed1cae4cd3408729b9e09318d5bd071
lib/codeql/rust/elements/internal/MacroItemsImpl.qll b20e9d0ba72de335ae1df33318339c9546c7f4c7ff25b3bf6eec884a2faa33bd 3bb159223eecb566004ce27457d5d97cd676f632be14b0411ff228a1d4e8e107
lib/codeql/rust/elements/internal/MacroPatConstructor.qll 24744c1bbe21c1d249a04205fb09795ae38ed106ba1423e86ccbc5e62359eaa2 4fac3f731a1ffd87c1230d561c5236bd28dcde0d1ce0dcd7d7a84ba393669d4a
lib/codeql/rust/elements/internal/MacroPatImpl.qll 7470e2d88c38c7300a64986f058ba92bb22b4945438e2e0e268f180c4f267b71 c1507df74fc4c92887f3e0a4f857f54b61f174ffae5b1af6fb70f466175d658b
lib/codeql/rust/elements/internal/MacroRulesConstructor.qll dc04726ad59915ec980501c4cd3b3d2ad774f454ddbf138ff5808eba6bd63dea 8d6bf20feb850c47d1176237027ef131f18c5cbb095f6ab8b3ec58cea9bce856
lib/codeql/rust/elements/internal/MacroRulesImpl.qll 10c03adfb63ee7a4348ff5cffc6ef5300a531b048f28811a51e940b053e69f68 2498bd64aeaea9849c086abeaa6c248e4ce41b4436155f4bd4840965976d5d54
lib/codeql/rust/elements/internal/MacroStmtsConstructor.qll c293815cd69c002ba6de1db6018672654420f3f8bdd143f9d0c620adddd2be02 d376f8f07661a8cad1b10039076fd7fca353dcacf3ca40ed6507b8c874e849ca
lib/codeql/rust/elements/internal/MacroStmtsImpl.qll 7ce09c93fedbb6453fccbc081e7ec03d2e2a088c8ff3b27e28794258ac6ff553 d48681d5ed630a1b8d563d58fdb91aa32a73e3b21420d986c8e5415c9f80280f
lib/codeql/rust/elements/internal/MacroTypeConstructor.qll 0a23573a6f69b38f3d7470050b16197601d67bdd5a4b1a43a155b0b99ccdf6b5 19b623962e8e1f73e55e3ed9712d2a3fe84b9510b99062173902feb2458ec12a
lib/codeql/rust/elements/internal/MacroTypeImpl.qll b8711279f09f521b05bb67568c089271b7913f863ee64dfdeec2c502de2cbdc8 51bd9d3a2fb2065bce7b193b485e225ca5c8ba2029e60cab427d43a90baf0880
lib/codeql/rust/elements/internal/MatchArmConstructor.qll b41c1d5822d54127ce376ef62c6a5fa60e11697319fc7d9c9c54fd313d784a93 96cca80e5684e5893c0e9c0dff365ef8ad9e15ff648c9969ba42d91f95abea05
@@ -512,8 +518,10 @@ lib/codeql/rust/elements/internal/generated/LoopExpr.qll 22b755dfaf238ecea722c0c
lib/codeql/rust/elements/internal/generated/MacroCall.qll 8b49d44e6aeac26dc2fc4b9ba03c482c65ebf0cba089d16f9d65e784e48ccbb0 9ecf6e278007adcbdc42ed1c10e7b1c0652b6c64738b780d256c9326afa3b393
lib/codeql/rust/elements/internal/generated/MacroDef.qll e9b3f07ba41aa12a8e0bd6ec1437b26a6c363065ce134b6d059478e96c2273a6 87470dea99da1a6afb3a19565291f9382e851ba864b50a995ac6f29589efbd70
lib/codeql/rust/elements/internal/generated/MacroExpr.qll 03a1daa41866f51e479ac20f51f8406d04e9946b24f3875e3cf75a6b172c3d35 1ae8ca0ee96bd2be32575d87c07cc999a6ff7770151b66c0e3406f9454153786
lib/codeql/rust/elements/internal/generated/MacroItems.qll ec02912230762f2759c3ed97ff52fded62ed14fb68d0807c8085a85152a5d4b1 c9cc4f8f0a1d63787995dde173f1bc8ac25351faa66b1d323e2ac1c894c9be85
lib/codeql/rust/elements/internal/generated/MacroPat.qll 9e927e09d47029a3025eaad271c975e73479a80ea933c921381b6c9d751f2866 bdf5c58ca27743eb2e2dae2aeea3f3fc21f8a4f98fe1001598876455c88e8f69
lib/codeql/rust/elements/internal/generated/MacroRules.qll 4fbd94f22b5ee0f3e5aaae39c2b9a5e9b7bf878a1017811ca589942f6de92843 49fb69543ee867bae196febea6918e621f335afdf4d3ccbf219965b37c7537b1
lib/codeql/rust/elements/internal/generated/MacroStmts.qll 502cf5490259edaefeda30d00371a9d58872e8bfcd82fa4a30a2a1c510662949 91672ea8c4c0e1e8ef6c9628e21169dfc873da4424aaf544a3cb2b9a2c523b28
lib/codeql/rust/elements/internal/generated/MacroType.qll c462824df4a002956c036966d15cd0bce206e664888f8d0c7834dedb38b3c0bf 947480f07c40128ef3d00ad4c3a29a685472b3e20a661680c22f6bb318205ed1
lib/codeql/rust/elements/internal/generated/MatchArm.qll 8fb740a0f2e308782d9cf390672969cd7cf6e698e5b847fb02ae3fa6c205646f 42bfe8dd94fc24ec925fbd44016df111600f99d1216c9a698631373bb6048830
lib/codeql/rust/elements/internal/generated/MatchArmList.qll 13362680c037fe83fef4653562cc10a4429078316b5ec7c47b076336cf4aca2e 41c674293c13eceaca62134ae0c6778541f6a5201cbc5c146f0ba01b898dc267
@@ -533,7 +541,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 ad728d69b3ef9555d71db2274b04a5ba99b4f815120c55032c57d077e0c954ca 64c6406626a14ed3052d3996cc47fc91e435175bd982440d948416cf878400fd
lib/codeql/rust/elements/internal/generated/ParentChild.qll 3a14261d30beea704042dea144ef1972a93b8384eb258c6f8ff6c8254264c0e2 9fbf1176a5822728097e4c33dfefc057e381c662058b339007bea7273b6b27c6
lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4
lib/codeql/rust/elements/internal/generated/Path.qll 299abce24762a5ab023f3cf1ab9718b83047e171aed42a8092e7a155914b1657 db1a23d18640c548f08c9f94823838b5e019ac85877c7b15df2d1493d1846572
lib/codeql/rust/elements/internal/generated/PathExpr.qll 17cdb0a7393258a207450f08e37178fc9d35d167f064ba6015be94246f3dc933 a75fdd280aff6d87e083a92030e041c2eb52b57cf7151d4a6989fcd31d6a64bf
@@ -545,7 +553,7 @@ lib/codeql/rust/elements/internal/generated/PtrType.qll 5f12b6ad29b4e5ce51c205e2
lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll dc03515d678ba052c2ff2dd9f0883e0bce54cac740ba9a15e5173f292c1b6971 dc03515d678ba052c2ff2dd9f0883e0bce54cac740ba9a15e5173f292c1b6971
lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9
lib/codeql/rust/elements/internal/generated/RangePat.qll efd93730de217cf50dcba5875595263a5eadf9f7e4e1272401342a094d158614 229b251b3d118932e31e78ac4dfb75f48b766f240f20d436062785606d44467b
lib/codeql/rust/elements/internal/generated/Raw.qll 783c3d04b798c0a5281baf88aa3ada406492e6e6b8ff41dac658d52c88f95c46 e69891409fc89f0a3a199feb6f1a734bfdd862239a5f6794de0ee811e69fab04
lib/codeql/rust/elements/internal/generated/Raw.qll 32faaa3ad1bd2e1bc0d588caed9ef629f1bd3f2cef3d43a2edea7b3c7d14467d a64b8cf08ef39876a7b3e33555c3305cba320d80acc8dead5ec8be6dd1fe225f
lib/codeql/rust/elements/internal/generated/RecordExpr.qll eb6cb662e463f9260efae1a6ce874fa781172063b916ef1963f861e9942d308d 1a21cbccc8f3799ff13281e822818ebfb21d81591720a427cac3625512cb9d40
lib/codeql/rust/elements/internal/generated/RecordExprField.qll 7e9f8663d3b74ebbc9603b10c9912f082febba6bd73d344b100bbd3edf837802 fbe6b578e7fd5d5a6f21bbb8c388957ab7210a6a249ec71510a50fb35b319ea1
lib/codeql/rust/elements/internal/generated/RecordExprFieldList.qll 179a97211fe7aa6265085d4d54115cdbc0e1cd7c9b2135591e8f36d6432f13d3 dd44bbbc1e83a1ed3a587afb729d7debf7aeb7b63245de181726af13090e50c0
@@ -570,8 +578,8 @@ lib/codeql/rust/elements/internal/generated/Static.qll cae5313e08e4af44c46b25802
lib/codeql/rust/elements/internal/generated/Stmt.qll 8473ff532dd5cc9d7decaddcd174b94d610f6ca0aec8e473cc051dad9f3db917 6ef7d2b5237c2dbdcacbf7d8b39109d4dc100229f2b28b5c9e3e4fbf673ba72b
lib/codeql/rust/elements/internal/generated/StmtList.qll a667193e32341e17400867c6e359878c4e645ef9f5f4d97676afc0283a33a026 a320ed678ee359302e2fc1b70a9476705cd616fcfa44a499d32f0c7715627f73
lib/codeql/rust/elements/internal/generated/Struct.qll 4d57f0db12dc7ad3e31e750a24172ef1505406b4dab16386af0674bd18bf8f4b 1a73c83df926b996f629316f74c61ea775be04532ab61b56af904223354f033e
lib/codeql/rust/elements/internal/generated/Synth.qll 99fa143232f2cfb1ef3f6ed6a51afa634c336361105e37719ce11ca6c74de8ee b3b77e1bdea36022b3be7cef000e7113059eb8b2b1afec26ae1d62e84259143b
lib/codeql/rust/elements/internal/generated/SynthConstructors.qll 518b68ccf6d0791bc0c141486261108bb1723e37743fc7f8e4167a1d61660531 518b68ccf6d0791bc0c141486261108bb1723e37743fc7f8e4167a1d61660531
lib/codeql/rust/elements/internal/generated/Synth.qll 2ab340e385c8c759132040f8317480e29b881fc06652d9ac79d3a6c7ba226e43 a302504aff25f9c8da4aa6a0d83eb7daa7a18496cf71654be925dda460c28b61
lib/codeql/rust/elements/internal/generated/SynthConstructors.qll 5d30b6d4f36791637f250734ee38820102c64f196454e20f79e30097da1a8e20 5d30b6d4f36791637f250734ee38820102c64f196454e20f79e30097da1a8e20
lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b
lib/codeql/rust/elements/internal/generated/TokenTree.qll 8577c2b097c1be2f0f7daa5acfcf146f78674a424d99563e08a84dd3e6d91b46 d2f30764e84dbfc0a6a5d3d8a5f935cd432413688cb32da9c94e420fbc10665c
lib/codeql/rust/elements/internal/generated/Trait.qll 32bdbb4dc9f03488195a90320a947013135cd2fae1b9d62b4f71ed9a4e39a967 5dab0fbec64698bf3cdae04879d3d1665cf82386b7b030ed69e6b20776ffa9fc
@@ -605,7 +613,7 @@ lib/codeql/rust/elements/internal/generated/WhileExpr.qll fec8a9211b82a80601bf73
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 926e6e5f994ef7fcd04854c4d69004d7bfd81950e132c9d3d501b4b2420db222 926e6e5f994ef7fcd04854c4d69004d7bfd81950e132c9d3d501b4b2420db222
lib/codeql/rust/elements.qll c4c6906be828eb2fa9cc5dcaf4df197a45c8e1c606f8665ca9e58c24715fd077 c4c6906be828eb2fa9cc5dcaf4df197a45c8e1c606f8665ca9e58c24715fd077
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
@@ -820,6 +828,7 @@ test/extractor-tests/generated/MacroDef/MacroDef_getName.ql 6bc8a17804f23782e98f
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/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
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 0742faf18179fa34e0f43361e9e4b807bfc242d232f6b3664a35e138a47d39c5 10e1cf45f32a27cb46bd61f5dd45416e2c0c9f25e880f6d213597a7d96e19103
@@ -827,6 +836,7 @@ test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql 7de501c724e34655
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/MacroStmts/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
test/extractor-tests/generated/MacroType/MacroType.ql 408327fdb4d7cf096536457401cc280f83cd7e4f6fa9aebd65e64031f6c119cf 0c502d25194ab96eb068a85e3f57a9217510a951fa923e9d7a20fd75412bd6da
test/extractor-tests/generated/MacroType/MacroType_getMacroCall.ql 565be7a72670218d7999d3f6cec4e704b754c217186243f1b24c334589fa82e2 ba413c712783320188800e2a78738b09c40fe9a6305c08d9e67e971a8fca96ee
test/extractor-tests/generated/MatchArm/MatchArm.ql 512aa404c94ba40b859564f07e9dffe6a5e687fafb039556e9145f4f3742981c 529f96e38cede8a26054f8981d4ba1d189c17d14d0f92d622eb20acd8f3d7e5d

10
rust/ql/.gitattributes generated vendored
View File

@@ -69,8 +69,10 @@
/lib/codeql/rust/elements/MacroCall.qll linguist-generated
/lib/codeql/rust/elements/MacroDef.qll linguist-generated
/lib/codeql/rust/elements/MacroExpr.qll linguist-generated
/lib/codeql/rust/elements/MacroItems.qll linguist-generated
/lib/codeql/rust/elements/MacroPat.qll linguist-generated
/lib/codeql/rust/elements/MacroRules.qll linguist-generated
/lib/codeql/rust/elements/MacroStmts.qll linguist-generated
/lib/codeql/rust/elements/MacroType.qll linguist-generated
/lib/codeql/rust/elements/MatchArm.qll linguist-generated
/lib/codeql/rust/elements/MatchArmList.qll linguist-generated
@@ -276,10 +278,14 @@
/lib/codeql/rust/elements/internal/MacroDefImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/MacroExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/MacroExprImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/MacroItemsConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/MacroItemsImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/MacroPatConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/MacroPatImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/MacroRulesConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/MacroRulesImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/MacroStmtsConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/MacroStmtsImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/MacroTypeConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/MacroTypeImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/MatchArmConstructor.qll linguist-generated
@@ -514,8 +520,10 @@
/lib/codeql/rust/elements/internal/generated/MacroCall.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/MacroDef.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/MacroExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/MacroItems.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/MacroPat.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/MacroRules.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/MacroStmts.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/MacroType.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/MatchArm.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/MatchArmList.qll linguist-generated
@@ -822,6 +830,7 @@
/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/MISSING_SOURCE.txt 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
@@ -829,6 +838,7 @@
/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/MacroStmts/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/MacroType/MacroType.ql linguist-generated
/test/extractor-tests/generated/MacroType/MacroType_getMacroCall.ql linguist-generated
/test/extractor-tests/generated/MatchArm/MatchArm.ql linguist-generated

View File

@@ -72,8 +72,10 @@ import codeql.rust.elements.LoopExpr
import codeql.rust.elements.MacroCall
import codeql.rust.elements.MacroDef
import codeql.rust.elements.MacroExpr
import codeql.rust.elements.MacroItems
import codeql.rust.elements.MacroPat
import codeql.rust.elements.MacroRules
import codeql.rust.elements.MacroStmts
import codeql.rust.elements.MacroType
import codeql.rust.elements.MatchArm
import codeql.rust.elements.MatchArmList

View File

@@ -0,0 +1,10 @@
// generated by codegen, do not edit
/**
* This module provides the public class `MacroItems`.
*/
private import internal.MacroItemsImpl
import codeql.rust.elements.AstNode
import codeql.rust.elements.Item
final class MacroItems = Impl::MacroItems;

View File

@@ -0,0 +1,11 @@
// generated by codegen, do not edit
/**
* This module provides the public class `MacroStmts`.
*/
private import internal.MacroStmtsImpl
import codeql.rust.elements.AstNode
import codeql.rust.elements.Expr
import codeql.rust.elements.Stmt
final class MacroStmts = Impl::MacroStmts;

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `MacroItems` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `MacroItems` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructMacroItems(Raw::MacroItems id) { any() }

View File

@@ -0,0 +1,16 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module provides a hand-modifiable wrapper around the generated class `MacroItems`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.MacroItems
/**
* INTERNAL: This module contains the customizable definition of `MacroItems` and should not
* be referenced directly.
*/
module Impl {
class MacroItems extends Generated::MacroItems { }
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `MacroStmts` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `MacroStmts` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructMacroStmts(Raw::MacroStmts id) { any() }

View File

@@ -0,0 +1,16 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module provides a hand-modifiable wrapper around the generated class `MacroStmts`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.MacroStmts
/**
* INTERNAL: This module contains the customizable definition of `MacroStmts` and should not
* be referenced directly.
*/
module Impl {
class MacroStmts extends Generated::MacroStmts { }
}

View File

@@ -0,0 +1,44 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `MacroItems`.
* 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
import codeql.rust.elements.Item
/**
* INTERNAL: This module contains the fully generated definition of `MacroItems` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::MacroItems` class directly.
* Use the subclass `MacroItems`, where the following predicates are available.
*/
class MacroItems extends Synth::TMacroItems, AstNodeImpl::AstNode {
override string getAPrimaryQlClass() { result = "MacroItems" }
/**
* Gets the `index`th item of this macro items (0-based).
*/
Item getItem(int index) {
result =
Synth::convertItemFromRaw(Synth::convertMacroItemsToRaw(this)
.(Raw::MacroItems)
.getItem(index))
}
/**
* Gets any of the items of this macro items.
*/
final Item getAnItem() { result = this.getItem(_) }
/**
* Gets the number of items of this macro items.
*/
final int getNumberOfItems() { result = count(int i | exists(this.getItem(i))) }
}
}

View File

@@ -0,0 +1,58 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `MacroStmts`.
* 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
import codeql.rust.elements.Expr
import codeql.rust.elements.Stmt
/**
* INTERNAL: This module contains the fully generated definition of `MacroStmts` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::MacroStmts` class directly.
* Use the subclass `MacroStmts`, where the following predicates are available.
*/
class MacroStmts extends Synth::TMacroStmts, AstNodeImpl::AstNode {
override string getAPrimaryQlClass() { result = "MacroStmts" }
/**
* Gets the expression of this macro statements, if it exists.
*/
Expr getExpr() {
result =
Synth::convertExprFromRaw(Synth::convertMacroStmtsToRaw(this).(Raw::MacroStmts).getExpr())
}
/**
* Holds if `getExpr()` exists.
*/
final predicate hasExpr() { exists(this.getExpr()) }
/**
* Gets the `index`th statement of this macro statements (0-based).
*/
Stmt getStatement(int index) {
result =
Synth::convertStmtFromRaw(Synth::convertMacroStmtsToRaw(this)
.(Raw::MacroStmts)
.getStatement(index))
}
/**
* Gets any of the statements of this macro statements.
*/
final Stmt getAStatement() { result = this.getStatement(_) }
/**
* Gets the number of statements of this macro statements.
*/
final int getNumberOfStatements() { result = count(int i | exists(this.getStatement(i))) }
}
}

View File

@@ -398,6 +398,43 @@ private module Impl {
)
}
private Element getImmediateChildOfMacroItems(MacroItems e, int index, string partialPredicateCall) {
exists(int b, int bAstNode, int n, int nItem |
b = 0 and
bAstNode = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAstNode(e, i, _)) | i) and
n = bAstNode and
nItem = n + 1 + max(int i | i = -1 or exists(e.getItem(i)) | i) and
(
none()
or
result = getImmediateChildOfAstNode(e, index - b, partialPredicateCall)
or
result = e.getItem(index - n) and
partialPredicateCall = "Item(" + (index - n).toString() + ")"
)
)
}
private Element getImmediateChildOfMacroStmts(MacroStmts e, int index, string partialPredicateCall) {
exists(int b, int bAstNode, int n, int nExpr, int nStatement |
b = 0 and
bAstNode = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAstNode(e, i, _)) | i) and
n = bAstNode and
nExpr = n + 1 and
nStatement = nExpr + 1 + max(int i | i = -1 or exists(e.getStatement(i)) | i) and
(
none()
or
result = getImmediateChildOfAstNode(e, index - b, partialPredicateCall)
or
index = n and result = e.getExpr() and partialPredicateCall = "Expr()"
or
result = e.getStatement(index - nExpr) and
partialPredicateCall = "Statement(" + (index - nExpr).toString() + ")"
)
)
}
private Element getImmediateChildOfMatchArm(MatchArm e, int index, string partialPredicateCall) {
exists(int b, int bAstNode, int n, int nAttr, int nExpr, int nGuard, int nPat |
b = 0 and
@@ -3435,6 +3472,10 @@ private module Impl {
or
result = getImmediateChildOfLifetime(e, index, partialAccessor)
or
result = getImmediateChildOfMacroItems(e, index, partialAccessor)
or
result = getImmediateChildOfMacroStmts(e, index, partialAccessor)
or
result = getImmediateChildOfMatchArm(e, index, partialAccessor)
or
result = getImmediateChildOfMatchArmList(e, index, partialAccessor)

View File

@@ -329,6 +329,35 @@ module Raw {
string getText() { lifetime_texts(this, result) }
}
/**
* INTERNAL: Do not use.
*/
class MacroItems extends @macro_items, AstNode {
override string toString() { result = "MacroItems" }
/**
* Gets the `index`th item of this macro items (0-based).
*/
Item getItem(int index) { macro_items_items(this, index, result) }
}
/**
* INTERNAL: Do not use.
*/
class MacroStmts extends @macro_stmts, AstNode {
override string toString() { result = "MacroStmts" }
/**
* Gets the expression of this macro statements, if it exists.
*/
Expr getExpr() { macro_stmts_exprs(this, result) }
/**
* Gets the `index`th statement of this macro statements (0-based).
*/
Stmt getStatement(int index) { macro_stmts_statements(this, index, result) }
}
/**
* INTERNAL: Do not use.
* A match arm. For example:

View File

@@ -250,6 +250,10 @@ module Synth {
* INTERNAL: Do not use.
*/
TMacroExpr(Raw::MacroExpr id) { constructMacroExpr(id) } or
/**
* INTERNAL: Do not use.
*/
TMacroItems(Raw::MacroItems id) { constructMacroItems(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -258,6 +262,10 @@ module Synth {
* INTERNAL: Do not use.
*/
TMacroRules(Raw::MacroRules id) { constructMacroRules(id) } or
/**
* INTERNAL: Do not use.
*/
TMacroStmts(Raw::MacroStmts id) { constructMacroStmts(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -595,13 +603,13 @@ module Synth {
TAbi or TArgList or TAssocItem or TAssocItemList or TAttr or TClosureBinder or TExpr or
TExternItem or TExternItemList or TFieldList or TFormatArgsArg or TGenericArg or
TGenericArgList or TGenericParam or TGenericParamList or TItemList or TLabel or TLetElse or
TLifetime or TMatchArm or TMatchArmList or TMatchGuard or TMeta or TName or TNameRef or
TParam or TParamList or TPat or TPath or TPathSegment or TRecordExprField or
TRecordExprFieldList or TRecordField or TRecordPatField or TRecordPatFieldList or TRename or
TRetType or TReturnTypeSyntax or TSelfParam or TSourceFile or TStmt or TStmtList or
TToken or TTokenTree or TTupleField or TTypeBound or TTypeBoundList or TTypeRef or
TUseTree or TUseTreeList or TVariant or TVariantList or TVisibility or TWhereClause or
TWherePred;
TLifetime or TMacroItems or TMacroStmts or TMatchArm or TMatchArmList or TMatchGuard or
TMeta or TName or TNameRef or TParam or TParamList or TPat or TPath or TPathSegment or
TRecordExprField or TRecordExprFieldList or TRecordField or TRecordPatField or
TRecordPatFieldList or TRename or TRetType or TReturnTypeSyntax or TSelfParam or
TSourceFile or TStmt or TStmtList or TToken or TTokenTree or TTupleField or TTypeBound or
TTypeBoundList or TTypeRef or TUseTree or TUseTreeList or TVariant or TVariantList or
TVisibility or TWhereClause or TWherePred;
/**
* INTERNAL: Do not use.
@@ -1032,6 +1040,12 @@ module Synth {
*/
TMacroExpr convertMacroExprFromRaw(Raw::Element e) { result = TMacroExpr(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TMacroItems`, if possible.
*/
TMacroItems convertMacroItemsFromRaw(Raw::Element e) { result = TMacroItems(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TMacroPat`, if possible.
@@ -1044,6 +1058,12 @@ module Synth {
*/
TMacroRules convertMacroRulesFromRaw(Raw::Element e) { result = TMacroRules(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TMacroStmts`, if possible.
*/
TMacroStmts convertMacroStmtsFromRaw(Raw::Element e) { result = TMacroStmts(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TMacroType`, if possible.
@@ -1591,6 +1611,10 @@ module Synth {
or
result = convertLifetimeFromRaw(e)
or
result = convertMacroItemsFromRaw(e)
or
result = convertMacroStmtsFromRaw(e)
or
result = convertMatchArmFromRaw(e)
or
result = convertMatchArmListFromRaw(e)
@@ -2302,6 +2326,12 @@ module Synth {
*/
Raw::Element convertMacroExprToRaw(TMacroExpr e) { e = TMacroExpr(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TMacroItems` to a raw DB element, if possible.
*/
Raw::Element convertMacroItemsToRaw(TMacroItems e) { e = TMacroItems(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TMacroPat` to a raw DB element, if possible.
@@ -2314,6 +2344,12 @@ module Synth {
*/
Raw::Element convertMacroRulesToRaw(TMacroRules e) { e = TMacroRules(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TMacroStmts` to a raw DB element, if possible.
*/
Raw::Element convertMacroStmtsToRaw(TMacroStmts e) { e = TMacroStmts(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TMacroType` to a raw DB element, if possible.
@@ -2861,6 +2897,10 @@ module Synth {
or
result = convertLifetimeToRaw(e)
or
result = convertMacroItemsToRaw(e)
or
result = convertMacroStmtsToRaw(e)
or
result = convertMatchArmToRaw(e)
or
result = convertMatchArmListToRaw(e)

View File

@@ -62,8 +62,10 @@ import codeql.rust.elements.internal.LoopExprConstructor
import codeql.rust.elements.internal.MacroCallConstructor
import codeql.rust.elements.internal.MacroDefConstructor
import codeql.rust.elements.internal.MacroExprConstructor
import codeql.rust.elements.internal.MacroItemsConstructor
import codeql.rust.elements.internal.MacroPatConstructor
import codeql.rust.elements.internal.MacroRulesConstructor
import codeql.rust.elements.internal.MacroStmtsConstructor
import codeql.rust.elements.internal.MacroTypeConstructor
import codeql.rust.elements.internal.MatchArmConstructor
import codeql.rust.elements.internal.MatchArmListConstructor

View File

@@ -153,6 +153,8 @@ locatable_locations(
| @label
| @let_else
| @lifetime
| @macro_items
| @macro_stmts
| @match_arm
| @match_arm_list
| @match_guard
@@ -433,6 +435,34 @@ lifetime_texts(
string text: string 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
);
macro_stmts(
unique int id: @macro_stmts
);
#keyset[id]
macro_stmts_exprs(
int id: @macro_stmts ref,
int expr: @expr ref
);
#keyset[id, index]
macro_stmts_statements(
int id: @macro_stmts ref,
int index: int ref,
int statement: @stmt ref
);
match_arms(
unique int id: @match_arm
);

View File

@@ -0,0 +1,4 @@
// generated by codegen, do not edit
After a source file is added in this directory and codegen is run again, test queries
will appear and this file will be deleted

View File

@@ -0,0 +1,4 @@
// generated by codegen, do not edit
After a source file is added in this directory and codegen is run again, test queries
will appear and this file will be deleted