Rust: run codegen again

This commit is contained in:
Paolo Tranquilli
2025-08-12 17:04:26 +02:00
parent 0a42b7aba3
commit 338572f256
36 changed files with 328 additions and 313 deletions

View File

@@ -1,2 +1,2 @@
mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7
top.rs 0fc473b83d7cd550396b5c147829487fa7264121b6823fd371b78f55e48935b0 0fc473b83d7cd550396b5c147829487fa7264121b6823fd371b78f55e48935b0
top.rs a2b836f6f4c1332cdc2bcf7a4201765f22635f976892725aa424d7b306b6b586 a2b836f6f4c1332cdc2bcf7a4201765f22635f976892725aa424d7b306b6b586

View File

@@ -835,56 +835,6 @@ impl From<trap::Label<Callable>> for trap::Label<Element> {
}
}
#[derive(Debug)]
pub struct ClosureBinder {
pub id: trap::TrapId<ClosureBinder>,
pub generic_param_list: Option<trap::Label<GenericParamList>>,
}
impl trap::TrapEntry for ClosureBinder {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("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<trap::Label<ClosureBinder>> for trap::Label<AstNode> {
fn from(value: trap::Label<ClosureBinder>) -> Self {
// SAFETY: this is safe because in the dbscheme ClosureBinder is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<ClosureBinder>> for trap::Label<Locatable> {
fn from(value: trap::Label<ClosureBinder>) -> Self {
// SAFETY: this is safe because in the dbscheme ClosureBinder is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<ClosureBinder>> for trap::Label<Element> {
fn from(value: trap::Label<ClosureBinder>) -> 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<trap::Label<FieldList>> for trap::Label<Element> {
}
}
#[derive(Debug)]
pub struct ForBinder {
pub id: trap::TrapId<ForBinder>,
pub generic_param_list: Option<trap::Label<GenericParamList>>,
}
impl trap::TrapEntry for ForBinder {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("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<trap::Label<ForBinder>> for trap::Label<AstNode> {
fn from(value: trap::Label<ForBinder>) -> Self {
// SAFETY: this is safe because in the dbscheme ForBinder is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<ForBinder>> for trap::Label<Locatable> {
fn from(value: trap::Label<ForBinder>) -> Self {
// SAFETY: this is safe because in the dbscheme ForBinder is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<ForBinder>> for trap::Label<Element> {
fn from(value: trap::Label<ForBinder>) -> 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<FormatArgsArg>,
@@ -2808,6 +2808,7 @@ impl From<trap::Label<TupleField>> for trap::Label<Element> {
#[derive(Debug)]
pub struct TypeBound {
pub id: trap::TrapId<TypeBound>,
pub for_binder: Option<trap::Label<ForBinder>>,
pub is_async: bool,
pub is_const: bool,
pub lifetime: Option<trap::Label<Lifetime>>,
@@ -2822,6 +2823,9 @@ impl trap::TrapEntry for TypeBound {
fn emit(self, id: trap::Label<Self>, 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<trap::Label<WhereClause>> for trap::Label<Element> {
#[derive(Debug)]
pub struct WherePred {
pub id: trap::TrapId<WherePred>,
pub generic_param_list: Option<trap::Label<GenericParamList>>,
pub for_binder: Option<trap::Label<ForBinder>>,
pub lifetime: Option<trap::Label<Lifetime>>,
pub type_repr: Option<trap::Label<TypeRepr>>,
pub type_bound_list: Option<trap::Label<TypeBoundList>>,
@@ -3321,8 +3325,8 @@ impl trap::TrapEntry for WherePred {
fn emit(self, id: trap::Label<Self>, 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<trap::Label<ParamList>>,
pub attrs: Vec<trap::Label<Attr>>,
pub body: Option<trap::Label<Expr>>,
pub closure_binder: Option<trap::Label<ClosureBinder>>,
pub for_binder: Option<trap::Label<ForBinder>>,
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<trap::Label<FnPtrTypeRepr>> for trap::Label<Element> {
#[derive(Debug)]
pub struct ForTypeRepr {
pub id: trap::TrapId<ForTypeRepr>,
pub generic_param_list: Option<trap::Label<GenericParamList>>,
pub for_binder: Option<trap::Label<ForBinder>>,
pub type_repr: Option<trap::Label<TypeRepr>>,
}
@@ -5143,8 +5147,8 @@ impl trap::TrapEntry for ForTypeRepr {
fn emit(self, id: trap::Label<Self>, 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()]);

View File

@@ -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<Label<generated::ClosureBinder>> {
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<Label<generated::ForBinder>> {
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<Label<generated::ForTypeRepr>> {
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<Label<generated::TypeBound>> {
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<Label<generated::WherePred>> {
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,

View File

@@ -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

10
rust/ql/.gitattributes generated vendored
View File

@@ -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

View File

@@ -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

View File

@@ -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
/**

View File

@@ -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;

View File

@@ -4,7 +4,7 @@
*/
private import internal.ForTypeReprImpl
import codeql.rust.elements.GenericParamList
import codeql.rust.elements.ForBinder
import codeql.rust.elements.TypeRepr
/**

View File

@@ -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

View File

@@ -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

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
* `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() }

View File

@@ -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 { }
}

View File

@@ -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.

View File

@@ -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())
}

View File

@@ -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.

View File

@@ -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)

View File

@@ -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<T: std::fmt::Debug> |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<T: std::fmt::Debug> |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.

View File

@@ -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)

View File

@@ -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

View File

@@ -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.
*/

View File

@@ -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.

View File

@@ -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]

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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 | <...> |

View File

@@ -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()
}

View File

@@ -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) {

View File

@@ -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()
}

View File

@@ -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<T: std::fmt::Debug> |x: T| {

View File

@@ -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) {

View File

@@ -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()
}

View File

@@ -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) {

View File

@@ -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

13
rust/schema/ast.py generated
View File

@@ -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