Rust: rename RecordFieldList to StructFieldList

This commit is contained in:
Paolo Tranquilli
2025-03-27 15:28:32 +01:00
parent 0b1f89a02e
commit 1c89b5185a
28 changed files with 195 additions and 221 deletions

View File

@@ -23,9 +23,7 @@ fn class_name(type_name: &str) -> String {
"Literal" => "LiteralExpr".to_owned(),
"ArrayExpr" => "ArrayExprInternal".to_owned(),
"AsmOptions" => "AsmOptionsList".to_owned(),
_ if type_name.starts_with("Record") && type_name != "RecordFieldList" => {
type_name.replacen("Record", "Struct", 1)
}
_ if type_name.starts_with("Record") => type_name.replacen("Record", "Struct", 1),
_ if type_name.ends_with("Type") => format!("{}Repr", type_name),
_ => type_name.to_owned(),
}
@@ -108,8 +106,8 @@ fn node_src_to_schema_class(
super_types: &BTreeMap<String, BTreeSet<String>>,
) -> SchemaClass {
let name = class_name(&node.name);
let fields = get_fields(node)
.iter()
let fields = get_fields(node)
.iter()
.map(|f| {
let (ty, child) = match &f.ty {
FieldType::String => ("optional[string]".to_string(), false),

View File

@@ -1,2 +1,2 @@
mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7
top.rs 62e42bde2f16907f6d7303526c4f058a253df8b31fb26cb71edab0bc75fc2b55 62e42bde2f16907f6d7303526c4f058a253df8b31fb26cb71edab0bc75fc2b55
top.rs 50fa90457102611ea7892153e4beb7512d3704a1c78d9bb8e75eb96b98b31740 50fa90457102611ea7892153e4beb7512d3704a1c78d9bb8e75eb96b98b31740

View File

@@ -7510,65 +7510,6 @@ impl From<trap::Label<RangePat>> for trap::Label<Element> {
}
}
#[derive(Debug)]
pub struct RecordFieldList {
pub id: trap::TrapId<RecordFieldList>,
pub fields: Vec<trap::Label<StructField>>,
}
impl trap::TrapEntry for RecordFieldList {
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("record_field_lists", vec![id.into()]);
for (i, v) in self.fields.into_iter().enumerate() {
out.add_tuple("record_field_list_fields", vec![id.into(), i.into(), v.into()]);
}
}
}
impl trap::TrapClass for RecordFieldList {
fn class_name() -> &'static str { "RecordFieldList" }
}
impl From<trap::Label<RecordFieldList>> for trap::Label<FieldList> {
fn from(value: trap::Label<RecordFieldList>) -> Self {
// SAFETY: this is safe because in the dbscheme RecordFieldList is a subclass of FieldList
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<RecordFieldList>> for trap::Label<AstNode> {
fn from(value: trap::Label<RecordFieldList>) -> Self {
// SAFETY: this is safe because in the dbscheme RecordFieldList is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<RecordFieldList>> for trap::Label<Locatable> {
fn from(value: trap::Label<RecordFieldList>) -> Self {
// SAFETY: this is safe because in the dbscheme RecordFieldList is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<RecordFieldList>> for trap::Label<Element> {
fn from(value: trap::Label<RecordFieldList>) -> Self {
// SAFETY: this is safe because in the dbscheme RecordFieldList is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct RefExpr {
pub id: trap::TrapId<RefExpr>,
@@ -8093,6 +8034,65 @@ impl From<trap::Label<SliceTypeRepr>> for trap::Label<Element> {
}
}
#[derive(Debug)]
pub struct StructFieldList {
pub id: trap::TrapId<StructFieldList>,
pub fields: Vec<trap::Label<StructField>>,
}
impl trap::TrapEntry for StructFieldList {
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("struct_field_lists", vec![id.into()]);
for (i, v) in self.fields.into_iter().enumerate() {
out.add_tuple("struct_field_list_fields", vec![id.into(), i.into(), v.into()]);
}
}
}
impl trap::TrapClass for StructFieldList {
fn class_name() -> &'static str { "StructFieldList" }
}
impl From<trap::Label<StructFieldList>> for trap::Label<FieldList> {
fn from(value: trap::Label<StructFieldList>) -> Self {
// SAFETY: this is safe because in the dbscheme StructFieldList is a subclass of FieldList
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<StructFieldList>> for trap::Label<AstNode> {
fn from(value: trap::Label<StructFieldList>) -> Self {
// SAFETY: this is safe because in the dbscheme StructFieldList is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<StructFieldList>> for trap::Label<Locatable> {
fn from(value: trap::Label<StructFieldList>) -> Self {
// SAFETY: this is safe because in the dbscheme StructFieldList is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<StructFieldList>> for trap::Label<Element> {
fn from(value: trap::Label<StructFieldList>) -> Self {
// SAFETY: this is safe because in the dbscheme StructFieldList is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct TryExpr {
pub id: trap::TrapId<TryExpr>,
@@ -10510,7 +10510,7 @@ impl trap::TrapEntry for Struct {
out.add_tuple("struct_attrs", vec![id.into(), i.into(), v.into()]);
}
if let Some(v) = self.field_list {
out.add_tuple("struct_field_lists", vec![id.into(), v.into()]);
out.add_tuple("struct_field_lists_", vec![id.into(), v.into()]);
}
if let Some(v) = self.generic_param_list {
out.add_tuple("struct_generic_param_lists", vec![id.into(), v.into()]);
@@ -11172,7 +11172,7 @@ pub struct Union {
pub attrs: Vec<trap::Label<Attr>>,
pub generic_param_list: Option<trap::Label<GenericParamList>>,
pub name: Option<trap::Label<Name>>,
pub struct_field_list: Option<trap::Label<RecordFieldList>>,
pub struct_field_list: Option<trap::Label<StructFieldList>>,
pub visibility: Option<trap::Label<Visibility>>,
pub where_clause: Option<trap::Label<WhereClause>>,
}

View File

@@ -1867,14 +1867,14 @@ impl Translator<'_> {
Some(label)
}
pub(crate) fn emit_record_field_list(&mut self, node: ast::RecordFieldList) -> Option<Label<generated::RecordFieldList>> {
pub(crate) fn emit_record_field_list(&mut self, node: ast::RecordFieldList) -> Option<Label<generated::StructFieldList>> {
let fields = node.fields().filter_map(|x| self.emit_record_field(x)).collect();
let label = self.trap.emit(generated::RecordFieldList {
let label = self.trap.emit(generated::StructFieldList {
id: TrapId::Star,
fields,
});
self.emit_location(label, &node);
emit_detached!(RecordFieldList, self, node, label);
emit_detached!(StructFieldList, self, node, label);
self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens());
Some(label)
}

View File

@@ -129,7 +129,6 @@ lib/codeql/rust/elements/PrefixExpr.qll 107e7bd111b637fd6d76026062d54c2780760b96
lib/codeql/rust/elements/PtrTypeRepr.qll 2eb2b6f6e5858a10fa1b10d85400ed6db781339bf152162a2fd33213c1ce083b bb99c2da04c80d3c14f47cda1feb9719af801d209becb3d9b20746a2a3b8fc02
lib/codeql/rust/elements/RangeExpr.qll 43785bea08a6a537010db1138e68ae92eed7e481744188dfb3bad119425ff740 5e81cfbdf4617372a73d662a248a0b380c1f40988a5daefb7f00057cae10d3d4
lib/codeql/rust/elements/RangePat.qll b5c0cfc84b8a767d58593fa7102dcf4be3ff8b02ba2f5360c384fa8af4aac830 cc28399dd99630bfa50c54e641a3833abe6643137d010a0a25749d1d70e8c911
lib/codeql/rust/elements/RecordFieldList.qll e067a0111ef4eb442236a265b6e492ffe17886a18650324a52cc0f9fe98aae50 816d98a3c6b387b5b40cbe221f53f676ea5107e1ddbea628f02b5f9e3b5ddf0c
lib/codeql/rust/elements/RefExpr.qll 91a0d3a86002289dc01ffbe8daca13e34e92e522fbb508241a9d51faf1d4a9d2 b6e63d8e6f8956d2501706d129a6f5f24b410ea6539839757c76ba950c410582
lib/codeql/rust/elements/RefPat.qll fe076bdccb454111b38f360837d180274ba8a003b4cffe910b5197cd74188089 2604c8bb2b0b47091d5fc4aa276de46fe3561e346bd98f291c3783cef402ba06
lib/codeql/rust/elements/RefTypeRepr.qll ac41d8b4132f273d65873ea3c59631bc1718b3266ae08075346e6cb1bfe2f17c b7e34851d37008806d4519105a5e3405dda07b999294c6656a0c447ac1635b2a
@@ -151,6 +150,7 @@ lib/codeql/rust/elements/StructExpr.qll af9059c01a97755e94f1a8b60c66d9c7663ed070
lib/codeql/rust/elements/StructExprField.qll 3eb9f17ecd1ad38679689eb4ecc169d3a0b5b7a3fc597ae5a957a7aea2f74e4f 8fcd26f266f203004899a60447ba16e7eae4e3a654fbec7f54e26857730ede93
lib/codeql/rust/elements/StructExprFieldList.qll 6f77363f93ce4e55d91cc93cef4451b93b9714a4aec91c5416d488191340a079 4da6b070125150f2d28028e29095df93e0bbdb5bc4bd4c672e060492f36367c4
lib/codeql/rust/elements/StructField.qll cd6ebb8927eb2614aa1241f03702b1db06e6c581acc368966c2809adb62a3cff 792a2040847a5e6ef3efcc33eeffa9df0bf720a5c39204ac5533bf85b2f9e9bd
lib/codeql/rust/elements/StructFieldList.qll 384a8dab7b1bb70151bfc8cb378ebffbea8e5112f92cf26f1c6f2fd0eb9d2e35 6ee3cc6952a134f6f4d6988700f45eb51d23d19f3c08d63a868d9ad8e54be12a
lib/codeql/rust/elements/StructPat.qll cdd1e8417d1c8cb3d14356390d71eb2916a295d95f240f48d4c2fb21bf4398cb 69c3456a13ef3e978a9a145b9e232198a30360f771feb41a917e507410611f6c
lib/codeql/rust/elements/StructPatField.qll 856aa7d7c6d9b3c17514cbd12a36164e6e9d5923245770d0af3afb759a15204a 1bd1a294d84ad5e4da24e03b4882b215c50473875014859dbf26555d1f4ec2d5
lib/codeql/rust/elements/StructPatFieldList.qll e32d5adc36dc9800454920c784098680b22d3c1c31754bbb65db1a226105b3b0 0ecfd969411a56ebf04f6a4950219b9128b66151c115fcd734d89687f3f5e524
@@ -174,7 +174,7 @@ lib/codeql/rust/elements/TypeRepr.qll ea41b05ef0aaac71da460f9a6a8331cf98166f2c38
lib/codeql/rust/elements/UnderscoreExpr.qll 233661b82b87c8cda16d8f2e17965658c3dc6b69efb23cb8eb9c4f50c68521e0 8edff8e80aac2ecf83a6b58f310cab688cbaeea0a0e68a298b644e565960cc74
lib/codeql/rust/elements/Unextracted.qll 12e60c79ef5b94d72b579b19970622e7b73822ebc13fbcfedfe953527ab1ac36 ec015db2eb12c3c82693ddc71d32d9ab9ef7a958e741e2510681bb707ceca23e
lib/codeql/rust/elements/Unimplemented.qll bf624d28163e5c99accda16c0c99f938bec4a3b1b920a463e86fc8529ff5ff02 013bc7777298d250338f835cd494b5a8accea2d6a4f9561851f283ac129a446b
lib/codeql/rust/elements/Union.qll e8e05763f7004c6a03d0bc4bcc153e12cc9150bb019d165b9ee84657a4c2dfe3 0db02f200220e0af54bf2ec21ccea1d8eba4f9225521d19ca8701786a807b552
lib/codeql/rust/elements/Union.qll 9539358aa47fbe99c0e63d154bf899427bb6d935f3acd00600c11c6396b18565 520612bafb6912001138562a19a691f8b9ca377d5c4bf7aedf49f1b0938eb955
lib/codeql/rust/elements/Use.qll e27d30ece0456a73732dfd867dfc5abdf48a50de56e7dafcab444b688610af72 7efe59c04dd2f10b4a25b8a17beb51362be0a93d73e5a9e1251cf133cf1227c3
lib/codeql/rust/elements/UseBoundGenericArg.qll f16903f8fff676d3700eaad5490804624391141472ecc3166ccb1f70c794c120 5efda98088d096b42f53ceccae78c05f15c6953525b514d849681cb2cf65b147
lib/codeql/rust/elements/UseBoundGenericArgs.qll 6d3b8bf8e59ef6d10d2f58c6d2eca61b113a524174f62d1f56b724c4179fda04 8fad6ed9e5bf159a2db01e7eb960cc55b940f7b92c4bb5c967120068e4fec80a
@@ -367,8 +367,6 @@ lib/codeql/rust/elements/internal/PtrTypeReprImpl.qll 82bb14c7c5764aa6c829d463ed
lib/codeql/rust/elements/internal/RangeExprConstructor.qll a0aa90a1c38c5deea56475399016afae2a00a858b961fbbab8ddeb3bc6a08103 0ddf1bcf28aafc56d7334e6138fb268f9b36a429e4cbdd982cd8384e0644076b
lib/codeql/rust/elements/internal/RangePatConstructor.qll fe4345cb41d970ab64196ca37eccb26e5b9cf85fab4253cacfd2b31de03bd070 1d09d5ec8203d76aed2dfb7e7f14c0c07d6559c8f589e11860fff8a2c682c1a6
lib/codeql/rust/elements/internal/RangePatImpl.qll ef11ab2c002896036553231741a7cf896fafa09e22e920e15661b9cbe4393cae 24ac2dcce3055a77f3a5e0b38cf13aebefd2eeaefa53674ff144a6225634ac0d
lib/codeql/rust/elements/internal/RecordFieldListConstructor.qll 9f1d916f3784092dcbff7224451c8f4f0daf6f8293a466b0a30ec9b92cd41358 8aafe377714a134287362c4b96439c1c6baa5a31c2c36a544bd5f73e9213477a
lib/codeql/rust/elements/internal/RecordFieldListImpl.qll 9446404c45f0dc4473a63eab64669d9a2d25ac67ae230960dd0edd749ba2b9f0 7548d4c7b07c974035da36d83579a0b8a538e088fe834aec50d32591be9766e1
lib/codeql/rust/elements/internal/RefExprConstructor.qll 9ad08c0f3d980a56a2af8857cb84db589941d20ab3ae5c8ece004ccaccaaf950 4cac3ace31b7ed77a72e989fce9cdbae2247f03c28a3f0c50d67385d02c7f193
lib/codeql/rust/elements/internal/RefPatConstructor.qll d8b88c2c468b08072f6f853306eb61eb88ee1e6c5cfb63958f115a64a9715bb3 0c1d6a8af6a66912698acce47e89d4e3239e67f89c228a36a141f9c685c36394
lib/codeql/rust/elements/internal/RefTypeReprConstructor.qll 8e7012b456ebf1cc7a2c50892c0fffd51f0d5d83e417e1d4cabd4d409e3dddc0 4f3c6368bcea5e8c3f0b83591336f01331dc6dabf9c1e8b67de0fc4d640f65f0
@@ -400,6 +398,8 @@ lib/codeql/rust/elements/internal/StructExprFieldConstructor.qll 6766d7941963904
lib/codeql/rust/elements/internal/StructExprFieldListConstructor.qll fda308db380c608d5df1dc48b30bccb32bce31eabff807d0e623b812000a2a2c 84fb7cb24bf61aec602956f867c722d10907b3edfd4dd6946f1349cf6240b4f1
lib/codeql/rust/elements/internal/StructExprFieldListImpl.qll 73aa0a61c2fe5c3cb345b98c1d0bc60474734068ff405061c87406f252ef29ba 66c75d1a449dd9c11db36492f24de13baa98f99d41284ef69298e7b9beb470dc
lib/codeql/rust/elements/internal/StructFieldConstructor.qll 07c7ca8cd5666a0d022573e8d4f9a2e8b237c629c729b9563d783f5e34f232ce 82de0f502272ebdc4f3b15aa314611dd20e82f78ad629e79b5459fdcacf44f9e
lib/codeql/rust/elements/internal/StructFieldListConstructor.qll c4ed03a31f08e63f77411e443635ae20caa82c0b4ce27a8ca0011ddf85602874 9f6c12949ea06f932c141fed8e6f7d2d93e0d3305dfc60db163feb34ada90917
lib/codeql/rust/elements/internal/StructFieldListImpl.qll 93c2b214e315c2fe6a85235fb05c0bfdcd06a03a2246adf551d8c015d28ab9f2 2f80b04deb63785e5766cf78989bb37d69cc9a0372cce737bd544962fc40bb18
lib/codeql/rust/elements/internal/StructPatConstructor.qll 4289608942b7ca73d5a7760232ef23cd9a1baf63cc1d0dc64e7dfea146194fe4 189aec3a5c376addd75b17a79729837fb4185de4abf45008df3956a2d9cdadb8
lib/codeql/rust/elements/internal/StructPatFieldConstructor.qll 780294d2bbad2062a7c66a0dca370e12551d94dd97540936864cf26cbafd7d0e aa9c717f3ec13927be9c598af06ae0b785fb6645a409acf4eaedf07b0b765079
lib/codeql/rust/elements/internal/StructPatFieldListConstructor.qll f67090a3738f2dc89874325c1ec2d4b4d975a5fdef505f0008a016f33868bebb 1c10b9ae42ed78758f59902c44c3eeebb0bd862c04783f83aa4db5653f12bf0e
@@ -579,7 +579,7 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll c808c9d84dd7800573832b
lib/codeql/rust/elements/internal/generated/ParenExpr.qll bc0731505bfe88516205ec360582a4222d2681d11342c93e15258590ddee82f2 d4bd6e0c80cf1d63746c88d4bcb3a01d4c75732e5da09e3ebd9437ced227fb60
lib/codeql/rust/elements/internal/generated/ParenPat.qll 4f168ef5d5bb87a903251cc31b2e44a759b099ec69c90af31783fbb15778c940 0e34f94a45a13396fd57d94c245dc64d1adde2ab0e22b56946f7e94c04e297fc
lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 40ab5c592e7699c621787793743e33988de71ff42ca27599f5ab3ddb70e3f7d8 12c0a6eed2202ee3e892f61da3b3ce77ac3190854cdf3097e8d2be98aa3cb91d
lib/codeql/rust/elements/internal/generated/ParentChild.qll c069ec5489ac1c13222fb2ff55d693005359820b99fe5a55177602b08fd9e2be e16b731291fa166ae99f4f4b22324998cc9fb769106936b3dff26d47cd0d223f
lib/codeql/rust/elements/internal/generated/ParentChild.qll 3a9dd595f34bc5841d21f91882b01f2882b18b70e8c718e81d491b4b33bad82b fb40a76aff319ec5f7dae9a05da083b337887b0918b3702641b39342213ddf6f
lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll c5fa328ea60d3a3333d7c7bb3480969c1873166c7ac8ebb9d0afad7a8099d1a8 2dbbb6200d96f7db7dea4a55bdeab8d67b14d39a43e0bd54ada019f7e466f163
lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4
lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd
@@ -594,8 +594,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 51d1e9e683fc79dddbff
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 dbe82a218ef545a99ea575a988eba077f5fc312c2fe6abf4e22081d484692560 3651395ed9a387daa1217c033004c92909d4e1d81cf93668060e8cd5f6302bf0
lib/codeql/rust/elements/internal/generated/RecordFieldList.qll 4a23b0d75a90671197246dbbb4e62706c180074abb8ebe60a96df11c47a917a2 09be127977651a24010b090d9681714d83ebd461098f9cf0e0d1973cafb1c782
lib/codeql/rust/elements/internal/generated/Raw.qll 4a73b51a4e7c995c42d68cf64ff8aff351d898f306ceedf70a009bf86bbf7d84 f7ccdbc4841d87dae7bbf6f58556901176c930a9a797a59dbc04269ca3b516ce
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 3d8c0bd296d33b91a81633f697a43269a6538df06d277262d3990d3f6880ef57 13680f39e89bcd8299c218aba396f3deec804597e6f7cb7d4a7e7c748b6faa77
@@ -617,11 +616,12 @@ lib/codeql/rust/elements/internal/generated/StructExpr.qll c6d861eaa0123b103fd9f
lib/codeql/rust/elements/internal/generated/StructExprField.qll 6bdc52ed325fd014495410c619536079b8c404e2247bd2435aa7685dd56c3833 501a30650cf813176ff325a1553da6030f78d14be3f84fea6d38032f4262c6b0
lib/codeql/rust/elements/internal/generated/StructExprFieldList.qll b19b6869a6828c7a39a7312539eb29fd21734ff47dfd02281de74194fd565d7e 3cadebffaa937e367a5e1da6741e4e9e5c9a9c7f7555e28cfa70639afd19db7c
lib/codeql/rust/elements/internal/generated/StructField.qll bcbaa836d9b9889c87ba57c6ea733cdc85425168d9df05aca5cfd051851d8cd1 a17034896bc7fa25c84e40b460109d122ca1e85632cf8ac620f66f3eb0ff81b5
lib/codeql/rust/elements/internal/generated/StructFieldList.qll 8911a44217d091b05f488da4e012cb026aed0630caa84ca301bbcbd054c9a28c a433383fea7e42f20750aa43e6070c23baad761a4264be99257541c1004ead31
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 e34c003e660ba059ba81bb73b3c8d21bd2a47d0251569c46277dc9ccf2947b0a 85113f35ba5f6b9e01ad4072246a4de1ac0e4528348ac564868e96f34a3e09e2
lib/codeql/rust/elements/internal/generated/Synth.qll ae5702e53d576dccdffa398e2142a696361e70f2fca40c10a3c976f3e4ff1fff ab4d20c73b4668ea0e1103a8a54ba7f39030795df7b9ee010109f15d50999bd2
lib/codeql/rust/elements/internal/generated/SynthConstructors.qll e4298dc8e52d56672d91df093cc858105b5072be4ae5bed95105e0ffd80e7233 e4298dc8e52d56672d91df093cc858105b5072be4ae5bed95105e0ffd80e7233
lib/codeql/rust/elements/internal/generated/Synth.qll 409b9ae5c78f47f271eb05a9eb7043df6cd6ca35ce381843714667f1f2dfdf9a aa4d5082abccd7cd47a493447eea79b0a3ff81439c333f05087030e76f0fa8e5
lib/codeql/rust/elements/internal/generated/SynthConstructors.qll fe007cf6eab5f0cf89ea1ea91e1f9b23e0fcf0f2872f52ef352584503f90aa29 fe007cf6eab5f0cf89ea1ea91e1f9b23e0fcf0f2872f52ef352584503f90aa29
lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b
lib/codeql/rust/elements/internal/generated/TokenTree.qll 8577c2b097c1be2f0f7daa5acfcf146f78674a424d99563e08a84dd3e6d91b46 d2f30764e84dbfc0a6a5d3d8a5f935cd432413688cb32da9c94e420fbc10665c
lib/codeql/rust/elements/internal/generated/Trait.qll 8fa41b50fa0f68333534f2b66bb4ec8e103ff09ac8fa5c2cc64bc04beafec205 ce1c9aa6d0e2f05d28aab8e1165c3b9fb8e24681ade0cf6a9df2e8617abeae7e
@@ -642,7 +642,7 @@ lib/codeql/rust/elements/internal/generated/TypeRepr.qll 1e7b9d2ddab86e35dad7c31
lib/codeql/rust/elements/internal/generated/UnderscoreExpr.qll b3780c99c5d57159bef4c6bd2fd8ec44ebd1854c892c1ca776c740f71249e58c 2fd451cbf0a779e8042e439882e7d9cadc19d1e596df3bbb086d16f2596407c7
lib/codeql/rust/elements/internal/generated/Unextracted.qll 01563dfd769d6dc3c6b8a40d9a4dc0d99a3b6a0c6725c180d2bf4d7633929a17 a93ce90f8c03f4305e59de9c63f089fc7935298fc9a73d091d76933cf63e790c
lib/codeql/rust/elements/internal/generated/Unimplemented.qll a3eb304781991bff1227de1e4422b68bf91e7b344e4f6c9e874b324e82a35e60 6bc4839fda3850a56dc993b79ef9ba921008395c8432b184e14438fba4566f21
lib/codeql/rust/elements/internal/generated/Union.qll d91aa6cd02bce27a28d1fba87fe80be3a33d1e560d3dd447c3035ff2738a0821 22343e17c08e53d237e834fb9fb9c97fbdebc95bfda4bab80a0c3274edebf7fd
lib/codeql/rust/elements/internal/generated/Union.qll 83b1ed06279e1f6baa1c2618e09f58a15b83c300837d0da3faf3b8f63cf15aa0 e9d877bb75231a36b3d32cf92a598593eeaf4f5100ac1fa172781bc5b9514349
lib/codeql/rust/elements/internal/generated/Use.qll d42ccf3516a9f79ae8766f93ad5f09d3cdcd7b96844d4c9de64189b56018a7b4 70a9553a8f71f6cbfdd0f59a4b42292d13177613ceb0542436436e0ac2e1f8ee
lib/codeql/rust/elements/internal/generated/UseBoundGenericArg.qll 69162794e871291545ea04f61259b2d000671a96f7ca129f7dd9ed6e984067c4 31de9ebc0634b38e2347e0608b4ea888892f1f2732a2892464078cd8a07b4ee8
lib/codeql/rust/elements/internal/generated/UseBoundGenericArgs.qll 05dca015d922935887856f3a0d577dbcf5b8f82bc384bdc9c8c2d0106419716d fcee14ed4f7a639b1ba721bd390fc0cdbfdc7c759e3092aa462d466fe390de45
@@ -658,7 +658,7 @@ lib/codeql/rust/elements/internal/generated/WhileExpr.qll 7edf1f23fbf953a2baabcd
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 5fbfcd83eeb4467d0a721e5b4faf61d0b31316d923e6a6f61d1724023ad91cae 5fbfcd83eeb4467d0a721e5b4faf61d0b31316d923e6a6f61d1724023ad91cae
lib/codeql/rust/elements.qll 05fb894d008a9c0478d03fb1639ffc57516b67d9de7f7309331279512f630b4a 05fb894d008a9c0478d03fb1639ffc57516b67d9de7f7309331279512f630b4a
test/extractor-tests/generated/Abi/Abi.ql 7f6e7dc4af86eca3ebdc79b10373988cd0871bd78b51997d3cffd969105e5fdd 2f936b6ca005c6157c755121584410c03e4a3949c23bee302fbe05ee10ce118f
test/extractor-tests/generated/Abi/Abi_getAbiString.ql a496762fcec5a0887b87023bbf93e9b650f02e20113e25c44d6e4281ae8f5335 14109c7ce11ba25e3cd6e7f1b3fcb4cb00622f2a4eac91bfe43145c5f366bc52
test/extractor-tests/generated/ArgList/ArgList.ql e412927756e72165d0e7c5c9bd3fca89d08197bbf760db8fb7683c64bb2229bc 043dba8506946fbb87753e22c387987d7eded6ddb963aa067f9e60ef9024d684
@@ -1023,8 +1023,6 @@ test/extractor-tests/generated/RangePat/RangePat.ql 97314b9a5543a7471d722ae188a6
test/extractor-tests/generated/RangePat/RangePat_getEnd.ql 723eb5030ec52d3aa3650a3e2de6cc0195a0030630239b972235963320e0d808 2df3b1a6197c3abd43dc743fd09cbf55165e3191f2b49336777594541e5da96a
test/extractor-tests/generated/RangePat/RangePat_getOperatorName.ql 564216b2342f56dc8c1aed6306f57b6dafb33de9e3ba337a840a8c077ce95933 2a76ec7a59bada29733a1515bc1ea8bedd37429d1694ca63c7a8fbf94098a4c7
test/extractor-tests/generated/RangePat/RangePat_getStart.ql ad2066efa32fced2dd107031f2a9b9635c3c892e874870a4320522bae9309aa4 b4a8c57a838074e186b823938d1a9372153c193da6c839b5f242ca25c679e83f
test/extractor-tests/generated/RecordFieldList/RecordFieldList.ql 586bccfa550243177d9fdfd6900a473f51a76ed360b537f19cb300330d5dad5b a063373dfdbf06b68c69694ea4ae72a26b906c910f9095894c09e72f8fb52819
test/extractor-tests/generated/RecordFieldList/RecordFieldList_getField.ql 2eb92ef8528204f3f105c19a36cdc06b3b6d20242463ff2ed1fb81c544812a71 d69091899e7157099f117e14fe60cd3705cfda45f28f6a6a2b7234a4a9c1e664
test/extractor-tests/generated/RefExpr/RefExpr.ql 27d5dceb9e50668e77143ff5c4aa07cbe15aeea9829de70f1ddfe18d83690106 b95058b7a0bad4bddb857794901d9b651b2f9e4dd3554e5349a70a52cbbfaff6
test/extractor-tests/generated/RefExpr/RefExpr_getAttr.ql 477fb3fee61395fabf78f76360ea27656432cb9db62e6f1dab1e9f3c75c83d39 5210f2ac54c082b616d8dcb091659cdad08a5d4ae06bf61193c33f208237482f
test/extractor-tests/generated/RefExpr/RefExpr_getExpr.ql 180d6417fd7322cabf4143d0ddd7810f65506b172a5c82484b3ef398041636b2 a291f0bec1ec5b3fa6d088b3d1a658889b9a3521c39ff3bb7a5ab22a56b8b20a
@@ -1095,6 +1093,8 @@ test/extractor-tests/generated/StructField/StructField_getDefault.ql deccc63b818
test/extractor-tests/generated/StructField/StructField_getName.ql 4c5a7e00b758a744a719bff63d493ee7d31ff8b3010e00c1d1449034d00130ec 9b284d848e5c86eac089f33deca7586441a89d927e7703cb4f98bb7c65a7238c
test/extractor-tests/generated/StructField/StructField_getTypeRepr.ql 3f36890b9ced576327d0fb6e3c80c6482c3a6d6f751fa769b24b2c14a46f8ee8 aed0681a3928b965f1448954d3a0369238a3cd715b97a0d988d15b971bf45356
test/extractor-tests/generated/StructField/StructField_getVisibility.ql 335d097fabbc9720b065248cd1c295fe8dc040bf646ce491244b6840d9a847d3 9a9073eb52cd401b07beb4eb0aef7a15d5d398d0c76c35416ffcb059a360d654
test/extractor-tests/generated/StructFieldList/StructFieldList.ql 02635fb8b0bccb4cb8be71a2b103c6854192dd0300669127ce74590566b0b163 62e4151cbc47ec7bd10cb9f711587454d8fcf64fb54f279b82eefcf20028c37f
test/extractor-tests/generated/StructFieldList/StructFieldList_getField.ql b70e569d48109f57a1a765fcab2329adce382a17258c4e93a57f540a408b1836 1d6a65b7ac1ed8fd0e966132ec9ecbb425fa7ca501a2cd1db7269f9534415f30
test/extractor-tests/generated/StructPat/StructPat.ql 2fa9b13ad6752a1296908c76caf3778dfd7d31e1ffc581011366208dfc3288a4 5a61ae9056a153b526d07c451a55f3959ce90adf762fe6c31f434fae27086d5d
test/extractor-tests/generated/StructPat/StructPat_getPath.ql 03fb1254cc797239de302fbf1ad1b4e7e926e2ec4423221fbec06425e3647f63 9ab60ad1f16d4fb04d3de9f8f05d959fc90c42bb8f0dfc04ccc906897f5c1633
test/extractor-tests/generated/StructPat/StructPat_getResolvedCrateOrigin.ql e3188ae0bb8835ad4aed5c775b52afb6cc7f9c520a8f62140d6cc590f2b8ce5d fd3e6eaf185e933e5ab1566cc49ef3497e50608070831879e01cf5a5ec23eae5

12
rust/ql/.gitattributes generated vendored
View File

@@ -131,7 +131,6 @@
/lib/codeql/rust/elements/PtrTypeRepr.qll linguist-generated
/lib/codeql/rust/elements/RangeExpr.qll linguist-generated
/lib/codeql/rust/elements/RangePat.qll linguist-generated
/lib/codeql/rust/elements/RecordFieldList.qll linguist-generated
/lib/codeql/rust/elements/RefExpr.qll linguist-generated
/lib/codeql/rust/elements/RefPat.qll linguist-generated
/lib/codeql/rust/elements/RefTypeRepr.qll linguist-generated
@@ -153,6 +152,7 @@
/lib/codeql/rust/elements/StructExprField.qll linguist-generated
/lib/codeql/rust/elements/StructExprFieldList.qll linguist-generated
/lib/codeql/rust/elements/StructField.qll linguist-generated
/lib/codeql/rust/elements/StructFieldList.qll linguist-generated
/lib/codeql/rust/elements/StructPat.qll linguist-generated
/lib/codeql/rust/elements/StructPatField.qll linguist-generated
/lib/codeql/rust/elements/StructPatFieldList.qll linguist-generated
@@ -369,8 +369,6 @@
/lib/codeql/rust/elements/internal/RangeExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/RangePatConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/RangePatImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/RecordFieldListConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/RecordFieldListImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/RefExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/RefPatConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/RefTypeReprConstructor.qll linguist-generated
@@ -402,6 +400,8 @@
/lib/codeql/rust/elements/internal/StructExprFieldListConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/StructExprFieldListImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/StructFieldConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/StructFieldListConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/StructFieldListImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/StructPatConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/StructPatFieldConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/StructPatFieldListConstructor.qll linguist-generated
@@ -597,7 +597,6 @@
/lib/codeql/rust/elements/internal/generated/RangeExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/RangePat.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/Raw.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/RecordFieldList.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/RefExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/RefPat.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll linguist-generated
@@ -619,6 +618,7 @@
/lib/codeql/rust/elements/internal/generated/StructExprField.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/StructExprFieldList.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/StructField.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/StructFieldList.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/StructPat.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/StructPatField.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/StructPatFieldList.qll linguist-generated
@@ -1025,8 +1025,6 @@
/test/extractor-tests/generated/RangePat/RangePat_getEnd.ql linguist-generated
/test/extractor-tests/generated/RangePat/RangePat_getOperatorName.ql linguist-generated
/test/extractor-tests/generated/RangePat/RangePat_getStart.ql linguist-generated
/test/extractor-tests/generated/RecordFieldList/RecordFieldList.ql linguist-generated
/test/extractor-tests/generated/RecordFieldList/RecordFieldList_getField.ql linguist-generated
/test/extractor-tests/generated/RefExpr/RefExpr.ql linguist-generated
/test/extractor-tests/generated/RefExpr/RefExpr_getAttr.ql linguist-generated
/test/extractor-tests/generated/RefExpr/RefExpr_getExpr.ql linguist-generated
@@ -1097,6 +1095,8 @@
/test/extractor-tests/generated/StructField/StructField_getName.ql linguist-generated
/test/extractor-tests/generated/StructField/StructField_getTypeRepr.ql linguist-generated
/test/extractor-tests/generated/StructField/StructField_getVisibility.ql linguist-generated
/test/extractor-tests/generated/StructFieldList/StructFieldList.ql linguist-generated
/test/extractor-tests/generated/StructFieldList/StructFieldList_getField.ql linguist-generated
/test/extractor-tests/generated/StructPat/StructPat.ql linguist-generated
/test/extractor-tests/generated/StructPat/StructPat_getPath.ql linguist-generated
/test/extractor-tests/generated/StructPat/StructPat_getResolvedCrateOrigin.ql linguist-generated

View File

@@ -134,7 +134,6 @@ import codeql.rust.elements.PrefixExpr
import codeql.rust.elements.PtrTypeRepr
import codeql.rust.elements.RangeExpr
import codeql.rust.elements.RangePat
import codeql.rust.elements.RecordFieldList
import codeql.rust.elements.RefExpr
import codeql.rust.elements.RefPat
import codeql.rust.elements.RefTypeRepr
@@ -156,6 +155,7 @@ import codeql.rust.elements.StructExpr
import codeql.rust.elements.StructExprField
import codeql.rust.elements.StructExprFieldList
import codeql.rust.elements.StructField
import codeql.rust.elements.StructFieldList
import codeql.rust.elements.StructPat
import codeql.rust.elements.StructPatField
import codeql.rust.elements.StructPatFieldList

View File

@@ -1,9 +1,9 @@
// generated by codegen, do not edit
/**
* This module provides the public class `RecordFieldList`.
* This module provides the public class `StructFieldList`.
*/
private import internal.RecordFieldListImpl
private import internal.StructFieldListImpl
import codeql.rust.elements.FieldList
import codeql.rust.elements.StructField
@@ -13,4 +13,4 @@ import codeql.rust.elements.StructField
* todo!()
* ```
*/
final class RecordFieldList = Impl::RecordFieldList;
final class StructFieldList = Impl::StructFieldList;

View File

@@ -8,7 +8,7 @@ import codeql.rust.elements.Attr
import codeql.rust.elements.GenericParamList
import codeql.rust.elements.Item
import codeql.rust.elements.Name
import codeql.rust.elements.RecordFieldList
import codeql.rust.elements.StructFieldList
import codeql.rust.elements.VariantDef
import codeql.rust.elements.Visibility
import codeql.rust.elements.WhereClause

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

View File

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

View File

@@ -2737,25 +2737,6 @@ private module Impl {
)
}
private Element getImmediateChildOfRecordFieldList(
RecordFieldList e, int index, string partialPredicateCall
) {
exists(int b, int bFieldList, int n, int nField |
b = 0 and
bFieldList = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfFieldList(e, i, _)) | i) and
n = bFieldList and
nField = n + 1 + max(int i | i = -1 or exists(e.getField(i)) | i) and
(
none()
or
result = getImmediateChildOfFieldList(e, index - b, partialPredicateCall)
or
result = e.getField(index - n) and
partialPredicateCall = "Field(" + (index - n).toString() + ")"
)
)
}
private Element getImmediateChildOfRefExpr(RefExpr e, int index, string partialPredicateCall) {
exists(int b, int bExpr, int n, int nAttr, int nExpr |
b = 0 and
@@ -2904,6 +2885,25 @@ private module Impl {
)
}
private Element getImmediateChildOfStructFieldList(
StructFieldList e, int index, string partialPredicateCall
) {
exists(int b, int bFieldList, int n, int nField |
b = 0 and
bFieldList = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfFieldList(e, i, _)) | i) and
n = bFieldList and
nField = n + 1 + max(int i | i = -1 or exists(e.getField(i)) | i) and
(
none()
or
result = getImmediateChildOfFieldList(e, index - b, partialPredicateCall)
or
result = e.getField(index - n) and
partialPredicateCall = "Field(" + (index - n).toString() + ")"
)
)
}
private Element getImmediateChildOfTryExpr(TryExpr e, int index, string partialPredicateCall) {
exists(int b, int bExpr, int n, int nAttr, int nExpr |
b = 0 and
@@ -4334,8 +4334,6 @@ private module Impl {
or
result = getImmediateChildOfRangePat(e, index, partialAccessor)
or
result = getImmediateChildOfRecordFieldList(e, index, partialAccessor)
or
result = getImmediateChildOfRefExpr(e, index, partialAccessor)
or
result = getImmediateChildOfRefPat(e, index, partialAccessor)
@@ -4352,6 +4350,8 @@ private module Impl {
or
result = getImmediateChildOfSliceTypeRepr(e, index, partialAccessor)
or
result = getImmediateChildOfStructFieldList(e, index, partialAccessor)
or
result = getImmediateChildOfTryExpr(e, index, partialAccessor)
or
result = getImmediateChildOfTupleExpr(e, index, partialAccessor)

View File

@@ -2743,22 +2743,6 @@ module Raw {
Pat getStart() { range_pat_starts(this, result) }
}
/**
* INTERNAL: Do not use.
* A field list of a struct expression. For example:
* ```rust
* todo!()
* ```
*/
class RecordFieldList extends @record_field_list, FieldList {
override string toString() { result = "RecordFieldList" }
/**
* Gets the `index`th field of this record field list (0-based).
*/
StructField getField(int index) { record_field_list_fields(this, index, result) }
}
/**
* INTERNAL: Do not use.
* A reference expression. For example:
@@ -2966,6 +2950,22 @@ module Raw {
TypeRepr getTypeRepr() { slice_type_repr_type_reprs(this, result) }
}
/**
* INTERNAL: Do not use.
* A field list of a struct expression. For example:
* ```rust
* todo!()
* ```
*/
class StructFieldList extends @struct_field_list, FieldList {
override string toString() { result = "StructFieldList" }
/**
* Gets the `index`th field of this struct field list (0-based).
*/
StructField getField(int index) { struct_field_list_fields(this, index, result) }
}
/**
* INTERNAL: Do not use.
* A TryExpr. For example:
@@ -3854,7 +3854,7 @@ module Raw {
/**
* Gets the field list of this struct, if it exists.
*/
FieldList getFieldList() { struct_field_lists(this, result) }
FieldList getFieldList() { struct_field_lists_(this, result) }
/**
* Gets the generic parameter list of this struct, if it exists.
@@ -4124,7 +4124,7 @@ module Raw {
/**
* Gets the struct field list of this union, if it exists.
*/
RecordFieldList getStructFieldList() { union_struct_field_lists(this, result) }
StructFieldList getStructFieldList() { union_struct_field_lists(this, result) }
/**
* Gets the visibility of this union, if it exists.

View File

@@ -1,6 +1,6 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `RecordFieldList`.
* This module provides the generated definition of `StructFieldList`.
* INTERNAL: Do not import directly.
*/
@@ -10,7 +10,7 @@ import codeql.rust.elements.internal.FieldListImpl::Impl as FieldListImpl
import codeql.rust.elements.StructField
/**
* INTERNAL: This module contains the fully generated definition of `RecordFieldList` and should not
* INTERNAL: This module contains the fully generated definition of `StructFieldList` and should not
* be referenced directly.
*/
module Generated {
@@ -19,29 +19,29 @@ module Generated {
* ```rust
* todo!()
* ```
* INTERNAL: Do not reference the `Generated::RecordFieldList` class directly.
* Use the subclass `RecordFieldList`, where the following predicates are available.
* INTERNAL: Do not reference the `Generated::StructFieldList` class directly.
* Use the subclass `StructFieldList`, where the following predicates are available.
*/
class RecordFieldList extends Synth::TRecordFieldList, FieldListImpl::FieldList {
override string getAPrimaryQlClass() { result = "RecordFieldList" }
class StructFieldList extends Synth::TStructFieldList, FieldListImpl::FieldList {
override string getAPrimaryQlClass() { result = "StructFieldList" }
/**
* Gets the `index`th field of this record field list (0-based).
* Gets the `index`th field of this struct field list (0-based).
*/
StructField getField(int index) {
result =
Synth::convertStructFieldFromRaw(Synth::convertRecordFieldListToRaw(this)
.(Raw::RecordFieldList)
Synth::convertStructFieldFromRaw(Synth::convertStructFieldListToRaw(this)
.(Raw::StructFieldList)
.getField(index))
}
/**
* Gets any of the fields of this record field list.
* Gets any of the fields of this struct field list.
*/
final StructField getAField() { result = this.getField(_) }
/**
* Gets the number of fields of this record field list.
* Gets the number of fields of this struct field list.
*/
final int getNumberOfFields() { result = count(int i | exists(this.getField(i))) }
}

View File

@@ -466,10 +466,6 @@ module Synth {
* INTERNAL: Do not use.
*/
TRangePat(Raw::RangePat id) { constructRangePat(id) } or
/**
* INTERNAL: Do not use.
*/
TRecordFieldList(Raw::RecordFieldList id) { constructRecordFieldList(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -546,6 +542,10 @@ module Synth {
* INTERNAL: Do not use.
*/
TStructField(Raw::StructField id) { constructStructField(id) } or
/**
* INTERNAL: Do not use.
*/
TStructFieldList(Raw::StructFieldList id) { constructStructFieldList(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -754,7 +754,7 @@ module Synth {
/**
* INTERNAL: Do not use.
*/
class TFieldList = TRecordFieldList or TTupleFieldList;
class TFieldList = TStructFieldList or TTupleFieldList;
/**
* INTERNAL: Do not use.
@@ -1524,12 +1524,6 @@ module Synth {
*/
TRangePat convertRangePatFromRaw(Raw::Element e) { result = TRangePat(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TRecordFieldList`, if possible.
*/
TRecordFieldList convertRecordFieldListFromRaw(Raw::Element e) { result = TRecordFieldList(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TRefExpr`, if possible.
@@ -1646,6 +1640,12 @@ module Synth {
*/
TStructField convertStructFieldFromRaw(Raw::Element e) { result = TStructField(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TStructFieldList`, if possible.
*/
TStructFieldList convertStructFieldListFromRaw(Raw::Element e) { result = TStructFieldList(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TStructPat`, if possible.
@@ -2177,7 +2177,7 @@ module Synth {
* Converts a raw DB element to a synthesized `TFieldList`, if possible.
*/
TFieldList convertFieldListFromRaw(Raw::Element e) {
result = convertRecordFieldListFromRaw(e)
result = convertStructFieldListFromRaw(e)
or
result = convertTupleFieldListFromRaw(e)
}
@@ -3124,12 +3124,6 @@ module Synth {
*/
Raw::Element convertRangePatToRaw(TRangePat e) { e = TRangePat(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TRecordFieldList` to a raw DB element, if possible.
*/
Raw::Element convertRecordFieldListToRaw(TRecordFieldList e) { e = TRecordFieldList(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TRefExpr` to a raw DB element, if possible.
@@ -3246,6 +3240,12 @@ module Synth {
*/
Raw::Element convertStructFieldToRaw(TStructField e) { e = TStructField(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TStructFieldList` to a raw DB element, if possible.
*/
Raw::Element convertStructFieldListToRaw(TStructFieldList e) { e = TStructFieldList(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TStructPat` to a raw DB element, if possible.
@@ -3777,7 +3777,7 @@ module Synth {
* Converts a synthesized `TFieldList` to a raw DB element, if possible.
*/
Raw::Element convertFieldListToRaw(TFieldList e) {
result = convertRecordFieldListToRaw(e)
result = convertStructFieldListToRaw(e)
or
result = convertTupleFieldListToRaw(e)
}

View File

@@ -114,7 +114,6 @@ import codeql.rust.elements.internal.PrefixExprConstructor
import codeql.rust.elements.internal.PtrTypeReprConstructor
import codeql.rust.elements.internal.RangeExprConstructor
import codeql.rust.elements.internal.RangePatConstructor
import codeql.rust.elements.internal.RecordFieldListConstructor
import codeql.rust.elements.internal.RefExprConstructor
import codeql.rust.elements.internal.RefPatConstructor
import codeql.rust.elements.internal.RefTypeReprConstructor
@@ -134,6 +133,7 @@ import codeql.rust.elements.internal.StructExprConstructor
import codeql.rust.elements.internal.StructExprFieldConstructor
import codeql.rust.elements.internal.StructExprFieldListConstructor
import codeql.rust.elements.internal.StructFieldConstructor
import codeql.rust.elements.internal.StructFieldListConstructor
import codeql.rust.elements.internal.StructPatConstructor
import codeql.rust.elements.internal.StructPatFieldConstructor
import codeql.rust.elements.internal.StructPatFieldListConstructor

View File

@@ -10,7 +10,7 @@ import codeql.rust.elements.Attr
import codeql.rust.elements.GenericParamList
import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl
import codeql.rust.elements.Name
import codeql.rust.elements.RecordFieldList
import codeql.rust.elements.StructFieldList
import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl
import codeql.rust.elements.Visibility
import codeql.rust.elements.WhereClause
@@ -78,9 +78,9 @@ module Generated {
/**
* Gets the struct field list of this union, if it exists.
*/
RecordFieldList getStructFieldList() {
StructFieldList getStructFieldList() {
result =
Synth::convertRecordFieldListFromRaw(Synth::convertUnionToRaw(this)
Synth::convertStructFieldListFromRaw(Synth::convertUnionToRaw(this)
.(Raw::Union)
.getStructFieldList())
}

View File

@@ -481,7 +481,7 @@ extern_item_list_extern_items(
);
@field_list =
@record_field_list
@struct_field_list
| @tuple_field_list
;
@@ -2364,17 +2364,6 @@ range_pat_starts(
int start: @pat ref
);
record_field_lists(
unique int id: @record_field_list
);
#keyset[id, index]
record_field_list_fields(
int id: @record_field_list ref,
int index: int ref,
int field: @struct_field ref
);
ref_exprs(
unique int id: @ref_expr
);
@@ -2518,6 +2507,17 @@ slice_type_repr_type_reprs(
int type_repr: @type_repr ref
);
struct_field_lists(
unique int id: @struct_field_list
);
#keyset[id, index]
struct_field_list_fields(
int id: @struct_field_list ref,
int index: int ref,
int field: @struct_field ref
);
try_exprs(
unique int id: @try_expr
);
@@ -3275,7 +3275,7 @@ struct_attrs(
);
#keyset[id]
struct_field_lists(
struct_field_lists_(
int id: @struct ref,
int field_list: @field_list ref
);
@@ -3511,7 +3511,7 @@ union_names(
#keyset[id]
union_struct_field_lists(
int id: @union ref,
int struct_field_list: @record_field_list ref
int struct_field_list: @struct_field_list ref
);
#keyset[id]

View File

@@ -89,7 +89,6 @@ PrefixExpr/gen_prefix_expr.rs c4b53e87f370713b9a9e257be26d082b0761497bac19b1d740
PtrTypeRepr/gen_ptr_type_repr.rs 290d64a8ab4e8946b2e37496e7d2837529135e99b61cfb16a98c00f4d6ff8679 290d64a8ab4e8946b2e37496e7d2837529135e99b61cfb16a98c00f4d6ff8679
RangeExpr/gen_range_expr.rs 3f27cff9cc76b2703beff622d1453b84121e1970a869e45f9428deac92c4ecb0 3f27cff9cc76b2703beff622d1453b84121e1970a869e45f9428deac92c4ecb0
RangePat/gen_range_pat.rs 18b5169c3ab9230c95d86c4897f8343b2176d9602c9ea371c70c1eb0dbf89a28 18b5169c3ab9230c95d86c4897f8343b2176d9602c9ea371c70c1eb0dbf89a28
RecordFieldList/gen_record_field_list.rs f28f14c3d8ff7ae7b5f0bac076165cc7e98a2fdc5377c2a32a0e2e231a6173d9 f28f14c3d8ff7ae7b5f0bac076165cc7e98a2fdc5377c2a32a0e2e231a6173d9
RefExpr/gen_ref_expr.rs 82695467551def4a00c78aa1ea6a1460e9edbef7df2672f13daccb0ee5d6b4c6 82695467551def4a00c78aa1ea6a1460e9edbef7df2672f13daccb0ee5d6b4c6
RefPat/gen_ref_pat.rs aba7518649d9a37928e59a40d42f76cc0f4735e8daf711a3def6d2f0520e1f54 aba7518649d9a37928e59a40d42f76cc0f4735e8daf711a3def6d2f0520e1f54
RefTypeRepr/gen_ref_type_repr.rs 39a79cf148b7ee30e23a12c9349854dbe83aee1790153a388c43ff749907f8ea 39a79cf148b7ee30e23a12c9349854dbe83aee1790153a388c43ff749907f8ea
@@ -109,6 +108,7 @@ StructExpr/gen_struct_expr.rs 8dd9a578625a88623c725b8afdfd8b636e1c3c991fe96c55b2
StructExprField/gen_struct_expr_field.rs 4ccca8e8ad462b4873f5604f0afdd1836027b8d39e36fbe7d6624ef3e744a084 4ccca8e8ad462b4873f5604f0afdd1836027b8d39e36fbe7d6624ef3e744a084
StructExprFieldList/gen_struct_expr_field_list.rs 30a48484dbeca1fd8ead4b7b80f97bd583259e35dce2b590329c86a2d0e152de 30a48484dbeca1fd8ead4b7b80f97bd583259e35dce2b590329c86a2d0e152de
StructField/gen_struct_field.rs 024d30845e244dd535dfb6c30f16de0eec5acd3a257110eeffd260ec82f9edb2 024d30845e244dd535dfb6c30f16de0eec5acd3a257110eeffd260ec82f9edb2
StructFieldList/gen_struct_field_list.rs 9ee6167b3b2edd2ad49f8fe02d6ef67fb1dacf6807014a6a16597d2f40d3bbae 9ee6167b3b2edd2ad49f8fe02d6ef67fb1dacf6807014a6a16597d2f40d3bbae
StructPat/gen_struct_pat.rs 3f972ff8a76acb61ef48bdea92d2fac8b1005449d746e6188fd5486b1f542e5c 3f972ff8a76acb61ef48bdea92d2fac8b1005449d746e6188fd5486b1f542e5c
StructPatField/gen_struct_pat_field.rs dfdab8cef7dcfee40451744c8d2c7c4ae67fdb8bd054b894c08d62997942f364 dfdab8cef7dcfee40451744c8d2c7c4ae67fdb8bd054b894c08d62997942f364
StructPatFieldList/gen_struct_pat_field_list.rs 92490d79c975d25fd0d2e4a830a80abd896c5eb3b30fc54a3b386603ff09d693 92490d79c975d25fd0d2e4a830a80abd896c5eb3b30fc54a3b386603ff09d693

View File

@@ -91,7 +91,6 @@
/PtrTypeRepr/gen_ptr_type_repr.rs linguist-generated
/RangeExpr/gen_range_expr.rs linguist-generated
/RangePat/gen_range_pat.rs linguist-generated
/RecordFieldList/gen_record_field_list.rs linguist-generated
/RefExpr/gen_ref_expr.rs linguist-generated
/RefPat/gen_ref_pat.rs linguist-generated
/RefTypeRepr/gen_ref_type_repr.rs linguist-generated
@@ -111,6 +110,7 @@
/StructExprField/gen_struct_expr_field.rs linguist-generated
/StructExprFieldList/gen_struct_expr_field_list.rs linguist-generated
/StructField/gen_struct_field.rs linguist-generated
/StructFieldList/gen_struct_field_list.rs linguist-generated
/StructPat/gen_struct_pat.rs linguist-generated
/StructPatField/gen_struct_pat_field.rs linguist-generated
/StructPatFieldList/gen_struct_pat_field_list.rs linguist-generated

View File

@@ -1,25 +0,0 @@
| gen_path.rs:5:9:5:18 | some_crate | gen_path.rs:5:9:5:18 | some_crate |
| gen_path.rs:5:9:5:31 | ...::some_module | gen_path.rs:5:21:5:31 | some_module |
| gen_path.rs:5:9:5:42 | ...::some_item | gen_path.rs:5:34:5:42 | some_item |
| gen_path.rs:6:5:6:7 | foo | gen_path.rs:6:5:6:7 | foo |
| gen_path.rs:6:5:6:12 | ...::bar | gen_path.rs:6:10:6:12 | bar |
| gen_path_expr.rs:5:13:5:20 | variable | gen_path_expr.rs:5:13:5:20 | variable |
| gen_path_expr.rs:6:13:6:15 | foo | gen_path_expr.rs:6:13:6:15 | foo |
| gen_path_expr.rs:6:13:6:20 | ...::bar | gen_path_expr.rs:6:18:6:20 | bar |
| gen_path_expr.rs:7:13:7:15 | <...> | gen_path_expr.rs:7:13:7:15 | <...> |
| gen_path_expr.rs:7:13:7:20 | ...::foo | gen_path_expr.rs:7:18:7:20 | foo |
| gen_path_expr.rs:7:14:7:14 | T | gen_path_expr.rs:7:14:7:14 | T |
| gen_path_expr.rs:8:13:8:31 | <...> | gen_path_expr.rs:8:13:8:31 | <...> |
| gen_path_expr.rs:8:13:8:36 | ...::foo | gen_path_expr.rs:8:34:8:36 | foo |
| gen_path_expr.rs:8:14:8:21 | TypeRepr | gen_path_expr.rs:8:14:8:21 | TypeRepr |
| gen_path_expr.rs:8:26:8:30 | Trait | gen_path_expr.rs:8:26:8:30 | Trait |
| gen_path_pat.rs:5:11:5:11 | x | gen_path_pat.rs:5:11:5:11 | x |
| gen_path_pat.rs:6:9:6:11 | Foo | gen_path_pat.rs:6:9:6:11 | Foo |
| gen_path_pat.rs:6:9:6:16 | ...::Bar | gen_path_pat.rs:6:14:6:16 | Bar |
| gen_path_type_repr.rs:5:14:5:16 | std | gen_path_type_repr.rs:5:14:5:16 | std |
| gen_path_type_repr.rs:5:14:5:29 | ...::collections | gen_path_type_repr.rs:5:19:5:29 | collections |
| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | gen_path_type_repr.rs:5:32:5:48 | HashMap::<...> |
| gen_path_type_repr.rs:5:40:5:42 | i32 | gen_path_type_repr.rs:5:40:5:42 | i32 |
| gen_path_type_repr.rs:5:45:5:47 | i32 | gen_path_type_repr.rs:5:45:5:47 | i32 |
| gen_path_type_repr.rs:6:14:6:14 | X | gen_path_type_repr.rs:6:14:6:14 | X |
| gen_path_type_repr.rs:6:14:6:20 | ...::Item | gen_path_type_repr.rs:6:17:6:20 | Item |

View File

@@ -2,7 +2,7 @@
import codeql.rust.elements
import TestUtils
from RecordFieldList x, int getNumberOfFields
from StructFieldList x, int getNumberOfFields
where
toBeTested(x) and
not x.isUnknown() and

View File

@@ -2,6 +2,6 @@
import codeql.rust.elements
import TestUtils
from RecordFieldList x, int index
from StructFieldList x, int index
where toBeTested(x) and not x.isUnknown()
select x, index, x.getField(index)

View File

@@ -1,6 +1,6 @@
// generated by codegen, do not edit
fn test_record_field_list() -> () {
fn test_struct_field_list() -> () {
// A field list of a struct expression. For example:
todo!()
}

View File

@@ -1489,7 +1489,7 @@ class _:
"""
@annotate(RecordFieldList)
@annotate(StructFieldList)
class _:
"""
A field list of a struct expression. For example:
@@ -1627,6 +1627,7 @@ class _:
todo!()
```
"""
field_list: _ | ql.db_table_name("struct_field_lists_")
@annotate(TokenTree)

4
rust/schema/ast.py generated
View File

@@ -543,7 +543,7 @@ class StructField(AstNode, ):
type_repr: optional["TypeRepr"] | child
visibility: optional["Visibility"] | child
class RecordFieldList(FieldList, ):
class StructFieldList(FieldList, ):
fields: list["StructField"] | child
class StructPat(Pat, ):
@@ -716,7 +716,7 @@ class Union(Item, VariantDef, ):
attrs: list["Attr"] | child
generic_param_list: optional["GenericParamList"] | child
name: optional["Name"] | child
struct_field_list: optional["RecordFieldList"] | child
struct_field_list: optional["StructFieldList"] | child
visibility: optional["Visibility"] | child
where_clause: optional["WhereClause"] | child