Rust: make Adt be generated

This commit is contained in:
Paolo Tranquilli
2025-06-20 14:35:08 +02:00
parent 3590ccaa69
commit 52c0028f85
14 changed files with 72 additions and 40 deletions

View File

@@ -385,8 +385,8 @@ struct ExtractorInfo {
} }
fn enum_to_extractor_info(node: &AstEnumSrc) -> Option<ExtractorEnumInfo> { fn enum_to_extractor_info(node: &AstEnumSrc) -> Option<ExtractorEnumInfo> {
if node.name == "VariantDef" { if matches!(node.name.as_str(), "VariantDef" | "Adt") {
// currently defined but unused // these are not used as types of fields, so we don't need to generate extractors for them
return None; return None;
} }
Some(ExtractorEnumInfo { Some(ExtractorEnumInfo {
@@ -485,8 +485,6 @@ fn main() -> anyhow::Result<()> {
.expect("Failed to parse grammar"); .expect("Failed to parse grammar");
let mut grammar = codegen::grammar::lower(&grammar); let mut grammar = codegen::grammar::lower(&grammar);
grammar.enums.retain(|x| x.name != "Adt");
let mut super_types: BTreeMap<String, BTreeSet<String>> = BTreeMap::new(); let mut super_types: BTreeMap<String, BTreeSet<String>> = BTreeMap::new();
for node in &grammar.enums { for node in &grammar.enums {
for variant in &node.variants { for variant in &node.variants {

View File

@@ -47,7 +47,7 @@ lib/codeql/rust/elements/ContinueExpr.qll 9f27c5d5c819ad0ebc5bd10967ba8d33a9dc95
lib/codeql/rust/elements/Crate.qll 1426960e6f36195e42ea5ea321405c1a72fccd40cd6c0a33673c321c20302d8d 1571a89f89dab43c5291b71386de7aadf52730755ba10f9d696db9ad2f760aff lib/codeql/rust/elements/Crate.qll 1426960e6f36195e42ea5ea321405c1a72fccd40cd6c0a33673c321c20302d8d 1571a89f89dab43c5291b71386de7aadf52730755ba10f9d696db9ad2f760aff
lib/codeql/rust/elements/DynTraitTypeRepr.qll e4d27112d27ae93c621defd2c976fd4e90663ab7f6115e83ae4fe8106cb5e015 eb9fde89698588f3b7116f62388c54e937f99559b22c93d11a5596e754560072 lib/codeql/rust/elements/DynTraitTypeRepr.qll e4d27112d27ae93c621defd2c976fd4e90663ab7f6115e83ae4fe8106cb5e015 eb9fde89698588f3b7116f62388c54e937f99559b22c93d11a5596e754560072
lib/codeql/rust/elements/Element.qll 0b62d139fef54ed2cf2e2334806aa9bfbc036c9c2085d558f15a42cc3fa84c48 24b999b93df79383ef27ede46e38da752868c88a07fe35fcff5d526684ba7294 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/Expr.qll e5d65e805ccf440d64d331e55df4c4144ab8c8f63f367382494714087659ffe8 2bbc1e5d3a65f413ec33d9822fa451fbdbe32349158db58cc0bfcfafb0e21bda
lib/codeql/rust/elements/ExprStmt.qll 00ac4c7d0192b9e8b0f28d5ae59c27729ff5a831ca11938ea3e677a262337a64 7cc02aa5346cd7c50d75ca63cd6501097b0a3979eb2ed838adff114fe17d35a3 lib/codeql/rust/elements/ExprStmt.qll 00ac4c7d0192b9e8b0f28d5ae59c27729ff5a831ca11938ea3e677a262337a64 7cc02aa5346cd7c50d75ca63cd6501097b0a3979eb2ed838adff114fe17d35a3
lib/codeql/rust/elements/ExternBlock.qll 96c70d0761ec385fe17aa7228e15fd1711949d5abba5877a1c2f4c180d202125 38ad458868a368d437b2dda44307d788a85c887f45ea76c99adbfc9a53f14d81 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/Static.qll a6d73152ddecb53a127aa3a4139f97007cd77b46203691c287600aa7200b8beb 547197e794803b3ea0c0e220f050980adec815a16fdef600f98ff795aa77f677
lib/codeql/rust/elements/Stmt.qll 532b12973037301246daf7d8c0177f734202f43d9261c7a4ca6f5080eea8ca64 b838643c4f2b4623d2c816cddad0e68ca3e11f2879ab7beaece46f489ec4b1f3 lib/codeql/rust/elements/Stmt.qll 532b12973037301246daf7d8c0177f734202f43d9261c7a4ca6f5080eea8ca64 b838643c4f2b4623d2c816cddad0e68ca3e11f2879ab7beaece46f489ec4b1f3
lib/codeql/rust/elements/StmtList.qll e874859ce03672d0085e47e0ca5e571b92b539b31bf0d5a8802f9727bef0c6b0 e5fe83237f713cdb57c446a6e1c20f645c2f49d9f5ef2c984032df83acb3c0de 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/StructExpr.qll af9059c01a97755e94f1a8b60c66d9c7663ed0705b2845b086b8953f16019fab 2d33d86b035a15c1b31c3e07e0e74c4bbe57a71c5a55d60e720827814e73b7ba
lib/codeql/rust/elements/StructExprField.qll 3eb9f17ecd1ad38679689eb4ecc169d3a0b5b7a3fc597ae5a957a7aea2f74e4f 8fcd26f266f203004899a60447ba16e7eae4e3a654fbec7f54e26857730ede93 lib/codeql/rust/elements/StructExprField.qll 3eb9f17ecd1ad38679689eb4ecc169d3a0b5b7a3fc597ae5a957a7aea2f74e4f 8fcd26f266f203004899a60447ba16e7eae4e3a654fbec7f54e26857730ede93
lib/codeql/rust/elements/StructExprFieldList.qll 6efb2ec4889b38556dc679bb89bbd4bd76ed6a60014c41f8e232288fc23b2d52 dc867a0a4710621e04b36bbec7d317d6f360e0d6ac68b79168c8b714babde31d 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/UnderscoreExpr.qll 233661b82b87c8cda16d8f2e17965658c3dc6b69efb23cb8eb9c4f50c68521e0 8edff8e80aac2ecf83a6b58f310cab688cbaeea0a0e68a298b644e565960cc74
lib/codeql/rust/elements/Unextracted.qll 12e60c79ef5b94d72b579b19970622e7b73822ebc13fbcfedfe953527ab1ac36 ec015db2eb12c3c82693ddc71d32d9ab9ef7a958e741e2510681bb707ceca23e lib/codeql/rust/elements/Unextracted.qll 12e60c79ef5b94d72b579b19970622e7b73822ebc13fbcfedfe953527ab1ac36 ec015db2eb12c3c82693ddc71d32d9ab9ef7a958e741e2510681bb707ceca23e
lib/codeql/rust/elements/Unimplemented.qll bf624d28163e5c99accda16c0c99f938bec4a3b1b920a463e86fc8529ff5ff02 013bc7777298d250338f835cd494b5a8accea2d6a4f9561851f283ac129a446b 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/Use.qll fdcf70574403c2f219353211b6930f2f9bc79f41c2594e07548de5a8c6cbb24d e41f2b689fcbeb7b84c7ba8d09592f7561626559318642b73574bbac83f74546
lib/codeql/rust/elements/UseBoundGenericArg.qll f16903f8fff676d3700eaad5490804624391141472ecc3166ccb1f70c794c120 5efda98088d096b42f53ceccae78c05f15c6953525b514d849681cb2cf65b147 lib/codeql/rust/elements/UseBoundGenericArg.qll f16903f8fff676d3700eaad5490804624391141472ecc3166ccb1f70c794c120 5efda98088d096b42f53ceccae78c05f15c6953525b514d849681cb2cf65b147
lib/codeql/rust/elements/UseBoundGenericArgs.qll d9821a82a1d57e609fdc5e79d65e9a88b0088f51d03927e09f41b6931d3484ab 181483a95e22622c7cee07cce87e9476053f824a82e67e2bdecabf5a39f672ad 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/Crate.qll 37f3760d7c0c1c3ca809d07daf7215a8eae6053eda05e88ed7db6e07f4db0781 649a3d7cd7ee99f95f8a4d3d3c41ea2fa848ce7d8415ccbac62977dfc9a49d35
lib/codeql/rust/elements/internal/generated/DynTraitTypeRepr.qll b2e0e728b6708923b862d9d8d6104d13f572da17e393ec1485b8465e4bfdc206 4a87ea9669c55c4905ce4e781b680f674989591b0cb56af1e9fa1058c13300b3 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/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/Expr.qll 5fa34f2ed21829a1509417440dae42d416234ff43433002974328e7aabb8f30f 46f3972c7413b7db28a3ea8acb5a50a74b6dd9b658e8725f6953a8829ac912f8
lib/codeql/rust/elements/internal/generated/ExprStmt.qll d1112230015fbeb216b43407a268dc2ccd0f9e0836ab2dca4800c51b38fa1d7d 4a80562dcc55efa5e72c6c3b1d6747ab44fe494e76faff2b8f6e9f10a4b08b5b lib/codeql/rust/elements/internal/generated/ExprStmt.qll d1112230015fbeb216b43407a268dc2ccd0f9e0836ab2dca4800c51b38fa1d7d 4a80562dcc55efa5e72c6c3b1d6747ab44fe494e76faff2b8f6e9f10a4b08b5b
lib/codeql/rust/elements/internal/generated/ExternBlock.qll e7faac92297a53ac6e0420eec36255a54f360eeb962bf663a00da709407832dd 5ff32c54ec7097d43cc3311492090b9b90f411eead3bc849f258858f29405e81 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/ParenExpr.qll 812d2ff65079277f39f15c084657a955a960a7c1c0e96dd60472a58d56b945eb eb8c607f43e1fcbb41f37a10de203a1db806690e10ff4f04d48ed874189cb0eb
lib/codeql/rust/elements/internal/generated/ParenPat.qll 24f9dc7fce75827d6fddb856cd48f80168143151b27295c0bab6db5a06567a09 ebadbc6f5498e9ed754b39893ce0763840409a0721036a25b56e1ead7dcc09aa 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/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/ParenthesizedArgList.qll d901fdc8142a5b8847cc98fc2afcfd16428b8ace4fbffb457e761b5fd3901a77 5dbb0aea5a13f937da666ccb042494af8f11e776ade1459d16b70a4dd193f9fb
lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4 lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4
lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd 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/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f
lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9 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/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/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66
lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05 lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05
lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 5b0663a6d234572fb3e467e276d019415caa95ef006438cc59b7af4e1783161e 0e27c8a8f0e323c0e4d6db01fca821bf07c0864d293cdf96fa891b10820c1e4b 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/Static.qll 34a4cdb9f4a93414499a30aeeaad1b3388f2341c982af5688815c3b0a0e9c57b 3c8354336eff68d580b804600df9abf49ee5ee10ec076722089087820cefe731
lib/codeql/rust/elements/internal/generated/Stmt.qll 8473ff532dd5cc9d7decaddcd174b94d610f6ca0aec8e473cc051dad9f3db917 6ef7d2b5237c2dbdcacbf7d8b39109d4dc100229f2b28b5c9e3e4fbf673ba72b 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/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/StructExpr.qll c6d861eaa0123b103fd9ffd2485423419ef9b7e0b4af9ed2a2090d8ec534f65d 50da99ee44771e1239ed8919f711991dd3ec98589fbe49b49b68c88074a07d74
lib/codeql/rust/elements/internal/generated/StructExprField.qll 6bdc52ed325fd014495410c619536079b8c404e2247bd2435aa7685dd56c3833 501a30650cf813176ff325a1553da6030f78d14be3f84fea6d38032f4262c6b0 lib/codeql/rust/elements/internal/generated/StructExprField.qll 6bdc52ed325fd014495410c619536079b8c404e2247bd2435aa7685dd56c3833 501a30650cf813176ff325a1553da6030f78d14be3f84fea6d38032f4262c6b0
lib/codeql/rust/elements/internal/generated/StructExprFieldList.qll 298d33442d1054922d2f97133a436ee559f1f35b7708523284d1f7eee7ebf443 7febe38a79fadf3dcb53fb8f8caf4c2780f5df55a1f8336269c7b674d53c6272 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/StructPat.qll c76fa005c2fd0448a8803233e1e8818c4123301eb66ac5cf69d0b9eaafc61e98 6e0dffccdce24bca20e87d5ba0f0995c9a1ae8983283e71e7dbfcf6fffc67a58
lib/codeql/rust/elements/internal/generated/StructPatField.qll 5b5c7302dbc4a902ca8e69ff31875c867e295a16a626ba3cef29cd0aa248f179 4e192a0df79947f5cb0d47fdbbba7986137a6a40a1be92ae119873e2fad67edf 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/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/SynthConstructors.qll bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076
lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b
lib/codeql/rust/elements/internal/generated/TokenTree.qll 1a3c4f5f30659738641abdd28cb793dab3cfde484196b59656fc0a2767e53511 de2ebb210c7759ef7a6f7ee9f805e1cac879221287281775fc80ba34a5492edf lib/codeql/rust/elements/internal/generated/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/UnderscoreExpr.qll b3780c99c5d57159bef4c6bd2fd8ec44ebd1854c892c1ca776c740f71249e58c 2fd451cbf0a779e8042e439882e7d9cadc19d1e596df3bbb086d16f2596407c7
lib/codeql/rust/elements/internal/generated/Unextracted.qll 01563dfd769d6dc3c6b8a40d9a4dc0d99a3b6a0c6725c180d2bf4d7633929a17 a93ce90f8c03f4305e59de9c63f089fc7935298fc9a73d091d76933cf63e790c 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/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/Use.qll cf95b5c4756b25bee74113207786e37464ffbc0fb5f776a04c651300afc53753 1fe26b3904db510184cb688cb0eeb0a8dbac7ac15e27a3b572d839743c738393
lib/codeql/rust/elements/internal/generated/UseBoundGenericArg.qll 69162794e871291545ea04f61259b2d000671a96f7ca129f7dd9ed6e984067c4 31de9ebc0634b38e2347e0608b4ea888892f1f2732a2892464078cd8a07b4ee8 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/UseBoundGenericArgs.qll 2cc8ab0068b7bf44ca17a62b32a8dd1d89cd743532c8a96b262b164fd81b0c36 347e7709a0f5ace197beb6827f6cf04a31ff68ff2dff3707914c6b910658d00a

View File

@@ -7,6 +7,7 @@ private import internal.EnumImpl
import codeql.rust.elements.Adt import codeql.rust.elements.Adt
import codeql.rust.elements.Attr import codeql.rust.elements.Attr
import codeql.rust.elements.GenericParamList import codeql.rust.elements.GenericParamList
import codeql.rust.elements.Item
import codeql.rust.elements.Name import codeql.rust.elements.Name
import codeql.rust.elements.VariantList import codeql.rust.elements.VariantList
import codeql.rust.elements.Visibility import codeql.rust.elements.Visibility

View File

@@ -8,6 +8,7 @@ import codeql.rust.elements.Adt
import codeql.rust.elements.Attr import codeql.rust.elements.Attr
import codeql.rust.elements.FieldList import codeql.rust.elements.FieldList
import codeql.rust.elements.GenericParamList import codeql.rust.elements.GenericParamList
import codeql.rust.elements.Item
import codeql.rust.elements.Name import codeql.rust.elements.Name
import codeql.rust.elements.VariantDef import codeql.rust.elements.VariantDef
import codeql.rust.elements.Visibility import codeql.rust.elements.Visibility

View File

@@ -7,6 +7,7 @@ private import internal.UnionImpl
import codeql.rust.elements.Adt import codeql.rust.elements.Adt
import codeql.rust.elements.Attr import codeql.rust.elements.Attr
import codeql.rust.elements.GenericParamList import codeql.rust.elements.GenericParamList
import codeql.rust.elements.Item
import codeql.rust.elements.Name import codeql.rust.elements.Name
import codeql.rust.elements.StructFieldList import codeql.rust.elements.StructFieldList
import codeql.rust.elements.VariantDef import codeql.rust.elements.VariantDef

View File

@@ -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.internal.AdtImpl::Impl as AdtImpl
import codeql.rust.elements.Attr import codeql.rust.elements.Attr
import codeql.rust.elements.GenericParamList import codeql.rust.elements.GenericParamList
import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl
import codeql.rust.elements.Name import codeql.rust.elements.Name
import codeql.rust.elements.VariantList import codeql.rust.elements.VariantList
import codeql.rust.elements.Visibility import codeql.rust.elements.Visibility
@@ -29,7 +30,7 @@ module Generated {
* INTERNAL: Do not reference the `Generated::Enum` class directly. * INTERNAL: Do not reference the `Generated::Enum` class directly.
* Use the subclass `Enum`, where the following predicates are available. * 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" } override string getAPrimaryQlClass() { result = "Enum" }
/** /**

View File

@@ -3937,12 +3937,13 @@ private module Impl {
private Element getImmediateChildOfEnum(Enum e, int index, string partialPredicateCall) { private Element getImmediateChildOfEnum(Enum e, int index, string partialPredicateCall) {
exists( exists(
int b, int bAdt, int n, int nAttr, int nGenericParamList, int nName, int nVariantList, int b, int bAdt, int bItem, int n, int nAttr, int nGenericParamList, int nName,
int nVisibility, int nWhereClause int nVariantList, int nVisibility, int nWhereClause
| |
b = 0 and b = 0 and
bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) 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 nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and
nGenericParamList = nAttr + 1 and nGenericParamList = nAttr + 1 and
nName = nGenericParamList + 1 and nName = nGenericParamList + 1 and
@@ -3954,6 +3955,8 @@ private module Impl {
or or
result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) result = getImmediateChildOfAdt(e, index - b, partialPredicateCall)
or or
result = getImmediateChildOfItem(e, index - bAdt, partialPredicateCall)
or
result = e.getAttr(index - n) and result = e.getAttr(index - n) and
partialPredicateCall = "Attr(" + (index - n).toString() + ")" partialPredicateCall = "Attr(" + (index - n).toString() + ")"
or or
@@ -4020,13 +4023,14 @@ private module Impl {
private Element getImmediateChildOfStruct(Struct e, int index, string partialPredicateCall) { private Element getImmediateChildOfStruct(Struct e, int index, string partialPredicateCall) {
exists( exists(
int b, int bAdt, int bVariantDef, int n, int nAttr, int nFieldList, int nGenericParamList, int b, int bAdt, int bItem, int bVariantDef, int n, int nAttr, int nFieldList,
int nName, int nVisibility, int nWhereClause int nGenericParamList, int nName, int nVisibility, int nWhereClause
| |
b = 0 and b = 0 and
bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) 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 = 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 n = bVariantDef and
nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and
nFieldList = nAttr + 1 and nFieldList = nAttr + 1 and
@@ -4039,7 +4043,9 @@ private module Impl {
or or
result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) result = getImmediateChildOfAdt(e, index - b, partialPredicateCall)
or or
result = getImmediateChildOfVariantDef(e, index - bAdt, partialPredicateCall) result = getImmediateChildOfItem(e, index - bAdt, partialPredicateCall)
or
result = getImmediateChildOfVariantDef(e, index - bItem, partialPredicateCall)
or or
result = e.getAttr(index - n) and result = e.getAttr(index - n) and
partialPredicateCall = "Attr(" + (index - n).toString() + ")" partialPredicateCall = "Attr(" + (index - n).toString() + ")"
@@ -4063,13 +4069,14 @@ private module Impl {
private Element getImmediateChildOfUnion(Union e, int index, string partialPredicateCall) { private Element getImmediateChildOfUnion(Union e, int index, string partialPredicateCall) {
exists( exists(
int b, int bAdt, int bVariantDef, int n, int nAttr, int nGenericParamList, int nName, int b, int bAdt, int bItem, int bVariantDef, int n, int nAttr, int nGenericParamList,
int nStructFieldList, int nVisibility, int nWhereClause int nName, int nStructFieldList, int nVisibility, int nWhereClause
| |
b = 0 and b = 0 and
bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) 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 = 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 n = bVariantDef and
nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and
nGenericParamList = nAttr + 1 and nGenericParamList = nAttr + 1 and
@@ -4082,7 +4089,9 @@ private module Impl {
or or
result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) result = getImmediateChildOfAdt(e, index - b, partialPredicateCall)
or or
result = getImmediateChildOfVariantDef(e, index - bAdt, partialPredicateCall) result = getImmediateChildOfItem(e, index - bAdt, partialPredicateCall)
or
result = getImmediateChildOfVariantDef(e, index - bItem, partialPredicateCall)
or or
result = e.getAttr(index - n) and result = e.getAttr(index - n) and
partialPredicateCall = "Attr(" + (index - n).toString() + ")" partialPredicateCall = "Attr(" + (index - n).toString() + ")"

View File

@@ -4499,7 +4499,7 @@ module Raw {
* enum E {A, B(i32), C {x: i32}} * enum E {A, B(i32), C {x: i32}}
* ``` * ```
*/ */
class Enum extends @enum, Adt { class Enum extends @enum, Adt, Item {
override string toString() { result = "Enum" } 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" } override string toString() { result = "Struct" }
/** /**
@@ -4650,7 +4650,7 @@ module Raw {
* union U { f1: u32, f2: f32 } * union U { f1: u32, f2: f32 }
* ``` * ```
*/ */
class Union extends @union, Adt, VariantDef { class Union extends @union, Adt, Item, VariantDef {
override string toString() { result = "Union" } override string toString() { result = "Union" }
/** /**

View File

@@ -10,6 +10,7 @@ import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl
import codeql.rust.elements.Attr import codeql.rust.elements.Attr
import codeql.rust.elements.FieldList import codeql.rust.elements.FieldList
import codeql.rust.elements.GenericParamList import codeql.rust.elements.GenericParamList
import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl
import codeql.rust.elements.Name import codeql.rust.elements.Name
import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl
import codeql.rust.elements.Visibility import codeql.rust.elements.Visibility
@@ -31,7 +32,7 @@ module Generated {
* INTERNAL: Do not reference the `Generated::Struct` class directly. * INTERNAL: Do not reference the `Generated::Struct` class directly.
* Use the subclass `Struct`, where the following predicates are available. * 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" } override string getAPrimaryQlClass() { result = "Struct" }
/** /**

View File

@@ -775,9 +775,9 @@ module Synth {
* INTERNAL: Do not use. * INTERNAL: Do not use.
*/ */
class TItem = class TItem =
TAdt or TConst or TExternBlock or TExternCrate or TFunction or TImpl or TMacroCall or TAdt or TConst or TEnum 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 TMacroDef or TMacroRules or TModule or TStatic or TStruct or TTrait or TTraitAlias or
TUse; TTypeAlias or TUnion or TUse;
/** /**
* INTERNAL: Do not use. * INTERNAL: Do not use.
@@ -2234,6 +2234,8 @@ module Synth {
or or
result = convertConstFromRaw(e) result = convertConstFromRaw(e)
or or
result = convertEnumFromRaw(e)
or
result = convertExternBlockFromRaw(e) result = convertExternBlockFromRaw(e)
or or
result = convertExternCrateFromRaw(e) result = convertExternCrateFromRaw(e)
@@ -2252,12 +2254,16 @@ module Synth {
or or
result = convertStaticFromRaw(e) result = convertStaticFromRaw(e)
or or
result = convertStructFromRaw(e)
or
result = convertTraitFromRaw(e) result = convertTraitFromRaw(e)
or or
result = convertTraitAliasFromRaw(e) result = convertTraitAliasFromRaw(e)
or or
result = convertTypeAliasFromRaw(e) result = convertTypeAliasFromRaw(e)
or or
result = convertUnionFromRaw(e)
or
result = convertUseFromRaw(e) result = convertUseFromRaw(e)
} }
@@ -3842,6 +3848,8 @@ module Synth {
or or
result = convertConstToRaw(e) result = convertConstToRaw(e)
or or
result = convertEnumToRaw(e)
or
result = convertExternBlockToRaw(e) result = convertExternBlockToRaw(e)
or or
result = convertExternCrateToRaw(e) result = convertExternCrateToRaw(e)
@@ -3860,12 +3868,16 @@ module Synth {
or or
result = convertStaticToRaw(e) result = convertStaticToRaw(e)
or or
result = convertStructToRaw(e)
or
result = convertTraitToRaw(e) result = convertTraitToRaw(e)
or or
result = convertTraitAliasToRaw(e) result = convertTraitAliasToRaw(e)
or or
result = convertTypeAliasToRaw(e) result = convertTypeAliasToRaw(e)
or or
result = convertUnionToRaw(e)
or
result = convertUseToRaw(e) result = convertUseToRaw(e)
} }

View File

@@ -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.internal.AdtImpl::Impl as AdtImpl
import codeql.rust.elements.Attr import codeql.rust.elements.Attr
import codeql.rust.elements.GenericParamList import codeql.rust.elements.GenericParamList
import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl
import codeql.rust.elements.Name import codeql.rust.elements.Name
import codeql.rust.elements.StructFieldList import codeql.rust.elements.StructFieldList
import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl
@@ -30,7 +31,7 @@ module Generated {
* INTERNAL: Do not reference the `Generated::Union` class directly. * INTERNAL: Do not reference the `Generated::Union` class directly.
* Use the subclass `Union`, where the following predicates are available. * 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" } override string getAPrimaryQlClass() { result = "Union" }
/** /**

View File

@@ -1919,6 +1919,7 @@ infer_type_reprs(
@item = @item =
@adt @adt
| @const | @const
| @enum
| @extern_block | @extern_block
| @extern_crate | @extern_crate
| @function | @function
@@ -1928,9 +1929,11 @@ infer_type_reprs(
| @macro_rules | @macro_rules
| @module | @module
| @static | @static
| @struct
| @trait | @trait
| @trait_alias | @trait_alias
| @type_alias | @type_alias
| @union
| @use | @use
; ;

View File

@@ -16,7 +16,8 @@ class LoopingExpr(LabelableExpr):
loop_body: optional["BlockExpr"] | child 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`. 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 _: class _:
""" """
An enum declaration. An enum declaration.
@@ -1834,7 +1835,7 @@ class _:
""" """
@annotate(Struct, replace_bases={Item: Adt}) @annotate(Struct)
class _: class _:
""" """
A Struct. For example: A Struct. For example:
@@ -2013,7 +2014,7 @@ class _:
""" """
@annotate(Union, replace_bases={Item: Adt}) @annotate(Union)
class _: class _:
""" """
A union declaration. A union declaration.

9
rust/schema/ast.py generated
View File

@@ -2,6 +2,9 @@
from .prelude import * from .prelude import *
class Adt(AstNode, ):
pass
class AsmOperand(AstNode, ): class AsmOperand(AstNode, ):
pass pass
@@ -207,7 +210,7 @@ class ContinueExpr(Expr, ):
class DynTraitTypeRepr(TypeRepr, ): class DynTraitTypeRepr(TypeRepr, ):
type_bound_list: optional["TypeBoundList"] | child type_bound_list: optional["TypeBoundList"] | child
class Enum(Item, ): class Enum(Adt, Item, ):
attrs: list["Attr"] | child attrs: list["Attr"] | child
generic_param_list: optional["GenericParamList"] | child generic_param_list: optional["GenericParamList"] | child
name: optional["Name"] | child name: optional["Name"] | child
@@ -625,7 +628,7 @@ class StmtList(AstNode, ):
statements: list["Stmt"] | child statements: list["Stmt"] | child
tail_expr: optional["Expr"] | child tail_expr: optional["Expr"] | child
class Struct(Item, VariantDef, ): class Struct(Adt, Item, VariantDef, ):
attrs: list["Attr"] | child attrs: list["Attr"] | child
field_list: optional["FieldList"] | child field_list: optional["FieldList"] | child
generic_param_list: optional["GenericParamList"] | child generic_param_list: optional["GenericParamList"] | child
@@ -713,7 +716,7 @@ class TypeParam(GenericParam, ):
class UnderscoreExpr(Expr, ): class UnderscoreExpr(Expr, ):
attrs: list["Attr"] | child attrs: list["Attr"] | child
class Union(Item, VariantDef, ): class Union(Adt, Item, VariantDef, ):
attrs: list["Attr"] | child attrs: list["Attr"] | child
generic_param_list: optional["GenericParamList"] | child generic_param_list: optional["GenericParamList"] | child
name: optional["Name"] | child name: optional["Name"] | child