diff --git a/rust/extractor/src/crate_graph.rs b/rust/extractor/src/crate_graph.rs index 04e0ffd7680..2e66d85fe37 100644 --- a/rust/extractor/src/crate_graph.rs +++ b/rust/extractor/src/crate_graph.rs @@ -94,7 +94,7 @@ pub fn extract_crate_graph(trap_provider: &trap::TrapFileProvider, db: &RootData .flat_map(|x| crate_id_map.get(&x.crate_id).map(|y| (&x.name, y))) .map(|(name, (module, hash))| generated::NamedCrate { id: trap::TrapId::Star, - name: name.to_string().into(), + name: name.to_string(), crate_: trap.label(format!("{}:{hash}", module.display()).into()), }) .collect(); diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index 2560f1333e6..f721a15dad8 100644 --- a/rust/extractor/src/generated/.generated.list +++ b/rust/extractor/src/generated/.generated.list @@ -1,2 +1,2 @@ mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 -top.rs 3db0fd908579f949394294727474f5ba2e3d483f87d5b5737b7e81f36a457c7d 3db0fd908579f949394294727474f5ba2e3d483f87d5b5737b7e81f36a457c7d +top.rs b8d7b2a61083b08e42a2cc490ee8f2f4b931103513f4c6a9bb5ce077a6b1a854 b8d7b2a61083b08e42a2cc490ee8f2f4b931103513f4c6a9bb5ce077a6b1a854 diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index 35bdc38ed32..93be8ebd72d 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -77,7 +77,7 @@ impl From> for trap::Label { #[derive(Debug)] pub struct NamedCrate { pub id: trap::TrapId, - pub name: Option, + pub name: String, pub crate_: trap::Label, } @@ -87,10 +87,7 @@ impl trap::TrapEntry for NamedCrate { } fn emit(self, id: trap::Label, out: &mut trap::Writer) { - out.add_tuple("named_crates", vec![id.into(), self.crate_.into()]); - if let Some(v) = self.name { - out.add_tuple("named_crate_names", vec![id.into(), v.into()]); - } + out.add_tuple("named_crates", vec![id.into(), self.name.into(), self.crate_.into()]); } } diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 2eb3b2ef338..ad0f008525d 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -570,7 +570,7 @@ lib/codeql/rust/elements/internal/generated/Missing.qll 16735d91df04a4e1ae52fae2 lib/codeql/rust/elements/internal/generated/Module.qll ebae5d8963c9fd569c0fbad1d7770abd3fd2479437f236cbce0505ba9f9af52c fa3c382115fed18a26f1a755d8749a201b9489f82c09448a88fb8e9e1435fe5f lib/codeql/rust/elements/internal/generated/Name.qll 12aad57744b7d1b04454159536409244c47319aedd580acb58ee93ef9d7f837d 63fc67ccc085db22f82576a53489f15216a7c29d5b941b14a965eab481534e2e lib/codeql/rust/elements/internal/generated/NameRef.qll beaeffed918b821bd797b0752453f6f35adcaa046b01e39f95a35dca93a5c257 5aee4e4e700f97af2035406c641f375bf0dcac6f3002ae9d4ffabe0da2ddd176 -lib/codeql/rust/elements/internal/generated/NamedCrate.qll dfcc0533d355805e86d348335729f0a66070a023dbc6e9bb28eb38c778dd31f4 667f96a779a703cc541fca2a36efe6e88b05ffcf54474533dda7c85615a205c9 +lib/codeql/rust/elements/internal/generated/NamedCrate.qll e190dd742751ea2de914d0750c93fcad3100d3ebb4e3f47f6adc0a7fa3e7932c 755ead62328df8a4496dc4ad6fea7243ab6144138ed62d7368fa53737eef5819 lib/codeql/rust/elements/internal/generated/NeverTypeRepr.qll c601b228a6359f809425ad43b46c1c444c9826652b07f8facc6f9729df268285 23b53bb1d826a8b54b68bd4f138ebaabeeb2f56392c882b32417eff388aa80cc lib/codeql/rust/elements/internal/generated/OffsetOfExpr.qll c86eecd11345a807571542e220ced8ccc8bb78f81de61fff6fc6b23ff379cd12 76a692d3ad5e26751e574c7d9b13cf698d471e1783f53a312e808c0b21a110ab lib/codeql/rust/elements/internal/generated/OrPat.qll 0dc6bd6ada8d11b7f708f71c8208fc2c28629e9c265c3df3c2dc9bea30de5afa 892119fc1de2e3315489203c56ee3ed3df8b9806e927ee58aa6083e5b2156dab @@ -595,7 +595,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 a543af27c060e6ebad13d38284708510bf7ea083f115d1c875a138ca9aed9b1b cd3aacd4e44fe7583a9aa8bef72306abbe7f3f566ee406f99ac451e08cda0ef8 +lib/codeql/rust/elements/internal/generated/Raw.qll ea8c9eba40d40767b9dc39dee8836c7b5be5cc5762edfe44b08e453cf7690b11 3401c2fc482e00bd1d2c039ae9a32d814902fe67a0b36a920ed5243a6c028d90 lib/codeql/rust/elements/internal/generated/RecordExpr.qll 2131b2cb336caa76170082e69776011bf02576bbfdd34ba68ca84af24209250a 39a2e3ec32352b594c43cc1295e0e8b3f9808173322d3d73cb7d48ef969d5565 lib/codeql/rust/elements/internal/generated/RecordExprField.qll 7e9f8663d3b74ebbc9603b10c9912f082febba6bd73d344b100bbd3edf837802 fbe6b578e7fd5d5a6f21bbb8c388957ab7210a6a249ec71510a50fb35b319ea1 lib/codeql/rust/elements/internal/generated/RecordExprFieldList.qll 179a97211fe7aa6265085d4d54115cdbc0e1cd7c9b2135591e8f36d6432f13d3 dd44bbbc1e83a1ed3a587afb729d7debf7aeb7b63245de181726af13090e50c0 diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/NamedCrate.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/NamedCrate.qll index 041cd04c649..8068f52970e 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/NamedCrate.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/NamedCrate.qll @@ -22,15 +22,10 @@ module Generated { override string getAPrimaryQlClass() { result = "NamedCrate" } /** - * Gets the name of this named crate, if it exists. + * Gets the name of this named crate. */ string getName() { result = Synth::convertNamedCrateToRaw(this).(Raw::NamedCrate).getName() } - /** - * Holds if `getName()` exists. - */ - final predicate hasName() { exists(this.getName()) } - /** * Gets the crate of this named crate. */ diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll index 85705f59916..57422877ce0 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -46,14 +46,14 @@ module Raw { override string toString() { result = "NamedCrate" } /** - * Gets the name of this named crate, if it exists. + * Gets the name of this named crate. */ - string getName() { named_crate_names(this, result) } + string getName() { named_crates(this, result, _) } /** * Gets the crate of this named crate. */ - Crate getCrate() { named_crates(this, result) } + Crate getCrate() { named_crates(this, _, result) } } /** diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index 2a978397c80..a379082b8f4 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -145,15 +145,10 @@ extractor_step_files( named_crates( unique int id: @named_crate, + string name: string ref, int crate: @crate ref ); -#keyset[id] -named_crate_names( - int id: @named_crate ref, - string name: string ref -); - @unextracted = @missing | @unimplemented diff --git a/rust/schema/prelude.py b/rust/schema/prelude.py index 3196074a573..5fc4aba2e1a 100644 --- a/rust/schema/prelude.py +++ b/rust/schema/prelude.py @@ -124,5 +124,5 @@ class Crate(Locatable): @qltest.skip @ql.internal class NamedCrate(Element): - name: optional[string] + name: string crate: "Crate"