Improve handling of unimplemented nodes

This commit is contained in:
Arthur Baars
2024-09-12 21:41:03 +02:00
parent 69761a2942
commit 7572546efa
52 changed files with 686 additions and 193 deletions

View File

@@ -1,2 +1,2 @@
mod.rs 7cdfedcd68cf8e41134daf810c1af78624082b0c3e8be6570339b1a69a5d457e 7cdfedcd68cf8e41134daf810c1af78624082b0c3e8be6570339b1a69a5d457e
top.rs 569909061b9a993481764765a014327d143939778f2dbc79836e7496cdb83e1f 569909061b9a993481764765a014327d143939778f2dbc79836e7496cdb83e1f
top.rs a165d9d38458fa0a4fa07445bb4229d17c2be47d0718e4b0ac9f7a82e700c8b2 a165d9d38458fa0a4fa07445bb4229d17c2be47d0718e4b0ac9f7a82e700c8b2

View File

@@ -43,6 +43,25 @@ impl TrapEntry for DbLocation {
}
}
#[derive(Debug)]
pub struct GenericArgs {
pub id: TrapId,
pub location: Option<trap::Label>,
}
impl TrapEntry for GenericArgs {
fn extract_id(&mut self) -> TrapId {
std::mem::replace(&mut self.id, TrapId::Star)
}
fn emit(self, id: trap::Label, out: &mut trap::Writer) {
out.add_tuple("generic_args", vec![trap::Arg::Label(id)]);
if let Some(v) = self.location {
out.add_tuple("locatable_locations", vec![trap::Arg::Label(id), v.into()]);
}
}
}
#[derive(Debug)]
pub struct Label {
pub id: TrapId,
@@ -88,6 +107,25 @@ impl TrapEntry for MatchArm {
}
}
#[derive(Debug)]
pub struct Path {
pub id: TrapId,
pub location: Option<trap::Label>,
}
impl TrapEntry for Path {
fn extract_id(&mut self) -> TrapId {
std::mem::replace(&mut self.id, TrapId::Star)
}
fn emit(self, id: trap::Label, out: &mut trap::Writer) {
out.add_tuple("paths", vec![trap::Arg::Label(id)]);
if let Some(v) = self.location {
out.add_tuple("locatable_locations", vec![trap::Arg::Label(id), v.into()]);
}
}
}
#[derive(Debug)]
pub struct RecordFieldPat {
pub id: TrapId,
@@ -149,25 +187,6 @@ impl TrapEntry for TypeRef {
}
}
#[derive(Debug)]
pub struct Unimplemented {
pub id: TrapId,
pub location: Option<trap::Label>,
}
impl TrapEntry for Unimplemented {
fn extract_id(&mut self) -> TrapId {
std::mem::replace(&mut self.id, TrapId::Star)
}
fn emit(self, id: trap::Label, out: &mut trap::Writer) {
out.add_tuple("unimplementeds", vec![trap::Arg::Label(id)]);
if let Some(v) = self.location {
out.add_tuple("locatable_locations", vec![trap::Arg::Label(id), v.into()]);
}
}
}
#[derive(Debug)]
pub struct AwaitExpr {
pub id: TrapId,
@@ -1306,6 +1325,25 @@ impl TrapEntry for UnderscoreExpr {
}
}
#[derive(Debug)]
pub struct UnimplementedDeclaration {
pub id: TrapId,
pub location: Option<trap::Label>,
}
impl TrapEntry for UnimplementedDeclaration {
fn extract_id(&mut self) -> TrapId {
std::mem::replace(&mut self.id, TrapId::Star)
}
fn emit(self, id: trap::Label, out: &mut trap::Writer) {
out.add_tuple("unimplemented_declarations", vec![trap::Arg::Label(id)]);
if let Some(v) = self.location {
out.add_tuple("locatable_locations", vec![trap::Arg::Label(id), v.into()]);
}
}
}
#[derive(Debug)]
pub struct WildPat {
pub id: TrapId,

View File

@@ -183,15 +183,12 @@ impl CrateTranslator<'_> {
})
}
fn emit_unimplemented(&mut self, location: Option<trap::Label>) -> trap::Label {
self.trap.emit(generated::Unimplemented {
fn emit_path(&mut self, _path: &Path, location: Option<trap::Label>) -> trap::Label {
self.trap.emit(generated::Path {
id: TrapId::Star,
location,
})
}
fn emit_path(&mut self, _path: &Path, location: Option<trap::Label>) -> trap::Label {
self.emit_unimplemented(location)
}
fn emit_record_field_pat(
&mut self,
@@ -610,9 +607,12 @@ impl CrateTranslator<'_> {
.into_iter()
.map(|e| self.emit_expr(*e, body, source_map))
.collect();
let generic_args = generic_args
.as_ref()
.map(|_args| self.emit_unimplemented(None));
let generic_args = generic_args.as_ref().map(|_args| {
self.trap.emit(generated::GenericArgs {
id: TrapId::Star,
location: None,
})
});
self.trap.emit(generated::MethodCallExpr {
id: TrapId::Star,
location,
@@ -929,8 +929,12 @@ impl CrateTranslator<'_> {
labels: &mut Vec<trap::Label>,
) {
match id {
ModuleDef::Module(_) => {
self.emit_unimplemented(None);
ModuleDef::Module(_module) => {
let location = None;
self.trap.emit(generated::UnimplementedDeclaration {
id: TrapId::Star,
location,
});
}
ModuleDef::Function(function) => {
let def: ra_ap_hir::DefWithBody = function.into();
@@ -958,38 +962,66 @@ impl CrateTranslator<'_> {
}
ModuleDef::Adt(adt) => {
let location = self.emit_location(adt);
self.emit_unimplemented(location);
self.trap.emit(generated::UnimplementedDeclaration {
id: TrapId::Star,
location,
});
}
ModuleDef::Variant(variant) => {
let location = self.emit_location(variant);
self.emit_unimplemented(location);
self.trap.emit(generated::UnimplementedDeclaration {
id: TrapId::Star,
location,
});
}
ModuleDef::Const(const_) => {
let location = self.emit_location(const_);
self.emit_unimplemented(location);
self.trap.emit(generated::UnimplementedDeclaration {
id: TrapId::Star,
location,
});
}
ModuleDef::Static(static_) => {
let location = self.emit_location(static_);
self.emit_unimplemented(location);
self.trap.emit(generated::UnimplementedDeclaration {
id: TrapId::Star,
location,
});
}
ModuleDef::Trait(trait_) => {
let location = self.emit_location(trait_);
self.emit_unimplemented(location);
self.trap.emit(generated::UnimplementedDeclaration {
id: TrapId::Star,
location,
});
}
ModuleDef::TraitAlias(alias) => {
let location = self.emit_location(alias);
self.emit_unimplemented(location);
self.trap.emit(generated::UnimplementedDeclaration {
id: TrapId::Star,
location,
});
}
ModuleDef::TypeAlias(type_alias) => {
let location = self.emit_location(type_alias);
self.emit_unimplemented(location);
self.trap.emit(generated::UnimplementedDeclaration {
id: TrapId::Star,
location,
});
}
ModuleDef::BuiltinType(_builtin_type) => {
self.emit_unimplemented(None);
let location = None;
self.trap.emit(generated::UnimplementedDeclaration {
id: TrapId::Star,
location,
});
}
ModuleDef::Macro(macro_) => {
let location = self.emit_location(macro_);
self.emit_unimplemented(location);
self.trap.emit(generated::UnimplementedDeclaration {
id: TrapId::Star,
location,
});
}
}
}

View File

@@ -25,7 +25,7 @@ lib/codeql/rust/elements/CastExpr.qll cafc39afc4103781b475906a0e178175b32374a049
lib/codeql/rust/elements/CastExprConstructor.qll cab6e9a9872006cc811620bda522fafde23fc4edb5151af06a5a0938747dbdfb 6d972faff70166c4b07392a0bc90c6d72c9466b58b55e7651ef6c3d06cf72873
lib/codeql/rust/elements/ClosureExpr.qll cde112e1e1fcd5677cffa3469e376ff2b69ff6f55d907152b4afba4d92d06c55 f9180e4e0905ba233f64717719ee653ee5dfd2dad9f87a81b63b513ce5e73bc3
lib/codeql/rust/elements/ClosureExprConstructor.qll 238dceb78082a5566276640d4aa31484041700852c0751130d139a69ac8bde46 7aae22930def4d438d742255731cc59b78a95b73a0b1d6334ae9965e083e03bc
lib/codeql/rust/elements/ConstBlockPat.qll 2ed7b82917c0da34cfb53b37177e7c56b51011716c50bf0eea35e1a33dcddc58 24d2c3888adb404717e4263b36b48d531ec8d0a6d09b4dd577cdd4933b6c2dea
lib/codeql/rust/elements/ConstBlockPat.qll 397ad2bd112a34f39c486acf6c82c73881ce3f70d91634649ea040b92f96c8c1 96bf33b3732b8aa60e83c10f48eae538e695b1b8a6a5942e8e79a924e09e60f9
lib/codeql/rust/elements/ConstBlockPatConstructor.qll 04aa8b4f218ce87157f0d6b10c9c04660c34c90af1f121b1432402de2e5114cd 34e2fecbe91ea9ac1626bc27121a7d5abe99855e3f49bdca12a1969b42ac0ba5
lib/codeql/rust/elements/ConstExpr.qll 70a7c9db14efaf290a77401eb04c439b24ed77c21496cee53b89d92d350daeaf e3f98ac4dde94a4dc8d6df51ba4ecd4acc492d9de569ac3eee9dd3bc258bd03d
lib/codeql/rust/elements/ConstExprConstructor.qll b4c96adc2878047c36d7ceaba2346ef66a2269b5260a56c3d7ff6e3a332bad75 ce15bbfd1448e47d3039e912363efa607cc2c29d44b8248ac91c307af7b57016
@@ -44,6 +44,8 @@ lib/codeql/rust/elements/ExprStmtConstructor.qll 28e37020abdfce5a8666b0c9a3147c3
lib/codeql/rust/elements/FieldExpr.qll 54b2dac331f4de45c4520e318373805d41f63d45ca695ae618c8f42d30f38d5d 2f87397d3cfb07763e287b0bca83d625368ee2c6f29f8fff2de509d5696ed27b
lib/codeql/rust/elements/FieldExprConstructor.qll 75bd0526fae157460750f3ea1e087c857cc703fca03d34f1f478b57ee8051590 1e5555910c643235e34b73f9844e894e51f357c3f7aba8165c47caa147336c53
lib/codeql/rust/elements/FunctionConstructor.qll a9269b37182c0bf432f9b2b015691da5dbd64819b9bd25445af229d873014a91 69107a7503af14a51e091e6918094a4e9fc316a72de2e1514f001872ce0f2c0c
lib/codeql/rust/elements/GenericArgs.qll e64db724addfba85bcb326d26640eef6e71467b3f55a0bcfdbe538f6efa154b3 7d6b80c1bac67efa8951987c8e01f286d5da9097e922640868646f639068a3f4
lib/codeql/rust/elements/GenericArgsConstructor.qll 581b52a92fc3222bc4695ef403b37de513dfa820f0cf73a394a36a351de66bbb a61f06c2aa13ab5852c792faca80148aa8233168ff5b91e3ce9e8d458b62608e
lib/codeql/rust/elements/IfExpr.qll 87d29f7f6eec05e03d3e929e32b526787f41d5320141bfe96028973e15ef225d 42789266b2c54b222c1d980f85e3150c80397668e61c9952df6905f1bf0fc4b0
lib/codeql/rust/elements/IfExprConstructor.qll 961ac42fe811db7c56c9d85e98724a87571e8543265c0424a7b61f26ef41b369 43d9412a22908a7e5c38f1f5e8f88162367407b71037f469dfb7d8dfdc3a063f
lib/codeql/rust/elements/IndexExpr.qll 924fe6732ffefca376d099255e2eb6682cabd6cb4267dc997fcf85aa5478a3a6 09e65b09cfdb928d134d3aad17acc07602a0bcbca098d775028bcb7624f16b11
@@ -64,9 +66,9 @@ lib/codeql/rust/elements/LiteralExpr.qll 031edbbd52d2107a3a7149a4dde306f5fcce9a3
lib/codeql/rust/elements/LiteralExprConstructor.qll 1a6aa25d6700ab9c85bd7b721e4818064a3a092386589ecdc2018b8b8c2464dc 6d6b50e2dabfa671110454d64f0903336563ee4be1dc6751071a801ac2fcb8e8
lib/codeql/rust/elements/LoopExpr.qll a32330e9f6c5420e7fbd4a61f53dde892c1acadabef074b7e9aa3beae39617eb 97061b3dd86af3ef271587aa337d10f2a7094cb69d7e339baf13e5a7817e1389
lib/codeql/rust/elements/LoopExprConstructor.qll 635348fe22fb47c7e59bed02a8ed6420be5a9ce92a7d9bf4475465ee170c917b 2bcfe70247c55659b3a3e09562da52fc645cc3166748f268c5a38b35fca24233
lib/codeql/rust/elements/MatchArm.qll 33c3d1d149b654f64ec8930aad77605d82ac542412e55084cb2fa914bffc5258 433221b39bd6365a868a5d9fa2d0b5f112561bd691fda98d7d2cec36c25be292
lib/codeql/rust/elements/MatchArm.qll 2508d03a0a8f8e29483855affd08eca118ed756a18a60fc7ae6a9e5d63fae2d7 b88a33eaefe08131f7c8e80ca056c237aad9ef7c21deb2bf35a2f5ecfd320f55
lib/codeql/rust/elements/MatchArmConstructor.qll 49d134823a445a1ee995ebf5637fd0d736b9ab7f2b141026712f231ec4ed3389 f16e8adc8375e6a7334589d5732dcbe10f5ada9de7a12c549c55be3f028ec628
lib/codeql/rust/elements/MatchExpr.qll 201ce069a53c70065ececa7005d9b03db34e78b0ff29c22b6f84349097f04f38 94fd75c60941d970aa637d9f3b4477ff6d04793966ffccd306bc25e1b84654f9
lib/codeql/rust/elements/MatchExpr.qll cb38dfcdf896e8f5c429d13493f423d926c39ca928a5a8ef890e258b6ce7a048 5dc5f9e07d1021ac39f29ce6695ceab3d7bc751f33ea8b4ab463df50d3fd24e6
lib/codeql/rust/elements/MatchExprConstructor.qll 74df937d7d8bfbfb02bdbf095595eb3f2129ed4c0854bae6d73b5b38d4fc902d 5c388c02f02462d843945111b72de12bce33c7c332d55993d903aeb250213407
lib/codeql/rust/elements/MethodCallExpr.qll e92c5214160d6b5bebba76c78f5ec0380a629230991513326585c99dab7be1f3 ed05c7f40fb6d1c97fa0a3a631db1913b8e6abb5c2b3513d0e81a82a2e5f7f95
lib/codeql/rust/elements/MethodCallExprConstructor.qll c9e1137ba6b76eabd941ecaa27a5b43b6fc3ff445ad46d3f625ad086de0e0af6 47bc4c30182b891c7009ba536edad7393dc068b72d9dfc16b26174b15d49748e
@@ -74,13 +76,15 @@ lib/codeql/rust/elements/MissingExpr.qll 30b04d6a7b67acbce40dc1ffb95edb833578fd5
lib/codeql/rust/elements/MissingExprConstructor.qll c51f4f6e897ef2107a27bd91ecf31ce875611b29a5a12238d5312b9489a35b8d b9ea3fdae459aba6c7ed9eb48edbc5bdbdb4cb41220fff81ed4cd256648612e0
lib/codeql/rust/elements/MissingPat.qll 74a84a04d0aaabb3353419bba2225e6ca3f02ada55e00d28e6cceb37cefce43a c8ee5e6c411e0955ca0a775c8b09b894e2914fe24f9d16df1f0e6d186d15ebd2
lib/codeql/rust/elements/MissingPatConstructor.qll 7bff2fb7fe96388dd703cca5f0bb1d04cea5d1f0729bb54c6604b58e338c7d6b eec9fea46593b3850da111658848cb54cfa9992286eeee313a55def184cf7ec5
lib/codeql/rust/elements/Module.qll d8995b361cc672f86a314bd53bd3e4d1ddb26b6afde62eb7c380923810785af0 3c10180c812d89a8116ac6e32cbd4d7ac2f549c8a76d327ed75c764b09251d52
lib/codeql/rust/elements/Module.qll a104ed007091e5361db9e6be640fba6a22b02913c16fe50cb5d348399504f7b0 7633ef24e7c9e1daca9a82d89870462482536cded234e0e1bb7da9eabc43c00d
lib/codeql/rust/elements/ModuleConstructor.qll 109ed8c1b5c61cc1d3e8613aa8bb8c168dc1943c93b5b622fa79665751b78318 601526c7f56578883d261d14653fdad08329f80fea71de14a5ac5ce671a8d436
lib/codeql/rust/elements/OffsetOfExpr.qll e7490d4db7cb4dd1c711ce57934970da8c9cc61af913a62b6963667313dcb0c5 c9043c5e68483b3d4da03ab191dc56e0150ff23af361a227fe91062e10ad66b2
lib/codeql/rust/elements/OffsetOfExprConstructor.qll 8034eb1d3510dffe9e38cdfcb57a0235ee01bb50e1fbaa6e5601e0e232c1977d 6e3b7c20a17fe4c45d503ba32264aea8f6dfdc69ccd95905a5bfb1e8b0cc91d0
lib/codeql/rust/elements/OrPat.qll 448ebaddc1b42fbb90e3240d990cb841d4775d9129350e8f5195904798efb27c ffb6121a0b4f0e661e1653c396d565053b9f89eb358bbaa1c218c31eac3b8221
lib/codeql/rust/elements/OrPatConstructor.qll 9a24cc095adc55ae8ea66f68c695f42de0181a43e23d70e210c63351b47e2586 1f773ae88276289672d93708f4ae9f8c95199e7370a0c610a52c92b5e018e632
lib/codeql/rust/elements/Pat.qll 79ac8430cc9047cf89fcf80cdb527166bd72e979d03e051fa2d60fa2f64f2294 914362a06ad0cac1e1777874bf4425fcc805021197f635ddd87b96d9e5c221d9
lib/codeql/rust/elements/Path.qll 05a168a83168638e07eb3d746adad7ecd952976dfed6fd85becc0fd491bf4b0f 8f38d2ae227dfd4fc7cedde3008dc66df57aa4ac1714c8d5105c9989b4e8b93e
lib/codeql/rust/elements/PathConstructor.qll 97243db75d6337cf68a22ea68569fdddf4c3bc1b8875bb4bb66faeeba8846a53 03c8c665e2f3b103148fd38eb7a4d0459c8189b2f6160dc08ee1d6d2807e01b6
lib/codeql/rust/elements/PathExpr.qll 861b1d9e6246588fcb0b6d8560c7807a4209941a8cbc93779b80e494561af706 c6da0b2e8ace1c30a7cd468406353a457440aafacf8e31c32618fd9781c69113
lib/codeql/rust/elements/PathExprConstructor.qll 9db3d3ad160d897b65b8b8a62f3243f7ff80d8e2d27875b3cd2c2b046fb0f9b6 26c2ba19a04fba61af8aa0cd72602f7b02bf0e1b693ac9cd14c7ff6066412f75
lib/codeql/rust/elements/PathPat.qll 748a43d1c25c4fd20eaf78f381e4680207557bb696a28d74a9eaa1887bc966c1 186c947b0bbed3111c9bdc564c3ce39432c1a3bbdbb15ebb503629625ffe1dea
@@ -121,7 +125,8 @@ lib/codeql/rust/elements/UnaryOpExprConstructor.qll 43db7afbd3535b7edc801d99d772
lib/codeql/rust/elements/UnderscoreExpr.qll bf4c0bf76fa15b041f7ecbd492a499088bef2024b49dbdfa57232e84e72c3067 462380bac5f772c1986146d32b70deabc9f03581675f6e79f7b7f747acfb0bd5
lib/codeql/rust/elements/UnderscoreExprConstructor.qll ea9f93fa6529ec4e5bf5c4a98959b2e013e83fce4a74ebfc476b10bce2b331b2 bc36b62fd4fec6fb388d82e2af2aafe0099138d54b7672be81e84fc511fdcc8f
lib/codeql/rust/elements/Unimplemented.qll 60387a9def0ea3cb9534311ace088106800af0acb89883c5bc9b26d8d8d61718 9d869f83e73915bbeb5af27ea30b69f20c344cd7d7f253cb7dab74de20baa0a6
lib/codeql/rust/elements/UnimplementedConstructor.qll ee024d4944aebe619ee3ea0ce4f84da0f4fca706baed250c8a65464a8d77979a f95966e3a63cbf2b466241f55bb47c23125645fad206ebd758236465afa4f97d
lib/codeql/rust/elements/UnimplementedDeclaration.qll 4d55b4530ea3dfc38fb41dbfd3907db992ab893407b02a387719921d3ddc990e cb86a99f7a6b21a2b10f61f8c28b97ecf1b71269a3aee652396ea68cf6c806d3
lib/codeql/rust/elements/UnimplementedDeclarationConstructor.qll 44f4590db81e7504de0ede43eb2a33a54baa0738732e03a90721187a1cd303f3 11f27d8a9836b78d9ffac79efa3441fbfcb1dfdc1eb028d2016a1769b8a82ad5
lib/codeql/rust/elements/UnsafeBlockExpr.qll ea7fc05c8f25b99205c098590329465ff9db9293b7d72cc41054b6c4e28ecb00 d617e6873b62ca2871ed87ca2435904da51cbdba42d46a2d160440b11f14dbbb
lib/codeql/rust/elements/UnsafeBlockExprConstructor.qll a089d89cb8f9542b3ee94c8eb7ca9ce0ced08c954802b26826f6aff12f8705dd d3919a40e13d97c48b19df647851f120b667300864d3a2178b1b01236c2dcbd4
lib/codeql/rust/elements/WildPat.qll dda006b9e762a6f655842c2888bdd33c188c391adac2f2e79437ab1d4969388c 99cbb5c5d64f0bf7a20ce6f0d85bcaa065503505d42dcfd342fbce5a4704ac4e
@@ -130,7 +135,7 @@ lib/codeql/rust/elements/YeetExpr.qll 95a15d0ae79b9cad126700c07d5cb7e4e9699e2e5d
lib/codeql/rust/elements/YeetExprConstructor.qll f1871c6e0c966c52806e370dbe2956585bbfa1dcf0bd7ebfdb2bd39b7cfd0d7b a2333e80a325a921a66c34151401da12c250951952ccb0c81e5102dc62299503
lib/codeql/rust/elements/YieldExpr.qll 72682ae19d37abd6ec26569ae8f575979ebba1e0d373898211a9af4fad4979a1 ef0193011ee5f94cebbac5c007d652568f560685a213bf8be96cd0c0983a3880
lib/codeql/rust/elements/YieldExprConstructor.qll ff46ba17cc24abfcb0e310c7458d0539b704e7a771ad00853bd3a1844e4e6f82 1c13662ef01c88f1cf057d099eb46524036133e51a0e36ddf947f727ac6046bb
lib/codeql/rust/elements.qll c0e6bff934b1925ec03e55afc2b5b9127f51dc4a613e047e687bc83cdab4f196 c0e6bff934b1925ec03e55afc2b5b9127f51dc4a613e047e687bc83cdab4f196
lib/codeql/rust/elements.qll 515e43d4d74ee62b20e5f9a56d28d405717586a8adcbab1c3ceac1a090f68a0f 515e43d4d74ee62b20e5f9a56d28d405717586a8adcbab1c3ceac1a090f68a0f
lib/codeql/rust/generated/ArrayExpr.qll 3fd7465da22e1eb810ae28ffab7b14e9ccceaab0082aa665f14b73d4221128b8 6e9edb5846656aad90283406a496aaae485d38854075a4443817b5098b72b427
lib/codeql/rust/generated/AstNode.qll 0598fac7859906f4103124270dfb2fbdb838387b1c45000bf50a4b62c797ec41 f47c84878c7c9676109e358073bddab92a1dbeb4d977d236ecc1eae44d81c894
lib/codeql/rust/generated/AsyncBlockExpr.qll 4038dd9d888f98e8848de4ab858804bbb6dd835a32e925a9530f350820edaf04 4038dd9d888f98e8848de4ab858804bbb6dd835a32e925a9530f350820edaf04
@@ -146,7 +151,7 @@ lib/codeql/rust/generated/BreakExpr.qll d1cc6452044b4f0351380adc9e46dc52279746d0
lib/codeql/rust/generated/CallExpr.qll 44cc428b1950e0d560a4e2c18136a956dbc3f85c575317cbf10a0cb5b2dded97 1a5d8dfd704b289774d7190ee331858b39563dcbb2c52940b02df4c5c2208637
lib/codeql/rust/generated/CastExpr.qll 0264db34cb111644de4d37569791a2c27665f3a7373c26adfdc1d68ab0a6fcc6 3a757ea06c6e0c715d88bf1eeb579998a0ecc5560fcf3b4066bbd86803ffa100
lib/codeql/rust/generated/ClosureExpr.qll 43d9ff09c156f1ce000c77bcf5ecc02c8fb569c0ca7f042a1aae9d311e18b13e 07e1461269e1f07144468ef7b64b927f29053fa6de71afef334732c33a797f33
lib/codeql/rust/generated/ConstBlockPat.qll be81c35576fd65caa9dbb657a85da18e4ad64e60c0dbf4df7e373584773eb19b 136a2c6b601decff5523a8aba51d797713271d5766dc4a4fe5cb895f660bafb9
lib/codeql/rust/generated/ConstBlockPat.qll 05141706ad963e1d9c41b004c73c9569fd0ba2f353da8c19629a153bfb17b769 786fa7db63ea7a8106162fd05e01b52c8338d22b9502d3638880bc6f6d678344
lib/codeql/rust/generated/ConstExpr.qll 7bd3d75822259d2ac61bf3bab6a233948617fa09a7a3d48991b643f0c842925d 06785e5b723006a8c51cafda5b8ce3901e0ddd3aeafc0d3c80e61b9389830e85
lib/codeql/rust/generated/ContinueExpr.qll 452fc59b28ae46d00c6b42dc4b51bd5e65bc92859e769626a6f5b29ff2ec795d 4d7042814fb8f214bf982ad9771ca1a19bbb2a966ec20771478d50927cf1993f
lib/codeql/rust/generated/DbFile.qll 4dbf1931124291e0d6a958ae882f8aeef006642f72adc7ff86cffd3a4e9a970a 4dbf1931124291e0d6a958ae882f8aeef006642f72adc7ff86cffd3a4e9a970a
@@ -158,7 +163,8 @@ lib/codeql/rust/generated/Expr.qll 91b1744d6b07e8549b94d19832dac9e18b70f54990b32
lib/codeql/rust/generated/ExprStmt.qll 40fd3659761005fe0de2a09e58d35b3b28203f8f354ef5f687e6064862eb73d2 c4bcefa928d8a82f6b9d26a6e4f42912114bd24a90ee5dcc24e7ec1a4c11dbcb
lib/codeql/rust/generated/FieldExpr.qll 5050cabcc1109f0c404a64a80cf8e595088b1dfd9c24364281176400436922ef c7562bc91fd7c3f7305100d146ebc84378e73aa76fd1b36c06e69070105c0401
lib/codeql/rust/generated/File.qll 2eff5c882d044d2e360fe6382fb55e5a45f6ccb9df323cfa1fae41eae9d2a47f 87e7a906b3a1b4de056952e288ddd7f69fa7cb1bd9dc7dd3972868a9002ac1e4
lib/codeql/rust/generated/Function.qll 84a00eb88479efdfe70fe51c3b5cb27ae64a54b48dcca1f2e02f68691b7d907a cde5b965ab27e811f0d24eb4f12bca90c3e8aec3a4c1d9b8bd0023745dfab105
lib/codeql/rust/generated/Function.qll 133693679cd69f0c011d6aa779b067924e8d58ea15bc3f6b749cc3aa5d5e962d 5a18e3be5c7c681cebec762b2c2d3b1cb08c5fcc11ef422bf65c9b15fc82c893
lib/codeql/rust/generated/GenericArgs.qll c47ede327602ba85d237920bb1523cb38ad461497f5396ddfae580d332ab16f8 c47ede327602ba85d237920bb1523cb38ad461497f5396ddfae580d332ab16f8
lib/codeql/rust/generated/IfExpr.qll 3b68ac5d7741f566081dd8ad028f762c849d02e4f1532267a7660e24335bf08f bcc6b52c950afbe4654ccdbc10d578ca9e134597cc2653daa1832fcb2bef2ab6
lib/codeql/rust/generated/IndexExpr.qll a8263fb60cb625712b3ca875076994d9a28796482a9fc8fd524610d3107f20d2 a837f66ef6d70dd9ca04ef39d4fff5077e03ffaaf6efaf93e9f6b38eae37b454
lib/codeql/rust/generated/InlineAsmExpr.qll 0fbc121595d55df71a9190200ee8d7244851c517181d907d07236a8c338f1ebe b41cad499ebcc6aae4326ac5ae596210997fde99b6107feee35d6c9f764f0f5a
@@ -171,41 +177,43 @@ lib/codeql/rust/generated/LiteralExpr.qll 70684629cd017f32c220993f57ee4ebea0b9f6
lib/codeql/rust/generated/Locatable.qll 9e9685bba50ad2220701f3465e63af9331f7f9dc548ad906ff954fc2ce0a4400 78c89b2cc78a357d682ab65310dd474603071f07c1eaaab07711714ce17549f2
lib/codeql/rust/generated/Location.qll bce4c72988ec6fedd1439c60a37c45aa6147c962904709ef9f12206937174be4 d57000571771a2d997c50d9a43ef1c2f075960f847effa0e80ea91fd4c6b4d6c
lib/codeql/rust/generated/LoopExpr.qll ddc646e715dced161b60638ac36a7671b45ddd6245a6876d647916d41495faf1 864be7033c093a8513be05691f772f19f99b606abe510f810af5f004596c0c7c
lib/codeql/rust/generated/MatchArm.qll b70dd1934b7190e68cd6f9b2642f6fc67cba7ae13abd19d42f799a77e048d20e 9d544a6e09e9bdc84f0348b7b716e1dfab3bb98063f95938e83fe4264ee6c436
lib/codeql/rust/generated/MatchExpr.qll d3984b540d7c8e8fda2d99437445f110c789d0c889eca1bd4a38b941884b487d df78f882f75cf443e1a5b21d899559e24e047d5a368dca22b453d8f976d259ef
lib/codeql/rust/generated/MethodCallExpr.qll b94d96216c0203b27eb04c64500487ce284fdcf2158b9b636621fc2d2c93f377 91d00774e94600ba82ae5103b85e1e377b0baef866c7de87c34f806cc4c3bbac
lib/codeql/rust/generated/MatchArm.qll c82a871b33633dc5908d6abc665048b0bc3d761f134b8ceca51338c4a84a55c3 90faaed01f5e7c3ff6b9114b275c80418737c48b64082763e83cb63499fefa6a
lib/codeql/rust/generated/MatchExpr.qll cf48ca2000a1cf2b2fa05b42403bba9be94aac23a88bc88e1b97e86982ff4fe9 244960785828aa62c4c3d17251ef5a3b7dd3ce3e10fd99a364f98f760ca84e77
lib/codeql/rust/generated/MethodCallExpr.qll 83288ef71bb5f5ba9aadc3977ece9144b3eb58756270b9f76eaf3323153797b6 7fd96a56bb1fc0caa60b52d55a0cc14cc87bd3bd057a970993485375f9e3198a
lib/codeql/rust/generated/MissingExpr.qll 9ab4844a2d719d29a95a69d1a6f9477ded0db508f83f3e4f2101847d0486c300 f0706af7d600a4ed1dc253c9e1220e863a58cfb9334f853877b80dffadb35a3a
lib/codeql/rust/generated/MissingPat.qll 9fa2685c9f8b285c6b2f470a2c482b3bd1f071707192bc963937cbb1092d6a18 9fa2685c9f8b285c6b2f470a2c482b3bd1f071707192bc963937cbb1092d6a18
lib/codeql/rust/generated/Module.qll 2a931a4f2cdb2fee00ed83af045ea63d36b7dbd708e58c30445b5610feaae333 cd62add5c31a509f965aa294f44a1607ec7c62e3a9e3fe9ee063b3c814f4eb62
lib/codeql/rust/generated/Module.qll c6007444c796654fb48fbe4a4596580f08feec2aac13932043062a170dd73f0b 0560c738dbee3937baf0f2ab661c8e4dacd69eb886635241b1ff90f2c0f4bd67
lib/codeql/rust/generated/OffsetOfExpr.qll 03afe5637df806f4649fb2c67fdc4f048a2faab47f00e8320f85025d4a2fa933 4e5c0c98b0397f1388ac0c27ea415f594ebd591e980dd70590ed043856beb156
lib/codeql/rust/generated/OrPat.qll a9a606b001c9b3c6f5cb3d65a593cce043f49b1e8a237310c058f5293eec46a8 4b6ab0d2192c93c64a5f98b6083e91ac03fd040bead24831a1a88d274847c79d
lib/codeql/rust/generated/ParentChild.qll 956f55ac17d66926c59f76d391b75c30767d236b145d6ae402f4308fa22a7d01 dd3cabb5b4a9ba42be60345f445cde18b0d7be934aeb94d7312eeef122e148d2
lib/codeql/rust/generated/ParentChild.qll 68f8595b5d6136e7b29dfa7d5f4a6e77ad4f7feea9c40a0408e41d438a0a9159 53246623aab7cfd38e8c094dfb09c2ddd3adcca52f568814f672539a4d35b064
lib/codeql/rust/generated/Pat.qll b035e7866ea500232421ef9f79e7e60b90b9c27dbe47d25758548e94750d2965 adf701ad35559ea7d0284d6718ad507518778dc78100f48063e6a6bf3705c91f
lib/codeql/rust/generated/PathExpr.qll ef6665a46332e5c1bc3495f9e7028b0e56b83e99eda692965ca0cd8fc8931cb2 475c1a5374a37b959b09780dac3d62773bdf9fed7fb73ac325cb087e8ee39022
lib/codeql/rust/generated/PathPat.qll 6544da3df717fa99f2b4480bc69e9b6a376c88766fd4565a9bb17cb459987b10 1edf79c181d8836479bc7a9d8f0b0d955272cf7d821386824f5aab65a36a10b9
lib/codeql/rust/generated/Path.qll 6814a5a437c11da5ceaac7dd80c8d496446cb884476a9f3361908f2cd417ebb4 6814a5a437c11da5ceaac7dd80c8d496446cb884476a9f3361908f2cd417ebb4
lib/codeql/rust/generated/PathExpr.qll 5a82e07a0c641fec4e8ce29656fa4e33f420b19b2556b418769f4d899a3dfae3 21920262735114d8304c3569f884828a390b95ca039afcc3e81c75d3f23df9ca
lib/codeql/rust/generated/PathPat.qll 8aaa7fd5f3439ce567f4d6f729e3ba1e98ab24255070b7d4ba7bbde6506d97f5 10bd82ea0e846c96afa34cc6e467101a490a1191b4edc29a7154a6d93a467f1c
lib/codeql/rust/generated/PureSynthConstructors.qll 5eb1fc4f6a04172c34ae31e4931e4bf1f8b72fbe414c5f644731a45372d13573 5eb1fc4f6a04172c34ae31e4931e4bf1f8b72fbe414c5f644731a45372d13573
lib/codeql/rust/generated/RangeExpr.qll 1678fa524166552a36d73cad9d34213309b1989c1e427bc990b5c11a12588ce5 beb90978cea26a2ec9d3e8cc7b0b6a728ae952212ada5d6ad19319120f3218a8
lib/codeql/rust/generated/RangePat.qll 2e96aece5ff2300659c2729c7037f7334790456d86160dc1e16ae99545c6ed0d eae4f95f9eaacbc2319ee67556dcc164527d82a6eaa5af59f6efce9caf3cba3b
lib/codeql/rust/generated/Raw.qll 5dea1190c702f339a6c5da16cb922508cbc5818cb61f9bb6b2c7129167e68f3d 9f650660a6ca7e62426f4dd51fe33677d96658d48596baa52c390d8742caeb18
lib/codeql/rust/generated/Raw.qll d84338bad5b4d15d9379b3a1c76095b43d54bd542875161fb92eefead1db20c6 898a89f57aaa546355ff38ad2169b8d2e01d5c3556b2a969bf575a904c909f40
lib/codeql/rust/generated/RecordFieldPat.qll bff47b9ec13fd5747a9d4597feb3acaacd17876ed1ff411bcecf605c5909a01f adc2e30ae9169b861ce28c6c21431e9dd3fb3d3f832e99cb39f9f0ff6b1dbe2d
lib/codeql/rust/generated/RecordLitExpr.qll 442772626175d46dcd8e68b84d6a26b869affcc6cb1e88d880d31e7a705c772f 77976fea76b5741c1aff3e8a48eeb07987c3332ab9f52ef0c32caae75ad4f1c9
lib/codeql/rust/generated/RecordLitExpr.qll c83dafa1f07a34c686cee81188045c9e04aba5ebd54c4778708f1b20ccb76702 da4c710226d6604c313bfd88bfbe005c6178db054860da265de616e9a5a8b3f3
lib/codeql/rust/generated/RecordLitField.qll e7442557734e6c99b75bd24935d310e988585e68ffbbeedc1d9c8dbb2edfa32d 5bc6b951327caf00b39504f0efaeeb6ffca1dd67aa88bbf2633f238c6b973063
lib/codeql/rust/generated/RecordPat.qll fc5efed719d6dbceb4fa6eaa13dcbd9bcdb6958c2721dafd5bb56d7395003fef b7412c9376fd9628e6bba8dfea8914d76d3a6e63af3f8022cfc99f5c9e397c8d
lib/codeql/rust/generated/RecordPat.qll 2c1ef4a18148a5f0f755d04a3b9d1cda892f784e1741c2d90601983b2e130ec2 559d0ef93a3d93c9236eb2675ed5b89cc7dcfe599c52d784e6759954e478bd47
lib/codeql/rust/generated/RefExpr.qll 917d810bda28f3f4319770ae5c8eb4ae40887f3c97669fde072078d3f5536114 7793027298da1fb787f8823146507f1ccfab046977cc71743045b3c2f3b5da02
lib/codeql/rust/generated/RefPat.qll 2a451553084306acc625f0433dc02546d07a1b6174a7d614379c9e8e28550118 40b845320c68283d0f6e47f17f4d4d893ef613f41422d35663582cfa3b5e7d75
lib/codeql/rust/generated/RepeatExpr.qll 5a33101a5e2ba973beafe0d933ad5ca238050eb6f88638826dc37a712c05afaa c2cea180b7c068a3483cbda73168effe762ab2aa56bb8c590c8a15b6e54961ce
lib/codeql/rust/generated/ReturnExpr.qll 3d8fffeb6420a35d78f4f2e2e3e4ccf1c8454022c50395be2e8446f29740ddfa cc9dd916dc18114469d2eed9b82f83518af0de78797ad98777b29a5055bc77df
lib/codeql/rust/generated/SlicePat.qll 73dce5e310068357eb41e8c51923ff5c4054548db27987cde85735ddf071fc44 67fa0c285c110f18446689d1eaad9e82896df79d62999ad3f788fc295fa1d2c3
lib/codeql/rust/generated/Stmt.qll 58b010f32956f2736a7b9ebb43467ecd03308a1f27c99e2b09bb925c349ac859 9859da4a4aa29b4f7ab47313b2dfe8baf9717a162fcd8bd62a7cbab4afd1886e
lib/codeql/rust/generated/Synth.qll 03ecd0d7e89aca555d2393bbea8de1cde0476e28fb9f198ed3355a74f1b5c1c8 11855cc446c2d8a77503795a7c395e86ff149ea10d773a6e50e54b08dd438642
lib/codeql/rust/generated/SynthConstructors.qll 07106a119dcfc7a839454d1fa66c0e65d6ab17eeace40cd5bc857a65dc7c859b 07106a119dcfc7a839454d1fa66c0e65d6ab17eeace40cd5bc857a65dc7c859b
lib/codeql/rust/generated/Synth.qll 8a3569fcb4678500a7d16673f8c1f014bfa9a857d0b8cdb0f77aa3eea5e31206 4e26058ad665dcb0ca95a1a504553fb5ec32500b4dc154cbc5854f48829bfb9f
lib/codeql/rust/generated/SynthConstructors.qll 7b696491e21b37bf5de023b68838e5c09112995f0da436bfdde13c27dd35c4bf 7b696491e21b37bf5de023b68838e5c09112995f0da436bfdde13c27dd35c4bf
lib/codeql/rust/generated/TupleExpr.qll 0828181e2f1f1f233598eab367688615356f6b91451a40f8d812d247d93467fc 2473c52d3dfbec6c8cd66bd439c85959e854f617edf5afe545252a24304f2f2e
lib/codeql/rust/generated/TuplePat.qll a1b22c20ca02497e9be8c6edaeaff214a669ecb0d2493890e79c28c485f512a1 5cc082ea99de61662b2d4c8b59f7a833236e7e448943e8ee894ab6066cc761c4
lib/codeql/rust/generated/TupleStructPat.qll 7807a635e3ed14247dad405d44b4730a4ccc34207d7363a39a0bd2d53a8ccc97 5eb8ac529c2ee51a4ca15028e70dd0f6833a7d7fb6db330103b27bd2d91715e4
lib/codeql/rust/generated/TypeRef.qll 7cc468c2f473ee13c11a97c4360100376560e8fc42f25a136f1500fe31a31533 7cc468c2f473ee13c11a97c4360100376560e8fc42f25a136f1500fe31a31533
lib/codeql/rust/generated/TupleStructPat.qll 089563349c9866f5703e9d306ba2a475d7d4002e7236dbbf2feeb89290b4d24c a77842d7262a7d19b175f239d1ee6550b3b66a4efe903c5112bb82c0abd7b05d
lib/codeql/rust/generated/TypeRef.qll 919c1003fed54165a48617de35eb47ee1115f390ad56344fa8f20230e33a74b1 919c1003fed54165a48617de35eb47ee1115f390ad56344fa8f20230e33a74b1
lib/codeql/rust/generated/UnaryOpExpr.qll e9bf11b289e400b03fa04cf337a6ab8b8dbbedea1f7cfae905cc7b0e525ea5a8 b54fa0d29d357bcbc25ec10ba5b81e1758ba512ccf822fe2d3847fbfac0e3f12
lib/codeql/rust/generated/UnderscoreExpr.qll 964b77ddae265ad51fd03fcb7ef008fcb34eb5ea1a7ac0cd06ed84c1922fc07f 964b77ddae265ad51fd03fcb7ef008fcb34eb5ea1a7ac0cd06ed84c1922fc07f
lib/codeql/rust/generated/Unimplemented.qll 375b7935b7f4103728ece3042282ae82d19e471d7a9fa58c8cbdea31ea0cb113 375b7935b7f4103728ece3042282ae82d19e471d7a9fa58c8cbdea31ea0cb113
lib/codeql/rust/generated/Unimplemented.qll 0bebbf22b5a6484077ceacdd4d11a14665b95cc9e68b859f2d8218290842d1ad addecc8027e14ebbcb2eff4d038c16aa1f33f100e17ffaecd5de36b9a4c719a8
lib/codeql/rust/generated/UnimplementedDeclaration.qll ab05ff0a0fde6535e89ccb9cf197d97d722773f08bee5c0c742abeda956829d7 067be19ce1a963e59635e08f9eb7a3a7284874f45c651bdb1fe36509b5567912
lib/codeql/rust/generated/UnknownFile.qll ec9d1a3f15ecbf1743d4e39cb3b2f217aa9b54951c93302c2c4c238c3f0ce595 ec9d1a3f15ecbf1743d4e39cb3b2f217aa9b54951c93302c2c4c238c3f0ce595
lib/codeql/rust/generated/UnknownLocation.qll a19e2838c52d702d268ae530f3dbd6fcd8bb28a237a52636a960f225454103cf a19e2838c52d702d268ae530f3dbd6fcd8bb28a237a52636a960f225454103cf
lib/codeql/rust/generated/UnsafeBlockExpr.qll 52edde0daa57fea065f06537db05b5d442c63b3fa8777bf55ef2b2106c228ee9 52edde0daa57fea065f06537db05b5d442c63b3fa8777bf55ef2b2106c228ee9
@@ -247,6 +255,7 @@ test/extractor-tests/generated/ExprStmt/ExprStmt.ql 037695af057183ef9e35569c9255
test/extractor-tests/generated/FieldExpr/FieldExpr.ql 6d85c8b85905baf66ae1f6ed716e42530d814f86261d98eddceab861939227e5 5765fb0376978a9006e2dc175bb224c5c944f19ddf628a2b933b1bebf81015a2
test/extractor-tests/generated/File/File.ql dec43be882fad904fab0c6447ca93633d801cb08ff8bec309befde7d2b9e5dda 74e1f1d698558c35fa03935cc34f4c8145d376b56d7657b18aeb338f5ca752cf
test/extractor-tests/generated/Function/Function.ql c49434420dbb6fc3d9e6294161dcd3d3b306fae5ba5c85b610e534b8b15ef74c fe02208b673b74eebed92b5cbb3a8a06c31c0681eb28f3e596515663f14fa9e2
test/extractor-tests/generated/GenericArgs/MISSING_SOURCE.txt cc7c395e7c651d62596826b1a0bedf10f35d01b8afeef47600b4ddaf804f406e cc7c395e7c651d62596826b1a0bedf10f35d01b8afeef47600b4ddaf804f406e
test/extractor-tests/generated/IfExpr/IfExpr.ql 4463607934fd504a6b2d65829d8e336308af6908cf12387fe8bbaa3c8c5360bd 28b5580a4e628286023b5d0de549d087f0a4224ecbb02bc7b3197d8f404b5066
test/extractor-tests/generated/IfExpr/IfExpr_getElse.ql 4b4f3edfd0ed419fc580f3def6005760711874cc442c42ea817d70053ec07fca f97f65f91aa3f4967a2d3de836235d9c9a15f424cfced79d84f2580abf2c6077
test/extractor-tests/generated/IndexExpr/IndexExpr.ql 6cfc282e84f9844630ebdb4dfc60f645d18a737d9b0e9f014c08476c935a92f7 86a336ac0193f0d6cc6fc7427b0423867a10323de0f95cda88f76a178c213430
@@ -270,13 +279,15 @@ test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql 4d9753964
test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgs.ql 2226b4759bee9091d88a7d72be5d8f8ad43f17b07fdd1a1f64ae3da5aa6aa333 ee9e06838b879ce90b00d9289eea32fbda9c02e0074d306a2f1f5991956c7deb
test/extractor-tests/generated/MissingExpr/MissingExpr.ql bb85675a4b8a8118913fd91389f8282863613edda3fb804b917cce0675a8bb76 f2e600f8fb723f8f1bde4b0b0ef41f59b4e652882b5c788e8f6767822d5574e4
test/extractor-tests/generated/MissingPat/MissingPat.ql 7a9ee46a40f6bfd31336beb6d9f6256fb8099cb6c052ba3131a95a45716224a4 619375e7dc6d95b8f1d1c958217350fc1553882f0f41ebd9f7a071d6947232d8
test/extractor-tests/generated/Module/MISSING_SOURCE.txt cc7c395e7c651d62596826b1a0bedf10f35d01b8afeef47600b4ddaf804f406e cc7c395e7c651d62596826b1a0bedf10f35d01b8afeef47600b4ddaf804f406e
test/extractor-tests/generated/Module/Module.ql 0afd07f619ee68a7f7270ebf9a4a6b7d6849448924083369c4101650854e1e77 b3239a1ebdde858179f4eba19e6c0cb3ea28b823f423fdff90f7b870b7fbf003
test/extractor-tests/generated/Module/Module_getDeclaration.ql 8343f2b4be470a502c4bfdba9ef74173a440f45b7300aa9d517c2bd68ccac36a fc7666228fd1d3fe4fc63466aa04ee8adf62e9fe0008fd92ea337c8585a7fef5
test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql 579e667797cb071784fa4c8e4e79bffd8b7a797bc70a68054ab51950dbebf4f0 dd92801d8909d83be1f824a2dfc599551c11b63ad1e96593e22d3b43464d7cf1
test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.ql f18b39caeb2d9410cd1c4b472c31477da8dcff27ad43837e57c679a8eda0ca76 bb30037b5001d78585df9d23d9c4c73d1f864bb8b3778f402838f18acacfadc6
test/extractor-tests/generated/OrPat/OrPat.ql 51d9a0f5993510542a2cca353c1ca48ba1e5fb97a65bee7f02398cd90debaa41 06e0936b80a07a16e22fad3a3a541000f170fd5ad301a3170b98a91f51d09144
test/extractor-tests/generated/OrPat/OrPat_getArg.ql 693d62aa9817ce7661b4698c2948bca6567c1376b2ae832f3020462e8ab8d2ee 1fd9809826c6f2dece3014299f1d70210c9f23e5eefbd04b1d6024e1ecd46209
test/extractor-tests/generated/PathExpr/PathExpr.ql aa8c36042688ad96a268b066b38fcaac3befa6490cc3510c15f824fce63e8949 71de233de72dd87c7c9129617d03f9fbc9bb9460ea896002cbb881f84451835d
test/extractor-tests/generated/PathPat/PathPat.ql 3b8bf11f2ab1ebe1e19bca0e8f1095215ffd9ee5389cac203971888449b86124 a1e4a4964837a170ad88d3fe3a47e5437354b22fd19382baad2090b0e0b3e1f7
test/extractor-tests/generated/Path/MISSING_SOURCE.txt cc7c395e7c651d62596826b1a0bedf10f35d01b8afeef47600b4ddaf804f406e cc7c395e7c651d62596826b1a0bedf10f35d01b8afeef47600b4ddaf804f406e
test/extractor-tests/generated/PathExpr/PathExpr.ql 3013e12d5dab5c38c5b8fcaec59e78a3c6477f4edc8b01b078ecbfe7b8f82ffb 40427c9d420456174e1524ed046a5f445b9b72ca8b87abefb6c9498d4c809fc5
test/extractor-tests/generated/PathPat/PathPat.ql 57dd735fe179cc1b91ee66b7849bcdd1aabe661762e88e1678cdaaa53526a10c 1734a45d47ee484fbf2cadb5620b28874a904fe944030a9e39166a6a25aa0de7
test/extractor-tests/generated/RangeExpr/RangeExpr.ql c6e56a997c3543818ce6ffadabbab3bb233a099caa9e06e36519ac02f666dc93 0dcabe2df4c8ab3ba7b171cefb009a09c442ff71373f828c6c667bbb9eee2e45
test/extractor-tests/generated/RangeExpr/RangeExpr_getLhs.ql 063ee8f6146110b97f4ee8944a5f37f0dd7cd5be049f13546d42a888a973d826 1184cc1fe937a01e9d12577478750be1497d4f99231486ae6d75104e7304eeb2
test/extractor-tests/generated/RangeExpr/RangeExpr_getRhs.ql 6a7eb53c6b2a4587212f65c522387f726b2b9b3f204708a2a764e238aec8d89f 8b3095fdd9c6900eef656d4e9e18f5f4866b285634cc725e73246976af20450c

15
rust/ql/.gitattributes generated vendored
View File

@@ -46,6 +46,8 @@
/lib/codeql/rust/elements/FieldExpr.qll linguist-generated
/lib/codeql/rust/elements/FieldExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/FunctionConstructor.qll linguist-generated
/lib/codeql/rust/elements/GenericArgs.qll linguist-generated
/lib/codeql/rust/elements/GenericArgsConstructor.qll linguist-generated
/lib/codeql/rust/elements/IfExpr.qll linguist-generated
/lib/codeql/rust/elements/IfExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/IndexExpr.qll linguist-generated
@@ -83,6 +85,8 @@
/lib/codeql/rust/elements/OrPat.qll linguist-generated
/lib/codeql/rust/elements/OrPatConstructor.qll linguist-generated
/lib/codeql/rust/elements/Pat.qll linguist-generated
/lib/codeql/rust/elements/Path.qll linguist-generated
/lib/codeql/rust/elements/PathConstructor.qll linguist-generated
/lib/codeql/rust/elements/PathExpr.qll linguist-generated
/lib/codeql/rust/elements/PathExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/PathPat.qll linguist-generated
@@ -123,7 +127,8 @@
/lib/codeql/rust/elements/UnderscoreExpr.qll linguist-generated
/lib/codeql/rust/elements/UnderscoreExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/Unimplemented.qll linguist-generated
/lib/codeql/rust/elements/UnimplementedConstructor.qll linguist-generated
/lib/codeql/rust/elements/UnimplementedDeclaration.qll linguist-generated
/lib/codeql/rust/elements/UnimplementedDeclarationConstructor.qll linguist-generated
/lib/codeql/rust/elements/UnsafeBlockExpr.qll linguist-generated
/lib/codeql/rust/elements/UnsafeBlockExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/WildPat.qll linguist-generated
@@ -161,6 +166,7 @@
/lib/codeql/rust/generated/FieldExpr.qll linguist-generated
/lib/codeql/rust/generated/File.qll linguist-generated
/lib/codeql/rust/generated/Function.qll linguist-generated
/lib/codeql/rust/generated/GenericArgs.qll linguist-generated
/lib/codeql/rust/generated/IfExpr.qll linguist-generated
/lib/codeql/rust/generated/IndexExpr.qll linguist-generated
/lib/codeql/rust/generated/InlineAsmExpr.qll linguist-generated
@@ -183,6 +189,7 @@
/lib/codeql/rust/generated/OrPat.qll linguist-generated
/lib/codeql/rust/generated/ParentChild.qll linguist-generated
/lib/codeql/rust/generated/Pat.qll linguist-generated
/lib/codeql/rust/generated/Path.qll linguist-generated
/lib/codeql/rust/generated/PathExpr.qll linguist-generated
/lib/codeql/rust/generated/PathPat.qll linguist-generated
/lib/codeql/rust/generated/PureSynthConstructors.qll linguist-generated
@@ -208,6 +215,7 @@
/lib/codeql/rust/generated/UnaryOpExpr.qll linguist-generated
/lib/codeql/rust/generated/UnderscoreExpr.qll linguist-generated
/lib/codeql/rust/generated/Unimplemented.qll linguist-generated
/lib/codeql/rust/generated/UnimplementedDeclaration.qll linguist-generated
/lib/codeql/rust/generated/UnknownFile.qll linguist-generated
/lib/codeql/rust/generated/UnknownLocation.qll linguist-generated
/lib/codeql/rust/generated/UnsafeBlockExpr.qll linguist-generated
@@ -249,6 +257,7 @@
/test/extractor-tests/generated/FieldExpr/FieldExpr.ql linguist-generated
/test/extractor-tests/generated/File/File.ql linguist-generated
/test/extractor-tests/generated/Function/Function.ql linguist-generated
/test/extractor-tests/generated/GenericArgs/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/IfExpr/IfExpr.ql linguist-generated
/test/extractor-tests/generated/IfExpr/IfExpr_getElse.ql linguist-generated
/test/extractor-tests/generated/IndexExpr/IndexExpr.ql linguist-generated
@@ -272,11 +281,13 @@
/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgs.ql linguist-generated
/test/extractor-tests/generated/MissingExpr/MissingExpr.ql linguist-generated
/test/extractor-tests/generated/MissingPat/MissingPat.ql linguist-generated
/test/extractor-tests/generated/Module/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/Module/Module.ql linguist-generated
/test/extractor-tests/generated/Module/Module_getDeclaration.ql linguist-generated
/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql linguist-generated
/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.ql linguist-generated
/test/extractor-tests/generated/OrPat/OrPat.ql linguist-generated
/test/extractor-tests/generated/OrPat/OrPat_getArg.ql linguist-generated
/test/extractor-tests/generated/Path/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/PathExpr/PathExpr.ql linguist-generated
/test/extractor-tests/generated/PathPat/PathPat.ql linguist-generated
/test/extractor-tests/generated/RangeExpr/RangeExpr.ql linguist-generated

View File

@@ -31,6 +31,7 @@ import codeql.rust.elements.ExprStmt
import codeql.rust.elements.FieldExpr
import codeql.rust.elements.File
import codeql.rust.elements.Function
import codeql.rust.elements.GenericArgs
import codeql.rust.elements.IfExpr
import codeql.rust.elements.IndexExpr
import codeql.rust.elements.InlineAsmExpr
@@ -52,6 +53,7 @@ import codeql.rust.elements.Module
import codeql.rust.elements.OffsetOfExpr
import codeql.rust.elements.OrPat
import codeql.rust.elements.Pat
import codeql.rust.elements.Path
import codeql.rust.elements.PathExpr
import codeql.rust.elements.PathPat
import codeql.rust.elements.RangeExpr
@@ -73,6 +75,7 @@ import codeql.rust.elements.TypeRef
import codeql.rust.elements.UnaryOpExpr
import codeql.rust.elements.UnderscoreExpr
import codeql.rust.elements.Unimplemented
import codeql.rust.elements.UnimplementedDeclaration
import codeql.rust.elements.UnknownFile
import codeql.rust.elements.UnknownLocation
import codeql.rust.elements.UnsafeBlockExpr

View File

@@ -9,7 +9,7 @@ private import codeql.rust.generated.ConstBlockPat
* A const block pattern. For example:
* ```
* match x {
* const { 1 + 2 + 3} => "ok",
* const { 1 + 2 + 3 } => "ok",
* _ => "fail",
* };
* ```

View File

@@ -8,7 +8,7 @@ private import codeql.rust.generated.Function
/**
* A function declaration. For example
* ```
* fn foo(x: u32) -> u64 { (x + 1).into() }
* fn foo(x: u32) -> u64 {(x + 1).into()}
* ```
* A function declaration within a trait might not have a body:
* ```

View File

@@ -0,0 +1,8 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module provides a hand-modifiable wrapper around the generated class `GenericArgs`.
*/
private import codeql.rust.generated.GenericArgs
class GenericArgs extends Generated::GenericArgs { }

View File

@@ -1,14 +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
* `Unimplemented` synthesized instances.
* `GenericArgs` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.generated.Raw
/**
* The characteristic predicate of `Unimplemented` synthesized instances.
* The characteristic predicate of `GenericArgs` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructUnimplemented(Raw::Unimplemented id) { any() }
predicate constructGenericArgs(Raw::GenericArgs id) { any() }

View File

@@ -11,13 +11,13 @@ private import codeql.rust.generated.MatchArm
* match x {
* Some(y) => y,
* None => 0,
* }
* };
* ```
* ```
* match x {
* Some(y) if y != 0 => 1 / y,
* _ => 0,
* }
* };
* ```
*/
class MatchArm extends Generated::MatchArm { }

View File

@@ -13,6 +13,7 @@ private import codeql.rust.generated.MatchExpr
* None => 0,
* }
* ```
* ```
* match x {
* Some(y) if y != 0 => 1 / y,
* _ => 0,

View File

@@ -5,4 +5,15 @@
private import codeql.rust.generated.Module
/**
* A module declaration. For example:
* ```
* mod foo;
* ```
* ```
* mod bar {
* pub fn baz() {}
* }
* ```
*/
class Module extends Generated::Module { }

View File

@@ -0,0 +1,8 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module provides a hand-modifiable wrapper around the generated class `Path`.
*/
private import codeql.rust.generated.Path
class Path extends Generated::Path { }

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
* `Path` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.generated.Raw
/**
* The characteristic predicate of `Path` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructPath(Raw::Path id) { any() }

View File

@@ -0,0 +1,8 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module provides a hand-modifiable wrapper around the generated class `UnimplementedDeclaration`.
*/
private import codeql.rust.generated.UnimplementedDeclaration
class UnimplementedDeclaration extends Generated::UnimplementedDeclaration { }

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
* `UnimplementedDeclaration` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.generated.Raw
/**
* The characteristic predicate of `UnimplementedDeclaration` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructUnimplementedDeclaration(Raw::UnimplementedDeclaration id) { any() }

View File

@@ -18,7 +18,7 @@ module Generated {
* A const block pattern. For example:
* ```
* match x {
* const { 1 + 2 + 3} => "ok",
* const { 1 + 2 + 3 } => "ok",
* _ => "fail",
* };
* ```

View File

@@ -17,7 +17,7 @@ module Generated {
/**
* A function declaration. For example
* ```
* fn foo(x: u32) -> u64 { (x + 1).into() }
* fn foo(x: u32) -> u64 {(x + 1).into()}
* ```
* A function declaration within a trait might not have a body:
* ```

View File

@@ -0,0 +1,24 @@
// generated by codegen
/**
* This module provides the generated definition of `GenericArgs`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.generated.Synth
private import codeql.rust.generated.Raw
import codeql.rust.elements.AstNode
import codeql.rust.elements.Unimplemented
/**
* INTERNAL: This module contains the fully generated definition of `GenericArgs` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::GenericArgs` class directly.
* Use the subclass `GenericArgs`, where the following predicates are available.
*/
class GenericArgs extends Synth::TGenericArgs, AstNode, Unimplemented {
override string getAPrimaryQlClass() { result = "GenericArgs" }
}
}

View File

@@ -21,13 +21,13 @@ module Generated {
* match x {
* Some(y) => y,
* None => 0,
* }
* };
* ```
* ```
* match x {
* Some(y) if y != 0 => 1 / y,
* _ => 0,
* }
* };
* ```
* INTERNAL: Do not reference the `Generated::MatchArm` class directly.
* Use the subclass `MatchArm`, where the following predicates are available.

View File

@@ -22,6 +22,7 @@ module Generated {
* None => 0,
* }
* ```
* ```
* match x {
* Some(y) if y != 0 => 1 / y,
* _ => 0,

View File

@@ -7,7 +7,7 @@
private import codeql.rust.generated.Synth
private import codeql.rust.generated.Raw
import codeql.rust.elements.Expr
import codeql.rust.elements.Unimplemented
import codeql.rust.elements.GenericArgs
/**
* INTERNAL: This module contains the fully generated definition of `MethodCallExpr` and should not
@@ -65,9 +65,9 @@ module Generated {
/**
* Gets the generic arguments of this method call expression, if it exists.
*/
Unimplemented getGenericArgs() {
GenericArgs getGenericArgs() {
result =
Synth::convertUnimplementedFromRaw(Synth::convertMethodCallExprToRaw(this)
Synth::convertGenericArgsFromRaw(Synth::convertMethodCallExprToRaw(this)
.(Raw::MethodCallExpr)
.getGenericArgs())
}

View File

@@ -14,6 +14,15 @@ import codeql.rust.elements.Declaration
*/
module Generated {
/**
* A module declaration. For example:
* ```
* mod foo;
* ```
* ```
* mod bar {
* pub fn baz() {}
* }
* ```
* INTERNAL: Do not reference the `Generated::Module` class directly.
* Use the subclass `Module`, where the following predicates are available.
*/

View File

@@ -49,6 +49,21 @@ private module Impl {
)
}
private Element getImmediateChildOfUnimplemented(
Unimplemented e, int index, string partialPredicateCall
) {
exists(int b, int bElement, int n |
b = 0 and
bElement = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfElement(e, i, _)) | i) and
n = bElement and
(
none()
or
result = getImmediateChildOfElement(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfAstNode(AstNode e, int index, string partialPredicateCall) {
exists(int b, int bLocatable, int n |
b = 0 and
@@ -146,6 +161,25 @@ private module Impl {
)
}
private Element getImmediateChildOfGenericArgs(
GenericArgs e, int index, string partialPredicateCall
) {
exists(int b, int bAstNode, int bUnimplemented, int n |
b = 0 and
bAstNode = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAstNode(e, i, _)) | i) and
bUnimplemented =
bAstNode + 1 + max(int i | i = -1 or exists(getImmediateChildOfUnimplemented(e, i, _)) | i) and
n = bUnimplemented and
(
none()
or
result = getImmediateChildOfAstNode(e, index - b, partialPredicateCall)
or
result = getImmediateChildOfUnimplemented(e, index - bAstNode, partialPredicateCall)
)
)
}
private Element getImmediateChildOfLabel(Label e, int index, string partialPredicateCall) {
exists(int b, int bAstNode, int n |
b = 0 and
@@ -194,6 +228,23 @@ private module Impl {
)
}
private Element getImmediateChildOfPath(Path e, int index, string partialPredicateCall) {
exists(int b, int bAstNode, int bUnimplemented, int n |
b = 0 and
bAstNode = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAstNode(e, i, _)) | i) and
bUnimplemented =
bAstNode + 1 + max(int i | i = -1 or exists(getImmediateChildOfUnimplemented(e, i, _)) | i) and
n = bUnimplemented and
(
none()
or
result = getImmediateChildOfAstNode(e, index - b, partialPredicateCall)
or
result = getImmediateChildOfUnimplemented(e, index - bAstNode, partialPredicateCall)
)
)
}
private Element getImmediateChildOfRecordFieldPat(
RecordFieldPat e, int index, string partialPredicateCall
) {
@@ -244,29 +295,18 @@ private module Impl {
}
private Element getImmediateChildOfTypeRef(TypeRef e, int index, string partialPredicateCall) {
exists(int b, int bAstNode, int n |
exists(int b, int bAstNode, int bUnimplemented, int n |
b = 0 and
bAstNode = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAstNode(e, i, _)) | i) and
n = bAstNode and
bUnimplemented =
bAstNode + 1 + max(int i | i = -1 or exists(getImmediateChildOfUnimplemented(e, i, _)) | i) and
n = bUnimplemented and
(
none()
or
result = getImmediateChildOfAstNode(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfUnimplemented(
Unimplemented e, int index, string partialPredicateCall
) {
exists(int b, int bAstNode, int n |
b = 0 and
bAstNode = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAstNode(e, i, _)) | i) and
n = bAstNode and
(
none()
or
result = getImmediateChildOfAstNode(e, index - b, partialPredicateCall)
result = getImmediateChildOfUnimplemented(e, index - bAstNode, partialPredicateCall)
)
)
}
@@ -1163,6 +1203,27 @@ private module Impl {
)
}
private Element getImmediateChildOfUnimplementedDeclaration(
UnimplementedDeclaration e, int index, string partialPredicateCall
) {
exists(int b, int bDeclaration, int bUnimplemented, int n |
b = 0 and
bDeclaration =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfDeclaration(e, i, _)) | i) and
bUnimplemented =
bDeclaration + 1 +
max(int i | i = -1 or exists(getImmediateChildOfUnimplemented(e, i, _)) | i) and
n = bUnimplemented and
(
none()
or
result = getImmediateChildOfDeclaration(e, index - b, partialPredicateCall)
or
result = getImmediateChildOfUnimplemented(e, index - bDeclaration, partialPredicateCall)
)
)
}
private Element getImmediateChildOfWildPat(WildPat e, int index, string partialPredicateCall) {
exists(int b, int bPat, int n |
b = 0 and
@@ -1309,18 +1370,20 @@ private module Impl {
or
result = getImmediateChildOfUnknownLocation(e, index, partialAccessor)
or
result = getImmediateChildOfGenericArgs(e, index, partialAccessor)
or
result = getImmediateChildOfLabel(e, index, partialAccessor)
or
result = getImmediateChildOfMatchArm(e, index, partialAccessor)
or
result = getImmediateChildOfPath(e, index, partialAccessor)
or
result = getImmediateChildOfRecordFieldPat(e, index, partialAccessor)
or
result = getImmediateChildOfRecordLitField(e, index, partialAccessor)
or
result = getImmediateChildOfTypeRef(e, index, partialAccessor)
or
result = getImmediateChildOfUnimplemented(e, index, partialAccessor)
or
result = getImmediateChildOfAwaitExpr(e, index, partialAccessor)
or
result = getImmediateChildOfBecomeExpr(e, index, partialAccessor)
@@ -1415,6 +1478,8 @@ private module Impl {
or
result = getImmediateChildOfUnderscoreExpr(e, index, partialAccessor)
or
result = getImmediateChildOfUnimplementedDeclaration(e, index, partialAccessor)
or
result = getImmediateChildOfWildPat(e, index, partialAccessor)
or
result = getImmediateChildOfYeetExpr(e, index, partialAccessor)

View File

@@ -0,0 +1,24 @@
// generated by codegen
/**
* This module provides the generated definition of `Path`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.generated.Synth
private import codeql.rust.generated.Raw
import codeql.rust.elements.AstNode
import codeql.rust.elements.Unimplemented
/**
* INTERNAL: This module contains the fully generated definition of `Path` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::Path` class directly.
* Use the subclass `Path`, where the following predicates are available.
*/
class Path extends Synth::TPath, AstNode, Unimplemented {
override string getAPrimaryQlClass() { result = "Path" }
}
}

View File

@@ -7,7 +7,7 @@
private import codeql.rust.generated.Synth
private import codeql.rust.generated.Raw
import codeql.rust.elements.Expr
import codeql.rust.elements.Unimplemented
import codeql.rust.elements.Path
/**
* INTERNAL: This module contains the fully generated definition of `PathExpr` and should not
@@ -31,11 +31,9 @@ module Generated {
/**
* Gets the path of this path expression.
*/
Unimplemented getPath() {
Path getPath() {
result =
Synth::convertUnimplementedFromRaw(Synth::convertPathExprToRaw(this)
.(Raw::PathExpr)
.getPath())
Synth::convertPathFromRaw(Synth::convertPathExprToRaw(this).(Raw::PathExpr).getPath())
}
}
}

View File

@@ -7,7 +7,7 @@
private import codeql.rust.generated.Synth
private import codeql.rust.generated.Raw
import codeql.rust.elements.Pat
import codeql.rust.elements.Unimplemented
import codeql.rust.elements.Path
/**
* INTERNAL: This module contains the fully generated definition of `PathPat` and should not
@@ -31,9 +31,8 @@ module Generated {
/**
* Gets the path of this path pat.
*/
Unimplemented getPath() {
result =
Synth::convertUnimplementedFromRaw(Synth::convertPathPatToRaw(this).(Raw::PathPat).getPath())
Path getPath() {
result = Synth::convertPathFromRaw(Synth::convertPathPatToRaw(this).(Raw::PathPat).getPath())
}
}
}

View File

@@ -60,6 +60,11 @@ module Raw {
int getEndColumn() { locations(this, _, _, _, _, result) }
}
/**
* INTERNAL: Do not use.
*/
class Unimplemented extends @unimplemented, Element { }
/**
* INTERNAL: Do not use.
*/
@@ -90,6 +95,13 @@ module Raw {
*/
class Expr extends @expr, AstNode { }
/**
* INTERNAL: Do not use.
*/
class GenericArgs extends @generic_args, AstNode, Unimplemented {
override string toString() { result = "GenericArgs" }
}
/**
* INTERNAL: Do not use.
* A label. For example:
@@ -116,13 +128,13 @@ module Raw {
* match x {
* Some(y) => y,
* None => 0,
* }
* };
* ```
* ```
* match x {
* Some(y) if y != 0 => 1 / y,
* _ => 0,
* }
* };
* ```
*/
class MatchArm extends @match_arm, AstNode {
@@ -150,6 +162,13 @@ module Raw {
*/
class Pat extends @pat, AstNode { }
/**
* INTERNAL: Do not use.
*/
class Path extends @path, AstNode, Unimplemented {
override string toString() { result = "Path" }
}
/**
* INTERNAL: Do not use.
* A field in a record pattern. For example `a: 1` in:
@@ -201,17 +220,10 @@ module Raw {
/**
* INTERNAL: Do not use.
*/
class TypeRef extends @type_ref, AstNode {
class TypeRef extends @type_ref, AstNode, Unimplemented {
override string toString() { result = "TypeRef" }
}
/**
* INTERNAL: Do not use.
*/
class Unimplemented extends @unimplemented, AstNode {
override string toString() { result = "Unimplemented" }
}
/**
* INTERNAL: Do not use.
* An array expression. For example:
@@ -506,7 +518,7 @@ module Raw {
* A const block pattern. For example:
* ```
* match x {
* const { 1 + 2 + 3} => "ok",
* const { 1 + 2 + 3 } => "ok",
* _ => "fail",
* };
* ```
@@ -613,7 +625,7 @@ module Raw {
* INTERNAL: Do not use.
* A function declaration. For example
* ```
* fn foo(x: u32) -> u64 { (x + 1).into() }
* fn foo(x: u32) -> u64 {(x + 1).into()}
* ```
* A function declaration within a trait might not have a body:
* ```
@@ -874,6 +886,7 @@ module Raw {
* None => 0,
* }
* ```
* ```
* match x {
* Some(y) if y != 0 => 1 / y,
* _ => 0,
@@ -922,7 +935,7 @@ module Raw {
/**
* Gets the generic arguments of this method call expression, if it exists.
*/
Unimplemented getGenericArgs() { method_call_expr_generic_args(this, result) }
GenericArgs getGenericArgs() { method_call_expr_generic_args(this, result) }
}
/**
@@ -953,6 +966,15 @@ module Raw {
/**
* INTERNAL: Do not use.
* A module declaration. For example:
* ```
* mod foo;
* ```
* ```
* mod bar {
* pub fn baz() {}
* }
* ```
*/
class Module extends @module, Declaration {
override string toString() { result = "Module" }
@@ -1018,7 +1040,7 @@ module Raw {
/**
* Gets the path of this path expression.
*/
Unimplemented getPath() { path_exprs(this, result) }
Path getPath() { path_exprs(this, result) }
}
/**
@@ -1037,7 +1059,7 @@ module Raw {
/**
* Gets the path of this path pat.
*/
Unimplemented getPath() { path_pats(this, result) }
Path getPath() { path_pats(this, result) }
}
/**
@@ -1112,7 +1134,7 @@ module Raw {
/**
* Gets the path of this record lit expression, if it exists.
*/
Unimplemented getPath() { record_lit_expr_paths(this, result) }
Path getPath() { record_lit_expr_paths(this, result) }
/**
* Gets the `index`th field of this record lit expression (0-based).
@@ -1151,7 +1173,7 @@ module Raw {
/**
* Gets the path of this record pat, if it exists.
*/
Unimplemented getPath() { record_pat_paths(this, result) }
Path getPath() { record_pat_paths(this, result) }
/**
* Gets the `index`th argument of this record pat (0-based).
@@ -1330,7 +1352,7 @@ module Raw {
/**
* Gets the path of this tuple struct pat, if it exists.
*/
Unimplemented getPath() { tuple_struct_pat_paths(this, result) }
Path getPath() { tuple_struct_pat_paths(this, result) }
/**
* Gets the `index`th argument of this tuple struct pat (0-based).
@@ -1377,6 +1399,13 @@ module Raw {
override string toString() { result = "UnderscoreExpr" }
}
/**
* INTERNAL: Do not use.
*/
class UnimplementedDeclaration extends @unimplemented_declaration, Declaration, Unimplemented {
override string toString() { result = "UnimplementedDeclaration" }
}
/**
* INTERNAL: Do not use.
* A wildcard pattern. For example:

View File

@@ -7,8 +7,8 @@
private import codeql.rust.generated.Synth
private import codeql.rust.generated.Raw
import codeql.rust.elements.Expr
import codeql.rust.elements.Path
import codeql.rust.elements.RecordLitField
import codeql.rust.elements.Unimplemented
/**
* INTERNAL: This module contains the fully generated definition of `RecordLitExpr` and should not
@@ -32,9 +32,9 @@ module Generated {
/**
* Gets the path of this record lit expression, if it exists.
*/
Unimplemented getPath() {
Path getPath() {
result =
Synth::convertUnimplementedFromRaw(Synth::convertRecordLitExprToRaw(this)
Synth::convertPathFromRaw(Synth::convertRecordLitExprToRaw(this)
.(Raw::RecordLitExpr)
.getPath())
}

View File

@@ -7,8 +7,8 @@
private import codeql.rust.generated.Synth
private import codeql.rust.generated.Raw
import codeql.rust.elements.Pat
import codeql.rust.elements.Path
import codeql.rust.elements.RecordFieldPat
import codeql.rust.elements.Unimplemented
/**
* INTERNAL: This module contains the fully generated definition of `RecordPat` and should not
@@ -32,11 +32,9 @@ module Generated {
/**
* Gets the path of this record pat, if it exists.
*/
Unimplemented getPath() {
Path getPath() {
result =
Synth::convertUnimplementedFromRaw(Synth::convertRecordPatToRaw(this)
.(Raw::RecordPat)
.getPath())
Synth::convertPathFromRaw(Synth::convertRecordPatToRaw(this).(Raw::RecordPat).getPath())
}
/**

View File

@@ -99,6 +99,10 @@ module Synth {
* INTERNAL: Do not use.
*/
TFunction(Raw::Function id) { constructFunction(id) } or
/**
* INTERNAL: Do not use.
*/
TGenericArgs(Raw::GenericArgs id) { constructGenericArgs(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -171,6 +175,10 @@ module Synth {
* INTERNAL: Do not use.
*/
TOrPat(Raw::OrPat id) { constructOrPat(id) } or
/**
* INTERNAL: Do not use.
*/
TPath(Raw::Path id) { constructPath(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -250,7 +258,9 @@ module Synth {
/**
* INTERNAL: Do not use.
*/
TUnimplemented(Raw::Unimplemented id) { constructUnimplemented(id) } or
TUnimplementedDeclaration(Raw::UnimplementedDeclaration id) {
constructUnimplementedDeclaration(id)
} or
/**
* INTERNAL: Do not use.
*/
@@ -285,8 +295,8 @@ module Synth {
* INTERNAL: Do not use.
*/
class TAstNode =
TDeclaration or TExpr or TLabel or TMatchArm or TPat or TRecordFieldPat or TRecordLitField or
TStmt or TTypeRef or TUnimplemented;
TDeclaration or TExpr or TGenericArgs or TLabel or TMatchArm or TPat or TPath or
TRecordFieldPat or TRecordLitField or TStmt or TTypeRef;
/**
* INTERNAL: Do not use.
@@ -296,7 +306,7 @@ module Synth {
/**
* INTERNAL: Do not use.
*/
class TDeclaration = TFunction or TModule;
class TDeclaration = TFunction or TModule or TUnimplementedDeclaration;
/**
* INTERNAL: Do not use.
@@ -336,6 +346,11 @@ module Synth {
*/
class TStmt = TExprStmt or TItemStmt or TLetStmt;
/**
* INTERNAL: Do not use.
*/
class TUnimplemented = TGenericArgs or TPath or TTypeRef or TUnimplementedDeclaration;
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TAsyncBlockExpr`, if possible.
@@ -483,6 +498,13 @@ module Synth {
cached
TFunction convertFunctionFromRaw(Raw::Element e) { result = TFunction(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TGenericArgs`, if possible.
*/
cached
TGenericArgs convertGenericArgsFromRaw(Raw::Element e) { result = TGenericArgs(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TIfExpr`, if possible.
@@ -609,6 +631,13 @@ module Synth {
cached
TOrPat convertOrPatFromRaw(Raw::Element e) { result = TOrPat(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TPath`, if possible.
*/
cached
TPath convertPathFromRaw(Raw::Element e) { result = TPath(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TPathExpr`, if possible.
@@ -744,10 +773,12 @@ module Synth {
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TUnimplemented`, if possible.
* Converts a raw element to a synthesized `TUnimplementedDeclaration`, if possible.
*/
cached
TUnimplemented convertUnimplementedFromRaw(Raw::Element e) { result = TUnimplemented(e) }
TUnimplementedDeclaration convertUnimplementedDeclarationFromRaw(Raw::Element e) {
result = TUnimplementedDeclaration(e)
}
/**
* INTERNAL: Do not use.
@@ -812,12 +843,16 @@ module Synth {
or
result = convertExprFromRaw(e)
or
result = convertGenericArgsFromRaw(e)
or
result = convertLabelFromRaw(e)
or
result = convertMatchArmFromRaw(e)
or
result = convertPatFromRaw(e)
or
result = convertPathFromRaw(e)
or
result = convertRecordFieldPatFromRaw(e)
or
result = convertRecordLitFieldFromRaw(e)
@@ -825,8 +860,6 @@ module Synth {
result = convertStmtFromRaw(e)
or
result = convertTypeRefFromRaw(e)
or
result = convertUnimplementedFromRaw(e)
}
/**
@@ -851,6 +884,8 @@ module Synth {
result = convertFunctionFromRaw(e)
or
result = convertModuleFromRaw(e)
or
result = convertUnimplementedDeclarationFromRaw(e)
}
/**
@@ -864,6 +899,8 @@ module Synth {
result = convertLocatableFromRaw(e)
or
result = convertLocationFromRaw(e)
or
result = convertUnimplementedFromRaw(e)
}
/**
@@ -1016,6 +1053,21 @@ module Synth {
result = convertLetStmtFromRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw DB element to a synthesized `TUnimplemented`, if possible.
*/
cached
TUnimplemented convertUnimplementedFromRaw(Raw::Element e) {
result = convertGenericArgsFromRaw(e)
or
result = convertPathFromRaw(e)
or
result = convertTypeRefFromRaw(e)
or
result = convertUnimplementedDeclarationFromRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TAsyncBlockExpr` to a raw DB element, if possible.
@@ -1163,6 +1215,13 @@ module Synth {
cached
Raw::Element convertFunctionToRaw(TFunction e) { e = TFunction(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TGenericArgs` to a raw DB element, if possible.
*/
cached
Raw::Element convertGenericArgsToRaw(TGenericArgs e) { e = TGenericArgs(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TIfExpr` to a raw DB element, if possible.
@@ -1289,6 +1348,13 @@ module Synth {
cached
Raw::Element convertOrPatToRaw(TOrPat e) { e = TOrPat(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TPath` to a raw DB element, if possible.
*/
cached
Raw::Element convertPathToRaw(TPath e) { e = TPath(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TPathExpr` to a raw DB element, if possible.
@@ -1424,10 +1490,12 @@ module Synth {
/**
* INTERNAL: Do not use.
* Converts a synthesized `TUnimplemented` to a raw DB element, if possible.
* Converts a synthesized `TUnimplementedDeclaration` to a raw DB element, if possible.
*/
cached
Raw::Element convertUnimplementedToRaw(TUnimplemented e) { e = TUnimplemented(result) }
Raw::Element convertUnimplementedDeclarationToRaw(TUnimplementedDeclaration e) {
e = TUnimplementedDeclaration(result)
}
/**
* INTERNAL: Do not use.
@@ -1492,12 +1560,16 @@ module Synth {
or
result = convertExprToRaw(e)
or
result = convertGenericArgsToRaw(e)
or
result = convertLabelToRaw(e)
or
result = convertMatchArmToRaw(e)
or
result = convertPatToRaw(e)
or
result = convertPathToRaw(e)
or
result = convertRecordFieldPatToRaw(e)
or
result = convertRecordLitFieldToRaw(e)
@@ -1505,8 +1577,6 @@ module Synth {
result = convertStmtToRaw(e)
or
result = convertTypeRefToRaw(e)
or
result = convertUnimplementedToRaw(e)
}
/**
@@ -1531,6 +1601,8 @@ module Synth {
result = convertFunctionToRaw(e)
or
result = convertModuleToRaw(e)
or
result = convertUnimplementedDeclarationToRaw(e)
}
/**
@@ -1544,6 +1616,8 @@ module Synth {
result = convertLocatableToRaw(e)
or
result = convertLocationToRaw(e)
or
result = convertUnimplementedToRaw(e)
}
/**
@@ -1695,4 +1769,19 @@ module Synth {
or
result = convertLetStmtToRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TUnimplemented` to a raw DB element, if possible.
*/
cached
Raw::Element convertUnimplementedToRaw(TUnimplemented e) {
result = convertGenericArgsToRaw(e)
or
result = convertPathToRaw(e)
or
result = convertTypeRefToRaw(e)
or
result = convertUnimplementedDeclarationToRaw(e)
}
}

View File

@@ -24,6 +24,7 @@ import codeql.rust.elements.ElementListExprConstructor
import codeql.rust.elements.ExprStmtConstructor
import codeql.rust.elements.FieldExprConstructor
import codeql.rust.elements.FunctionConstructor
import codeql.rust.elements.GenericArgsConstructor
import codeql.rust.elements.IfExprConstructor
import codeql.rust.elements.IndexExprConstructor
import codeql.rust.elements.InlineAsmExprConstructor
@@ -42,6 +43,7 @@ import codeql.rust.elements.MissingPatConstructor
import codeql.rust.elements.ModuleConstructor
import codeql.rust.elements.OffsetOfExprConstructor
import codeql.rust.elements.OrPatConstructor
import codeql.rust.elements.PathConstructor
import codeql.rust.elements.PathExprConstructor
import codeql.rust.elements.PathPatConstructor
import codeql.rust.elements.RangeExprConstructor
@@ -61,7 +63,7 @@ import codeql.rust.elements.TupleStructPatConstructor
import codeql.rust.elements.TypeRefConstructor
import codeql.rust.elements.UnaryOpExprConstructor
import codeql.rust.elements.UnderscoreExprConstructor
import codeql.rust.elements.UnimplementedConstructor
import codeql.rust.elements.UnimplementedDeclarationConstructor
import codeql.rust.elements.UnsafeBlockExprConstructor
import codeql.rust.elements.WildPatConstructor
import codeql.rust.elements.YeetExprConstructor

View File

@@ -7,7 +7,7 @@
private import codeql.rust.generated.Synth
private import codeql.rust.generated.Raw
import codeql.rust.elements.Pat
import codeql.rust.elements.Unimplemented
import codeql.rust.elements.Path
/**
* INTERNAL: This module contains the fully generated definition of `TupleStructPat` and should not
@@ -32,9 +32,9 @@ module Generated {
/**
* Gets the path of this tuple struct pat, if it exists.
*/
Unimplemented getPath() {
Path getPath() {
result =
Synth::convertUnimplementedFromRaw(Synth::convertTupleStructPatToRaw(this)
Synth::convertPathFromRaw(Synth::convertTupleStructPatToRaw(this)
.(Raw::TupleStructPat)
.getPath())
}

View File

@@ -7,6 +7,7 @@
private import codeql.rust.generated.Synth
private import codeql.rust.generated.Raw
import codeql.rust.elements.AstNode
import codeql.rust.elements.Unimplemented
/**
* INTERNAL: This module contains the fully generated definition of `TypeRef` and should not
@@ -17,7 +18,7 @@ module Generated {
* INTERNAL: Do not reference the `Generated::TypeRef` class directly.
* Use the subclass `TypeRef`, where the following predicates are available.
*/
class TypeRef extends Synth::TTypeRef, AstNode {
class TypeRef extends Synth::TTypeRef, AstNode, Unimplemented {
override string getAPrimaryQlClass() { result = "TypeRef" }
}
}

View File

@@ -6,7 +6,7 @@
private import codeql.rust.generated.Synth
private import codeql.rust.generated.Raw
import codeql.rust.elements.AstNode
import codeql.rust.elements.Element
/**
* INTERNAL: This module contains the fully generated definition of `Unimplemented` and should not
@@ -17,7 +17,5 @@ module Generated {
* INTERNAL: Do not reference the `Generated::Unimplemented` class directly.
* Use the subclass `Unimplemented`, where the following predicates are available.
*/
class Unimplemented extends Synth::TUnimplemented, AstNode {
override string getAPrimaryQlClass() { result = "Unimplemented" }
}
class Unimplemented extends Synth::TUnimplemented, Element { }
}

View File

@@ -0,0 +1,26 @@
// generated by codegen
/**
* This module provides the generated definition of `UnimplementedDeclaration`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.generated.Synth
private import codeql.rust.generated.Raw
import codeql.rust.elements.Declaration
import codeql.rust.elements.Unimplemented
/**
* INTERNAL: This module contains the fully generated definition of `UnimplementedDeclaration` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::UnimplementedDeclaration` class directly.
* Use the subclass `UnimplementedDeclaration`, where the following predicates are available.
*/
class UnimplementedDeclaration extends Synth::TUnimplementedDeclaration, Declaration,
Unimplemented
{
override string getAPrimaryQlClass() { result = "UnimplementedDeclaration" }
}
}

View File

@@ -15,6 +15,7 @@ sourceLocationPrefix(
@file
| @locatable
| @location
| @unimplemented
;
@file =
@@ -51,17 +52,25 @@ locations(
int end_column: int ref
);
@unimplemented =
@generic_args
| @path
| @type_ref
| @unimplemented_declaration
;
@ast_node =
@declaration
| @expr
| @generic_args
| @label
| @match_arm
| @pat
| @path
| @record_field_pat
| @record_lit_field
| @stmt
| @type_ref
| @unimplemented
;
db_files(
@@ -75,6 +84,7 @@ db_locations(
@declaration =
@function
| @module
| @unimplemented_declaration
;
@expr =
@@ -113,6 +123,10 @@ db_locations(
| @yield_expr
;
generic_args(
unique int id: @generic_args
);
labels(
unique int id: @label,
string name: string ref
@@ -147,6 +161,10 @@ match_arm_guards(
| @wild_pat
;
paths(
unique int id: @path
);
record_field_pats(
unique int id: @record_field_pat,
string name: string ref,
@@ -169,10 +187,6 @@ type_refs(
unique int id: @type_ref
);
unimplementeds(
unique int id: @unimplemented
);
@array_expr =
@element_list_expr
| @repeat_expr
@@ -461,7 +475,7 @@ method_call_expr_args(
#keyset[id]
method_call_expr_generic_args(
int id: @method_call_expr ref,
int generic_args: @unimplemented ref
int generic_args: @generic_args ref
);
missing_exprs(
@@ -508,12 +522,12 @@ or_pat_args(
path_exprs(
unique int id: @path_expr,
int path: @unimplemented ref
int path: @path ref
);
path_pats(
unique int id: @path_pat,
int path: @unimplemented ref
int path: @path ref
);
range_exprs(
@@ -560,7 +574,7 @@ record_lit_exprs(
#keyset[id]
record_lit_expr_paths(
int id: @record_lit_expr ref,
int path: @unimplemented ref
int path: @path ref
);
#keyset[id, index]
@@ -593,7 +607,7 @@ record_pats(
#keyset[id]
record_pat_paths(
int id: @record_pat ref,
int path: @unimplemented ref
int path: @path ref
);
#keyset[id, index]
@@ -707,7 +721,7 @@ tuple_struct_pats(
#keyset[id]
tuple_struct_pat_paths(
int id: @tuple_struct_pat ref,
int path: @unimplemented ref
int path: @path ref
);
#keyset[id, index]
@@ -733,6 +747,10 @@ underscore_exprs(
unique int id: @underscore_expr
);
unimplemented_declarations(
unique int id: @unimplemented_declaration
);
wild_pats(
unique int id: @wild_pat
);

View File

@@ -10,13 +10,13 @@ BreakExpr/gen_break_expr.rs 4938cdab0fdb9b7bafa021912d59595a190fffbabfb3889ea7ee
CallExpr/gen_call_expr.rs 8a3b00e4af996dcfd4593783316b2d793e8b90b24b4bb78acccca6f974cf9c36 8a3b00e4af996dcfd4593783316b2d793e8b90b24b4bb78acccca6f974cf9c36
CastExpr/gen_cast_expr.rs 35ba1e109899f5b6297cb0db6d6a48270e031c91b27fab212b07a9f93948f816 35ba1e109899f5b6297cb0db6d6a48270e031c91b27fab212b07a9f93948f816
ClosureExpr/gen_closure_expr.rs de77bc1d891b4e0f5a4d8a55a8a097990867f93a015c13d72fb10e767aa14ba4 de77bc1d891b4e0f5a4d8a55a8a097990867f93a015c13d72fb10e767aa14ba4
ConstBlockPat/gen_const_block_pat.rs 66caa0eb1445b2d0bf1ff5609b44975f88d72971ff558e02c69fe0459a2459ec 66caa0eb1445b2d0bf1ff5609b44975f88d72971ff558e02c69fe0459a2459ec
ConstBlockPat/gen_const_block_pat.rs 6117cee861ea278aa0fb10fe141902a3bb91e6750565e52e5d3e7f0ad03b9203 6117cee861ea278aa0fb10fe141902a3bb91e6750565e52e5d3e7f0ad03b9203
ConstExpr/gen_const_expr.rs 04a1e4620c843101bfccd38027af68390817dbb750c203250f4fcc208af0d26b 04a1e4620c843101bfccd38027af68390817dbb750c203250f4fcc208af0d26b
ContinueExpr/gen_continue_expr.rs cbbed5b8dd235c4702281c9772094799012d785cc0c39a25b9f21cd659bc98d2 cbbed5b8dd235c4702281c9772094799012d785cc0c39a25b9f21cd659bc98d2
ElementListExpr/gen_element_list_expr.rs 66f8a3c4e02767e96692c44ada6fe7ed2b07b1aaefdad13e35ae41e081374f81 66f8a3c4e02767e96692c44ada6fe7ed2b07b1aaefdad13e35ae41e081374f81
ExprStmt/gen_expr_stmt.rs eedad804b2fbd49385c284ece44ecddf18eb56b61ff54607dfdd6521e2481c93 eedad804b2fbd49385c284ece44ecddf18eb56b61ff54607dfdd6521e2481c93
FieldExpr/gen_field_expr.rs 7ab04efc8b45892d3214eccaeac0b1659213623ae95acb463c531b865988f148 7ab04efc8b45892d3214eccaeac0b1659213623ae95acb463c531b865988f148
Function/gen_function.rs 4be46d4798cd32b51e449d1b6c4bc7461216a8a0e765b61abac21354401a7776 4be46d4798cd32b51e449d1b6c4bc7461216a8a0e765b61abac21354401a7776
Function/gen_function.rs 1048512614569eaf818e16a30df256556e25f3b7fb97eee2a8df4b0036b10e99 1048512614569eaf818e16a30df256556e25f3b7fb97eee2a8df4b0036b10e99
IfExpr/gen_if_expr.rs 073ba575b54a553945d3131d7e92cdb1520c24f380361723a1b9d848b6296d7b 073ba575b54a553945d3131d7e92cdb1520c24f380361723a1b9d848b6296d7b
IndexExpr/gen_index_expr.rs b1a1b9eadd40ac1652d944dc925337435ef5782bf485a0f0360c971f4938cdd8 b1a1b9eadd40ac1652d944dc925337435ef5782bf485a0f0360c971f4938cdd8
InlineAsmExpr/gen_inline_asm_expr.rs b5dcc6bf748fe4c314804414d4d5d3708957a774469de8bf77b5721ca3684f9a b5dcc6bf748fe4c314804414d4d5d3708957a774469de8bf77b5721ca3684f9a
@@ -26,11 +26,12 @@ LetStmt/gen_let_stmt.rs d22098db07cbdd4e4616c24bc9738f989e553336c7ce1a5391e1b403
LitPat/gen_lit_pat.rs dc7f80f73290eb55515b20bf66f8fd5cd11f6fd088734fbf215c642630db0d09 dc7f80f73290eb55515b20bf66f8fd5cd11f6fd088734fbf215c642630db0d09
LiteralExpr/gen_literal_expr.rs 302ebc81012fd46ccf8d960fe6ae691747bdec1c7cd52b0d47ed1273b4d8dc3a 302ebc81012fd46ccf8d960fe6ae691747bdec1c7cd52b0d47ed1273b4d8dc3a
LoopExpr/gen_loop_expr.rs 0a7e6dd7690fae82495c466f8a175b3a4097478041ec0e0bc0b7db97d2e50e66 0a7e6dd7690fae82495c466f8a175b3a4097478041ec0e0bc0b7db97d2e50e66
MatchArm/gen_match_arm.rs 197eb98990fb149ac01900420653a1fef8772a1767fe914e7d2ae89451b81110 197eb98990fb149ac01900420653a1fef8772a1767fe914e7d2ae89451b81110
MatchExpr/gen_match_expr.rs 65d1ac55b7aac6de608175313004d07dcc89cc483ac6b24012d7ae38ac9410b1 65d1ac55b7aac6de608175313004d07dcc89cc483ac6b24012d7ae38ac9410b1
MatchArm/gen_match_arm.rs b3d7fc8be0f739787415a4fc9788e462f3ea9f46fc2e734198745aaa62c0d0f4 b3d7fc8be0f739787415a4fc9788e462f3ea9f46fc2e734198745aaa62c0d0f4
MatchExpr/gen_match_expr.rs 7b20fb5bd04d5c93021d7daf3be9f30c13c854fac088835d9d7d9d16c0d963c5 7b20fb5bd04d5c93021d7daf3be9f30c13c854fac088835d9d7d9d16c0d963c5
MethodCallExpr/gen_method_call_expr.rs 2e303e2677134db6d1e757f093f78bbd0db08f067c86d6d9b141b7115f352fd7 2e303e2677134db6d1e757f093f78bbd0db08f067c86d6d9b141b7115f352fd7
MissingExpr/gen_missing_expr.rs 8e32068d7db05b0bd02ce7087e36e7dafbbc5edd1cd40fc98cf47a68e20b1746 8e32068d7db05b0bd02ce7087e36e7dafbbc5edd1cd40fc98cf47a68e20b1746
MissingPat/gen_missing_pat.rs 0d31993464689611846dfea19ae856f71294aa5620b7248625ca273e7d840e87 0d31993464689611846dfea19ae856f71294aa5620b7248625ca273e7d840e87
Module/gen_module.rs 6ef553f0782cacf198efe10885a7784e208bbe8da27a65f7f004b49581a75120 6ef553f0782cacf198efe10885a7784e208bbe8da27a65f7f004b49581a75120
OffsetOfExpr/gen_offset_of_expr.rs 3744346b0e37fd18193f41e45b74ba9a5dca8ae3dc6a30381272358e6ec8e495 3744346b0e37fd18193f41e45b74ba9a5dca8ae3dc6a30381272358e6ec8e495
OrPat/gen_or_pat.rs a59e67d5481bb3c21b10eddb99d5dce1de4321dc584c91d72bd3ddb00a0edd06 a59e67d5481bb3c21b10eddb99d5dce1de4321dc584c91d72bd3ddb00a0edd06
PathExpr/gen_path_expr.rs b29cc007c4a158fb2bc464db02464614f1664a80c67a81696978e2715ce2652d b29cc007c4a158fb2bc464db02464614f1664a80c67a81696978e2715ce2652d

View File

@@ -33,6 +33,7 @@
/MethodCallExpr/gen_method_call_expr.rs linguist-generated
/MissingExpr/gen_missing_expr.rs linguist-generated
/MissingPat/gen_missing_pat.rs linguist-generated
/Module/gen_module.rs linguist-generated
/OffsetOfExpr/gen_offset_of_expr.rs linguist-generated
/OrPat/gen_or_pat.rs linguist-generated
/PathExpr/gen_path_expr.rs linguist-generated

View File

@@ -3,7 +3,7 @@
fn test_const_block_pat() -> () {
// A const block pattern. For example:
match x {
const { 1 + 2 + 3} => "ok",
const { 1 + 2 + 3 } => "ok",
_ => "fail",
};
}

View File

@@ -1,7 +1,7 @@
// generated by codegen
// A function declaration. For example
fn foo(x: u32) -> u64 { (x + 1).into() }
fn foo(x: u32) -> u64 {(x + 1).into()}
// A function declaration within a trait might not have a body:
trait Trait {
fn bar();

View File

@@ -5,9 +5,9 @@ fn test_match_arm(x: i32) -> i32 {
match x {
Some(y) => y,
None => 0,
}
};
match x {
Some(y) if y != 0 => 1 / y,
_ => 0,
}
};
}

View File

@@ -6,8 +6,8 @@ fn test_match_expr(x: i32) -> i32 {
Some(y) => y,
None => 0,
}
// match x {
// Some(y) if y != 0 => 1 / y,
// _ => 0,
// }
match x {
Some(y) if y != 0 => 1 / y,
_ => 0,
}
}

View File

@@ -0,0 +1,10 @@
// generated by codegen
import codeql.rust.elements
import TestUtils
from Module x, int getNumberOfDeclarations
where
toBeTested(x) and
not x.isUnknown() and
getNumberOfDeclarations = x.getNumberOfDeclarations()
select x, "getNumberOfDeclarations:", getNumberOfDeclarations

View File

@@ -0,0 +1,7 @@
// generated by codegen
import codeql.rust.elements
import TestUtils
from Module x, int index
where toBeTested(x) and not x.isUnknown()
select x, index, x.getDeclaration(index)

View File

@@ -0,0 +1,7 @@
// generated by codegen
// A module declaration. For example:
mod foo;
mod bar {
pub fn baz() {}
}

View File

@@ -0,0 +1,4 @@
// generated by codegen
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

@@ -2,7 +2,7 @@
import codeql.rust.elements
import TestUtils
from PathExpr x, Unimplemented getPath
from PathExpr x, Path getPath
where
toBeTested(x) and
not x.isUnknown() and

View File

@@ -2,7 +2,7 @@
import codeql.rust.elements
import TestUtils
from PathPat x, Unimplemented getPath
from PathPat x, Path getPath
where
toBeTested(x) and
not x.isUnknown() and

View File

@@ -63,7 +63,7 @@ class AstNode(Locatable):
@qltest.skip
class Unimplemented(AstNode):
class Unimplemented(Element):
pass
@@ -71,8 +71,23 @@ class Declaration(AstNode):
pass
class Module(Declaration):
@qltest.skip
class UnimplementedDeclaration(Declaration, Unimplemented):
pass
class Module(Declaration):
"""
A module declaration. For example:
```
mod foo;
```
```
mod bar {
pub fn baz() {}
}
```
"""
declarations: list[Declaration] | child
@@ -112,8 +127,15 @@ class Stmt(AstNode):
@qltest.collapse_hierarchy
class TypeRef(AstNode):
class TypeRef(AstNode, Unimplemented):
pass
class Path(AstNode, Unimplemented):
pass
class GenericArgs(AstNode, Unimplemented):
pass
@@ -121,7 +143,7 @@ class Function(Declaration):
"""
A function declaration. For example
```
fn foo(x: u32) -> u64 { (x + 1).into() }
fn foo(x: u32) -> u64 {(x + 1).into()}
```
A function declaration within a trait might not have a body:
```
@@ -157,7 +179,7 @@ class PathExpr(Expr):
let z = <Type as Trait>::foo;
```
"""
path: Unimplemented | child
path: Path | child
@rust.doc_test_signature("() -> ()")
@@ -318,7 +340,7 @@ class MethodCallExpr(Expr):
receiver: Expr | child
method_name: string
args: list[Expr] | child
generic_args: optional[Unimplemented] | child
generic_args: optional[GenericArgs] | child
@rust.doc_test_signature("(x: i32) -> i32")
@@ -329,13 +351,13 @@ class MatchArm(AstNode):
match x {
Some(y) => y,
None => 0,
}
};
```
```
match x {
Some(y) if y != 0 => 1 / y,
_ => 0,
}
};
```
"""
pat: Pat | child
@@ -353,6 +375,7 @@ class MatchExpr(Expr):
None => 0,
}
```
```
match x {
Some(y) if y != 0 => 1 / y,
_ => 0,
@@ -490,7 +513,7 @@ class RecordLitExpr(Expr):
Foo { .. } = second;
```
"""
path: optional[Unimplemented] | child
path: optional[Path] | child
fields: list[RecordLitField] | child
spread: optional[Expr] | child
has_ellipsis: predicate
@@ -873,7 +896,7 @@ class RecordPat(Pat):
```
"""
path: optional[Unimplemented] | child
path: optional[Path] | child
args: list[RecordFieldPat] | child
has_ellipsis: predicate
@@ -921,7 +944,7 @@ class PathPat(Pat):
}
```
"""
path: Unimplemented | child
path: Path | child
@rust.doc_test_signature("() -> ()")
@@ -971,7 +994,7 @@ class TupleStructPat(Pat):
};
```
"""
path: optional[Unimplemented] | child
path: optional[Path] | child
args: list[Pat] | child
ellipsis_index: optional[int]
@@ -1011,7 +1034,7 @@ class ConstBlockPat(Pat):
A const block pattern. For example:
```
match x {
const { 1 + 2 + 3} => "ok",
const { 1 + 2 + 3 } => "ok",
_ => "fail",
};
```