Rust: first draft of canonical paths rework

This commit is contained in:
Paolo Tranquilli
2024-12-05 17:19:40 +01:00
parent dce29dbbd0
commit afd4d5635b
151 changed files with 15502 additions and 11037 deletions

View File

@@ -101,12 +101,12 @@ class Processor:
)
def get_classes(self):
ret = {"": []}
ret = []
for k, cls in self._classmap.items():
if not cls.imported and not cls.synth:
ret.setdefault(cls.group, []).append(self._get_class(cls.name))
ret.append(self._get_class(cls.name))
elif cls.imported:
ret[""].append(rust.Class(name=cls.name))
ret.append(rust.Class(name=cls.name))
return ret
@@ -114,25 +114,14 @@ def generate(opts, renderer):
assert opts.rust_output
processor = Processor(schemaloader.load_file(opts.schema))
out = opts.rust_output
groups = set()
with renderer.manage(generated=out.rglob("*.rs"),
stubs=(),
registry=out / ".generated.list",
force=opts.force) as renderer:
for group, classes in processor.get_classes().items():
group = group or "top"
groups.add(group)
renderer.render(
rust.ClassList(
classes,
opts.schema,
),
out / f"{group}.rs",
)
renderer.render(
rust.ModuleList(
groups,
opts.schema,
rust.ClassList(
classes=processor.get_classes(),
source=opts.schema,
),
out / f"mod.rs",
)

View File

@@ -121,9 +121,14 @@ def _fill_hideable_information(classes: typing.Dict[str, schema.Class]):
def _check_test_with(classes: typing.Dict[str, schema.Class]):
pragma = "qlest_test_with"
for cls in classes.values():
test_with = typing.cast(str, cls.pragmas.get("qltest_test_with"))
transitive_test_with = test_with and classes[test_with].pragmas.get("qltest_test_with")
if cls.name == cls.pragmas.get(pragma):
# this is already implicit
del cls.pragmas[pragma]
for cls in classes.values():
test_with = typing.cast(str, cls.pragmas.get(pragma))
transitive_test_with = test_with and classes[test_with].pragmas.get(pragma)
if test_with and transitive_test_with:
raise schema.Error(f"{cls.name} has test_with {test_with} which in turn "
f"has test_with {transitive_test_with}, use that directly")

View File

@@ -1,2 +1 @@
mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7
top.rs d09cf25daa06fc9bc802e438231e0f038443d2ede3972a0dd829f322b390c4e4 d09cf25daa06fc9bc802e438231e0f038443d2ede3972a0dd829f322b390c4e4
mod.rs f28f770a937d79fa8a02058ecdb5a8898b43da3d4d785c7abd90af32e5d8ef23 f28f770a937d79fa8a02058ecdb5a8898b43da3d4d785c7abd90af32e5d8ef23

View File

@@ -1,4 +1,3 @@
/.generated.list linguist-generated
/.gitattributes linguist-generated
/mod.rs linguist-generated
/top.rs linguist-generated

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -34,6 +34,7 @@ pub enum RustAnalyzer<'a> {
pub struct FileSemanticInformation<'a> {
pub file_id: EditionedFileId,
pub semantics: &'a Semantics<'a, RootDatabase>,
pub vfs: &'a Vfs,
}
pub struct ParseResult<'a> {
@@ -87,7 +88,11 @@ impl<'a> RustAnalyzer<'a> {
ast: source_file,
text: input,
errors,
semantics_info: Ok(FileSemanticInformation { file_id, semantics }),
semantics_info: Ok(FileSemanticInformation {
file_id,
semantics,
vfs,
}),
};
}
debug!(

View File

@@ -2,17 +2,18 @@ use super::mappings::{AddressableAst, AddressableHir, PathAst};
use crate::generated::MacroCall;
use crate::generated::{self};
use crate::rust_analyzer::FileSemanticInformation;
use crate::trap::AsTrapKeyPart;
use crate::trap::{DiagnosticSeverity, TrapFile, TrapId};
use crate::trap::{Label, TrapClass};
use itertools::Either;
use log::Level;
use ra_ap_base_db::salsa::InternKey;
use crate::trap_key;
use itertools::{Either, Itertools};
use log::{warn, Level};
use ra_ap_base_db::CrateOrigin;
use ra_ap_hir::db::ExpandDatabase;
use ra_ap_hir::{
Adt, Crate, ItemContainer, Module, ModuleDef, PathResolution, Semantics, Type, Variant,
Adt, Crate, Enum, ItemContainer, Module, ModuleDef, PathResolution, Semantics, Trait, TraitRef,
Type, Variant,
};
use ra_ap_hir_def::type_ref::Mutability;
use ra_ap_hir_def::ModuleId;
use ra_ap_hir_expand::ExpandTo;
use ra_ap_ide_db::line_index::{LineCol, LineIndex};
@@ -24,6 +25,8 @@ use ra_ap_syntax::{
ast, AstNode, NodeOrToken, SyntaxElementChildren, SyntaxError, SyntaxNode, SyntaxToken,
TextRange,
};
use ra_ap_vfs::Vfs;
use std::path::PathBuf;
#[macro_export]
macro_rules! emit_detached {
@@ -80,6 +83,7 @@ pub struct Translator<'a> {
line_index: LineIndex,
file_id: Option<EditionedFileId>,
pub semantics: Option<&'a Semantics<'a, RootDatabase>>,
vfs: Option<&'a Vfs>,
}
impl<'a> Translator<'a> {
@@ -97,6 +101,7 @@ impl<'a> Translator<'a> {
line_index,
file_id: semantic_info.map(|i| i.file_id),
semantics: semantic_info.map(|i| i.semantics),
vfs: semantic_info.map(|i| i.vfs),
}
}
fn location(&self, range: TextRange) -> (LineCol, LineCol) {
@@ -322,89 +327,313 @@ impl<'a> Translator<'a> {
);
}
}
fn canonical_path_from_type(&self, ty: Type) -> Option<String> {
fn canonical_path_from_type(
&mut self,
ty: Type,
) -> Option<Label<generated::TypeCanonicalPath>> {
let sema = self.semantics.as_ref().unwrap();
// rust-analyzer doesn't provide a type enum directly
if let Some(it) = ty.as_adt() {
return match it {
Adt::Struct(it) => self.canonical_path_from_hir(it),
Adt::Union(it) => self.canonical_path_from_hir(it),
Adt::Enum(it) => self.canonical_path_from_hir(it),
};
};
if let Some((it, size)) = ty.as_array(sema.db) {
return self
.canonical_path_from_type(it)
.map(|p| format!("[{p}; {size}]"));
}
if let Some(it) = ty.as_slice() {
return self
.canonical_path_from_type(it)
.map(|p| format!("[{}]", p));
}
if let Some(it) = ty.as_builtin() {
return Some(it.name().as_str().to_owned());
}
if let Some(it) = ty.as_dyn_trait() {
return self.canonical_path_from_hir(it).map(|p| format!("dyn {p}"));
}
if let Some((it, mutability)) = ty.as_reference() {
let mut_str = match mutability {
Mutability::Shared => "",
Mutability::Mut => "mut ",
};
return self
.canonical_path_from_type(it)
.map(|p| format!("&{mut_str}{p}"));
}
if let Some(it) = ty.as_impl_traits(sema.db) {
let paths = it
.map(|t| self.canonical_path_from_hir(t))
.collect::<Option<Vec<_>>>()?;
return Some(format!("impl {}", paths.join(" + ")));
}
if ty.as_type_param(sema.db).is_some() {
let name = it.name(sema.db).as_str().to_owned();
let module = it.module(sema.db);
let mut generic_args = Vec::new();
for arg in ty.type_arguments() {
let path = self.canonical_path_from_type(arg)?;
generic_args.push(
self.trap
.emit(generated::TypeGenericTypeArg {
id: trap_key!(path),
path,
})
.into(),
);
}
let namespace = self.canonical_path_from_hir_module(module)?;
let base = self.trap.emit(generated::ModuleItemCanonicalPath {
id: trap_key!(namespace, "::", name),
namespace,
name,
});
let path = self.trap.emit(generated::ParametrizedCanonicalPath {
id: trap_key!(base, generic_args),
base,
generic_args,
});
Some(
self.trap
.emit(generated::ConcreteTypeCanonicalPath {
id: trap_key!(path),
path,
})
.into(),
)
} else if let Some((it, size)) = ty.as_array(sema.db) {
let modifier = format!("[{{0}}; {size}]");
let base = vec![self.canonical_path_from_type(it)?];
Some(
self.trap
.emit(generated::DerivedTypeCanonicalPath {
id: trap_key!(modifier, base),
modifier,
base,
})
.into(),
)
} else if let Some(it) = ty.as_slice() {
let modifier = "[{0}]".to_owned();
let base = vec![self.canonical_path_from_type(it)?];
Some(
self.trap
.emit(generated::DerivedTypeCanonicalPath {
id: trap_key!(modifier, base),
modifier,
base,
})
.into(),
)
} else if ty.is_unit() {
let modifier = "()".to_owned();
let base = vec![];
Some(
self.trap
.emit(generated::DerivedTypeCanonicalPath {
id: trap_key!(modifier, base),
modifier,
base,
})
.into(),
)
} else if let Some(it) = ty.as_builtin() {
let name = it.name().as_str().to_owned();
Some(
self.trap
.emit(generated::BuiltinTypeCanonicalPath {
id: trap_key!(name),
name,
})
.into(),
)
} else if let Some((it, mutability)) = ty.as_reference() {
let modifier = format!("&{}{{0}}", mutability.as_keyword_for_ref());
let base = vec![self.canonical_path_from_type(it)?];
Some(
self.trap
.emit(generated::DerivedTypeCanonicalPath {
id: trap_key!(modifier, base),
modifier,
base,
})
.into(),
)
} else if ty.as_type_param(sema.db).is_some() {
// from the canonical path perspective, we just want a special name
// e.g. `crate::<_ as SomeTrait>::func`
return Some("_".to_owned());
Some(
self.trap
.emit(generated::PlaceholderTypeCanonicalPath { id: trap_key!("_") })
.into(),
)
} else {
let tuple_args = ty.tuple_fields(sema.db);
if tuple_args.is_empty() {
None
} else {
let modifier = format!("({{{}}})", (0..tuple_args.len()).join("}, {"));
let base = tuple_args
.into_iter()
.map(|arg| self.canonical_path_from_type(arg))
.collect::<Option<Vec<_>>>()?;
Some(
self.trap
.emit(generated::DerivedTypeCanonicalPath {
id: trap_key!(modifier, base),
modifier,
base,
})
.into(),
)
}
}
None
}
fn canonical_path_from_hir_module(&self, item: Module) -> Option<String> {
if let Some(block_id) = ModuleId::from(item).containing_block() {
// this means this is a block module, i.e. a virtual module for a block scope
return Some(format!("{{{}}}", block_id.as_intern_id()));
}
if item.is_crate_root() {
return Some("crate".into());
}
self.canonical_path_from_hir::<ast::Module>(item)
fn emit_crate_root(&mut self, item: Crate) -> Option<Label<generated::CrateRoot>> {
let db = self.semantics.unwrap().db;
let (repo, name) = match item.origin(db) {
CrateOrigin::Rustc { name } => (None, Some(name)),
CrateOrigin::Local { repo, name } => (repo, name),
CrateOrigin::Library { repo, name } => (repo, Some(name)),
CrateOrigin::Lang(it) => {
let name = it.to_string();
return Some(
self.trap
.emit(generated::LangCrateRoot {
id: trap_key!(name),
name,
})
.into(),
);
}
};
let name = name.map(|s| s.to_string());
let vfs_path = self.vfs.unwrap().file_path(item.root_file(db));
let Some(file) = vfs_path.as_path() else {
warn!("Crate root file not found: {}", vfs_path);
return None;
};
let source = self.trap.emit_file(&PathBuf::from(file.as_os_str()));
Some(
self.trap
.emit(generated::RepoCrateRoot {
id: trap_key!(source, name, repo),
name,
repo,
source,
})
.into(),
)
}
fn canonical_path_from_hir<T: AstNode>(&self, item: impl AddressableHir<T>) -> Option<String> {
fn canonical_path_from_hir_module(
&mut self,
item: Module,
) -> Option<Label<generated::Namespace>> {
// if we have a Hir entity, it means we have semantics
let sema = self.semantics.as_ref().unwrap();
// do not assign namespaces to unnamed modules, i.e. a virtual modules for block scopes
if ModuleId::from(item).is_block_module() {
return None;
}
let path = item
.path_to_root(sema.db)
.iter()
.filter_map(|m| m.name(sema.db))
.map(|n| n.as_str().to_owned())
.join("::");
let root = self.emit_crate_root(item.krate())?;
Some(self.trap.emit(generated::Namespace {
id: trap_key!(root, "::", path),
root,
path,
}))
}
fn canonical_path_from_trait(
&mut self,
item: Trait,
) -> Option<Label<generated::ModuleItemCanonicalPath>> {
// if we have a Hir entity, it means we have semantics
let sema = self.semantics.as_ref().unwrap();
let module = item.module(sema.db);
let name = item.name(sema.db).as_str().to_owned();
let namespace = self.canonical_path_from_hir_module(module)?;
Some(self.trap.emit(generated::ModuleItemCanonicalPath {
id: trap_key!(namespace, "::", name),
namespace,
name,
}))
}
fn canonical_path_from_enum(
&mut self,
item: Enum,
) -> Option<Label<generated::ModuleItemCanonicalPath>> {
// if we have a Hir entity, it means we have semantics
let sema = self.semantics.as_ref().unwrap();
let module = item.module(sema.db);
let name = item.name(sema.db).as_str().to_owned();
let namespace = self.canonical_path_from_hir_module(module)?;
Some(self.trap.emit(generated::ModuleItemCanonicalPath {
id: trap_key!(namespace, "::", name),
namespace,
name,
}))
}
fn canonical_path_from_trait_ref(
&mut self,
item: TraitRef,
) -> Option<Label<generated::ParametrizedCanonicalPath>> {
let db = self.semantics.unwrap().db;
let trait_ = item.trait_();
let base = self.canonical_path_from_trait(trait_)?;
let param_count = trait_.type_or_const_param_count(db, false);
let mut generic_args = Vec::new();
for i in 1..=param_count {
// TODO seems like you can't get const arguments currently...
let arg = item.get_type_argument(i)?;
let path = self.canonical_path_from_type(arg)?;
generic_args.push(
self.trap
.emit(generated::TypeGenericTypeArg {
id: trap_key!(path),
path,
})
.into(),
);
}
Some(self.trap.emit(generated::ParametrizedCanonicalPath {
id: trap_key!(base, generic_args),
base,
generic_args,
}))
}
fn canonical_path_from_hir<T: AstNode>(
&mut self,
item: impl AddressableHir<T>,
) -> Option<Label<generated::CanonicalPath>> {
// if we have a Hir entity, it means we have semantics
let sema = self.semantics.as_ref().unwrap();
let name = item.name(sema)?;
let container = item.container(sema.db);
let prefix = match container {
ItemContainer::Trait(it) => self.canonical_path_from_hir(it),
ItemContainer::Impl(it) => {
let ty = self.canonical_path_from_type(it.self_ty(sema.db))?;
if let Some(trait_) = it.trait_(sema.db) {
let tr = self.canonical_path_from_hir(trait_)?;
Some(format!("<{ty} as {tr}>"))
} else {
Some(format!("<{ty}>"))
}
match item.container(sema.db) {
ItemContainer::Trait(it) => {
let parent = self.canonical_path_from_trait(it)?;
Some(
self.trap
.emit(generated::TypeItemCanonicalPath {
id: trap_key!(parent, "::", name),
parent,
name,
})
.into(),
)
}
ItemContainer::Module(it) => self.canonical_path_from_hir_module(it),
ItemContainer::ExternBlock() | ItemContainer::Crate(_) => Some("".to_owned()),
}?;
Some(format!("{prefix}::{name}"))
ItemContainer::Impl(it) => {
let trait_ref = it.trait_ref(sema.db);
let type_path = self.canonical_path_from_type(it.self_ty(sema.db))?;
let trait_path = trait_ref.and_then(|t| self.canonical_path_from_trait_ref(t));
Some(
self.trap
.emit(generated::ImplItemCanonicalPath {
id: trap_key!("<", type_path, "as", trait_path, ">::", name),
type_path,
trait_path,
name,
})
.into(),
)
}
ItemContainer::Module(it) => {
let namespace = self.canonical_path_from_hir_module(it)?;
Some(
self.trap
.emit(generated::ModuleItemCanonicalPath {
id: trap_key!(namespace, "::", name),
namespace,
name,
})
.into(),
)
}
ItemContainer::ExternBlock() => None,
ItemContainer::Crate(_) => None,
}
}
fn canonical_path_from_module_def(&self, item: ModuleDef) -> Option<String> {
fn canonical_path_from_module_def(
&mut self,
item: ModuleDef,
) -> Option<Label<generated::CanonicalPath>> {
match item {
ModuleDef::Module(it) => self.canonical_path_from_hir(it),
ModuleDef::Function(it) => self.canonical_path_from_hir(it),
@@ -422,59 +651,24 @@ impl<'a> Translator<'a> {
}
}
fn canonical_path_from_enum_variant(&self, item: Variant) -> Option<String> {
fn canonical_path_from_enum_variant(
&mut self,
item: Variant,
) -> Option<Label<generated::CanonicalPath>> {
// if we have a Hir entity, it means we have semantics
let sema = self.semantics.as_ref().unwrap();
let prefix = self.canonical_path_from_hir(item.parent_enum(sema.db))?;
let name = item.name(sema.db);
Some(format!("{prefix}::{}", name.as_str()))
}
fn origin_from_hir<T: AstNode>(&self, item: impl AddressableHir<T>) -> String {
// if we have a Hir entity, it means we have semantics
let sema = self.semantics.as_ref().unwrap();
self.origin_from_crate(item.module(sema).krate())
}
fn origin_from_crate(&self, item: Crate) -> String {
// if we have a Hir entity, it means we have semantics
let sema = self.semantics.as_ref().unwrap();
match item.origin(sema.db) {
CrateOrigin::Rustc { name } => format!("rustc:{}", name),
CrateOrigin::Local { repo, name } => format!(
"repo:{}:{}",
repo.unwrap_or_default(),
name.map(|s| s.as_str().to_owned()).unwrap_or_default()
),
CrateOrigin::Library { repo, name } => {
format!("repo:{}:{}", repo.unwrap_or_default(), name)
}
CrateOrigin::Lang(it) => format!("lang:{}", it),
}
}
fn origin_from_module_def(&self, item: ModuleDef) -> Option<String> {
match item {
ModuleDef::Module(it) => Some(self.origin_from_hir(it)),
ModuleDef::Function(it) => Some(self.origin_from_hir(it)),
ModuleDef::Adt(Adt::Enum(it)) => Some(self.origin_from_hir(it)),
ModuleDef::Adt(Adt::Struct(it)) => Some(self.origin_from_hir(it)),
ModuleDef::Adt(Adt::Union(it)) => Some(self.origin_from_hir(it)),
ModuleDef::Trait(it) => Some(self.origin_from_hir(it)),
ModuleDef::Variant(it) => Some(self.origin_from_enum_variant(it)),
ModuleDef::Static(_) => None,
ModuleDef::TraitAlias(_) => None,
ModuleDef::TypeAlias(_) => None,
ModuleDef::BuiltinType(_) => None,
ModuleDef::Macro(_) => None,
ModuleDef::Const(_) => None,
}
}
fn origin_from_enum_variant(&self, item: Variant) -> String {
// if we have a Hir entity, it means we have semantics
let sema = self.semantics.as_ref().unwrap();
self.origin_from_hir(item.parent_enum(sema.db))
let enum_ = item.parent_enum(sema.db);
let name = item.name(sema.db).as_str().to_owned();
let parent = self.canonical_path_from_enum(enum_)?;
Some(
self.trap
.emit(generated::TypeItemCanonicalPath {
id: trap_key!(parent, "::", name),
parent,
name,
})
.into(),
)
}
pub(crate) fn extract_canonical_origin<T: AddressableAst + HasName>(
@@ -486,13 +680,7 @@ impl<'a> Translator<'a> {
let sema = self.semantics.as_ref()?;
let def = T::Hir::try_from_source(item, sema)?;
let path = self.canonical_path_from_hir(def)?;
let origin = self.origin_from_hir(def);
generated::Addressable::emit_crate_origin(label, origin, &mut self.trap.writer);
generated::Addressable::emit_extended_canonical_path(
label,
path,
&mut self.trap.writer,
);
generated::Addressable::emit_canonical_path(label, path, &mut self.trap.writer);
Some(())
})();
}
@@ -506,13 +694,7 @@ impl<'a> Translator<'a> {
let sema = self.semantics.as_ref()?;
let def = sema.to_enum_variant_def(item)?;
let path = self.canonical_path_from_enum_variant(def)?;
let origin = self.origin_from_enum_variant(def);
generated::Addressable::emit_crate_origin(label.into(), origin, &mut self.trap.writer);
generated::Addressable::emit_extended_canonical_path(
label.into(),
path,
&mut self.trap.writer,
);
generated::Addressable::emit_canonical_path(label.into(), path, &mut self.trap.writer);
Some(())
})();
}
@@ -529,10 +711,12 @@ impl<'a> Translator<'a> {
let PathResolution::Def(def) = resolution else {
return None;
};
let origin = self.origin_from_module_def(def)?;
let path = self.canonical_path_from_module_def(def)?;
generated::Resolvable::emit_resolved_crate_origin(label, origin, &mut self.trap.writer);
generated::Resolvable::emit_resolved_path(label, path, &mut self.trap.writer);
generated::Resolvable::emit_resolved_canonical_path(
label.into(),
path,
&mut self.trap.writer,
);
Some(())
})();
}
@@ -548,14 +732,12 @@ impl<'a> Translator<'a> {
let Either::Left(function) = resolved else {
return None;
};
let origin = self.origin_from_hir(function);
let path = self.canonical_path_from_hir(function)?;
generated::Resolvable::emit_resolved_crate_origin(
generated::Resolvable::emit_resolved_canonical_path(
label.into(),
origin,
path,
&mut self.trap.writer,
);
generated::Resolvable::emit_resolved_path(label.into(), path, &mut self.trap.writer);
Some(())
})();
}

View File

@@ -56,7 +56,6 @@ impl TextValue for ast::RangePat {
pub(crate) trait AddressableHir<Ast: AstNode>: HasContainer + Copy {
fn name(self, sema: &Semantics<'_, RootDatabase>) -> Option<String>;
fn try_from_source(value: &Ast, sema: &Semantics<'_, RootDatabase>) -> Option<Self>;
fn module(self, sema: &Semantics<'_, RootDatabase>) -> Module;
}
impl AddressableHir<ast::Fn> for Function {
@@ -67,10 +66,6 @@ impl AddressableHir<ast::Fn> for Function {
fn try_from_source(value: &ast::Fn, sema: &Semantics<'_, RootDatabase>) -> Option<Self> {
sema.to_fn_def(value)
}
fn module(self, sema: &Semantics<'_, RootDatabase>) -> Module {
self.module(sema.db)
}
}
impl AddressableHir<ast::Trait> for Trait {
@@ -81,10 +76,6 @@ impl AddressableHir<ast::Trait> for Trait {
fn try_from_source(value: &ast::Trait, sema: &Semantics<'_, RootDatabase>) -> Option<Self> {
sema.to_trait_def(value)
}
fn module(self, sema: &Semantics<'_, RootDatabase>) -> Module {
self.module(sema.db)
}
}
impl AddressableHir<ast::Module> for Module {
@@ -95,10 +86,6 @@ impl AddressableHir<ast::Module> for Module {
fn try_from_source(value: &ast::Module, sema: &Semantics<'_, RootDatabase>) -> Option<Self> {
sema.to_module_def(value)
}
fn module(self, _sema: &Semantics<'_, RootDatabase>) -> Module {
self
}
}
impl AddressableHir<ast::Struct> for Struct {
@@ -109,10 +96,6 @@ impl AddressableHir<ast::Struct> for Struct {
fn try_from_source(value: &ast::Struct, sema: &Semantics<'_, RootDatabase>) -> Option<Self> {
sema.to_struct_def(value)
}
fn module(self, sema: &Semantics<'_, RootDatabase>) -> Module {
self.module(sema.db)
}
}
impl AddressableHir<ast::Enum> for Enum {
@@ -123,10 +106,6 @@ impl AddressableHir<ast::Enum> for Enum {
fn try_from_source(value: &ast::Enum, sema: &Semantics<'_, RootDatabase>) -> Option<Self> {
sema.to_enum_def(value)
}
fn module(self, sema: &Semantics<'_, RootDatabase>) -> Module {
self.module(sema.db)
}
}
impl AddressableHir<ast::Union> for Union {
@@ -137,10 +116,6 @@ impl AddressableHir<ast::Union> for Union {
fn try_from_source(value: &ast::Union, sema: &Semantics<'_, RootDatabase>) -> Option<Self> {
sema.to_union_def(value)
}
fn module(self, sema: &Semantics<'_, RootDatabase>) -> Module {
self.module(sema.db)
}
}
pub(crate) trait AddressableAst: AstNode + Sized {

View File

@@ -1,13 +1,13 @@
use crate::config::Compression;
use crate::{config, generated};
use codeql_extractor::{extractor, file_paths, trap};
use itertools::Itertools;
use log::debug;
use ra_ap_ide_db::line_index::LineCol;
use std::fmt::Debug;
use std::hash::Hash;
use std::marker::PhantomData;
use std::path::{Path, PathBuf};
pub use trap::Label as UntypedLabel;
pub use trap::Writer;
@@ -122,6 +122,24 @@ impl<T: TrapClass> From<Label<T>> for trap::Arg {
}
}
impl<T: TrapClass> AsTrapKeyPart for Option<Label<T>> {
fn as_key_part(&self) -> String {
format!("[{}]", self.map(|l| l.as_key_part()).unwrap_or_default())
}
}
impl AsTrapKeyPart for Option<String> {
fn as_key_part(&self) -> String {
format!("[{}]", self.as_ref().map(|s| s.as_str()).unwrap_or(""))
}
}
impl<T: TrapClass> AsTrapKeyPart for Vec<Label<T>> {
fn as_key_part(&self) -> String {
format!("[{}]", self.iter().map(|l| l.as_key_part()).join(","))
}
}
pub struct TrapFile {
path: PathBuf,
pub writer: Writer,

147
rust/ql/.generated.list generated
View File

@@ -1,6 +1,6 @@
lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 12a240e8392e4b0ad9ddb8067b25a1b5e4c1151886d9d64292a7a9ff29d11d97 fdbe7ca4f085d04371280299fd10a604ee5a059294d2c4c836f334d2b5f8926d
lib/codeql/rust/elements/Abi.qll 4c973d28b6d628f5959d1f1cc793704572fd0acaae9a97dfce82ff9d73f73476 250f68350180af080f904cd34cb2af481c5c688dc93edf7365fd0ae99855e893
lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be
lib/codeql/rust/elements/Addressable.qll eec6bd2a4aa5ea56b7e2fe291a7732cfa0641247de09aefd482fdf14804a2747 138e598085598bf2afd39d33bd1d81d267c769abef0778099e48a8d96f423cd2
lib/codeql/rust/elements/ArgList.qll 661f5100f5d3ef8351452d9058b663a2a5c720eea8cf11bedd628969741486a2 28e424aac01a90fb58cd6f9f83c7e4cf379eea39e636bc0ba07efc818be71c71
lib/codeql/rust/elements/ArrayExpr.qll e4e7cff3518c50ec908271906dd46c1fbe9098faa1e8cd06a27f0a6e8d165ed1 fe02a4f4197f57ecd1e8e82d6c9384148ec29d8b106d7f696795b2f325e4a71b
lib/codeql/rust/elements/ArrayListExpr.qll 451aedcecb479c385ff497588c7a07fda304fd5b873270223a4f2c804e96b245 a8cb008f6f732215623b5626c84b37b651ca01ccafb2cf4c835df35d5140c6ad
@@ -126,7 +126,7 @@ lib/codeql/rust/elements/RefExpr.qll 91a0d3a86002289dc01ffbe8daca13e34e92e522fbb
lib/codeql/rust/elements/RefPat.qll fe076bdccb454111b38f360837d180274ba8a003b4cffe910b5197cd74188089 2604c8bb2b0b47091d5fc4aa276de46fe3561e346bd98f291c3783cef402ba06
lib/codeql/rust/elements/RefTypeRepr.qll ac41d8b4132f273d65873ea3c59631bc1718b3266ae08075346e6cb1bfe2f17c b7e34851d37008806d4519105a5e3405dda07b999294c6656a0c447ac1635b2a
lib/codeql/rust/elements/Rename.qll 55fa06145f2160304caac0a5ce4cf6a496e41adfd66f44b3c0a1d23229ed8ce0 80262f0abf61749cdf0d5701637db359960f5404ad1dbfdd90f5048d2e7c315d
lib/codeql/rust/elements/Resolvable.qll efeec2b4b14d85334ec745b9a0c5aa6f7b9f86fe3caa45b005dccaee4f5265c4 7efe0063340ba61dd31125bc770773ca23a7067893c0d1e06d149da6e9a9ee92
lib/codeql/rust/elements/Resolvable.qll d18e3434f208085a4418c9e41d4451e1d22d400473fd43160892c37075450832 ea0e7f5e45ead2569f0ddddd56c6d0bff7c4133e6f5bff5d05ccce977cfa3371
lib/codeql/rust/elements/RestPat.qll a898a2c396f974a52424efbc8168174416ac6ed30f90d57c81646d2c08455794 db635ead3fa236e45bbd9955c714ff0abb1e57e1ce80d99dc5bb13438475adbf
lib/codeql/rust/elements/RetTypeRepr.qll a95a053e861a8d6e5e8eda531f29c611b00904d48ea2bb493138d94d39096ace ebde4f865d310351ba6ee71852428819627ea3909e341d6800ab268b1810c6fa
lib/codeql/rust/elements/ReturnExpr.qll b87187cff55bc33c8c18558c9b88617179183d1341b322c1cab35ba07167bbdb 892f3a9df2187e745c869e67f33c228ee42754bc9e4f8f4c1718472eb8f8c80f
@@ -172,6 +172,42 @@ lib/codeql/rust/elements/WhileExpr.qll 9e0c23057bf3fa3e050d5f6de0650f554ce576861
lib/codeql/rust/elements/WildcardPat.qll 4f941afc5f9f8d319719312399a8f787c75a0dbb709ec7cf488f019339635aab a9140a86da752f9126e586ddb9424b23b3fb4841a5420bac48108c38bb218930
lib/codeql/rust/elements/YeetExpr.qll 4172bf70de31cab17639da6eed4a12a7afcefd7aa9182216c3811c822d3d6b17 88223aab1bef696f508e0605615d6b83e1eaef755314e6a651ae977edd3757c3
lib/codeql/rust/elements/YieldExpr.qll de2dc096a077f6c57bba9d1c2b2dcdbecce501333753b866d77c3ffbe06aa516 1f3e8949689c09ed356ff4777394fe39f2ed2b1e6c381fd391790da4f5d5c76a
lib/codeql/rust/elements/canonical_paths/BuiltinTypeCanonicalPath.qll 2a80efb538218b5b3d36fcf76a7f4a58dfebf5f808df80fa13d914cebc08d115 3119e65f672038218587a3651a2ed621f9ad85d36748b51eb0674c4e5a203f24
lib/codeql/rust/elements/canonical_paths/CanonicalPath.qll b560482aefdc6206bec91941eafc7444858eed30ed7e26d8a52a44704f3a3bd9 75cdb532d3d92ecf0a5a7f24b48ae2470d82b5fa93bf4dbf56c678d03580b445
lib/codeql/rust/elements/canonical_paths/CanonicalPathElement.qll 8dd4ad94281238cfad2ffc69b5115c05076c998f4b46cff0cdafd0cc00e1c49b 274274bcd55f79fbb1af5e5d34be9a59e1e0baf37298f7d3a8541e8a116ffba8
lib/codeql/rust/elements/canonical_paths/ConcreteTypeCanonicalPath.qll 720734f277ae81ea6a2c07af8ddc5a8b00aa5ff3ee008e8ab9c7bcef0b974fcc ffbe408309847a5d57b1e83504d192756a58af945b758c812e4cb98280af68ec
lib/codeql/rust/elements/canonical_paths/ConstGenericTypeArg.qll c20adef6f5dce4707c3eae6d62c1c5fec504479c12698f8772bc9a47de862204 dde369301c39faf01773704b29863257c87577015c21da8f4cb360d6799a0cc2
lib/codeql/rust/elements/canonical_paths/CrateRoot.qll 4f2507009d8db33506ba1afa8c7dd7632cbe97701a88e3f17fc5de5182b0d549 0110738a63deb881c009d239f901b73975b94a316fbcb0776256f0750251e756
lib/codeql/rust/elements/canonical_paths/DerivedTypeCanonicalPath.qll 74d633f843d4370a5b138bdd1dd055299f34bf4a35d4b5aff3b3989e03902fdd 2e59fcca32927ef0dceb07b882636abb93c3391f8ce00859b3866ab63b255e1c
lib/codeql/rust/elements/canonical_paths/ImplItemCanonicalPath.qll 5c39311ea95c63d114bafae217ffcbad8bdf3dbc680cf96871bcd2e1d1983688 aaeb83b3314b4ca9a39eceadf96f0e7c9428fd121a6ac8055cf8f743e7b37adf
lib/codeql/rust/elements/canonical_paths/LangCrateRoot.qll 188e595753552bfd434181292df01e14c44ddc3f12947b43a681b6141997870b dfe218d86045807faec5e631269da45a91c87ddb363cf81224e88a0d2f017745
lib/codeql/rust/elements/canonical_paths/ModuleItemCanonicalPath.qll a2c1de98457b46e7b23ce883a4f7d89ad568916bcd1f9b952b5c533ebacf4300 4baeb47b9a5ce63fe038414f922056aa4e54f684d33c5348072218a121259925
lib/codeql/rust/elements/canonical_paths/Namespace.qll 614db7696ed96b7d52b590bc4700b78ee1ce00ca2c17635b595c296a1798191d 0ee32b32079405349c305bbe77181fc31e18f5d6c877f5d375d5f6ec963a9996
lib/codeql/rust/elements/canonical_paths/ParametrizedCanonicalPath.qll a22d55c98080b4b4f0db8882ff942919394b709e4b611b1107b0ab6f6d6968ab d2d72ed915d2eb1485762644d34193093e7ed525cb63eb9cbfa082135bb1108f
lib/codeql/rust/elements/canonical_paths/PlaceholderTypeCanonicalPath.qll ff1be7f5267ceccf40d286c19b4b7933d625cff1bc992c4bbd7d8ca9e584ce93 b89e3bec9d3e2baecd7e76852688f9926b63a0006662778484e139fe2dec10f5
lib/codeql/rust/elements/canonical_paths/RepoCrateRoot.qll d2ef85b33579a72b019dd234ed9ce5ec76e49e064579ccbfc1e13f5a3294dfbc 3f0f7581fb6cfc9cd77e415df5404a8ccd732208c20707392423884836d2b007
lib/codeql/rust/elements/canonical_paths/RustcCrateRoot.qll 3fe51507ac4ef92530a5538ac1b425a0b53b9e2d010a7c71997e8a86e5a99647 a29988f27653863050494a4405c0f1e839e95e003993f96125019e64553767e2
lib/codeql/rust/elements/canonical_paths/TypeCanonicalPath.qll 510f0c11ca8ac95ee8be57a0be18d2e7ce6350d8ab966e14eeb5a878d1acc781 ae68660f4f24f6426cdf32eeae065fe32d82d1ddece356b10cbbd5579a81e45a
lib/codeql/rust/elements/canonical_paths/TypeGenericArg.qll 551e5bce7b474ff097dedfe80e52ca0b3808bda3c855961daddd0ecf36f67aef f3ac937ce08484edab04f285e459c77aac4552e8513b7ee124653aafdb3ceffc
lib/codeql/rust/elements/canonical_paths/TypeGenericTypeArg.qll a8a31940baf116b4a41ab2316e995cedac2d0516c546898e028a63f23ea7cb63 b5df2d469245e507b7d2d35263be9f4d7229e6a7914199bf2eae938a1202dfe8
lib/codeql/rust/elements/canonical_paths/TypeItemCanonicalPath.qll 3cdd980844dac4533bf7fc82c1679af39b151aecbe325a9dbd7a2275ecc3b72b df6232001508086a62ad0e629287d0705a072ba26437f8a55d8aad977e11f554
lib/codeql/rust/elements/canonical_paths/internal/BuiltinTypeCanonicalPathConstructor.qll c33ca6a182eae907bc01a11bbe9e10a705889d6d383cd8804c5380368cf785d4 af1677ff43fcb22dedde3dfa853dc12a197c6e5db7ec6191cfd6c9197e371a05
lib/codeql/rust/elements/canonical_paths/internal/BuiltinTypeCanonicalPathImpl.qll 6dbc6981e280717eb8a7cc2bf06bb91e760cc168e262dcf87db53f610b3a0362 ce81251f033173baabcfa9dd2a6a760169015329daac738760bb4e6689c0fe85
lib/codeql/rust/elements/canonical_paths/internal/CanonicalPathImpl.qll c368afc58a57feb86acde466eb33ed74d17bcd8360219ddf93b0302ea43504ee 42df02e0a15c0555ca1cf830debbc94f647c38c7f6ca8f7640f2cbe8f36d4ac6
lib/codeql/rust/elements/canonical_paths/internal/ConcreteTypeCanonicalPathConstructor.qll 122781ed5b5bfddc0f6c5243d3a77eb969559115c7f612b81291f62b5790b48d 348ee1d8c92b803a1aaf8e3fc5a9061a41cd2a4c6f2f6fa51910659a1edfa00f
lib/codeql/rust/elements/canonical_paths/internal/ConstGenericTypeArgConstructor.qll a2ef92745e712b091367e063662e800b8f84efdf28b02e7116c7c8ab0629e0fc 4a2689f585c0de2f77ca64620bb65986bafab6209fbc383646335040d6155018
lib/codeql/rust/elements/canonical_paths/internal/DerivedTypeCanonicalPathConstructor.qll 1127f0e1eaed5da946a5288271f679ef1984d984a3686cd59d9ec89a8251a234 04419a1231179c8d39637edd443c4ff038e010753f4e6a016ac8c9dbc8f6cccd
lib/codeql/rust/elements/canonical_paths/internal/ImplItemCanonicalPathConstructor.qll 051864c40fe6ed11b31d73292e6dfe7e84e9219afa20c8c12ed849ca6c84354f c7e00e76d7769b42b62cc1eeebfea307246d6dc9e389592df0b3a26069460e5b
lib/codeql/rust/elements/canonical_paths/internal/LangCrateRootConstructor.qll 44b7353025ff44d85dc66e7998736bb94010be1c3ddec6f0e0d8500f89c131df e2cedd482d74cb66ef08a5cbfe9affe25d89d62496260ee5c3e3261cdef02464
lib/codeql/rust/elements/canonical_paths/internal/ModuleItemCanonicalPathConstructor.qll fc580aff51cf598ecfc61a8476044c69800d1bbc41ce5a7ddf1c773d9c20c5db 03ca4ddd5703f2c98609044f76d63c36607b59f25e1e21137818ca7291bb5baf
lib/codeql/rust/elements/canonical_paths/internal/NamespaceConstructor.qll 31a7578929de91094425f88d5739a5264c17986e2a00b117075f329cbbef79b6 faf500f1e2a1b04d0bd949d32a639c8713052813cde33aa9cbd691b34a802aac
lib/codeql/rust/elements/canonical_paths/internal/ParametrizedCanonicalPathConstructor.qll b9e0bd9380f998e6d7bfbc7d94bdfbfb6d38807bb9e16272c79456725789ee45 c91ac59709ab9f8c4b14d611e532b950479cd4652b6fcde140489b15b19b8a0d
lib/codeql/rust/elements/canonical_paths/internal/PlaceholderTypeCanonicalPathConstructor.qll 8c746f1b034a1f88eaa17244669d87891234a4149ce01139f2485a173802ce93 9d7317406fb9112998bee96f90cec9fbfb24f57497d0ea769e9e944c2aaeddd3
lib/codeql/rust/elements/canonical_paths/internal/RepoCrateRootConstructor.qll 99817342db732e1d66d69dc8eb683ce64cd55ad16913e22236a718fa611ba399 5168ad70d3c7cdf4c06dffa1f5fdedff7d522be0349232a9b15dbfc0b75b9ac5
lib/codeql/rust/elements/canonical_paths/internal/RustcCrateRootConstructor.qll 8e40b20cdd8d3a61c80d2f8832fd9ebaac92753e69a5a5ee658f89e2b3917ba3 8cb3d788e0a26d00e6785f0626a8aee4c3bd98993b0aac20f057c6a5abab8027
lib/codeql/rust/elements/canonical_paths/internal/TypeCanonicalPathImpl.qll a6c0228c980b0e8874ccc8d278b4f2938db94ff6a40f065ba2fca5ea012682c6 6a0e7c9d0ea701b605aa19f71f6eeb928e1ab4df9b1961b337ad56e02e36a599
lib/codeql/rust/elements/canonical_paths/internal/TypeGenericTypeArgConstructor.qll dcc4210aa0ed7c2aadd8dfb1f343b29cdf4cfd8d54bddd4424b90f97eac18bf4 b5ce26d604c7e84f27f5981b45b0462e7746089c29522e13ca481e388503d446
lib/codeql/rust/elements/canonical_paths/internal/TypeItemCanonicalPathConstructor.qll b23c6d7902c56c758bc121cd5d3c7e351eccb66503131bc2fa4dda60abb9b4ae b097ab6555f06b12f7ae99378dc9bc347a8b7b7b2691d6a636b9392178cb5692
lib/codeql/rust/elements/internal/AbiConstructor.qll 4484538db49d7c1d31c139f0f21879fceb48d00416e24499a1d4b1337b4141ac 460818e397f2a1a8f2e5466d9551698b0e569d4640fcb87de6c4268a519b3da1
lib/codeql/rust/elements/internal/AbiImpl.qll 01439712ecadc9dc8da6f74d2e19cee13c77f8e1e25699055da675b2c88cb02d dcc9395ef8abd1af3805f3e7fcbc2d7ce30affbce654b6f5e559924768db403c
lib/codeql/rust/elements/internal/AddressableImpl.qll e01a6104980960f5708d5a0ada774ba21db9a344e33deeaf3d3239c627268c77 b8bfc711b267df305ac9fe5f6a994f051ddeca7fc95dacd76d1bae2d4fa7adde
@@ -360,7 +396,6 @@ lib/codeql/rust/elements/internal/StmtImpl.qll ea99d261f32592ff368cc3a1960864989
lib/codeql/rust/elements/internal/StmtListConstructor.qll 435d59019e17a6279110a23d3d5dfbc1d1e16fc358a93a1d688484d22a754866 23fcb60a5cbb66174e459bc10bd7c28ed532fd1ab46f10b9f0c8a6291d3e343f
lib/codeql/rust/elements/internal/StmtListImpl.qll fc16097d08124bcc39c998b07023710e0152baed165fb134cac2ee27e22a9f7a a4eceb42720593d8d0ce031016465de0bb61d40f31b2cc2718626ef8348ac900
lib/codeql/rust/elements/internal/StructConstructor.qll 52921ea6e70421fd08884dc061d0c2dfbbb8dd83d98f1f3c70572cfe57b2a173 dcb3ea8e45ee875525c645fe5d08e6db9013b86bd351c77df4590d0c1439ab9f
lib/codeql/rust/elements/internal/StructImpl.qll 7e3b58c3038ad7a3315cae34a34f99380e36d33cf3fb4437de6f6dcfed2ad579 1cfcb3bb5381349a2a4074a9e53927f5c540f2b251b187ad28da300968dfc649
lib/codeql/rust/elements/internal/TokenImpl.qll 87629ffee74cacc6e8af5e96e18e62fb0fa4043d3ba1e7360daa880e628f8530 d54e213e39ae2b9bb92ab377dc72d72ba5bca88b72d29032507cdcbef201a215
lib/codeql/rust/elements/internal/TokenTreeConstructor.qll 0be1f838b04ff944560aa477cbe4ab1ad0b3f4ae982de84773faac5902fcae45 254b387adc2e1e3c355651ab958785d0b8babbc0030194234698a1219e9497b3
lib/codeql/rust/elements/internal/TokenTreeImpl.qll c61574f2b551db24640258117e0c8653196ba91392ce81da71a3a528ee07b1ad 489a1c8f550725e28871ae99c41d03b719c3099b8f73ae7422f497430f616267
@@ -403,7 +438,6 @@ lib/codeql/rust/elements/internal/UseTreeImpl.qll 25e286538c048cc7ee07f4b5a8b77b
lib/codeql/rust/elements/internal/UseTreeListConstructor.qll 973577da5d7b58eb245f108bd1ae2fecc5645f2795421dedf7687b067a233003 f41e5e3ffcb2a387e5c37f56c0b271e8dc20428b6ff4c63e1ee42fcfa4e67d0a
lib/codeql/rust/elements/internal/UseTreeListImpl.qll 6cac5242f1219df0fe9b3c139db8cc075a2fde618614ca56de2c856130a8ebaa d2ec917055a45f4d07d4ea6dff14298925ae323b165a5bcb6e906f7aad463f82
lib/codeql/rust/elements/internal/VariantConstructor.qll 0297d4a9a9b32448d6d6063d308c8d0e7a067d028b9ec97de10a1d659ee2cfdd 6a4bee28b340e97d06b262120fd39ab21717233a5bcc142ba542cb1b456eb952
lib/codeql/rust/elements/internal/VariantImpl.qll f5204121f15407ffc0926128239f317cbb9277ee456217940c15d48ba80abd49 4de0a8895d9c08f86fa139007ed009a3a5e1101b9edb40c73c58a4059c318802
lib/codeql/rust/elements/internal/VariantListConstructor.qll c841fb345eb46ea3978a0ed7a689f8955efc9178044b140b74d98a6bcd0c926a c9e52d112abdba2b60013fa01a944c8770766bf7368f9878e6b13daaa4eed446
lib/codeql/rust/elements/internal/VariantListImpl.qll 858f3668f53d8b6aacb2715a59509969fe9fd24c5a2ff0b5ceed8a2441cd9cf7 f2a57b6232247687f529be8e4d2d3d0d4d108221d8a6eb45a69a1bcc0cdc51de
lib/codeql/rust/elements/internal/VisibilityConstructor.qll 1fd30663d87945f08d15cfaca54f586a658f26b7a98ea45ac73a35d36d4f65d0 6ddaf11742cc8fbbe03af2aa578394041ae077911e62d2fa6c885ae0543ba53a
@@ -419,7 +453,7 @@ lib/codeql/rust/elements/internal/YeetExprImpl.qll e8924147c3ebe0c32d04c5b33edfd
lib/codeql/rust/elements/internal/YieldExprConstructor.qll 8cbfa6405acb151ee31ccc7c89336948a597d783e8890e5c3e53853850871712 966f685eb6b9063bc359213323d3ff760b536158ecd17608e7618a3e9adf475f
lib/codeql/rust/elements/internal/YieldExprImpl.qll af184649a348ddd0be16dee9daae307240bf123ace09243950342e9d71ededd9 17df90f67dd51623e8a5715b344ccd8740c8fc415af092469f801b99caacb70d
lib/codeql/rust/elements/internal/generated/Abi.qll 87e1ea6b2a8ebf60e1c69176632740e4e27fc56c3f173939b098ba376562b5fa 94b2121e71c4ec94d53a79f972c05a8484ef0d80ed638f53031e7cf4dc5343d5
lib/codeql/rust/elements/internal/generated/Addressable.qll 96a8b45166dd035b8d2c6d36b8b67019f2d4d0b4ccff6d492677c0c87197613e d8f1ce29feafc8ff7179399fc7eac5db031a7e1a8bc6b2cd75cfce1da3132e9b
lib/codeql/rust/elements/internal/generated/Addressable.qll 4dc477969dd7e001bc0dac829ba96f96f6d7f216f8297e8cc1ea91f819909c5f 8856061f862168d9884fc16d9b11ccb7e7ca3d801b295318083117e0e35f6042
lib/codeql/rust/elements/internal/generated/ArgList.qll 1b75b2d7dcf524eb468a0268af6293e9d17832d6bedf3feec49a535824339b57 2bcaf464454bdfdda45fbd24d063f0f1df0eb69f684197b37105adc8f72cd1ea
lib/codeql/rust/elements/internal/generated/ArrayExpr.qll 73806a0de8168b38a9436fa6b8c6d68c92eeab3d64a1ae7edfff82f871929992 7ad998cdd8f4fed226473517ad7a5765cb35608033047aad53bf8aa3969fd03b
lib/codeql/rust/elements/internal/generated/ArrayExprInternal.qll 67a7b0fae04b11cf771727ff39a123fb2d5ce6e2d650d32478fcb33a26ed5688 15833405fa85f6abe0e5146dac283cb5a142a07f08300ccc15a1dae30ed88942
@@ -523,7 +557,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 876e28befd6a93666832de01342c6df403efb5cbea36d3c4b5d5cc2f34c54d6c 3448847608c25b100328bd68f70730a7e43b7d8b5ef8ab1ce40ae3f5a57c6bd2
lib/codeql/rust/elements/internal/generated/ParentChild.qll 94fa8a44faeb32cc7574f9a91b7e08a9cea7a0ee5aec74fdeceb84d02be616c9 18151a38ab16f10346018eabe52b89178b8dee36a1ff1fe68b72cbe385198b6f
lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4
lib/codeql/rust/elements/internal/generated/Path.qll bf6a86e7fcb7164624cc070dcce86d2bda50a2516b95115b87d0ebb5596e50a1 fd7a9ad4034cdebe8dfe495619c46f464630d38195313072e0bd904061b0fb00
lib/codeql/rust/elements/internal/generated/PathAstNode.qll e6d4d5bffd3c623baaaee46bc183eb31ce88795535f164f6a9b9b4d98bbd6101 168db515404933479ba6b150c72e012d28592cbc32366aefcb1bf9599dbcd183
@@ -537,7 +571,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 b295dd46979a2d4df840e1bef4ba12e3b4ff58aa886c8a1320281739d36c5a4f 2369cba6d70f0e853acb0e018dfb47e604ee01dca48af7094b484a7e18a46365
lib/codeql/rust/elements/internal/generated/Raw.qll 4da93ab1fd3d45277dfb32aa66913dd2ccc6d3f7d52b5861038b74cf84a4e7b4 9a824c0093fdfd2d215736c18d3934f688ea6fdf5eb435513637eaff4119673b
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
@@ -550,7 +584,7 @@ lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d
lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05
lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 3d8c0bd296d33b91a81633f697a43269a6538df06d277262d3990d3f6880ef57 13680f39e89bcd8299c218aba396f3deec804597e6f7cb7d4a7e7c748b6faa77
lib/codeql/rust/elements/internal/generated/Rename.qll d23f999dab4863f9412e142756f956d79867a3579bd077c56993bdde0a5ac2f1 9256c487d3614bf3d22faa294314f490cf312ab526b8de0882e3a4a371434931
lib/codeql/rust/elements/internal/generated/Resolvable.qll 586eefb01794220679c3b5d69c059d50c2238cf78ab33efe7185bbd07dea8dbd 1b7c7297d541b9de9e881d18fed4ae40dd327396366a3a6f52a24b85685fa9c1
lib/codeql/rust/elements/internal/generated/Resolvable.qll db6064eb6147f0c10c37b3585a4801ed6705b8cbcbaf1793af92a1b6da69aba7 302eb6b82f90eea04c8f7f65439f198cf1d4ad084253634b639b14a88376ed75
lib/codeql/rust/elements/internal/generated/RestPat.qll 234bbaa8aa37962c9138baf5b1f4406c3d78f4131b4b8dbb30fc1343d15873d5 653ee6bea4d3cf9454b2834bc4233a8f275295f19635c37a0bca69a587e1eb20
lib/codeql/rust/elements/internal/generated/RetTypeRepr.qll 173fd722308161f9405f929a13718134f8eaefe9fce1686048860b7c8f4c29f7 30bbaada842369dac5618ae573999f59979597c6a3315c6cce04e5bed0b38c87
lib/codeql/rust/elements/internal/generated/ReturnExpr.qll c9c05400d326cd8e0da11c3bfa524daa08b2579ecaee80e468076e5dd7911d56 e7694926727220f46a7617b6ca336767450e359c6fa3782e82b1e21d85d37268
@@ -563,8 +597,8 @@ lib/codeql/rust/elements/internal/generated/Static.qll ea22838e0b7d9796dfaf5deda
lib/codeql/rust/elements/internal/generated/Stmt.qll 8473ff532dd5cc9d7decaddcd174b94d610f6ca0aec8e473cc051dad9f3db917 6ef7d2b5237c2dbdcacbf7d8b39109d4dc100229f2b28b5c9e3e4fbf673ba72b
lib/codeql/rust/elements/internal/generated/StmtList.qll a667193e32341e17400867c6e359878c4e645ef9f5f4d97676afc0283a33a026 a320ed678ee359302e2fc1b70a9476705cd616fcfa44a499d32f0c7715627f73
lib/codeql/rust/elements/internal/generated/Struct.qll 4d57f0db12dc7ad3e31e750a24172ef1505406b4dab16386af0674bd18bf8f4b 1a73c83df926b996f629316f74c61ea775be04532ab61b56af904223354f033e
lib/codeql/rust/elements/internal/generated/Synth.qll b6d4e3f5fa38d7eca94495447b591fa9ed44cb5fcb4982077d54c8227d898401 a145534947c98e6dba0ba6d92d46f3eef34d01ce8b60d4b699db8bacc63c3c5b
lib/codeql/rust/elements/internal/generated/SynthConstructors.qll 3ceb5f6ee40b94955ce5f47feb454cc9129941aad3cdbe6e337bbe41e76a8a23 3ceb5f6ee40b94955ce5f47feb454cc9129941aad3cdbe6e337bbe41e76a8a23
lib/codeql/rust/elements/internal/generated/Synth.qll 1406426af42b0bcb62bba6438df8d21ac3d270e2889cbe1846fae27a10e71439 c28fec17a0bb864717783b4a7f254f221040f67c4b29320b46455bfa4c653e76
lib/codeql/rust/elements/internal/generated/SynthConstructors.qll a2791ebe7281bbba12e385b84241d79260c700c655f8d7ae85bc75351c9e784b a2791ebe7281bbba12e385b84241d79260c700c655f8d7ae85bc75351c9e784b
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
@@ -598,7 +632,26 @@ 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 2b46fa94e6775759fb730da818e0bf66e0f434c7e3d49f0e1989a5e5e6e48fd2 2b46fa94e6775759fb730da818e0bf66e0f434c7e3d49f0e1989a5e5e6e48fd2
lib/codeql/rust/elements/internal/generated/canonical_paths/BuiltinTypeCanonicalPath.qll a27755a5093cf063ad3dfb86d62212cd219ad3b8890eac1836077c1112f3e869 1a15e92ecdb194338319aa11060f9cf5b753a1dd0236b274c351bb78d4bec063
lib/codeql/rust/elements/internal/generated/canonical_paths/CanonicalPath.qll d2af9c90308939762fc5a9c0629da4b9bbab13f6b05e0353ff5575d659768392 2c03df5ef7d29d9a80e96ed43395e8120ee93d5075b9174d247300d26e563a5d
lib/codeql/rust/elements/internal/generated/canonical_paths/CanonicalPathElement.qll 61446d0f3bcd327bad6b31c3c60c62571feaf862b31dda6474e01c8f37e8059a 33f2827acb058317b7c493fcb66a5b4bb434ac9ad739bbd449da971e72cb480f
lib/codeql/rust/elements/internal/generated/canonical_paths/ConcreteTypeCanonicalPath.qll 4401616f47a95cccec68199bb49c18442a78dde023832f8fd5e16c73219baede 12f65fd81dc20ff5f4b74dac2232818fe75cb2e7f9abfdcae2177acc620b2c0f
lib/codeql/rust/elements/internal/generated/canonical_paths/ConstGenericTypeArg.qll 69aae3c8c9d0ba87d543e6cec3d8783950b31888a6da15e5be37da81c7690238 780a9afc1e43ec885afc2ea22259c4f417244a7efcfb8dd3dc6209462e5faffc
lib/codeql/rust/elements/internal/generated/canonical_paths/CrateRoot.qll fe71542b7f5943dc612bf8e52bc817473276460a9138babb7b33176c97d734a7 9cdc982cd8bf7802a82ec08c628ee262c527e25967b15632dc0e47f8e78daa28
lib/codeql/rust/elements/internal/generated/canonical_paths/DerivedTypeCanonicalPath.qll 7370bc3c7d171f1cda9e6b268e3fd91de60ea0245798b65c78bd71cade5727bc fcba582a58f729e087b0a858e71cd581ce4371340b925b07b08daf3a5d11e9b4
lib/codeql/rust/elements/internal/generated/canonical_paths/ImplItemCanonicalPath.qll ec8e443974dfa7320f996fd676eac81b39b577d3daef58289cba90b9fb0a87e4 100b0d7a10bfdaaa5812bca8efcda90bd4ba53251fccb03d263c563e1ab0041f
lib/codeql/rust/elements/internal/generated/canonical_paths/LangCrateRoot.qll 4573e6afb64c334e7337c996d944763cea78e05174e00f1f5fc7598a7b66e364 84892d3a47b66ae2fd0f542141ed747b2cd700731891a7f86fd1a193c745b3db
lib/codeql/rust/elements/internal/generated/canonical_paths/ModuleItemCanonicalPath.qll 0b31c6cff057a402051b44ea06a1224c107d8255848c028dbb48c5d8d5e92544 0e157a31e92d6cb9ac4a4cc828b204144def6511ff9fa9002f95b43064cb81e2
lib/codeql/rust/elements/internal/generated/canonical_paths/Namespace.qll d0cc7157e09131e5f6a76b4ddda42ee2f8e5efb2002fe9e6d1da2c0b423a3c27 c2388f34f56333a0440c6c429833150fef7bdba6dbab1bf36224e6ff3dc6aea4
lib/codeql/rust/elements/internal/generated/canonical_paths/ParametrizedCanonicalPath.qll 5463401f6f8775df8914a913bfba08c69c75172b4cdafae01321c28b3e9bcd2e 9a0a44725b48df6325114821eb69b161c35f46110909aa98beb8208969d84541
lib/codeql/rust/elements/internal/generated/canonical_paths/PlaceholderTypeCanonicalPath.qll 27d476cb88f57e342d23218402236f6b15079ef773435102deb80bf57846c364 f143115ea2bd1c8805f3cef32cdc0a52ef9bf53a714ae68bf19c8d48e16d21bd
lib/codeql/rust/elements/internal/generated/canonical_paths/RepoCrateRoot.qll 9c9b3d4a0f00313cd8ef75e53e161fee78d08bfcac78d836fd8b9033a4617cc7 621349f2d1a66632ba57940c6ff8e963b297bc9881a4f3d901977fee4c6bcb83
lib/codeql/rust/elements/internal/generated/canonical_paths/RustcCrateRoot.qll 460256c888b3c9efa19556614607b4b9475329d37fab1d16dc33e649c403e247 84526e02752be57e1b776ca08d199f97b3b9e23978da82c0ab5020658c6270e9
lib/codeql/rust/elements/internal/generated/canonical_paths/TypeCanonicalPath.qll 98251c42bc4163504b8ceec3502075f3551c2f66f61dc046fef4b13149337253 9bd821857a18356ab980d7fb5b1daa9bb42a738499e36e20a2944565b757c49d
lib/codeql/rust/elements/internal/generated/canonical_paths/TypeGenericArg.qll 37c3e3bdee579697aa304d7df713249dc22df3068e189c21c182bba32b780622 b6e785b81f5a39c9643598d19b06f2beb2745dc8da63c8c91e50200824b9e8a7
lib/codeql/rust/elements/internal/generated/canonical_paths/TypeGenericTypeArg.qll da1d56d3b9a41ac19ead37043e6035c4f42e32a284c0d6d925aadea4bf9691bc 4032024c23cc2910dab4760a2c249ec95324486c32d8f7fac1478e746635e19f
lib/codeql/rust/elements/internal/generated/canonical_paths/TypeItemCanonicalPath.qll d2007a4ea331957899a5628c8f42794256952e1942f7331d078ac1c28a5f82e4 a385d0e88d8fcb02e6eea60c8970972ff1d4b96467468caf712d6b992f33fd79
lib/codeql/rust/elements.qll 9b87ce888d083871402ccea1fb5f53bb3d85e754c7d8a5a84c545234eab91830 9b87ce888d083871402ccea1fb5f53bb3d85e754c7d8a5a84c545234eab91830
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
@@ -664,9 +717,10 @@ test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql cbfcf
test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql 68ce501516094512dd5bfed42a785474583a91312f704087cba801b02ba7b834 eacbf89d63159e7decfd84c2a1dc5c067dfce56a8157fbb52bc133e9702d266d
test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql c95bc7306b2d77aa05a6501b6321e6f1e7a48b7ad422ba082635ab20014288ae fe72d44c9819b42fff49b9092a9fb2bfafde6d3b9e4967547fb5298822f30bc3
test/extractor-tests/generated/Comment/Comment.ql 5428b8417a737f88f0d55d87de45c4693d81f03686f03da11dc5369e163d977b 8948c1860cde198d49cff7c74741f554a9e89f8af97bb94de80f3c62e1e29244
test/extractor-tests/generated/Const/Const.ql ef2d2730e08ff6c9e5e8473f654e0b023296c51bc9acfbffd7d4cc5caeed7919 906f8624b10b3fade378d29e34af8537f86d9de16a22a188887ecfc165f5ded9
test/extractor-tests/generated/Const/Const.ql 467cbeab00b7056613541933debcedf8f22579216e250ba64918efc6567ebd03 05f81445603a6b143834bc409200cd79e14f45bdf5d4061c03ad078cfa93274d
test/extractor-tests/generated/Const/Const_getAttr.ql bd6296dab00065db39663db8d09fe62146838875206ff9d8595d06d6439f5043 34cb55ca6d1f44e27d82a8b624f16f9408bae2485c85da94cc76327eed168577
test/extractor-tests/generated/Const/Const_getBody.ql f50f79b7f42bb1043b79ec96f999fa4740c8014e6969a25812d5d023d7a5a5d8 90e5060ba9757f1021429ed4ec4913bc78747f3fc415456ef7e7fc284b8a0026
test/extractor-tests/generated/Const/Const_getCanonicalPath.ql 7737e999249e6dffcfe4386671b5c45e3916aaf2852bca889371d1c825444b8c e3473de4fcaf4c4d3c63b740a5879caf463a2e44cda5c12874e4110be433cb8f
test/extractor-tests/generated/Const/Const_getCrateOrigin.ql f042bf15f9bde6c62d129601806c79951a2a131b6388e8df24b1dc5d17fe89f7 7c6decb624f087fda178f87f6609510907d2ed3877b0f36e605e2422b4b13f57
test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql 3300b902e1d1f9928cfe918203b87043e13460cfa5348a8c93712d2e26d61ced 71e7b80d3290f17b1c235adaca2c48ae90eb8b2cb24d4c9e6dc66559daf3824c
test/extractor-tests/generated/Const/Const_getName.ql b876a1964bbb857fbe8852fb05f589fba947a494f343e8c96a1171e791aa2b5e 83655b1fbc67a4a1704439726c1138bb6784553e35b6ac16250b807e6cd0f40c
@@ -686,8 +740,9 @@ test/extractor-tests/generated/ContinueExpr/ContinueExpr_getAttr.ql acb261869d3b
test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.ql 39dae9872d92fa9b15343c93da545c2b0e15b4f27f2296c200fd4611b68858d5 52a209022e3b83260b4ef5513ffbcc1ca1f7c21bad2c721a0d3698793d2161d2
test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql 513d64b564f359e1022ae6f3d6d4a8ad637f595f01f29a6c2a167d1c2e8f1f99 0c7a7af6ee1005126b9ab77b2a7732821f85f1d2d426312c98206cbbedc19bb2
test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.ql b20720ff0b147d55cea6f2de44d5bf297e79991eaf103938ccd7ab9d129e9656 eb8c9db2581cea00c29d7772de0b0a125be02c37092217a419f1a2b6a9711a6c
test/extractor-tests/generated/Enum/Enum.ql ed518d828d8e2e4790849284de1d0d5e728dbc2fe5e9f187e8ebfa2d503efd5a 7092b963eb133371e1cbc09d45f8c2308d7093523140b351d67073a8d258643e
test/extractor-tests/generated/Enum/Enum.ql a9047a6851e0bb2464b905fd9fb228bd23883bb978e749bc4c4429268a9df131 578c309bd4f89de813ee074ed162a8baab7586da09f6c7334b45fe8dfda072f4
test/extractor-tests/generated/Enum/Enum_getAttr.ql 8109ef2495f4a154e3bb408d549a16c6085e28de3aa9b40b51043af3d007afa7 868cf275a582266ffa8da556d99247bc8af0fdf3b43026c49e250cf0cac64687
test/extractor-tests/generated/Enum/Enum_getCanonicalPath.ql 1fc1c7a5049a9c348f9c93fa40e17da84406e9155db69892303ddab38cd05447 389dfb9ec6e72ca100cd9d375abb0a571f7c9ebdb3581b703b7f342f11e9f439
test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql 76d32838b7800ed8e5cab895c9dbea76129f96afab949598bebec2b0cb34b7ff 226d099377c9d499cc614b45aa7e26756124d82f07b797863ad2ac6a6b2f5acb
test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql 001bb634adc4b20afb241bff41194bc91ba8544d1edd55958a01975e2ac428e1 c7c3fe3dc22a1887981a895a1e5262b1d0ad18f5052c67aa73094586de5212f6
test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql 2a858a07195a4b26b8c92e28519995bd6eba64889bddd126e161038f4a8d78e0 db188f238db915c67b084bc85aa0784c6a20b97b5a5f1966b3530c4c945b5527
@@ -697,14 +752,16 @@ test/extractor-tests/generated/Enum/Enum_getVisibility.ql 7fdae1b147d3d2ed41e055
test/extractor-tests/generated/Enum/Enum_getWhereClause.ql 00be944242a2056cd760a59a04d7a4f95910c122fe8ea6eca3efe44be1386b0c 70107b11fb72ed722afa9464acc4a90916822410d6b8bf3b670f6388a193d27d
test/extractor-tests/generated/ExprStmt/ExprStmt.ql 811d3c75a93d081002ecf03f4e299c248f708e3c2708fca9e17b36708da620e5 a4477e67931ba90fd948a7ef778b18b50c8492bae32689356899e7104a6d6794
test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.ql e269bb222317afe1470eee1be822d305fc37c65bca2999da8d24a86fa9337036 088369d6c5b072192290c34c1828b1068aeedaabdae131594ca529bbb1630548
test/extractor-tests/generated/ExternBlock/ExternBlock.ql 45233abdf39caefd2d1d236990a5fbf06eb0b547d892f1ad3e82b8e3c215bc79 df30e0370ed20bef3b2c5bed6e8c27b27663716e7c9e14e85acb6e33a43f4edc
test/extractor-tests/generated/ExternBlock/ExternBlock.ql aa1b2b0d48976824c7489a0c028e3bdbb7052697084631ca7807d4a975664555 dab39df74f212041f81f1706c6800f1adcbf37dca6d5da04672051e14ec76955
test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.ql 9b7c7263fcbc84e07361f5b419026a525f781836ede051412b22fb4ddb5d0c6a c3755faa7ffb69ad7d3b4c5d6c7b4d378beca2fa349ea072e3bef4401e18ec99
test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.ql 78ed6a2d31ccab67b02da4792e9d2c7c7084a9f20eb065d83f64cd1c0a603d1b e548d4fa8a3dc1ca4b7d7b893897537237a01242c187ac738493b9f5c4700521
test/extractor-tests/generated/ExternBlock/ExternBlock_getCanonicalPath.ql c8a6b799fb2b5fb7f14538336d400f18ed5b9450eead27477142a3ae5c632c61 59cfb18e8cf2393e964f96d0b97ca858f4c3e9d8505518f55eb647ea6046a05f
test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.ql 5a2e0b546e17a998156f48f62e711c8a7b920d352516de3518dfcd0dfedde82d 1d11b8a790c943ef215784907ff2e367b13737a5d1c24ad0d869794114deaa32
test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.ql 40d6ee4bcb77c2669e07cf8070cc1aadfca22a638412c8fcf35ff892f5393b0c e9782a3b580e076800a1ad013c8f43cdda5c08fee30947599c0c38c2638820d6
test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.ql 2c2b29bdfdc3b27173c068cbaab9946b42053aa14cf371236b4b60ff2e723370 dfc20fc8ef81cdce6f0badd664ef3914d6d49082eb942b1da3f45239b4351e2f
test/extractor-tests/generated/ExternCrate/ExternCrate.ql c4313ed4790d6c085f47d6c14b11bfa67f7758a1f160758a385bcfcd37284151 9a761086cd80a6fdb7a41f2f6887e1c0b8b3aa19ada0b1dcc74a57646338ecc9
test/extractor-tests/generated/ExternCrate/ExternCrate.ql 38c4959c09b3c8f4e541ad382674ebde5e861a658ab7fc775eb48d74b0eb4270 d86dd75ccafc1dc98f99821585f1721545f441b18774bb339038749b3d03c96b
test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.ql cbe8efdfdbe5d46b4cd28d0e9d3bffcf08f0f9a093acf12314c15b692a9e502e 67fe03af83e4460725f371920277186c13cf1ed35629bce4ed9e23dd3d986b95
test/extractor-tests/generated/ExternCrate/ExternCrate_getCanonicalPath.ql c4c0346e43710986270b26be5739f46f52326740563bb8092b6e8c9fa2098b3a 85cc440df53bb13fb93a59d0aa70f92e8f072935294485967a338c73220cc53e
test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.ql c0bf9ba36beb93dc27cd1c688f18b606f961b687fd7a7afd4b3fc7328373dcfb 312da595252812bd311aecb356dd80f2f7dc5ecf77bc956e6478bbe96ec72fd9
test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.ql 88e16e2bbef466cec43ace25716e354408b5289f9054eaafe38abafd9df327e3 83a69487e16d59492d44d8c02f0baf7898c88ed5fcf67c73ed89d80f00c69fe8
test/extractor-tests/generated/ExternCrate/ExternCrate_getNameRef.ql 4bbc210ed3114f355a36768fc8173dfb65bd683bdf47491a30890cf110a6fb2c cd9c1b52dd350337e946fb43243de1504f0ae44d81668dab3629f2b7c2651572
@@ -743,10 +800,11 @@ test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql 7a7ee3a3322b4af8
test/extractor-tests/generated/FormatArgsExpr/FormatArgument_getVariable.ql 7bd4ec3dde2ef0463585794101e6cc426c368b0e4ab95fbb1f24f8f0a76cf471 e7b01e8b21df5b22c51643e2c909c6fc4ca96fda41b3290c907ba228abe8669b
test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql 2793ba1ff52182dab992d82d3767a000928f6b2fbfdb621349cafc183f0d2480 c3777d03214f7feb9020de3ce45af6556129e39e9b30d083de605b70ab9a0a12
test/extractor-tests/generated/FormatArgsExpr/Format_getArgument.ql 26d592398a17795427b5b6b51ff4a013ee15c31443e732a000baca5f2e65acca 7940a864b84b89e84d7fb186599cb8b6bcbead7141c592b8ab0c59fcd380d5fb
test/extractor-tests/generated/Function/Function.ql c1c2a9b68c35f839ccd2b5e62e87d1acd94dcc2a3dc4c307c269b84b2a0806e6 1c446f19d2f81dd139aa5a1578d1b165e13bddbaeab8cfee8f0430bced3a99ab
test/extractor-tests/generated/Function/Function.ql c78dcb8aa49acbd2110a7f19b02ce7ee09428e0c363318dd84ade543003e950c 5ada3778eb0db63c6674d6ee19401642fe65c883cbda0fa368c809b478c4a311
test/extractor-tests/generated/Function/Function_getAbi.ql e5c9c97de036ddd51cae5d99d41847c35c6b2eabbbd145f4467cb501edc606d8 0b81511528bd0ef9e63b19edfc3cb638d8af43eb87d018fad69d6ef8f8221454
test/extractor-tests/generated/Function/Function_getAttr.ql 44067ee11bdec8e91774ff10de0704a8c5c1b60816d587378e86bf3d82e1f660 b4bebf9441bda1f2d1e34e9261e07a7468cbabf53cf8047384f3c8b11869f04e
test/extractor-tests/generated/Function/Function_getBody.ql cf2716a751e309deba703ee4da70e607aae767c1961d3c0ac5b6728f7791f608 3beaf4032924720cb881ef6618a3dd22316f88635c86cbc1be60e3bdad173e21
test/extractor-tests/generated/Function/Function_getCanonicalPath.ql 22775208d059fb634903123a4b98e413c9493c507d5095236bfe17639863cf96 a76b74443954bf2395c242374d0ceee531f18890c18ef79f31db9b73229d477f
test/extractor-tests/generated/Function/Function_getCrateOrigin.ql acec761c56b386600443411cabb438d7a88f3a5e221942b31a2bf949e77c14b4 ff2387acb13eebfad614b808278f057a702ef4a844386680b8767f9bb4438461
test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql 0bcdca25bb92424007cea950409d73ba681e3ffbea53e0508f1d630fccfa8bed ff28c3349f5fc007d5f144e549579bd04870973c0fabef4198edce0fba0ef421
test/extractor-tests/generated/Function/Function_getGenericParamList.ql 0b255791c153b7cb03a64f1b9ab5beccc832984251f37516e1d06ce311e71c2b d200f90d4dd6f8dfd22ce49203423715d5bef27436c56ee553097c668e71c5a1
@@ -768,9 +826,10 @@ test/extractor-tests/generated/IfExpr/IfExpr_getAttr.ql f5872cdbb21683bed689e753
test/extractor-tests/generated/IfExpr/IfExpr_getCondition.ql 5bab301a1d53fe6ee599edfb17f9c7edb2410ec6ea7108b3f4a5f0a8d14316e3 355183b52cca9dc81591a09891dab799150370fff2034ddcbf7b1e4a7cb43482
test/extractor-tests/generated/IfExpr/IfExpr_getElse.ql 8674cedf42fb7be513fdf6b9c3988308453ae3baf8051649832e7767b366c12f e064e5f0b8e394b080a05a7bccd57277a229c1f985aa4df37daea26aeade4603
test/extractor-tests/generated/IfExpr/IfExpr_getThen.ql 0989ddab2c231c0ee122ae805ffa0d3f0697fb7b6d9e53ee6d32b9140d4b0421 81028f9cd6b417c63091d46a8b85c3b32b1c77eea885f3f93ae12c99685bfe0a
test/extractor-tests/generated/Impl/Impl.ql c473ab1d919fc56b641684b9eb7ba0e65defe554e1bb2fa603b8246a896aa574 16f2f7d8456aee81b395bf8e44fcf0562cfa44294fa03e4f85f3b06f5ff1c57f
test/extractor-tests/generated/Impl/Impl.ql 7f647b9c482f429930d9949b81dd93720c855c6b1588dca2937af5f1745284fb 67021bd70c168c4e4d3435a91caa431b95ed26ae2da19febcb79dd4c4097f15a
test/extractor-tests/generated/Impl/Impl_getAssocItemList.ql cf875361c53c081ac967482fd3af8daf735b0bc22f21dcf0936fcf70500a001a 0ad723839fa26d30fa1cd2badd01f9453977eba81add7f0f0a0fcb3adb76b87e
test/extractor-tests/generated/Impl/Impl_getAttr.ql 018bdf6d9a9724d4f497d249de7cecd8bda0ac2340bde64b9b3d7c57482e715b cd065899d92aa35aca5d53ef64eadf7bb195d9a4e8ed632378a4e8c550b850cd
test/extractor-tests/generated/Impl/Impl_getCanonicalPath.ql ab036cae598c5c50cdbc3df81a4f3c579dbe642d160741e4ad65eb12f256f334 f8f2eb65a3cefc528d5baf92b0728c3850d1e72b4679800748cc33d3985bd842
test/extractor-tests/generated/Impl/Impl_getCrateOrigin.ql 494d5524ef7bac1286b8a465e833e98409c13f3f8155edab21d72424944f2ed9 b238ef992fce97699b14a5c45d386a2711287fd88fa44d43d18c0cdfd81ed72c
test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.ql 3ab82fd7831d22c7ec125908abf9238a9e8562087d783c1c12c108b449c31c83 320afd5dd1cea9017dbc25cc31ebe1588d242e273d27207a5ad2578eee638f7e
test/extractor-tests/generated/Impl/Impl_getGenericParamList.ql 88d5cd8fd03cb4cc2887393ee38b2e2315eeef8c4db40a9bd94cf86b95935bdd 9c72828669ccf8f7ca39851bc36a0c426325a91fc428b49681e4bb680d6547a9
@@ -819,17 +878,19 @@ test/extractor-tests/generated/LoopExpr/LoopExpr.ql 37b320acefa3734331f87414de27
test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.ql d557c1a34ae8762b32702d6b50e79c25bc506275c33a896b6b94bbbe73d04c49 34846c9eefa0219f4a16e28b518b2afa23f372d0aa03b08d042c5a35375e0cd6
test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.ql 0b77b9d9fb5903d37bce5a2c0d6b276e6269da56fcb37b83cd931872fb88490f c7f09c526e59dcadec13ec9719980d68b8619d630caab2c26b8368b06c1f2cc0
test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql 0267f54077640f3dfeb38524577e4a1229115eeb1c839398d0c5f460c1d65129 96ec876635b8c561f7add19e57574444f630eae3df9ab9bc33ac180e61f3a7b8
test/extractor-tests/generated/MacroCall/MacroCall.ql f41552ce4c8132db854132e445aa0c8df514bfd375aa71cc9ed0ae838b7df9f1 442ecbe1481084bb072c6f8cf0eb595b7ad371587e8708610a10f2cc718535f7
test/extractor-tests/generated/MacroCall/MacroCall.ql 01c61d5298dd62b9b15536c7e0d40d85cc651a89b5a8957739f1ebb9a1daeccc 6ad942cf70cbc26f64ed9679b5e090f171f23c46a80076ee529f55edfefdbb94
test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql c22a2a29d705e85b03a6586d1eda1a2f4f99f95f7dfeb4e6908ec3188b5ad0ad 9b8d9dcc2116a123c15c520a880efab73ade20e08197c64bc3ed0c50902c4672
test/extractor-tests/generated/MacroCall/MacroCall_getCanonicalPath.ql e11be6799451e1833b27610c7d086a606fa954bacacbf05c65de88bcecef0e11 c81f43be23035953a62bdc685e2862266b43859855c4145a5bd585d984737ae5
test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql 3030e87de6f773d510882ee4469146f6008898e23a4a4ccabcbaa7da1a4e765e a10fe67315eda1c59d726d538ead34f35ccffc3e121eeda74c286d49a4ce4f54
test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.ql 757c4a4c32888e4604044c798a3180aa6d4f73381eec9bc28ba9dc71ffcbd03a 27d5edaa2c1096a24c86744aaad0f006da20d5caa28ccfd8528e7c98aa1bead1
test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.ql 553b810f611014ae04d76663d1393c93687df8b96bda325bd71e264e950a8be9 a0e80c3dac6a0e48c635e9f25926b6a97adabd4b3c0e3cfb6766ae160bcb4ee7
test/extractor-tests/generated/MacroCall/MacroCall_getPath.ql 160edc6a001a2d946da6049ffb21a84b9a3756e85f9a2fb0a4d85058124b399a 1e25dd600f19ef89a99f328f86603bce12190220168387c5a88bfb9926da56d9
test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.ql 1cbf6b1ac7fa0910ff299b939743153fc00ad7e28a9a70c69a8297c6841e8238 570380c0dc4b20fe25c0499378569720a6da14bdb058e73d757e174bdd62d0c0
test/extractor-tests/generated/MacroDef/MacroDef.ql b8186c22beb7f818a30fe80f36d2e4207887445863e4deeae88bd03c24863dbb 71bebfb1b57b56ea479bc6edd714a4f01bfce2fa8e12fb9eb1481f9dffa4515e
test/extractor-tests/generated/MacroDef/MacroDef.ql f2993a903352ce5e8f830c746a8dc53ef84a286319af4457f752f8a65dce2f21 4d954809d4991328e2cc0d4f126c8d5d7e443b294b89a5cffcfecbe3e00b8504
test/extractor-tests/generated/MacroDef/MacroDef_getArgs.ql 61f11d6ba6ea3bd42708c4dc172be4016277c015d3560025d776e8fef447270f 331541eff1d8a835a9ecc6306f3adf234cbff96ea74b0638e482e03f3e336fd1
test/extractor-tests/generated/MacroDef/MacroDef_getAttr.ql 0a30875f7b02351a4facf454273fb124aa40c6ef8a47dfe5210072a226b03656 8e97307aef71bf93b28f787050bfaa50fe95edf6c3f5418acd07c1de64e62cc1
test/extractor-tests/generated/MacroDef/MacroDef_getBody.ql 7b350f48e6f208d9fa4725919efd439baf5e9ec4563ba9be261b7a17dacc451b 33f99a707bb89705c92195a5f86055d1f6019bcd33aafcc1942358a6ed413661
test/extractor-tests/generated/MacroDef/MacroDef_getCanonicalPath.ql 73617ab1d9f6705a613b6eb56b8eec819aee464b233c1c915789d411bcd447a1 4a2a502b35638a776469b246dcd1638a4cd3e77478565703ccbc7b6dc36b8f12
test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.ql 6c46366798df82ed96b8fb1efeb46bd84c2660f226ff2359af0041d5cdf004ba 8ab22599ef784dcad778d86828318699c2230c8927ae98ab0c60ac4639d6d1b5
test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.ql d09b262b8e5558078506ec370255a63c861ca0c41ab9af3eb4f987325dadd90c cd466062c59b6a8ea2a05ddac1bf5b6d04165755f4773867774215ec5e79afa3
test/extractor-tests/generated/MacroDef/MacroDef_getName.ql 6bc8a17804f23782e98f7baf70a0a87256a639c11f92e3c80940021319868847 726f9d8249b2ca6789d37bb4248bf5dd044acc9add5c25ed62607502c8af65aa
@@ -840,8 +901,9 @@ test/extractor-tests/generated/MacroItems/MacroItems.ql 876b5d2a4ce7dcb599e02208
test/extractor-tests/generated/MacroItems/MacroItems_getItem.ql 53fc2db35a23b9aca6ee327d2a51202d23ddf482e6bdd92c5399b7f3a73959b1 63051c8b7a7bfbe9cc640f775e753c9a82f1eb8472989f7d3c8af94fdf26c7a0
test/extractor-tests/generated/MacroPat/MacroPat.ql d9ec72d4d6a7342ee2d9aa7e90227faa31792ca5842fe948d7fdf22597a123b7 74b0f21ef2bb6c13aae74dba1eea97451755110909a083360e2c56cfbc76fd91
test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.ql 398996f0d0f2aa6d3b58d80b26c7d1185b5094d455c6c5c7f075f6d414150aa6 b4662e57cac36ed0e692201f53ba46c3d0826bba99c5cc6dfcb302b44dd2154b
test/extractor-tests/generated/MacroRules/MacroRules.ql e8a243a1aa368d44c963d81b4459aa6eba7caf514d4865af5007cc33fe53dde4 9e9114cb808239e3bb15403cf5712f8dbaf4e2719e74efddbb800ec0be19f06a
test/extractor-tests/generated/MacroRules/MacroRules.ql c201fdcf850d9b048d916d02628d6bb8f79c530d3a00d847e44ae6168968d955 5d5f5331bfe9c8972de1d33357d4aa2501fc48353eec257cc71420d517fef0af
test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql 7de501c724e3465520cdc870c357911e7e7fce147f6fb5ed30ad37f21cf7d932 0d7754b89bcad6c012a0b43ee4e48e64dd20b608b3a7aeb4042f95eec50bb6e6
test/extractor-tests/generated/MacroRules/MacroRules_getCanonicalPath.ql 18798d1de82776729e42e2044987d1b9d116cd5f2e08ebafa24f92ca833507fd 556b10708e758c534e84d6408cc68c50b715c5d452cab7adb11dffed5450f208
test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.ql fccedeee10ef85be3c26f6360b867e81d4ebce3e7f9cf90ccb641c5a14e73e7d 28c38a03a7597a9f56032077102e7a19378b0f3f3a6804e6c234526d0a441997
test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql a0098b1d945df46e546e748c2297444aaccd04a4d543ba3d94424e7f33be6d26 3bab748c7f5bbe486f30e1a1c422a421ab622f401f4f865afb003915ae47be83
test/extractor-tests/generated/MacroRules/MacroRules_getName.ql 591606e3accae8b8fb49e1218c4867a42724ac209cf99786db0e5d7ea0bf55d5 d2936ef5aa4bbf024372516dde3de578990aafb2b8675bbbf0f72e8b54eb82a8
@@ -870,16 +932,18 @@ test/extractor-tests/generated/Meta/Meta.ql 16f163f00ba2bbaa0a8c6f3f6710c860a8f6
test/extractor-tests/generated/Meta/Meta_getExpr.ql ec9ec61f5be7d65c32775fb5c068daea04f9db7d875293ed99cc1b2481db041f 77a0c52f1cb6ddc8fdb294d637f9eda1b7301ffa3067f0fca6272d894f57d3ee
test/extractor-tests/generated/Meta/Meta_getPath.ql aa9d4145a4e613c51b6e4637d57e3b7d0f66e0bb88f4ce959d598870814c06bb 2087e00686d502c0e2e89c88eae0fb354463576a9ae4101320981d3fd79b9078
test/extractor-tests/generated/Meta/Meta_getTokenTree.ql 1051c27ffd0d9a20436d684fde529b9ff55abe30d50e1d575b0318951e75bd34 983975672d928fb907676628384c949731da9807bf0c781bb7ec749d25733d2d
test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql 0149a2d174c72a530b39a5878e204cb6db7632935a5ceaf20e2b2363b67dfdf6 8284d9133c21136f89a04105c280efe736a782035235c6abc081f3d9a2616447
test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql b58d51eaecc3013af64a6d7209934e8772c26e6c2a838f1a6ecda58b9cf7b595 f6a61ed3093f18c632d7a0181b1f7610bf2f0ee90204d82d55fd690fcfd65734
test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.ql 180e0b1715f5cd2be0de01bff3d3a45594b495b8250748d40ff7108d6c85923d bdadcdbecca5891287a47b6dd6b2fda62e07457718aef39212503ab63bc17783
test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.ql 2ce876a04a159efce83b863dffc47fbb714b95daea2b91fa6fbb623d28eed9ec 7bca1cd0e8fbceec0e640afb6800e1780eff5b5b402e71b9b169c0ba26966f96
test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.ql 655db9a0501b1ef20d604cc4cd9d708371781291443e8dec97b70ec2914601d2 2fc7df0eca22dcef2f9f5c86d37ee43452d372a4c0f9f4da0194828c82ba93e0
test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getNameRef.ql 9a4829a174388e818f0c63ee6b8bdf1b68beaab48f51734ec6cc14635d24001c f57c9cdaf5235aad604f60b53ce92e73946d03a085f95ed051a26683967be4ba
test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.ql 77407ac956c897ff7234132de1a825f1af5cfd0b6c1fd3a30f64fe08813d56db d80719e02d19c45bd6534c89ec7255652655f5680199854a0a6552b7c7793249
test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCanonicalPath.ql 7c1692b433e4580a3eadfa75b0881d931bfa398291aebfbf6acbb4fc49b7f1c2 554275f8d13e95c35f5c529f3c43e7d10f7fdeb524c47dba6a42229922736734
test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.ql c22504665900715e8a32dd47627111e8cef4ed2646f74a8886dead15fbc85bb5 d92462cf3cb40dcd383bcaffc67d9a43e840494df9d7491339cbd09a0a73427b
test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.ql 9e7bbb7ed60db49b45c3bdf8e01ec58de751889fc394f59ac33f9d6e98200aa1 c055d877e2ff0edc78cce6dd79c78b2881e7940889729cbb5c12e7029ddeb5a3
test/extractor-tests/generated/Module/Module.ql 4bc4d74921a5af94b124a5010cdf6908cdc9ecf26124e354155fba781009071f acca26579b087ce1fc674703c4d95d8d353075d3021c464d2f3fc06891716774
test/extractor-tests/generated/Module/Module.ql 4fded57dcf8d704f571c200e8c8b65f935a838cf1f44152a9fbe3f05afd868ca aa09e9a1948847265c0fec9011986034d0963e97fbcc51abbefa05a4e9a877d9
test/extractor-tests/generated/Module/Module_getAttr.ql b97ae3f5175a358bf02c47ec154f7c2a0bd7ca54d0561517008d59344736d5cd f199116633c183826afa9ab8e409c3bf118d8e626647dbc617ae0d40d42e5d25
test/extractor-tests/generated/Module/Module_getCanonicalPath.ql d700ee897697745c08fcf6cfbaf979b621f51bf2e221a4a99b59518f9bf6105f 947338c5590db48733a331e870e58a9eb78e0dca75e463dccff162a437483e78
test/extractor-tests/generated/Module/Module_getCrateOrigin.ql ff479546bf8fe8ef3da60c9c95b7e8e523c415be61839b2fff5f44c146c4e7df b14d3c0577bd6d6e3b6e5f4b93448cdccde424e21327a2e0213715b16c064a52
test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.ql 55c5b633d05ddbe47d324535a337d5dfed5913ab23cdb826424ddd22009a2a53 ab9e11e334e99be0d4c8d2bd0580657211d05feeeb322fbb5400f07264219497
test/extractor-tests/generated/Module/Module_getItemList.ql 59b49af9788e9d8b5bceaeffe3c3d203038abd987880a720669117ac3db35388 9550939a0e07b11892b38ca03a0ce305d0e924c28d27f25c9acc47a819088969
@@ -911,13 +975,15 @@ test/extractor-tests/generated/ParenPat/ParenPat_getPat.ql 96f3db0ec4e71fd870619
test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql a96bb8b51d8c0c466afc1c076834fa16edf7e67fffe2f641799850dee43099a2 0e6c375e621b7a7756d39e8edd78b671e53d1aac757ac54a26747fe5259c5394
test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr_getTypeRepr.ql 64fe4ea708bc489ba64ed845f63cfbcd57c1179c57d95be309db37eac2f5eb71 0f4cbbfdf39d89830b5249cabf26d834fc2310b8a9579c19383c90cb4333afb7
test/extractor-tests/generated/Path/Path.ql 2bdcd99b3b5ffc83ac47d8cc27a4561d616bcf06844f0c452c699cd10ee640ca 5a7d7ffb8b0c04d6a8cbb2a953761df8561b796c4372bef1bd55c359b2f19911
test/extractor-tests/generated/Path/PathExpr.ql 5039fe730998a561f51813a0716e18c7c1d36b6da89936e4cfbdb4ef0e895560 cd3ddf8ab93cd573381807f59cded7fb3206f1dbdff582490be6f23bed2d6f29
test/extractor-tests/generated/Path/PathExpr.ql 3697b6d8d332325fb980bf86706d58aa1805074bc46104626437e89afdaf3202 b5c5b09493198b66140ffe9c48d0790a40573109e9fe615cded6b6887551fa49
test/extractor-tests/generated/Path/PathExpr_getAttr.ql 2ccac48cd91d86670c1d2742de20344135d424e6f0e3dafcc059555046f92d92 9b7b5f5f9e3674fad9b3a5bcd3cabc0dff32a95640da0fce6f4d0eb931f1757d
test/extractor-tests/generated/Path/PathExpr_getPath.ql e7894071313a74166bdd31d7cd974037fcd5a7f0e92d5eec42833266196eb858 46a06e8a1207e7a0fa175cd4b61068e5fd6c43b5575b88986409f0ac2be64c51
test/extractor-tests/generated/Path/PathExpr_getResolvedCanonicalPath.ql c6ba7bea708fbd8137767b813c8008fbb367eda1a9a9ab2b35f6cd4ff9915522 029bcde2f10d3e17d9e092dd49be9d6956e51dbfaed78911c70a65dea0b78300
test/extractor-tests/generated/Path/PathExpr_getResolvedCrateOrigin.ql a68a1f0d865d10c955f7ab1fd7614b517e660553b65fabb9daa8f302adbc2602 c47480d6440ae63be27d8158a35536a8d9051817dec1521cdcab297ddb52e1ae
test/extractor-tests/generated/Path/PathExpr_getResolvedPath.ql dfa55fe480da0df37670660fc1c54b6c38d47365353bc9d4f662183b33d4e80f 1b18329a7b60805fc073df3149c48f39aa66924d7eefedecbca36a2b170a7fbe
test/extractor-tests/generated/Path/PathPat.ql 6b9d973009f1b4963c7c83b0f5051eda7a76c8fb4a789217b4a25cbab0cdb274 57f0621dd3657b6f4630d5406816effcc6bc1b03361aa12e118e807e28e9e71b
test/extractor-tests/generated/Path/PathPat.ql 37a5644f9e62162d1401caee64f919be0f649ecef6ab5124efe24a63d83c16d7 3753481030deb70da69aaef721693a4b08fd9d9e7bfa08bfe476e5656a2e836a
test/extractor-tests/generated/Path/PathPat_getPath.ql 6c0c71c80a6e631ea7775ec8660b470ff6b264bab14a399606cf113b1fb190fc 8e34cbb4d064db929e94652e1901ec4f26affa71e30e556b7acdff71dd622cbb
test/extractor-tests/generated/Path/PathPat_getResolvedCanonicalPath.ql 5fb21b11e054054947f1c7b52b985e90a5ddb0e93915b48af68ae15888960b36 e3cb25aab7053cc2b9fe2966cfa6c43677cdf177f1515efb0634228be8fc076b
test/extractor-tests/generated/Path/PathPat_getResolvedCrateOrigin.ql f690fd9a8773e7c73b70f2d64ee919fef8eee243c5a315c4a6d2713d43ea0e43 f37817427c36cec14a2e07f99d3a32f37f3f27a8eafdf170749ec2780054729b
test/extractor-tests/generated/Path/PathPat_getResolvedPath.ql 55df4541a7b0e82198acfcedd7dc99eb564908270e4fb2b032bf05e40fba6fef a5932d884903da901263f88644c8585a45045190d7204f630506c5aece798288
test/extractor-tests/generated/Path/PathSegment.ql be9d62d38b0c7f8b5a8ea86dcb18c62f24930f5931f52e6073414f291d8c0451 31288b7728d45715acf6ab751b833b29473a74d54d9b26f83a73d8c91e3c82da
@@ -947,9 +1013,10 @@ 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/RecordExpr/RecordExpr.ql 220f7f766587dc9df1c6f81a1cda3d19d7d5e92a31c63752061297e1adf96bf0 792bbe4503adcb63f7ac0f11259bb60a8ce05538ba1676f141989a73ff4eb5c0
test/extractor-tests/generated/RecordExpr/RecordExpr.ql f86fb45c56cce41e868e86bfedcba8899b4de31094b59e9e7a8ba6598cb40051 340bc619c7b81427fe7f66118d51727331a1b4c63e41ba5b101489999945d561
test/extractor-tests/generated/RecordExpr/RecordExpr_getPath.ql 2eb8f7591f08199d124732d7f2d7dd3e81792a52f8e6c90003aa0609923f8cb0 27e245224d6c9aa20023b418ce8dffff1293b50a0e10938932631fca7c559e78
test/extractor-tests/generated/RecordExpr/RecordExpr_getRecordExprFieldList.ql 6d3d872eb64ff8cd7317190f9b2627d3fa6a74976e362cfb49e21c6623d63f82 d98b07f932ecb25a427e655017de47f951d3eabc4eedbc6f873571ce8921e9ff
test/extractor-tests/generated/RecordExpr/RecordExpr_getResolvedCanonicalPath.ql 0df6c5d228c02ad9d676829d3a86e7c099a4a1e506e1bf016bf6d4da40dc408b 50fea626f0969ea9107c59a38339926a92b5d3170e46293d1f737a4eaeb01d68
test/extractor-tests/generated/RecordExpr/RecordExpr_getResolvedCrateOrigin.ql 87d463c7950407c86783b9ccbcf6daa4f62f5fcb75bc20f1879bde9240281d4d 5659b4fb8b25cd998211aa3edb11188b3c487cabaf7a09989ce6fe0e4f67ba25
test/extractor-tests/generated/RecordExpr/RecordExpr_getResolvedPath.ql 0de885c7efdd257ee44d2c8a2ad91e419d604517471966059ddae321e80597b6 7977fb7a8c954733dbb5cf8378d6103688d16bc4c9b891c68098d0ec224429b4
test/extractor-tests/generated/RecordExprField/RecordExprField.ql 62ee00e478fcf07421b5989943a487ecc0c99cf50ec87f05aabe89dfb03f2a32 ad7c6ce362032e18fc9950b885c4b7b5c907e6abd2af2d13ecef84eb980027fb
@@ -967,9 +1034,10 @@ test/extractor-tests/generated/RecordField/RecordField_getTypeRepr.ql f61cfcd0c6
test/extractor-tests/generated/RecordField/RecordField_getVisibility.ql cc45e9bb9418d15cef07a1827358c3f18a8737324c8e6852591a2da70df89360 45557497fc165a212fffda71dedabc8159a4f72323430df732698a18922b366c
test/extractor-tests/generated/RecordFieldList/RecordFieldList.ql 586bccfa550243177d9fdfd6900a473f51a76ed360b537f19cb300330d5dad5b a063373dfdbf06b68c69694ea4ae72a26b906c910f9095894c09e72f8fb52819
test/extractor-tests/generated/RecordFieldList/RecordFieldList_getField.ql 2eb92ef8528204f3f105c19a36cdc06b3b6d20242463ff2ed1fb81c544812a71 d69091899e7157099f117e14fe60cd3705cfda45f28f6a6a2b7234a4a9c1e664
test/extractor-tests/generated/RecordPat/RecordPat.ql 24469c2a0902196d49249a37a0b56bf9fe62d1e7af3150813200b25ccb46dfaa 479e58d4fe6db7048e0649fd5a9c1b8ca1ceb8aa52a80dd07a999a07e32b0a3f
test/extractor-tests/generated/RecordPat/RecordPat.ql 1f7a129a923663cbc23cca2361cce4680af9463b5cf3f3b172b4fd3fc52e3cf1 39ae84851ecd512cd2777b6ed6cf12429ab5a5ba6becf25b70c9e9073c43b344
test/extractor-tests/generated/RecordPat/RecordPat_getPath.ql 187b8d44de158fc809257e28b2e8fdd246c8eb3c60115d54cd53396a320e372d 74813fd13c6f34927420ed44620743f7c80c537984e0db72c1c5f4b754b40b83
test/extractor-tests/generated/RecordPat/RecordPat_getRecordPatFieldList.ql 32e45a6f59cdb8edbf7f9326164e225a7f545fabd2dd168b660699954a999fdf 325c9121dc130459426b473691876a0698b51d5cdf4530698a398510ce8e3051
test/extractor-tests/generated/RecordPat/RecordPat_getResolvedCanonicalPath.ql c323c91c14aee44659492db28711c238c2e4b2bf5b8b6ab327fff63a5fa935dd 246b72cfa03cdf24b0189b476af748116254160f73b8511416f373826cebabaf
test/extractor-tests/generated/RecordPat/RecordPat_getResolvedCrateOrigin.ql 61a47db765e0c45797d3f92318fb6dbf07dfe1a2e63704294c58d49cb0894676 86a636746458053278a8ba0be062a9b1cfcad4866e065a8317fa8f033518ecae
test/extractor-tests/generated/RecordPat/RecordPat_getResolvedPath.ql 0221208e93c4a26e555dd848238b4f5bcabf2ccf3fc38ceb2eef45c39d67b21a 37d80014a21a19e9132ad645a17234e33bb20f2352b450277b8fa919a54b95e9
test/extractor-tests/generated/RecordPatField/RecordPatField.ql 6c51343258e56673d21b7ae73e7de011319ffa2eb65390e697f875bb428d25d1 82c3232db0cb353140618749b1cba5549b0ff43cbbaafb203077e18dbedb2c10
@@ -1009,9 +1077,10 @@ test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.ql a6604f
test/extractor-tests/generated/SourceFile/SourceFile.ql c30a3c2c82be3114f3857295615e2ec1e59c823f0b65ea3918be85e6b7adb921 6a5bbe96f81861c953eb89f77ea64d580f996dca5950f717dd257a0b795453e6
test/extractor-tests/generated/SourceFile/SourceFile_getAttr.ql 450404306b3d991b23c60a7bb354631d37925e74dec7cc795452fe3263dc2358 07ffcc91523fd029bd599be28fe2fc909917e22f2b95c4257d3605f54f9d7551
test/extractor-tests/generated/SourceFile/SourceFile_getItem.ql f17e44bc0c829b2aadcb6d4ab9c687c10dc8f1afbed4e5190404e574d6ab3107 1cf49a37cc32a67fdc00d16b520daf39143e1b27205c1a610e24d2fe1a464b95
test/extractor-tests/generated/Static/Static.ql b633f189040bc9d0592b77440b5b161b5c69cab97c4f47ef2c3754671fab0fc2 8dba58a18a217b741a7c474bffe0b3ab524cba8e1e4d6ddb22181170d2971fca
test/extractor-tests/generated/Static/Static.ql dc4b6a3a1abd5577564bf4bfe8d2bc71f7e8cfc1d98f99cd192dde66b4e60e53 ef55486d1a47d51ca2d86972ad6f0a6db8954e3073946723e4dff76c6035440e
test/extractor-tests/generated/Static/Static_getAttr.ql adb0bbf55fb962c0e9d317fd815c09c88793c04f2fb78dfd62c259420c70bc68 d317429171c69c4d5d926c26e97b47f5df87cf0552338f575cd3aeea0e57d2c2
test/extractor-tests/generated/Static/Static_getBody.ql e735bbd421e22c67db792671f5cb78291c437621fdfd700e5ef13b5b76b3684d 9148dc9d1899cedf817258a30a274e4f2c34659140090ca2afeb1b6f2f21e52f
test/extractor-tests/generated/Static/Static_getCanonicalPath.ql b259ce842d2286f6c36b0a942dd724ef447c886cc2e1aeb51359a933800b959c 2a5a035ca6c6dc2411c929652739630a23042600d32fe7e0f22135a1227f75b4
test/extractor-tests/generated/Static/Static_getCrateOrigin.ql f24ac3dac6a6e04d3cc58ae11b09749114a89816c28b96bf6be0e96b2e20d37f e4051426c5daa7e73c1a5a9023d6e50a2b46ebf194f45befbe3dd45e64831a55
test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.ql 6ec02f7ec9cf4cb174a7cdf87921758a3e798c76171be85939614305d773b6a0 c51567dac069fc67ece0aa018ae6332187aa1145f33489093e4aee049d7cea52
test/extractor-tests/generated/Static/Static_getName.ql c7537e166d994b6f961547e8b97ab4328b78cbd038a0eb9afaae42e35f6d9cb4 bb5ae24b85cd7a8340a4ce9e9d56ec3be31558051c82257ccb84289291f38a42
@@ -1021,8 +1090,9 @@ test/extractor-tests/generated/StmtList/StmtList.ql 0010df0d5e30f7bed3bd5d916faf
test/extractor-tests/generated/StmtList/StmtList_getAttr.ql 78d4bf65273498f04238706330b03d0b61dd03b001531f05fcb2230f24ceab64 6e02cee05c0b9f104ddea72b20097034edb76e985188b3f10f079bb03163b830
test/extractor-tests/generated/StmtList/StmtList_getStatement.ql abbc3bcf98aab395fc851d5cc58c9c8a13fe1bdd531723bec1bc1b8ddbec6614 e302a26079986fa055306a1f641533dfde36c9bc0dd7958d21e2518b59e808c2
test/extractor-tests/generated/StmtList/StmtList_getTailExpr.ql 578d7c944ef42bdb822fc6ce52fe3d49a0012cf7854cfddbb3d5117133700587 64ea407455a3b4dfbb86202e71a72b5abbff885479367b2834c0dd16d1f9d0ee
test/extractor-tests/generated/Struct/Struct.ql 14dc5ead6bed88c2c79d9fd3874198f845d8202290b0931b2d2375c0a397c44a 408b07b6bb40ca09f51d2becd94501cc2b95ec52e04ccc2703c2e25d6577b4c6
test/extractor-tests/generated/Struct/Struct.ql a844cf71f1fc524d790f21640893aad3e39b750cd9942744272a517a428ad370 a1df901751d1930737d59c272d8d0c11dc956f506a38982d179bee9008819ca5
test/extractor-tests/generated/Struct/Struct_getAttr.ql 028d90ddc5189b82cfc8de20f9e05d98e8a12cc185705481f91dd209f2cb1f87 760780a48c12be4581c1675c46aae054a6198196a55b6b989402cc29b7caf245
test/extractor-tests/generated/Struct/Struct_getCanonicalPath.ql c3c09ee605cade0f250818db21abce9311c8b0ada4687dc8b0de0275ae3bc3ad 4e64a3fbe2e95ebd50d4f66ad0c2b6ab1ec89795faef9a1efb06995786fd2b7a
test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql 289622244a1333277d3b1507c5cea7c7dd29a7905774f974d8c2100cea50b35f d32941a2d08d7830b42c263ee336bf54de5240bfc22082341b4420a20a1886c7
test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql 866a5893bd0869224fb8aadd071fba35b5386183bb476f5de45c9de7ab88c583 267aedc228d69e31ca8e95dcab6bcb1aa30f9ebaea43896a55016b7d68e3c441
test/extractor-tests/generated/Struct/Struct_getFieldList.ql f45d6d5d953741e52aca67129994b80f6904b2e6b43c519d6d42c29c7b663c42 77a7d07e8462fa608efc58af97ce8f17c5369f9573f9d200191136607cb0e600
@@ -1034,9 +1104,10 @@ test/extractor-tests/generated/TokenTree/TokenTree.ql ba2ef197e0566640b57503579f
test/extractor-tests/generated/Trait/AssocItemList.ql 0ea572b1350f87cc09ce4dc1794b392cc9ad292abb8439c106a7a1afe166868b 6e7493a3ace65c68b714e31234e149f3fc44941c3b4d125892531102b1060b2f
test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.ql 8149d905f6fc6caeb51fa1ddec787d0d90f4642687461c7b1a9d4ab93a27d65d 8fb9caad7d88a89dd71e5cc8e17496afbdf33800e58179f424ef482b1b765bb1
test/extractor-tests/generated/Trait/AssocItemList_getAttr.ql 06526c4a28fd4fdce04ca15fbadc2205b13dcc2d2de24177c370d812e02540e6 79c8ce6e1f8acc1aaca498531e2c1a0e7e2c0f2459d7fc9fe485fd82263c433f
test/extractor-tests/generated/Trait/Trait.ql e88ff04557cf050a5acb5038537bb4f7a444c85721eaf3e0aa4c10e7e7724c56 e37b9e60fa8cc64ef9e8db1707d2d8c5a62f9804233c939b4aaa39762b9b0a9a
test/extractor-tests/generated/Trait/Trait.ql 3572861043991a88a9b7b04aba44823e3854bd06ffddca2b335e9f4e62c39848 a2ed34bd1ff46216289dd0bbdfcd431ef414d8a3e9113a016dabd6fbc260aa12
test/extractor-tests/generated/Trait/Trait_getAssocItemList.ql 05e6896f60afabf931a244e42f75ee55e09c749954a751d8895846de3121f58f def1f07d9945e8d9b45a659a285b0eb72b37509d20624c88e0a2d34abf7f0c72
test/extractor-tests/generated/Trait/Trait_getAttr.ql 9711125fa4fc0212b6357f06d1bc50df50b46168d139b649034296c64d732e21 901b6a9d04055b563f13d8742bd770c76ed1b2ccf9a7236a64de9d6d287fbd52
test/extractor-tests/generated/Trait/Trait_getCanonicalPath.ql 2ff57c8006af1e2d2746d83f8500f5fec109548443677dbb2627ff9b9cbcaf82 2f48643287bfe8081930521cc0282b2a27e62bd9c332971ca8dd6b2c007fe05f
test/extractor-tests/generated/Trait/Trait_getCrateOrigin.ql d8433d63bb2c4b3befaaedc9ce862d1d7edcdf8b83b3fb5529262fab93880d20 3779f2678b3e00aac87259ecfe60903bb564aa5dbbc39adc6c98ad70117d8510
test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.ql a2bd16e84f057ed8cb6aae3e2a117453a6e312705302f544a1496dbdd6fcb3e6 b4d419045430aa7acbc45f8043acf6bdacd8aff7fdda8a96c70ae6c364c9f4d1
test/extractor-tests/generated/Trait/Trait_getGenericParamList.ql b27ff28e3aff9ec3369bbbcbee40a07a4bd8af40928c8c1cb7dd1e407a88ffee 2b48e2049df18de61ae3026f8ab4c3e9e517f411605328b37a0b71b288826925
@@ -1044,8 +1115,9 @@ test/extractor-tests/generated/Trait/Trait_getName.ql d4ff3374f9d6068633bd125ede
test/extractor-tests/generated/Trait/Trait_getTypeBoundList.ql 8a4eb898424fe476db549207d67ba520999342f708cbb89ee0713e6bbf1c050d 69d01d97d161eef86f24dd0777e510530a4db5b0c31c760a9a3a54f70d6dc144
test/extractor-tests/generated/Trait/Trait_getVisibility.ql 8f4641558effd13a96c45d902e5726ba5e78fc9f39d3a05b4c72069993c499f4 553cf299e7d60a242cf44f2a68b8349fd8666cc4ccecab5ce200ce44ad244ba9
test/extractor-tests/generated/Trait/Trait_getWhereClause.ql b34562e7f9ad9003d2ae1f3a9be1b5c141944d3236eae3402a6c73f14652e8ad 509fa3815933737e8996ea2c1540f5d7f3f7de21947b02e10597006967efc9d1
test/extractor-tests/generated/TraitAlias/TraitAlias.ql 8870048164ba3c3ea8d4c10e5793d860a4ed3ef0890bf32409827321ddde4b72 9a912ebba80977656e74e1d94478c193164684f01371e23f09817231b58007ff
test/extractor-tests/generated/TraitAlias/TraitAlias.ql 2276b69235768d5e7454694efd3394f7b00103380597264db92bf0ee06a7433f 41d8a95224cbb359838cabbb0b4dd0f77809024e44c252b5c22505df9648ead3
test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.ql 128c24196bfa6204fffd4154ff6acebd2d1924bb366809cdb227f33d89e185c8 56e8329e652567f19ef7d4c4933ee670a27c0afb877a0fab060a0a2031d8133e
test/extractor-tests/generated/TraitAlias/TraitAlias_getCanonicalPath.ql f8491de4aa92f5d5f0ad4b91625f60a8d53eb3a02893b7f468dcf1e9065492a2 d2fad385018764ad9f962e1ec8e98b20286d4c2188ba975e5ec96b24cf747a6e
test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.ql 303212122021da7f745050c5de76c756461e5c6e8f4b20e26c43aa63d821c2b6 fdbd024cbe13e34265505147c6faffd997e5c222386c3d9e719cd2a385bde51c
test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.ql 601b6b0e5e7e7f2926626866085d9a4a9e31dc575791e9bd0019befc0e397193 9bd325414edc35364dba570f6eecc48a8e18c4cbff37d32e920859773c586319
test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.ql 5a40c1760fcf5074dc9e9efa1a543fc6223f4e5d2984923355802f91edb307e4 9fd7ab65c1d6affe19f96b1037ec3fb9381e90f602dd4611bb958048710601fa
@@ -1067,15 +1139,17 @@ test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql 7dc88440222ff036
test/extractor-tests/generated/TupleFieldList/TupleFieldList_getField.ql ad552a9c0b9964d1770f14cabbb436db60ebedc3c569006542a8eae9ddb30f6d 3a8c49d629376a9b8326138836b05ee2366b1021ffd19f5be74ab023e70aa50d
test/extractor-tests/generated/TuplePat/TuplePat.ql 24ee56bc848537da65eb8ecef71e84cc351a2aedcc31d6fb53a5b7865f15f7c2 81db1076e2e4921ceb50933b96cd7b574caab1818de257c1e9038f3f97447d59
test/extractor-tests/generated/TuplePat/TuplePat_getField.ql f000bed41af031bc56d0705ce312abe7ab3dc6745b2936798c9938781e51475e f464a84dbc36aa371d60d6db68d6251f6b275dc4ecebdc56f195637be390b067
test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql 967409c7bddd7fc8d0b9fdfab2f5e6c82e8b4ff57020822aa0cda177244dfbc5 eaf0b7e56c38db60fafb39f8de75b67ee1099ac540fa92b5dfe84b601d31781a
test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql 4b3eebdef05fd2ccb3c4be56eee1e89a07775f45dbc82f69dc4096682674a187 84a6994f0c0dd313acf2b4c4c7066ee94af2db8d066c68d15b9c3955c98a2db4
test/extractor-tests/generated/TupleStructPat/TupleStructPat_getField.ql f3f2e23cc2a32aa5abc1e0fda1300dab1693230632b9eaa75bb3b1e82ee9ea1a 24b87a39ec639a26ff8c1d04dc3429b72266b2a3b1650a06a7cd4387b6f0e615
test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.ql 13a06696bbf1fa8d5b73107e28cdba40e93da04b27f9c54381b78a52368d2ad1 5558c35ea9bb371ad90a5b374d7530dd1936f83e6ba656ebfbfd5bd63598e088
test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCanonicalPath.ql 91b4b1b562c33a07ff3007346c4cb9833149263dd196995b3b0e00894abb87f7 fa8c8d6b34277d53bf5ff211c54e1a634d0c215288185802fc3fbdd19c945f22
test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOrigin.ql e409667233331a038e482de4b2669d9fac9d7eb0e3bd5580ea19828f0c4ed7ad 588e4628471f1004575900d7365490efcf9168b555ff26becfc3f27b9e657de3
test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.ql 150898b6e55cc74b9ddb947f136b5a7f538ee5598928c5724d80e3ddf93ae499 66e0bd7b32df8f5bbe229cc02be6a07cb9ec0fe8b444dad3f5b32282a90551ee
test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql 2f99917a95a85a932f423cba5a619a51cada8e704b93c54b0a8cb5d7a1129fa1 759bd02347c898139ac7dabe207988eea125be24d3e4c2282b791ec810c16ea7
test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.ql 615acfcbc475b5c2ffa8e46d023fc2e19d29ee879b4949644a7f0b25c33125e6 81b037af5dcb8a0489a7a81a0ad668ca781b71d4406c123c4f1c4f558722f13e
test/extractor-tests/generated/TypeAlias/TypeAlias.ql 637d4c982691942fabcc99ef4a1765ec794d1271bdd376addb55c9d7ea31230e ef81773e2f1260f66f23ce537080c3273b1cf74f96fba37403d34dc1ee1e0458
test/extractor-tests/generated/TypeAlias/TypeAlias.ql ae1e918dca09e31f64cd7c764b51fc61e3849d728cc8b63f15ad55c5c97fe755 c3b4fc5973b436b3c87d303cdaf93cfd7f91675d0e08ce405c51713b4bbd7607
test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.ql ecf4b45ef4876e46252785d2e42b11207e65757cdb26e60decafd765e7b03b49 21bb4d635d3d38abd731b9ad1a2b871f8e0788f48a03e9572823abeea0ea9382
test/extractor-tests/generated/TypeAlias/TypeAlias_getCanonicalPath.ql b0872bf645d780a2d3fa048b0e9958acab8453e177f571512e1f7963c466f5e0 c60a61b71f691132ffcc88d67038d7cdb0df5dee9940321f6e084845dd82e91d
test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.ql cd66db5b43bcb46a6cf6db8c262fd524017ef67cdb67c010af61fab303e3bc65 2aebae618448530ec537709c5381359ea98399db83eeae3be88825ebefa1829d
test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.ql fe9c4132e65b54eb071b779e508e9ed0081d860df20f8d4748332b45b7215fd5 448c10c3f8f785c380ce430996af4040419d8dccfa86f75253b6af83d2c8f1c9
test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.ql e7e936458dce5a8c6675485a49e2769b6dbff29c112ed744c880e0fc7ae740ef e5fcf3a33d2416db6b0a73401a3cbc0cece22d0e06794e01a1645f2b3bca9306
@@ -1099,8 +1173,9 @@ test/extractor-tests/generated/TypeParam/TypeParam_getName.ql 9d5b6d6a9f2a5793e2
test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.ql 080a6b370ad460bf128fdfd632aa443af2ad91c3483e192ad756eb234dbfa4d8 8b048d282963f670db357f1eef9b8339f83d03adf57489a22b441d5c782aff62
test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql 4ad6ed0c803fb4f58094a55b866940b947b16259756c674200172551ee6546e0 d3270bdcc4c026325159bd2a59848eb51d96298b2bf21402ea0a83ac1ea6d291
test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.ql d8502be88bcd97465f387c410b5078a4709e32b2baa556a4918ea5e609c40dd7 b238dc37404254e3e7806d50a7b1453e17e71da122931331b16a55853d3a843f
test/extractor-tests/generated/Union/Union.ql 1049e542ca7723490d05e20b5a7a5867f74a5126395f333eae512aeb05efefd6 1f1cd82337e7ade9d02d16123201bbff62983c537672b5c1babfe6b65d300e82
test/extractor-tests/generated/Union/Union.ql 3b1e67ab43881389cabcde0e8db4153c4b21b405130d0c21e6c753f0bcc5f5a5 3c049d0935668539b23c54a90f2c8f874cb8a070018b2c63208f979c5f41dd9c
test/extractor-tests/generated/Union/Union_getAttr.ql 42fa0878a6566208863b1d884baf7b68b46089827fdb1dbbfacbfccf5966a9a2 54aa94f0281ca80d1a4bdb0e2240f4384af2ab8d50f251875d1877d0964579fc
test/extractor-tests/generated/Union/Union_getCanonicalPath.ql a08fb3f3305be82ffca880bd66b6b938783b23d5d4ef5f404f79df27c306fa8f c435480ae375a559b02c1a459c04a95e7aaab617cf5168c14f634946bccdb1dc
test/extractor-tests/generated/Union/Union_getCrateOrigin.ql c218308cf17b1490550229a725542d248617661b1a5fa14e9b0e18d29c5ecc00 e0489242c8ff7aa4dbfdebcd46a5e0d9bea0aa618eb0617e76b9b6f863a2907a
test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql 6268ddb68c3e05906e3fc85e40635925b84e5c7290746ded9c6814d362033068 04473b3b9891012e95733463018db8da0e96659ea0b10458b33dc857c091d278
test/extractor-tests/generated/Union/Union_getGenericParamList.ql c55156ae26b766e385be7d21e67f8c3c45c29274201c93d660077fcc47e1ceee 4c4d338e17c32876ef6e51fd19cff67d125dd89c10e939dfaadbac824bef6a68
@@ -1108,8 +1183,9 @@ test/extractor-tests/generated/Union/Union_getName.ql 17247183e1a8c8bbb15e67120f
test/extractor-tests/generated/Union/Union_getRecordFieldList.ql ded2890094adaa627be35f2a8335abbe5c1d4b5dcf1671f09f504546148cc02e 1f0d94a5c3259b8c39f2a78f1f9250655c6183a5277131a7f3de14126eee6d03
test/extractor-tests/generated/Union/Union_getVisibility.ql 86628736a677343d816e541ba76db02bdae3390f8367c09be3c1ff46d1ae8274 6514cdf4bfad8d9c968de290cc981be1063c0919051822cc6fdb03e8a891f123
test/extractor-tests/generated/Union/Union_getWhereClause.ql 508e68ffa87f4eca2e2f9c894d215ea76070d628a294809dc267082b9e36a359 29da765d11794441a32a5745d4cf594495a9733e28189d898f64da864817894f
test/extractor-tests/generated/Use/Use.ql b20f6221e6ee731718eb9a02fa765f298ad285f23393a3df0119707c48edd8b3 9ab45d9b3c51c6181a6609b72ebd763c336fee01b11757e7f044257510bd7f3f
test/extractor-tests/generated/Use/Use.ql b83d07a0650e9cd4a0bdf44e3912e80e504ae4d7824d614701e5b7e92b5b1bb9 4522d642a171d1783895a821b1292214e4a68bdc1edb94e61b930646fe0e7133
test/extractor-tests/generated/Use/Use_getAttr.ql 6d43c25401398108553508aabb32ca476b3072060bb73eb07b1b60823a01f964 84e6f6953b4aa9a7472082f0a4f2df26ab1d157529ab2c661f0031603c94bb1d
test/extractor-tests/generated/Use/Use_getCanonicalPath.ql 091e3cd46980ed847b9b2716ae53da0c62da7f3d5a040c112c77639bbd7f7335 924893d23c76c1c21228d5083a34991c40146f2f67be26e2648b7e33e2e3785d
test/extractor-tests/generated/Use/Use_getCrateOrigin.ql 912ebc1089aa3390d4142a39ea73d5490eae525d1fb51654fdd05e9dd48a94b6 c59e36362016ae536421e6d517889cea0b2670818ea1f9e997796f51a9b381e2
test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.ql ccfde95c861cf4199e688b6efeeee9dab58a27cfecd520e39cc20f89143c03c9 6ff93df4134667d7cb74ae7efe102fe2db3ad4c67b4b5a0f8955f21997806f16
test/extractor-tests/generated/Use/Use_getUseTree.ql 1dfe6bb40b29fbf823d67fecfc36ba928b43f17c38227b8eedf19fa252edf3af aacdcc4cf418ef1eec267287d2af905fe73f5bcfb080ef5373d08da31c608720
@@ -1120,8 +1196,9 @@ test/extractor-tests/generated/UseTree/UseTree_getRename.ql ec3917501f3c89ac4974
test/extractor-tests/generated/UseTree/UseTree_getUseTreeList.ql c265a88347e813840969ae934dfd2904bc06f502de77709bc0b1c7255e46382a 52a239c8ea5fd8fbfbd606559d70ecadc769887437a9bcab6fb3e774208ad868
test/extractor-tests/generated/UseTreeList/UseTreeList.ql cd943c15c86e66244caafeb95b960a5c3d351d5edbd506258744fb60a61af3b2 cfa584cd9d8aa08267fd1106745a66226b2c99fadd1da65059cc7ecf2f2e68cf
test/extractor-tests/generated/UseTreeList/UseTreeList_getUseTree.ql dd72966b1cb7b04f0267503013809063fcfb145e2b2d7d5250d9f24d2e405f9a 75b953aa11c51ca0fe95e67d50d6238962d8df4a4b9054999a2c6338e5a5613d
test/extractor-tests/generated/Variant/Variant.ql c60dd31adac91e09f8b1e5523d6b859747e64ef072c077b5a3326763f9f461f7 55d6446a3a831ed1137264678c5df027eb94cb3570a88d364994851fe6236999
test/extractor-tests/generated/Variant/Variant.ql 374b0fd9e992acbdf2b58015681dcb9167bed4e2a64e4b22b8088f47ca2f8730 5af7e9b34b0e45bdee91a9cd4724805b2e9051df43c9e66fafc0f6dfc2b86d80
test/extractor-tests/generated/Variant/Variant_getAttr.ql dd38e48e1eb05ce280b880652a90010eb63f7de3be7232411ba6265691249420 f8980680104de1e5fd40f264d8d62346aacaf6403a5e051f6fd680e234c82c1f
test/extractor-tests/generated/Variant/Variant_getCanonicalPath.ql b8177f13ba56964ff621016395b7095daf3121fd21f6a5db5104f21c8d388774 64aae1b34f459bff5edf483ff4f7407bea218c12df7ed4e6d54974f6fc7a77bb
test/extractor-tests/generated/Variant/Variant_getCrateOrigin.ql 99e79930f8ff87a25f256926e5c3ce1ee0847daf6fadc5445fb33c85328b4c61 2dd64a53813790654c83be25b5e175c9c5b388e758723c2138fff095353fdd7b
test/extractor-tests/generated/Variant/Variant_getExpr.ql ce00af303d28f60c5fd1dc7df628c7974aced21884e223a2f656cb4f0d1a74d5 9de51a65510cf9a15801d4207b616915bd959c95ec7330fdb502c5dff5b650cc
test/extractor-tests/generated/Variant/Variant_getExtendedCanonicalPath.ql fe6a4bfd1440e7629d47283910de84c5e8c2f5645512780e710f53540b5bc886 b1e31b765cb1a5fe063abb8c1b2115e881ae28aa3ccd39e088ff8f2af20d6cf4

81
rust/ql/.gitattributes generated vendored
View File

@@ -174,6 +174,42 @@
/lib/codeql/rust/elements/WildcardPat.qll linguist-generated
/lib/codeql/rust/elements/YeetExpr.qll linguist-generated
/lib/codeql/rust/elements/YieldExpr.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/BuiltinTypeCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/CanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/CanonicalPathElement.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/ConcreteTypeCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/ConstGenericTypeArg.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/CrateRoot.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/DerivedTypeCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/ImplItemCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/LangCrateRoot.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/ModuleItemCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/Namespace.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/ParametrizedCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/PlaceholderTypeCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/RepoCrateRoot.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/RustcCrateRoot.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/TypeCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/TypeGenericArg.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/TypeGenericTypeArg.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/TypeItemCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/BuiltinTypeCanonicalPathConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/BuiltinTypeCanonicalPathImpl.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/CanonicalPathImpl.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/ConcreteTypeCanonicalPathConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/ConstGenericTypeArgConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/DerivedTypeCanonicalPathConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/ImplItemCanonicalPathConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/LangCrateRootConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/ModuleItemCanonicalPathConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/NamespaceConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/ParametrizedCanonicalPathConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/PlaceholderTypeCanonicalPathConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/RepoCrateRootConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/RustcCrateRootConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/TypeCanonicalPathImpl.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/TypeGenericTypeArgConstructor.qll linguist-generated
/lib/codeql/rust/elements/canonical_paths/internal/TypeItemCanonicalPathConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/AbiConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/AbiImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/AddressableImpl.qll linguist-generated
@@ -362,7 +398,6 @@
/lib/codeql/rust/elements/internal/StmtListConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/StmtListImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/StructConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/StructImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/TokenImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/TokenTreeConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/TokenTreeImpl.qll linguist-generated
@@ -405,7 +440,6 @@
/lib/codeql/rust/elements/internal/UseTreeListConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/UseTreeListImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/VariantConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/VariantImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/VariantListConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/VariantListImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/VisibilityConstructor.qll linguist-generated
@@ -600,6 +634,25 @@
/lib/codeql/rust/elements/internal/generated/WildcardPat.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/YeetExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/YieldExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/BuiltinTypeCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/CanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/CanonicalPathElement.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/ConcreteTypeCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/ConstGenericTypeArg.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/CrateRoot.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/DerivedTypeCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/ImplItemCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/LangCrateRoot.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/ModuleItemCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/Namespace.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/ParametrizedCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/PlaceholderTypeCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/RepoCrateRoot.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/RustcCrateRoot.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/TypeCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/TypeGenericArg.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/TypeGenericTypeArg.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/canonical_paths/TypeItemCanonicalPath.qll linguist-generated
/lib/codeql/rust/elements.qll linguist-generated
/test/extractor-tests/generated/Abi/Abi.ql linguist-generated
/test/extractor-tests/generated/Abi/Abi_getAbiString.ql linguist-generated
@@ -669,6 +722,7 @@
/test/extractor-tests/generated/Const/Const.ql linguist-generated
/test/extractor-tests/generated/Const/Const_getAttr.ql linguist-generated
/test/extractor-tests/generated/Const/Const_getBody.ql linguist-generated
/test/extractor-tests/generated/Const/Const_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Const/Const_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Const/Const_getName.ql linguist-generated
@@ -690,6 +744,7 @@
/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.ql linguist-generated
/test/extractor-tests/generated/Enum/Enum.ql linguist-generated
/test/extractor-tests/generated/Enum/Enum_getAttr.ql linguist-generated
/test/extractor-tests/generated/Enum/Enum_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql linguist-generated
@@ -702,11 +757,13 @@
/test/extractor-tests/generated/ExternBlock/ExternBlock.ql linguist-generated
/test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.ql linguist-generated
/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.ql linguist-generated
/test/extractor-tests/generated/ExternBlock/ExternBlock_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.ql linguist-generated
/test/extractor-tests/generated/ExternCrate/ExternCrate.ql linguist-generated
/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.ql linguist-generated
/test/extractor-tests/generated/ExternCrate/ExternCrate_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/ExternCrate/ExternCrate_getNameRef.ql linguist-generated
@@ -749,6 +806,7 @@
/test/extractor-tests/generated/Function/Function_getAbi.ql linguist-generated
/test/extractor-tests/generated/Function/Function_getAttr.ql linguist-generated
/test/extractor-tests/generated/Function/Function_getBody.ql linguist-generated
/test/extractor-tests/generated/Function/Function_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Function/Function_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Function/Function_getGenericParamList.ql linguist-generated
@@ -773,6 +831,7 @@
/test/extractor-tests/generated/Impl/Impl.ql linguist-generated
/test/extractor-tests/generated/Impl/Impl_getAssocItemList.ql linguist-generated
/test/extractor-tests/generated/Impl/Impl_getAttr.ql linguist-generated
/test/extractor-tests/generated/Impl/Impl_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Impl/Impl_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Impl/Impl_getGenericParamList.ql linguist-generated
@@ -823,6 +882,7 @@
/test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql linguist-generated
/test/extractor-tests/generated/MacroCall/MacroCall.ql linguist-generated
/test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql linguist-generated
/test/extractor-tests/generated/MacroCall/MacroCall_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.ql linguist-generated
/test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.ql linguist-generated
@@ -832,6 +892,7 @@
/test/extractor-tests/generated/MacroDef/MacroDef_getArgs.ql linguist-generated
/test/extractor-tests/generated/MacroDef/MacroDef_getAttr.ql linguist-generated
/test/extractor-tests/generated/MacroDef/MacroDef_getBody.ql linguist-generated
/test/extractor-tests/generated/MacroDef/MacroDef_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/MacroDef/MacroDef_getName.ql linguist-generated
@@ -844,6 +905,7 @@
/test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.ql linguist-generated
/test/extractor-tests/generated/MacroRules/MacroRules.ql linguist-generated
/test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql linguist-generated
/test/extractor-tests/generated/MacroRules/MacroRules_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/MacroRules/MacroRules_getName.ql linguist-generated
@@ -878,10 +940,12 @@
/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.ql linguist-generated
/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getNameRef.ql linguist-generated
/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.ql linguist-generated
/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.ql linguist-generated
/test/extractor-tests/generated/Module/Module.ql linguist-generated
/test/extractor-tests/generated/Module/Module_getAttr.ql linguist-generated
/test/extractor-tests/generated/Module/Module_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Module/Module_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Module/Module_getItemList.ql linguist-generated
@@ -916,10 +980,12 @@
/test/extractor-tests/generated/Path/PathExpr.ql linguist-generated
/test/extractor-tests/generated/Path/PathExpr_getAttr.ql linguist-generated
/test/extractor-tests/generated/Path/PathExpr_getPath.ql linguist-generated
/test/extractor-tests/generated/Path/PathExpr_getResolvedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Path/PathExpr_getResolvedCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Path/PathExpr_getResolvedPath.ql linguist-generated
/test/extractor-tests/generated/Path/PathPat.ql linguist-generated
/test/extractor-tests/generated/Path/PathPat_getPath.ql linguist-generated
/test/extractor-tests/generated/Path/PathPat_getResolvedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Path/PathPat_getResolvedCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Path/PathPat_getResolvedPath.ql linguist-generated
/test/extractor-tests/generated/Path/PathSegment.ql linguist-generated
@@ -952,6 +1018,7 @@
/test/extractor-tests/generated/RecordExpr/RecordExpr.ql linguist-generated
/test/extractor-tests/generated/RecordExpr/RecordExpr_getPath.ql linguist-generated
/test/extractor-tests/generated/RecordExpr/RecordExpr_getRecordExprFieldList.ql linguist-generated
/test/extractor-tests/generated/RecordExpr/RecordExpr_getResolvedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/RecordExpr/RecordExpr_getResolvedCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/RecordExpr/RecordExpr_getResolvedPath.ql linguist-generated
/test/extractor-tests/generated/RecordExprField/RecordExprField.ql linguist-generated
@@ -972,6 +1039,7 @@
/test/extractor-tests/generated/RecordPat/RecordPat.ql linguist-generated
/test/extractor-tests/generated/RecordPat/RecordPat_getPath.ql linguist-generated
/test/extractor-tests/generated/RecordPat/RecordPat_getRecordPatFieldList.ql linguist-generated
/test/extractor-tests/generated/RecordPat/RecordPat_getResolvedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/RecordPat/RecordPat_getResolvedCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/RecordPat/RecordPat_getResolvedPath.ql linguist-generated
/test/extractor-tests/generated/RecordPatField/RecordPatField.ql linguist-generated
@@ -1014,6 +1082,7 @@
/test/extractor-tests/generated/Static/Static.ql linguist-generated
/test/extractor-tests/generated/Static/Static_getAttr.ql linguist-generated
/test/extractor-tests/generated/Static/Static_getBody.ql linguist-generated
/test/extractor-tests/generated/Static/Static_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Static/Static_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Static/Static_getName.ql linguist-generated
@@ -1025,6 +1094,7 @@
/test/extractor-tests/generated/StmtList/StmtList_getTailExpr.ql linguist-generated
/test/extractor-tests/generated/Struct/Struct.ql linguist-generated
/test/extractor-tests/generated/Struct/Struct_getAttr.ql linguist-generated
/test/extractor-tests/generated/Struct/Struct_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Struct/Struct_getFieldList.ql linguist-generated
@@ -1039,6 +1109,7 @@
/test/extractor-tests/generated/Trait/Trait.ql linguist-generated
/test/extractor-tests/generated/Trait/Trait_getAssocItemList.ql linguist-generated
/test/extractor-tests/generated/Trait/Trait_getAttr.ql linguist-generated
/test/extractor-tests/generated/Trait/Trait_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Trait/Trait_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Trait/Trait_getGenericParamList.ql linguist-generated
@@ -1048,6 +1119,7 @@
/test/extractor-tests/generated/Trait/Trait_getWhereClause.ql linguist-generated
/test/extractor-tests/generated/TraitAlias/TraitAlias.ql linguist-generated
/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.ql linguist-generated
/test/extractor-tests/generated/TraitAlias/TraitAlias_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.ql linguist-generated
@@ -1072,12 +1144,14 @@
/test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql linguist-generated
/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getField.ql linguist-generated
/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.ql linguist-generated
/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.ql linguist-generated
/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql linguist-generated
/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.ql linguist-generated
/test/extractor-tests/generated/TypeAlias/TypeAlias.ql linguist-generated
/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.ql linguist-generated
/test/extractor-tests/generated/TypeAlias/TypeAlias_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.ql linguist-generated
@@ -1103,6 +1177,7 @@
/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.ql linguist-generated
/test/extractor-tests/generated/Union/Union.ql linguist-generated
/test/extractor-tests/generated/Union/Union_getAttr.ql linguist-generated
/test/extractor-tests/generated/Union/Union_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Union/Union_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Union/Union_getGenericParamList.ql linguist-generated
@@ -1112,6 +1187,7 @@
/test/extractor-tests/generated/Union/Union_getWhereClause.ql linguist-generated
/test/extractor-tests/generated/Use/Use.ql linguist-generated
/test/extractor-tests/generated/Use/Use_getAttr.ql linguist-generated
/test/extractor-tests/generated/Use/Use_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Use/Use_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Use/Use_getUseTree.ql linguist-generated
@@ -1124,6 +1200,7 @@
/test/extractor-tests/generated/UseTreeList/UseTreeList_getUseTree.ql linguist-generated
/test/extractor-tests/generated/Variant/Variant.ql linguist-generated
/test/extractor-tests/generated/Variant/Variant_getAttr.ql linguist-generated
/test/extractor-tests/generated/Variant/Variant_getCanonicalPath.ql linguist-generated
/test/extractor-tests/generated/Variant/Variant_getCrateOrigin.ql linguist-generated
/test/extractor-tests/generated/Variant/Variant_getExpr.ql linguist-generated
/test/extractor-tests/generated/Variant/Variant_getExtendedCanonicalPath.ql linguist-generated

View File

@@ -177,3 +177,22 @@ import codeql.rust.elements.WhileExpr
import codeql.rust.elements.WildcardPat
import codeql.rust.elements.YeetExpr
import codeql.rust.elements.YieldExpr
import codeql.rust.elements.canonical_paths.BuiltinTypeCanonicalPath
import codeql.rust.elements.canonical_paths.CanonicalPath
import codeql.rust.elements.canonical_paths.CanonicalPathElement
import codeql.rust.elements.canonical_paths.ConcreteTypeCanonicalPath
import codeql.rust.elements.canonical_paths.ConstGenericTypeArg
import codeql.rust.elements.canonical_paths.CrateRoot
import codeql.rust.elements.canonical_paths.DerivedTypeCanonicalPath
import codeql.rust.elements.canonical_paths.ImplItemCanonicalPath
import codeql.rust.elements.canonical_paths.LangCrateRoot
import codeql.rust.elements.canonical_paths.ModuleItemCanonicalPath
import codeql.rust.elements.canonical_paths.Namespace
import codeql.rust.elements.canonical_paths.ParametrizedCanonicalPath
import codeql.rust.elements.canonical_paths.PlaceholderTypeCanonicalPath
import codeql.rust.elements.canonical_paths.RepoCrateRoot
import codeql.rust.elements.canonical_paths.RustcCrateRoot
import codeql.rust.elements.canonical_paths.TypeCanonicalPath
import codeql.rust.elements.canonical_paths.TypeGenericArg
import codeql.rust.elements.canonical_paths.TypeGenericTypeArg
import codeql.rust.elements.canonical_paths.TypeItemCanonicalPath

View File

@@ -5,6 +5,7 @@
private import internal.AddressableImpl
import codeql.rust.elements.AstNode
import codeql.rust.elements.canonical_paths.CanonicalPath
/**
* Something that can be addressed by a path.

View File

@@ -5,6 +5,7 @@
private import internal.ResolvableImpl
import codeql.rust.elements.AstNode
import codeql.rust.elements.canonical_paths.CanonicalPath
/**
* One of `PathExpr`, `RecordExpr`, `PathPat`, `RecordPat`, `TupleStructPat` or `MethodCallExpr`.

View File

@@ -0,0 +1,12 @@
// generated by codegen, do not edit
/**
* This module provides the public class `BuiltinTypeCanonicalPath`.
*/
private import internal.BuiltinTypeCanonicalPathImpl
import codeql.rust.elements.canonical_paths.TypeCanonicalPath
/**
* A canonical path for a builtin type.
*/
final class BuiltinTypeCanonicalPath = Impl::BuiltinTypeCanonicalPath;

View File

@@ -0,0 +1,12 @@
// generated by codegen, do not edit
/**
* This module provides the public class `CanonicalPath`.
*/
private import internal.CanonicalPathImpl
import codeql.rust.elements.canonical_paths.CanonicalPathElement
/**
* The base class for all canonical paths that can be the result of a path resolution.
*/
final class CanonicalPath = Impl::CanonicalPath;

View File

@@ -0,0 +1,12 @@
// generated by codegen, do not edit
/**
* This module provides the public class `CanonicalPathElement`.
*/
private import internal.CanonicalPathElementImpl
import codeql.rust.elements.Element
/**
* The base class for all elements in a canonical path.
*/
final class CanonicalPathElement = Impl::CanonicalPathElement;

View File

@@ -0,0 +1,13 @@
// generated by codegen, do not edit
/**
* This module provides the public class `ConcreteTypeCanonicalPath`.
*/
private import internal.ConcreteTypeCanonicalPathImpl
import codeql.rust.elements.canonical_paths.ParametrizedCanonicalPath
import codeql.rust.elements.canonical_paths.TypeCanonicalPath
/**
* A canonical path for an actual type.
*/
final class ConcreteTypeCanonicalPath = Impl::ConcreteTypeCanonicalPath;

View File

@@ -0,0 +1,12 @@
// generated by codegen, do not edit
/**
* This module provides the public class `ConstGenericTypeArg`.
*/
private import internal.ConstGenericTypeArgImpl
import codeql.rust.elements.canonical_paths.TypeGenericArg
/**
* A generic argument for a type that is a const.
*/
final class ConstGenericTypeArg = Impl::ConstGenericTypeArg;

View File

@@ -0,0 +1,12 @@
// generated by codegen, do not edit
/**
* This module provides the public class `CrateRoot`.
*/
private import internal.CrateRootImpl
import codeql.rust.elements.canonical_paths.CanonicalPathElement
/**
* The base class for all crate references.
*/
final class CrateRoot = Impl::CrateRoot;

View File

@@ -0,0 +1,12 @@
// generated by codegen, do not edit
/**
* This module provides the public class `DerivedTypeCanonicalPath`.
*/
private import internal.DerivedTypeCanonicalPathImpl
import codeql.rust.elements.canonical_paths.TypeCanonicalPath
/**
* A derived canonical type, like `[i32; 4]`, `&mut std::string::String` or `(i32, std::string::String)`.
*/
final class DerivedTypeCanonicalPath = Impl::DerivedTypeCanonicalPath;

View File

@@ -0,0 +1,14 @@
// generated by codegen, do not edit
/**
* This module provides the public class `ImplItemCanonicalPath`.
*/
private import internal.ImplItemCanonicalPathImpl
import codeql.rust.elements.canonical_paths.CanonicalPath
import codeql.rust.elements.canonical_paths.ParametrizedCanonicalPath
import codeql.rust.elements.canonical_paths.TypeCanonicalPath
/**
* A canonical path for an item defined in an impl (a method or associated type).
*/
final class ImplItemCanonicalPath = Impl::ImplItemCanonicalPath;

View File

@@ -0,0 +1,12 @@
// generated by codegen, do not edit
/**
* This module provides the public class `LangCrateRoot`.
*/
private import internal.LangCrateRootImpl
import codeql.rust.elements.canonical_paths.CrateRoot
/**
* A reference to a crate in the Rust standard libraries.
*/
final class LangCrateRoot = Impl::LangCrateRoot;

View File

@@ -0,0 +1,13 @@
// generated by codegen, do not edit
/**
* This module provides the public class `ModuleItemCanonicalPath`.
*/
private import internal.ModuleItemCanonicalPathImpl
import codeql.rust.elements.canonical_paths.CanonicalPath
import codeql.rust.elements.canonical_paths.Namespace
/**
* A canonical path for an item defined in a module.
*/
final class ModuleItemCanonicalPath = Impl::ModuleItemCanonicalPath;

View File

@@ -0,0 +1,13 @@
// generated by codegen, do not edit
/**
* This module provides the public class `Namespace`.
*/
private import internal.NamespaceImpl
import codeql.rust.elements.canonical_paths.CanonicalPath
import codeql.rust.elements.canonical_paths.CrateRoot
/**
* A namespace, comprised of a crate root and a possibly empty `::` separated module path.
*/
final class Namespace = Impl::Namespace;

View File

@@ -0,0 +1,11 @@
// generated by codegen, do not edit
/**
* This module provides the public class `ParametrizedCanonicalPath`.
*/
private import internal.ParametrizedCanonicalPathImpl
import codeql.rust.elements.canonical_paths.CanonicalPath
import codeql.rust.elements.canonical_paths.ModuleItemCanonicalPath
import codeql.rust.elements.canonical_paths.TypeGenericArg
final class ParametrizedCanonicalPath = Impl::ParametrizedCanonicalPath;

View File

@@ -0,0 +1,12 @@
// generated by codegen, do not edit
/**
* This module provides the public class `PlaceholderTypeCanonicalPath`.
*/
private import internal.PlaceholderTypeCanonicalPathImpl
import codeql.rust.elements.canonical_paths.TypeCanonicalPath
/**
* A placeholder for a type parameter bound in an impl.
*/
final class PlaceholderTypeCanonicalPath = Impl::PlaceholderTypeCanonicalPath;

View File

@@ -0,0 +1,13 @@
// generated by codegen, do not edit
/**
* This module provides the public class `RepoCrateRoot`.
*/
private import internal.RepoCrateRootImpl
import codeql.rust.elements.canonical_paths.CrateRoot
import codeql.files.FileSystem
/**
* A reference to a crate in the repository.
*/
final class RepoCrateRoot = Impl::RepoCrateRoot;

View File

@@ -0,0 +1,12 @@
// generated by codegen, do not edit
/**
* This module provides the public class `RustcCrateRoot`.
*/
private import internal.RustcCrateRootImpl
import codeql.rust.elements.canonical_paths.CrateRoot
/**
* A reference to a crate provided by rustc. TODO: understand where these come from.
*/
final class RustcCrateRoot = Impl::RustcCrateRoot;

View File

@@ -0,0 +1,12 @@
// generated by codegen, do not edit
/**
* This module provides the public class `TypeCanonicalPath`.
*/
private import internal.TypeCanonicalPathImpl
import codeql.rust.elements.canonical_paths.CanonicalPath
/**
* The base for canonical paths for types.
*/
final class TypeCanonicalPath = Impl::TypeCanonicalPath;

View File

@@ -0,0 +1,12 @@
// generated by codegen, do not edit
/**
* This module provides the public class `TypeGenericArg`.
*/
private import internal.TypeGenericArgImpl
import codeql.rust.elements.canonical_paths.CanonicalPathElement
/**
* A generic argument for a type.
*/
final class TypeGenericArg = Impl::TypeGenericArg;

View File

@@ -0,0 +1,13 @@
// generated by codegen, do not edit
/**
* This module provides the public class `TypeGenericTypeArg`.
*/
private import internal.TypeGenericTypeArgImpl
import codeql.rust.elements.canonical_paths.TypeCanonicalPath
import codeql.rust.elements.canonical_paths.TypeGenericArg
/**
* A generic argument for a type that is a type.
*/
final class TypeGenericTypeArg = Impl::TypeGenericTypeArg;

View File

@@ -0,0 +1,13 @@
// generated by codegen, do not edit
/**
* This module provides the public class `TypeItemCanonicalPath`.
*/
private import internal.TypeItemCanonicalPathImpl
import codeql.rust.elements.canonical_paths.CanonicalPath
import codeql.rust.elements.canonical_paths.ModuleItemCanonicalPath
/**
* A canonical path for an item defined in a type or trait.
*/
final class TypeItemCanonicalPath = Impl::TypeItemCanonicalPath;

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `BuiltinTypeCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `BuiltinTypeCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructBuiltinTypeCanonicalPath(Raw::BuiltinTypeCanonicalPath id) { any() }

View File

@@ -0,0 +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 `BuiltinTypeCanonicalPath`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.BuiltinTypeCanonicalPath
/**
* INTERNAL: This module contains the customizable definition of `BuiltinTypeCanonicalPath` and should not
* be referenced directly.
*/
module Impl {
/**
* A canonical path for a builtin type.
*/
class BuiltinTypeCanonicalPath extends Generated::BuiltinTypeCanonicalPath { }
}

View File

@@ -0,0 +1,21 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `CanonicalPathElement`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.CanonicalPathElement
/**
* INTERNAL: This module contains the customizable definition of `CanonicalPathElement` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* The base class for all elements in a canonical path.
*/
class CanonicalPathElement extends Generated::CanonicalPathElement {
override string toString() { result = "?" }
}
}

View File

@@ -0,0 +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 `CanonicalPath`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.CanonicalPath
/**
* INTERNAL: This module contains the customizable definition of `CanonicalPath` and should not
* be referenced directly.
*/
module Impl {
/**
* The base class for all canonical paths that can be the result of a path resolution.
*/
class CanonicalPath extends Generated::CanonicalPath { }
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `ConcreteTypeCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `ConcreteTypeCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructConcreteTypeCanonicalPath(Raw::ConcreteTypeCanonicalPath id) { any() }

View File

@@ -0,0 +1,21 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `ConcreteTypeCanonicalPath`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.ConcreteTypeCanonicalPath
/**
* INTERNAL: This module contains the customizable definition of `ConcreteTypeCanonicalPath` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A canonical path for an actual type.
*/
class ConcreteTypeCanonicalPath extends Generated::ConcreteTypeCanonicalPath {
override string toString() { result = this.getPath().toAbbreviatedString() }
}
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `ConstGenericTypeArg` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `ConstGenericTypeArg` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructConstGenericTypeArg(Raw::ConstGenericTypeArg id) { any() }

View File

@@ -0,0 +1,23 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `ConstGenericTypeArg`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.ConstGenericTypeArg
/**
* INTERNAL: This module contains the customizable definition of `ConstGenericTypeArg` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A generic argument for a type that is a const.
*/
class ConstGenericTypeArg extends Generated::ConstGenericTypeArg {
override string toString() { result = "const ?" }
override string toAbbreviatedString() { result = "?" }
}
}

View File

@@ -0,0 +1,21 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `CrateRoot`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.CrateRoot
/**
* INTERNAL: This module contains the customizable definition of `CrateRoot` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* The base class for all crate references.
*/
class CrateRoot extends Generated::CrateRoot {
override string toString() { result = this.toAbbreviatedString() }
}
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `DerivedTypeCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `DerivedTypeCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructDerivedTypeCanonicalPath(Raw::DerivedTypeCanonicalPath id) { any() }

View File

@@ -0,0 +1,25 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `DerivedTypeCanonicalPath`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.DerivedTypeCanonicalPath
/**
* INTERNAL: This module contains the customizable definition of `DerivedTypeCanonicalPath` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A derived canonical type, like `[i32; 4]`, `&mut std::string::String` or `(i32, std::string::String)`.
*/
class DerivedTypeCanonicalPath extends Generated::DerivedTypeCanonicalPath {
override string toString() {
result =
this.getModifier() + "(" +
strictconcat(int i | | this.getBase(i).toAbbreviatedString(), ", " order by i) + ")"
}
}
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `ImplItemCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `ImplItemCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructImplItemCanonicalPath(Raw::ImplItemCanonicalPath id) { any() }

View File

@@ -0,0 +1,30 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `ImplItemCanonicalPath`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.ImplItemCanonicalPath
/**
* INTERNAL: This module contains the customizable definition of `ImplItemCanonicalPath` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A canonical path for an item defined in an impl (a method or associated type).
*/
class ImplItemCanonicalPath extends Generated::ImplItemCanonicalPath {
override string toString() {
exists(string trait |
(
if this.hasTraitPath()
then trait = " as " + this.getTraitPath().toAbbreviatedString()
else trait = ""
) and
result = "<" + this.getTypePath().toAbbreviatedString() + trait + ">::" + this.getName()
)
}
}
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `LangCrateRoot` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `LangCrateRoot` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructLangCrateRoot(Raw::LangCrateRoot id) { any() }

View File

@@ -0,0 +1,21 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `LangCrateRoot`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.LangCrateRoot
/**
* INTERNAL: This module contains the customizable definition of `LangCrateRoot` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A reference to a crate in the Rust standard libraries.
*/
class LangCrateRoot extends Generated::LangCrateRoot {
override string toAbbreviatedString() { result = this.getName() }
}
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `ModuleItemCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `ModuleItemCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructModuleItemCanonicalPath(Raw::ModuleItemCanonicalPath id) { any() }

View File

@@ -0,0 +1,23 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `ModuleItemCanonicalPath`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.ModuleItemCanonicalPath
/**
* INTERNAL: This module contains the customizable definition of `ModuleItemCanonicalPath` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A canonical path for an item defined in a module.
*/
class ModuleItemCanonicalPath extends Generated::ModuleItemCanonicalPath {
override string toString() {
result = this.getNamespace().toAbbreviatedString() + "::" + this.getName()
}
}
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `Namespace` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `Namespace` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructNamespace(Raw::Namespace id) { any() }

View File

@@ -0,0 +1,26 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `Namespace`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.Namespace
/**
* INTERNAL: This module contains the customizable definition of `Namespace` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A namespace, comprised of a crate root and a possibly empty `::` separated module path.
*/
class Namespace extends Generated::Namespace {
override string toString() {
exists(string root |
root = this.getRoot().toString() and
if this.getPath() = "" then result = root else result = root + "::" + this.getPath()
)
}
}
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `ParametrizedCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `ParametrizedCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructParametrizedCanonicalPath(Raw::ParametrizedCanonicalPath id) { any() }

View File

@@ -0,0 +1,30 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `ParametrizedCanonicalPath`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.ParametrizedCanonicalPath
/**
* INTERNAL: This module contains the customizable definition of `ParametrizedCanonicalPath` and should not
* be referenced directly.
*/
module Impl {
class ParametrizedCanonicalPath extends Generated::ParametrizedCanonicalPath {
override string toString() {
exists(string args |
(
if this.getNumberOfGenericArgs() > 0
then
args =
"<" +
strictconcat(int i | | this.getGenericArg(i).toAbbreviatedString(), ", " order by i)
+ ">"
else args = ""
) and
result = this.getBase().toAbbreviatedString() + args
)
}
}
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `PlaceholderTypeCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `PlaceholderTypeCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructPlaceholderTypeCanonicalPath(Raw::PlaceholderTypeCanonicalPath id) { any() }

View File

@@ -0,0 +1,23 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `PlaceholderTypeCanonicalPath`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.PlaceholderTypeCanonicalPath
/**
* INTERNAL: This module contains the customizable definition of `PlaceholderTypeCanonicalPath` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A placeholder for a type parameter bound in an impl.
*/
class PlaceholderTypeCanonicalPath extends Generated::PlaceholderTypeCanonicalPath {
override string toAbbreviatedString() { result = "_" }
override string toString() { result = "_" }
}
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `RepoCrateRoot` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `RepoCrateRoot` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructRepoCrateRoot(Raw::RepoCrateRoot id) { any() }

View File

@@ -0,0 +1,25 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `RepoCrateRoot`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.RepoCrateRoot
/**
* INTERNAL: This module contains the customizable definition of `RepoCrateRoot` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A reference to a crate in the repository.
*/
class RepoCrateRoot extends Generated::RepoCrateRoot {
override string toAbbreviatedString() {
result = this.getName()
or
not this.hasName() and result = "<unnamed>"
}
}
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `RustcCrateRoot` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `RustcCrateRoot` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructRustcCrateRoot(Raw::RustcCrateRoot id) { any() }

View File

@@ -0,0 +1,21 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `RustcCrateRoot`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.RustcCrateRoot
/**
* INTERNAL: This module contains the customizable definition of `RustcCrateRoot` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A reference to a crate provided by rustc. TODO: understand where these come from.
*/
class RustcCrateRoot extends Generated::RustcCrateRoot {
override string toAbbreviatedString() { result = this.getName() }
}
}

View File

@@ -0,0 +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 `TypeCanonicalPath`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.TypeCanonicalPath
/**
* INTERNAL: This module contains the customizable definition of `TypeCanonicalPath` and should not
* be referenced directly.
*/
module Impl {
/**
* The base for canonical paths for types.
*/
class TypeCanonicalPath extends Generated::TypeCanonicalPath { }
}

View File

@@ -0,0 +1,19 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `TypeGenericArg`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.TypeGenericArg
/**
* INTERNAL: This module contains the customizable definition of `TypeGenericArg` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A generic argument for a type.
*/
class TypeGenericArg extends Generated::TypeGenericArg { }
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `TypeGenericTypeArg` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `TypeGenericTypeArg` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructTypeGenericTypeArg(Raw::TypeGenericTypeArg id) { any() }

View File

@@ -0,0 +1,21 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `TypeGenericTypeArg`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.TypeGenericTypeArg
/**
* INTERNAL: This module contains the customizable definition of `TypeGenericTypeArg` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A generic argument for a type that is a type.
*/
class TypeGenericTypeArg extends Generated::TypeGenericTypeArg {
override string toString() { result = this.getPath().toAbbreviatedString() }
}
}

View File

@@ -0,0 +1,14 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module defines the hook used internally to tweak the characteristic predicate of
* `TypeItemCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.Raw
/**
* The characteristic predicate of `TypeItemCanonicalPath` synthesized instances.
* INTERNAL: Do not use.
*/
predicate constructTypeItemCanonicalPath(Raw::TypeItemCanonicalPath id) { any() }

View File

@@ -0,0 +1,23 @@
/**
* This module provides a hand-modifiable wrapper around the generated class `TypeItemCanonicalPath`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.canonical_paths.TypeItemCanonicalPath
/**
* INTERNAL: This module contains the customizable definition of `TypeItemCanonicalPath` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A canonical path for an item defined in a type or trait.
*/
class TypeItemCanonicalPath extends Generated::TypeItemCanonicalPath {
override string toString() {
result = this.getParent().toAbbreviatedString() + "::" + this.getName()
}
}
}

View File

@@ -1,4 +1,3 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module provides a hand-modifiable wrapper around the generated class `Struct`.
*
@@ -12,11 +11,14 @@ private import codeql.rust.elements.internal.generated.Struct
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A Struct. For example:
* ```rust
* todo!()
* ```
*/
class Struct extends Generated::Struct { }
class Struct extends Generated::Struct {
override string toString() { result = "struct " + this.getName() }
}
}

View File

@@ -1,4 +1,3 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module provides a hand-modifiable wrapper around the generated class `Variant`.
*
@@ -6,17 +5,21 @@
*/
private import codeql.rust.elements.internal.generated.Variant
private import codeql.rust.elements.Enum
/**
* INTERNAL: This module contains the customizable definition of `Variant` and should not
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A Variant. For example:
* ```rust
* todo!()
* ```
*/
class Variant extends Generated::Variant { }
class Variant extends Generated::Variant {
override string toString() { result = this.getName().getText() }
}
}

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.canonical_paths.CanonicalPath
/**
* INTERNAL: This module contains the fully generated definition of `Addressable` and should not
@@ -54,5 +55,23 @@ module Generated {
* INTERNAL: Do not use.
*/
final predicate hasCrateOrigin() { exists(this.getCrateOrigin()) }
/**
* Gets the canonical path of this addressable, if it exists.
*
* INTERNAL: Do not use.
*/
CanonicalPath getCanonicalPath() {
result =
Synth::convertCanonicalPathFromRaw(Synth::convertAddressableToRaw(this)
.(Raw::Addressable)
.getCanonicalPath())
}
/**
* Holds if `getCanonicalPath()` exists.
* INTERNAL: Do not use.
*/
final predicate hasCanonicalPath() { exists(this.getCanonicalPath()) }
}
}

View File

@@ -3739,6 +3739,302 @@ private module Impl {
)
}
private Element getImmediateChildOfCanonicalPathElement(
CanonicalPathElement e, int index, string partialPredicateCall
) {
exists(int b, int bElement, int n |
b = 0 and
bElement = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfElement(e, i, _)) | i) and
n = bElement and
(
none()
or
result = getImmediateChildOfElement(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfCanonicalPath(
CanonicalPath e, int index, string partialPredicateCall
) {
exists(int b, int bCanonicalPathElement, int n |
b = 0 and
bCanonicalPathElement =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfCanonicalPathElement(e, i, _)) | i) and
n = bCanonicalPathElement and
(
none()
or
result = getImmediateChildOfCanonicalPathElement(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfCrateRoot(CrateRoot e, int index, string partialPredicateCall) {
exists(int b, int bCanonicalPathElement, int n |
b = 0 and
bCanonicalPathElement =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfCanonicalPathElement(e, i, _)) | i) and
n = bCanonicalPathElement and
(
none()
or
result = getImmediateChildOfCanonicalPathElement(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfTypeGenericArg(
TypeGenericArg e, int index, string partialPredicateCall
) {
exists(int b, int bCanonicalPathElement, int n |
b = 0 and
bCanonicalPathElement =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfCanonicalPathElement(e, i, _)) | i) and
n = bCanonicalPathElement and
(
none()
or
result = getImmediateChildOfCanonicalPathElement(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfConstGenericTypeArg(
ConstGenericTypeArg e, int index, string partialPredicateCall
) {
exists(int b, int bTypeGenericArg, int n |
b = 0 and
bTypeGenericArg =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfTypeGenericArg(e, i, _)) | i) and
n = bTypeGenericArg and
(
none()
or
result = getImmediateChildOfTypeGenericArg(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfImplItemCanonicalPath(
ImplItemCanonicalPath e, int index, string partialPredicateCall
) {
exists(int b, int bCanonicalPath, int n |
b = 0 and
bCanonicalPath =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfCanonicalPath(e, i, _)) | i) and
n = bCanonicalPath and
(
none()
or
result = getImmediateChildOfCanonicalPath(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfLangCrateRoot(
LangCrateRoot e, int index, string partialPredicateCall
) {
exists(int b, int bCrateRoot, int n |
b = 0 and
bCrateRoot = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfCrateRoot(e, i, _)) | i) and
n = bCrateRoot and
(
none()
or
result = getImmediateChildOfCrateRoot(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfModuleItemCanonicalPath(
ModuleItemCanonicalPath e, int index, string partialPredicateCall
) {
exists(int b, int bCanonicalPath, int n |
b = 0 and
bCanonicalPath =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfCanonicalPath(e, i, _)) | i) and
n = bCanonicalPath and
(
none()
or
result = getImmediateChildOfCanonicalPath(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfNamespace(Namespace e, int index, string partialPredicateCall) {
exists(int b, int bCanonicalPath, int n |
b = 0 and
bCanonicalPath =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfCanonicalPath(e, i, _)) | i) and
n = bCanonicalPath and
(
none()
or
result = getImmediateChildOfCanonicalPath(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfParametrizedCanonicalPath(
ParametrizedCanonicalPath e, int index, string partialPredicateCall
) {
exists(int b, int bCanonicalPath, int n |
b = 0 and
bCanonicalPath =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfCanonicalPath(e, i, _)) | i) and
n = bCanonicalPath and
(
none()
or
result = getImmediateChildOfCanonicalPath(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfRepoCrateRoot(
RepoCrateRoot e, int index, string partialPredicateCall
) {
exists(int b, int bCrateRoot, int n |
b = 0 and
bCrateRoot = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfCrateRoot(e, i, _)) | i) and
n = bCrateRoot and
(
none()
or
result = getImmediateChildOfCrateRoot(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfRustcCrateRoot(
RustcCrateRoot e, int index, string partialPredicateCall
) {
exists(int b, int bCrateRoot, int n |
b = 0 and
bCrateRoot = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfCrateRoot(e, i, _)) | i) and
n = bCrateRoot and
(
none()
or
result = getImmediateChildOfCrateRoot(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfTypeCanonicalPath(
TypeCanonicalPath e, int index, string partialPredicateCall
) {
exists(int b, int bCanonicalPath, int n |
b = 0 and
bCanonicalPath =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfCanonicalPath(e, i, _)) | i) and
n = bCanonicalPath and
(
none()
or
result = getImmediateChildOfCanonicalPath(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfTypeGenericTypeArg(
TypeGenericTypeArg e, int index, string partialPredicateCall
) {
exists(int b, int bTypeGenericArg, int n |
b = 0 and
bTypeGenericArg =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfTypeGenericArg(e, i, _)) | i) and
n = bTypeGenericArg and
(
none()
or
result = getImmediateChildOfTypeGenericArg(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfTypeItemCanonicalPath(
TypeItemCanonicalPath e, int index, string partialPredicateCall
) {
exists(int b, int bCanonicalPath, int n |
b = 0 and
bCanonicalPath =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfCanonicalPath(e, i, _)) | i) and
n = bCanonicalPath and
(
none()
or
result = getImmediateChildOfCanonicalPath(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfBuiltinTypeCanonicalPath(
BuiltinTypeCanonicalPath e, int index, string partialPredicateCall
) {
exists(int b, int bTypeCanonicalPath, int n |
b = 0 and
bTypeCanonicalPath =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfTypeCanonicalPath(e, i, _)) | i) and
n = bTypeCanonicalPath and
(
none()
or
result = getImmediateChildOfTypeCanonicalPath(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfConcreteTypeCanonicalPath(
ConcreteTypeCanonicalPath e, int index, string partialPredicateCall
) {
exists(int b, int bTypeCanonicalPath, int n |
b = 0 and
bTypeCanonicalPath =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfTypeCanonicalPath(e, i, _)) | i) and
n = bTypeCanonicalPath and
(
none()
or
result = getImmediateChildOfTypeCanonicalPath(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfDerivedTypeCanonicalPath(
DerivedTypeCanonicalPath e, int index, string partialPredicateCall
) {
exists(int b, int bTypeCanonicalPath, int n |
b = 0 and
bTypeCanonicalPath =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfTypeCanonicalPath(e, i, _)) | i) and
n = bTypeCanonicalPath and
(
none()
or
result = getImmediateChildOfTypeCanonicalPath(e, index - b, partialPredicateCall)
)
)
}
private Element getImmediateChildOfPlaceholderTypeCanonicalPath(
PlaceholderTypeCanonicalPath e, int index, string partialPredicateCall
) {
exists(int b, int bTypeCanonicalPath, int n |
b = 0 and
bTypeCanonicalPath =
b + 1 + max(int i | i = -1 or exists(getImmediateChildOfTypeCanonicalPath(e, i, _)) | i) and
n = bTypeCanonicalPath and
(
none()
or
result = getImmediateChildOfTypeCanonicalPath(e, index - b, partialPredicateCall)
)
)
}
cached
Element getImmediateChild(Element e, int index, string partialAccessor) {
// why does this look more complicated than it should?
@@ -4044,6 +4340,34 @@ private module Impl {
result = getImmediateChildOfLoopExpr(e, index, partialAccessor)
or
result = getImmediateChildOfWhileExpr(e, index, partialAccessor)
or
result = getImmediateChildOfConstGenericTypeArg(e, index, partialAccessor)
or
result = getImmediateChildOfImplItemCanonicalPath(e, index, partialAccessor)
or
result = getImmediateChildOfLangCrateRoot(e, index, partialAccessor)
or
result = getImmediateChildOfModuleItemCanonicalPath(e, index, partialAccessor)
or
result = getImmediateChildOfNamespace(e, index, partialAccessor)
or
result = getImmediateChildOfParametrizedCanonicalPath(e, index, partialAccessor)
or
result = getImmediateChildOfRepoCrateRoot(e, index, partialAccessor)
or
result = getImmediateChildOfRustcCrateRoot(e, index, partialAccessor)
or
result = getImmediateChildOfTypeGenericTypeArg(e, index, partialAccessor)
or
result = getImmediateChildOfTypeItemCanonicalPath(e, index, partialAccessor)
or
result = getImmediateChildOfBuiltinTypeCanonicalPath(e, index, partialAccessor)
or
result = getImmediateChildOfConcreteTypeCanonicalPath(e, index, partialAccessor)
or
result = getImmediateChildOfDerivedTypeCanonicalPath(e, index, partialAccessor)
or
result = getImmediateChildOfPlaceholderTypeCanonicalPath(e, index, partialAccessor)
}
}

View File

@@ -107,6 +107,11 @@ module Raw {
* One of `rustc:<name>`, `repo:<repository>:<name>` or `lang:<name>`.
*/
string getCrateOrigin() { addressable_crate_origins(this, result) }
/**
* Gets the canonical path of this addressable, if it exists.
*/
CanonicalPath getCanonicalPath() { addressable_canonical_paths(this, result) }
}
/**
@@ -839,6 +844,11 @@ module Raw {
* Gets the resolved crate origin of this resolvable, if it exists.
*/
string getResolvedCrateOrigin() { resolvable_resolved_crate_origins(this, result) }
/**
* Gets the resolved canonical path of this resolvable, if it exists.
*/
CanonicalPath getResolvedCanonicalPath() { resolvable_resolved_canonical_paths(this, result) }
}
/**
@@ -3958,4 +3968,257 @@ module Raw {
*/
Expr getCondition() { while_expr_conditions(this, result) }
}
/**
* INTERNAL: Do not use.
* The base class for all elements in a canonical path.
*/
class CanonicalPathElement extends @canonical_path_element, Element { }
/**
* INTERNAL: Do not use.
* The base class for all canonical paths that can be the result of a path resolution.
*/
class CanonicalPath extends @canonical_path, CanonicalPathElement { }
/**
* INTERNAL: Do not use.
* The base class for all crate references.
*/
class CrateRoot extends @crate_root, CanonicalPathElement { }
/**
* INTERNAL: Do not use.
* A generic argument for a type.
*/
class TypeGenericArg extends @type_generic_arg, CanonicalPathElement { }
/**
* INTERNAL: Do not use.
* A generic argument for a type that is a const.
*/
class ConstGenericTypeArg extends @const_generic_type_arg, TypeGenericArg {
override string toString() { result = "ConstGenericTypeArg" }
/**
* Gets the value of this const generic type argument.
*/
string getValue() { const_generic_type_args(this, result) }
}
/**
* INTERNAL: Do not use.
* A canonical path for an item defined in an impl (a method or associated type).
*/
class ImplItemCanonicalPath extends @impl_item_canonical_path, CanonicalPath {
override string toString() { result = "ImplItemCanonicalPath" }
/**
* Gets the type path of this impl item canonical path.
*/
TypeCanonicalPath getTypePath() { impl_item_canonical_paths(this, result, _) }
/**
* Gets the trait path of this impl item canonical path, if it exists.
*/
ParametrizedCanonicalPath getTraitPath() { impl_item_canonical_path_trait_paths(this, result) }
/**
* Gets the name of this impl item canonical path.
*/
string getName() { impl_item_canonical_paths(this, _, result) }
}
/**
* INTERNAL: Do not use.
* A reference to a crate in the Rust standard libraries.
*/
class LangCrateRoot extends @lang_crate_root, CrateRoot {
override string toString() { result = "LangCrateRoot" }
/**
* Gets the name of this lang crate root.
*/
string getName() { lang_crate_roots(this, result) }
}
/**
* INTERNAL: Do not use.
* A canonical path for an item defined in a module.
*/
class ModuleItemCanonicalPath extends @module_item_canonical_path, CanonicalPath {
override string toString() { result = "ModuleItemCanonicalPath" }
/**
* Gets the namespace of this module item canonical path.
*/
Namespace getNamespace() { module_item_canonical_paths(this, result, _) }
/**
* Gets the name of this module item canonical path.
*/
string getName() { module_item_canonical_paths(this, _, result) }
}
/**
* INTERNAL: Do not use.
* A namespace, comprised of a crate root and a possibly empty `::` separated module path.
*/
class Namespace extends @namespace, CanonicalPath {
override string toString() { result = "Namespace" }
/**
* Gets the root of this namespace.
*/
CrateRoot getRoot() { namespaces(this, result, _) }
/**
* Gets the path of this namespace.
*/
string getPath() { namespaces(this, _, result) }
}
/**
* INTERNAL: Do not use.
*/
class ParametrizedCanonicalPath extends @parametrized_canonical_path, CanonicalPath {
override string toString() { result = "ParametrizedCanonicalPath" }
/**
* Gets the base of this parametrized canonical path.
*/
ModuleItemCanonicalPath getBase() { parametrized_canonical_paths(this, result) }
/**
* Gets the `index`th generic argument of this parametrized canonical path (0-based).
*/
TypeGenericArg getGenericArg(int index) {
parametrized_canonical_path_generic_args(this, index, result)
}
}
/**
* INTERNAL: Do not use.
* A reference to a crate in the repository.
*/
class RepoCrateRoot extends @repo_crate_root, CrateRoot {
override string toString() { result = "RepoCrateRoot" }
/**
* Gets the name of this repo crate root, if it exists.
*/
string getName() { repo_crate_root_names(this, result) }
/**
* Gets the repo of this repo crate root, if it exists.
*/
string getRepo() { repo_crate_root_repos(this, result) }
/**
* Gets the source of this repo crate root.
*/
File getSource() { repo_crate_roots(this, result) }
}
/**
* INTERNAL: Do not use.
* A reference to a crate provided by rustc. TODO: understand where these come from.
*/
class RustcCrateRoot extends @rustc_crate_root, CrateRoot {
override string toString() { result = "RustcCrateRoot" }
/**
* Gets the name of this rustc crate root.
*/
string getName() { rustc_crate_roots(this, result) }
}
/**
* INTERNAL: Do not use.
* The base for canonical paths for types.
*/
class TypeCanonicalPath extends @type_canonical_path, CanonicalPath { }
/**
* INTERNAL: Do not use.
* A generic argument for a type that is a type.
*/
class TypeGenericTypeArg extends @type_generic_type_arg, TypeGenericArg {
override string toString() { result = "TypeGenericTypeArg" }
/**
* Gets the path of this type generic type argument.
*/
TypeCanonicalPath getPath() { type_generic_type_args(this, result) }
}
/**
* INTERNAL: Do not use.
* A canonical path for an item defined in a type or trait.
*/
class TypeItemCanonicalPath extends @type_item_canonical_path, CanonicalPath {
override string toString() { result = "TypeItemCanonicalPath" }
/**
* Gets the parent of this type item canonical path.
*/
ModuleItemCanonicalPath getParent() { type_item_canonical_paths(this, result, _) }
/**
* Gets the name of this type item canonical path.
*/
string getName() { type_item_canonical_paths(this, _, result) }
}
/**
* INTERNAL: Do not use.
* A canonical path for a builtin type.
*/
class BuiltinTypeCanonicalPath extends @builtin_type_canonical_path, TypeCanonicalPath {
override string toString() { result = "BuiltinTypeCanonicalPath" }
/**
* Gets the name of this builtin type canonical path.
*/
string getName() { builtin_type_canonical_paths(this, result) }
}
/**
* INTERNAL: Do not use.
* A canonical path for an actual type.
*/
class ConcreteTypeCanonicalPath extends @concrete_type_canonical_path, TypeCanonicalPath {
override string toString() { result = "ConcreteTypeCanonicalPath" }
/**
* Gets the path of this concrete type canonical path.
*/
ParametrizedCanonicalPath getPath() { concrete_type_canonical_paths(this, result) }
}
/**
* INTERNAL: Do not use.
* A derived canonical type, like `[i32; 4]`, `&mut std::string::String` or `(i32, std::string::String)`.
*/
class DerivedTypeCanonicalPath extends @derived_type_canonical_path, TypeCanonicalPath {
override string toString() { result = "DerivedTypeCanonicalPath" }
/**
* Gets the modifier of this derived type canonical path.
*/
string getModifier() { derived_type_canonical_paths(this, result) }
/**
* Gets the `index`th base of this derived type canonical path (0-based).
*/
TypeCanonicalPath getBase(int index) { derived_type_canonical_path_bases(this, index, result) }
}
/**
* INTERNAL: Do not use.
* A placeholder for a type parameter bound in an impl.
*/
class PlaceholderTypeCanonicalPath extends @placeholder_type_canonical_path, TypeCanonicalPath {
override string toString() { result = "PlaceholderTypeCanonicalPath" }
}
}

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.canonical_paths.CanonicalPath
/**
* INTERNAL: This module contains the fully generated definition of `Resolvable` and should not
@@ -48,5 +49,23 @@ module Generated {
* INTERNAL: Do not use.
*/
final predicate hasResolvedCrateOrigin() { exists(this.getResolvedCrateOrigin()) }
/**
* Gets the resolved canonical path of this resolvable, if it exists.
*
* INTERNAL: Do not use.
*/
CanonicalPath getResolvedCanonicalPath() {
result =
Synth::convertCanonicalPathFromRaw(Synth::convertResolvableToRaw(this)
.(Raw::Resolvable)
.getResolvedCanonicalPath())
}
/**
* Holds if `getResolvedCanonicalPath()` exists.
* INTERNAL: Do not use.
*/
final predicate hasResolvedCanonicalPath() { exists(this.getResolvedCanonicalPath()) }
}
}

View File

@@ -621,7 +621,75 @@ module Synth {
/**
* INTERNAL: Do not use.
*/
TYieldExpr(Raw::YieldExpr id) { constructYieldExpr(id) }
TYieldExpr(Raw::YieldExpr id) { constructYieldExpr(id) } or
/**
* INTERNAL: Do not use.
*/
TBuiltinTypeCanonicalPath(Raw::BuiltinTypeCanonicalPath id) {
constructBuiltinTypeCanonicalPath(id)
} or
/**
* INTERNAL: Do not use.
*/
TConcreteTypeCanonicalPath(Raw::ConcreteTypeCanonicalPath id) {
constructConcreteTypeCanonicalPath(id)
} or
/**
* INTERNAL: Do not use.
*/
TConstGenericTypeArg(Raw::ConstGenericTypeArg id) { constructConstGenericTypeArg(id) } or
/**
* INTERNAL: Do not use.
*/
TDerivedTypeCanonicalPath(Raw::DerivedTypeCanonicalPath id) {
constructDerivedTypeCanonicalPath(id)
} or
/**
* INTERNAL: Do not use.
*/
TImplItemCanonicalPath(Raw::ImplItemCanonicalPath id) { constructImplItemCanonicalPath(id) } or
/**
* INTERNAL: Do not use.
*/
TLangCrateRoot(Raw::LangCrateRoot id) { constructLangCrateRoot(id) } or
/**
* INTERNAL: Do not use.
*/
TModuleItemCanonicalPath(Raw::ModuleItemCanonicalPath id) {
constructModuleItemCanonicalPath(id)
} or
/**
* INTERNAL: Do not use.
*/
TNamespace(Raw::Namespace id) { constructNamespace(id) } or
/**
* INTERNAL: Do not use.
*/
TParametrizedCanonicalPath(Raw::ParametrizedCanonicalPath id) {
constructParametrizedCanonicalPath(id)
} or
/**
* INTERNAL: Do not use.
*/
TPlaceholderTypeCanonicalPath(Raw::PlaceholderTypeCanonicalPath id) {
constructPlaceholderTypeCanonicalPath(id)
} or
/**
* INTERNAL: Do not use.
*/
TRepoCrateRoot(Raw::RepoCrateRoot id) { constructRepoCrateRoot(id) } or
/**
* INTERNAL: Do not use.
*/
TRustcCrateRoot(Raw::RustcCrateRoot id) { constructRustcCrateRoot(id) } or
/**
* INTERNAL: Do not use.
*/
TTypeGenericTypeArg(Raw::TypeGenericTypeArg id) { constructTypeGenericTypeArg(id) } or
/**
* INTERNAL: Do not use.
*/
TTypeItemCanonicalPath(Raw::TypeItemCanonicalPath id) { constructTypeItemCanonicalPath(id) }
/**
* INTERNAL: Do not use.
@@ -768,6 +836,35 @@ module Synth {
*/
class TUnextracted = TMissing or TUnimplemented;
/**
* INTERNAL: Do not use.
*/
class TCanonicalPath =
TImplItemCanonicalPath or TModuleItemCanonicalPath or TNamespace or
TParametrizedCanonicalPath or TTypeCanonicalPath or TTypeItemCanonicalPath;
/**
* INTERNAL: Do not use.
*/
class TCanonicalPathElement = TCanonicalPath or TCrateRoot or TTypeGenericArg;
/**
* INTERNAL: Do not use.
*/
class TCrateRoot = TLangCrateRoot or TRepoCrateRoot or TRustcCrateRoot;
/**
* INTERNAL: Do not use.
*/
class TTypeCanonicalPath =
TBuiltinTypeCanonicalPath or TConcreteTypeCanonicalPath or TDerivedTypeCanonicalPath or
TPlaceholderTypeCanonicalPath;
/**
* INTERNAL: Do not use.
*/
class TTypeGenericArg = TConstGenericTypeArg or TTypeGenericTypeArg;
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TAbi`, if possible.
@@ -1678,6 +1775,110 @@ module Synth {
*/
TYieldExpr convertYieldExprFromRaw(Raw::Element e) { result = TYieldExpr(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TBuiltinTypeCanonicalPath`, if possible.
*/
TBuiltinTypeCanonicalPath convertBuiltinTypeCanonicalPathFromRaw(Raw::Element e) {
result = TBuiltinTypeCanonicalPath(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TConcreteTypeCanonicalPath`, if possible.
*/
TConcreteTypeCanonicalPath convertConcreteTypeCanonicalPathFromRaw(Raw::Element e) {
result = TConcreteTypeCanonicalPath(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TConstGenericTypeArg`, if possible.
*/
TConstGenericTypeArg convertConstGenericTypeArgFromRaw(Raw::Element e) {
result = TConstGenericTypeArg(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TDerivedTypeCanonicalPath`, if possible.
*/
TDerivedTypeCanonicalPath convertDerivedTypeCanonicalPathFromRaw(Raw::Element e) {
result = TDerivedTypeCanonicalPath(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TImplItemCanonicalPath`, if possible.
*/
TImplItemCanonicalPath convertImplItemCanonicalPathFromRaw(Raw::Element e) {
result = TImplItemCanonicalPath(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TLangCrateRoot`, if possible.
*/
TLangCrateRoot convertLangCrateRootFromRaw(Raw::Element e) { result = TLangCrateRoot(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TModuleItemCanonicalPath`, if possible.
*/
TModuleItemCanonicalPath convertModuleItemCanonicalPathFromRaw(Raw::Element e) {
result = TModuleItemCanonicalPath(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TNamespace`, if possible.
*/
TNamespace convertNamespaceFromRaw(Raw::Element e) { result = TNamespace(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TParametrizedCanonicalPath`, if possible.
*/
TParametrizedCanonicalPath convertParametrizedCanonicalPathFromRaw(Raw::Element e) {
result = TParametrizedCanonicalPath(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TPlaceholderTypeCanonicalPath`, if possible.
*/
TPlaceholderTypeCanonicalPath convertPlaceholderTypeCanonicalPathFromRaw(Raw::Element e) {
result = TPlaceholderTypeCanonicalPath(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TRepoCrateRoot`, if possible.
*/
TRepoCrateRoot convertRepoCrateRootFromRaw(Raw::Element e) { result = TRepoCrateRoot(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TRustcCrateRoot`, if possible.
*/
TRustcCrateRoot convertRustcCrateRootFromRaw(Raw::Element e) { result = TRustcCrateRoot(e) }
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TTypeGenericTypeArg`, if possible.
*/
TTypeGenericTypeArg convertTypeGenericTypeArgFromRaw(Raw::Element e) {
result = TTypeGenericTypeArg(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw element to a synthesized `TTypeItemCanonicalPath`, if possible.
*/
TTypeItemCanonicalPath convertTypeItemCanonicalPathFromRaw(Raw::Element e) {
result = TTypeItemCanonicalPath(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw DB element to a synthesized `TAddressable`, if possible.
@@ -1859,6 +2060,8 @@ module Synth {
* Converts a raw DB element to a synthesized `TElement`, if possible.
*/
TElement convertElementFromRaw(Raw::Element e) {
result = convertCanonicalPathElementFromRaw(e)
or
result = convertExtractorStepFromRaw(e)
or
result = convertLocatableFromRaw(e)
@@ -2208,6 +2411,72 @@ module Synth {
result = convertUnimplementedFromRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw DB element to a synthesized `TCanonicalPath`, if possible.
*/
TCanonicalPath convertCanonicalPathFromRaw(Raw::Element e) {
result = convertImplItemCanonicalPathFromRaw(e)
or
result = convertModuleItemCanonicalPathFromRaw(e)
or
result = convertNamespaceFromRaw(e)
or
result = convertParametrizedCanonicalPathFromRaw(e)
or
result = convertTypeCanonicalPathFromRaw(e)
or
result = convertTypeItemCanonicalPathFromRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw DB element to a synthesized `TCanonicalPathElement`, if possible.
*/
TCanonicalPathElement convertCanonicalPathElementFromRaw(Raw::Element e) {
result = convertCanonicalPathFromRaw(e)
or
result = convertCrateRootFromRaw(e)
or
result = convertTypeGenericArgFromRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw DB element to a synthesized `TCrateRoot`, if possible.
*/
TCrateRoot convertCrateRootFromRaw(Raw::Element e) {
result = convertLangCrateRootFromRaw(e)
or
result = convertRepoCrateRootFromRaw(e)
or
result = convertRustcCrateRootFromRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw DB element to a synthesized `TTypeCanonicalPath`, if possible.
*/
TTypeCanonicalPath convertTypeCanonicalPathFromRaw(Raw::Element e) {
result = convertBuiltinTypeCanonicalPathFromRaw(e)
or
result = convertConcreteTypeCanonicalPathFromRaw(e)
or
result = convertDerivedTypeCanonicalPathFromRaw(e)
or
result = convertPlaceholderTypeCanonicalPathFromRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw DB element to a synthesized `TTypeGenericArg`, if possible.
*/
TTypeGenericArg convertTypeGenericArgFromRaw(Raw::Element e) {
result = convertConstGenericTypeArgFromRaw(e)
or
result = convertTypeGenericTypeArgFromRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TAbi` to a raw DB element, if possible.
@@ -3116,6 +3385,110 @@ module Synth {
*/
Raw::Element convertYieldExprToRaw(TYieldExpr e) { e = TYieldExpr(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TBuiltinTypeCanonicalPath` to a raw DB element, if possible.
*/
Raw::Element convertBuiltinTypeCanonicalPathToRaw(TBuiltinTypeCanonicalPath e) {
e = TBuiltinTypeCanonicalPath(result)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TConcreteTypeCanonicalPath` to a raw DB element, if possible.
*/
Raw::Element convertConcreteTypeCanonicalPathToRaw(TConcreteTypeCanonicalPath e) {
e = TConcreteTypeCanonicalPath(result)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TConstGenericTypeArg` to a raw DB element, if possible.
*/
Raw::Element convertConstGenericTypeArgToRaw(TConstGenericTypeArg e) {
e = TConstGenericTypeArg(result)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TDerivedTypeCanonicalPath` to a raw DB element, if possible.
*/
Raw::Element convertDerivedTypeCanonicalPathToRaw(TDerivedTypeCanonicalPath e) {
e = TDerivedTypeCanonicalPath(result)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TImplItemCanonicalPath` to a raw DB element, if possible.
*/
Raw::Element convertImplItemCanonicalPathToRaw(TImplItemCanonicalPath e) {
e = TImplItemCanonicalPath(result)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TLangCrateRoot` to a raw DB element, if possible.
*/
Raw::Element convertLangCrateRootToRaw(TLangCrateRoot e) { e = TLangCrateRoot(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TModuleItemCanonicalPath` to a raw DB element, if possible.
*/
Raw::Element convertModuleItemCanonicalPathToRaw(TModuleItemCanonicalPath e) {
e = TModuleItemCanonicalPath(result)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TNamespace` to a raw DB element, if possible.
*/
Raw::Element convertNamespaceToRaw(TNamespace e) { e = TNamespace(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TParametrizedCanonicalPath` to a raw DB element, if possible.
*/
Raw::Element convertParametrizedCanonicalPathToRaw(TParametrizedCanonicalPath e) {
e = TParametrizedCanonicalPath(result)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TPlaceholderTypeCanonicalPath` to a raw DB element, if possible.
*/
Raw::Element convertPlaceholderTypeCanonicalPathToRaw(TPlaceholderTypeCanonicalPath e) {
e = TPlaceholderTypeCanonicalPath(result)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TRepoCrateRoot` to a raw DB element, if possible.
*/
Raw::Element convertRepoCrateRootToRaw(TRepoCrateRoot e) { e = TRepoCrateRoot(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TRustcCrateRoot` to a raw DB element, if possible.
*/
Raw::Element convertRustcCrateRootToRaw(TRustcCrateRoot e) { e = TRustcCrateRoot(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TTypeGenericTypeArg` to a raw DB element, if possible.
*/
Raw::Element convertTypeGenericTypeArgToRaw(TTypeGenericTypeArg e) {
e = TTypeGenericTypeArg(result)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TTypeItemCanonicalPath` to a raw DB element, if possible.
*/
Raw::Element convertTypeItemCanonicalPathToRaw(TTypeItemCanonicalPath e) {
e = TTypeItemCanonicalPath(result)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TAddressable` to a raw DB element, if possible.
@@ -3297,6 +3670,8 @@ module Synth {
* Converts a synthesized `TElement` to a raw DB element, if possible.
*/
Raw::Element convertElementToRaw(TElement e) {
result = convertCanonicalPathElementToRaw(e)
or
result = convertExtractorStepToRaw(e)
or
result = convertLocatableToRaw(e)
@@ -3645,4 +4020,70 @@ module Synth {
or
result = convertUnimplementedToRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TCanonicalPath` to a raw DB element, if possible.
*/
Raw::Element convertCanonicalPathToRaw(TCanonicalPath e) {
result = convertImplItemCanonicalPathToRaw(e)
or
result = convertModuleItemCanonicalPathToRaw(e)
or
result = convertNamespaceToRaw(e)
or
result = convertParametrizedCanonicalPathToRaw(e)
or
result = convertTypeCanonicalPathToRaw(e)
or
result = convertTypeItemCanonicalPathToRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TCanonicalPathElement` to a raw DB element, if possible.
*/
Raw::Element convertCanonicalPathElementToRaw(TCanonicalPathElement e) {
result = convertCanonicalPathToRaw(e)
or
result = convertCrateRootToRaw(e)
or
result = convertTypeGenericArgToRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TCrateRoot` to a raw DB element, if possible.
*/
Raw::Element convertCrateRootToRaw(TCrateRoot e) {
result = convertLangCrateRootToRaw(e)
or
result = convertRepoCrateRootToRaw(e)
or
result = convertRustcCrateRootToRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TTypeCanonicalPath` to a raw DB element, if possible.
*/
Raw::Element convertTypeCanonicalPathToRaw(TTypeCanonicalPath e) {
result = convertBuiltinTypeCanonicalPathToRaw(e)
or
result = convertConcreteTypeCanonicalPathToRaw(e)
or
result = convertDerivedTypeCanonicalPathToRaw(e)
or
result = convertPlaceholderTypeCanonicalPathToRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TTypeGenericArg` to a raw DB element, if possible.
*/
Raw::Element convertTypeGenericArgToRaw(TTypeGenericArg e) {
result = convertConstGenericTypeArgToRaw(e)
or
result = convertTypeGenericTypeArgToRaw(e)
}
}

View File

@@ -153,3 +153,17 @@ import codeql.rust.elements.internal.WhileExprConstructor
import codeql.rust.elements.internal.WildcardPatConstructor
import codeql.rust.elements.internal.YeetExprConstructor
import codeql.rust.elements.internal.YieldExprConstructor
import codeql.rust.elements.canonical_paths.internal.BuiltinTypeCanonicalPathConstructor
import codeql.rust.elements.canonical_paths.internal.ConcreteTypeCanonicalPathConstructor
import codeql.rust.elements.canonical_paths.internal.ConstGenericTypeArgConstructor
import codeql.rust.elements.canonical_paths.internal.DerivedTypeCanonicalPathConstructor
import codeql.rust.elements.canonical_paths.internal.ImplItemCanonicalPathConstructor
import codeql.rust.elements.canonical_paths.internal.LangCrateRootConstructor
import codeql.rust.elements.canonical_paths.internal.ModuleItemCanonicalPathConstructor
import codeql.rust.elements.canonical_paths.internal.NamespaceConstructor
import codeql.rust.elements.canonical_paths.internal.ParametrizedCanonicalPathConstructor
import codeql.rust.elements.canonical_paths.internal.PlaceholderTypeCanonicalPathConstructor
import codeql.rust.elements.canonical_paths.internal.RepoCrateRootConstructor
import codeql.rust.elements.canonical_paths.internal.RustcCrateRootConstructor
import codeql.rust.elements.canonical_paths.internal.TypeGenericTypeArgConstructor
import codeql.rust.elements.canonical_paths.internal.TypeItemCanonicalPathConstructor

View File

@@ -0,0 +1,34 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `BuiltinTypeCanonicalPath`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.TypeCanonicalPathImpl::Impl as TypeCanonicalPathImpl
/**
* INTERNAL: This module contains the fully generated definition of `BuiltinTypeCanonicalPath` and should not
* be referenced directly.
*/
module Generated {
/**
* A canonical path for a builtin type.
* INTERNAL: Do not reference the `Generated::BuiltinTypeCanonicalPath` class directly.
* Use the subclass `BuiltinTypeCanonicalPath`, where the following predicates are available.
*/
class BuiltinTypeCanonicalPath extends Synth::TBuiltinTypeCanonicalPath,
TypeCanonicalPathImpl::TypeCanonicalPath
{
override string getAPrimaryQlClass() { result = "BuiltinTypeCanonicalPath" }
/**
* Gets the name of this builtin type canonical path.
*/
string getName() {
result =
Synth::convertBuiltinTypeCanonicalPathToRaw(this).(Raw::BuiltinTypeCanonicalPath).getName()
}
}
}

View File

@@ -0,0 +1,23 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `CanonicalPath`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.CanonicalPathElementImpl::Impl as CanonicalPathElementImpl
/**
* INTERNAL: This module contains the fully generated definition of `CanonicalPath` and should not
* be referenced directly.
*/
module Generated {
/**
* The base class for all canonical paths that can be the result of a path resolution.
* INTERNAL: Do not reference the `Generated::CanonicalPath` class directly.
* Use the subclass `CanonicalPath`, where the following predicates are available.
*/
class CanonicalPath extends Synth::TCanonicalPath, CanonicalPathElementImpl::CanonicalPathElement {
}
}

View File

@@ -0,0 +1,22 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `CanonicalPathElement`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.internal.ElementImpl::Impl as ElementImpl
/**
* INTERNAL: This module contains the fully generated definition of `CanonicalPathElement` and should not
* be referenced directly.
*/
module Generated {
/**
* The base class for all elements in a canonical path.
* INTERNAL: Do not reference the `Generated::CanonicalPathElement` class directly.
* Use the subclass `CanonicalPathElement`, where the following predicates are available.
*/
class CanonicalPathElement extends Synth::TCanonicalPathElement, ElementImpl::Element { }
}

View File

@@ -0,0 +1,37 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `ConcreteTypeCanonicalPath`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.ParametrizedCanonicalPath
import codeql.rust.elements.canonical_paths.internal.TypeCanonicalPathImpl::Impl as TypeCanonicalPathImpl
/**
* INTERNAL: This module contains the fully generated definition of `ConcreteTypeCanonicalPath` and should not
* be referenced directly.
*/
module Generated {
/**
* A canonical path for an actual type.
* INTERNAL: Do not reference the `Generated::ConcreteTypeCanonicalPath` class directly.
* Use the subclass `ConcreteTypeCanonicalPath`, where the following predicates are available.
*/
class ConcreteTypeCanonicalPath extends Synth::TConcreteTypeCanonicalPath,
TypeCanonicalPathImpl::TypeCanonicalPath
{
override string getAPrimaryQlClass() { result = "ConcreteTypeCanonicalPath" }
/**
* Gets the path of this concrete type canonical path.
*/
ParametrizedCanonicalPath getPath() {
result =
Synth::convertParametrizedCanonicalPathFromRaw(Synth::convertConcreteTypeCanonicalPathToRaw(this)
.(Raw::ConcreteTypeCanonicalPath)
.getPath())
}
}
}

View File

@@ -0,0 +1,31 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `ConstGenericTypeArg`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.TypeGenericArgImpl::Impl as TypeGenericArgImpl
/**
* INTERNAL: This module contains the fully generated definition of `ConstGenericTypeArg` and should not
* be referenced directly.
*/
module Generated {
/**
* A generic argument for a type that is a const.
* INTERNAL: Do not reference the `Generated::ConstGenericTypeArg` class directly.
* Use the subclass `ConstGenericTypeArg`, where the following predicates are available.
*/
class ConstGenericTypeArg extends Synth::TConstGenericTypeArg, TypeGenericArgImpl::TypeGenericArg {
override string getAPrimaryQlClass() { result = "ConstGenericTypeArg" }
/**
* Gets the value of this const generic type argument.
*/
string getValue() {
result = Synth::convertConstGenericTypeArgToRaw(this).(Raw::ConstGenericTypeArg).getValue()
}
}
}

View File

@@ -0,0 +1,22 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `CrateRoot`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.CanonicalPathElementImpl::Impl as CanonicalPathElementImpl
/**
* INTERNAL: This module contains the fully generated definition of `CrateRoot` and should not
* be referenced directly.
*/
module Generated {
/**
* The base class for all crate references.
* INTERNAL: Do not reference the `Generated::CrateRoot` class directly.
* Use the subclass `CrateRoot`, where the following predicates are available.
*/
class CrateRoot extends Synth::TCrateRoot, CanonicalPathElementImpl::CanonicalPathElement { }
}

View File

@@ -0,0 +1,57 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `DerivedTypeCanonicalPath`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.TypeCanonicalPath
import codeql.rust.elements.canonical_paths.internal.TypeCanonicalPathImpl::Impl as TypeCanonicalPathImpl
/**
* INTERNAL: This module contains the fully generated definition of `DerivedTypeCanonicalPath` and should not
* be referenced directly.
*/
module Generated {
/**
* A derived canonical type, like `[i32; 4]`, `&mut std::string::String` or `(i32, std::string::String)`.
* INTERNAL: Do not reference the `Generated::DerivedTypeCanonicalPath` class directly.
* Use the subclass `DerivedTypeCanonicalPath`, where the following predicates are available.
*/
class DerivedTypeCanonicalPath extends Synth::TDerivedTypeCanonicalPath,
TypeCanonicalPathImpl::TypeCanonicalPath
{
override string getAPrimaryQlClass() { result = "DerivedTypeCanonicalPath" }
/**
* Gets the modifier of this derived type canonical path.
*/
string getModifier() {
result =
Synth::convertDerivedTypeCanonicalPathToRaw(this)
.(Raw::DerivedTypeCanonicalPath)
.getModifier()
}
/**
* Gets the `index`th base of this derived type canonical path (0-based).
*/
TypeCanonicalPath getBase(int index) {
result =
Synth::convertTypeCanonicalPathFromRaw(Synth::convertDerivedTypeCanonicalPathToRaw(this)
.(Raw::DerivedTypeCanonicalPath)
.getBase(index))
}
/**
* Gets any of the bases of this derived type canonical path.
*/
final TypeCanonicalPath getABase() { result = this.getBase(_) }
/**
* Gets the number of bases of this derived type canonical path.
*/
final int getNumberOfBases() { result = count(int i | exists(this.getBase(i))) }
}
}

View File

@@ -0,0 +1,60 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `ImplItemCanonicalPath`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.CanonicalPathImpl::Impl as CanonicalPathImpl
import codeql.rust.elements.canonical_paths.ParametrizedCanonicalPath
import codeql.rust.elements.canonical_paths.TypeCanonicalPath
/**
* INTERNAL: This module contains the fully generated definition of `ImplItemCanonicalPath` and should not
* be referenced directly.
*/
module Generated {
/**
* A canonical path for an item defined in an impl (a method or associated type).
* INTERNAL: Do not reference the `Generated::ImplItemCanonicalPath` class directly.
* Use the subclass `ImplItemCanonicalPath`, where the following predicates are available.
*/
class ImplItemCanonicalPath extends Synth::TImplItemCanonicalPath,
CanonicalPathImpl::CanonicalPath
{
override string getAPrimaryQlClass() { result = "ImplItemCanonicalPath" }
/**
* Gets the type path of this impl item canonical path.
*/
TypeCanonicalPath getTypePath() {
result =
Synth::convertTypeCanonicalPathFromRaw(Synth::convertImplItemCanonicalPathToRaw(this)
.(Raw::ImplItemCanonicalPath)
.getTypePath())
}
/**
* Gets the trait path of this impl item canonical path, if it exists.
*/
ParametrizedCanonicalPath getTraitPath() {
result =
Synth::convertParametrizedCanonicalPathFromRaw(Synth::convertImplItemCanonicalPathToRaw(this)
.(Raw::ImplItemCanonicalPath)
.getTraitPath())
}
/**
* Holds if `getTraitPath()` exists.
*/
final predicate hasTraitPath() { exists(this.getTraitPath()) }
/**
* Gets the name of this impl item canonical path.
*/
string getName() {
result = Synth::convertImplItemCanonicalPathToRaw(this).(Raw::ImplItemCanonicalPath).getName()
}
}
}

View File

@@ -0,0 +1,31 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `LangCrateRoot`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.CrateRootImpl::Impl as CrateRootImpl
/**
* INTERNAL: This module contains the fully generated definition of `LangCrateRoot` and should not
* be referenced directly.
*/
module Generated {
/**
* A reference to a crate in the Rust standard libraries.
* INTERNAL: Do not reference the `Generated::LangCrateRoot` class directly.
* Use the subclass `LangCrateRoot`, where the following predicates are available.
*/
class LangCrateRoot extends Synth::TLangCrateRoot, CrateRootImpl::CrateRoot {
override string getAPrimaryQlClass() { result = "LangCrateRoot" }
/**
* Gets the name of this lang crate root.
*/
string getName() {
result = Synth::convertLangCrateRootToRaw(this).(Raw::LangCrateRoot).getName()
}
}
}

View File

@@ -0,0 +1,45 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `ModuleItemCanonicalPath`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.CanonicalPathImpl::Impl as CanonicalPathImpl
import codeql.rust.elements.canonical_paths.Namespace
/**
* INTERNAL: This module contains the fully generated definition of `ModuleItemCanonicalPath` and should not
* be referenced directly.
*/
module Generated {
/**
* A canonical path for an item defined in a module.
* INTERNAL: Do not reference the `Generated::ModuleItemCanonicalPath` class directly.
* Use the subclass `ModuleItemCanonicalPath`, where the following predicates are available.
*/
class ModuleItemCanonicalPath extends Synth::TModuleItemCanonicalPath,
CanonicalPathImpl::CanonicalPath
{
override string getAPrimaryQlClass() { result = "ModuleItemCanonicalPath" }
/**
* Gets the namespace of this module item canonical path.
*/
Namespace getNamespace() {
result =
Synth::convertNamespaceFromRaw(Synth::convertModuleItemCanonicalPathToRaw(this)
.(Raw::ModuleItemCanonicalPath)
.getNamespace())
}
/**
* Gets the name of this module item canonical path.
*/
string getName() {
result =
Synth::convertModuleItemCanonicalPathToRaw(this).(Raw::ModuleItemCanonicalPath).getName()
}
}
}

View File

@@ -0,0 +1,38 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `Namespace`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.CanonicalPathImpl::Impl as CanonicalPathImpl
import codeql.rust.elements.canonical_paths.CrateRoot
/**
* INTERNAL: This module contains the fully generated definition of `Namespace` and should not
* be referenced directly.
*/
module Generated {
/**
* A namespace, comprised of a crate root and a possibly empty `::` separated module path.
* INTERNAL: Do not reference the `Generated::Namespace` class directly.
* Use the subclass `Namespace`, where the following predicates are available.
*/
class Namespace extends Synth::TNamespace, CanonicalPathImpl::CanonicalPath {
override string getAPrimaryQlClass() { result = "Namespace" }
/**
* Gets the root of this namespace.
*/
CrateRoot getRoot() {
result =
Synth::convertCrateRootFromRaw(Synth::convertNamespaceToRaw(this).(Raw::Namespace).getRoot())
}
/**
* Gets the path of this namespace.
*/
string getPath() { result = Synth::convertNamespaceToRaw(this).(Raw::Namespace).getPath() }
}
}

View File

@@ -0,0 +1,57 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `ParametrizedCanonicalPath`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.CanonicalPathImpl::Impl as CanonicalPathImpl
import codeql.rust.elements.canonical_paths.ModuleItemCanonicalPath
import codeql.rust.elements.canonical_paths.TypeGenericArg
/**
* INTERNAL: This module contains the fully generated definition of `ParametrizedCanonicalPath` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::ParametrizedCanonicalPath` class directly.
* Use the subclass `ParametrizedCanonicalPath`, where the following predicates are available.
*/
class ParametrizedCanonicalPath extends Synth::TParametrizedCanonicalPath,
CanonicalPathImpl::CanonicalPath
{
override string getAPrimaryQlClass() { result = "ParametrizedCanonicalPath" }
/**
* Gets the base of this parametrized canonical path.
*/
ModuleItemCanonicalPath getBase() {
result =
Synth::convertModuleItemCanonicalPathFromRaw(Synth::convertParametrizedCanonicalPathToRaw(this)
.(Raw::ParametrizedCanonicalPath)
.getBase())
}
/**
* Gets the `index`th generic argument of this parametrized canonical path (0-based).
*/
TypeGenericArg getGenericArg(int index) {
result =
Synth::convertTypeGenericArgFromRaw(Synth::convertParametrizedCanonicalPathToRaw(this)
.(Raw::ParametrizedCanonicalPath)
.getGenericArg(index))
}
/**
* Gets any of the generic arguments of this parametrized canonical path.
*/
final TypeGenericArg getAGenericArg() { result = this.getGenericArg(_) }
/**
* Gets the number of generic arguments of this parametrized canonical path.
*/
final int getNumberOfGenericArgs() { result = count(int i | exists(this.getGenericArg(i))) }
}
}

View File

@@ -0,0 +1,26 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `PlaceholderTypeCanonicalPath`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.TypeCanonicalPathImpl::Impl as TypeCanonicalPathImpl
/**
* INTERNAL: This module contains the fully generated definition of `PlaceholderTypeCanonicalPath` and should not
* be referenced directly.
*/
module Generated {
/**
* A placeholder for a type parameter bound in an impl.
* INTERNAL: Do not reference the `Generated::PlaceholderTypeCanonicalPath` class directly.
* Use the subclass `PlaceholderTypeCanonicalPath`, where the following predicates are available.
*/
class PlaceholderTypeCanonicalPath extends Synth::TPlaceholderTypeCanonicalPath,
TypeCanonicalPathImpl::TypeCanonicalPath
{
override string getAPrimaryQlClass() { result = "PlaceholderTypeCanonicalPath" }
}
}

View File

@@ -0,0 +1,56 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `RepoCrateRoot`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.CrateRootImpl::Impl as CrateRootImpl
import codeql.files.FileSystem
/**
* INTERNAL: This module contains the fully generated definition of `RepoCrateRoot` and should not
* be referenced directly.
*/
module Generated {
/**
* A reference to a crate in the repository.
* INTERNAL: Do not reference the `Generated::RepoCrateRoot` class directly.
* Use the subclass `RepoCrateRoot`, where the following predicates are available.
*/
class RepoCrateRoot extends Synth::TRepoCrateRoot, CrateRootImpl::CrateRoot {
override string getAPrimaryQlClass() { result = "RepoCrateRoot" }
/**
* Gets the name of this repo crate root, if it exists.
*/
string getName() {
result = Synth::convertRepoCrateRootToRaw(this).(Raw::RepoCrateRoot).getName()
}
/**
* Holds if `getName()` exists.
*/
final predicate hasName() { exists(this.getName()) }
/**
* Gets the repo of this repo crate root, if it exists.
*/
string getRepo() {
result = Synth::convertRepoCrateRootToRaw(this).(Raw::RepoCrateRoot).getRepo()
}
/**
* Holds if `getRepo()` exists.
*/
final predicate hasRepo() { exists(this.getRepo()) }
/**
* Gets the source of this repo crate root.
*/
File getSource() {
result = Synth::convertRepoCrateRootToRaw(this).(Raw::RepoCrateRoot).getSource()
}
}
}

View File

@@ -0,0 +1,31 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `RustcCrateRoot`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.CrateRootImpl::Impl as CrateRootImpl
/**
* INTERNAL: This module contains the fully generated definition of `RustcCrateRoot` and should not
* be referenced directly.
*/
module Generated {
/**
* A reference to a crate provided by rustc. TODO: understand where these come from.
* INTERNAL: Do not reference the `Generated::RustcCrateRoot` class directly.
* Use the subclass `RustcCrateRoot`, where the following predicates are available.
*/
class RustcCrateRoot extends Synth::TRustcCrateRoot, CrateRootImpl::CrateRoot {
override string getAPrimaryQlClass() { result = "RustcCrateRoot" }
/**
* Gets the name of this rustc crate root.
*/
string getName() {
result = Synth::convertRustcCrateRootToRaw(this).(Raw::RustcCrateRoot).getName()
}
}
}

View File

@@ -0,0 +1,22 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `TypeCanonicalPath`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.CanonicalPathImpl::Impl as CanonicalPathImpl
/**
* INTERNAL: This module contains the fully generated definition of `TypeCanonicalPath` and should not
* be referenced directly.
*/
module Generated {
/**
* The base for canonical paths for types.
* INTERNAL: Do not reference the `Generated::TypeCanonicalPath` class directly.
* Use the subclass `TypeCanonicalPath`, where the following predicates are available.
*/
class TypeCanonicalPath extends Synth::TTypeCanonicalPath, CanonicalPathImpl::CanonicalPath { }
}

View File

@@ -0,0 +1,24 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `TypeGenericArg`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.CanonicalPathElementImpl::Impl as CanonicalPathElementImpl
/**
* INTERNAL: This module contains the fully generated definition of `TypeGenericArg` and should not
* be referenced directly.
*/
module Generated {
/**
* A generic argument for a type.
* INTERNAL: Do not reference the `Generated::TypeGenericArg` class directly.
* Use the subclass `TypeGenericArg`, where the following predicates are available.
*/
class TypeGenericArg extends Synth::TTypeGenericArg,
CanonicalPathElementImpl::CanonicalPathElement
{ }
}

View File

@@ -0,0 +1,35 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `TypeGenericTypeArg`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.TypeCanonicalPath
import codeql.rust.elements.canonical_paths.internal.TypeGenericArgImpl::Impl as TypeGenericArgImpl
/**
* INTERNAL: This module contains the fully generated definition of `TypeGenericTypeArg` and should not
* be referenced directly.
*/
module Generated {
/**
* A generic argument for a type that is a type.
* INTERNAL: Do not reference the `Generated::TypeGenericTypeArg` class directly.
* Use the subclass `TypeGenericTypeArg`, where the following predicates are available.
*/
class TypeGenericTypeArg extends Synth::TTypeGenericTypeArg, TypeGenericArgImpl::TypeGenericArg {
override string getAPrimaryQlClass() { result = "TypeGenericTypeArg" }
/**
* Gets the path of this type generic type argument.
*/
TypeCanonicalPath getPath() {
result =
Synth::convertTypeCanonicalPathFromRaw(Synth::convertTypeGenericTypeArgToRaw(this)
.(Raw::TypeGenericTypeArg)
.getPath())
}
}
}

View File

@@ -0,0 +1,44 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `TypeItemCanonicalPath`.
* INTERNAL: Do not import directly.
*/
private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.canonical_paths.internal.CanonicalPathImpl::Impl as CanonicalPathImpl
import codeql.rust.elements.canonical_paths.ModuleItemCanonicalPath
/**
* INTERNAL: This module contains the fully generated definition of `TypeItemCanonicalPath` and should not
* be referenced directly.
*/
module Generated {
/**
* A canonical path for an item defined in a type or trait.
* INTERNAL: Do not reference the `Generated::TypeItemCanonicalPath` class directly.
* Use the subclass `TypeItemCanonicalPath`, where the following predicates are available.
*/
class TypeItemCanonicalPath extends Synth::TTypeItemCanonicalPath,
CanonicalPathImpl::CanonicalPath
{
override string getAPrimaryQlClass() { result = "TypeItemCanonicalPath" }
/**
* Gets the parent of this type item canonical path.
*/
ModuleItemCanonicalPath getParent() {
result =
Synth::convertModuleItemCanonicalPathFromRaw(Synth::convertTypeItemCanonicalPathToRaw(this)
.(Raw::TypeItemCanonicalPath)
.getParent())
}
/**
* Gets the name of this type item canonical path.
*/
string getName() {
result = Synth::convertTypeItemCanonicalPathToRaw(this).(Raw::TypeItemCanonicalPath).getName()
}
}
}

View File

@@ -120,7 +120,8 @@ locatable_locations(
// from schema
@element =
@extractor_step
@canonical_path_element
| @extractor_step
| @locatable
| @unextracted
;
@@ -237,6 +238,12 @@ addressable_crate_origins(
string crate_origin: string ref
);
#keyset[id]
addressable_canonical_paths(
int id: @addressable ref,
int canonical_path: @canonical_path ref
);
arg_lists(
unique int id: @arg_list
);
@@ -866,6 +873,12 @@ resolvable_resolved_crate_origins(
string resolved_crate_origin: string ref
);
#keyset[id]
resolvable_resolved_canonical_paths(
int id: @resolvable ref,
int resolved_canonical_path: @canonical_path ref
);
ret_type_reprs(
unique int id: @ret_type_repr
);
@@ -3340,3 +3353,141 @@ while_expr_conditions(
int id: @while_expr ref,
int condition: @expr ref
);
@canonical_path_element =
@canonical_path
| @crate_root
| @type_generic_arg
;
@canonical_path =
@impl_item_canonical_path
| @module_item_canonical_path
| @namespace
| @parametrized_canonical_path
| @type_canonical_path
| @type_item_canonical_path
;
@crate_root =
@lang_crate_root
| @repo_crate_root
| @rustc_crate_root
;
@type_generic_arg =
@const_generic_type_arg
| @type_generic_type_arg
;
const_generic_type_args( //dir=canonical_paths
unique int id: @const_generic_type_arg,
string value: string ref
);
impl_item_canonical_paths( //dir=canonical_paths
unique int id: @impl_item_canonical_path,
int type_path: @type_canonical_path ref,
string name: string ref
);
#keyset[id]
impl_item_canonical_path_trait_paths( //dir=canonical_paths
int id: @impl_item_canonical_path ref,
int trait_path: @parametrized_canonical_path ref
);
lang_crate_roots( //dir=canonical_paths
unique int id: @lang_crate_root,
string name: string ref
);
module_item_canonical_paths( //dir=canonical_paths
unique int id: @module_item_canonical_path,
int namespace: @namespace ref,
string name: string ref
);
namespaces( //dir=canonical_paths
unique int id: @namespace,
int root: @crate_root ref,
string path: string ref
);
parametrized_canonical_paths( //dir=canonical_paths
unique int id: @parametrized_canonical_path,
int base: @module_item_canonical_path ref
);
#keyset[id, index]
parametrized_canonical_path_generic_args( //dir=canonical_paths
int id: @parametrized_canonical_path ref,
int index: int ref,
int generic_arg: @type_generic_arg ref
);
repo_crate_roots( //dir=canonical_paths
unique int id: @repo_crate_root,
int source: @file ref
);
#keyset[id]
repo_crate_root_names( //dir=canonical_paths
int id: @repo_crate_root ref,
string name: string ref
);
#keyset[id]
repo_crate_root_repos( //dir=canonical_paths
int id: @repo_crate_root ref,
string repo: string ref
);
rustc_crate_roots( //dir=canonical_paths
unique int id: @rustc_crate_root,
string name: string ref
);
@type_canonical_path =
@builtin_type_canonical_path
| @concrete_type_canonical_path
| @derived_type_canonical_path
| @placeholder_type_canonical_path
;
type_generic_type_args( //dir=canonical_paths
unique int id: @type_generic_type_arg,
int path: @type_canonical_path ref
);
type_item_canonical_paths( //dir=canonical_paths
unique int id: @type_item_canonical_path,
int parent: @module_item_canonical_path ref,
string name: string ref
);
builtin_type_canonical_paths( //dir=canonical_paths
unique int id: @builtin_type_canonical_path,
string name: string ref
);
concrete_type_canonical_paths( //dir=canonical_paths
unique int id: @concrete_type_canonical_path,
int path: @parametrized_canonical_path ref
);
derived_type_canonical_paths( //dir=canonical_paths
unique int id: @derived_type_canonical_path,
string modifier: string ref
);
#keyset[id, index]
derived_type_canonical_path_bases( //dir=canonical_paths
int id: @derived_type_canonical_path ref,
int index: int ref,
int base: @type_canonical_path ref
);
placeholder_type_canonical_paths( //dir=canonical_paths
unique int id: @placeholder_type_canonical_path
);

View File

@@ -1,66 +1,135 @@
canonicalPaths
| anonymous.rs:1:1:1:26 | Use | None | None |
| anonymous.rs:3:1:32:1 | fn canonicals | repo::test | crate::anonymous::canonicals |
| anonymous.rs:4:5:4:23 | Struct | repo::test | {0}::OtherStruct |
| anonymous.rs:6:5:8:5 | trait OtherTrait | repo::test | {0}::OtherTrait |
| anonymous.rs:7:9:7:20 | fn g | repo::test | {0}::OtherTrait::g |
| anonymous.rs:10:5:12:5 | impl OtherTrait for OtherStruct { ... } | None | None |
| anonymous.rs:11:9:11:22 | fn g | repo::test | <{0}::OtherStruct as {0}::OtherTrait>::g |
| anonymous.rs:14:5:16:5 | impl OtherTrait for ...::Struct { ... } | None | None |
| anonymous.rs:15:9:15:22 | fn g | repo::test | <crate::regular::Struct as {0}::OtherTrait>::g |
| anonymous.rs:18:5:20:5 | impl ...::Trait for OtherStruct { ... } | None | None |
| anonymous.rs:19:9:19:22 | fn f | repo::test | <{0}::OtherStruct as crate::regular::Trait>::f |
| anonymous.rs:22:5:24:5 | fn nested | repo::test | {0}::nested |
| anonymous.rs:23:9:23:27 | Struct | repo::test | {1}::OtherStruct |
| anonymous.rs:26:5:31:5 | fn usage | repo::test | {0}::usage |
| anonymous.rs:34:1:36:1 | fn other | repo::test | crate::anonymous::other |
| anonymous.rs:35:5:35:23 | Struct | repo::test | {36}::OtherStruct |
| lib.rs:1:1:1:14 | mod anonymous | repo::test | crate::anonymous |
| lib.rs:2:1:2:12 | mod regular | repo::test | crate::regular |
| regular.rs:1:1:2:18 | Struct | repo::test | crate::regular::Struct |
| regular.rs:4:1:6:1 | trait Trait | repo::test | crate::regular::Trait |
| regular.rs:5:5:5:16 | fn f | repo::test | crate::regular::Trait::f |
| regular.rs:8:1:10:1 | impl Trait for Struct { ... } | None | None |
| regular.rs:9:5:9:18 | fn f | repo::test | <crate::regular::Struct as crate::regular::Trait>::f |
| regular.rs:12:1:14:1 | impl Struct { ... } | None | None |
| regular.rs:13:5:13:18 | fn g | repo::test | <crate::regular::Struct>::g |
| regular.rs:16:1:18:1 | trait TraitWithBlanketImpl | repo::test | crate::regular::TraitWithBlanketImpl |
| regular.rs:17:5:17:16 | fn h | repo::test | crate::regular::TraitWithBlanketImpl::h |
| regular.rs:20:1:22:1 | impl TraitWithBlanketImpl for T { ... } | None | None |
| regular.rs:21:5:21:18 | fn h | repo::test | <_ as crate::regular::TraitWithBlanketImpl>::h |
| regular.rs:24:1:24:12 | fn free | repo::test | crate::regular::free |
| regular.rs:26:1:32:1 | fn usage | repo::test | crate::regular::usage |
| regular.rs:34:1:38:1 | enum MyEnum | repo::test | crate::regular::MyEnum |
| regular.rs:40:1:46:1 | fn enum_qualified_usage | repo::test | crate::regular::enum_qualified_usage |
| regular.rs:48:1:55:1 | fn enum_unqualified_usage | repo::test | crate::regular::enum_unqualified_usage |
| regular.rs:51:5:51:18 | Use | None | None |
| regular.rs:57:1:63:1 | fn enum_match | repo::test | crate::regular::enum_match |
| anonymous.rs:1:1:1:26 | Use | None |
| anonymous.rs:3:1:32:1 | fn canonicals | ...::canonicals |
| anonymous.rs:4:5:4:23 | struct OtherStruct | None |
| anonymous.rs:6:5:8:5 | trait OtherTrait | None |
| anonymous.rs:7:9:7:20 | fn g | None |
| anonymous.rs:10:5:12:5 | impl OtherTrait for OtherStruct { ... } | None |
| anonymous.rs:11:9:11:22 | fn g | None |
| anonymous.rs:14:5:16:5 | impl OtherTrait for ...::Struct { ... } | None |
| anonymous.rs:15:9:15:22 | fn g | <...>::g |
| anonymous.rs:18:5:20:5 | impl ...::Trait for OtherStruct { ... } | None |
| anonymous.rs:19:9:19:22 | fn f | None |
| anonymous.rs:22:5:24:5 | fn nested | None |
| anonymous.rs:23:9:23:27 | struct OtherStruct | None |
| anonymous.rs:26:5:31:5 | fn usage | None |
| anonymous.rs:34:1:36:1 | fn other | ...::other |
| anonymous.rs:35:5:35:23 | struct OtherStruct | None |
| lib.rs:1:1:1:14 | mod anonymous | ...::anonymous |
| lib.rs:2:1:2:12 | mod regular | ...::regular |
| regular.rs:1:1:2:18 | struct Struct | ...::Struct |
| regular.rs:4:1:6:1 | trait Trait | ...::Trait |
| regular.rs:5:5:5:16 | fn f | ...::f |
| regular.rs:8:1:10:1 | impl Trait for Struct { ... } | None |
| regular.rs:9:5:9:18 | fn f | <... as ...>::f |
| regular.rs:12:1:14:1 | impl Struct { ... } | None |
| regular.rs:13:5:13:18 | fn g | <...>::g |
| regular.rs:16:1:18:1 | trait TraitWithBlanketImpl | ...::TraitWithBlanketImpl |
| regular.rs:17:5:17:16 | fn h | ...::h |
| regular.rs:20:1:22:1 | impl TraitWithBlanketImpl for T { ... } | None |
| regular.rs:21:5:21:18 | fn h | <_ as ...>::h |
| regular.rs:24:1:24:12 | fn free | ...::free |
| regular.rs:26:1:32:1 | fn usage | ...::usage |
| regular.rs:34:1:38:1 | enum MyEnum | ...::MyEnum |
| regular.rs:35:5:35:12 | Variant1 | ...::Variant1 |
| regular.rs:36:5:36:19 | Variant2 | ...::Variant2 |
| regular.rs:37:5:37:25 | Variant3 | ...::Variant3 |
| regular.rs:40:1:46:1 | fn enum_qualified_usage | ...::enum_qualified_usage |
| regular.rs:48:1:55:1 | fn enum_unqualified_usage | ...::enum_unqualified_usage |
| regular.rs:51:5:51:18 | Use | None |
| regular.rs:57:1:63:1 | fn enum_match | ...::enum_match |
| regular.rs:65:1:67:1 | trait GenericTrait | ...::GenericTrait |
| regular.rs:66:5:66:35 | fn generic_method | ...::generic_method |
| regular.rs:69:1:72:1 | struct GenericStruct | ...::GenericStruct |
| regular.rs:74:1:74:38 | struct GenericTupleStruct | ...::GenericTupleStruct |
| regular.rs:77:1:80:1 | enum GenericEnum | ...::GenericEnum |
| regular.rs:78:5:78:8 | T | ...::T |
| regular.rs:79:5:79:8 | U | ...::U |
| regular.rs:82:1:84:1 | impl GenericTrait::<...> for GenericStruct::<...> { ... } | None |
| regular.rs:83:5:83:37 | fn generic_method | <... as ...>::generic_method |
| regular.rs:86:1:88:1 | impl GenericTrait::<...> for GenericStruct::<...> { ... } | None |
| regular.rs:87:5:87:39 | fn generic_method | <... as ...>::generic_method |
| regular.rs:90:1:92:1 | impl GenericTrait::<...> for GenericTupleStruct::<...> { ... } | None |
| regular.rs:91:5:91:37 | fn generic_method | <... as ...>::generic_method |
| regular.rs:94:1:96:1 | impl GenericTrait::<...> for GenericTupleStruct::<...> { ... } | None |
| regular.rs:95:5:95:39 | fn generic_method | <... as ...>::generic_method |
| regular.rs:98:1:100:1 | impl GenericTrait::<...> for GenericEnum::<...> { ... } | None |
| regular.rs:99:5:99:37 | fn generic_method | <... as ...>::generic_method |
| regular.rs:102:1:104:1 | impl GenericTrait::<...> for GenericEnum::<...> { ... } | None |
| regular.rs:103:5:103:39 | fn generic_method | <... as ...>::generic_method |
| regular.rs:106:1:119:1 | fn generic_usage | ...::generic_usage |
resolvedPaths
| anonymous.rs:27:17:27:30 | OtherStruct {...} | repo::test | {0}::OtherStruct |
| anonymous.rs:28:9:28:9 | s | None | None |
| anonymous.rs:28:9:28:13 | ... .f(...) | repo::test | <{0}::OtherStruct as crate::regular::Trait>::f |
| anonymous.rs:29:9:29:9 | s | None | None |
| anonymous.rs:29:9:29:13 | ... .g(...) | repo::test | <{0}::OtherStruct as {0}::OtherTrait>::g |
| anonymous.rs:30:9:30:14 | nested | repo::test | {0}::nested |
| regular.rs:27:13:27:21 | Struct {...} | repo::test | crate::regular::Struct |
| regular.rs:28:5:28:5 | s | None | None |
| regular.rs:28:5:28:9 | ... .f(...) | repo::test | <crate::regular::Struct as crate::regular::Trait>::f |
| regular.rs:29:5:29:5 | s | None | None |
| regular.rs:29:5:29:9 | ... .g(...) | repo::test | <crate::regular::Struct>::g |
| regular.rs:30:5:30:5 | s | None | None |
| regular.rs:30:5:30:9 | ... .h(...) | repo::test | <_ as crate::regular::TraitWithBlanketImpl>::h |
| regular.rs:31:5:31:8 | free | repo::test | crate::regular::free |
| regular.rs:41:9:41:26 | ...::None::<...> | lang:core | crate::option::Option::None |
| regular.rs:42:9:42:20 | ...::Some | lang:core | crate::option::Option::Some |
| regular.rs:43:9:43:24 | ...::Variant1 | repo::test | crate::regular::MyEnum::Variant1 |
| regular.rs:44:9:44:24 | ...::Variant2 | repo::test | crate::regular::MyEnum::Variant2 |
| regular.rs:45:9:45:33 | ...::Variant3 {...} | repo::test | crate::regular::MyEnum::Variant3 |
| regular.rs:49:9:49:18 | None::<...> | lang:core | crate::option::Option::None |
| regular.rs:50:9:50:12 | Some | lang:core | crate::option::Option::Some |
| regular.rs:52:9:52:16 | Variant1 | repo::test | crate::regular::MyEnum::Variant1 |
| regular.rs:53:9:53:16 | Variant2 | repo::test | crate::regular::MyEnum::Variant2 |
| regular.rs:54:9:54:25 | Variant3 {...} | repo::test | crate::regular::MyEnum::Variant3 |
| regular.rs:58:11:58:11 | e | None | None |
| regular.rs:59:9:59:24 | ...::Variant1 | repo::test | crate::regular::MyEnum::Variant1 |
| regular.rs:60:9:60:27 | ...::Variant2(...) | repo::test | crate::regular::MyEnum::Variant2 |
| regular.rs:61:9:61:31 | ...::Variant3 {...} | repo::test | crate::regular::MyEnum::Variant3 |
| anonymous.rs:27:17:27:30 | OtherStruct {...} | None |
| anonymous.rs:28:9:28:9 | s | None |
| anonymous.rs:28:9:28:13 | ... .f(...) | None |
| anonymous.rs:29:9:29:9 | s | None |
| anonymous.rs:29:9:29:13 | ... .g(...) | None |
| anonymous.rs:30:9:30:14 | nested | None |
| regular.rs:27:13:27:21 | Struct {...} | ...::Struct |
| regular.rs:28:5:28:5 | s | None |
| regular.rs:28:5:28:9 | ... .f(...) | <... as ...>::f |
| regular.rs:29:5:29:5 | s | None |
| regular.rs:29:5:29:9 | ... .g(...) | <...>::g |
| regular.rs:30:5:30:5 | s | None |
| regular.rs:30:5:30:9 | ... .h(...) | <_ as ...>::h |
| regular.rs:31:5:31:8 | free | ...::free |
| regular.rs:41:9:41:26 | ...::None::<...> | ...::None |
| regular.rs:42:9:42:20 | ...::Some | ...::Some |
| regular.rs:43:9:43:24 | ...::Variant1 | ...::Variant1 |
| regular.rs:44:9:44:24 | ...::Variant2 | ...::Variant2 |
| regular.rs:45:9:45:33 | ...::Variant3 {...} | ...::Variant3 |
| regular.rs:49:9:49:18 | None::<...> | ...::None |
| regular.rs:50:9:50:12 | Some | ...::Some |
| regular.rs:52:9:52:16 | Variant1 | ...::Variant1 |
| regular.rs:53:9:53:16 | Variant2 | ...::Variant2 |
| regular.rs:54:9:54:25 | Variant3 {...} | ...::Variant3 |
| regular.rs:58:11:58:11 | e | None |
| regular.rs:59:9:59:24 | ...::Variant1 | ...::Variant1 |
| regular.rs:60:9:60:27 | ...::Variant2(...) | ...::Variant2 |
| regular.rs:61:9:61:31 | ...::Variant3 {...} | ...::Variant3 |
| regular.rs:107:13:107:41 | GenericStruct {...} | ...::GenericStruct |
| regular.rs:108:5:108:5 | x | None |
| regular.rs:108:5:108:26 | ... .generic_method(...) | <... as ...>::generic_method |
| regular.rs:109:13:109:47 | GenericStruct {...} | ...::GenericStruct |
| regular.rs:110:5:110:5 | x | None |
| regular.rs:110:5:110:23 | ... .generic_method(...) | <... as ...>::generic_method |
| regular.rs:111:13:111:30 | GenericTupleStruct | ...::GenericTupleStruct |
| regular.rs:112:5:112:5 | x | None |
| regular.rs:112:5:112:26 | ... .generic_method(...) | <... as ...>::generic_method |
| regular.rs:113:13:113:30 | GenericTupleStruct | ...::GenericTupleStruct |
| regular.rs:114:5:114:5 | x | None |
| regular.rs:114:5:114:23 | ... .generic_method(...) | <... as ...>::generic_method |
| regular.rs:115:13:115:37 | ...::T | ...::T |
| regular.rs:116:5:116:5 | x | None |
| regular.rs:116:5:116:27 | ... .generic_method(...) | <... as ...>::generic_method |
| regular.rs:117:13:117:37 | ...::U | ...::U |
| regular.rs:118:5:118:5 | x | None |
| regular.rs:118:5:118:23 | ... .generic_method(...) | <... as ...>::generic_method |
resolve
| regular.rs:27:13:27:21 | Struct {...} | regular.rs:1:1:2:18 | struct Struct |
| regular.rs:28:5:28:9 | ... .f(...) | regular.rs:9:5:9:18 | fn f |
| regular.rs:29:5:29:9 | ... .g(...) | anonymous.rs:15:9:15:22 | fn g |
| regular.rs:29:5:29:9 | ... .g(...) | regular.rs:13:5:13:18 | fn g |
| regular.rs:30:5:30:9 | ... .h(...) | regular.rs:21:5:21:18 | fn h |
| regular.rs:31:5:31:8 | free | regular.rs:24:1:24:12 | fn free |
| regular.rs:43:9:43:24 | ...::Variant1 | regular.rs:35:5:35:12 | Variant1 |
| regular.rs:44:9:44:24 | ...::Variant2 | regular.rs:36:5:36:19 | Variant2 |
| regular.rs:45:9:45:33 | ...::Variant3 {...} | regular.rs:37:5:37:25 | Variant3 |
| regular.rs:52:9:52:16 | Variant1 | regular.rs:35:5:35:12 | Variant1 |
| regular.rs:53:9:53:16 | Variant2 | regular.rs:36:5:36:19 | Variant2 |
| regular.rs:54:9:54:25 | Variant3 {...} | regular.rs:37:5:37:25 | Variant3 |
| regular.rs:59:9:59:24 | ...::Variant1 | regular.rs:35:5:35:12 | Variant1 |
| regular.rs:60:9:60:27 | ...::Variant2(...) | regular.rs:36:5:36:19 | Variant2 |
| regular.rs:61:9:61:31 | ...::Variant3 {...} | regular.rs:37:5:37:25 | Variant3 |
| regular.rs:107:13:107:41 | GenericStruct {...} | regular.rs:69:1:72:1 | struct GenericStruct |
| regular.rs:108:5:108:26 | ... .generic_method(...) | regular.rs:83:5:83:37 | fn generic_method |
| regular.rs:109:13:109:47 | GenericStruct {...} | regular.rs:69:1:72:1 | struct GenericStruct |
| regular.rs:110:5:110:23 | ... .generic_method(...) | regular.rs:87:5:87:39 | fn generic_method |
| regular.rs:111:13:111:30 | GenericTupleStruct | regular.rs:74:1:74:38 | struct GenericTupleStruct |
| regular.rs:112:5:112:26 | ... .generic_method(...) | regular.rs:91:5:91:37 | fn generic_method |
| regular.rs:113:13:113:30 | GenericTupleStruct | regular.rs:74:1:74:38 | struct GenericTupleStruct |
| regular.rs:114:5:114:23 | ... .generic_method(...) | regular.rs:95:5:95:39 | fn generic_method |
| regular.rs:115:13:115:37 | ...::T | regular.rs:78:5:78:8 | T |
| regular.rs:116:5:116:27 | ... .generic_method(...) | regular.rs:99:5:99:37 | fn generic_method |
| regular.rs:117:13:117:37 | ...::U | regular.rs:79:5:79:8 | U |
| regular.rs:118:5:118:23 | ... .generic_method(...) | regular.rs:103:5:103:39 | fn generic_method |

View File

@@ -1,30 +1,26 @@
import rust
import TestUtils
query predicate canonicalPaths(Item i, string origin, string path) {
query predicate canonicalPaths(Addressable i, string answer) {
toBeTested(i) and
(
origin = i.getCrateOrigin()
answer = i.getCanonicalPath().toString()
or
not i.hasCrateOrigin() and origin = "None"
) and
(
path = i.getExtendedCanonicalPath()
or
not i.hasExtendedCanonicalPath() and path = "None"
not i.hasCanonicalPath() and answer = "None"
)
}
query predicate resolvedPaths(Resolvable e, string origin, string path) {
toBeTested(e) and
query predicate resolvedPaths(Resolvable i, string answer) {
toBeTested(i) and
(
origin = e.getResolvedCrateOrigin()
answer = i.getResolvedCanonicalPath().toString()
or
not e.hasResolvedCrateOrigin() and origin = "None"
) and
(
path = e.getResolvedPath()
or
not e.hasResolvedPath() and path = "None"
not i.hasResolvedCanonicalPath() and answer = "None"
)
}
query predicate resolve(Resolvable i, Addressable j) {
toBeTested(i) and
toBeTested(j) and
i.getResolvedCanonicalPath() = j.getCanonicalPath()
}

View File

@@ -61,3 +61,59 @@ fn enum_match(e: MyEnum) {
MyEnum::Variant3 { .. } => {}
}
}
trait GenericTrait<T> {
fn generic_method(&self, t: T);
}
struct GenericStruct<T, U> {
pub t: T,
pub u: U,
}
struct GenericTupleStruct<T, U>(T, U);
enum GenericEnum<T, U> {
T(T),
U(U),
}
impl<T> GenericTrait<T> for GenericStruct<i32, T> {
fn generic_method(&self, t: T) {}
}
impl GenericTrait<i32> for GenericStruct<&str, i32> {
fn generic_method(&self, t: i32) {}
}
impl<T> GenericTrait<T> for GenericTupleStruct<i32, T> {
fn generic_method(&self, t: T) {}
}
impl GenericTrait<i32> for GenericTupleStruct<&str, i32> {
fn generic_method(&self, t: i32) {}
}
impl<T> GenericTrait<T> for GenericEnum<i32, T> {
fn generic_method(&self, t: T) {}
}
impl GenericTrait<i32> for GenericEnum<&str, i32> {
fn generic_method(&self, t: i32) {}
}
fn generic_usage() {
let x = GenericStruct { t: 0, u: "" };
x.generic_method("hi");
let x = GenericStruct { t: "hello", u: 42 };
x.generic_method(0);
let x = GenericTupleStruct(0, "");
x.generic_method("hi");
let x = GenericTupleStruct("hello", 42);
x.generic_method(0);
let x = GenericEnum::<_, &str>::T(0);
x.generic_method("hey");
let x = GenericEnum::<&str, _>::U(0);
x.generic_method(1);
}

View File

@@ -3,9 +3,9 @@ import codeql.rust.elements
import TestUtils
from
Const x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs,
string hasBody, string isConst, string isDefault, string hasName, string hasTypeRepr,
string hasVisibility
Const x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasCanonicalPath,
int getNumberOfAttrs, string hasBody, string isConst, string isDefault, string hasName,
string hasTypeRepr, string hasVisibility
where
toBeTested(x) and
not x.isUnknown() and
@@ -15,6 +15,7 @@ where
else hasExtendedCanonicalPath = "no"
) and
(if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and
(if x.hasCanonicalPath() then hasCanonicalPath = "yes" else hasCanonicalPath = "no") and
getNumberOfAttrs = x.getNumberOfAttrs() and
(if x.hasBody() then hasBody = "yes" else hasBody = "no") and
(if x.isConst() then isConst = "yes" else isConst = "no") and
@@ -23,5 +24,6 @@ where
(if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and
if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no"
select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin,
"getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody, "isConst:", isConst, "isDefault:",
isDefault, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr, "hasVisibility:", hasVisibility
"hasCanonicalPath:", hasCanonicalPath, "getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody,
"isConst:", isConst, "isDefault:", isDefault, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr,
"hasVisibility:", hasVisibility

View File

@@ -0,0 +1,7 @@
// generated by codegen, do not edit
import codeql.rust.elements
import TestUtils
from Const x
where toBeTested(x) and not x.isUnknown()
select x, x.getCanonicalPath()

Some files were not shown because too many files have changed in this diff Show More