From 338572f25661cdc6634a8d1dc05108d3b8021b5b Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 12 Aug 2025 17:04:26 +0200 Subject: [PATCH] Rust: run codegen again --- rust/extractor/src/generated/.generated.list | 2 +- rust/extractor/src/generated/top.rs | 122 +++++++++--------- rust/extractor/src/translate/generated.rs | 50 ++++--- rust/ql/.generated.list | 44 +++---- rust/ql/.gitattributes | 10 +- rust/ql/lib/codeql/rust/elements.qll | 2 +- .../lib/codeql/rust/elements/ClosureExpr.qll | 2 +- .../{ClosureBinder.qll => ForBinder.qll} | 8 +- .../lib/codeql/rust/elements/ForTypeRepr.qll | 2 +- .../ql/lib/codeql/rust/elements/TypeBound.qll | 1 + .../ql/lib/codeql/rust/elements/WherePred.qll | 2 +- ...nstructor.qll => ForBinderConstructor.qll} | 6 +- ...losureBinderImpl.qll => ForBinderImpl.qll} | 10 +- .../internal/generated/ClosureExpr.qll | 14 +- .../{ClosureBinder.qll => ForBinder.qll} | 20 +-- .../internal/generated/ForTypeRepr.qll | 14 +- .../internal/generated/ParentChild.qll | 81 ++++++------ .../rust/elements/internal/generated/Raw.qll | 65 +++++----- .../elements/internal/generated/Synth.qll | 44 +++---- .../internal/generated/SynthConstructors.qll | 2 +- .../elements/internal/generated/TypeBound.qll | 16 +++ .../elements/internal/generated/WherePred.qll | 14 +- rust/ql/lib/rust.dbscheme | 40 +++--- .../generated/.generated_tests.list | 2 +- .../extractor-tests/generated/.gitattributes | 2 +- .../generated/ClosureBinder/Cargo.lock | 7 - .../ClosureBinder/ClosureBinder.expected | 4 - .../generated/ClosureBinder/ClosureBinder.ql | 9 -- .../generated/ClosureExpr/ClosureExpr.ql | 4 +- .../generated/ForBinder/ForBinder.ql | 9 ++ .../gen_for_binder.rs} | 4 +- .../generated/ForTypeRepr/ForTypeRepr.ql | 4 +- .../generated/TypeBound/TypeBound.ql | 4 + .../generated/WherePred/WherePred.ql | 4 +- rust/schema/annotations.py | 4 +- rust/schema/ast.py | 13 +- 36 files changed, 328 insertions(+), 313 deletions(-) rename rust/ql/lib/codeql/rust/elements/{ClosureBinder.qll => ForBinder.qll} (60%) rename rust/ql/lib/codeql/rust/elements/internal/{ClosureBinderConstructor.qll => ForBinderConstructor.qll} (61%) rename rust/ql/lib/codeql/rust/elements/internal/{ClosureBinderImpl.qll => ForBinderImpl.qll} (66%) rename rust/ql/lib/codeql/rust/elements/internal/generated/{ClosureBinder.qll => ForBinder.qll} (58%) delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureBinder/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql create mode 100644 rust/ql/test/extractor-tests/generated/ForBinder/ForBinder.ql rename rust/ql/test/extractor-tests/generated/{ClosureBinder/gen_closure_binder.rs => ForBinder/gen_for_binder.rs} (68%) diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index 832ebc8a834..62fb59a50ca 100644 --- a/rust/extractor/src/generated/.generated.list +++ b/rust/extractor/src/generated/.generated.list @@ -1,2 +1,2 @@ mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 -top.rs 0fc473b83d7cd550396b5c147829487fa7264121b6823fd371b78f55e48935b0 0fc473b83d7cd550396b5c147829487fa7264121b6823fd371b78f55e48935b0 +top.rs a2b836f6f4c1332cdc2bcf7a4201765f22635f976892725aa424d7b306b6b586 a2b836f6f4c1332cdc2bcf7a4201765f22635f976892725aa424d7b306b6b586 diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index 0b658d2aebb..d8de082d024 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -835,56 +835,6 @@ impl From> for trap::Label { } } -#[derive(Debug)] -pub struct ClosureBinder { - pub id: trap::TrapId, - pub generic_param_list: Option>, -} - -impl trap::TrapEntry for ClosureBinder { - fn extract_id(&mut self) -> trap::TrapId { - std::mem::replace(&mut self.id, trap::TrapId::Star) - } - - fn emit(self, id: trap::Label, out: &mut trap::Writer) { - out.add_tuple("closure_binders", vec![id.into()]); - if let Some(v) = self.generic_param_list { - out.add_tuple("closure_binder_generic_param_lists", vec![id.into(), v.into()]); - } - } -} - -impl trap::TrapClass for ClosureBinder { - fn class_name() -> &'static str { "ClosureBinder" } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme ClosureBinder is a subclass of AstNode - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme ClosureBinder is a subclass of Locatable - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme ClosureBinder is a subclass of Element - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct Expr { _unused: () @@ -1011,6 +961,56 @@ impl From> for trap::Label { } } +#[derive(Debug)] +pub struct ForBinder { + pub id: trap::TrapId, + pub generic_param_list: Option>, +} + +impl trap::TrapEntry for ForBinder { + fn extract_id(&mut self) -> trap::TrapId { + std::mem::replace(&mut self.id, trap::TrapId::Star) + } + + fn emit(self, id: trap::Label, out: &mut trap::Writer) { + out.add_tuple("for_binders", vec![id.into()]); + if let Some(v) = self.generic_param_list { + out.add_tuple("for_binder_generic_param_lists", vec![id.into(), v.into()]); + } + } +} + +impl trap::TrapClass for ForBinder { + fn class_name() -> &'static str { "ForBinder" } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme ForBinder is a subclass of AstNode + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme ForBinder is a subclass of Locatable + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme ForBinder is a subclass of Element + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + #[derive(Debug)] pub struct FormatArgsArg { pub id: trap::TrapId, @@ -2808,6 +2808,7 @@ impl From> for trap::Label { #[derive(Debug)] pub struct TypeBound { pub id: trap::TrapId, + pub for_binder: Option>, pub is_async: bool, pub is_const: bool, pub lifetime: Option>, @@ -2822,6 +2823,9 @@ impl trap::TrapEntry for TypeBound { fn emit(self, id: trap::Label, out: &mut trap::Writer) { out.add_tuple("type_bounds", vec![id.into()]); + if let Some(v) = self.for_binder { + out.add_tuple("type_bound_for_binders", vec![id.into(), v.into()]); + } if self.is_async { out.add_tuple("type_bound_is_async", vec![id.into()]); } @@ -3308,7 +3312,7 @@ impl From> for trap::Label { #[derive(Debug)] pub struct WherePred { pub id: trap::TrapId, - pub generic_param_list: Option>, + pub for_binder: Option>, pub lifetime: Option>, pub type_repr: Option>, pub type_bound_list: Option>, @@ -3321,8 +3325,8 @@ impl trap::TrapEntry for WherePred { fn emit(self, id: trap::Label, out: &mut trap::Writer) { out.add_tuple("where_preds", vec![id.into()]); - if let Some(v) = self.generic_param_list { - out.add_tuple("where_pred_generic_param_lists", vec![id.into(), v.into()]); + if let Some(v) = self.for_binder { + out.add_tuple("where_pred_for_binders", vec![id.into(), v.into()]); } if let Some(v) = self.lifetime { out.add_tuple("where_pred_lifetimes", vec![id.into(), v.into()]); @@ -4450,7 +4454,7 @@ pub struct ClosureExpr { pub param_list: Option>, pub attrs: Vec>, pub body: Option>, - pub closure_binder: Option>, + pub for_binder: Option>, pub is_async: bool, pub is_const: bool, pub is_gen: bool, @@ -4475,8 +4479,8 @@ impl trap::TrapEntry for ClosureExpr { if let Some(v) = self.body { out.add_tuple("closure_expr_bodies", vec![id.into(), v.into()]); } - if let Some(v) = self.closure_binder { - out.add_tuple("closure_expr_closure_binders", vec![id.into(), v.into()]); + if let Some(v) = self.for_binder { + out.add_tuple("closure_expr_for_binders", vec![id.into(), v.into()]); } if self.is_async { out.add_tuple("closure_expr_is_async", vec![id.into()]); @@ -5132,7 +5136,7 @@ impl From> for trap::Label { #[derive(Debug)] pub struct ForTypeRepr { pub id: trap::TrapId, - pub generic_param_list: Option>, + pub for_binder: Option>, pub type_repr: Option>, } @@ -5143,8 +5147,8 @@ impl trap::TrapEntry for ForTypeRepr { fn emit(self, id: trap::Label, out: &mut trap::Writer) { out.add_tuple("for_type_reprs", vec![id.into()]); - if let Some(v) = self.generic_param_list { - out.add_tuple("for_type_repr_generic_param_lists", vec![id.into(), v.into()]); + if let Some(v) = self.for_binder { + out.add_tuple("for_type_repr_for_binders", vec![id.into(), v.into()]); } if let Some(v) = self.type_repr { out.add_tuple("for_type_repr_type_reprs", vec![id.into(), v.into()]); diff --git a/rust/extractor/src/translate/generated.rs b/rust/extractor/src/translate/generated.rs index 3b9be2e1915..cbcb6f28c7b 100644 --- a/rust/extractor/src/translate/generated.rs +++ b/rust/extractor/src/translate/generated.rs @@ -688,21 +688,6 @@ impl Translator<'_> { self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - pub(crate) fn emit_closure_binder( - &mut self, - node: &ast::ClosureBinder, - ) -> Option> { - let generic_param_list = node - .generic_param_list() - .and_then(|x| self.emit_generic_param_list(&x)); - let label = self.trap.emit(generated::ClosureBinder { - id: TrapId::Star, - generic_param_list, - }); - self.emit_location(label, node); - self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); - Some(label) - } pub(crate) fn emit_closure_expr( &mut self, node: &ast::ClosureExpr, @@ -712,9 +697,7 @@ impl Translator<'_> { } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let body = node.body().and_then(|x| self.emit_expr(&x)); - let closure_binder = node - .closure_binder() - .and_then(|x| self.emit_closure_binder(&x)); + let for_binder = node.for_binder().and_then(|x| self.emit_for_binder(&x)); let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); let is_gen = node.gen_token().is_some(); @@ -726,7 +709,7 @@ impl Translator<'_> { id: TrapId::Star, attrs, body, - closure_binder, + for_binder, is_async, is_const, is_gen, @@ -1064,6 +1047,21 @@ impl Translator<'_> { self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } + pub(crate) fn emit_for_binder( + &mut self, + node: &ast::ForBinder, + ) -> Option> { + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); + let label = self.trap.emit(generated::ForBinder { + id: TrapId::Star, + generic_param_list, + }); + self.emit_location(label, node); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); + Some(label) + } pub(crate) fn emit_for_expr( &mut self, node: &ast::ForExpr, @@ -1092,13 +1090,11 @@ impl Translator<'_> { &mut self, node: &ast::ForType, ) -> Option> { - let generic_param_list = node - .generic_param_list() - .and_then(|x| self.emit_generic_param_list(&x)); + let for_binder = node.for_binder().and_then(|x| self.emit_for_binder(&x)); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::ForTypeRepr { id: TrapId::Star, - generic_param_list, + for_binder, type_repr, }); self.emit_location(label, node); @@ -2805,6 +2801,7 @@ impl Translator<'_> { &mut self, node: &ast::TypeBound, ) -> Option> { + let for_binder = node.for_binder().and_then(|x| self.emit_for_binder(&x)); let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); @@ -2814,6 +2811,7 @@ impl Translator<'_> { .and_then(|x| self.emit_use_bound_generic_args(&x)); let label = self.trap.emit(generated::TypeBound { id: TrapId::Star, + for_binder, is_async, is_const, lifetime, @@ -3058,9 +3056,7 @@ impl Translator<'_> { &mut self, node: &ast::WherePred, ) -> Option> { - let generic_param_list = node - .generic_param_list() - .and_then(|x| self.emit_generic_param_list(&x)); + let for_binder = node.for_binder().and_then(|x| self.emit_for_binder(&x)); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let type_bound_list = node @@ -3068,7 +3064,7 @@ impl Translator<'_> { .and_then(|x| self.emit_type_bound_list(&x)); let label = self.trap.emit(generated::WherePred { id: TrapId::Star, - generic_param_list, + for_binder, lifetime, type_repr, type_bound_list, diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 93680bc6a4a..2e88869bd68 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -36,8 +36,7 @@ lib/codeql/rust/elements/CallExpr.qll f336500ca7a611b164d48b90e80edb0c0d3816792b lib/codeql/rust/elements/CallExprBase.qll 2846202b5208b541977500286951d96487bf555838c6c16cdd006a71e383745a c789d412bf099c624329379e0c7d94fa0d23ae2edea7a25a2ea0f3c0042ccf62 lib/codeql/rust/elements/Callable.qll 0f7f78c3bfabbe24962f6232b0440d27e51f06d2b8d341fc623ffbfbff173f47 5fd13aaa0eaf76ea0b47fa0641bd23eea20a069f0b3cbc1ee4e290e88321008a lib/codeql/rust/elements/CastExpr.qll 2fe1f36ba31fa29de309baf0a665cfcae67b61c73345e8f9bbd41e8c235fec45 c5b4c1e9dc24eb2357799defcb2df25989075e3a80e8663b74204a1c1b70e29a -lib/codeql/rust/elements/ClosureBinder.qll 02c8e83bf07deaf7bf0233b76623ec7f1837be8b77fe7e1c23544edc7d85e3c4 2b114d9a6dede694324aebe3dac80a802d139cfacd39beb0f12b5b0a46ee6390 -lib/codeql/rust/elements/ClosureExpr.qll 67e2a106e9154c90367b129987e574d2a9ecf5b297536627e43706675d35eaed d6a381132ddd589c5a7ce174f50f9620041ddf690e15a65ebfb05ff7e7c02de7 +lib/codeql/rust/elements/ClosureExpr.qll d122c769abc6c832dd1ad1b55d00aabc2f9029dd786f30905ac019e9e18517c0 56288c841c5e88cb603acb0d078ddeab8166f435b9545598293c0a59e9e84457 lib/codeql/rust/elements/Comment.qll fedad50575125e9a64a8a8776a8c1dbf1e76df990f01849d9f0955f9d74cb2a6 8eb1afad1e1007a4f0090fdac65d81726b23eda6517d067fd0185f70f17635ab lib/codeql/rust/elements/Const.qll 5f4d11e01162a06127ba56519efd66d1ecfb5de7c1792fc1c283a56cf2127373 8c618ac774267d25db70cc05a080f8a408dc23ab7e88c0fc543eda8b4d4cb995 lib/codeql/rust/elements/ConstArg.qll 01865b3be4790c627a062c59ea608462931abcb2f94a132cf265318664fd1251 a2c6bbf63dbfa999e511b6941143a51c9392477d8ccd25e081f85475936ff558 @@ -57,8 +56,9 @@ lib/codeql/rust/elements/ExternItemList.qll eceb0fcd3a6f9d87fa044da1da112ce96b75 lib/codeql/rust/elements/FieldExpr.qll 8102cd659f9059cf6af2a22033cfcd2aae9c35204b86f7d219a05f1f8de54b3b f818169dddf5102095ae1410583615f80031376a08b5307d0c464e79953c3975 lib/codeql/rust/elements/FieldList.qll 72f3eace2f0c0600b1ad059819ae756f1feccd15562e0449a3f039a680365462 50e4c01df7b801613688b06bb47ccc36e6c8c7fa2e50cc62cb4705c9abf5ee31 lib/codeql/rust/elements/FnPtrTypeRepr.qll d4586ac5ee2382b5ef9daafa77c7b3c1b7564647aa20d1efb1626299cde87ba9 48d9b63725c9cd89d79f9806fa5d5f22d7815e70bbd78d8da40a2359ac53fef5 +lib/codeql/rust/elements/ForBinder.qll ee29b55cb4c1fa5180cc4ee1236ac089fe9f67ffa9e5a1474003b717f1ac6e0f 5b811c8cf9550cb675034315e03c5cbbfa7544ad3a696988e04d780037d434bf lib/codeql/rust/elements/ForExpr.qll a050f60cf6fcc3ce66f5042be1b8096e5207fe2674d7477f9e299091ca99a4bd d7198495139649778894e930163add2d16b5588dd12bd6e094a9aec6863cb16f -lib/codeql/rust/elements/ForTypeRepr.qll b3ba3a7f74f092397f7986542e59020bd7ea63eb8abc154d0f66f1415e1eaf6e a04750567cf85e11698a6b93674a651245537d08bf8aabf303a3626e190a4977 +lib/codeql/rust/elements/ForTypeRepr.qll 0315e6850eb09d9debdd6843e4ce0cfa15a4b9502f1b81dbaafcd263efc62511 e0e612a9686502f3ff48321fea28be6f0720dfd22aad929b446b573ae70297d4 lib/codeql/rust/elements/Format.qll 1b186730710e7e29ea47594998f0b359ad308927f84841adae0c0cb35fc8aeda d6f7bfdda60a529fb9e9a1975628d5bd11aa28a45e295c7526692ac662fd19f8 lib/codeql/rust/elements/FormatArgsArg.qll a2c23cd512d44dd60b7d65eba52cc3adf6e2fbbcd0588be375daa16002cd7741 d9c5fe183fb228375223d83f857b7a9ee686f1d3e341bcf323d7c6f39652f88b lib/codeql/rust/elements/FormatArgsExpr.qll 8127cbe4082f7acc3d8a05298c2c9bea302519b8a6cd2d158a83c516d18fc487 88cf9b3bedd69a1150968f9a465c904bbb6805da0e0b90cfd1fc0dab1f6d9319 @@ -168,7 +168,7 @@ lib/codeql/rust/elements/TupleStructPat.qll da398a23eb616bf7dd586b2a87f4ab00f286 lib/codeql/rust/elements/TupleTypeRepr.qll 1ac5abf6281ea31680a4098407fbe55459d08f92a50dec20d1f8b93d498eee41 6d9625cce4e4abf6b6e6c22e47880fbd23740d07b621137bd7fa0a2ee13badd9 lib/codeql/rust/elements/TypeAlias.qll b59f24488f0d7de8d4046a9e0ca1e1f54d1d5c11e035898b11ab97e151fc600f 7b25c9e14c8bb310cec796824904fcefced2cc486d55e981b80b7620e73dd2d7 lib/codeql/rust/elements/TypeArg.qll e91dbb399d2ab7cf7af9dd5f743a551d0bf91dba3cfb76cea9e2d42ada0f9f2e c67d64e20e35a9bba5092651e0f82c75ba53b8c165e823bc81d67975107ae375 -lib/codeql/rust/elements/TypeBound.qll a1645f31a789995af85b1db236caece180013cc2e28e1c50b792dc0d4ab0854e 14a68ebef2149bc657ba1f18606ef8cf9b7cc3e6113b50bc038c168eb6cfd11c +lib/codeql/rust/elements/TypeBound.qll d5b2a904e497ba1899fb9e19547a6dfa7716c8aabe1e6e19070cbb58af32321b eabb16616afe3e88a25db4519174828a7ead1eb69ec7f98ef4abf4b3ead1c220 lib/codeql/rust/elements/TypeBoundList.qll 61a861e89b3de23801c723531cd3331a61214817a230aaae74d91cb60f0e096f d54e3d830bb550c5ba082ccd09bc0dc4e6e44e8d11066a7afba5a7172aa687a8 lib/codeql/rust/elements/TypeParam.qll 0787c1cc0c121e5b46f7d8e25153fd1b181bd3432eb040cf3b4ae3ed9ac2f28c 50092950f52a4e3bfd961dff4ffd8a719ef66ca1a0914bd33e26fed538321999 lib/codeql/rust/elements/TypeRepr.qll ea41b05ef0aaac71da460f9a6a8331cf98166f2c388526068ddacbd67488c892 11a01e42dab9183bac14de1ca49131788ede99e75b0ef759efcbc7cf08524184 @@ -185,7 +185,7 @@ lib/codeql/rust/elements/Variant.qll 7895461fa728f6c3a7293799c5e6b965b413b679566 lib/codeql/rust/elements/VariantList.qll 39803fbb873d48202c2a511c00c8eafede06e519894e0fd050c2a85bf5f4aa73 1735f89b2b8f6d5960a276b87ea10e4bb8c848c24a5d5fad7f3add7a4d94b7da lib/codeql/rust/elements/Visibility.qll aa69e8a3fd3b01f6fea0ae2d841a2adc51f4e46dcfc9f8f03c34fbe96f7e24e7 0d475e97e07b73c8da2b53555085b8309d8dc69c113bcb396fc901361dbfe6b8 lib/codeql/rust/elements/WhereClause.qll 4e28e11ceec835a093e469854a4b615e698309cdcbc39ed83810e2e4e7c5953f 4736baf689b87dd6669cb0ef9e27eb2c0f2776ce7f29d7693670bbcea06eb4e4 -lib/codeql/rust/elements/WherePred.qll 490395b468c87d5c623f6741dc28512ee371cbf479ea77aee7e61b20544f5732 782f74b101d374a71908069be3db23755ab1473ffe879b368be73a5fdc6eac3a +lib/codeql/rust/elements/WherePred.qll 35ef2580d20ffa6fadb05ea38152b5e4953b4dc827326e96969cd86d2dfdbfdc 6b8f7abf81bfeff7a16539f6a18746e02daedad42145b1c5a0b8cfa33676cbf8 lib/codeql/rust/elements/WhileExpr.qll 4a37e3ecd37c306a9b93b610a0e45e18adc22fcd4ce955a519b679e9f89b97e8 82026faa73b94390544e61ed2f3aaeaabd3e457439bb76d2fb06b0d1edd63f49 lib/codeql/rust/elements/WildcardPat.qll 4f941afc5f9f8d319719312399a8f787c75a0dbb709ec7cf488f019339635aab a9140a86da752f9126e586ddb9424b23b3fb4841a5420bac48108c38bb218930 lib/codeql/rust/elements/YeetExpr.qll 4172bf70de31cab17639da6eed4a12a7afcefd7aa9182216c3811c822d3d6b17 88223aab1bef696f508e0605615d6b83e1eaef755314e6a651ae977edd3757c3 @@ -241,8 +241,6 @@ lib/codeql/rust/elements/internal/BoxPatConstructor.qll 153f110ba25fd6c889092bfd lib/codeql/rust/elements/internal/BreakExprConstructor.qll 356be043c28e0b34fdf925a119c945632ee883c6f5ebb9a27003c6a8d250afd9 bb77e66b04bb9489340e7506931559b94285c6904b6f9d2f83b214cba4f3cfd5 lib/codeql/rust/elements/internal/CallExprConstructor.qll 742b38e862e2cf82fd1ecc4d4fc5b4782a9c7c07f031452b2bae7aa59d5aa13a cad6e0a8be21d91b20ac2ec16cab9c30eae810b452c0f1992ed87d5c7f4144dc lib/codeql/rust/elements/internal/CastExprConstructor.qll f3d6e10c4731f38a384675aeab3fba47d17b9e15648293787092bb3247ed808d d738a7751dbadb70aa1dcffcf8af7fa61d4cf8029798369a7e8620013afff4ed -lib/codeql/rust/elements/internal/ClosureBinderConstructor.qll 6e376ab9d40308e95bcdaf1cc892472c92099d477720192cd382d2c4e0d9c8a1 60a0efe50203ad5bb97bdfc06d602182edcc48ac9670f2d27a9675bd9fd8e19f -lib/codeql/rust/elements/internal/ClosureBinderImpl.qll 9f6ce7068b5c17df44f00037ebb42e6c8fdbbbd09bf89951221fb04f378fbdf1 6e6e372e151fe0b0f17a5ea0ed774553b6ed0bf53e1d377e5ed24a0f98529735 lib/codeql/rust/elements/internal/ClosureExprConstructor.qll a348229d2b25c7ebd43b58461830b7915e92d31ae83436ec831e0c4873f6218a 70a1d2ac33db3ac4da5826b0e8628f2f29a8f9cdfd8e4fd0e488d90ce0031a38 lib/codeql/rust/elements/internal/CommentConstructor.qll 0b4a6a976d667bf7595500dfb91b9cfc87460a501837ba5382d9a8d8321d7736 7d02d8c94a319dc48e7978d5270e33fc5c308d443768ff96b618236d250123f1 lib/codeql/rust/elements/internal/ConstArgConstructor.qll f63021dc1ca2276786da3a981d06c18d7a360b5e75c08bca5d1afece4f7c4a83 487a870cbf5ed6554d671a8e159edd9261d853eba2d28ce2bd459759f47f11f2 @@ -273,6 +271,8 @@ lib/codeql/rust/elements/internal/FieldExprConstructor.qll b3be2c4ccaf2c8a1283f3 lib/codeql/rust/elements/internal/FieldListImpl.qll 6b80b573989ee85389c4485729a40c92c7e0a5b8a96a4385e812c74fb63c894f d333bcb043616b95ffefed4d216f94e5b07541f8153e4fb8084f4e793947b023 lib/codeql/rust/elements/internal/FnPtrTypeReprConstructor.qll 61d8808ea027a6e04d5304c880974332a0195451f6b4474f84b3695ec907d865 0916c63a02b01a839fe23ec8b189d37dc1b8bc4e1ba753cbf6d6f5067a46965a lib/codeql/rust/elements/internal/FnPtrTypeReprImpl.qll 6b66f9bda1b5deba50a02b6ac7deb8e922da04cf19d6ed9834141bc97074bf14 b0a07d7b9204256a85188fda2deaf14e18d24e8a881727fd6e5b571bf9debdc8 +lib/codeql/rust/elements/internal/ForBinderConstructor.qll 98f16b0106a19210713404f4be8b1b9f70c88efb0b88bdf2f9ea9c8fbd129842 a7af9e75f11d824a60c367924542a31a0f46f7b1f88d3ee330d4dd26b2f29df5 +lib/codeql/rust/elements/internal/ForBinderImpl.qll 62e957e4e8a68816defed494e706a37a83ad30a455ded913b48c2c3d9c51d728 e38e1b93963513704efebec2c63e5f9a9eae372fe88e1dc8c480885e21528121 lib/codeql/rust/elements/internal/ForExprConstructor.qll d79b88dac19256300b758ba0f37ce3f07e9f848d6ae0c1fdb87bd348e760aa3e 62123b11858293429aa609ea77d2f45cb8c8eebae80a1d81da6f3ad7d1dbc19b lib/codeql/rust/elements/internal/ForTypeReprConstructor.qll eae141dbe9256ab0eb812a926ebf226075d150f6506dfecb56c85eb169cdc76b 721c2272193a6f9504fb780d40e316a93247ebfb1f302bb0a0222af689300245 lib/codeql/rust/elements/internal/ForTypeReprImpl.qll 75747779312b3f3ffdd02188053ba3f46b8922f02630711902f7a27eecced31a 71a900f014758d1473ef198c71892d42e20dd96e934d4bedb74581964c4d1503 @@ -492,8 +492,7 @@ lib/codeql/rust/elements/internal/generated/CallExpr.qll f1b8dae487077cc9d1dccf8 lib/codeql/rust/elements/internal/generated/CallExprBase.qll 2268e01d65015014c05166161bb28e5a1e78164d525ca16fc1e3106866cf231d b2f9b912153ba4d3e3612df4f74ac0e83077c31d5b31383bd277974081417a56 lib/codeql/rust/elements/internal/generated/Callable.qll 9a8661aa018fd90a21529760c1dbc46c1ad3649e17b030e59ced0683fbf83f8a 8b573adfc23ec0ac91949da415e6a0c988fa02cbce9534d45ac98a5512d7b1ca lib/codeql/rust/elements/internal/generated/CastExpr.qll ddc20054b0b339ad4d40298f3461490d25d00af87c876da5ffbc6a11c0832295 f4247307afcd74d80e926f29f8c57e78c50800984483e6b6003a44681e4a71f3 -lib/codeql/rust/elements/internal/generated/ClosureBinder.qll ab199df96f525a083a0762fd654cd098802033c79700a593bb204a9a0c69ec01 86b33543e0886715830cfcdaca43b555a242a4f12a4caa18b88732d5afb584bd -lib/codeql/rust/elements/internal/generated/ClosureExpr.qll 34149bf82f107591e65738221e1407ec1dc9cc0dfb10ae7f761116fda45162de fd2fbc9a87fc0773c940db64013cf784d5e4137515cc1020e2076da329f5a952 +lib/codeql/rust/elements/internal/generated/ClosureExpr.qll d5deef5d257b313e3fa3ad292c8af26db32f45446dc88009515435344aed1efc eb8d0394255e7dc005ef5c729ae851b78b4a0d838c3ac2460b4e715bbdb5e97f lib/codeql/rust/elements/internal/generated/Comment.qll cd1ef861e3803618f9f78a4ac00516d50ecfecdca1c1d14304dc5327cbe07a3b 8b67345aeb15beb5895212228761ea3496297846c93fd2127b417406ae87c201 lib/codeql/rust/elements/internal/generated/Const.qll 3e606f0198b6461a94964dba7a4d386408f01651d75378eeab251dfceccf49c8 20fe276cded4764bdb1cd50de956bea88d7cd731909c0b84b4abb972b3094959 lib/codeql/rust/elements/internal/generated/ConstArg.qll c52bf746f2dc89b8d71b8419736707bfcbb09cca424c3ba76e888e2add415bf6 89309a9df4fde23cfd3d8492908ccec4d90cc8457d35c507ef81371a369941b4 @@ -514,8 +513,9 @@ lib/codeql/rust/elements/internal/generated/ExtractorStep.qll 61cd504a1aab98b1c9 lib/codeql/rust/elements/internal/generated/FieldExpr.qll d6077fcc563702bb8d626d2fda60df171023636f98b4a345345e131da1a03dfc 03f9eb65abfab778e6d2c7090c08fe75c38c967302f5a9fa96ab0c24e954929d lib/codeql/rust/elements/internal/generated/FieldList.qll 35bb72a673c02afafc1f6128aeb26853d3a1cdbaea246332affa17a023ece70e b7012dd214788de9248e9ab6eea1a896329d5731fa0b39e23df1b39df2b7eb9c lib/codeql/rust/elements/internal/generated/FnPtrTypeRepr.qll f218fa57a01ecc39b58fa15893d6499c15ff8ab8fd9f4ed3078f0ca8b3f15c7e 2d1a7325cf2bd0174ce6fc15e0cbe39c7c1d8b40db5f91e5329acb339a1ad1e8 +lib/codeql/rust/elements/internal/generated/ForBinder.qll 7be6b8e3934db8cd4ac326625cf637dda4b175fd7573a52d2feb147769c4c6a1 234484b9b4cf3a20c97334417700db5029da65313410b3c9e929512c509e5c27 lib/codeql/rust/elements/internal/generated/ForExpr.qll 7c497d2c612fd175069037d6d7ff9339e8aec63259757bb56269e9ca8b0114ea dc48c0ad3945868d6bd5e41ca34a41f8ee74d8ba0adc62b440256f59c7f21096 -lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll 36ea243bd5ada10c586d9430464761849506b91754cf045c59f4ae194e78a456 cc65dc72c87d0ad7be3263bbdd1c515a057e62e97b0a28f9c4b0f689ac3566b7 +lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll a8fcdff13e30cce9c30fc3ae81db9ee7160b3028872cb3a60db78523a3ffe771 d3dda40fd2547bd1acd2eeb4d1bc72a4487400bb0752e9679bbb6aea0debf35a lib/codeql/rust/elements/internal/generated/Format.qll 934351f8a8ffd914cc3fd88aca8e81bf646236fe34d15e0df7aeeb0b942b203f da9f146e6f52bafd67dcfd3b916692cf8f66031e0b1d5d17fc8dda5eefb99ca0 lib/codeql/rust/elements/internal/generated/FormatArgsArg.qll c762a4af8609472e285dd1b1aec8251421aec49f8d0e5ce9df2cc5e2722326f8 c8c226b94b32447634b445c62bd9af7e11b93a706f8fa35d2de4fda3ce951926 lib/codeql/rust/elements/internal/generated/FormatArgsExpr.qll 8aed8715a27d3af3de56ded4610c6792a25216b1544eb7e57c8b0b37c14bd9c1 590a2b0063d2ecd00bbbd1ce29603c8fd69972e34e6daddf309c915ce4ec1375 @@ -575,7 +575,7 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll eaa0cd4402d3665013d47e lib/codeql/rust/elements/internal/generated/ParenExpr.qll 812d2ff65079277f39f15c084657a955a960a7c1c0e96dd60472a58d56b945eb eb8c607f43e1fcbb41f37a10de203a1db806690e10ff4f04d48ed874189cb0eb lib/codeql/rust/elements/internal/generated/ParenPat.qll 24f9dc7fce75827d6fddb856cd48f80168143151b27295c0bab6db5a06567a09 ebadbc6f5498e9ed754b39893ce0763840409a0721036a25b56e1ead7dcc09aa lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 03f5c5b96a37adeb845352d7fcea3e098da9050e534972d14ac0f70d60a2d776 ed3d6e5d02086523087adebce4e89e35461eb95f2a66d1d4100fe23fc691b126 -lib/codeql/rust/elements/internal/generated/ParentChild.qll c7958f4e110f4afb810b06946309bf766305cc4d92c92695ae8f06b3f321ddcd 8150b0550b639cffc7c989c32fc3951fad32ec82ad838f359527a473bdb95a3f +lib/codeql/rust/elements/internal/generated/ParentChild.qll 389ee1eea791f9d2a5eb9ae49d2aa61607f8cdb3f3d5752d5c067122029de66a 50875ace3751c001acc11fa596ea1cd8c8b17dd925344c2d91d338b3f864df0d lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll d901fdc8142a5b8847cc98fc2afcfd16428b8ace4fbffb457e761b5fd3901a77 5dbb0aea5a13f937da666ccb042494af8f11e776ade1459d16b70a4dd193f9fb lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4 lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd @@ -590,7 +590,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 8d0ea4f6c7f8203340bf lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9 lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9 -lib/codeql/rust/elements/internal/generated/Raw.qll 7448186873413f4aa7762c990c1c699e3a379280f0260bc76524386aefe567f1 07acbe3eabaa87147757989e8616046fff218669677e7d3d6465fbda639519e1 +lib/codeql/rust/elements/internal/generated/Raw.qll 3c38cd761b847ba5744810479901692fe1a28759d8305f828ff535c034f21f97 56f75a0589112d66f234c99b0c3798ed928b3a808ebb7d37590cf5868aad9c10 lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66 lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05 lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 5b0663a6d234572fb3e467e276d019415caa95ef006438cc59b7af4e1783161e 0e27c8a8f0e323c0e4d6db01fca821bf07c0864d293cdf96fa891b10820c1e4b @@ -616,8 +616,8 @@ lib/codeql/rust/elements/internal/generated/StructFieldList.qll 5da528a51a6a5db9 lib/codeql/rust/elements/internal/generated/StructPat.qll c76fa005c2fd0448a8803233e1e8818c4123301eb66ac5cf69d0b9eaafc61e98 6e0dffccdce24bca20e87d5ba0f0995c9a1ae8983283e71e7dbfcf6fffc67a58 lib/codeql/rust/elements/internal/generated/StructPatField.qll 5b5c7302dbc4a902ca8e69ff31875c867e295a16a626ba3cef29cd0aa248f179 4e192a0df79947f5cb0d47fdbbba7986137a6a40a1be92ae119873e2fad67edf lib/codeql/rust/elements/internal/generated/StructPatFieldList.qll 1a95a1bd9f64fb18e9571657cf2d02a8b13c747048a1f0f74baf31b91f0392ad fc274e414ff4ed54386046505920de92755ad0b4d39a7523cdffa4830bd53b37 -lib/codeql/rust/elements/internal/generated/Synth.qll 39bd329c2efef8691106070107356da0c336d10cb395aa2129ceb6108db27357 5369b56fe14c1961b38af4288b512dfaf09fc4264efced468af5fc6da403ac04 -lib/codeql/rust/elements/internal/generated/SynthConstructors.qll bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 +lib/codeql/rust/elements/internal/generated/Synth.qll e1f47da257976aa7689461ee3ea9022fc0d27494a556f14f1086f8149b885d5c 59b979f378be6ce75ecfd3430887bff747c273d1536c686f90def9e6c4ed2c12 +lib/codeql/rust/elements/internal/generated/SynthConstructors.qll f41abfc73415b7accb38da7c107faebfe6843c270ad54e0e54a96e930dfe479a f41abfc73415b7accb38da7c107faebfe6843c270ad54e0e54a96e930dfe479a 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/Trait.qll 8fa41b50fa0f68333534f2b66bb4ec8e103ff09ac8fa5c2cc64bc04beafec205 ce1c9aa6d0e2f05d28aab8e1165c3b9fb8e24681ade0cf6a9df2e8617abeae7e @@ -631,7 +631,7 @@ lib/codeql/rust/elements/internal/generated/TupleStructPat.qll 6539d0edbdc16e7df lib/codeql/rust/elements/internal/generated/TupleTypeRepr.qll 1756cdbad56d634bf4726bc39c768386754e62650492d7d6344012038236a05b 3ac0997a47f95f28cc70c782173ce345fcb5b073be10f3c0b414d1df8443e04c lib/codeql/rust/elements/internal/generated/TypeAlias.qll 0d0c97d9e9213b8f0390b3456737d4611701a570b9943bb20b348c4efc8e4693 a83c701c0d8914e01517dfa9253a12be962f0a7ed2f75fbaae25a13432db403f lib/codeql/rust/elements/internal/generated/TypeArg.qll 80245e4b52bef30e5033d4c765c72531324385deea1435dc623290271ff05b1d 097926e918dcd897ea1609010c5490dbf45d4d8f4cffb9166bcadf316a2f1558 -lib/codeql/rust/elements/internal/generated/TypeBound.qll fa5cf5370c3f69e687b5fc888d2ca29d0a45bd0824d1159a202eafae29e70601 e3bc6a1e5c0af374c60e83396c5b0ceda499fabd300c25017ae7d4d5b234b264 +lib/codeql/rust/elements/internal/generated/TypeBound.qll 15e118049bb5aae24bce580e3dff62b7e73dcce9f7c6bc8dfd59d2c25ed64244 f18a35749f8fc003221e8f4315160756be592406637441929eda919ac493e835 lib/codeql/rust/elements/internal/generated/TypeBoundList.qll c5d43dc27075a0d5370ba4bc56b4e247357af5d2989625deff284e7846a3a48b c33c87d080e6eb6df01e98b8b0031d780472fcaf3a1ed156a038669c0e05bf0a lib/codeql/rust/elements/internal/generated/TypeParam.qll 81a8d39f1e227de031187534e5d8e2c34f42ad3433061d686cadfbdd0df54285 893795d62b5b89997574e9057701d308bea2c4dca6053042c5308c512137e697 lib/codeql/rust/elements/internal/generated/TypeRepr.qll 1e7b9d2ddab86e35dad7c31a6453a2a60747420f8bc2e689d5163cab4fec71bb eb80e3947649e511e7f3555ffc1fd87199e7a32624449ca80ffad996cdf9e2f3 @@ -648,12 +648,12 @@ lib/codeql/rust/elements/internal/generated/Variant.qll fa6909715133049b3dba4622 lib/codeql/rust/elements/internal/generated/VariantList.qll 3f70bfde982e5c5e8ee45da6ebe149286214f8d40377d5bc5e25df6ae8f3e2d1 22e5f428bf64fd3fd21c537bfa69a46089aad7c363d72c6566474fbe1d75859e lib/codeql/rust/elements/internal/generated/Visibility.qll af1069733c0120fae8610b3ebbcdcebe4b4c9ce4c3e3d9be3f82a93541873625 266106bdff4d7041d017871d755c011e7dd396c5999803d9e46725b6a03a2458 lib/codeql/rust/elements/internal/generated/WhereClause.qll aec72d358689d99741c769b6e8e72b92c1458138c097ec2380e917aa68119ff0 81bb9d303bc0c8d2513dc7a2b8802ec15345b364e6c1e8b300f7860aac219c36 -lib/codeql/rust/elements/internal/generated/WherePred.qll 9aa63abdf1202ee4708e7413401811d481eac55ba576a4950653395f931d1e90 ebb9f2883f811ea101220eac13d02d2893d2ec0231a29826a32b77cb2c88a5f8 +lib/codeql/rust/elements/internal/generated/WherePred.qll 6826373cede8b4ac5d4719a183c6b30f840d48266f0e0c8e400574476f5a2f15 a82dcc24efac562d5b6247f9a105465ebafc9bebb4fc3648518bf9166e300dbd lib/codeql/rust/elements/internal/generated/WhileExpr.qll 0353aab87c49569e1fbf5828b8f44457230edfa6b408fb5ec70e3d9b70f2e277 e1ba7c9c41ff150b9aaa43642c0714def4407850f2149232260c1a2672dd574a lib/codeql/rust/elements/internal/generated/WildcardPat.qll d74b70b57a0a66bfae017a329352a5b27a6b9e73dd5521d627f680e810c6c59e 4b913b548ba27ff3c82fcd32cf996ff329cb57d176d3bebd0fcef394486ea499 lib/codeql/rust/elements/internal/generated/YeetExpr.qll cac328200872a35337b4bcb15c851afb4743f82c080f9738d295571eb01d7392 94af734eea08129b587fed849b643e7572800e8330c0b57d727d41abda47930b lib/codeql/rust/elements/internal/generated/YieldExpr.qll 37e5f0c1e373a22bbc53d8b7f2c0e1f476e5be5080b8437c5e964f4e83fad79a 4a9a68643401637bf48e5c2b2f74a6bf0ddcb4ff76f6bffb61d436b685621e85 -lib/codeql/rust/elements.qll 6ebcf16ef214075bc43562c246c11f8b90c089ff1b5041ab1b39ab9f4a40e9b3 6ebcf16ef214075bc43562c246c11f8b90c089ff1b5041ab1b39ab9f4a40e9b3 +lib/codeql/rust/elements.qll 49df59c1b9574135b6ff2b0480b645f7303e81df042714b22b1070351d0076b9 49df59c1b9574135b6ff2b0480b645f7303e81df042714b22b1070351d0076b9 test/extractor-tests/generated/Abi/Abi.ql 086ed104ab1a7e7fe5c1ed29e03f1719a797c7096c738868bf6ebe872ab8fdaa fe23fe67ab0d9201e1177ea3f844b18ed428e13e3ce77381bf2b6910adfa3a0e test/extractor-tests/generated/ArgList/ArgList.ql da97b5b25418b2aa8cb8df793f48870c89fa00759cdade8ddba60d7f1f4bbc01 acfd5d2caf67282ad2d57b961068472100482d0f770a52a3c00214c647d18c75 test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql 42b365276aa43e2cad588338463542d3ce1dd0db3a428621554584b07a1431d5 08a66a8b69af35ee3bc64c35c453a19a6c9881cc6cc7e65275d1fff056121270 @@ -681,8 +681,7 @@ test/extractor-tests/generated/BoxPat/BoxPat.ql 854c9ba4e045dbe7ea1666866c1c443a test/extractor-tests/generated/BreakExpr/BreakExpr.ql c2181211da3dfe983cfca93ead32d5d211e91181899b9477152c58124eaa846d 57e57b926e14db2efb2e88e04699608b2ba9797ee4f6c4f710135b6858982256 test/extractor-tests/generated/CallExpr/CallExpr.ql 2a1cd4485ccd8d4eb24a75889e832612adef9bb7feae414c90572796380bc6d7 95060b92aa04d7ad1fc6603c5ec14a275a5788ecb5a19932732e28105607a3b7 test/extractor-tests/generated/CastExpr/CastExpr.ql 3480ec51072399409b7553ab6139c832db6ed4ca991f3a7a2282a39afe07c6f2 614c8ea7a2fe30d57583dbf84ed7a12743c2aba49d8c6252d31af3ed10853a39 -test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql b68285fec6224b156754f51ee75a9b7ed32edaa16527e6f657a73bf6dd97eba3 d02b1b6d66dea1da892447d7b309f9b6e4eda0dd02055d71706d52aa73b5b9c4 -test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql 849c874de45781b8491cee428cc00fefc8cdc76f87de8a373a181b16ce930ab1 5e570193befae7bfe6c21ce91e20afd52bb94f234e2be89d0974bd6337221508 +test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql f9002cc327769edff05ae428d0c01ba80e18a217057d4d2c3a31eb24ab659ed6 8af2986890d0f3dd77c72023d992d5e587c9922b6f3ea378a6e268a51cfbbda5 test/extractor-tests/generated/Comment/Comment.ql 0e0454911d2cf2e7ef5c6d860b84c57b9d490090914ebcf4fa0e8a70f777f066 cbd1c195276ef163f8d3c122344738c884dc9fb70eb2f9b7067829d735d48c4c test/extractor-tests/generated/Const/Const.ql 28a0f2debbf73ae867fc2d08d8e54d9e96fea69522b7180a48495c9b7fce9367 54d4a68a2b67db95ceb856535a8b27860ce2b502da17a7eeea3bb554d7fb5e43 test/extractor-tests/generated/ConstArg/ConstArg.ql 21c7caf1939ff9fcc1bf0fe6dec5c6a6929f714cf1e17faf7a2f4a31c910194b 61eac00f4727f7269f926c53f53a62b5fae82ce7a02b42d23b9de6337b6f9d6e @@ -698,8 +697,9 @@ test/extractor-tests/generated/ExternCrate/ExternCrate.ql 7cd54aa65300453fc031e6 test/extractor-tests/generated/ExternItemList/ExternItemList.ql 7f4d538d8878a0166b1868f391abf34df1d5e986a7a2e9ceaddb36d95bc7f46c 37072596f5a1e28ad98cc87dbfed00afadd83fa007f03d5b17d4dee8922b100f test/extractor-tests/generated/FieldExpr/FieldExpr.ql 2a04baaf57a22b65bd5b9e142e59cc2b7d3dd3174910ddc0c2510094f2dd32b1 d8e4fb4384aade1770c907d16795a4af9884051390a5a05935ad4b4df2e757a0 test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql 1501730f1e02e9d22b07b18bb42a5372e1d327bda62bdc81d75f9966946cb97d 28625f0b7ee4d7ab37fc13206585961e89a5e509a93215c16136d2382418b7af +test/extractor-tests/generated/ForBinder/ForBinder.ql c95fd006eaddb9535eda0d527d71cdd5d3745fe464fd809a8d58b8c4dfc8790e 1d8b38059b8a25965eab9a8a1286384aa994d7cac7414b70b63c6a3d6bcf3c39 test/extractor-tests/generated/ForExpr/ForExpr.ql 3bac38bf33e140ae9f88371ec90409f7de867e39cdea46f02b15519b236b57cb aade1baf6e6081b3b9bce5b7e95fe4b7ffe00ea9450fd6e1d6692ad97cf93fe9 -test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql b74c0034bf5d1bb4a1a73ab822daca4572e80983a0c88620abe92bb794dd9cd8 a18f9a6d95b46b808c3a25e11fc54d2564ace67fb98d0c76632c5d5894b31030 +test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql 5961055988b3a7749fb80e24d924bf1b67b0c52a6c895379beedd66a34bad04f d8ab72fac742314ead1aa0e1fed2535cc6597d278f3eef017bc9f8fd8cde83e7 test/extractor-tests/generated/FormatArgsExpr/Format.ql 237ed2e01d9a75ee8521d6578333a7b1d566f09ef2102c4efcbb34ea58f2f9e8 09007ce4de701c0d1c0967f4f728ea9e627d9db19431bd9caebbf28ee51a1f36 test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql 5abcb565dcd2822e2ea142d19b8c92194ee17c71c3db7595248690034559d174 1ffa743fc678701ffeefff6c14c1414bb9158e6756f32380dd590ff44b19ca5a test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql 243c2f9d830f1eae915749e81ac78d3c140280385b0002d10fcc4d2feaf14711 72b90a99a8b1c16baf1e254e1e3463c3ce5409624a2a90829122717d4e5a2b74 @@ -796,7 +796,7 @@ test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql d00b185013bb4e5f test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql 2f1503734d272cd0616e5885cd344659cbd0ae7309a375c8351f57f2b86c3302 276a4fe91b8dc64cdca4467343e2bb2e240c66ec1e4e11bf8cba73819c6532cc test/extractor-tests/generated/TypeAlias/TypeAlias.ql 2b120c7fe640b233540f6982153fddf50ddc089b8284dca321b4c48eecf93dfd 6d40a0d8c927dd499fd92fd95638c50eeca8f956aa1706c17913dbf83f0f500c test/extractor-tests/generated/TypeArg/TypeArg.ql e1ca286c03bd2d44054f5dd75aac250382037f243046c49ec752ad8d65e4c0ba f316d5fa84a721427c0aadf6bfa0ed4cfd86e4d318cfb0fe82efc52e65c4733b -test/extractor-tests/generated/TypeBound/TypeBound.ql 4f5a2a49075c01c982988e66759f61c5285343d78cda94e228e17593d16fee6e 7aae320e881d6ea969e31b1e8fe586feb07b1db43c65da684cbac66157354851 +test/extractor-tests/generated/TypeBound/TypeBound.ql 41d0a7b6538de12797c5aa4152ea701517abe685b1160615f2d74203e7a00d34 f57128c66df37791f93db269451b1c617c991d8723ecb9efe4b8ff8b2559472c test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql 6827529eca62f5e7be87538af6231099f5932f39d8694f7a76369273b93f28ea 539dac4ccda7e51b7ae1a9e05d8a56a98176d9de25d5ed4347ebe2fbea8adeb1 test/extractor-tests/generated/TypeParam/TypeParam.ql c5f8f62f2877c719c3cf069f9d0ca83cebc14f7611c6c2dce86c85114ea2635c 751c630986f35a8d0d32fbeb61ca6ff801c96cd1829dbccc874fbf5f5158e98d test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql a7b7a93104fff28515154cf8e79045d3eea2494b5c46f1caf36639c53b1c64a7 070ee2e1664e3291646ea56681b5c93331f94dcc519deb28622beca3e26e16f3 @@ -809,7 +809,7 @@ test/extractor-tests/generated/Variant/Variant.ql 9405704e9192cac4838dcba8625261 test/extractor-tests/generated/VariantList/VariantList.ql 1c1d82ce3ecfa7daaae1920662510e81892ed899a3c2f785e2ff3670245a03cd 29d4c5ab2b737a92c7525789e10a4aa9848f1a327e34f4e9543018021106b303 test/extractor-tests/generated/Visibility/Visibility.ql 725d47d7444332133df603f9b06592dc40b0f83bf5e21ad4781c5658e001a3aa 2d65a30702a8bb5bc91caf6ae2d0e4c769b3eeb0d72ffbd9cdb81048be4061ad test/extractor-tests/generated/WhereClause/WhereClause.ql a6f0e69ffa6b997cac04d4da442eb8bde517a576840c953abcc40863b9099ba1 7ce888fffc3038d5b18f8c94d3b045815cd45500e1bb3849c05fc874edbeb695 -test/extractor-tests/generated/WherePred/WherePred.ql 504d00a40e418542c3e0ff30d43c4d2d0e7218b2a31fcf32c9310d705d97b9fe 61c53dde539a9e1e3d6bf13ca1d0dab8af6ea6b54ab698a0a5a5f49bf627934b +test/extractor-tests/generated/WherePred/WherePred.ql 8f73500a04f8748221b181bb9a51bef6c09d5ddf046488303594821e3191b370 8fb51d095a3c39b51ec8b4515fc02474ba36067ca4dfd48dff7e14d1c3881ea3 test/extractor-tests/generated/WhileExpr/WhileExpr.ql dcfe1ed375514a7b7513272767ed195cdbf339b56e00e62d207ca1eee080f164 f067283510655f0cf810cae834ac29ad2c6007ba312d027ebcdf695a23ec33e4 test/extractor-tests/generated/WildcardPat/WildcardPat.ql d36f52a1d00d338b43894b6f8e198ad0c409542f436e3e57d527205c3dfee38c 4e1321e714cedb606e0d84f10ed37c72da61b3a1616754b967f721ff0bc0e4ee test/extractor-tests/generated/YeetExpr/YeetExpr.ql 5c552b490ccf5b123f7a2fa3e73d03d008e4df5928ffa0bd503dc6bd7736462c 09a4f413ae045051abe392f29949d6feab1a808d666c6b8dac0901f84a8a4740 diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 4fc300e48cc..d7dbdaa982e 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -38,7 +38,6 @@ /lib/codeql/rust/elements/CallExprBase.qll linguist-generated /lib/codeql/rust/elements/Callable.qll linguist-generated /lib/codeql/rust/elements/CastExpr.qll linguist-generated -/lib/codeql/rust/elements/ClosureBinder.qll linguist-generated /lib/codeql/rust/elements/ClosureExpr.qll linguist-generated /lib/codeql/rust/elements/Comment.qll linguist-generated /lib/codeql/rust/elements/Const.qll linguist-generated @@ -59,6 +58,7 @@ /lib/codeql/rust/elements/FieldExpr.qll linguist-generated /lib/codeql/rust/elements/FieldList.qll linguist-generated /lib/codeql/rust/elements/FnPtrTypeRepr.qll linguist-generated +/lib/codeql/rust/elements/ForBinder.qll linguist-generated /lib/codeql/rust/elements/ForExpr.qll linguist-generated /lib/codeql/rust/elements/ForTypeRepr.qll linguist-generated /lib/codeql/rust/elements/Format.qll linguist-generated @@ -243,8 +243,6 @@ /lib/codeql/rust/elements/internal/BreakExprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/CallExprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/CastExprConstructor.qll linguist-generated -/lib/codeql/rust/elements/internal/ClosureBinderConstructor.qll linguist-generated -/lib/codeql/rust/elements/internal/ClosureBinderImpl.qll linguist-generated /lib/codeql/rust/elements/internal/ClosureExprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/CommentConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ConstArgConstructor.qll linguist-generated @@ -275,6 +273,8 @@ /lib/codeql/rust/elements/internal/FieldListImpl.qll linguist-generated /lib/codeql/rust/elements/internal/FnPtrTypeReprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/FnPtrTypeReprImpl.qll linguist-generated +/lib/codeql/rust/elements/internal/ForBinderConstructor.qll linguist-generated +/lib/codeql/rust/elements/internal/ForBinderImpl.qll linguist-generated /lib/codeql/rust/elements/internal/ForExprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ForTypeReprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ForTypeReprImpl.qll linguist-generated @@ -494,7 +494,6 @@ /lib/codeql/rust/elements/internal/generated/CallExprBase.qll linguist-generated /lib/codeql/rust/elements/internal/generated/Callable.qll linguist-generated /lib/codeql/rust/elements/internal/generated/CastExpr.qll linguist-generated -/lib/codeql/rust/elements/internal/generated/ClosureBinder.qll linguist-generated /lib/codeql/rust/elements/internal/generated/ClosureExpr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/Comment.qll linguist-generated /lib/codeql/rust/elements/internal/generated/Const.qll linguist-generated @@ -516,6 +515,7 @@ /lib/codeql/rust/elements/internal/generated/FieldExpr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/FieldList.qll linguist-generated /lib/codeql/rust/elements/internal/generated/FnPtrTypeRepr.qll linguist-generated +/lib/codeql/rust/elements/internal/generated/ForBinder.qll linguist-generated /lib/codeql/rust/elements/internal/generated/ForExpr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/Format.qll linguist-generated @@ -683,7 +683,6 @@ /test/extractor-tests/generated/BreakExpr/BreakExpr.ql linguist-generated /test/extractor-tests/generated/CallExpr/CallExpr.ql linguist-generated /test/extractor-tests/generated/CastExpr/CastExpr.ql linguist-generated -/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql linguist-generated /test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql linguist-generated /test/extractor-tests/generated/Comment/Comment.ql linguist-generated /test/extractor-tests/generated/Const/Const.ql linguist-generated @@ -700,6 +699,7 @@ /test/extractor-tests/generated/ExternItemList/ExternItemList.ql linguist-generated /test/extractor-tests/generated/FieldExpr/FieldExpr.ql linguist-generated /test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql linguist-generated +/test/extractor-tests/generated/ForBinder/ForBinder.ql linguist-generated /test/extractor-tests/generated/ForExpr/ForExpr.ql linguist-generated /test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql linguist-generated /test/extractor-tests/generated/FormatArgsExpr/Format.ql linguist-generated diff --git a/rust/ql/lib/codeql/rust/elements.qll b/rust/ql/lib/codeql/rust/elements.qll index cd44985675f..64e497000a0 100644 --- a/rust/ql/lib/codeql/rust/elements.qll +++ b/rust/ql/lib/codeql/rust/elements.qll @@ -41,7 +41,6 @@ import codeql.rust.elements.CallExpr import codeql.rust.elements.CallExprBase import codeql.rust.elements.Callable import codeql.rust.elements.CastExpr -import codeql.rust.elements.ClosureBinder import codeql.rust.elements.ClosureExpr import codeql.rust.elements.Comment import codeql.rust.elements.Const @@ -62,6 +61,7 @@ import codeql.rust.elements.ExternItemList import codeql.rust.elements.FieldExpr import codeql.rust.elements.FieldList import codeql.rust.elements.FnPtrTypeRepr +import codeql.rust.elements.ForBinder import codeql.rust.elements.ForExpr import codeql.rust.elements.ForTypeRepr import codeql.rust.elements.Format diff --git a/rust/ql/lib/codeql/rust/elements/ClosureExpr.qll b/rust/ql/lib/codeql/rust/elements/ClosureExpr.qll index d1f73bfaadb..63fb8ccf53a 100644 --- a/rust/ql/lib/codeql/rust/elements/ClosureExpr.qll +++ b/rust/ql/lib/codeql/rust/elements/ClosureExpr.qll @@ -5,8 +5,8 @@ private import internal.ClosureExprImpl import codeql.rust.elements.Callable -import codeql.rust.elements.ClosureBinder import codeql.rust.elements.Expr +import codeql.rust.elements.ForBinder import codeql.rust.elements.RetTypeRepr /** diff --git a/rust/ql/lib/codeql/rust/elements/ClosureBinder.qll b/rust/ql/lib/codeql/rust/elements/ForBinder.qll similarity index 60% rename from rust/ql/lib/codeql/rust/elements/ClosureBinder.qll rename to rust/ql/lib/codeql/rust/elements/ForBinder.qll index 0bf9579b2f0..3dfff62d1e6 100644 --- a/rust/ql/lib/codeql/rust/elements/ClosureBinder.qll +++ b/rust/ql/lib/codeql/rust/elements/ForBinder.qll @@ -1,14 +1,14 @@ // generated by codegen, do not edit /** - * This module provides the public class `ClosureBinder`. + * This module provides the public class `ForBinder`. */ -private import internal.ClosureBinderImpl +private import internal.ForBinderImpl import codeql.rust.elements.AstNode import codeql.rust.elements.GenericParamList /** - * A closure binder, specifying lifetime or type parameters for a closure. + * A for binder, specifying lifetime or type parameters for a closure or a type. * * For example: * ```rust @@ -21,4 +21,4 @@ import codeql.rust.elements.GenericParamList * print_any("hello"); * ``` */ -final class ClosureBinder = Impl::ClosureBinder; +final class ForBinder = Impl::ForBinder; diff --git a/rust/ql/lib/codeql/rust/elements/ForTypeRepr.qll b/rust/ql/lib/codeql/rust/elements/ForTypeRepr.qll index c52c92197bb..bf4627783ed 100644 --- a/rust/ql/lib/codeql/rust/elements/ForTypeRepr.qll +++ b/rust/ql/lib/codeql/rust/elements/ForTypeRepr.qll @@ -4,7 +4,7 @@ */ private import internal.ForTypeReprImpl -import codeql.rust.elements.GenericParamList +import codeql.rust.elements.ForBinder import codeql.rust.elements.TypeRepr /** diff --git a/rust/ql/lib/codeql/rust/elements/TypeBound.qll b/rust/ql/lib/codeql/rust/elements/TypeBound.qll index c49d8e5be06..03e0afa8cd3 100644 --- a/rust/ql/lib/codeql/rust/elements/TypeBound.qll +++ b/rust/ql/lib/codeql/rust/elements/TypeBound.qll @@ -5,6 +5,7 @@ private import internal.TypeBoundImpl import codeql.rust.elements.AstNode +import codeql.rust.elements.ForBinder import codeql.rust.elements.Lifetime import codeql.rust.elements.TypeRepr import codeql.rust.elements.UseBoundGenericArgs diff --git a/rust/ql/lib/codeql/rust/elements/WherePred.qll b/rust/ql/lib/codeql/rust/elements/WherePred.qll index 16e1e586570..c08334fb1b9 100644 --- a/rust/ql/lib/codeql/rust/elements/WherePred.qll +++ b/rust/ql/lib/codeql/rust/elements/WherePred.qll @@ -5,7 +5,7 @@ private import internal.WherePredImpl import codeql.rust.elements.AstNode -import codeql.rust.elements.GenericParamList +import codeql.rust.elements.ForBinder import codeql.rust.elements.Lifetime import codeql.rust.elements.TypeBoundList import codeql.rust.elements.TypeRepr diff --git a/rust/ql/lib/codeql/rust/elements/internal/ClosureBinderConstructor.qll b/rust/ql/lib/codeql/rust/elements/internal/ForBinderConstructor.qll similarity index 61% rename from rust/ql/lib/codeql/rust/elements/internal/ClosureBinderConstructor.qll rename to rust/ql/lib/codeql/rust/elements/internal/ForBinderConstructor.qll index 0213547728f..1dfea8c72ab 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/ClosureBinderConstructor.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/ForBinderConstructor.qll @@ -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 - * `ClosureBinder` synthesized instances. + * `ForBinder` synthesized instances. * INTERNAL: Do not use. */ private import codeql.rust.elements.internal.generated.Raw /** - * The characteristic predicate of `ClosureBinder` synthesized instances. + * The characteristic predicate of `ForBinder` synthesized instances. * INTERNAL: Do not use. */ -predicate constructClosureBinder(Raw::ClosureBinder id) { any() } +predicate constructForBinder(Raw::ForBinder id) { any() } diff --git a/rust/ql/lib/codeql/rust/elements/internal/ClosureBinderImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/ForBinderImpl.qll similarity index 66% rename from rust/ql/lib/codeql/rust/elements/internal/ClosureBinderImpl.qll rename to rust/ql/lib/codeql/rust/elements/internal/ForBinderImpl.qll index 095a5a269e0..8281a549b29 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/ClosureBinderImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/ForBinderImpl.qll @@ -1,19 +1,19 @@ // generated by codegen, remove this comment if you wish to edit this file /** - * This module provides a hand-modifiable wrapper around the generated class `ClosureBinder`. + * This module provides a hand-modifiable wrapper around the generated class `ForBinder`. * * INTERNAL: Do not use. */ -private import codeql.rust.elements.internal.generated.ClosureBinder +private import codeql.rust.elements.internal.generated.ForBinder /** - * INTERNAL: This module contains the customizable definition of `ClosureBinder` and should not + * INTERNAL: This module contains the customizable definition of `ForBinder` and should not * be referenced directly. */ module Impl { /** - * A closure binder, specifying lifetime or type parameters for a closure. + * A for binder, specifying lifetime or type parameters for a closure or a type. * * For example: * ```rust @@ -26,5 +26,5 @@ module Impl { * print_any("hello"); * ``` */ - class ClosureBinder extends Generated::ClosureBinder { } + class ForBinder extends Generated::ForBinder { } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/ClosureExpr.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/ClosureExpr.qll index 70a3c374e0d..8341226d6e2 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ClosureExpr.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ClosureExpr.qll @@ -7,9 +7,9 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.CallableImpl::Impl as CallableImpl -import codeql.rust.elements.ClosureBinder import codeql.rust.elements.Expr import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl +import codeql.rust.elements.ForBinder import codeql.rust.elements.RetTypeRepr /** @@ -48,19 +48,19 @@ module Generated { final predicate hasBody() { exists(this.getBody()) } /** - * Gets the closure binder of this closure expression, if it exists. + * Gets the for binder of this closure expression, if it exists. */ - ClosureBinder getClosureBinder() { + ForBinder getForBinder() { result = - Synth::convertClosureBinderFromRaw(Synth::convertClosureExprToRaw(this) + Synth::convertForBinderFromRaw(Synth::convertClosureExprToRaw(this) .(Raw::ClosureExpr) - .getClosureBinder()) + .getForBinder()) } /** - * Holds if `getClosureBinder()` exists. + * Holds if `getForBinder()` exists. */ - final predicate hasClosureBinder() { exists(this.getClosureBinder()) } + final predicate hasForBinder() { exists(this.getForBinder()) } /** * Holds if this closure expression is async. diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/ClosureBinder.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/ForBinder.qll similarity index 58% rename from rust/ql/lib/codeql/rust/elements/internal/generated/ClosureBinder.qll rename to rust/ql/lib/codeql/rust/elements/internal/generated/ForBinder.qll index 9bd04fd3581..38512084e39 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ClosureBinder.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ForBinder.qll @@ -1,6 +1,6 @@ // generated by codegen, do not edit /** - * This module provides the generated definition of `ClosureBinder`. + * This module provides the generated definition of `ForBinder`. * INTERNAL: Do not import directly. */ @@ -10,12 +10,12 @@ import codeql.rust.elements.internal.AstNodeImpl::Impl as AstNodeImpl import codeql.rust.elements.GenericParamList /** - * INTERNAL: This module contains the fully generated definition of `ClosureBinder` and should not + * INTERNAL: This module contains the fully generated definition of `ForBinder` and should not * be referenced directly. */ module Generated { /** - * A closure binder, specifying lifetime or type parameters for a closure. + * A for binder, specifying lifetime or type parameters for a closure or a type. * * For example: * ```rust @@ -27,19 +27,19 @@ module Generated { * print_any(42); * print_any("hello"); * ``` - * INTERNAL: Do not reference the `Generated::ClosureBinder` class directly. - * Use the subclass `ClosureBinder`, where the following predicates are available. + * INTERNAL: Do not reference the `Generated::ForBinder` class directly. + * Use the subclass `ForBinder`, where the following predicates are available. */ - class ClosureBinder extends Synth::TClosureBinder, AstNodeImpl::AstNode { - override string getAPrimaryQlClass() { result = "ClosureBinder" } + class ForBinder extends Synth::TForBinder, AstNodeImpl::AstNode { + override string getAPrimaryQlClass() { result = "ForBinder" } /** - * Gets the generic parameter list of this closure binder, if it exists. + * Gets the generic parameter list of this for binder, if it exists. */ GenericParamList getGenericParamList() { result = - Synth::convertGenericParamListFromRaw(Synth::convertClosureBinderToRaw(this) - .(Raw::ClosureBinder) + Synth::convertGenericParamListFromRaw(Synth::convertForBinderToRaw(this) + .(Raw::ForBinder) .getGenericParamList()) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll index cbe2975bf50..f52af334108 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll @@ -6,7 +6,7 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw -import codeql.rust.elements.GenericParamList +import codeql.rust.elements.ForBinder import codeql.rust.elements.TypeRepr import codeql.rust.elements.internal.TypeReprImpl::Impl as TypeReprImpl @@ -35,19 +35,19 @@ module Generated { override string getAPrimaryQlClass() { result = "ForTypeRepr" } /** - * Gets the generic parameter list of this for type representation, if it exists. + * Gets the for binder of this for type representation, if it exists. */ - GenericParamList getGenericParamList() { + ForBinder getForBinder() { result = - Synth::convertGenericParamListFromRaw(Synth::convertForTypeReprToRaw(this) + Synth::convertForBinderFromRaw(Synth::convertForTypeReprToRaw(this) .(Raw::ForTypeRepr) - .getGenericParamList()) + .getForBinder()) } /** - * Holds if `getGenericParamList()` exists. + * Holds if `getForBinder()` exists. */ - final predicate hasGenericParamList() { exists(this.getGenericParamList()) } + final predicate hasForBinder() { exists(this.getForBinder()) } /** * Gets the type representation of this for type representation, if it exists. diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll index d0b9c397a77..3011eccbee4 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -152,22 +152,6 @@ private module Impl { ) } - private Element getImmediateChildOfClosureBinder( - ClosureBinder e, int index, string partialPredicateCall - ) { - exists(int n, int nGenericParamList | - n = 0 and - nGenericParamList = n + 1 and - ( - none() - or - index = n and - result = e.getGenericParamList() and - partialPredicateCall = "GenericParamList()" - ) - ) - } - private Element getImmediateChildOfExternItemList( ExternItemList e, int index, string partialPredicateCall ) { @@ -187,6 +171,20 @@ private module Impl { ) } + private Element getImmediateChildOfForBinder(ForBinder e, int index, string partialPredicateCall) { + exists(int n, int nGenericParamList | + n = 0 and + nGenericParamList = n + 1 and + ( + none() + or + index = n and + result = e.getGenericParamList() and + partialPredicateCall = "GenericParamList()" + ) + ) + } + private Element getImmediateChildOfFormatArgsArg( FormatArgsArg e, int index, string partialPredicateCall ) { @@ -656,15 +654,18 @@ private module Impl { } private Element getImmediateChildOfTypeBound(TypeBound e, int index, string partialPredicateCall) { - exists(int n, int nLifetime, int nTypeRepr, int nUseBoundGenericArgs | + exists(int n, int nForBinder, int nLifetime, int nTypeRepr, int nUseBoundGenericArgs | n = 0 and - nLifetime = n + 1 and + nForBinder = n + 1 and + nLifetime = nForBinder + 1 and nTypeRepr = nLifetime + 1 and nUseBoundGenericArgs = nTypeRepr + 1 and ( none() or - index = n and result = e.getLifetime() and partialPredicateCall = "Lifetime()" + index = n and result = e.getForBinder() and partialPredicateCall = "ForBinder()" + or + index = nForBinder and result = e.getLifetime() and partialPredicateCall = "Lifetime()" or index = nLifetime and result = e.getTypeRepr() and partialPredicateCall = "TypeRepr()" or @@ -781,22 +782,18 @@ private module Impl { } private Element getImmediateChildOfWherePred(WherePred e, int index, string partialPredicateCall) { - exists(int n, int nGenericParamList, int nLifetime, int nTypeRepr, int nTypeBoundList | + exists(int n, int nForBinder, int nLifetime, int nTypeRepr, int nTypeBoundList | n = 0 and - nGenericParamList = n + 1 and - nLifetime = nGenericParamList + 1 and + nForBinder = n + 1 and + nLifetime = nForBinder + 1 and nTypeRepr = nLifetime + 1 and nTypeBoundList = nTypeRepr + 1 and ( none() or - index = n and - result = e.getGenericParamList() and - partialPredicateCall = "GenericParamList()" + index = n and result = e.getForBinder() and partialPredicateCall = "ForBinder()" or - index = nGenericParamList and - result = e.getLifetime() and - partialPredicateCall = "Lifetime()" + index = nForBinder and result = e.getLifetime() and partialPredicateCall = "Lifetime()" or index = nLifetime and result = e.getTypeRepr() and partialPredicateCall = "TypeRepr()" or @@ -1095,13 +1092,13 @@ private module Impl { private Element getImmediateChildOfClosureExpr( ClosureExpr e, int index, string partialPredicateCall ) { - exists(int n, int nParamList, int nAttr, int nBody, int nClosureBinder, int nRetType | + exists(int n, int nParamList, int nAttr, int nBody, int nForBinder, int nRetType | n = 0 and nParamList = n + 1 and nAttr = nParamList + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nBody = nAttr + 1 and - nClosureBinder = nBody + 1 and - nRetType = nClosureBinder + 1 and + nForBinder = nBody + 1 and + nRetType = nForBinder + 1 and ( none() or @@ -1112,9 +1109,9 @@ private module Impl { or index = nAttr and result = e.getBody() and partialPredicateCall = "Body()" or - index = nBody and result = e.getClosureBinder() and partialPredicateCall = "ClosureBinder()" + index = nBody and result = e.getForBinder() and partialPredicateCall = "ForBinder()" or - index = nClosureBinder and result = e.getRetType() and partialPredicateCall = "RetType()" + index = nForBinder and result = e.getRetType() and partialPredicateCall = "RetType()" ) ) } @@ -1257,20 +1254,16 @@ private module Impl { private Element getImmediateChildOfForTypeRepr( ForTypeRepr e, int index, string partialPredicateCall ) { - exists(int n, int nGenericParamList, int nTypeRepr | + exists(int n, int nForBinder, int nTypeRepr | n = 0 and - nGenericParamList = n + 1 and - nTypeRepr = nGenericParamList + 1 and + nForBinder = n + 1 and + nTypeRepr = nForBinder + 1 and ( none() or - index = n and - result = e.getGenericParamList() and - partialPredicateCall = "GenericParamList()" + index = n and result = e.getForBinder() and partialPredicateCall = "ForBinder()" or - index = nGenericParamList and - result = e.getTypeRepr() and - partialPredicateCall = "TypeRepr()" + index = nForBinder and result = e.getTypeRepr() and partialPredicateCall = "TypeRepr()" ) ) } @@ -3072,10 +3065,10 @@ private module Impl { or result = getImmediateChildOfAttr(e, index, partialAccessor) or - result = getImmediateChildOfClosureBinder(e, index, partialAccessor) - or result = getImmediateChildOfExternItemList(e, index, partialAccessor) or + result = getImmediateChildOfForBinder(e, index, partialAccessor) + or result = getImmediateChildOfFormatArgsArg(e, index, partialAccessor) or result = getImmediateChildOfGenericArgList(e, index, partialAccessor) diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll index 38798573712..019e0c08e16 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -319,30 +319,6 @@ module Raw { Attr getAttr(int index) { callable_attrs(this, index, result) } } - /** - * INTERNAL: Do not use. - * A closure binder, specifying lifetime or type parameters for a closure. - * - * For example: - * ```rust - * let print_any = for |x: T| { - * // ^^^^^^^^^^^^^^^^^^^^^^^ - * println!("{:?}", x); - * }; - * - * print_any(42); - * print_any("hello"); - * ``` - */ - class ClosureBinder extends @closure_binder, AstNode { - override string toString() { result = "ClosureBinder" } - - /** - * Gets the generic parameter list of this closure binder, if it exists. - */ - GenericParamList getGenericParamList() { closure_binder_generic_param_lists(this, result) } - } - /** * INTERNAL: Do not use. * The base class for expressions. @@ -389,6 +365,30 @@ module Raw { */ class FieldList extends @field_list, AstNode { } + /** + * INTERNAL: Do not use. + * A for binder, specifying lifetime or type parameters for a closure or a type. + * + * For example: + * ```rust + * let print_any = for |x: T| { + * // ^^^^^^^^^^^^^^^^^^^^^^^ + * println!("{:?}", x); + * }; + * + * print_any(42); + * print_any("hello"); + * ``` + */ + class ForBinder extends @for_binder, AstNode { + override string toString() { result = "ForBinder" } + + /** + * Gets the generic parameter list of this for binder, if it exists. + */ + GenericParamList getGenericParamList() { for_binder_generic_param_lists(this, result) } + } + /** * INTERNAL: Do not use. * A FormatArgsArg. For example the `"world"` in: @@ -1209,6 +1209,11 @@ module Raw { class TypeBound extends @type_bound, AstNode { override string toString() { result = "TypeBound" } + /** + * Gets the for binder of this type bound, if it exists. + */ + ForBinder getForBinder() { type_bound_for_binders(this, result) } + /** * Holds if this type bound is async. */ @@ -1415,9 +1420,9 @@ module Raw { override string toString() { result = "WherePred" } /** - * Gets the generic parameter list of this where pred, if it exists. + * Gets the for binder of this where pred, if it exists. */ - GenericParamList getGenericParamList() { where_pred_generic_param_lists(this, result) } + ForBinder getForBinder() { where_pred_for_binders(this, result) } /** * Gets the lifetime of this where pred, if it exists. @@ -1912,9 +1917,9 @@ module Raw { Expr getBody() { closure_expr_bodies(this, result) } /** - * Gets the closure binder of this closure expression, if it exists. + * Gets the for binder of this closure expression, if it exists. */ - ClosureBinder getClosureBinder() { closure_expr_closure_binders(this, result) } + ForBinder getForBinder() { closure_expr_for_binders(this, result) } /** * Holds if this closure expression is async. @@ -2209,9 +2214,9 @@ module Raw { override string toString() { result = "ForTypeRepr" } /** - * Gets the generic parameter list of this for type representation, if it exists. + * Gets the for binder of this for type representation, if it exists. */ - GenericParamList getGenericParamList() { for_type_repr_generic_param_lists(this, result) } + ForBinder getForBinder() { for_type_repr_for_binders(this, result) } /** * Gets the type representation of this for type representation, if it exists. diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll index 3c8b1e87f57..42d5c99eb0a 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll @@ -130,10 +130,6 @@ module Synth { * INTERNAL: Do not use. */ TCastExpr(Raw::CastExpr id) { constructCastExpr(id) } or - /** - * INTERNAL: Do not use. - */ - TClosureBinder(Raw::ClosureBinder id) { constructClosureBinder(id) } or /** * INTERNAL: Do not use. */ @@ -202,6 +198,10 @@ module Synth { * INTERNAL: Do not use. */ TFnPtrTypeRepr(Raw::FnPtrTypeRepr id) { constructFnPtrTypeRepr(id) } or + /** + * INTERNAL: Do not use. + */ + TForBinder(Raw::ForBinder id) { constructForBinder(id) } or /** * INTERNAL: Do not use. */ @@ -718,8 +718,8 @@ module Synth { */ class TAstNode = TAbi or TAddressable or TArgList or TAsmDirSpec or TAsmOperand or TAsmOperandExpr or - TAsmOption or TAsmPiece or TAsmRegSpec or TAssocItemList or TAttr or TCallable or - TClosureBinder or TExpr or TExternItemList or TFieldList or TFormatArgsArg or TGenericArg or + TAsmOption or TAsmPiece or TAsmRegSpec or TAssocItemList or TAttr or TCallable or TExpr or + TExternItemList or TFieldList or TForBinder or TFormatArgsArg or TGenericArg or TGenericArgList or TGenericParam or TGenericParamList or TItemList or TLabel or TLetElse or TMacroItems or TMatchArm or TMatchArmList or TMatchGuard or TMeta or TName or TParamBase or TParamList or TParenthesizedArgList or TPat or TPath or TPathSegment or TRename or @@ -1024,12 +1024,6 @@ module Synth { */ TCastExpr convertCastExprFromRaw(Raw::Element e) { result = TCastExpr(e) } - /** - * INTERNAL: Do not use. - * Converts a raw element to a synthesized `TClosureBinder`, if possible. - */ - TClosureBinder convertClosureBinderFromRaw(Raw::Element e) { result = TClosureBinder(e) } - /** * INTERNAL: Do not use. * Converts a raw element to a synthesized `TClosureExpr`, if possible. @@ -1132,6 +1126,12 @@ module Synth { */ TFnPtrTypeRepr convertFnPtrTypeReprFromRaw(Raw::Element e) { result = TFnPtrTypeRepr(e) } + /** + * INTERNAL: Do not use. + * Converts a raw element to a synthesized `TForBinder`, if possible. + */ + TForBinder convertForBinderFromRaw(Raw::Element e) { result = TForBinder(e) } + /** * INTERNAL: Do not use. * Converts a raw element to a synthesized `TForExpr`, if possible. @@ -1953,14 +1953,14 @@ module Synth { or result = convertCallableFromRaw(e) or - result = convertClosureBinderFromRaw(e) - or result = convertExprFromRaw(e) or result = convertExternItemListFromRaw(e) or result = convertFieldListFromRaw(e) or + result = convertForBinderFromRaw(e) + or result = convertFormatArgsArgFromRaw(e) or result = convertGenericArgFromRaw(e) @@ -2612,12 +2612,6 @@ module Synth { */ Raw::Element convertCastExprToRaw(TCastExpr e) { e = TCastExpr(result) } - /** - * INTERNAL: Do not use. - * Converts a synthesized `TClosureBinder` to a raw DB element, if possible. - */ - Raw::Element convertClosureBinderToRaw(TClosureBinder e) { e = TClosureBinder(result) } - /** * INTERNAL: Do not use. * Converts a synthesized `TClosureExpr` to a raw DB element, if possible. @@ -2720,6 +2714,12 @@ module Synth { */ Raw::Element convertFnPtrTypeReprToRaw(TFnPtrTypeRepr e) { e = TFnPtrTypeRepr(result) } + /** + * INTERNAL: Do not use. + * Converts a synthesized `TForBinder` to a raw DB element, if possible. + */ + Raw::Element convertForBinderToRaw(TForBinder e) { e = TForBinder(result) } + /** * INTERNAL: Do not use. * Converts a synthesized `TForExpr` to a raw DB element, if possible. @@ -3539,14 +3539,14 @@ module Synth { or result = convertCallableToRaw(e) or - result = convertClosureBinderToRaw(e) - or result = convertExprToRaw(e) or result = convertExternItemListToRaw(e) or result = convertFieldListToRaw(e) or + result = convertForBinderToRaw(e) + or result = convertFormatArgsArgToRaw(e) or result = convertGenericArgToRaw(e) diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll index e6ff3af4715..d701fa09d76 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll @@ -32,7 +32,6 @@ import codeql.rust.elements.internal.BoxPatConstructor import codeql.rust.elements.internal.BreakExprConstructor import codeql.rust.elements.internal.CallExprConstructor import codeql.rust.elements.internal.CastExprConstructor -import codeql.rust.elements.internal.ClosureBinderConstructor import codeql.rust.elements.internal.ClosureExprConstructor import codeql.rust.elements.internal.CommentConstructor import codeql.rust.elements.internal.ConstConstructor @@ -50,6 +49,7 @@ import codeql.rust.elements.internal.ExternItemListConstructor import codeql.rust.elements.internal.ExtractorStepConstructor import codeql.rust.elements.internal.FieldExprConstructor import codeql.rust.elements.internal.FnPtrTypeReprConstructor +import codeql.rust.elements.internal.ForBinderConstructor import codeql.rust.elements.internal.ForExprConstructor import codeql.rust.elements.internal.ForTypeReprConstructor import codeql.rust.elements.internal.FormatConstructor diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/TypeBound.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/TypeBound.qll index c1e349511be..48089b82083 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/TypeBound.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/TypeBound.qll @@ -7,6 +7,7 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AstNodeImpl::Impl as AstNodeImpl +import codeql.rust.elements.ForBinder import codeql.rust.elements.Lifetime import codeql.rust.elements.TypeRepr import codeql.rust.elements.UseBoundGenericArgs @@ -30,6 +31,21 @@ module Generated { class TypeBound extends Synth::TTypeBound, AstNodeImpl::AstNode { override string getAPrimaryQlClass() { result = "TypeBound" } + /** + * Gets the for binder of this type bound, if it exists. + */ + ForBinder getForBinder() { + result = + Synth::convertForBinderFromRaw(Synth::convertTypeBoundToRaw(this) + .(Raw::TypeBound) + .getForBinder()) + } + + /** + * Holds if `getForBinder()` exists. + */ + final predicate hasForBinder() { exists(this.getForBinder()) } + /** * Holds if this type bound is async. */ diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/WherePred.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/WherePred.qll index cd835e33850..dc007f3aa21 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/WherePred.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/WherePred.qll @@ -7,7 +7,7 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AstNodeImpl::Impl as AstNodeImpl -import codeql.rust.elements.GenericParamList +import codeql.rust.elements.ForBinder import codeql.rust.elements.Lifetime import codeql.rust.elements.TypeBoundList import codeql.rust.elements.TypeRepr @@ -32,19 +32,19 @@ module Generated { override string getAPrimaryQlClass() { result = "WherePred" } /** - * Gets the generic parameter list of this where pred, if it exists. + * Gets the for binder of this where pred, if it exists. */ - GenericParamList getGenericParamList() { + ForBinder getForBinder() { result = - Synth::convertGenericParamListFromRaw(Synth::convertWherePredToRaw(this) + Synth::convertForBinderFromRaw(Synth::convertWherePredToRaw(this) .(Raw::WherePred) - .getGenericParamList()) + .getForBinder()) } /** - * Holds if `getGenericParamList()` exists. + * Holds if `getForBinder()` exists. */ - final predicate hasGenericParamList() { exists(this.getGenericParamList()) } + final predicate hasForBinder() { exists(this.getForBinder()) } /** * Gets the lifetime of this where pred, if it exists. diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index 4adb57ee525..3c1990e7f1d 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -177,10 +177,10 @@ named_crates( | @assoc_item_list | @attr | @callable -| @closure_binder | @expr | @extern_item_list | @field_list +| @for_binder | @format_args_arg | @generic_arg | @generic_arg_list @@ -403,16 +403,6 @@ callable_attrs( int attr: @attr ref ); -closure_binders( - unique int id: @closure_binder -); - -#keyset[id] -closure_binder_generic_param_lists( - int id: @closure_binder ref, - int generic_param_list: @generic_param_list ref -); - @expr = @array_expr_internal | @asm_expr @@ -472,6 +462,16 @@ extern_item_list_extern_items( | @tuple_field_list ; +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + format_args_args( unique int id: @format_args_arg ); @@ -1044,6 +1044,12 @@ type_bounds( unique int id: @type_bound ); +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + #keyset[id] type_bound_is_async( int id: @type_bound ref @@ -1191,9 +1197,9 @@ where_preds( ); #keyset[id] -where_pred_generic_param_lists( +where_pred_for_binders( int id: @where_pred ref, - int generic_param_list: @generic_param_list ref + int for_binder: @for_binder ref ); #keyset[id] @@ -1541,9 +1547,9 @@ closure_expr_bodies( ); #keyset[id] -closure_expr_closure_binders( +closure_expr_for_binders( int id: @closure_expr ref, - int closure_binder: @closure_binder ref + int for_binder: @for_binder ref ); #keyset[id] @@ -1744,9 +1750,9 @@ for_type_reprs( ); #keyset[id] -for_type_repr_generic_param_lists( +for_type_repr_for_binders( int id: @for_type_repr ref, - int generic_param_list: @generic_param_list ref + int for_binder: @for_binder ref ); #keyset[id] diff --git a/rust/ql/test/extractor-tests/generated/.generated_tests.list b/rust/ql/test/extractor-tests/generated/.generated_tests.list index a4fab823b03..616aa6525bf 100644 --- a/rust/ql/test/extractor-tests/generated/.generated_tests.list +++ b/rust/ql/test/extractor-tests/generated/.generated_tests.list @@ -25,7 +25,6 @@ BoxPat/gen_box_pat.rs 1493e24b732370b577ade38c47db17fa157df19f5390606a67a6040e49 BreakExpr/gen_break_expr.rs aacdf9df7fc51d19742b9e813835c0bd0913017e8d62765960e06b27d58b9031 aacdf9df7fc51d19742b9e813835c0bd0913017e8d62765960e06b27d58b9031 CallExpr/gen_call_expr.rs 013a7c878996aefb25b94b68eebc4f0b1bb74ccd09e91c491980817a383e2401 013a7c878996aefb25b94b68eebc4f0b1bb74ccd09e91c491980817a383e2401 CastExpr/gen_cast_expr.rs c3892211fbae4fed7cb1f25ff1679fd79d2878bf0bf2bd4b7982af23d00129f5 c3892211fbae4fed7cb1f25ff1679fd79d2878bf0bf2bd4b7982af23d00129f5 -ClosureBinder/gen_closure_binder.rs 14b5e2deb2bbba164f1aee378be18e99e3c5a926628e964dcc2fbb349ff3b672 14b5e2deb2bbba164f1aee378be18e99e3c5a926628e964dcc2fbb349ff3b672 ClosureExpr/gen_closure_expr.rs 15bd9abdb8aaffabb8bb335f8ebd0571eb5f29115e1dc8d11837aa988702cd80 15bd9abdb8aaffabb8bb335f8ebd0571eb5f29115e1dc8d11837aa988702cd80 Comment/gen_comment.rs 1e1f9f43161a79c096c2056e8b7f5346385ab7addcdec68c2d53b383dd3debe6 1e1f9f43161a79c096c2056e8b7f5346385ab7addcdec68c2d53b383dd3debe6 Const/gen_const.rs a3b971134a4204d0da12563fcefa9ab72f3f2f2e957e82b70c8548b5807f375f a3b971134a4204d0da12563fcefa9ab72f3f2f2e957e82b70c8548b5807f375f @@ -41,6 +40,7 @@ ExternCrate/gen_extern_crate.rs 8d6bfd8d993a8e3a95ae9ccb576bd55be0c6a1d0893cfe15 ExternItemList/gen_extern_item_list.rs f9a03ddf20387871b96994915c9a725feb333d061544c0fb6d2e6b1a1961d6ed f9a03ddf20387871b96994915c9a725feb333d061544c0fb6d2e6b1a1961d6ed FieldExpr/gen_field_expr.rs 9a70500d592e0a071b03d974a55558b3bc0df531ff11bce5898feb36e17ffd8b 9a70500d592e0a071b03d974a55558b3bc0df531ff11bce5898feb36e17ffd8b FnPtrTypeRepr/gen_fn_ptr_type_repr.rs c154ec0cc43236d133f6b946374f3063b89e5cbf9e96d9ee66877be4f948888e c154ec0cc43236d133f6b946374f3063b89e5cbf9e96d9ee66877be4f948888e +ForBinder/gen_for_binder.rs e3c9e5ffd3f2a5a546af9ab6e2a2ed733baf9cf609e05850b70feb31478a0bae e3c9e5ffd3f2a5a546af9ab6e2a2ed733baf9cf609e05850b70feb31478a0bae ForExpr/gen_for_expr.rs 003dc36e3dc4db6e3a4accd410c316f14334ba5b3d5d675c851a91dcd5185122 003dc36e3dc4db6e3a4accd410c316f14334ba5b3d5d675c851a91dcd5185122 ForTypeRepr/gen_for_type_repr.rs 86f2f11f399d8072add3d3109a186d82d95d141660b18986bce738b7e9ec81a2 86f2f11f399d8072add3d3109a186d82d95d141660b18986bce738b7e9ec81a2 FormatArgsExpr/gen_format.rs e9d8e7b98d0050ad6053c2459cb21faab00078e74245336a5962438336f76d33 e9d8e7b98d0050ad6053c2459cb21faab00078e74245336a5962438336f76d33 diff --git a/rust/ql/test/extractor-tests/generated/.gitattributes b/rust/ql/test/extractor-tests/generated/.gitattributes index dd1c891195e..2679395b34f 100644 --- a/rust/ql/test/extractor-tests/generated/.gitattributes +++ b/rust/ql/test/extractor-tests/generated/.gitattributes @@ -27,7 +27,6 @@ /BreakExpr/gen_break_expr.rs linguist-generated /CallExpr/gen_call_expr.rs linguist-generated /CastExpr/gen_cast_expr.rs linguist-generated -/ClosureBinder/gen_closure_binder.rs linguist-generated /ClosureExpr/gen_closure_expr.rs linguist-generated /Comment/gen_comment.rs linguist-generated /Const/gen_const.rs linguist-generated @@ -43,6 +42,7 @@ /ExternItemList/gen_extern_item_list.rs linguist-generated /FieldExpr/gen_field_expr.rs linguist-generated /FnPtrTypeRepr/gen_fn_ptr_type_repr.rs linguist-generated +/ForBinder/gen_for_binder.rs linguist-generated /ForExpr/gen_for_expr.rs linguist-generated /ForTypeRepr/gen_for_type_repr.rs linguist-generated /FormatArgsExpr/gen_format.rs linguist-generated diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/Cargo.lock b/rust/ql/test/extractor-tests/generated/ClosureBinder/Cargo.lock deleted file mode 100644 index b9856cfaf77..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureBinder/Cargo.lock +++ /dev/null @@ -1,7 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "test" -version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected deleted file mode 100644 index dfd2bd58d07..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected +++ /dev/null @@ -1,4 +0,0 @@ -instances -| gen_closure_binder.rs:7:21:7:43 | ClosureBinder | -getGenericParamList -| gen_closure_binder.rs:7:21:7:43 | ClosureBinder | gen_closure_binder.rs:7:24:7:43 | <...> | diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql deleted file mode 100644 index d204c5fbde1..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql +++ /dev/null @@ -1,9 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -query predicate instances(ClosureBinder x) { toBeTested(x) and not x.isUnknown() } - -query predicate getGenericParamList(ClosureBinder x, GenericParamList getGenericParamList) { - toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() -} diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql index acf3b130677..296eae11485 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql @@ -37,8 +37,8 @@ query predicate getBody(ClosureExpr x, Expr getBody) { toBeTested(x) and not x.isUnknown() and getBody = x.getBody() } -query predicate getClosureBinder(ClosureExpr x, ClosureBinder getClosureBinder) { - toBeTested(x) and not x.isUnknown() and getClosureBinder = x.getClosureBinder() +query predicate getForBinder(ClosureExpr x, ForBinder getForBinder) { + toBeTested(x) and not x.isUnknown() and getForBinder = x.getForBinder() } query predicate getRetType(ClosureExpr x, RetTypeRepr getRetType) { diff --git a/rust/ql/test/extractor-tests/generated/ForBinder/ForBinder.ql b/rust/ql/test/extractor-tests/generated/ForBinder/ForBinder.ql new file mode 100644 index 00000000000..7e577cb1be2 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ForBinder/ForBinder.ql @@ -0,0 +1,9 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +query predicate instances(ForBinder x) { toBeTested(x) and not x.isUnknown() } + +query predicate getGenericParamList(ForBinder x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/gen_closure_binder.rs b/rust/ql/test/extractor-tests/generated/ForBinder/gen_for_binder.rs similarity index 68% rename from rust/ql/test/extractor-tests/generated/ClosureBinder/gen_closure_binder.rs rename to rust/ql/test/extractor-tests/generated/ForBinder/gen_for_binder.rs index 6328368c5e1..c37e16793f2 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureBinder/gen_closure_binder.rs +++ b/rust/ql/test/extractor-tests/generated/ForBinder/gen_for_binder.rs @@ -1,7 +1,7 @@ // generated by codegen, do not edit -fn test_closure_binder() -> () { - // A closure binder, specifying lifetime or type parameters for a closure. +fn test_for_binder() -> () { + // A for binder, specifying lifetime or type parameters for a closure or a type. // // For example: let print_any = for |x: T| { diff --git a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql index 398a317a3dd..9a485ca6d74 100644 --- a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql @@ -4,8 +4,8 @@ import TestUtils query predicate instances(ForTypeRepr x) { toBeTested(x) and not x.isUnknown() } -query predicate getGenericParamList(ForTypeRepr x, GenericParamList getGenericParamList) { - toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +query predicate getForBinder(ForTypeRepr x, ForBinder getForBinder) { + toBeTested(x) and not x.isUnknown() and getForBinder = x.getForBinder() } query predicate getTypeRepr(ForTypeRepr x, TypeRepr getTypeRepr) { diff --git a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.ql b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.ql index e4b2b6127dc..40d44dff8c8 100644 --- a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.ql +++ b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.ql @@ -13,6 +13,10 @@ query predicate instances( if x.isConst() then isConst = "yes" else isConst = "no" } +query predicate getForBinder(TypeBound x, ForBinder getForBinder) { + toBeTested(x) and not x.isUnknown() and getForBinder = x.getForBinder() +} + query predicate getLifetime(TypeBound x, Lifetime getLifetime) { toBeTested(x) and not x.isUnknown() and getLifetime = x.getLifetime() } diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred.ql b/rust/ql/test/extractor-tests/generated/WherePred/WherePred.ql index 3d1ecb7339d..957c2b45edf 100644 --- a/rust/ql/test/extractor-tests/generated/WherePred/WherePred.ql +++ b/rust/ql/test/extractor-tests/generated/WherePred/WherePred.ql @@ -4,8 +4,8 @@ import TestUtils query predicate instances(WherePred x) { toBeTested(x) and not x.isUnknown() } -query predicate getGenericParamList(WherePred x, GenericParamList getGenericParamList) { - toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +query predicate getForBinder(WherePred x, ForBinder getForBinder) { + toBeTested(x) and not x.isUnknown() and getForBinder = x.getForBinder() } query predicate getLifetime(WherePred x, Lifetime getLifetime) { diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index 8295cd5860b..67e3610e8a2 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -967,10 +967,10 @@ class _: """ -@annotate(ClosureBinder) +@annotate(ForBinder) class _: """ - A closure binder, specifying lifetime or type parameters for a closure. + A for binder, specifying lifetime or type parameters for a closure or a type. For example: ```rust diff --git a/rust/schema/ast.py b/rust/schema/ast.py index d5b99753f11..e527d318b66 100644 --- a/rust/schema/ast.py +++ b/rust/schema/ast.py @@ -162,13 +162,10 @@ class CastExpr(Expr, ): expr: optional["Expr"] | child type_repr: optional["TypeRepr"] | child -class ClosureBinder(AstNode, ): - generic_param_list: optional["GenericParamList"] | child - class ClosureExpr(Expr, ): attrs: list["Attr"] | child body: optional["Expr"] | child - closure_binder: optional["ClosureBinder"] | child + for_binder: optional["ForBinder"] | child is_async: predicate is_const: predicate is_gen: predicate @@ -265,6 +262,9 @@ class FnPtrTypeRepr(TypeRepr, ): param_list: optional["ParamList"] | child ret_type: optional["RetTypeRepr"] | child +class ForBinder(AstNode, ): + generic_param_list: optional["GenericParamList"] | child + class ForExpr(Expr, ): attrs: list["Attr"] | child iterable: optional["Expr"] | child @@ -273,7 +273,7 @@ class ForExpr(Expr, ): pat: optional["Pat"] | child class ForTypeRepr(TypeRepr, ): - generic_param_list: optional["GenericParamList"] | child + for_binder: optional["ForBinder"] | child type_repr: optional["TypeRepr"] | child class FormatArgsArg(AstNode, ): @@ -697,6 +697,7 @@ class TypeArg(GenericArg, ): type_repr: optional["TypeRepr"] | child class TypeBound(AstNode, ): + for_binder: optional["ForBinder"] | child is_async: predicate is_const: predicate lifetime: optional["Lifetime"] | child @@ -757,7 +758,7 @@ class WhereClause(AstNode, ): predicates: list["WherePred"] | child class WherePred(AstNode, ): - generic_param_list: optional["GenericParamList"] | child + for_binder: optional["ForBinder"] | child lifetime: optional["Lifetime"] | child type_repr: optional["TypeRepr"] | child type_bound_list: optional["TypeBoundList"] | child