Rust: update rust-analyzer source and run codegen

This commit is contained in:
Taus
2026-04-15 13:11:27 +00:00
parent 12344713cb
commit 5f76c946de
92 changed files with 2857 additions and 1011 deletions

View File

@@ -159,12 +159,12 @@ use_repo(
http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# rust-analyzer sources needed by the rust ast-generator (see `rust/ast-generator/README.md`)
RUST_ANALYZER_SRC_TAG = "2025-01-07"
RUST_ANALYZER_SRC_TAG = "2026-04-13"
http_archive(
name = "rust-analyzer-src",
build_file = "//rust/ast-generator:BUILD.rust-analyzer-src.bazel",
integrity = "sha256-eo8mIaUafZL8LOM65bDIIIXw1rNQ/P/x5RK/XUtgo5g=",
integrity = "sha256-UB/+EVx/6j4VGvnb7jfRqPaoc7Uwci3rEt6il+2J1Ds=",
patch_args = ["-p1"],
patches = [
"//rust/ast-generator:patches/rust-analyzer.patch",

View File

@@ -1,5 +1,5 @@
diff --git a/xtask/src/codegen/grammar.rs b/xtask/src/codegen/grammar.rs
index e7534582f2..49c96f1be3 100644
index 257429c..ddbe321 100644
--- a/xtask/src/codegen/grammar.rs
+++ b/xtask/src/codegen/grammar.rs
@@ -3,7 +3,9 @@
@@ -22,7 +22,7 @@ index e7534582f2..49c96f1be3 100644
use self::ast_src::{AstEnumSrc, AstNodeSrc, AstSrc, Cardinality, Field, KindsSrc};
pub(crate) fn generate(check: bool) {
@@ -624,7 +626,7 @@ fn pluralize(s: &str) -> String {
@@ -775,7 +777,7 @@ fn pluralize(s: &str) -> String {
}
impl Field {
@@ -31,26 +31,26 @@ index e7534582f2..49c96f1be3 100644
matches!(self, Field::Node { cardinality: Cardinality::Many, .. })
}
fn token_kind(&self) -> Option<proc_macro2::TokenStream> {
@@ -636,7 +638,7 @@ impl Field {
@@ -787,7 +789,7 @@ impl Field {
_ => None,
}
}
- fn method_name(&self) -> String {
+ pub fn method_name(&self) -> String {
match self {
Field::Token(name) => {
let name = match name.as_str() {
@@ -682,7 +684,7 @@ impl Field {
Field::Token { name, token, .. } => {
if let Some(name) = name {
@@ -836,7 +838,7 @@ impl Field {
}
}
}
- fn ty(&self) -> proc_macro2::Ident {
+ pub fn ty(&self) -> proc_macro2::Ident {
match self {
Field::Token(_) => format_ident!("SyntaxToken"),
Field::Token { .. } => format_ident!("SyntaxToken"),
Field::Node { ty, .. } => format_ident!("{}", ty),
@@ -699,7 +701,7 @@ fn clean_token_name(name: &str) -> String {
}
@@ -849,7 +851,7 @@ fn clean_token_name(name: &str) -> String {
if cleaned.is_empty() { name.to_owned() } else { cleaned.to_owned() }
}
-fn lower(grammar: &Grammar) -> AstSrc {
@@ -59,7 +59,7 @@ index e7534582f2..49c96f1be3 100644
tokens:
"Whitespace Comment String ByteString CString IntNumber FloatNumber Char Byte Ident"
diff --git a/xtask/src/codegen/grammar/ast_src.rs b/xtask/src/codegen/grammar/ast_src.rs
index 9269d15423..babe7ca1bf 100644
index a0abdf0..5f59f97 100644
--- a/xtask/src/codegen/grammar/ast_src.rs
+++ b/xtask/src/codegen/grammar/ast_src.rs
@@ -1,5 +1,8 @@

View File

@@ -308,10 +308,10 @@ fn write_schema(
fn get_fields(node: &AstNodeSrc) -> Vec<FieldInfo> {
let mut result = Vec::new();
for field in &node.fields {
if let Field::Token(name) = field {
if should_predicate_be_extracted(name) {
if let Field::Token { token, .. } = field {
if should_predicate_be_extracted(token) {
result.push(FieldInfo {
name: format!("is_{name}"),
name: format!("is_{token}"),
ty: FieldType::Predicate,
});
}
@@ -326,7 +326,7 @@ fn get_fields(node: &AstNodeSrc) -> Vec<FieldInfo> {
continue;
}
let ty = match field {
Field::Token(_) => continue,
Field::Token { .. } => continue,
Field::Node {
ty, cardinality, ..
} => match cardinality {

View File

@@ -1,2 +1,2 @@
mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7
top.rs ea9c28694da3d0e90d09fc7d31824e35817c34720ea91e7c8bf8e7e74ffe4ee8 ea9c28694da3d0e90d09fc7d31824e35817c34720ea91e7c8bf8e7e74ffe4ee8
top.rs 3773804c68b168304266d17d0bbe5de721ae138043dcf1ff8679e6562a3b94fc 3773804c68b168304266d17d0bbe5de721ae138043dcf1ff8679e6562a3b94fc

View File

@@ -824,6 +824,42 @@ impl From<trap::Label<Callable>> for trap::Label<Element> {
}
}
#[derive(Debug)]
pub struct CfgPredicate {
_unused: ()
}
impl trap::TrapClass for CfgPredicate {
fn class_name() -> &'static str { "CfgPredicate" }
}
impl From<trap::Label<CfgPredicate>> for trap::Label<AstNode> {
fn from(value: trap::Label<CfgPredicate>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgPredicate is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgPredicate>> for trap::Label<Locatable> {
fn from(value: trap::Label<CfgPredicate>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgPredicate is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgPredicate>> for trap::Label<Element> {
fn from(value: trap::Label<CfgPredicate>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgPredicate is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct Expr {
_unused: ()
@@ -1003,8 +1039,8 @@ impl From<trap::Label<ForBinder>> for trap::Label<Element> {
#[derive(Debug)]
pub struct FormatArgsArg {
pub id: trap::TrapId<FormatArgsArg>,
pub arg_name: Option<trap::Label<FormatArgsArgName>>,
pub expr: Option<trap::Label<Expr>>,
pub name: Option<trap::Label<Name>>,
}
impl trap::TrapEntry for FormatArgsArg {
@@ -1014,12 +1050,12 @@ impl trap::TrapEntry for FormatArgsArg {
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("format_args_args", vec![id.into()]);
if let Some(v) = self.arg_name {
out.add_tuple("format_args_arg_arg_names", vec![id.into(), v.into()]);
}
if let Some(v) = self.expr {
out.add_tuple("format_args_arg_exprs", vec![id.into(), v.into()]);
}
if let Some(v) = self.name {
out.add_tuple("format_args_arg_names", vec![id.into(), v.into()]);
}
}
}
@@ -1054,6 +1090,52 @@ impl From<trap::Label<FormatArgsArg>> for trap::Label<Element> {
}
}
#[derive(Debug)]
pub struct FormatArgsArgName {
pub id: trap::TrapId<FormatArgsArgName>,
}
impl trap::TrapEntry for FormatArgsArgName {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("format_args_arg_names", vec![id.into()]);
}
}
impl trap::TrapClass for FormatArgsArgName {
fn class_name() -> &'static str { "FormatArgsArgName" }
}
impl From<trap::Label<FormatArgsArgName>> for trap::Label<AstNode> {
fn from(value: trap::Label<FormatArgsArgName>) -> Self {
// SAFETY: this is safe because in the dbscheme FormatArgsArgName is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<FormatArgsArgName>> for trap::Label<Locatable> {
fn from(value: trap::Label<FormatArgsArgName>) -> Self {
// SAFETY: this is safe because in the dbscheme FormatArgsArgName is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<FormatArgsArgName>> for trap::Label<Element> {
fn from(value: trap::Label<FormatArgsArgName>) -> Self {
// SAFETY: this is safe because in the dbscheme FormatArgsArgName is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct GenericArg {
_unused: ()
@@ -1598,33 +1680,7 @@ impl From<trap::Label<MatchGuard>> for trap::Label<Element> {
#[derive(Debug)]
pub struct Meta {
pub id: trap::TrapId<Meta>,
pub expr: Option<trap::Label<Expr>>,
pub is_unsafe: bool,
pub path: Option<trap::Label<Path>>,
pub token_tree: Option<trap::Label<TokenTree>>,
}
impl trap::TrapEntry for Meta {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("meta", vec![id.into()]);
if let Some(v) = self.expr {
out.add_tuple("meta_exprs", vec![id.into(), v.into()]);
}
if self.is_unsafe {
out.add_tuple("meta_is_unsafe", vec![id.into()]);
}
if let Some(v) = self.path {
out.add_tuple("meta_paths", vec![id.into(), v.into()]);
}
if let Some(v) = self.token_tree {
out.add_tuple("meta_token_trees", vec![id.into(), v.into()]);
}
}
_unused: ()
}
impl trap::TrapClass for Meta {
@@ -2465,7 +2521,7 @@ impl From<trap::Label<StructExprFieldList>> for trap::Label<Element> {
pub struct StructField {
pub id: trap::TrapId<StructField>,
pub attrs: Vec<trap::Label<Attr>>,
pub default: Option<trap::Label<Expr>>,
pub default_val: Option<trap::Label<ConstArg>>,
pub is_unsafe: bool,
pub name: Option<trap::Label<Name>>,
pub type_repr: Option<trap::Label<TypeRepr>>,
@@ -2482,8 +2538,8 @@ impl trap::TrapEntry for StructField {
for (i, v) in self.attrs.into_iter().enumerate() {
out.add_tuple("struct_field_attrs", vec![id.into(), i.into(), v.into()]);
}
if let Some(v) = self.default {
out.add_tuple("struct_field_defaults", vec![id.into(), v.into()]);
if let Some(v) = self.default_val {
out.add_tuple("struct_field_default_vals", vec![id.into(), v.into()]);
}
if self.is_unsafe {
out.add_tuple("struct_field_is_unsafe", vec![id.into()]);
@@ -2725,6 +2781,60 @@ impl From<trap::Label<TokenTree>> for trap::Label<Element> {
}
}
#[derive(Debug)]
pub struct TryBlockModifier {
pub id: trap::TrapId<TryBlockModifier>,
pub is_try: bool,
pub type_repr: Option<trap::Label<TypeRepr>>,
}
impl trap::TrapEntry for TryBlockModifier {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("try_block_modifiers", vec![id.into()]);
if self.is_try {
out.add_tuple("try_block_modifier_is_try", vec![id.into()]);
}
if let Some(v) = self.type_repr {
out.add_tuple("try_block_modifier_type_reprs", vec![id.into(), v.into()]);
}
}
}
impl trap::TrapClass for TryBlockModifier {
fn class_name() -> &'static str { "TryBlockModifier" }
}
impl From<trap::Label<TryBlockModifier>> for trap::Label<AstNode> {
fn from(value: trap::Label<TryBlockModifier>) -> Self {
// SAFETY: this is safe because in the dbscheme TryBlockModifier is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<TryBlockModifier>> for trap::Label<Locatable> {
fn from(value: trap::Label<TryBlockModifier>) -> Self {
// SAFETY: this is safe because in the dbscheme TryBlockModifier is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<TryBlockModifier>> for trap::Label<Element> {
fn from(value: trap::Label<TryBlockModifier>) -> Self {
// SAFETY: this is safe because in the dbscheme TryBlockModifier is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct TupleField {
pub id: trap::TrapId<TupleField>,
@@ -4448,6 +4558,242 @@ impl From<trap::Label<CastExpr>> for trap::Label<Element> {
}
}
#[derive(Debug)]
pub struct CfgAtom {
pub id: trap::TrapId<CfgAtom>,
}
impl trap::TrapEntry for CfgAtom {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("cfg_atoms", vec![id.into()]);
}
}
impl trap::TrapClass for CfgAtom {
fn class_name() -> &'static str { "CfgAtom" }
}
impl From<trap::Label<CfgAtom>> for trap::Label<CfgPredicate> {
fn from(value: trap::Label<CfgAtom>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgAtom is a subclass of CfgPredicate
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgAtom>> for trap::Label<AstNode> {
fn from(value: trap::Label<CfgAtom>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgAtom is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgAtom>> for trap::Label<Locatable> {
fn from(value: trap::Label<CfgAtom>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgAtom is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgAtom>> for trap::Label<Element> {
fn from(value: trap::Label<CfgAtom>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgAtom is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct CfgAttrMeta {
pub id: trap::TrapId<CfgAttrMeta>,
pub cfg_predicate: Option<trap::Label<CfgPredicate>>,
pub metas: Vec<trap::Label<Meta>>,
}
impl trap::TrapEntry for CfgAttrMeta {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("cfg_attr_meta", vec![id.into()]);
if let Some(v) = self.cfg_predicate {
out.add_tuple("cfg_attr_meta_cfg_predicates", vec![id.into(), v.into()]);
}
for (i, v) in self.metas.into_iter().enumerate() {
out.add_tuple("cfg_attr_meta_metas", vec![id.into(), i.into(), v.into()]);
}
}
}
impl trap::TrapClass for CfgAttrMeta {
fn class_name() -> &'static str { "CfgAttrMeta" }
}
impl From<trap::Label<CfgAttrMeta>> for trap::Label<Meta> {
fn from(value: trap::Label<CfgAttrMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgAttrMeta is a subclass of Meta
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgAttrMeta>> for trap::Label<AstNode> {
fn from(value: trap::Label<CfgAttrMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgAttrMeta is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgAttrMeta>> for trap::Label<Locatable> {
fn from(value: trap::Label<CfgAttrMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgAttrMeta is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgAttrMeta>> for trap::Label<Element> {
fn from(value: trap::Label<CfgAttrMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgAttrMeta is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct CfgComposite {
pub id: trap::TrapId<CfgComposite>,
pub cfg_predicates: Vec<trap::Label<CfgPredicate>>,
}
impl trap::TrapEntry for CfgComposite {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("cfg_composites", vec![id.into()]);
for (i, v) in self.cfg_predicates.into_iter().enumerate() {
out.add_tuple("cfg_composite_cfg_predicates", vec![id.into(), i.into(), v.into()]);
}
}
}
impl trap::TrapClass for CfgComposite {
fn class_name() -> &'static str { "CfgComposite" }
}
impl From<trap::Label<CfgComposite>> for trap::Label<CfgPredicate> {
fn from(value: trap::Label<CfgComposite>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgComposite is a subclass of CfgPredicate
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgComposite>> for trap::Label<AstNode> {
fn from(value: trap::Label<CfgComposite>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgComposite is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgComposite>> for trap::Label<Locatable> {
fn from(value: trap::Label<CfgComposite>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgComposite is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgComposite>> for trap::Label<Element> {
fn from(value: trap::Label<CfgComposite>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgComposite is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct CfgMeta {
pub id: trap::TrapId<CfgMeta>,
pub cfg_predicate: Option<trap::Label<CfgPredicate>>,
}
impl trap::TrapEntry for CfgMeta {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("cfg_meta", vec![id.into()]);
if let Some(v) = self.cfg_predicate {
out.add_tuple("cfg_meta_cfg_predicates", vec![id.into(), v.into()]);
}
}
}
impl trap::TrapClass for CfgMeta {
fn class_name() -> &'static str { "CfgMeta" }
}
impl From<trap::Label<CfgMeta>> for trap::Label<Meta> {
fn from(value: trap::Label<CfgMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgMeta is a subclass of Meta
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgMeta>> for trap::Label<AstNode> {
fn from(value: trap::Label<CfgMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgMeta is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgMeta>> for trap::Label<Locatable> {
fn from(value: trap::Label<CfgMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgMeta is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<CfgMeta>> for trap::Label<Element> {
fn from(value: trap::Label<CfgMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme CfgMeta is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct ClosureExpr {
pub id: trap::TrapId<ClosureExpr>,
@@ -5651,6 +5997,69 @@ impl From<trap::Label<Item>> for trap::Label<Addressable> {
}
}
#[derive(Debug)]
pub struct KeyValueMeta {
pub id: trap::TrapId<KeyValueMeta>,
pub expr: Option<trap::Label<Expr>>,
pub path: Option<trap::Label<Path>>,
}
impl trap::TrapEntry for KeyValueMeta {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("key_value_meta", vec![id.into()]);
if let Some(v) = self.expr {
out.add_tuple("key_value_meta_exprs", vec![id.into(), v.into()]);
}
if let Some(v) = self.path {
out.add_tuple("key_value_meta_paths", vec![id.into(), v.into()]);
}
}
}
impl trap::TrapClass for KeyValueMeta {
fn class_name() -> &'static str { "KeyValueMeta" }
}
impl From<trap::Label<KeyValueMeta>> for trap::Label<Meta> {
fn from(value: trap::Label<KeyValueMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme KeyValueMeta is a subclass of Meta
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<KeyValueMeta>> for trap::Label<AstNode> {
fn from(value: trap::Label<KeyValueMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme KeyValueMeta is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<KeyValueMeta>> for trap::Label<Locatable> {
fn from(value: trap::Label<KeyValueMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme KeyValueMeta is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<KeyValueMeta>> for trap::Label<Element> {
fn from(value: trap::Label<KeyValueMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme KeyValueMeta is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct LabelableExpr {
_unused: ()
@@ -6997,6 +7406,65 @@ impl From<trap::Label<PathExprBase>> for trap::Label<Element> {
}
}
#[derive(Debug)]
pub struct PathMeta {
pub id: trap::TrapId<PathMeta>,
pub path: Option<trap::Label<Path>>,
}
impl trap::TrapEntry for PathMeta {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("path_meta", vec![id.into()]);
if let Some(v) = self.path {
out.add_tuple("path_meta_paths", vec![id.into(), v.into()]);
}
}
}
impl trap::TrapClass for PathMeta {
fn class_name() -> &'static str { "PathMeta" }
}
impl From<trap::Label<PathMeta>> for trap::Label<Meta> {
fn from(value: trap::Label<PathMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme PathMeta is a subclass of Meta
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<PathMeta>> for trap::Label<AstNode> {
fn from(value: trap::Label<PathMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme PathMeta is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<PathMeta>> for trap::Label<Locatable> {
fn from(value: trap::Label<PathMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme PathMeta is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<PathMeta>> for trap::Label<Element> {
fn from(value: trap::Label<PathMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme PathMeta is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct PathPat {
pub id: trap::TrapId<PathPat>,
@@ -8123,6 +8591,69 @@ impl From<trap::Label<StructPat>> for trap::Label<PathAstNode> {
}
}
#[derive(Debug)]
pub struct TokenTreeMeta {
pub id: trap::TrapId<TokenTreeMeta>,
pub path: Option<trap::Label<Path>>,
pub token_tree: Option<trap::Label<TokenTree>>,
}
impl trap::TrapEntry for TokenTreeMeta {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("token_tree_meta", vec![id.into()]);
if let Some(v) = self.path {
out.add_tuple("token_tree_meta_paths", vec![id.into(), v.into()]);
}
if let Some(v) = self.token_tree {
out.add_tuple("token_tree_meta_token_trees", vec![id.into(), v.into()]);
}
}
}
impl trap::TrapClass for TokenTreeMeta {
fn class_name() -> &'static str { "TokenTreeMeta" }
}
impl From<trap::Label<TokenTreeMeta>> for trap::Label<Meta> {
fn from(value: trap::Label<TokenTreeMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme TokenTreeMeta is a subclass of Meta
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<TokenTreeMeta>> for trap::Label<AstNode> {
fn from(value: trap::Label<TokenTreeMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme TokenTreeMeta is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<TokenTreeMeta>> for trap::Label<Locatable> {
fn from(value: trap::Label<TokenTreeMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme TokenTreeMeta is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<TokenTreeMeta>> for trap::Label<Element> {
fn from(value: trap::Label<TokenTreeMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme TokenTreeMeta is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct TryExpr {
pub id: trap::TrapId<TryExpr>,
@@ -8687,11 +9218,74 @@ impl From<trap::Label<UnderscoreExpr>> for trap::Label<Element> {
}
}
#[derive(Debug)]
pub struct UnsafeMeta {
pub id: trap::TrapId<UnsafeMeta>,
pub is_unsafe: bool,
pub meta: Option<trap::Label<Meta>>,
}
impl trap::TrapEntry for UnsafeMeta {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("unsafe_meta", vec![id.into()]);
if self.is_unsafe {
out.add_tuple("unsafe_meta_is_unsafe", vec![id.into()]);
}
if let Some(v) = self.meta {
out.add_tuple("unsafe_meta_meta", vec![id.into(), v.into()]);
}
}
}
impl trap::TrapClass for UnsafeMeta {
fn class_name() -> &'static str { "UnsafeMeta" }
}
impl From<trap::Label<UnsafeMeta>> for trap::Label<Meta> {
fn from(value: trap::Label<UnsafeMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme UnsafeMeta is a subclass of Meta
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<UnsafeMeta>> for trap::Label<AstNode> {
fn from(value: trap::Label<UnsafeMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme UnsafeMeta is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<UnsafeMeta>> for trap::Label<Locatable> {
fn from(value: trap::Label<UnsafeMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme UnsafeMeta is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<UnsafeMeta>> for trap::Label<Element> {
fn from(value: trap::Label<UnsafeMeta>) -> Self {
// SAFETY: this is safe because in the dbscheme UnsafeMeta is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct Variant {
pub id: trap::TrapId<Variant>,
pub attrs: Vec<trap::Label<Attr>>,
pub discriminant: Option<trap::Label<Expr>>,
pub const_arg: Option<trap::Label<ConstArg>>,
pub field_list: Option<trap::Label<FieldList>>,
pub name: Option<trap::Label<Name>>,
pub visibility: Option<trap::Label<Visibility>>,
@@ -8707,8 +9301,8 @@ impl trap::TrapEntry for Variant {
for (i, v) in self.attrs.into_iter().enumerate() {
out.add_tuple("variant_attrs", vec![id.into(), i.into(), v.into()]);
}
if let Some(v) = self.discriminant {
out.add_tuple("variant_discriminants", vec![id.into(), v.into()]);
if let Some(v) = self.const_arg {
out.add_tuple("variant_const_args", vec![id.into(), v.into()]);
}
if let Some(v) = self.field_list {
out.add_tuple("variant_field_lists", vec![id.into(), v.into()]);
@@ -9109,9 +9703,9 @@ pub struct BlockExpr {
pub is_const: bool,
pub is_gen: bool,
pub is_move: bool,
pub is_try: bool,
pub is_unsafe: bool,
pub stmt_list: Option<trap::Label<StmtList>>,
pub try_block_modifier: Option<trap::Label<TryBlockModifier>>,
}
impl trap::TrapEntry for BlockExpr {
@@ -9139,15 +9733,15 @@ impl trap::TrapEntry for BlockExpr {
if self.is_move {
out.add_tuple("block_expr_is_move", vec![id.into()]);
}
if self.is_try {
out.add_tuple("block_expr_is_try", vec![id.into()]);
}
if self.is_unsafe {
out.add_tuple("block_expr_is_unsafe", vec![id.into()]);
}
if let Some(v) = self.stmt_list {
out.add_tuple("block_expr_stmt_lists", vec![id.into(), v.into()]);
}
if let Some(v) = self.try_block_modifier {
out.add_tuple("block_expr_try_block_modifiers", vec![id.into(), v.into()]);
}
}
}
@@ -10069,103 +10663,6 @@ impl From<trap::Label<Trait>> for trap::Label<Addressable> {
}
}
#[derive(Debug)]
pub struct TraitAlias {
pub id: trap::TrapId<TraitAlias>,
pub attrs: Vec<trap::Label<Attr>>,
pub generic_param_list: Option<trap::Label<GenericParamList>>,
pub name: Option<trap::Label<Name>>,
pub type_bound_list: Option<trap::Label<TypeBoundList>>,
pub visibility: Option<trap::Label<Visibility>>,
pub where_clause: Option<trap::Label<WhereClause>>,
}
impl trap::TrapEntry for TraitAlias {
fn extract_id(&mut self) -> trap::TrapId<Self> {
std::mem::replace(&mut self.id, trap::TrapId::Star)
}
fn emit(self, id: trap::Label<Self>, out: &mut trap::Writer) {
out.add_tuple("trait_aliases", vec![id.into()]);
for (i, v) in self.attrs.into_iter().enumerate() {
out.add_tuple("trait_alias_attrs", vec![id.into(), i.into(), v.into()]);
}
if let Some(v) = self.generic_param_list {
out.add_tuple("trait_alias_generic_param_lists", vec![id.into(), v.into()]);
}
if let Some(v) = self.name {
out.add_tuple("trait_alias_names", vec![id.into(), v.into()]);
}
if let Some(v) = self.type_bound_list {
out.add_tuple("trait_alias_type_bound_lists", vec![id.into(), v.into()]);
}
if let Some(v) = self.visibility {
out.add_tuple("trait_alias_visibilities", vec![id.into(), v.into()]);
}
if let Some(v) = self.where_clause {
out.add_tuple("trait_alias_where_clauses", vec![id.into(), v.into()]);
}
}
}
impl trap::TrapClass for TraitAlias {
fn class_name() -> &'static str { "TraitAlias" }
}
impl From<trap::Label<TraitAlias>> for trap::Label<Item> {
fn from(value: trap::Label<TraitAlias>) -> Self {
// SAFETY: this is safe because in the dbscheme TraitAlias is a subclass of Item
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<TraitAlias>> for trap::Label<Stmt> {
fn from(value: trap::Label<TraitAlias>) -> Self {
// SAFETY: this is safe because in the dbscheme TraitAlias is a subclass of Stmt
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<TraitAlias>> for trap::Label<AstNode> {
fn from(value: trap::Label<TraitAlias>) -> Self {
// SAFETY: this is safe because in the dbscheme TraitAlias is a subclass of AstNode
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<TraitAlias>> for trap::Label<Locatable> {
fn from(value: trap::Label<TraitAlias>) -> Self {
// SAFETY: this is safe because in the dbscheme TraitAlias is a subclass of Locatable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<TraitAlias>> for trap::Label<Element> {
fn from(value: trap::Label<TraitAlias>) -> Self {
// SAFETY: this is safe because in the dbscheme TraitAlias is a subclass of Element
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
impl From<trap::Label<TraitAlias>> for trap::Label<Addressable> {
fn from(value: trap::Label<TraitAlias>) -> Self {
// SAFETY: this is safe because in the dbscheme TraitAlias is a subclass of Addressable
unsafe {
Self::from_untyped(value.as_untyped())
}
}
}
#[derive(Debug)]
pub struct TypeItem {
_unused: ()

View File

@@ -53,6 +53,18 @@ impl Translator<'_> {
self.post_emit(node, label);
Some(label)
}
pub(crate) fn emit_cfg_predicate(
&mut self,
node: &ast::CfgPredicate,
) -> Option<Label<generated::CfgPredicate>> {
let label = match node {
ast::CfgPredicate::CfgAtom(inner) => self.emit_cfg_atom(inner).map(Into::into),
ast::CfgPredicate::CfgComposite(inner) => {
self.emit_cfg_composite(inner).map(Into::into)
}
}?;
Some(label)
}
pub(crate) fn emit_expr(&mut self, node: &ast::Expr) -> Option<Label<generated::Expr>> {
let label = match node {
ast::Expr::ArrayExpr(inner) => self.emit_array_expr(inner).map(Into::into),
@@ -149,6 +161,21 @@ impl Translator<'_> {
}?;
Some(label)
}
pub(crate) fn emit_meta(&mut self, node: &ast::Meta) -> Option<Label<generated::Meta>> {
if let Some(label) = self.pre_emit(node) {
return Some(label);
}
let label = match node {
ast::Meta::CfgAttrMeta(inner) => self.emit_cfg_attr_meta(inner).map(Into::into),
ast::Meta::CfgMeta(inner) => self.emit_cfg_meta(inner).map(Into::into),
ast::Meta::KeyValueMeta(inner) => self.emit_key_value_meta(inner).map(Into::into),
ast::Meta::PathMeta(inner) => self.emit_path_meta(inner).map(Into::into),
ast::Meta::TokenTreeMeta(inner) => self.emit_token_tree_meta(inner).map(Into::into),
ast::Meta::UnsafeMeta(inner) => self.emit_unsafe_meta(inner).map(Into::into),
}?;
self.post_emit(node, label);
Some(label)
}
pub(crate) fn emit_pat(&mut self, node: &ast::Pat) -> Option<Label<generated::Pat>> {
let label = match node {
ast::Pat::BoxPat(inner) => self.emit_box_pat(inner).map(Into::into),
@@ -226,7 +253,6 @@ impl Translator<'_> {
ast::Item::Static(inner) => self.emit_static(inner).map(Into::into),
ast::Item::Struct(inner) => self.emit_struct(inner).map(Into::into),
ast::Item::Trait(inner) => self.emit_trait(inner).map(Into::into),
ast::Item::TraitAlias(inner) => self.emit_trait_alias(inner).map(Into::into),
ast::Item::TypeAlias(inner) => self.emit_type_alias(inner).map(Into::into),
ast::Item::Union(inner) => self.emit_union(inner).map(Into::into),
ast::Item::Use(inner) => self.emit_use(inner).map(Into::into),
@@ -598,10 +624,12 @@ impl Translator<'_> {
let is_const = node.const_token().is_some();
let is_gen = node.gen_token().is_some();
let is_move = node.move_token().is_some();
let is_try = node.try_token().is_some();
let is_unsafe = node.unsafe_token().is_some();
let label = node.label().and_then(|x| self.emit_label(&x));
let stmt_list = node.stmt_list().and_then(|x| self.emit_stmt_list(&x));
let try_block_modifier = node
.try_block_modifier()
.and_then(|x| self.emit_try_block_modifier(&x));
let label = self.trap.emit(generated::BlockExpr {
id: TrapId::Star,
attrs,
@@ -609,10 +637,10 @@ impl Translator<'_> {
is_const,
is_gen,
is_move,
is_try,
is_unsafe,
label,
stmt_list,
try_block_modifier,
});
self.emit_location(label, node);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
@@ -688,6 +716,63 @@ impl Translator<'_> {
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_cfg_atom(
&mut self,
node: &ast::CfgAtom,
) -> Option<Label<generated::CfgAtom>> {
let label = self.trap.emit(generated::CfgAtom { id: TrapId::Star });
self.emit_location(label, node);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_cfg_attr_meta(
&mut self,
node: &ast::CfgAttrMeta,
) -> Option<Label<generated::CfgAttrMeta>> {
let cfg_predicate = node
.cfg_predicate()
.and_then(|x| self.emit_cfg_predicate(&x));
let metas = node.metas().filter_map(|x| self.emit_meta(&x)).collect();
let label = self.trap.emit(generated::CfgAttrMeta {
id: TrapId::Star,
cfg_predicate,
metas,
});
self.emit_location(label, node);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_cfg_composite(
&mut self,
node: &ast::CfgComposite,
) -> Option<Label<generated::CfgComposite>> {
let cfg_predicates = node
.cfg_predicates()
.filter_map(|x| self.emit_cfg_predicate(&x))
.collect();
let label = self.trap.emit(generated::CfgComposite {
id: TrapId::Star,
cfg_predicates,
});
self.emit_location(label, node);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_cfg_meta(
&mut self,
node: &ast::CfgMeta,
) -> Option<Label<generated::CfgMeta>> {
let cfg_predicate = node
.cfg_predicate()
.and_then(|x| self.emit_cfg_predicate(&x));
let label = self.trap.emit(generated::CfgMeta {
id: TrapId::Star,
cfg_predicate,
});
self.emit_location(label, node);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_closure_expr(
&mut self,
node: &ast::ClosureExpr,
@@ -1105,17 +1190,30 @@ impl Translator<'_> {
&mut self,
node: &ast::FormatArgsArg,
) -> Option<Label<generated::FormatArgsArg>> {
let arg_name = node
.arg_name()
.and_then(|x| self.emit_format_args_arg_name(&x));
let expr = node.expr().and_then(|x| self.emit_expr(&x));
let name = node.name().and_then(|x| self.emit_name(&x));
let label = self.trap.emit(generated::FormatArgsArg {
id: TrapId::Star,
arg_name,
expr,
name,
});
self.emit_location(label, node);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_format_args_arg_name(
&mut self,
node: &ast::FormatArgsArgName,
) -> Option<Label<generated::FormatArgsArgName>> {
let label = self
.trap
.emit(generated::FormatArgsArgName { id: TrapId::Star });
self.emit_location(label, node);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_format_args_expr(
&mut self,
node: &ast::FormatArgsExpr,
@@ -1313,6 +1411,21 @@ impl Translator<'_> {
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_key_value_meta(
&mut self,
node: &ast::KeyValueMeta,
) -> Option<Label<generated::KeyValueMeta>> {
let expr = node.expr().and_then(|x| self.emit_expr(&x));
let path = node.path().and_then(|x| self.emit_path(&x));
let label = self.trap.emit(generated::KeyValueMeta {
id: TrapId::Star,
expr,
path,
});
self.emit_location(label, node);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_label(&mut self, node: &ast::Label) -> Option<Label<generated::Label>> {
let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x));
let label = self.trap.emit(generated::Label {
@@ -1691,26 +1804,6 @@ impl Translator<'_> {
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_meta(&mut self, node: &ast::Meta) -> Option<Label<generated::Meta>> {
if let Some(label) = self.pre_emit(node) {
return Some(label);
}
let expr = node.expr().and_then(|x| self.emit_expr(&x));
let is_unsafe = node.unsafe_token().is_some();
let path = node.path().and_then(|x| self.emit_path(&x));
let token_tree = node.token_tree().and_then(|x| self.emit_token_tree(&x));
let label = self.trap.emit(generated::Meta {
id: TrapId::Star,
expr,
is_unsafe,
path,
token_tree,
});
self.emit_location(label, node);
self.post_emit(node, label);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_method_call_expr(
&mut self,
node: &ast::MethodCallExpr,
@@ -1949,6 +2042,19 @@ impl Translator<'_> {
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_path_meta(
&mut self,
node: &ast::PathMeta,
) -> Option<Label<generated::PathMeta>> {
let path = node.path().and_then(|x| self.emit_path(&x));
let label = self.trap.emit(generated::PathMeta {
id: TrapId::Star,
path,
});
self.emit_location(label, node);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_path_pat(
&mut self,
node: &ast::PathPat,
@@ -2150,7 +2256,7 @@ impl Translator<'_> {
return None;
}
let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect();
let default = node.expr().and_then(|x| self.emit_expr(&x));
let default_val = node.default_val().and_then(|x| self.emit_const_arg(&x));
let is_unsafe = node.unsafe_token().is_some();
let name = node.name().and_then(|x| self.emit_name(&x));
let type_repr = node.ty().and_then(|x| self.emit_type(&x));
@@ -2158,7 +2264,7 @@ impl Translator<'_> {
let label = self.trap.emit(generated::StructField {
id: TrapId::Star,
attrs,
default,
default_val,
is_unsafe,
name,
type_repr,
@@ -2522,6 +2628,21 @@ impl Translator<'_> {
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_token_tree_meta(
&mut self,
node: &ast::TokenTreeMeta,
) -> Option<Label<generated::TokenTreeMeta>> {
let path = node.path().and_then(|x| self.emit_path(&x));
let token_tree = node.token_tree().and_then(|x| self.emit_token_tree(&x));
let label = self.trap.emit(generated::TokenTreeMeta {
id: TrapId::Star,
path,
token_tree,
});
self.emit_location(label, node);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_trait(&mut self, node: &ast::Trait) -> Option<Label<generated::Trait>> {
if self.should_be_excluded(node) {
return None;
@@ -2557,31 +2678,16 @@ impl Translator<'_> {
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_trait_alias(
pub(crate) fn emit_try_block_modifier(
&mut self,
node: &ast::TraitAlias,
) -> Option<Label<generated::TraitAlias>> {
if self.should_be_excluded(node) {
return None;
}
let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect();
let generic_param_list = node
.generic_param_list()
.and_then(|x| self.emit_generic_param_list(&x));
let name = node.name().and_then(|x| self.emit_name(&x));
let type_bound_list = node
.type_bound_list()
.and_then(|x| self.emit_type_bound_list(&x));
let visibility = node.visibility().and_then(|x| self.emit_visibility(&x));
let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(&x));
let label = self.trap.emit(generated::TraitAlias {
node: &ast::TryBlockModifier,
) -> Option<Label<generated::TryBlockModifier>> {
let is_try = node.try_token().is_some();
let type_repr = node.ty().and_then(|x| self.emit_type(&x));
let label = self.trap.emit(generated::TryBlockModifier {
id: TrapId::Star,
attrs,
generic_param_list,
name,
type_bound_list,
visibility,
where_clause,
is_try,
type_repr,
});
self.emit_location(label, node);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
@@ -2859,6 +2965,21 @@ impl Translator<'_> {
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_unsafe_meta(
&mut self,
node: &ast::UnsafeMeta,
) -> Option<Label<generated::UnsafeMeta>> {
let is_unsafe = node.unsafe_token().is_some();
let meta = node.meta().and_then(|x| self.emit_meta(&x));
let label = self.trap.emit(generated::UnsafeMeta {
id: TrapId::Star,
is_unsafe,
meta,
});
self.emit_location(label, node);
self.emit_tokens(node, label.into(), node.syntax().children_with_tokens());
Some(label)
}
pub(crate) fn emit_use(&mut self, node: &ast::Use) -> Option<Label<generated::Use>> {
if self.should_be_excluded(node) {
return None;
@@ -2937,14 +3058,14 @@ impl Translator<'_> {
return None;
}
let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect();
let discriminant = node.expr().and_then(|x| self.emit_expr(&x));
let const_arg = node.const_arg().and_then(|x| self.emit_const_arg(&x));
let field_list = node.field_list().and_then(|x| self.emit_field_list(&x));
let name = node.name().and_then(|x| self.emit_name(&x));
let visibility = node.visibility().and_then(|x| self.emit_visibility(&x));
let label = self.trap.emit(generated::Variant {
id: TrapId::Star,
attrs,
discriminant,
const_arg,
field_list,
name,
visibility,
@@ -3093,6 +3214,9 @@ impl HasTrapClass for ast::AssocItem {
impl HasTrapClass for ast::ExternItem {
type TrapClass = generated::ExternItem;
}
impl HasTrapClass for ast::Meta {
type TrapClass = generated::Meta;
}
impl HasTrapClass for ast::Item {
type TrapClass = generated::Item;
}
@@ -3108,9 +3232,6 @@ impl HasTrapClass for ast::Fn {
impl HasTrapClass for ast::MacroCall {
type TrapClass = generated::MacroCall;
}
impl HasTrapClass for ast::Meta {
type TrapClass = generated::Meta;
}
impl HasTrapClass for ast::PathSegment {
type TrapClass = generated::PathSegment;
}

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

@@ -1,4 +1,4 @@
lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 3f4499c892277e07380232b2c90138d7c312911ef8af4a89ba0c9c2958da028b d8a8b330f8dc43e009c261a41801893230b6b568f503c17faeae9cea54714075
lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 6856901e16b8e54da81700c78abf93268801e77dbca5d3f2d3c63f7e1eeef088 8e4cbe943860b173a519a7b797d9a6af0d3cdcc0514d9e003720a71b51d8cb8c
lib/codeql/rust/elements/Abi.qll 485a2e79f6f7bfd1c02a6e795a71e62dede3c3e150149d5f8f18b761253b7208 6159ba175e7ead0dd2e3f2788f49516c306ee11b1a443bd4bdc00b7017d559bd
lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be
lib/codeql/rust/elements/ArgList.qll 3d2f6f5542340b80a4c6e944ac17aba0d00727588bb66e501453ac0f80c82f83 afd52700bf5a337f19827846667cd0fb1fea5abbbcbc353828e292a727ea58c9
@@ -28,12 +28,17 @@ lib/codeql/rust/elements/Attr.qll 2cb6a6adf1ff9ee40bc37434320d77d74ae41ff10bbd49
lib/codeql/rust/elements/AwaitExpr.qll d8b37c01f7d27f0ec40d92a533a8f09a06af7ece1ae832b4ea8f2450c1762511 92cdb7ff0efddf26bed2b7b2729fddd197e26c1a11c8fec0c747aab642710c21
lib/codeql/rust/elements/BecomeExpr.qll 7a3cfc4894feb6be1cde664f675b18936434e68ccea52e55314c33d01491e34f 49666eca509b30d44bb02702bda67239c76bf8d9f231022c9cf6ecca123f8616
lib/codeql/rust/elements/BinaryExpr.qll 394522da3bc3a716fc7bc40c3560143ca840f5d210cfcba2a752c3026dd0f725 fbbd6fb79bf16a7d9820613654c584cd7ff3e7a29988f3920b6cfbe746acfd8d
lib/codeql/rust/elements/BlockExpr.qll b5cf57119b15f27d0bc258dfa375b0ef2730c157870ff543f0dc7a8cfe514182 f6a01999606b010c81ef9c6ff1385e6640632b6f5ce067ffeb0ef0af0a0aeb92
lib/codeql/rust/elements/BlockExpr.qll 1dbf64445aebfa87c5ee5f295b6f47a959d952f86a108d8cca381d787d5cbf3e ac6c46175a10807a886263143095a9454041e54a08e3644e06b5dbc4d394a397
lib/codeql/rust/elements/BoxPat.qll 1b2c3fff171aa6aa238c9460b122f26c79e04577cea67fa856de99842ba873d4 0caf8d23ed6e0997a6b8751def27641582151fba6e24fccf798712a4690b42f1
lib/codeql/rust/elements/BreakExpr.qll 7ca3807a20e9a9a988d1fd7abebf240325ed422fcb45c719ba46272f031f94db dffb7379d3f3ba220acfbd05eb7bb6cfd9cfda211e9c8b1f5240ca5fa61be3fc
lib/codeql/rust/elements/CallExpr.qll ee3997f265dc1b6b2fc7134548dd88d509b6bcbc26cf65061a31980f9900ae26 7e86e0ab24ce78c3f592a5614eac083d00f331664f021a438f74e2e0785f4609
lib/codeql/rust/elements/Callable.qll 08a46e987b8fde29069795a536fcd1ad1a96f60341f72293e4d07e20334d554f cfc2be9287000718e5ff3c2a35bb45ffc93fd36d97f2e034888e9aa2ae9af555
lib/codeql/rust/elements/CastExpr.qll 2fe1f36ba31fa29de309baf0a665cfcae67b61c73345e8f9bbd41e8c235fec45 c5b4c1e9dc24eb2357799defcb2df25989075e3a80e8663b74204a1c1b70e29a
lib/codeql/rust/elements/CfgAtom.qll 0567c41550cbcf88f334f0285bac32f87726099f2444108b7842e1ecf8a3a36b 6a3858268921c4a9bb8db9239867b5e46b54d1f5d133a6f19cfd648de4d15b65
lib/codeql/rust/elements/CfgAttrMeta.qll 85f6503abce5c1c3de06df0c0d2ae8fda4206b94bc8103d54550ad2d84a93fb4 af1e7967d7c9c80f1a4725d8a045d645b247f5aa1a3a462a08eea39c4ab4491f
lib/codeql/rust/elements/CfgComposite.qll 50f624532b6f6086ac507c294da7dc3a96d4154d70541449c89b4395cbe366a7 6aa0c7a1484b02833b7cc7692018f96dd6724b8f76a1e171171b7f5aac69e3a6
lib/codeql/rust/elements/CfgMeta.qll 583c4561968f787ea1fb7fe8af165273e0f35c2e1efd26364a004edeebee5786 86eca520313dc40b0e523d8941858909c2632eb32c01d74ddb1c524527fbd8eb
lib/codeql/rust/elements/CfgPredicate.qll e86f55f98b8f09fb5da9af550cb6c43089d8deb2e3b83d7e195e9bddc8cf201b ba30cf064ba1236139c8c55bfab204b9256e407db983b42b23319690c7ff5562
lib/codeql/rust/elements/ClosureExpr.qll 69e0b7a7c7a4c348fcada5ad4da22dd2f51747109f856be239cede315a56d695 93400650282e2d4e682b826e9f5f844aa893dda126548e41ea1c703d2bf209ca
lib/codeql/rust/elements/Comment.qll fedad50575125e9a64a8a8776a8c1dbf1e76df990f01849d9f0955f9d74cb2a6 8eb1afad1e1007a4f0090fdac65d81726b23eda6517d067fd0185f70f17635ab
lib/codeql/rust/elements/Const.qll 5f4d11e01162a06127ba56519efd66d1ecfb5de7c1792fc1c283a56cf2127373 8c618ac774267d25db70cc05a080f8a408dc23ab7e88c0fc543eda8b4d4cb995
@@ -58,7 +63,8 @@ lib/codeql/rust/elements/ForBinder.qll ee29b55cb4c1fa5180cc4ee1236ac089fe9f67ffa
lib/codeql/rust/elements/ForExpr.qll a050f60cf6fcc3ce66f5042be1b8096e5207fe2674d7477f9e299091ca99a4bd d7198495139649778894e930163add2d16b5588dd12bd6e094a9aec6863cb16f
lib/codeql/rust/elements/ForTypeRepr.qll c85c5e368b9db4a308b55259b3e6b1f4d37050984de43b24971243d6ca6dcec5 51b1c3ddac2fb9616ec44816bcbb549df2c15bbbe674d045a7b1c352c1e335e3
lib/codeql/rust/elements/Format.qll 1b186730710e7e29ea47594998f0b359ad308927f84841adae0c0cb35fc8aeda d6f7bfdda60a529fb9e9a1975628d5bd11aa28a45e295c7526692ac662fd19f8
lib/codeql/rust/elements/FormatArgsArg.qll a2c23cd512d44dd60b7d65eba52cc3adf6e2fbbcd0588be375daa16002cd7741 d9c5fe183fb228375223d83f857b7a9ee686f1d3e341bcf323d7c6f39652f88b
lib/codeql/rust/elements/FormatArgsArg.qll 822287617367bca322a0157a1671a884b8035821c565c9ec8a29d1d4d154deaf 7a8dc3b18c12f0560574500523001e9babeee28a4b3fe3968ac3f30d89f44b3b
lib/codeql/rust/elements/FormatArgsArgName.qll 1e50d3007b517179bffb257b9a0b65b2651a07d1d3380b165995b8eb3eaff63d 6a1932ea108adaf951013f35ac5fe9cdcc409055c2249240a2eb47c73c503750
lib/codeql/rust/elements/FormatArgsExpr.qll 8127cbe4082f7acc3d8a05298c2c9bea302519b8a6cd2d158a83c516d18fc487 88cf9b3bedd69a1150968f9a465c904bbb6805da0e0b90cfd1fc0dab1f6d9319
lib/codeql/rust/elements/FormatArgument.qll f6fe17ee1481c353dd42edae8b5fa79aeb99dff25b4842ec9a6f267b1837d1e3 5aed19c2daf2383b89ad7fd527375641cff26ddee7afddb89bc0d18d520f4034
lib/codeql/rust/elements/FormatTemplateVariableAccess.qll ff3218a1dda30c232d0ecd9d1c60bbb9f3973456ef0bee1d1a12ad14b1e082b5 e4316291c939800d8b34d477d92be9404a30d52b7eee37302aef3d3205cf4ae0
@@ -75,6 +81,7 @@ lib/codeql/rust/elements/IndexExpr.qll 0e2e9f018d06ae72be0fc4ddbc019a9aacd8a06f4
lib/codeql/rust/elements/InferTypeRepr.qll 1b8bdcb574a7b6e7dd49f4cfb96655a6ccc355744b424b8c2593fe8218090d53 c20a2a5b0346dc277721deb450e732a47812c8e872ffb60aaba351b1708e9477
lib/codeql/rust/elements/Item.qll 59d2ac7b5b111579951bf42f68834ecf6dab47a5fb342ed0841c905b977923ab 0d220ec12a373098b26e6cb3a7b327b2d0c1882c3d9b6de00f4df1e8d00bae68
lib/codeql/rust/elements/ItemList.qll b302d25a7570504e88bfcedf7afc99d25740f320ab27a4a9def1ae66569a4c15 4012a5e43639fa39d5313356ff3ab56c4bb567add1ce012bfede4835406a9571
lib/codeql/rust/elements/KeyValueMeta.qll b66aeedd5a548ae94ed680c399a32176cb5999f972cc3a434a05b802e5a25264 02944562b4f66e99b8503e1d87a9f1cc4ba80bae49a4108c6f884cc54398a379
lib/codeql/rust/elements/Label.qll a31d41db351af7f99a55b26cdbbc7f13b4e96b660a74e2f1cc90c17ee8df8d73 689f87cb056c8a2aefe1a0bfc2486a32feb44eb3175803c61961a6aeee53d66e
lib/codeql/rust/elements/LabelableExpr.qll 598be487cd051b004ab95cbbc3029100069dc9955851c492029d80f230e56f0d 92c49b3cfdaba07982f950e18a8d62dae4e96f5d9ae0d7d2f4292628361f0ddc
lib/codeql/rust/elements/LetElse.qll abb12749e1e05047e62f04fcaaf0947acc4dc431be80cb5939308f3531f29700 2799133c6bc84d5bb242a6bce7d26be885b31a3e2d2a7757c46c300b9ef07a20
@@ -99,7 +106,7 @@ lib/codeql/rust/elements/MatchArm.qll c39fd6cc0da24b1ff8d1e42835bcfee7695ad13580
lib/codeql/rust/elements/MatchArmList.qll f221c5e344814fa44db06ab897afdc249e8e88118953116c9c9b745aa2189614 8ff30685e631c5daa6c42390dfb11fd76a4ff2e374013e3dabc67b4c135c0bc4
lib/codeql/rust/elements/MatchExpr.qll e9ef1664f020823b6f4bb72d906a9dc0c1ee6432d4a9a13f7dbdbab2b2b1ee4d 38d71e5c487abcb5682293c573343be66e499a6e131bb630604c120d34b7777b
lib/codeql/rust/elements/MatchGuard.qll 58256689a90f24b16401543452c2a32f00d619ddac6c0fe8b65a8cd3e46401bb 8efb2ac03c69a9db687e382331085d7a6cfbf8eca559174ba2727a9549ec7ddd
lib/codeql/rust/elements/Meta.qll b17d7bf605bd0cf4f6d6c6cf4f39a16cfc431d256d45b93663a7569181d36168 815cdfef06231de4b4b1c85e321b8ccb3e22379e5a4e111df9cc9ca6be593841
lib/codeql/rust/elements/Meta.qll e54802dadd2f1b914a821f9e9335f6088d4782751e36c014e1fcf18eb4134b14 552a5ebbd998cba27fa7ea9b91b387c36ab10964deab546afdba52463ed8661a
lib/codeql/rust/elements/MethodCallExpr.qll 914633f304c587addced988a7f161a1a4b3297ce370f6a959b7a042b1c04dace 289a0854d6323df915ee5f268523ee597ba20a37c646bbb2a79c9ed1f7aa2260
lib/codeql/rust/elements/Missing.qll 70e6ac9790314752849c9888443c98223ccfc93a193998b7ce350b2c6ebe8ea4 e2f0623511acaa76b091f748d417714137a8b94f1f2bdbbd177f1c682c786dad
lib/codeql/rust/elements/Module.qll 0bc85019177709256f8078d9de2a36f62f848d476225bff7bba1e35f249875c7 3fbb70e0c417a644dd0cada2c364c6e6876cfa16f37960e219c87e49c966c94e
@@ -120,6 +127,7 @@ lib/codeql/rust/elements/Path.qll 16264a9c978a3027f623530e386a9ad16541305b252fed
lib/codeql/rust/elements/PathAstNode.qll 68160b08272ecde0e636779b7c547f808356d69d1150863b37188ea84e110cab cafa2de0bf3be978854319bbcf5ad1591acd64abd7b0958ff14c96a7529fcc99
lib/codeql/rust/elements/PathExpr.qll 0232228845a2005fc63d6b8aea8b49ff50415e0e90fd18f863ee1d6e44f53c07 47b15cc6ae576d13f14b29ffa4620451accc603ff87071dfe48660dbe018bf36
lib/codeql/rust/elements/PathExprBase.qll bb41092ec690ae926e3233c215dcaf1fd8e161b8a6955151949f492e02dba13a b2257072f8062d31c29c63ee1311b07e0d2eb37075f582cfc76bb542ef773198
lib/codeql/rust/elements/PathMeta.qll 56021df592b69c9c735db2ebe2b14ee5b5e0a76546d7a6bafaed9d9ba4ff2ba8 23c34dbd742698f9197ce5b48970b77520131ad31c12e2d88cdfd98de0708b3c
lib/codeql/rust/elements/PathPat.qll a7069d1dd77ba66814d6c84e135ed2975d7fcf379624079e6a76dc44b5de832e 2294d524b65ab0d038094b2a00f73feb8ab70c8f49fb4d91e9d390073205631d
lib/codeql/rust/elements/PathSegment.qll c54e9d03fc76f3b21c0cfe719617d03d2a172a47c8f884a259566dd6c63d23f2 4995473961f723239b8ac52804aeb373ef2ac26df0f3719c4ca67858039f2132
lib/codeql/rust/elements/PathTypeRepr.qll 1b68e119ac82fdf5f421ded88a1739bfb8009c61e2745be11b34c3a025de18aa 48d9b49ee871f3932a0806709b4a21dadfdbe5cef8bab8d71aab69b6e4e7b432
@@ -146,15 +154,16 @@ lib/codeql/rust/elements/Struct.qll e60a859c0112b7a7ce4a4752e936e0d58f413ceb895d
lib/codeql/rust/elements/StructExpr.qll 84f384ef74c723796e514186037a91dd9666556f62c717f133ce22e9dda4425f 176497835252cfdfe110e58ebde9fbde553d03e44e07d3e4d8041e835dbf31b9
lib/codeql/rust/elements/StructExprField.qll 3eb9f17ecd1ad38679689eb4ecc169d3a0b5b7a3fc597ae5a957a7aea2f74e4f 8fcd26f266f203004899a60447ba16e7eae4e3a654fbec7f54e26857730ede93
lib/codeql/rust/elements/StructExprFieldList.qll 6efb2ec4889b38556dc679bb89bbd4bd76ed6a60014c41f8e232288fc23b2d52 dc867a0a4710621e04b36bbec7d317d6f360e0d6ac68b79168c8b714babde31d
lib/codeql/rust/elements/StructField.qll c43a552ce22c768c7f4c878501f08ecd4eae3554c5cd885dcd2e8625fe705233 bfd7934835ca41eb70e4064198d9b40ec9812842fb4349e412d1aaf98c3cd625
lib/codeql/rust/elements/StructField.qll 76e41d8a14d30a3f5a89d1cf28e77265f747824a356711e466fcde3b70e11d39 0fef2c368f53c12db96dcad2eab1bd0ae9cb619711451750bc94b6e31af329dc
lib/codeql/rust/elements/StructFieldList.qll ee3cf510d35fad0edfeec68315fbe986a6d5323fbaddcfb688682be9a6508352 8cafe522251f98eb10eb45073e434a814165c25e436850f81b1d73ef88d6ae83
lib/codeql/rust/elements/StructPat.qll cdd1e8417d1c8cb3d14356390d71eb2916a295d95f240f48d4c2fb21bf4398cb 69c3456a13ef3e978a9a145b9e232198a30360f771feb41a917e507410611f6c
lib/codeql/rust/elements/StructPatField.qll 856aa7d7c6d9b3c17514cbd12a36164e6e9d5923245770d0af3afb759a15204a 1bd1a294d84ad5e4da24e03b4882b215c50473875014859dbf26555d1f4ec2d5
lib/codeql/rust/elements/StructPatFieldList.qll 44619afedcda047e51ee3e319f738d5c49ff5e3f8811155a3ef9874d12bc091d 6b4412a5b0f3ebc0a9f228129c1727b1d6a1947fc826e62fa8e34b2c7d3864ed
lib/codeql/rust/elements/Token.qll e2de97c32e12c7ac9369f8dccabc22d89bfcbf7f6acd99f1aa7faa38eb4ac2b2 888d7e1743e802790e78bae694fedb4aba361b600fb9d9ecf022436f2138e13c
lib/codeql/rust/elements/TokenTree.qll 23e57fd945ce509df5122aa46f7971360788945cb7a67ddc229de5f44b80e6e9 18a7834edf5d6808e9126c0ce2e9554211faaf21bf7e9e2fa09aa167654e43a9
lib/codeql/rust/elements/TokenTreeMeta.qll f784784313490314520f6aa9f4dac0f4fbf990427ed39c36185a9526e8d1726d 9c8a74c34ba908d3e886f3e7b041dbaf46a981e26ecc1b66a22d11c1b5155e3f
lib/codeql/rust/elements/Trait.qll f78a917c2f2e5a0dfcd7c36e95ad67b1fa218484ee509610db8ca38453bebd4c 2a12f03870ebf86e104bdc3b61aae8512bfafbbf79a0cff5c3c27a04635926af
lib/codeql/rust/elements/TraitAlias.qll 1d82d043f24dbac04baa7aa3882c6884b8ffbc5d9b97669ce8efb7e2c8d3d2c8 505ba5426e87b3c49721f440fbc9ad6b0e7d89d1b1a51ca3fa3a6cc2d36f8b82
lib/codeql/rust/elements/TryBlockModifier.qll 1567952cea9392e7af28cbe6b7c4aaf00f231e5caeb1292a6fc515918b2891bf 622cbadf10f955f5558475d8015f16667773dabf7db7bdabcc9dbff5425a9fb8
lib/codeql/rust/elements/TryExpr.qll cb452f53292a1396139f64a35f05bb11501f6b363f8affc9f2d5f1945ad4a647 d60ad731bfe256d0f0b688bdc31708759a3d990c11dee4f1d85ccc0d9e07bec9
lib/codeql/rust/elements/TupleExpr.qll 1b1be270198f9d3db1c28c4caaa4a7fe9b5ae14651f1a10e2891a7d78d6ad18b 4f585aa684dfbff753e342903ddd60ee4d7c374b8bddeb645784d10903c90ae0
lib/codeql/rust/elements/TupleField.qll 8d6288fd79959d5ef3732397c0a05a47fcb09091383058d1dba7268a950f8c32 1518cdd0fd9746d09fcdbecabc2a3ce6b36b6d983883850beed3f55c2bdf2c16
@@ -173,12 +182,13 @@ lib/codeql/rust/elements/UnderscoreExpr.qll 233661b82b87c8cda16d8f2e17965658c3dc
lib/codeql/rust/elements/Unextracted.qll 12e60c79ef5b94d72b579b19970622e7b73822ebc13fbcfedfe953527ab1ac36 ec015db2eb12c3c82693ddc71d32d9ab9ef7a958e741e2510681bb707ceca23e
lib/codeql/rust/elements/Unimplemented.qll bf624d28163e5c99accda16c0c99f938bec4a3b1b920a463e86fc8529ff5ff02 013bc7777298d250338f835cd494b5a8accea2d6a4f9561851f283ac129a446b
lib/codeql/rust/elements/Union.qll e23ca528f8573e77dfa7eca71457e2022c92f22292ce84d021d304e52820ee66 eed20ac3797faaa248bc47ef81fa79a5d5c372b4c6289a075d041a84dd8bd6f4
lib/codeql/rust/elements/UnsafeMeta.qll 10473d5527b564c69e9290553f000fcd7ae7502c22e3e183372530541bb81b5b 028220efdf4f4c8c24297d5fc7159126b06c6f1e46eff518ddc55caef5e45cf2
lib/codeql/rust/elements/Use.qll fdcf70574403c2f219353211b6930f2f9bc79f41c2594e07548de5a8c6cbb24d e41f2b689fcbeb7b84c7ba8d09592f7561626559318642b73574bbac83f74546
lib/codeql/rust/elements/UseBoundGenericArg.qll f16903f8fff676d3700eaad5490804624391141472ecc3166ccb1f70c794c120 5efda98088d096b42f53ceccae78c05f15c6953525b514d849681cb2cf65b147
lib/codeql/rust/elements/UseBoundGenericArgs.qll 841913cfbb84de14aab1820a5433eae978bbadbb8e6d413b8ba70780c7328335 c9ec9d086cff91d15c3aea64f1080b22b41cdaf64e3c8b192aaaec17604a5d10
lib/codeql/rust/elements/UseTree.qll e67c148f63668319c37914a46ff600692de477242a0129fa1bb9839754c0f830 de9b39d3d078d51ec9130db6579bff13e6297e60556a7214a5c51cbf89d92791
lib/codeql/rust/elements/UseTreeList.qll 92ebfee4392a485b38fb3265fdede7c8f2ed1dbe2ab860aa61b1497c33874d25 a4e677455d20838e422e430eebd73d0a488e34e8c960f375fef7b99e79d4c911
lib/codeql/rust/elements/Variant.qll 7895461fa728f6c3a7293799c5e6b965b413b679566dcbd40bbe2609db8b6cde b0413547365a301bd9fbb6b266757f956394abad0a77f0e424446e23ec7d83e9
lib/codeql/rust/elements/Variant.qll affe9c58021358fd93d9c867277b4853c8303caa75521c657c8ba2e0cd45f0d6 44894859e3dde36b727abe8a28198f1ba7c487af839e6d9a2fe2d1bacb59f477
lib/codeql/rust/elements/VariantList.qll 39803fbb873d48202c2a511c00c8eafede06e519894e0fd050c2a85bf5f4aa73 1735f89b2b8f6d5960a276b87ea10e4bb8c848c24a5d5fad7f3add7a4d94b7da
lib/codeql/rust/elements/Visibility.qll aa69e8a3fd3b01f6fea0ae2d841a2adc51f4e46dcfc9f8f03c34fbe96f7e24e7 0d475e97e07b73c8da2b53555085b8309d8dc69c113bcb396fc901361dbfe6b8
lib/codeql/rust/elements/WhereClause.qll 4e28e11ceec835a093e469854a4b615e698309cdcbc39ed83810e2e4e7c5953f 4736baf689b87dd6669cb0ef9e27eb2c0f2776ce7f29d7693670bbcea06eb4e4
@@ -236,6 +246,15 @@ lib/codeql/rust/elements/internal/BoxPatConstructor.qll 153f110ba25fd6c889092bfd
lib/codeql/rust/elements/internal/BreakExprConstructor.qll 356be043c28e0b34fdf925a119c945632ee883c6f5ebb9a27003c6a8d250afd9 bb77e66b04bb9489340e7506931559b94285c6904b6f9d2f83b214cba4f3cfd5
lib/codeql/rust/elements/internal/CallExprConstructor.qll 742b38e862e2cf82fd1ecc4d4fc5b4782a9c7c07f031452b2bae7aa59d5aa13a cad6e0a8be21d91b20ac2ec16cab9c30eae810b452c0f1992ed87d5c7f4144dc
lib/codeql/rust/elements/internal/CastExprConstructor.qll f3d6e10c4731f38a384675aeab3fba47d17b9e15648293787092bb3247ed808d d738a7751dbadb70aa1dcffcf8af7fa61d4cf8029798369a7e8620013afff4ed
lib/codeql/rust/elements/internal/CfgAtomConstructor.qll b71484029b4fdaa5df6b42f6b38c3feb0ad72284e5badf3d8413b78d6d14240b 146c73c0354d67fbccba5eb2fe21918ab441d953e005b4ec5482c80388d9493d
lib/codeql/rust/elements/internal/CfgAtomImpl.qll 47ca5355933e1c405dc2edec7bff9fd9be5132f708d6d7e0237a9f0a809eefa7 965eeca1d9ba5045735b16fa0340c0227f22418e0545f381c4df36eac23cf3fe
lib/codeql/rust/elements/internal/CfgAttrMetaConstructor.qll 8cae731f5e86830dec3367b1c69e807389bc434b4f83ff6e13427e4106ec6f2c 0ced22b35219edf0250a8542062f66641f03c13575a3c71d4d718ce5146288ea
lib/codeql/rust/elements/internal/CfgAttrMetaImpl.qll 2b8a578d52aea3ab218f1337ba2c8737cf16e9c64580b1916860dc66ae3e9025 e92e5e8dc79b1da72873af410b778054df7e22bc9080719d60371bc72bc27043
lib/codeql/rust/elements/internal/CfgCompositeConstructor.qll 160bfbccdd80c9b9421b33cb302f6fe48bebe80050a01ad72a43f7332100f834 0102cad0255d632cac4ffaf334ce15f9beff9d7eb7d14a50255ef5c0e4b67d7b
lib/codeql/rust/elements/internal/CfgCompositeImpl.qll 840a148dc5c4b213ffdaca6213d6f2dfa3c1dad3f99293f8244baa3bf6902909 36e9291b124c52bb2e4620bead8acf2f9be4a2281eccfd74411adaf91914dd20
lib/codeql/rust/elements/internal/CfgMetaConstructor.qll 335cb7a36e430b08a12c5548d0a91bbb9a00aaa2f9b0dc7b2fa526882ec0271e 0bd7002f58c1c19c22023d6f03874d84e083e1aa09ec9cac888661d5ad632f6b
lib/codeql/rust/elements/internal/CfgMetaImpl.qll 9d820fb4dee32288e467a8b667ba191588381d8ec2a0ce0e5e8645ee437a16a8 5888fb533768a36d94f56f81058aa0d00c4a2c13721af42bdd30628747698bce
lib/codeql/rust/elements/internal/CfgPredicateImpl.qll 3ba6c6732a7de4df967dd2cb2b4cc99db8aefb2301b75521f1b369052e3a2ec0 c07d4366f98f374f24e235f809946dc513a16203e4c1eb151c8185a5bc79e70d
lib/codeql/rust/elements/internal/ClosureExprConstructor.qll a348229d2b25c7ebd43b58461830b7915e92d31ae83436ec831e0c4873f6218a 70a1d2ac33db3ac4da5826b0e8628f2f29a8f9cdfd8e4fd0e488d90ce0031a38
lib/codeql/rust/elements/internal/CommentConstructor.qll 0b4a6a976d667bf7595500dfb91b9cfc87460a501837ba5382d9a8d8321d7736 7d02d8c94a319dc48e7978d5270e33fc5c308d443768ff96b618236d250123f1
lib/codeql/rust/elements/internal/ConstArgConstructor.qll f63021dc1ca2276786da3a981d06c18d7a360b5e75c08bca5d1afece4f7c4a83 487a870cbf5ed6554d671a8e159edd9261d853eba2d28ce2bd459759f47f11f2
@@ -271,6 +290,8 @@ lib/codeql/rust/elements/internal/ForTypeReprConstructor.qll eae141dbe9256ab0eb8
lib/codeql/rust/elements/internal/ForTypeReprImpl.qll dbbcb86626dcba3d5534d461d7306c354a15f800ff37c1d039801b868179b387 f942eebb20fb2603b7bab0e90f3e3f7a3f87dd6229090fc011c692a52164ac90
lib/codeql/rust/elements/internal/FormatArgsArgConstructor.qll 8bd9b4e035ef8adeb3ac510dd68043934c0140facb933be1f240096d01cdfa11 74e9d3bbd8882ae59a7e88935d468e0a90a6529a4e2af6a3d83e93944470f0ee
lib/codeql/rust/elements/internal/FormatArgsArgImpl.qll 6a8f55e51e141e4875ed03a7cc65eea49daa349de370b957e1e8c6bc4478425c 7efab8981ccbe75a4843315404674793dda66dde02ba432edbca25c7d355778a
lib/codeql/rust/elements/internal/FormatArgsArgNameConstructor.qll 1d5221a97f0edee8c07fd1140a9409cf7c3e6e90fc226278bbe64cf55d72b5c5 a77954bd52b2aa7b2e6891482001a2600c9365778630baf318ffd05cf1630568
lib/codeql/rust/elements/internal/FormatArgsArgNameImpl.qll 58576638f78150e84c11ae9c702c1f4ea286460f6476a89f0259c9f7cf34dd36 3befb988d6e8ece20b718cd59bac4a68c458814c3157e4d1d7a513a03fd4bd1e
lib/codeql/rust/elements/internal/FormatArgsExprConstructor.qll ce29ff5a839b885b1ab7a02d6a381ae474ab1be3e6ee7dcfd7595bdf28e4b558 63bf957426871905a51ea319662a59e38104c197a1024360aca364dc145b11e8
lib/codeql/rust/elements/internal/FunctionConstructor.qll b50aea579938d03745dfbd8b5fa8498f7f83b967369f63d6875510e09ab7f5d2 19cca32aeaecaf9debc27329e8c39ecec69464bb1d89d7b09908a1d73a8d92a2
lib/codeql/rust/elements/internal/GenericArgImpl.qll fde43bb0e3cb2d8eb9feb02012b0a4f934015f8175ec112dea1077d131f55acb 44842e8075f750ba2876cff28d07284f99188982aa6d674ec863ad90305bf6ae
@@ -285,6 +306,8 @@ lib/codeql/rust/elements/internal/IndexExprConstructor.qll 99bdc3d793c4dbd993860
lib/codeql/rust/elements/internal/InferTypeReprConstructor.qll bc5f16853401617fc9c5af8a1287a23c5921df1b615cfbe2d7c7a70145ecfcbd da93bd28ea2daade2cbb0a729be3fbf05f72bc02009565c7bb062e4f68fdb9e7
lib/codeql/rust/elements/internal/ItemListConstructor.qll 08af3bd12536941c3dd4a43c81cc861be24325e242e2593c087a3ce632674291 2fa166159c409d2aaffa73a30babb40829a6de580bd40894d909ee6152801082
lib/codeql/rust/elements/internal/ItemListImpl.qll 195dbe93c334ad2bfc29db530bda9aaea88fc31696b2f230faae9e6c2ecb74a8 e498983a5b2f7a91e2fd336e85ac17e521a18c677784a0788d95bb283f3652e7
lib/codeql/rust/elements/internal/KeyValueMetaConstructor.qll 946f4df587ae7c77445faec67b0c796e008a10c642e5bdf881f9f75e819a1f93 d2bff94a5f8967fabadb76424917383e1472467db1d90214b1b871ebf8da672d
lib/codeql/rust/elements/internal/KeyValueMetaImpl.qll 6f895ee05d983885ad3624b5c64483f2c9024888ed62781889c589ba6fadb4eb 4004bb1b22c30e27f7e2262e9788d1ad3ea4cb08729d8910140c54663a123b91
lib/codeql/rust/elements/internal/LabelConstructor.qll 1f814c94251e664bfa1b1a606aef995382e40e78d4f953350ec951ee0bc8bd34 3157fb8c7c6bd365a739f217ad73ba1e0b65ccd59b922e5ab034e3449915b36c
lib/codeql/rust/elements/internal/LetElseConstructor.qll b2b5d68e5701379a0870aa6278078e09f06aa18ddd14045fc6ae62e90827ece7 7359e70bea8a78bcaf6e6ecc8cc37c5135ae31415b74645594456cc8daa82118
lib/codeql/rust/elements/internal/LetExprConstructor.qll 66f27cbdafb2b72b31d99645ec5ed72f4b762a7d6f5d292d7639dd8b86272972 7da048f4d7f677919c41d5c87ead301eacc12ece634d30b30a8ae1fab580ff30
@@ -317,7 +340,6 @@ lib/codeql/rust/elements/internal/MatchArmListImpl.qll 16de8d9e0768ee42c5069df5c
lib/codeql/rust/elements/internal/MatchExprConstructor.qll 0355ca543a0f9ad56697bc2e1e2511fa3f233bc1f6344d9e1c2369106901c696 78622807a1c4bff61b751c715639510146c7a713e0c4f63246e9a2cf302f4875
lib/codeql/rust/elements/internal/MatchGuardConstructor.qll d4cae02d2902fe8d3cb6b9c2796137863f41f55840f6623935a1c99df43f28d8 0c89f2ca71a2fd5a3f365291e784cb779e34ba0542d9285515e1856424cec60d
lib/codeql/rust/elements/internal/MatchGuardImpl.qll 489040ca1ea85edda91405fab3d12321b6541d2888c35356d3c14c707bf1468e 2b60223a822b840356a3668da3f9578e6a9b8f683fcdd3dbd99b5354c7d96095
lib/codeql/rust/elements/internal/MetaConstructor.qll 49ab9aafdcab7785fc5fc9fb8f7c5bb0ae76cf85d0d259c4b3ac4b0eccbbeb56 bc11aef22661077e398b6ca75e3701fd8d0ac94a0e96dc556a6f6de4089d8b8c
lib/codeql/rust/elements/internal/MetaImpl.qll ab77681dc271d26b4eb77d792fd9b24fce65b0f4a88056ad09aa9400d26b4b58 270e58d97c03357e92f777ce2bd332e2718e077a7faaa6778941a9d5b14e135d
lib/codeql/rust/elements/internal/MethodCallExprConstructor.qll a1b3c4587f0ae60d206980b1d9e6881d998f29d2b592a73421d6a44124c70c20 8d4eaa3eb54653fac17f7d95e9cc833fe1398d27c02b2388cd9af8724a560ded
lib/codeql/rust/elements/internal/MissingConstructor.qll aab0b7f2846f14a5914661a18c7c9eae71b9bde2162a3c5e5e8a8ecafa20e854 8f30b00b5b7918a7500786cc749b61695158b5b3cc8e9f2277b6b6bf0f7850a0
@@ -344,6 +366,8 @@ lib/codeql/rust/elements/internal/PathAstNodeImpl.qll 5a38c42a9127fc2071a9e8f091
lib/codeql/rust/elements/internal/PathConstructor.qll 5c6354c28faf9f28f3efee8e19bdb82773adcf4b0c1a38788b06af25bcb6bc4a 3e2aeef7b6b9cda7f7f45a6c8119c98803aa644cf6a492cf0fce318eba40fe8f
lib/codeql/rust/elements/internal/PathExprBaseImpl.qll e8b09447ee41b4123f7d94c6b366b2602d8022c9644f1088c670c7794307ab2e 96b9b328771aaf19ba18d0591e85fcc915c0f930b2479b433de3bfdd2ea25249
lib/codeql/rust/elements/internal/PathExprConstructor.qll cf6e0a338a8ed2d1042bdee4c2c49be5827e8c572d8c56e828db265d39e59ae3 36a3d1b7c5cc2cf527616be787b32071b9e2a6613a4f6b3f82e2a3b0e02a516f
lib/codeql/rust/elements/internal/PathMetaConstructor.qll de6ebd053e66f0c72e6acb59c7a7e7326abfe0331e65080cc539030b93c49e32 327a8d8b5a6d721daa763cb5dac83247f9b2d9650be53ce01cbae02b15fbad94
lib/codeql/rust/elements/internal/PathMetaImpl.qll 052152ec17c827054b1e9fccfc7cd7cb12fc0787e82242fde5724fd7a77b3b39 677460de83898bdfc9f06460ddb5dab2d4d884a88998c879b7eff5018d9b434a
lib/codeql/rust/elements/internal/PathPatConstructor.qll 966c4ea22218ef71e000d7ce8dd5b570c39ad96b9239a3aa8a38292e2a9f36d2 8a1f348e9257ffc6e6bedcd70389b8e7ec2a3ed6e7b3733744ddfab284826e57
lib/codeql/rust/elements/internal/PathSegmentConstructor.qll 2d9639e42035dc7e73b7d6ddb8a977beadc6b4492dee4292b2f85b4409344441 c337fc3b9ef56366428772563e3f25f711474d16e860d3e89c1395a95d9e83e7
lib/codeql/rust/elements/internal/PathTypeReprConstructor.qll e05e7be13d48e7f832e735254777692d4be827a745b1fd94b9649d46fe574393 4aa1e6935a4479b61f205265cbbba01ce96d09a680c20d5decf30d1374d484d4
@@ -392,9 +416,11 @@ lib/codeql/rust/elements/internal/StructPatFieldListImpl.qll 046464430ba9cc0a924
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 7c16b22a8ff4ad33be25c3d2d43b8f043cab7626538ac5d8938b074dc663b4f4 793e04299d571a8cea2097e6c43136c5e618b31da91ccc68bda334c3d2c3793d
lib/codeql/rust/elements/internal/TraitAliasConstructor.qll d2f159cac53b9d65ec8176b8c8ccb944541cd35c64f0d1ceabb32cd975c000bf 6564981793de762af2775cc729e25054ea788648509d151cbfdbdf99fc9ed364
lib/codeql/rust/elements/internal/TraitAliasImpl.qll 434cf074a461219ad01ab2f116681213302fc62dabc4131d118b3bc2f2fd1af4 59e6f8893431e563897304e6f22da466c69410cf59206b634b426e8fef93b159
lib/codeql/rust/elements/internal/TokenTreeMetaConstructor.qll 059903cc9cbc77d753f1e7833bbc6ba42d55d281bdf0a3ec1c79d0224be1613f b387eb1eb56f83ff9b2831552db5f23af9b8b8bd822e277f2c1e95ed88b71c1f
lib/codeql/rust/elements/internal/TokenTreeMetaImpl.qll e0c30c264f05a5b610c6d1c7bdacd804b4188031e3968756e6670d51b9b7ee02 084adcb4898a694a8be217a416b693e8291848f3802d4437a2004384ab079037
lib/codeql/rust/elements/internal/TraitConstructor.qll 1f790e63c32f1a22ae1b039ca585b5fe6ffef6339c1e2bf8bca108febb433035 535cebd676001bfbbb724d8006fa2da94e585951b8fd54c7dc092732214615b5
lib/codeql/rust/elements/internal/TryBlockModifierConstructor.qll 55a69eced15a1637cb84889e50cf465bbc677baaf4bf3e4e5ab37615018f5803 ee6141225ade44559067474a75b27e3c68dbb149dc9c24dacc1e9d8c791f13f7
lib/codeql/rust/elements/internal/TryBlockModifierImpl.qll 97ab789b3a0d9f9e851cee967cc92ae28446355e7bfeb7ff598787f18b9fdfa5 6f24a42b5e4c448f3ac447200becbf63b83bf1f26e99fca933f5e4262906d278
lib/codeql/rust/elements/internal/TryExprConstructor.qll 98e3077ebc4d76f687488b344f532b698512af215b66f0a74b5cea8ed180836c b95603c10c262911eeffdf4ccba14849e8443916b360e287963d5f2582d8e434
lib/codeql/rust/elements/internal/TryExprImpl.qll cacf43a49ba518be3f94e4a355f5889861edc41f77601eff27e0ed774eca6651 5f4a6a346ec457d5de89b32419e8b4c2deddc55e2d61dbb59842d7f34aa11c44
lib/codeql/rust/elements/internal/TupleExprConstructor.qll 71c38786723225d3d90399b8a085b2b2664c62256654db9e1288fadd56745b9d 639ad70b49ebadc027127fbdc9de14e5180169a4285908233bc38ccac6f14110
@@ -419,6 +445,8 @@ lib/codeql/rust/elements/internal/UnextractedImpl.qll 5c23df7e448184d76ccab2c227
lib/codeql/rust/elements/internal/UnimplementedConstructor.qll 70b0489fdc75fed389de8203947ed9c8eabb91373a1264eb2c8018ddbb2d9baa 0f2592c1697a2f2f913014ecd73b0e3ff1ec5b038ba1c3a22e7939bf8759e664
lib/codeql/rust/elements/internal/UnimplementedImpl.qll 06771abc088e0a8fc24032c9d2633618e8e40343ef8757a68cc0a70f1617165a 5738f626f1f4f573fdf7dcd5bd57a0948d290ed89342b9160e95ef3c84044f9a
lib/codeql/rust/elements/internal/UnionConstructor.qll d650551a1b3ef29c5a770bdad626269cf539ed0c675af954bc847d2c6111f3f6 aca9064ad653a126ab4f03703e96b274587c852dc5e7ff3fea0fec4d45993f10
lib/codeql/rust/elements/internal/UnsafeMetaConstructor.qll 89c041ebd8ff05137d0244c97b9cd8ea1afffbc1d6d3e6aab906546897d851aa 6da0034021f992ae39977694418a4d8f2fe6b426f54f606a2a089c3896e6eb52
lib/codeql/rust/elements/internal/UnsafeMetaImpl.qll 38134143aec9d5f48762a1d70330a8899bd3e94265f80b0772e7db3987a7a107 7731646d9a29357c7567a08129d018c4b09982781d8b6cb73d93bcea7f71f0a1
lib/codeql/rust/elements/internal/UseBoundGenericArgImpl.qll 2f90bfd5e43113da1155445bef0334ab84acddef102bd62dfa2ef908717a5d09 dd2fa3c6081d79e1d96360dbdb339128cd944e7b7dc26c449c04f970ee1d7848
lib/codeql/rust/elements/internal/UseBoundGenericArgsConstructor.qll 84d4a959d098fcd1713cb169e15b4945d846121701d2c5709b11e19202c21f2b 93113c92be9bc9f0b8530c308fe482dfeddc7dc827fc44049cecb3eab28df731
lib/codeql/rust/elements/internal/UseBoundGenericArgsImpl.qll 0f98d47c1e09c46dd3da66a4770181a0caae0512b362faaec997af22bb5f4ce7 1919235e50b9d2fee9bd5d407a0bc023a02dbb04b2662349fad5a8d6cfa98069
@@ -470,12 +498,17 @@ lib/codeql/rust/elements/internal/generated/Attr.qll 3f306e301c79f58018f1d5f39b4
lib/codeql/rust/elements/internal/generated/AwaitExpr.qll 1d71af702a1f397fb231fae3e0642b3deeba0cd5a43c1d8fabdff29cac979340 e0bfa007bdecc5a09a266d449d723ae35f5a24fbdfc11e4e48aeea3ec0c5147c
lib/codeql/rust/elements/internal/generated/BecomeExpr.qll 7a211b785a4a2f961242d1d73fd031d381aad809f7b600ce7f7f864518bb7242 17a0388680007871748cfdc6621f700a7c2817b9601e1bd817fb48561e7c63ad
lib/codeql/rust/elements/internal/generated/BinaryExpr.qll 64e9bd9c571edd6e5f3e7662b956b1d87fa0354ce6fe95da9caf25ac16b66c68 3fca09fdbe879db2ca3293618896a462e96376a2963d15cce3d5b1baac552fcb
lib/codeql/rust/elements/internal/generated/BlockExpr.qll 5a5ddbe34bc478a7bd9b0d07d3b6f017c2d1f20581d859251a963314e6514d1f 9804c30b8b279038b864c52557535f854bd012bacdfe8e5840f1f777c74e52df
lib/codeql/rust/elements/internal/generated/BlockExpr.qll db813fa05eace9769ba2a51bb38c17e58d621cc31cbf88ee8186c23e3734467c 3a2804490c2bdfccfd2b18c2d4c6cd6edefc375a0a7463120a43212d22ce7513
lib/codeql/rust/elements/internal/generated/BoxPat.qll 597bed52f7489e0addce3266f7bee5be7c53d2d1263eceec3a252d041ca0908f b8ccf363ca5f1a988547caf1fd266a55aec7cbf8623578deea99765d264b0151
lib/codeql/rust/elements/internal/generated/BreakExpr.qll 0f428a8b2f4209b134c2ffc3e1c93c30bc6b0e9c9172f140cefa88c1f77d8690 957b39f38ff6befe9061f55bc0b403c2f1c366dd0cf63b874bae6f8216576d76
lib/codeql/rust/elements/internal/generated/CallExpr.qll 6096035ba2ef1ce3e6254d5b8497dcb6cd7570253423c778a9dd7e158f928644 e56caf9ba094ddfc4952ed5072c5f6f139db8029fa6bd6328d1a118e96a1d5fe
lib/codeql/rust/elements/internal/generated/Callable.qll 12368b998c771c6b80f54123cea4d3600af7432ab34c9e571bc0bf3894ceb17e 273a9fd9cdae56cf2edbdc9c49b15da49cd5ad04be70acbbe2475c9c50200183
lib/codeql/rust/elements/internal/generated/CastExpr.qll ddc20054b0b339ad4d40298f3461490d25d00af87c876da5ffbc6a11c0832295 f4247307afcd74d80e926f29f8c57e78c50800984483e6b6003a44681e4a71f3
lib/codeql/rust/elements/internal/generated/CfgAtom.qll 4379fe45c14c3f8d6bdbc2d7879082d1dbcfee00973c91d93a29ed01f9477dad 52488050dddacb84729ddf06cfe1d71c33e052015f1dff544d805ebbf286150d
lib/codeql/rust/elements/internal/generated/CfgAttrMeta.qll 8bbf153628df0e59d5c66bd41788fbbfb83b44e8870b695f5551a8961e7d4464 f605ddb63a1adc2a881e95b6adbbd908e341aca24448cd1441c7021a1eb70ae1
lib/codeql/rust/elements/internal/generated/CfgComposite.qll 96ea6dc95579b31808d1b6cc10c8a42bb8d2b211fe6092eb62416b225297c15e 37ba82588d34831abf4426b658e1b063044f6093879bc8a704432cb8f99785d8
lib/codeql/rust/elements/internal/generated/CfgMeta.qll 6e2e5f26a57781af0e46ddcf589f4d33637d304eca28b9c4c4e01108d075c590 015385a2fc33bfb6fbe3d3353861dea36ed00cbcf810e64c36fa46cae140218d
lib/codeql/rust/elements/internal/generated/CfgPredicate.qll 736fe7385e2af5bb86c349bb1b8dd030aef191541f6af24694e3c460b8272f61 4117ee073683eb5fb81bae9e7e49b4ad0991cfcb53e0b7b4160199931a300632
lib/codeql/rust/elements/internal/generated/ClosureExpr.qll 818aff75d86821c670d8ba0720c3270681b3e070140a9c41beab2a811b43eee6 9bf2d1d38f6c4a99d7c058f8ed096141f5ba6a75d2d26a464f0d65ed4e554222
lib/codeql/rust/elements/internal/generated/Comment.qll cd1ef861e3803618f9f78a4ac00516d50ecfecdca1c1d14304dc5327cbe07a3b 8b67345aeb15beb5895212228761ea3496297846c93fd2127b417406ae87c201
lib/codeql/rust/elements/internal/generated/Const.qll 3e606f0198b6461a94964dba7a4d386408f01651d75378eeab251dfceccf49c8 20fe276cded4764bdb1cd50de956bea88d7cd731909c0b84b4abb972b3094959
@@ -501,7 +534,8 @@ lib/codeql/rust/elements/internal/generated/ForBinder.qll 7be6b8e3934db8cd4ac326
lib/codeql/rust/elements/internal/generated/ForExpr.qll 7c497d2c612fd175069037d6d7ff9339e8aec63259757bb56269e9ca8b0114ea dc48c0ad3945868d6bd5e41ca34a41f8ee74d8ba0adc62b440256f59c7f21096
lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll 7daa3b938592b590d604203e7d0fc5c34c2bffe6adcceee5a5e0c681ed16214c f1380179cbdc188ad133c946d9e17e85aed0d77771b319f663d8eada0f7cf17d
lib/codeql/rust/elements/internal/generated/Format.qll 934351f8a8ffd914cc3fd88aca8e81bf646236fe34d15e0df7aeeb0b942b203f da9f146e6f52bafd67dcfd3b916692cf8f66031e0b1d5d17fc8dda5eefb99ca0
lib/codeql/rust/elements/internal/generated/FormatArgsArg.qll c762a4af8609472e285dd1b1aec8251421aec49f8d0e5ce9df2cc5e2722326f8 c8c226b94b32447634b445c62bd9af7e11b93a706f8fa35d2de4fda3ce951926
lib/codeql/rust/elements/internal/generated/FormatArgsArg.qll e12e470cfe23da78cb82258f7e1e9e263fd11a8ff6b9a31facf130264e1d2f86 31e8419530cff1811937ad24558aa2feaa5198df5eeb9e16b4197e8ce4efdce2
lib/codeql/rust/elements/internal/generated/FormatArgsArgName.qll 7720d5a024c6487604952bb6a1925fd473d35d959079791acbdd98e5cd1de11e b7b4fa8121aa1f75f9467fb91e87b2a5ced1b1ce65ebe07249b78945433ea3a3
lib/codeql/rust/elements/internal/generated/FormatArgsExpr.qll 8aed8715a27d3af3de56ded4610c6792a25216b1544eb7e57c8b0b37c14bd9c1 590a2b0063d2ecd00bbbd1ce29603c8fd69972e34e6daddf309c915ce4ec1375
lib/codeql/rust/elements/internal/generated/FormatArgument.qll cd05153276e63e689c95d5537fbc7d892615f62e110323759ef02e23a7587407 be2a4531b498f01625effa4c631d51ee8857698b00cfb829074120a0f2696d57
lib/codeql/rust/elements/internal/generated/FormatTemplateVariableAccess.qll a6175214fad445df9234b3ee9bf5147da75baf82473fb8d384b455e3add0dac1 a928db0ff126b2e54a18f5c488232abd1bd6c5eda24591d3c3bb80c6ee71c770
@@ -518,6 +552,7 @@ lib/codeql/rust/elements/internal/generated/IndexExpr.qll cf951fc40f6690e966b4dc
lib/codeql/rust/elements/internal/generated/InferTypeRepr.qll 4f101c1cb1278e919f9195cac4aa0c768e304c1881394b500874e7627e62d6c4 dca3f85d0a78ecc8bf030b4324f0d219ffff60784a2ecf565a4257e888dea0ff
lib/codeql/rust/elements/internal/generated/Item.qll 03077c9d2f3200ebbc5df5d31f7d9b78a3ae25957ac46899a19a93684b2d7306 6492e341b9d9270c0181da0a5330f588238ced81657041ad1ad343db2bdf210b
lib/codeql/rust/elements/internal/generated/ItemList.qll 1571a3ab0f2c7c0d8384549f8eac7f6e6863c42f3ec5d5ea5e01fc26b9f1056f 7b2cade995505f214df9bb2d73143a28b2499f76d88abc56ae8fcc59bf709204
lib/codeql/rust/elements/internal/generated/KeyValueMeta.qll 0cd628f043ee5d693f602d91cd6d4e3e889beed905d84ae215be2ce0988bd2a9 4fa22e86456df225c14ae10f6c0d2509447efed81ef7bc98a88c61b0f06c1a1c
lib/codeql/rust/elements/internal/generated/Label.qll 6630fe16e9d2de6c759ff2684f5b9950bc8566a1525c835c131ebb26f3eea63e 671143775e811fd88ec90961837a6c0ee4db96e54f42efd80c5ae2571661f108
lib/codeql/rust/elements/internal/generated/LabelableExpr.qll 896fd165b438b60d7169e8f30fa2a94946490c4d284e1bbadfec4253b909ee6c 5c6b029ea0b22cf096df2b15fe6f9384ad3e65b50b253cae7f19a2e5ffb04a58
lib/codeql/rust/elements/internal/generated/LetElse.qll 9e6f7057b8cb7d37b0ea79d540520028febe017ed8e9def95927ffa3fcdc1af4 3ee7d344d718898f25eb2a7a646d3c6704e8f1f22b83d0c0ea727cff74161946
@@ -542,7 +577,7 @@ lib/codeql/rust/elements/internal/generated/MatchArm.qll f8c4c955c50f8398159c492
lib/codeql/rust/elements/internal/generated/MatchArmList.qll 12d969ecb267a749918e93beda6ad2e5e5198f1683c7611772a0734a2748b04b 9226ff7cadcab4dc69009f3deeda7320c3cee9f4c5b40d6439a2fe2a9b8e8617
lib/codeql/rust/elements/internal/generated/MatchExpr.qll b686842e7000fd61e3a0598bf245fb4e18167b99eca9162fdfdff0b0963def22 00f1743b1b0f1a92c5a687f5260fda02d80cc5871694cad0d5e7d94bac7fe977
lib/codeql/rust/elements/internal/generated/MatchGuard.qll 58fa1d6979ef22de2bd68574c7ffcf4a021d7543445f68834d879ff8cee3abcb 072f22a7929df3c0e764b2a770b4cdf03504b3053067d9b9008d6655fb5837e1
lib/codeql/rust/elements/internal/generated/Meta.qll 15e98e8d38f5618b7053057a629b135aae5e105fbf72731833a644fb695244c0 2977b6a0781c89383e87c595b14a39851f27b2508296f3e77466eea44c916188
lib/codeql/rust/elements/internal/generated/Meta.qll 5c3358c737d504dacfa3227b80ceeead3cdeebbd7498d1d0ac88570cac1d91ec cd04ebdf19cf6710ce43e888211e61b0740aa6298db9a5ec79f29a1301a60b40
lib/codeql/rust/elements/internal/generated/MethodCallExpr.qll ffce98a6a1921822b12ead721cff0878553eb3e049c5d2184a7abce32b6615b4 d1408a0f47ee5764fe7b484494daf6e1f99b1c6a505274c48545b3e650ef8baf
lib/codeql/rust/elements/internal/generated/Missing.qll 16735d91df04a4e1ae52fae25db5f59a044e540755734bbab46b5fbb0fe6b0bd 28ca4e49fb7e6b4734be2f2f69e7c224c570344cc160ef80c5a5cd413e750dad
lib/codeql/rust/elements/internal/generated/Module.qll ebae5d8963c9fd569c0fbad1d7770abd3fd2479437f236cbce0505ba9f9af52c fa3c382115fed18a26f1a755d8749a201b9489f82c09448a88fb8e9e1435fe5f
@@ -558,13 +593,14 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll eaa0cd4402d3665013d47e
lib/codeql/rust/elements/internal/generated/ParenExpr.qll 812d2ff65079277f39f15c084657a955a960a7c1c0e96dd60472a58d56b945eb eb8c607f43e1fcbb41f37a10de203a1db806690e10ff4f04d48ed874189cb0eb
lib/codeql/rust/elements/internal/generated/ParenPat.qll 24f9dc7fce75827d6fddb856cd48f80168143151b27295c0bab6db5a06567a09 ebadbc6f5498e9ed754b39893ce0763840409a0721036a25b56e1ead7dcc09aa
lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 03f5c5b96a37adeb845352d7fcea3e098da9050e534972d14ac0f70d60a2d776 ed3d6e5d02086523087adebce4e89e35461eb95f2a66d1d4100fe23fc691b126
lib/codeql/rust/elements/internal/generated/ParentChild.qll b0e3c13b2ca75faaf0d92b2ca3d70cac7b78b3729aaccf635063cc5836c163af a340e8f34a6d7425f38845e789b4aeb83aec90c11429a68ad6632a5aa132fa57
lib/codeql/rust/elements/internal/generated/ParentChild.qll 8f1fee0d67dcac880ed20a6bdee5810a85ae752ffc3fb1d5f76d5aa2b9b54d4e 16387ca21c94f237f47b9be9b27589fea090321219c4ab73ab01d03deaea1429
lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll d901fdc8142a5b8847cc98fc2afcfd16428b8ace4fbffb457e761b5fd3901a77 5dbb0aea5a13f937da666ccb042494af8f11e776ade1459d16b70a4dd193f9fb
lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4
lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd
lib/codeql/rust/elements/internal/generated/PathAstNode.qll b02654422f80e398027069135bb01205358f0ab82ded3408d83d066f300996a3 345e7f92a75bfc71657b223602f60c36f7637d6f2e3798f07e2d2926eea2431b
lib/codeql/rust/elements/internal/generated/PathExpr.qll 34ebad4d062ce8b7e517f2ab09d52745fb8455203f4a936df7284ad296638387 ba66781cdbdeb89c27a4bfb2be0f27f85fb34978d699b4e343446fb0d7ad2aa6
lib/codeql/rust/elements/internal/generated/PathExprBase.qll d8218e201b8557fa6d9ca2c30b764e5ad9a04a2e4fb695cc7219bbd7636a6ac2 4ef178426d7095a156f4f8c459b4d16f63abc64336cb50a6cf883a5f7ee09113
lib/codeql/rust/elements/internal/generated/PathMeta.qll 42cf084a78acb656a86a6a9b3cd893b93176a6ec9fc989a0232f01cfa3cbd228 cccedf3ca1e353d55979354b0baa23d936890ae9581097cfe4b44748ca797f18
lib/codeql/rust/elements/internal/generated/PathPat.qll 003d10a4d18681da67c7b20fcb16b15047cf9cc4b1723e7674ef74e40589cc5a 955e66f6d317ca5562ad1b5b13e1cd230c29e2538b8e86f072795b0fdd8a1c66
lib/codeql/rust/elements/internal/generated/PathSegment.qll 48b452229b644ea323460cd44e258d3ea8482b3e8b4cb14c3b1df581da004fa8 2025badcfab385756009a499e08eecc8ffd7fa590cd2b777adb283eebcc432c6
lib/codeql/rust/elements/internal/generated/PathTypeRepr.qll f12fe234d7fb1a12678b524434fcdd801453d90eb778b9173f7197ff3d957557 a1be605f8937c5bd3a3a9cb277782c24446c9f5ef8363e6f5ee8f6229886b6f6
@@ -573,7 +609,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 8d0ea4f6c7f8203340bf
lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f
lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9
lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9
lib/codeql/rust/elements/internal/generated/Raw.qll 6e32bd7167d3eece2d22f893a92410129b1bd18e59533b1cf82f72f31465b43a bb25c56118df0e2755be2350cf307c19e6c4d85b2a39388c08f2cc1bad303692
lib/codeql/rust/elements/internal/generated/Raw.qll 3c0155cada06e8b03749b6607abeca93a865f5935a905043ac91c53d417175cd 6ebbd128c0f426155fcbda9a2efd9c890d108b3ed87068830a756664d90a96c2
lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66
lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05
lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 5b0663a6d234572fb3e467e276d019415caa95ef006438cc59b7af4e1783161e 0e27c8a8f0e323c0e4d6db01fca821bf07c0864d293cdf96fa891b10820c1e4b
@@ -593,17 +629,18 @@ lib/codeql/rust/elements/internal/generated/Struct.qll 56775b98f793c108bd0eb8f35
lib/codeql/rust/elements/internal/generated/StructExpr.qll e77702890561102af38f52d836729e82569c964f8d4c7e680b27992c1ff0f141 23dc51f68107ab0e5c9dd88a6bcc85bb66e8e0f4064cb4d416f50f2ba5db698c
lib/codeql/rust/elements/internal/generated/StructExprField.qll 6bdc52ed325fd014495410c619536079b8c404e2247bd2435aa7685dd56c3833 501a30650cf813176ff325a1553da6030f78d14be3f84fea6d38032f4262c6b0
lib/codeql/rust/elements/internal/generated/StructExprFieldList.qll 298d33442d1054922d2f97133a436ee559f1f35b7708523284d1f7eee7ebf443 7febe38a79fadf3dcb53fb8f8caf4c2780f5df55a1f8336269c7b674d53c6272
lib/codeql/rust/elements/internal/generated/StructField.qll 0ccd678b64b82fdab7ffe9eb74f0d393b22da4459fe72248828896b5204c009c 0faf5a517eccc43141a48809ed35b864341a35764de2dba7442daa899ff4ff69
lib/codeql/rust/elements/internal/generated/StructField.qll 23c5a0b26936582f43b8bb567825257aab29ee8a3d4ff646ca1dff2e3063bf41 163c446ae52519fd77c1108719e014c41caad205b303848782c45fa50b37b254
lib/codeql/rust/elements/internal/generated/StructFieldList.qll 5da528a51a6a5db9d245772aec462d1767bcc7341e5bedd1dc1bbedd3e4ab920 dac4cee3280eef1136ffc7fbc11b84b754eb6290fc159c6397a39ae91ceeaa13
lib/codeql/rust/elements/internal/generated/StructPat.qll c76fa005c2fd0448a8803233e1e8818c4123301eb66ac5cf69d0b9eaafc61e98 6e0dffccdce24bca20e87d5ba0f0995c9a1ae8983283e71e7dbfcf6fffc67a58
lib/codeql/rust/elements/internal/generated/StructPatField.qll 5b5c7302dbc4a902ca8e69ff31875c867e295a16a626ba3cef29cd0aa248f179 4e192a0df79947f5cb0d47fdbbba7986137a6a40a1be92ae119873e2fad67edf
lib/codeql/rust/elements/internal/generated/StructPatFieldList.qll 1a95a1bd9f64fb18e9571657cf2d02a8b13c747048a1f0f74baf31b91f0392ad fc274e414ff4ed54386046505920de92755ad0b4d39a7523cdffa4830bd53b37
lib/codeql/rust/elements/internal/generated/Synth.qll 3b9f71b9b6b9952c967e1ba74175b74dd563492d5adc00a27e19ab735bf37918 3ef3e4fe71ab08f772ebd68036cba7b2ec4109d706cfb03747aa05835f376628
lib/codeql/rust/elements/internal/generated/SynthConstructors.qll ec935bac4f775b64c76cd15ab975d885f544e77bf4833fd0f47acd40438fe66f ec935bac4f775b64c76cd15ab975d885f544e77bf4833fd0f47acd40438fe66f
lib/codeql/rust/elements/internal/generated/Synth.qll f3914d3d346fe9dad959b7c7fa88a791860284c848aaa339b800e521195dde08 87a338c138bc8322ddc34b7a265232be294cf7b0a07944b478b8ee9531841e6a
lib/codeql/rust/elements/internal/generated/SynthConstructors.qll aea619227c640e27d715bf57c00bfde840a31d28addc8baee3b38aeb16bdf721 aea619227c640e27d715bf57c00bfde840a31d28addc8baee3b38aeb16bdf721
lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b
lib/codeql/rust/elements/internal/generated/TokenTree.qll 1a3c4f5f30659738641abdd28cb793dab3cfde484196b59656fc0a2767e53511 de2ebb210c7759ef7a6f7ee9f805e1cac879221287281775fc80ba34a5492edf
lib/codeql/rust/elements/internal/generated/TokenTreeMeta.qll 6952cd186e38c4a41131f93754010c8af3c210324d5a8ce3831694aa6be9f2aa 7a23c380fc8aa02c53370e0c68536a7e9fed8aad58185cb0f6110093c3067543
lib/codeql/rust/elements/internal/generated/Trait.qll 8fa41b50fa0f68333534f2b66bb4ec8e103ff09ac8fa5c2cc64bc04beafec205 ce1c9aa6d0e2f05d28aab8e1165c3b9fb8e24681ade0cf6a9df2e8617abeae7e
lib/codeql/rust/elements/internal/generated/TraitAlias.qll 40a296cf89eceaf02a32db90acb42bdc90df10e717bae3ab95bc09d842360a5b af85cf1f8fa46a8b04b763cdcacc6643b83c074c58c1344e485157d2ceb26306
lib/codeql/rust/elements/internal/generated/TryBlockModifier.qll 812cc73a945abaa51054e7261daf4dc10912f1e331f202186001ed087a962696 a76457699f3f6bc1373276a0de2f14365e573d34e82fd292c6c9261612c0f17e
lib/codeql/rust/elements/internal/generated/TryExpr.qll 73052d7d309427a30019ad962ee332d22e7e48b9cc98ee60261ca2df2f433f93 d9dd70bf69eaa22475acd78bea504341e3574742a51ad9118566f39038a02d85
lib/codeql/rust/elements/internal/generated/TupleExpr.qll 98f10bc72d09f98e3be87f41b1a3cbf037f4a7e3d3560dfa6d5759905a8177a5 6a9eb5568c518876b2912371e2b7b774cf5245097c5a0206eda35b749995f00b
lib/codeql/rust/elements/internal/generated/TupleField.qll 121f7b35e28b86592f83e00993f9041acbe7ab636db894d03055149c7f15fd32 b1ba9e1182307a44bb5afc11e92d62e7eb2c819ccdfb28ef54943b6fec676827
@@ -622,12 +659,13 @@ lib/codeql/rust/elements/internal/generated/UnderscoreExpr.qll b3780c99c5d57159b
lib/codeql/rust/elements/internal/generated/Unextracted.qll 01563dfd769d6dc3c6b8a40d9a4dc0d99a3b6a0c6725c180d2bf4d7633929a17 a93ce90f8c03f4305e59de9c63f089fc7935298fc9a73d091d76933cf63e790c
lib/codeql/rust/elements/internal/generated/Unimplemented.qll a3eb304781991bff1227de1e4422b68bf91e7b344e4f6c9e874b324e82a35e60 6bc4839fda3850a56dc993b79ef9ba921008395c8432b184e14438fba4566f21
lib/codeql/rust/elements/internal/generated/Union.qll 4df8fc632f7bcc0cbd564cd1c148c1a2438f26e6a83cd6470e15870120f677fe c74dea0a4ddfd581b9208d7907ea134219cafd217294315acf5c595de38a61f3
lib/codeql/rust/elements/internal/generated/UnsafeMeta.qll ec5515798be2395a1256460d9272fe023bc604d952eba5d18e13d3e43fc801ff 3ece9a326a7c91d49395e3dc6687a38e2e2736cc20e4b7c534eb7a4e73613264
lib/codeql/rust/elements/internal/generated/Use.qll cf95b5c4756b25bee74113207786e37464ffbc0fb5f776a04c651300afc53753 1fe26b3904db510184cb688cb0eeb0a8dbac7ac15e27a3b572d839743c738393
lib/codeql/rust/elements/internal/generated/UseBoundGenericArg.qll 69162794e871291545ea04f61259b2d000671a96f7ca129f7dd9ed6e984067c4 31de9ebc0634b38e2347e0608b4ea888892f1f2732a2892464078cd8a07b4ee8
lib/codeql/rust/elements/internal/generated/UseBoundGenericArgs.qll cedde7ccf689e3a2a246113be94544c206c56fb1c01b83b074e1f6edd3acfced f022ea4c653d1b5f311917efde8e59be27394ce7f6abf2561bb1e42f93f74adf
lib/codeql/rust/elements/internal/generated/UseTree.qll 3d7cbcc8ae76068b8f660c7d5b81b05595026043015cd6b4d42a60ed4c165811 b9f0bcf82feb31f31406e787670fee93e1aa0966bcc0e4cc285c342e88793e4e
lib/codeql/rust/elements/internal/generated/UseTreeList.qll 38efaa569b76ca79be047703279388e8f64583a126b98078fbbb6586e0c6eb56 1623a50fd2d3b1e4b85323ad73dd655172f7cbc658d3506aaa6b409e9ebe576e
lib/codeql/rust/elements/internal/generated/Variant.qll fa6909715133049b3dba4622e6262fa30c4a9478b6219ec4fd12e07c58750709 71fc2ddac97fc4c4e6b92a13ee217cccc81dffc7c12295b6bc97c56ad25a92cc
lib/codeql/rust/elements/internal/generated/Variant.qll 7a1aedf6518780d1534147d5a52d14542698befe1d8eb8b78eb10d2664c3a69b 180d6de0826b1a75bf8b1853d539f605bff2eb3794ccb57ff23e5b3ee3171956
lib/codeql/rust/elements/internal/generated/VariantList.qll 3f70bfde982e5c5e8ee45da6ebe149286214f8d40377d5bc5e25df6ae8f3e2d1 22e5f428bf64fd3fd21c537bfa69a46089aad7c363d72c6566474fbe1d75859e
lib/codeql/rust/elements/internal/generated/Visibility.qll af1069733c0120fae8610b3ebbcdcebe4b4c9ce4c3e3d9be3f82a93541873625 266106bdff4d7041d017871d755c011e7dd396c5999803d9e46725b6a03a2458
lib/codeql/rust/elements/internal/generated/WhereClause.qll aec72d358689d99741c769b6e8e72b92c1458138c097ec2380e917aa68119ff0 81bb9d303bc0c8d2513dc7a2b8802ec15345b364e6c1e8b300f7860aac219c36
@@ -636,7 +674,7 @@ lib/codeql/rust/elements/internal/generated/WhileExpr.qll 0353aab87c49569e1fbf58
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 be9c7606d429b62fcb8686285e8eeff41f45f0dd22feb5b4fd3ea2f3cdfb39be be9c7606d429b62fcb8686285e8eeff41f45f0dd22feb5b4fd3ea2f3cdfb39be
lib/codeql/rust/elements.qll 55ccf59deeb718517703e2aa9e90452736de118032d3bdad4b4ab7295cbb795a 55ccf59deeb718517703e2aa9e90452736de118032d3bdad4b4ab7295cbb795a
test/extractor-tests/generated/Abi/Abi.ql 086ed104ab1a7e7fe5c1ed29e03f1719a797c7096c738868bf6ebe872ab8fdaa fe23fe67ab0d9201e1177ea3f844b18ed428e13e3ce77381bf2b6910adfa3a0e
test/extractor-tests/generated/ArgList/ArgList.ql da97b5b25418b2aa8cb8df793f48870c89fa00759cdade8ddba60d7f1f4bbc01 acfd5d2caf67282ad2d57b961068472100482d0f770a52a3c00214c647d18c75
test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql 42b365276aa43e2cad588338463542d3ce1dd0db3a428621554584b07a1431d5 08a66a8b69af35ee3bc64c35c453a19a6c9881cc6cc7e65275d1fff056121270
@@ -659,11 +697,15 @@ test/extractor-tests/generated/Attr/Attr.ql 88f9a524b557e81006a5079ac6d703c42df0
test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql 93ccb34e00b37deecd6d3019bb47948daffe55a2d5d031c60b4f6fa7a61412a4 5502459743efd8346ab943ff3334545407b21aaf0771bf422be58a5df5d27381
test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql 7076b3f965c680e8f03bccd9ecb4495d03d35a4f460ec43628c19314eae8b49e 961e6e656e467ba389bbc6db39f345d9a8afaae4584d357dfe47484c6afadb99
test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql 4e849e6eaae581f487aa74d09d1106e441c876b06474389687a04df446690a4d 6cd36dfdb0af25396d2219fe2789f898e2393cc3f10a25410b2ede5d216707cd
test/extractor-tests/generated/BlockExpr/BlockExpr.ql cd6ef66de9e56ebb74964e59617d47999fb8c9081e885acece17a3b747a35ae1 6766844c1b87e518688565f2469575af5ca4e0ff4eb0c0b620df73a451d86a0b
test/extractor-tests/generated/BlockExpr/BlockExpr.ql d2917477f9cf09e1548fdbf9a5d835a1c0cec14705b3cbd16831c6a169050339 85937baa90543dc63407c53d69090d16134591f5f0baaf32c927105fb3bab865
test/extractor-tests/generated/BoxPat/BoxPat.ql 854c9ba4e045dbe7ea1666866c1c443a92597df0ce02f4ca5993142925941c39 a22c17cce0bff7d1df51b817d2cb1a61045357f91be14465166971efa5f5daad
test/extractor-tests/generated/BreakExpr/BreakExpr.ql c2181211da3dfe983cfca93ead32d5d211e91181899b9477152c58124eaa846d 57e57b926e14db2efb2e88e04699608b2ba9797ee4f6c4f710135b6858982256
test/extractor-tests/generated/CallExpr/CallExpr.ql 16d85d6e5cb68384d0b932fb4506c1855019b819f2c5faa39a4472f39427623a 14df8383948cedaff88f514f7239c1ec8c424720d24e3546cbcd0b689acecdb1
test/extractor-tests/generated/CastExpr/CastExpr.ql 3480ec51072399409b7553ab6139c832db6ed4ca991f3a7a2282a39afe07c6f2 614c8ea7a2fe30d57583dbf84ed7a12743c2aba49d8c6252d31af3ed10853a39
test/extractor-tests/generated/CfgAtom/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
test/extractor-tests/generated/CfgAttrMeta/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
test/extractor-tests/generated/CfgComposite/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
test/extractor-tests/generated/CfgMeta/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql 675ae07193241fbd710ece4f74f86e9b00f47841299b1c5934f55dbf13a4b4af 21fb0664619c9c889e9491bfd651c2814dcf0f158dd6269937bd0acc18be6b0e
test/extractor-tests/generated/Comment/Comment.ql 0e0454911d2cf2e7ef5c6d860b84c57b9d490090914ebcf4fa0e8a70f777f066 cbd1c195276ef163f8d3c122344738c884dc9fb70eb2f9b7067829d735d48c4c
test/extractor-tests/generated/Const/Const.ql 97797a56743b519c1990682ccb22af6d997ed5eea1e280b52ad31b16a5836f9e e5289ebcb71a25b7ac0a7e1aa0111e4f3ec83d26b7f83e819509c9b9d756921d
@@ -683,8 +725,9 @@ test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql 1501730f1e02e9d22b
test/extractor-tests/generated/ForBinder/ForBinder.ql c95fd006eaddb9535eda0d527d71cdd5d3745fe464fd809a8d58b8c4dfc8790e 1d8b38059b8a25965eab9a8a1286384aa994d7cac7414b70b63c6a3d6bcf3c39
test/extractor-tests/generated/ForExpr/ForExpr.ql 3bac38bf33e140ae9f88371ec90409f7de867e39cdea46f02b15519b236b57cb aade1baf6e6081b3b9bce5b7e95fe4b7ffe00ea9450fd6e1d6692ad97cf93fe9
test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql 5961055988b3a7749fb80e24d924bf1b67b0c52a6c895379beedd66a34bad04f d8ab72fac742314ead1aa0e1fed2535cc6597d278f3eef017bc9f8fd8cde83e7
test/extractor-tests/generated/FormatArgsArgName/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
test/extractor-tests/generated/FormatArgsExpr/Format.ql 237ed2e01d9a75ee8521d6578333a7b1d566f09ef2102c4efcbb34ea58f2f9e8 09007ce4de701c0d1c0967f4f728ea9e627d9db19431bd9caebbf28ee51a1f36
test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql 5abcb565dcd2822e2ea142d19b8c92194ee17c71c3db7595248690034559d174 1ffa743fc678701ffeefff6c14c1414bb9158e6756f32380dd590ff44b19ca5a
test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql 30e57945c51bfde4c0cf69e404741548c899450e5dd6622b8caabd1394b10eaf d6d38db1e2ea20ce5f0cd858817fe306397a9ba50eb9be08e132eaf897cb5592
test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql 243c2f9d830f1eae915749e81ac78d3c140280385b0002d10fcc4d2feaf14711 72b90a99a8b1c16baf1e254e1e3463c3ce5409624a2a90829122717d4e5a2b74
test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql 0a345eb48dba8e535d12a00e88008e71b3ce692fbf8f9686c8885e158635dffe eab1f230fd572474a3f304f97d05bbf4a004c52773aaf2d34f999192244c0b80
test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql 24108cdc54feb77c24bb7894744e36e374f0c03d46d6e6c3fcb2012b1ad117f6 05a6b6f51029ee1a15039aa9d738bb1fd7145148f1aad790198fba832572c719
@@ -698,6 +741,7 @@ test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql 311c6c1e18
test/extractor-tests/generated/IndexExpr/IndexExpr.ql ecfca80175a78b633bf41684a0f8f5eebe0b8a23f8de9ff27142936687711263 27d4832911f7272376a199550d57d8488e75e0eeeeb7abbfb3b135350a30d277
test/extractor-tests/generated/InferTypeRepr/InferTypeRepr.ql 6ba01a9e229e7dfdb2878a0bdbeb6c0888c4a068984b820e7a48d4b84995daa2 7120cafd267e956dbb4af5e19d57237275d334ffe5ff0fb635d65d309381aa46
test/extractor-tests/generated/ItemList/ItemList.ql e29302a9212b07fdaf93618852be30adfac64b292e9a0ddbf63addb803daaa98 7e69a78b0f58ef9344892113799092149024c1352b0965a6326d8a45cd44771a
test/extractor-tests/generated/KeyValueMeta/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
test/extractor-tests/generated/Label/Label.ql da1f302da6cb31e6ccb73c722d9d5cfaad6a26d9869b3fa09fe50b03e26f3d9b 5fbfabfef6567ec6609be1af7859eba8ecb1f7f1878b8fac426e0d7098c17ba1
test/extractor-tests/generated/LetElse/LetElse.ql ec8e7362ce9f903731ed6bfc190fc18a6f60abf150f5cee878a0fb9adaa20b94 2e019b6e246caabe4800ab940bc150bd8e466d59dde87bd614bf064adb703c8f
test/extractor-tests/generated/LetExpr/LetExpr.ql 59f70af49ba496559a7ccfe30e737597fb473794d677627d344a9285f85dad33 b59d1f665c600055666a422c4008878cecf17d9ff847cd02b6e0e82ca73073bc
@@ -719,7 +763,6 @@ test/extractor-tests/generated/MatchArm/MatchArm.ql 704976bd48e56a0a2fce7c2d9454
test/extractor-tests/generated/MatchArmList/MatchArmList.ql bbc679fe6d8dedf9131d0fa5faa7b44c138c5f56b9cf3cb209fd3ccd614b689c 916c53a2b68646b52f2d28eca2a19218ba9d12eb8edf7c6cc4140dace1bf4e0d
test/extractor-tests/generated/MatchExpr/MatchExpr.ql b75a5936401bb5ca38686f1413f5c8267ad685722560a2e9041dacf2f8d54abc 7da57118fe5b1f7f5cbe8d6b5f3ae70816fd4837b1c2e6401b98175b36ca233f
test/extractor-tests/generated/MatchGuard/MatchGuard.ql 91de18a0a18d120db568b2c329e5cb26f83e327cf22c5825c555ea17249d7d23 0bcdb25895362128517227c860b9dad76851215c2cdf9b2d0e5cc3534278f4ec
test/extractor-tests/generated/Meta/Meta.ql 43dd1cd669099b38396b316616992af6d84b0c1cee953b19235a00ab3d3bb43c 80b1885809aa074357e21707d1f8c6dca19f0b968ccff43229bb0d5c6fffb2b2
test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql 9d5af6b4771a8725fa5b56ccb3e2a33158b18c876546b88e6dc63da1f887910a 494c8c2fe5584aac45c828b38d8bb20c113927a1e909773d4a2dbd3965d26170
test/extractor-tests/generated/Module/Module.ql d7c442fd1b1f4f00da87e2228fc1aeeab0bb86648b2aa06a9dd6f40dbae1ee28 3229388727d14048e87238bcda5fde1bed503e5cac088922381e5833cfc32fa9
test/extractor-tests/generated/Name/Name.ql b2fe417f7c816f71d12622b4f84ece74eba3c128c806266a55b53f8120fa4fb3 8bc65bbf3f2909637485f5db7830d6fc110a94c9b12eefe12d7627f41eae2256
@@ -738,6 +781,7 @@ test/extractor-tests/generated/Path/PathExpr.ql caa2a41b5cc3af837fcf52b49abc5f45
test/extractor-tests/generated/Path/PathPat.ql 8a6a759f4bbf4fa9c23fd235ce4d63f04bd715a86a6e71bba0a324fe1231d947 be23d83e4f6ac209f3f7c382fce6b9bc57db17a26b236bdf8215848285e345ff
test/extractor-tests/generated/Path/PathSegment.ql 87774cc2e9d1be7aaf8748d418b151d7ec03fb20fda9430ebabd86ddaebf5538 699545d8eb2d6325bcd2c253d56339bd71170b34e80efe5155189fbbdde9fbbc
test/extractor-tests/generated/Path/PathTypeRepr.ql 32023340cb9aa1fbf52a1a3e330c6f3206e1c64c9dce2f795d9e434aa5a1533b f451de0d4941ab79014d2883b46291f9f05f79d479fcdcab387020ab3ed68703
test/extractor-tests/generated/PathMeta/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql 63e9dbae0d0b46d5e9d60c313e408c4c7ee1a93c5a26fe4c01a632911de961d0 09fcc28bb22553356aebf9ea93811703e5404b88022be8dab61ac81d3b187b75
test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql d9289bfe1e72d9560b3878e4557f8cfda578ef7bce67eb29d7320921c0ba46a5 f3ea108aa25635bffa7673bb66b2581ce246d3aae86edf878c6f1abca2493c16
test/extractor-tests/generated/RangeExpr/RangeExpr.ql c9776706d933606d1463bb08ed76457ac03a9558f6dac0218ef2012bc5e8e48f 77cafee86abc2680e1f9c925fbe664c05ba1b9a2533b1873242ef01dde1ce308
@@ -760,15 +804,16 @@ test/extractor-tests/generated/Struct/Struct.ql 57e837e3c665d24870d99492c8874441
test/extractor-tests/generated/StructExpr/StructExpr.ql 3b98205260e750cc7adc42b318deef2854cc3b4f921cbcfffc6d701553af3903 368bccf01db2fa069dca30d9fb0878f8e6a88d4ce58b333b24a18620933e4c91
test/extractor-tests/generated/StructExprField/StructExprField.ql b65375963aa24f0d1dd4c10784e32ab8c337ad431462ea1d081a0e456fbb1362 7f5a49e8df03ed0890b51c2e941d636fbbf70445a53d3af2c0f34a04f26bc6ef
test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql 01dc3ef66d79836a3d372464f05454015648ab093f9547c5d9c5d55271acb718 83625301c097fa38d4e6021ea28b8adc6338076c8c2aa88a86a22aac412839f6
test/extractor-tests/generated/StructField/StructField.ql dbdb627202975a0ca07ed441449ecc95d9d0764084a49a18e7849164b2e65ce2 8e7f32f28d15104575eaa985e892c162ec775adf3481c227ef618b5668168de7
test/extractor-tests/generated/StructField/StructField.ql 322229f824f2e2e2c4fb76ff35e343559bbe986982d40ca8739a071ee9778de4 535c3958f316c7106de50aa507f159b99b58cef4707e1f6b0a5ea48913d9c49c
test/extractor-tests/generated/StructFieldList/StructFieldList.ql 292170b20f3a55c0cd6a8d78ce99474ca68daf6fb380cffe00b2bd7074e1b73a 404bab780f290ae04d1d71d3c6d4e0092bb3d8c55e956168d2a445cbd6d1f06d
test/extractor-tests/generated/StructPat/StructPat.ql 894babd64d3def35717cbeed6eb4799cf9f52e73992822b72fc521c93efb4935 5bd1502b69014d70464b4b76795e1732ac2a6db5d028bea52929cf1998af5f07
test/extractor-tests/generated/StructPatField/StructPatField.ql 92cb6a4b5234359c02d66085b10d41f37b77370491ed478ad6d4d9b12b943ecf 14bc2079763b53bc6ab11356f3bb21820ae9e4dd1b2a42a78665c32181c4ef92
test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql a3ba3e99d3c87d5e0ae0ad82cbea3600ac1745e9364d54d8d51224b51a5a09a5 5942ed2722c006bae99de9174249110bfc79594c5ef9a6dfc098ae2be269b8f3
test/extractor-tests/generated/TokenTree/TokenTree.ql 55592f43a6fe99045d0b0b1e2323211d3a3fd64a8c7d2b083f2518d4c3e2e4b0 8eeef2060c80b0918857ba9b3a8543a4b866ca04be3d5ca18aae8a26cbdb836e
test/extractor-tests/generated/TokenTreeMeta/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
test/extractor-tests/generated/Trait/AssocItemList.ql 065c4903992500423d796800e7dc9a5835a07cbada595108f3af6efa72517782 aa797bf5ddefb800d5ca7f49c19c5124b1007e1658129b27c8c3de34427c7f08
test/extractor-tests/generated/Trait/Trait.ql e59d9d97baedc5691f9fb837e3600b1b33808c598971d8abe28121a9c70292b4 0da2808421a1e1acbc61076d4b50c559f2abf02cbd5f69ba15a65457887ff435
test/extractor-tests/generated/TraitAlias/TraitAlias.ql 9a4bcbf850afd833606f9447493b848e9a5df593198e5fc7a3a5bfb1c4c0782c 1f738eaf245220142d9fe5b88718980494b1e3c5b68609f5ee591056f23ea765
test/extractor-tests/generated/TryBlockModifier/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
test/extractor-tests/generated/TryExpr/TryExpr.ql 4e3c224a7d5fb8f01654c7d3c79414daa575897cfa6f351fcd5b5832f53a151f d961a497c304c1c5aa1d94e04aed2bf17a2c422e315f05986e1a9027e69dbd2a
test/extractor-tests/generated/TupleExpr/TupleExpr.ql 4011d94438903e96fa321285558f5791bee7e1d1fb26be0381586511cf439d1b c6bc8d08a8d5d98d7a52b72d5c597b63754fe12cec653c520833e4b71a9dcea4
test/extractor-tests/generated/TupleField/TupleField.ql ed681b7fee5e68d24db4999389727b2589e5af793d3c2ddc8b1e245713c0e1f8 4f867b29adf91b4bfa5052e16d392c16bf260e858aad11b60c42f1eddb476e61
@@ -783,11 +828,12 @@ test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql 6827529eca62f5e7be
test/extractor-tests/generated/TypeParam/TypeParam.ql c5f8f62f2877c719c3cf069f9d0ca83cebc14f7611c6c2dce86c85114ea2635c 751c630986f35a8d0d32fbeb61ca6ff801c96cd1829dbccc874fbf5f5158e98d
test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql a7b7a93104fff28515154cf8e79045d3eea2494b5c46f1caf36639c53b1c64a7 070ee2e1664e3291646ea56681b5c93331f94dcc519deb28622beca3e26e16f3
test/extractor-tests/generated/Union/Union.ql 427757ef5aa4e95fde8f5047263cbbbc7e2614f9efabc51c9a5f9ba8d9b68310 d1d8840a4324e5727e1ecf6e696741e902b807b39ec82686b94211803eb2d0ba
test/extractor-tests/generated/UnsafeMeta/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
test/extractor-tests/generated/Use/Use.ql 1f084f3b49c910c6e01d2a81be2443e84c2836a5855b89874965efaf25d17511 d5bf37ba65f4d280312ca798bae22d2735c00cf91ff05ed6321f69b76b4551bc
test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql 46ff2cf0fc8b561b21f8dff3230550f2feafbe52a7ea8b28bf183abef94ff241 92646f3bd15a8cf4c23ee9de4d857ac5c147e570ef0eb223423a109b4b79aedf
test/extractor-tests/generated/UseTree/UseTree.ql 3c2bc924b54b9af5c95784023d4098924571ba464c5982124acea712c3ce0e93 8d9f963b61a9a8a83efd93438ce8b43d4aa763493338ad9afd2a3dc7a440892d
test/extractor-tests/generated/UseTreeList/UseTreeList.ql faff7bfc060d5b0a922f38b37bf586596566186f704c9921651785580e86d684 81e5b90edeef0d3883547844a030e72b555d714de1ed8dded1c22a3772b4449a
test/extractor-tests/generated/Variant/Variant.ql 6b1936698cec413f1645d52e3f4d6d995968d432466241eb823c1ae635c852dd 0b5b0248f09ae01b683ea835299d51fa26f6b5a584e889c538b0f0cf13106d0f
test/extractor-tests/generated/Variant/Variant.ql 0de458e2d04e40e9a0c036e423d05af3617f4423b967e287f0800ccffd345633 921a8ca71390812f174c5220d54dfcfc7105e57ba3c301f5c86301a19d089bda
test/extractor-tests/generated/VariantList/VariantList.ql 1c1d82ce3ecfa7daaae1920662510e81892ed899a3c2f785e2ff3670245a03cd 29d4c5ab2b737a92c7525789e10a4aa9848f1a327e34f4e9543018021106b303
test/extractor-tests/generated/Visibility/Visibility.ql 725d47d7444332133df603f9b06592dc40b0f83bf5e21ad4781c5658e001a3aa 2d65a30702a8bb5bc91caf6ae2d0e4c769b3eeb0d72ffbd9cdb81048be4061ad
test/extractor-tests/generated/WhereClause/WhereClause.ql a6f0e69ffa6b997cac04d4da442eb8bde517a576840c953abcc40863b9099ba1 7ce888fffc3038d5b18f8c94d3b045815cd45500e1bb3849c05fc874edbeb695

60
rust/ql/.gitattributes generated vendored
View File

@@ -36,6 +36,11 @@
/lib/codeql/rust/elements/CallExpr.qll linguist-generated
/lib/codeql/rust/elements/Callable.qll linguist-generated
/lib/codeql/rust/elements/CastExpr.qll linguist-generated
/lib/codeql/rust/elements/CfgAtom.qll linguist-generated
/lib/codeql/rust/elements/CfgAttrMeta.qll linguist-generated
/lib/codeql/rust/elements/CfgComposite.qll linguist-generated
/lib/codeql/rust/elements/CfgMeta.qll linguist-generated
/lib/codeql/rust/elements/CfgPredicate.qll linguist-generated
/lib/codeql/rust/elements/ClosureExpr.qll linguist-generated
/lib/codeql/rust/elements/Comment.qll linguist-generated
/lib/codeql/rust/elements/Const.qll linguist-generated
@@ -61,6 +66,7 @@
/lib/codeql/rust/elements/ForTypeRepr.qll linguist-generated
/lib/codeql/rust/elements/Format.qll linguist-generated
/lib/codeql/rust/elements/FormatArgsArg.qll linguist-generated
/lib/codeql/rust/elements/FormatArgsArgName.qll linguist-generated
/lib/codeql/rust/elements/FormatArgsExpr.qll linguist-generated
/lib/codeql/rust/elements/FormatArgument.qll linguist-generated
/lib/codeql/rust/elements/FormatTemplateVariableAccess.qll linguist-generated
@@ -77,6 +83,7 @@
/lib/codeql/rust/elements/InferTypeRepr.qll linguist-generated
/lib/codeql/rust/elements/Item.qll linguist-generated
/lib/codeql/rust/elements/ItemList.qll linguist-generated
/lib/codeql/rust/elements/KeyValueMeta.qll linguist-generated
/lib/codeql/rust/elements/Label.qll linguist-generated
/lib/codeql/rust/elements/LabelableExpr.qll linguist-generated
/lib/codeql/rust/elements/LetElse.qll linguist-generated
@@ -122,6 +129,7 @@
/lib/codeql/rust/elements/PathAstNode.qll linguist-generated
/lib/codeql/rust/elements/PathExpr.qll linguist-generated
/lib/codeql/rust/elements/PathExprBase.qll linguist-generated
/lib/codeql/rust/elements/PathMeta.qll linguist-generated
/lib/codeql/rust/elements/PathPat.qll linguist-generated
/lib/codeql/rust/elements/PathSegment.qll linguist-generated
/lib/codeql/rust/elements/PathTypeRepr.qll linguist-generated
@@ -155,8 +163,9 @@
/lib/codeql/rust/elements/StructPatFieldList.qll linguist-generated
/lib/codeql/rust/elements/Token.qll linguist-generated
/lib/codeql/rust/elements/TokenTree.qll linguist-generated
/lib/codeql/rust/elements/TokenTreeMeta.qll linguist-generated
/lib/codeql/rust/elements/Trait.qll linguist-generated
/lib/codeql/rust/elements/TraitAlias.qll linguist-generated
/lib/codeql/rust/elements/TryBlockModifier.qll linguist-generated
/lib/codeql/rust/elements/TryExpr.qll linguist-generated
/lib/codeql/rust/elements/TupleExpr.qll linguist-generated
/lib/codeql/rust/elements/TupleField.qll linguist-generated
@@ -175,6 +184,7 @@
/lib/codeql/rust/elements/Unextracted.qll linguist-generated
/lib/codeql/rust/elements/Unimplemented.qll linguist-generated
/lib/codeql/rust/elements/Union.qll linguist-generated
/lib/codeql/rust/elements/UnsafeMeta.qll linguist-generated
/lib/codeql/rust/elements/Use.qll linguist-generated
/lib/codeql/rust/elements/UseBoundGenericArg.qll linguist-generated
/lib/codeql/rust/elements/UseBoundGenericArgs.qll linguist-generated
@@ -238,6 +248,15 @@
/lib/codeql/rust/elements/internal/BreakExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/CallExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/CastExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/CfgAtomConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/CfgAtomImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/CfgAttrMetaConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/CfgAttrMetaImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/CfgCompositeConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/CfgCompositeImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/CfgMetaConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/CfgMetaImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/CfgPredicateImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/ClosureExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/CommentConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/ConstArgConstructor.qll linguist-generated
@@ -273,6 +292,8 @@
/lib/codeql/rust/elements/internal/ForTypeReprImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/FormatArgsArgConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/FormatArgsArgImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/FormatArgsArgNameConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/FormatArgsArgNameImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/FormatArgsExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/FunctionConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/GenericArgImpl.qll linguist-generated
@@ -287,6 +308,8 @@
/lib/codeql/rust/elements/internal/InferTypeReprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/ItemListConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/ItemListImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/KeyValueMetaConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/KeyValueMetaImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/LabelConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/LetElseConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/LetExprConstructor.qll linguist-generated
@@ -319,7 +342,6 @@
/lib/codeql/rust/elements/internal/MatchExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/MatchGuardConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/MatchGuardImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/MetaConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/MetaImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/MethodCallExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/MissingConstructor.qll linguist-generated
@@ -346,6 +368,8 @@
/lib/codeql/rust/elements/internal/PathConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/PathExprBaseImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/PathExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/PathMetaConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/PathMetaImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/PathPatConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/PathSegmentConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/PathTypeReprConstructor.qll linguist-generated
@@ -394,9 +418,11 @@
/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
/lib/codeql/rust/elements/internal/TraitAliasConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/TraitAliasImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/TokenTreeMetaConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/TokenTreeMetaImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/TraitConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/TryBlockModifierConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/TryBlockModifierImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/TryExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/TryExprImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/TupleExprConstructor.qll linguist-generated
@@ -421,6 +447,8 @@
/lib/codeql/rust/elements/internal/UnimplementedConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/UnimplementedImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/UnionConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/UnsafeMetaConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/UnsafeMetaImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/UseBoundGenericArgImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/UseBoundGenericArgsConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/UseBoundGenericArgsImpl.qll linguist-generated
@@ -478,6 +506,11 @@
/lib/codeql/rust/elements/internal/generated/CallExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/Callable.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/CastExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/CfgAtom.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/CfgAttrMeta.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/CfgComposite.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/CfgMeta.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/CfgPredicate.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/ClosureExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/Comment.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/Const.qll linguist-generated
@@ -504,6 +537,7 @@
/lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/Format.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/FormatArgsArg.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/FormatArgsArgName.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/FormatArgsExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/FormatArgument.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/FormatTemplateVariableAccess.qll linguist-generated
@@ -520,6 +554,7 @@
/lib/codeql/rust/elements/internal/generated/InferTypeRepr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/Item.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/ItemList.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/KeyValueMeta.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/Label.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/LabelableExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/LetElse.qll linguist-generated
@@ -567,6 +602,7 @@
/lib/codeql/rust/elements/internal/generated/PathAstNode.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/PathExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/PathExprBase.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/PathMeta.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/PathPat.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/PathSegment.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/PathTypeRepr.qll linguist-generated
@@ -604,8 +640,9 @@
/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/Token.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/TokenTree.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/TokenTreeMeta.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/Trait.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/TraitAlias.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/TryBlockModifier.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/TryExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/TupleExpr.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/TupleField.qll linguist-generated
@@ -624,6 +661,7 @@
/lib/codeql/rust/elements/internal/generated/Unextracted.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/Unimplemented.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/Union.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/UnsafeMeta.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/Use.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/UseBoundGenericArg.qll linguist-generated
/lib/codeql/rust/elements/internal/generated/UseBoundGenericArgs.qll linguist-generated
@@ -666,6 +704,10 @@
/test/extractor-tests/generated/BreakExpr/BreakExpr.ql linguist-generated
/test/extractor-tests/generated/CallExpr/CallExpr.ql linguist-generated
/test/extractor-tests/generated/CastExpr/CastExpr.ql linguist-generated
/test/extractor-tests/generated/CfgAtom/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/CfgAttrMeta/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/CfgComposite/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/CfgMeta/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql linguist-generated
/test/extractor-tests/generated/Comment/Comment.ql linguist-generated
/test/extractor-tests/generated/Const/Const.ql linguist-generated
@@ -685,6 +727,7 @@
/test/extractor-tests/generated/ForBinder/ForBinder.ql linguist-generated
/test/extractor-tests/generated/ForExpr/ForExpr.ql linguist-generated
/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql linguist-generated
/test/extractor-tests/generated/FormatArgsArgName/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/FormatArgsExpr/Format.ql linguist-generated
/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql linguist-generated
/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql linguist-generated
@@ -700,6 +743,7 @@
/test/extractor-tests/generated/IndexExpr/IndexExpr.ql linguist-generated
/test/extractor-tests/generated/InferTypeRepr/InferTypeRepr.ql linguist-generated
/test/extractor-tests/generated/ItemList/ItemList.ql linguist-generated
/test/extractor-tests/generated/KeyValueMeta/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/Label/Label.ql linguist-generated
/test/extractor-tests/generated/LetElse/LetElse.ql linguist-generated
/test/extractor-tests/generated/LetExpr/LetExpr.ql linguist-generated
@@ -721,7 +765,6 @@
/test/extractor-tests/generated/MatchArmList/MatchArmList.ql linguist-generated
/test/extractor-tests/generated/MatchExpr/MatchExpr.ql linguist-generated
/test/extractor-tests/generated/MatchGuard/MatchGuard.ql linguist-generated
/test/extractor-tests/generated/Meta/Meta.ql linguist-generated
/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql linguist-generated
/test/extractor-tests/generated/Module/Module.ql linguist-generated
/test/extractor-tests/generated/Name/Name.ql linguist-generated
@@ -740,6 +783,7 @@
/test/extractor-tests/generated/Path/PathPat.ql linguist-generated
/test/extractor-tests/generated/Path/PathSegment.ql linguist-generated
/test/extractor-tests/generated/Path/PathTypeRepr.ql linguist-generated
/test/extractor-tests/generated/PathMeta/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql linguist-generated
/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql linguist-generated
/test/extractor-tests/generated/RangeExpr/RangeExpr.ql linguist-generated
@@ -768,9 +812,10 @@
/test/extractor-tests/generated/StructPatField/StructPatField.ql linguist-generated
/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql linguist-generated
/test/extractor-tests/generated/TokenTree/TokenTree.ql linguist-generated
/test/extractor-tests/generated/TokenTreeMeta/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/Trait/AssocItemList.ql linguist-generated
/test/extractor-tests/generated/Trait/Trait.ql linguist-generated
/test/extractor-tests/generated/TraitAlias/TraitAlias.ql linguist-generated
/test/extractor-tests/generated/TryBlockModifier/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/TryExpr/TryExpr.ql linguist-generated
/test/extractor-tests/generated/TupleExpr/TupleExpr.ql linguist-generated
/test/extractor-tests/generated/TupleField/TupleField.ql linguist-generated
@@ -785,6 +830,7 @@
/test/extractor-tests/generated/TypeParam/TypeParam.ql linguist-generated
/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql linguist-generated
/test/extractor-tests/generated/Union/Union.ql linguist-generated
/test/extractor-tests/generated/UnsafeMeta/MISSING_SOURCE.txt linguist-generated
/test/extractor-tests/generated/Use/Use.ql linguist-generated
/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql linguist-generated
/test/extractor-tests/generated/UseTree/UseTree.ql linguist-generated

View File

@@ -507,11 +507,6 @@ module MakeCfgNodes<LocationSig Loc, InputSig<Loc> Input> {
*/
predicate isMove() { node.isMove() }
/**
* Holds if this block expression is try.
*/
predicate isTry() { node.isTry() }
/**
* Holds if this block expression is unsafe.
*/
@@ -526,6 +521,16 @@ module MakeCfgNodes<LocationSig Loc, InputSig<Loc> Input> {
* Holds if `getStmtList()` exists.
*/
predicate hasStmtList() { exists(this.getStmtList()) }
/**
* Gets the try block modifier of this block expression, if it exists.
*/
TryBlockModifier getTryBlockModifier() { result = node.getTryBlockModifier() }
/**
* Holds if `getTryBlockModifier()` exists.
*/
predicate hasTryBlockModifier() { exists(this.getTryBlockModifier()) }
}
final private class ParentBoxPat extends ParentAstNode, BoxPat {
@@ -1018,8 +1023,6 @@ module MakeCfgNodes<LocationSig Loc, InputSig<Loc> Input> {
none()
or
child = this.getExpr()
or
child = this.getName()
}
}
@@ -1037,6 +1040,16 @@ module MakeCfgNodes<LocationSig Loc, InputSig<Loc> Input> {
/** Gets the underlying `FormatArgsArg`. */
FormatArgsArg getFormatArgsArg() { result = node }
/**
* Gets the argument name of this format arguments argument, if it exists.
*/
FormatArgsArgName getArgName() { result = node.getArgName() }
/**
* Holds if `getArgName()` exists.
*/
predicate hasArgName() { exists(this.getArgName()) }
/**
* Gets the expression of this format arguments argument, if it exists.
*/
@@ -1048,18 +1061,6 @@ module MakeCfgNodes<LocationSig Loc, InputSig<Loc> Input> {
* Holds if `getExpr()` exists.
*/
predicate hasExpr() { exists(this.getExpr()) }
/**
* Gets the name of this format arguments argument, if it exists.
*/
NameCfgNode getName() {
any(ChildMapping mapping).hasCfgChild(node, node.getName(), this, result)
}
/**
* Holds if `getName()` exists.
*/
predicate hasName() { exists(this.getName()) }
}
final private class ParentFormatArgsExpr extends ParentAstNode, FormatArgsExpr {
@@ -3558,18 +3559,6 @@ module MakeCfgNodes<LocationSig Loc, InputSig<Loc> Input> {
cfgNode
)
or
pred = "getName" and
parent =
any(Nodes::FormatArgsArgCfgNode cfgNode, FormatArgsArg astNode |
astNode = cfgNode.getFormatArgsArg() and
child = getDesugared(astNode.getName()) and
i = -1 and
hasCfgNode(child) and
not child = cfgNode.getName().getAstNode()
|
cfgNode
)
or
pred = "getArg" and
parent =
any(Nodes::FormatArgsExprCfgNode cfgNode, FormatArgsExpr astNode |

View File

@@ -39,6 +39,11 @@ import codeql.rust.elements.BreakExpr
import codeql.rust.elements.CallExpr
import codeql.rust.elements.Callable
import codeql.rust.elements.CastExpr
import codeql.rust.elements.CfgAtom
import codeql.rust.elements.CfgAttrMeta
import codeql.rust.elements.CfgComposite
import codeql.rust.elements.CfgMeta
import codeql.rust.elements.CfgPredicate
import codeql.rust.elements.ClosureExpr
import codeql.rust.elements.Comment
import codeql.rust.elements.Const
@@ -64,6 +69,7 @@ import codeql.rust.elements.ForExpr
import codeql.rust.elements.ForTypeRepr
import codeql.rust.elements.Format
import codeql.rust.elements.FormatArgsArg
import codeql.rust.elements.FormatArgsArgName
import codeql.rust.elements.FormatArgsExpr
import codeql.rust.elements.FormatArgument
import codeql.rust.elements.FormatTemplateVariableAccess
@@ -80,6 +86,7 @@ import codeql.rust.elements.IndexExpr
import codeql.rust.elements.InferTypeRepr
import codeql.rust.elements.Item
import codeql.rust.elements.ItemList
import codeql.rust.elements.KeyValueMeta
import codeql.rust.elements.Label
import codeql.rust.elements.LabelableExpr
import codeql.rust.elements.LetElse
@@ -125,6 +132,7 @@ import codeql.rust.elements.Path
import codeql.rust.elements.PathAstNode
import codeql.rust.elements.PathExpr
import codeql.rust.elements.PathExprBase
import codeql.rust.elements.PathMeta
import codeql.rust.elements.PathPat
import codeql.rust.elements.PathSegment
import codeql.rust.elements.PathTypeRepr
@@ -158,8 +166,9 @@ import codeql.rust.elements.StructPatField
import codeql.rust.elements.StructPatFieldList
import codeql.rust.elements.Token
import codeql.rust.elements.TokenTree
import codeql.rust.elements.TokenTreeMeta
import codeql.rust.elements.Trait
import codeql.rust.elements.TraitAlias
import codeql.rust.elements.TryBlockModifier
import codeql.rust.elements.TryExpr
import codeql.rust.elements.TupleExpr
import codeql.rust.elements.TupleField
@@ -178,6 +187,7 @@ import codeql.rust.elements.UnderscoreExpr
import codeql.rust.elements.Unextracted
import codeql.rust.elements.Unimplemented
import codeql.rust.elements.Union
import codeql.rust.elements.UnsafeMeta
import codeql.rust.elements.Use
import codeql.rust.elements.UseBoundGenericArg
import codeql.rust.elements.UseBoundGenericArgs

View File

@@ -7,6 +7,7 @@ private import internal.BlockExprImpl
import codeql.rust.elements.Attr
import codeql.rust.elements.LabelableExpr
import codeql.rust.elements.StmtList
import codeql.rust.elements.TryBlockModifier
/**
* A block expression. For example:

View File

@@ -0,0 +1,9 @@
// generated by codegen, do not edit
/**
* This module provides the public class `CfgAtom`.
*/
private import internal.CfgAtomImpl
import codeql.rust.elements.CfgPredicate
final class CfgAtom = Impl::CfgAtom;

View File

@@ -0,0 +1,10 @@
// generated by codegen, do not edit
/**
* This module provides the public class `CfgAttrMeta`.
*/
private import internal.CfgAttrMetaImpl
import codeql.rust.elements.CfgPredicate
import codeql.rust.elements.Meta
final class CfgAttrMeta = Impl::CfgAttrMeta;

View File

@@ -0,0 +1,9 @@
// generated by codegen, do not edit
/**
* This module provides the public class `CfgComposite`.
*/
private import internal.CfgCompositeImpl
import codeql.rust.elements.CfgPredicate
final class CfgComposite = Impl::CfgComposite;

View File

@@ -0,0 +1,10 @@
// generated by codegen, do not edit
/**
* This module provides the public class `CfgMeta`.
*/
private import internal.CfgMetaImpl
import codeql.rust.elements.CfgPredicate
import codeql.rust.elements.Meta
final class CfgMeta = Impl::CfgMeta;

View File

@@ -0,0 +1,9 @@
// generated by codegen, do not edit
/**
* This module provides the public class `CfgPredicate`.
*/
private import internal.CfgPredicateImpl
import codeql.rust.elements.AstNode
final class CfgPredicate = Impl::CfgPredicate;

View File

@@ -6,7 +6,7 @@
private import internal.FormatArgsArgImpl
import codeql.rust.elements.AstNode
import codeql.rust.elements.Expr
import codeql.rust.elements.Name
import codeql.rust.elements.FormatArgsArgName
/**
* A FormatArgsArg. For example the `"world"` in:

View File

@@ -0,0 +1,9 @@
// generated by codegen, do not edit
/**
* This module provides the public class `FormatArgsArgName`.
*/
private import internal.FormatArgsArgNameImpl
import codeql.rust.elements.AstNode
final class FormatArgsArgName = Impl::FormatArgsArgName;

View File

@@ -0,0 +1,11 @@
// generated by codegen, do not edit
/**
* This module provides the public class `KeyValueMeta`.
*/
private import internal.KeyValueMetaImpl
import codeql.rust.elements.Expr
import codeql.rust.elements.Meta
import codeql.rust.elements.Path
final class KeyValueMeta = Impl::KeyValueMeta;

View File

@@ -5,9 +5,6 @@
private import internal.MetaImpl
import codeql.rust.elements.AstNode
import codeql.rust.elements.Expr
import codeql.rust.elements.Path
import codeql.rust.elements.TokenTree
/**
* A meta item in an attribute.

View File

@@ -0,0 +1,10 @@
// generated by codegen, do not edit
/**
* This module provides the public class `PathMeta`.
*/
private import internal.PathMetaImpl
import codeql.rust.elements.Meta
import codeql.rust.elements.Path
final class PathMeta = Impl::PathMeta;

View File

@@ -6,7 +6,7 @@
private import internal.StructFieldImpl
import codeql.rust.elements.AstNode
import codeql.rust.elements.Attr
import codeql.rust.elements.Expr
import codeql.rust.elements.ConstArg
import codeql.rust.elements.Name
import codeql.rust.elements.TypeRepr
import codeql.rust.elements.Visibility

View File

@@ -0,0 +1,11 @@
// generated by codegen, do not edit
/**
* This module provides the public class `TokenTreeMeta`.
*/
private import internal.TokenTreeMetaImpl
import codeql.rust.elements.Meta
import codeql.rust.elements.Path
import codeql.rust.elements.TokenTree
final class TokenTreeMeta = Impl::TokenTreeMeta;

View File

@@ -1,23 +0,0 @@
// generated by codegen, do not edit
/**
* This module provides the public class `TraitAlias`.
*/
private import internal.TraitAliasImpl
import codeql.rust.elements.Attr
import codeql.rust.elements.GenericParamList
import codeql.rust.elements.Item
import codeql.rust.elements.Name
import codeql.rust.elements.TypeBoundList
import codeql.rust.elements.Visibility
import codeql.rust.elements.WhereClause
/**
* A trait alias.
*
* For example:
* ```rust
* trait Foo = Bar + Baz;
* ```
*/
final class TraitAlias = Impl::TraitAlias;

View File

@@ -0,0 +1,10 @@
// generated by codegen, do not edit
/**
* This module provides the public class `TryBlockModifier`.
*/
private import internal.TryBlockModifierImpl
import codeql.rust.elements.AstNode
import codeql.rust.elements.TypeRepr
final class TryBlockModifier = Impl::TryBlockModifier;

View File

@@ -0,0 +1,9 @@
// generated by codegen, do not edit
/**
* This module provides the public class `UnsafeMeta`.
*/
private import internal.UnsafeMetaImpl
import codeql.rust.elements.Meta
final class UnsafeMeta = Impl::UnsafeMeta;

View File

@@ -6,7 +6,7 @@
private import internal.VariantImpl
import codeql.rust.elements.Addressable
import codeql.rust.elements.Attr
import codeql.rust.elements.Expr
import codeql.rust.elements.ConstArg
import codeql.rust.elements.FieldList
import codeql.rust.elements.Name
import codeql.rust.elements.Visibility

View File

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

View File

@@ -1,24 +1,16 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module provides a hand-modifiable wrapper around the generated class `TraitAlias`.
* This module provides a hand-modifiable wrapper around the generated class `CfgAtom`.
*
* INTERNAL: Do not use.
*/
private import codeql.rust.elements.internal.generated.TraitAlias
private import codeql.rust.elements.internal.generated.CfgAtom
/**
* INTERNAL: This module contains the customizable definition of `TraitAlias` and should not
* INTERNAL: This module contains the customizable definition of `CfgAtom` and should not
* be referenced directly.
*/
module Impl {
/**
* A trait alias.
*
* For example:
* ```rust
* trait Foo = Bar + Baz;
* ```
*/
class TraitAlias extends Generated::TraitAlias { }
class CfgAtom extends Generated::CfgAtom { }
}

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

View File

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

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

View File

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

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

View File

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

View File

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

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

View File

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

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

View File

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

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

View File

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

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

View File

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

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

View File

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

View File

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

View File

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

View File

@@ -9,6 +9,7 @@ private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.Attr
import codeql.rust.elements.internal.LabelableExprImpl::Impl as LabelableExprImpl
import codeql.rust.elements.StmtList
import codeql.rust.elements.TryBlockModifier
/**
* INTERNAL: This module contains the fully generated definition of `BlockExpr` and should not
@@ -72,11 +73,6 @@ module Generated {
*/
predicate isMove() { Synth::convertBlockExprToRaw(this).(Raw::BlockExpr).isMove() }
/**
* Holds if this block expression is try.
*/
predicate isTry() { Synth::convertBlockExprToRaw(this).(Raw::BlockExpr).isTry() }
/**
* Holds if this block expression is unsafe.
*/
@@ -96,5 +92,20 @@ module Generated {
* Holds if `getStmtList()` exists.
*/
final predicate hasStmtList() { exists(this.getStmtList()) }
/**
* Gets the try block modifier of this block expression, if it exists.
*/
TryBlockModifier getTryBlockModifier() {
result =
Synth::convertTryBlockModifierFromRaw(Synth::convertBlockExprToRaw(this)
.(Raw::BlockExpr)
.getTryBlockModifier())
}
/**
* Holds if `getTryBlockModifier()` exists.
*/
final predicate hasTryBlockModifier() { exists(this.getTryBlockModifier()) }
}
}

View File

@@ -0,0 +1,23 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `CfgAtom`.
* 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.CfgPredicateImpl::Impl as CfgPredicateImpl
/**
* INTERNAL: This module contains the fully generated definition of `CfgAtom` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::CfgAtom` class directly.
* Use the subclass `CfgAtom`, where the following predicates are available.
*/
class CfgAtom extends Synth::TCfgAtom, CfgPredicateImpl::CfgPredicate {
override string getAPrimaryQlClass() { result = "CfgAtom" }
}
}

View File

@@ -0,0 +1,60 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `CfgAttrMeta`.
* 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.CfgPredicate
import codeql.rust.elements.Meta
import codeql.rust.elements.internal.MetaImpl::Impl as MetaImpl
/**
* INTERNAL: This module contains the fully generated definition of `CfgAttrMeta` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::CfgAttrMeta` class directly.
* Use the subclass `CfgAttrMeta`, where the following predicates are available.
*/
class CfgAttrMeta extends Synth::TCfgAttrMeta, MetaImpl::Meta {
override string getAPrimaryQlClass() { result = "CfgAttrMeta" }
/**
* Gets the cfg predicate of this cfg attr meta, if it exists.
*/
CfgPredicate getCfgPredicate() {
result =
Synth::convertCfgPredicateFromRaw(Synth::convertCfgAttrMetaToRaw(this)
.(Raw::CfgAttrMeta)
.getCfgPredicate())
}
/**
* Holds if `getCfgPredicate()` exists.
*/
final predicate hasCfgPredicate() { exists(this.getCfgPredicate()) }
/**
* Gets the `index`th meta of this cfg attr meta (0-based).
*/
Meta getMeta(int index) {
result =
Synth::convertMetaFromRaw(Synth::convertCfgAttrMetaToRaw(this)
.(Raw::CfgAttrMeta)
.getMeta(index))
}
/**
* Gets any of the metas of this cfg attr meta.
*/
final Meta getAMeta() { result = this.getMeta(_) }
/**
* Gets the number of metas of this cfg attr meta.
*/
final int getNumberOfMetas() { result = count(int i | exists(this.getMeta(i))) }
}
}

View File

@@ -0,0 +1,44 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `CfgComposite`.
* 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.CfgPredicate
import codeql.rust.elements.internal.CfgPredicateImpl::Impl as CfgPredicateImpl
/**
* INTERNAL: This module contains the fully generated definition of `CfgComposite` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::CfgComposite` class directly.
* Use the subclass `CfgComposite`, where the following predicates are available.
*/
class CfgComposite extends Synth::TCfgComposite, CfgPredicateImpl::CfgPredicate {
override string getAPrimaryQlClass() { result = "CfgComposite" }
/**
* Gets the `index`th cfg predicate of this cfg composite (0-based).
*/
CfgPredicate getCfgPredicate(int index) {
result =
Synth::convertCfgPredicateFromRaw(Synth::convertCfgCompositeToRaw(this)
.(Raw::CfgComposite)
.getCfgPredicate(index))
}
/**
* Gets any of the cfg predicates of this cfg composite.
*/
final CfgPredicate getACfgPredicate() { result = this.getCfgPredicate(_) }
/**
* Gets the number of cfg predicates of this cfg composite.
*/
final int getNumberOfCfgPredicates() { result = count(int i | exists(this.getCfgPredicate(i))) }
}
}

View File

@@ -0,0 +1,39 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `CfgMeta`.
* 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.CfgPredicate
import codeql.rust.elements.internal.MetaImpl::Impl as MetaImpl
/**
* INTERNAL: This module contains the fully generated definition of `CfgMeta` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::CfgMeta` class directly.
* Use the subclass `CfgMeta`, where the following predicates are available.
*/
class CfgMeta extends Synth::TCfgMeta, MetaImpl::Meta {
override string getAPrimaryQlClass() { result = "CfgMeta" }
/**
* Gets the cfg predicate of this cfg meta, if it exists.
*/
CfgPredicate getCfgPredicate() {
result =
Synth::convertCfgPredicateFromRaw(Synth::convertCfgMetaToRaw(this)
.(Raw::CfgMeta)
.getCfgPredicate())
}
/**
* Holds if `getCfgPredicate()` exists.
*/
final predicate hasCfgPredicate() { exists(this.getCfgPredicate()) }
}
}

View File

@@ -0,0 +1,21 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `CfgPredicate`.
* 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.AstNodeImpl::Impl as AstNodeImpl
/**
* INTERNAL: This module contains the fully generated definition of `CfgPredicate` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::CfgPredicate` class directly.
* Use the subclass `CfgPredicate`, where the following predicates are available.
*/
class CfgPredicate extends Synth::TCfgPredicate, AstNodeImpl::AstNode { }
}

View File

@@ -8,7 +8,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.Expr
import codeql.rust.elements.Name
import codeql.rust.elements.FormatArgsArgName
/**
* INTERNAL: This module contains the fully generated definition of `FormatArgsArg` and should not
@@ -26,6 +26,21 @@ module Generated {
class FormatArgsArg extends Synth::TFormatArgsArg, AstNodeImpl::AstNode {
override string getAPrimaryQlClass() { result = "FormatArgsArg" }
/**
* Gets the argument name of this format arguments argument, if it exists.
*/
FormatArgsArgName getArgName() {
result =
Synth::convertFormatArgsArgNameFromRaw(Synth::convertFormatArgsArgToRaw(this)
.(Raw::FormatArgsArg)
.getArgName())
}
/**
* Holds if `getArgName()` exists.
*/
final predicate hasArgName() { exists(this.getArgName()) }
/**
* Gets the expression of this format arguments argument, if it exists.
*/
@@ -40,20 +55,5 @@ module Generated {
* Holds if `getExpr()` exists.
*/
final predicate hasExpr() { exists(this.getExpr()) }
/**
* Gets the name of this format arguments argument, if it exists.
*/
Name getName() {
result =
Synth::convertNameFromRaw(Synth::convertFormatArgsArgToRaw(this)
.(Raw::FormatArgsArg)
.getName())
}
/**
* Holds if `getName()` exists.
*/
final predicate hasName() { exists(this.getName()) }
}
}

View File

@@ -0,0 +1,23 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `FormatArgsArgName`.
* 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.AstNodeImpl::Impl as AstNodeImpl
/**
* INTERNAL: This module contains the fully generated definition of `FormatArgsArgName` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::FormatArgsArgName` class directly.
* Use the subclass `FormatArgsArgName`, where the following predicates are available.
*/
class FormatArgsArgName extends Synth::TFormatArgsArgName, AstNodeImpl::AstNode {
override string getAPrimaryQlClass() { result = "FormatArgsArgName" }
}
}

View File

@@ -0,0 +1,55 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `KeyValueMeta`.
* 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.Expr
import codeql.rust.elements.internal.MetaImpl::Impl as MetaImpl
import codeql.rust.elements.Path
/**
* INTERNAL: This module contains the fully generated definition of `KeyValueMeta` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::KeyValueMeta` class directly.
* Use the subclass `KeyValueMeta`, where the following predicates are available.
*/
class KeyValueMeta extends Synth::TKeyValueMeta, MetaImpl::Meta {
override string getAPrimaryQlClass() { result = "KeyValueMeta" }
/**
* Gets the expression of this key value meta, if it exists.
*/
Expr getExpr() {
result =
Synth::convertExprFromRaw(Synth::convertKeyValueMetaToRaw(this)
.(Raw::KeyValueMeta)
.getExpr())
}
/**
* Holds if `getExpr()` exists.
*/
final predicate hasExpr() { exists(this.getExpr()) }
/**
* Gets the path of this key value meta, if it exists.
*/
Path getPath() {
result =
Synth::convertPathFromRaw(Synth::convertKeyValueMetaToRaw(this)
.(Raw::KeyValueMeta)
.getPath())
}
/**
* Holds if `getPath()` exists.
*/
final predicate hasPath() { exists(this.getPath()) }
}
}

View File

@@ -7,9 +7,6 @@
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.Expr
import codeql.rust.elements.Path
import codeql.rust.elements.TokenTree
/**
* INTERNAL: This module contains the fully generated definition of `Meta` and should not
@@ -32,49 +29,5 @@ module Generated {
* INTERNAL: Do not reference the `Generated::Meta` class directly.
* Use the subclass `Meta`, where the following predicates are available.
*/
class Meta extends Synth::TMeta, AstNodeImpl::AstNode {
override string getAPrimaryQlClass() { result = "Meta" }
/**
* Gets the expression of this meta, if it exists.
*/
Expr getExpr() {
result = Synth::convertExprFromRaw(Synth::convertMetaToRaw(this).(Raw::Meta).getExpr())
}
/**
* Holds if `getExpr()` exists.
*/
final predicate hasExpr() { exists(this.getExpr()) }
/**
* Holds if this meta is unsafe.
*/
predicate isUnsafe() { Synth::convertMetaToRaw(this).(Raw::Meta).isUnsafe() }
/**
* Gets the path of this meta, if it exists.
*/
Path getPath() {
result = Synth::convertPathFromRaw(Synth::convertMetaToRaw(this).(Raw::Meta).getPath())
}
/**
* Holds if `getPath()` exists.
*/
final predicate hasPath() { exists(this.getPath()) }
/**
* Gets the token tree of this meta, if it exists.
*/
TokenTree getTokenTree() {
result =
Synth::convertTokenTreeFromRaw(Synth::convertMetaToRaw(this).(Raw::Meta).getTokenTree())
}
/**
* Holds if `getTokenTree()` exists.
*/
final predicate hasTokenTree() { exists(this.getTokenTree()) }
}
class Meta extends Synth::TMeta, AstNodeImpl::AstNode { }
}

View File

@@ -188,20 +188,26 @@ private module Impl {
private Element getImmediateChildOfFormatArgsArg(
FormatArgsArg e, int index, string partialPredicateCall
) {
exists(int n, int nExpr, int nName |
exists(int n, int nArgName, int nExpr |
n = 0 and
nExpr = n + 1 and
nName = nExpr + 1 and
nArgName = n + 1 and
nExpr = nArgName + 1 and
(
none()
or
index = n and result = e.getExpr() and partialPredicateCall = "Expr()"
index = n and result = e.getArgName() and partialPredicateCall = "ArgName()"
or
index = nExpr and result = e.getName() and partialPredicateCall = "Name()"
index = nArgName and result = e.getExpr() and partialPredicateCall = "Expr()"
)
)
}
private Element getImmediateChildOfFormatArgsArgName(
FormatArgsArgName e, int index, string partialPredicateCall
) {
none()
}
private Element getImmediateChildOfGenericArgList(
GenericArgList e, int index, string partialPredicateCall
) {
@@ -339,24 +345,6 @@ private module Impl {
)
}
private Element getImmediateChildOfMeta(Meta e, int index, string partialPredicateCall) {
exists(int n, int nExpr, int nPath, int nTokenTree |
n = 0 and
nExpr = n + 1 and
nPath = nExpr + 1 and
nTokenTree = nPath + 1 and
(
none()
or
index = n and result = e.getExpr() and partialPredicateCall = "Expr()"
or
index = nExpr and result = e.getPath() and partialPredicateCall = "Path()"
or
index = nPath and result = e.getTokenTree() and partialPredicateCall = "TokenTree()"
)
)
}
private Element getImmediateChildOfName(Name e, int index, string partialPredicateCall) { none() }
private Element getImmediateChildOfParamList(ParamList e, int index, string partialPredicateCall) {
@@ -567,11 +555,11 @@ private module Impl {
private Element getImmediateChildOfStructField(
StructField e, int index, string partialPredicateCall
) {
exists(int n, int nAttr, int nDefault, int nName, int nTypeRepr, int nVisibility |
exists(int n, int nAttr, int nDefaultVal, int nName, int nTypeRepr, int nVisibility |
n = 0 and
nAttr = n + e.getNumberOfAttrs() and
nDefault = nAttr + 1 and
nName = nDefault + 1 and
nDefaultVal = nAttr + 1 and
nName = nDefaultVal + 1 and
nTypeRepr = nName + 1 and
nVisibility = nTypeRepr + 1 and
(
@@ -580,9 +568,9 @@ private module Impl {
result = e.getAttr(index - n) and
partialPredicateCall = "Attr(" + (index - n).toString() + ")"
or
index = nAttr and result = e.getDefault() and partialPredicateCall = "Default()"
index = nAttr and result = e.getDefaultVal() and partialPredicateCall = "DefaultVal()"
or
index = nDefault and result = e.getName() and partialPredicateCall = "Name()"
index = nDefaultVal and result = e.getName() and partialPredicateCall = "Name()"
or
index = nName and result = e.getTypeRepr() and partialPredicateCall = "TypeRepr()"
or
@@ -634,6 +622,20 @@ private module Impl {
none()
}
private Element getImmediateChildOfTryBlockModifier(
TryBlockModifier e, int index, string partialPredicateCall
) {
exists(int n, int nTypeRepr |
n = 0 and
nTypeRepr = n + 1 and
(
none()
or
index = n and result = e.getTypeRepr() and partialPredicateCall = "TypeRepr()"
)
)
}
private Element getImmediateChildOfTupleField(TupleField e, int index, string partialPredicateCall) {
exists(int n, int nAttr, int nTypeRepr, int nVisibility |
n = 0 and
@@ -1108,6 +1110,55 @@ private module Impl {
)
}
private Element getImmediateChildOfCfgAtom(CfgAtom e, int index, string partialPredicateCall) {
none()
}
private Element getImmediateChildOfCfgAttrMeta(
CfgAttrMeta e, int index, string partialPredicateCall
) {
exists(int n, int nCfgPredicate, int nMeta |
n = 0 and
nCfgPredicate = n + 1 and
nMeta = nCfgPredicate + e.getNumberOfMetas() and
(
none()
or
index = n and result = e.getCfgPredicate() and partialPredicateCall = "CfgPredicate()"
or
result = e.getMeta(index - nCfgPredicate) and
partialPredicateCall = "Meta(" + (index - nCfgPredicate).toString() + ")"
)
)
}
private Element getImmediateChildOfCfgComposite(
CfgComposite e, int index, string partialPredicateCall
) {
exists(int n, int nCfgPredicate |
n = 0 and
nCfgPredicate = n + e.getNumberOfCfgPredicates() and
(
none()
or
result = e.getCfgPredicate(index - n) and
partialPredicateCall = "CfgPredicate(" + (index - n).toString() + ")"
)
)
}
private Element getImmediateChildOfCfgMeta(CfgMeta e, int index, string partialPredicateCall) {
exists(int n, int nCfgPredicate |
n = 0 and
nCfgPredicate = n + 1 and
(
none()
or
index = n and result = e.getCfgPredicate() and partialPredicateCall = "CfgPredicate()"
)
)
}
private Element getImmediateChildOfClosureExpr(
ClosureExpr e, int index, string partialPredicateCall
) {
@@ -1393,6 +1444,23 @@ private module Impl {
none()
}
private Element getImmediateChildOfKeyValueMeta(
KeyValueMeta e, int index, string partialPredicateCall
) {
exists(int n, int nExpr, int nPath |
n = 0 and
nExpr = n + 1 and
nPath = nExpr + 1 and
(
none()
or
index = n and result = e.getExpr() and partialPredicateCall = "Expr()"
or
index = nExpr and result = e.getPath() and partialPredicateCall = "Path()"
)
)
}
private Element getImmediateChildOfLetExpr(LetExpr e, int index, string partialPredicateCall) {
exists(int n, int nAttr, int nScrutinee, int nPat |
n = 0 and
@@ -1701,6 +1769,18 @@ private module Impl {
)
}
private Element getImmediateChildOfPathMeta(PathMeta e, int index, string partialPredicateCall) {
exists(int n, int nPath |
n = 0 and
nPath = n + 1 and
(
none()
or
index = n and result = e.getPath() and partialPredicateCall = "Path()"
)
)
}
private Element getImmediateChildOfPathPat(PathPat e, int index, string partialPredicateCall) {
exists(int n, int nPath |
n = 0 and
@@ -1963,6 +2043,23 @@ private module Impl {
)
}
private Element getImmediateChildOfTokenTreeMeta(
TokenTreeMeta e, int index, string partialPredicateCall
) {
exists(int n, int nPath, int nTokenTree |
n = 0 and
nPath = n + 1 and
nTokenTree = nPath + 1 and
(
none()
or
index = n and result = e.getPath() and partialPredicateCall = "Path()"
or
index = nPath and result = e.getTokenTree() and partialPredicateCall = "TokenTree()"
)
)
}
private Element getImmediateChildOfTryExpr(TryExpr e, int index, string partialPredicateCall) {
exists(int n, int nAttr, int nExpr |
n = 0 and
@@ -2106,12 +2203,24 @@ private module Impl {
)
}
private Element getImmediateChildOfUnsafeMeta(UnsafeMeta e, int index, string partialPredicateCall) {
exists(int n, int nMeta |
n = 0 and
nMeta = n + 1 and
(
none()
or
index = n and result = e.getMeta() and partialPredicateCall = "Meta()"
)
)
}
private Element getImmediateChildOfVariant(Variant e, int index, string partialPredicateCall) {
exists(int n, int nAttr, int nDiscriminant, int nFieldList, int nName, int nVisibility |
exists(int n, int nAttr, int nConstArg, int nFieldList, int nName, int nVisibility |
n = 0 and
nAttr = n + e.getNumberOfAttrs() and
nDiscriminant = nAttr + 1 and
nFieldList = nDiscriminant + 1 and
nConstArg = nAttr + 1 and
nFieldList = nConstArg + 1 and
nName = nFieldList + 1 and
nVisibility = nName + 1 and
(
@@ -2120,9 +2229,9 @@ private module Impl {
result = e.getAttr(index - n) and
partialPredicateCall = "Attr(" + (index - n).toString() + ")"
or
index = nAttr and result = e.getDiscriminant() and partialPredicateCall = "Discriminant()"
index = nAttr and result = e.getConstArg() and partialPredicateCall = "ConstArg()"
or
index = nDiscriminant and result = e.getFieldList() and partialPredicateCall = "FieldList()"
index = nConstArg and result = e.getFieldList() and partialPredicateCall = "FieldList()"
or
index = nFieldList and result = e.getName() and partialPredicateCall = "Name()"
or
@@ -2242,11 +2351,12 @@ private module Impl {
}
private Element getImmediateChildOfBlockExpr(BlockExpr e, int index, string partialPredicateCall) {
exists(int n, int nLabel, int nAttr, int nStmtList |
exists(int n, int nLabel, int nAttr, int nStmtList, int nTryBlockModifier |
n = 0 and
nLabel = n + 1 and
nAttr = nLabel + e.getNumberOfAttrs() and
nStmtList = nAttr + 1 and
nTryBlockModifier = nStmtList + 1 and
(
none()
or
@@ -2256,6 +2366,10 @@ private module Impl {
partialPredicateCall = "Attr(" + (index - nLabel).toString() + ")"
or
index = nAttr and result = e.getStmtList() and partialPredicateCall = "StmtList()"
or
index = nStmtList and
result = e.getTryBlockModifier() and
partialPredicateCall = "TryBlockModifier()"
)
)
}
@@ -2526,48 +2640,6 @@ private module Impl {
)
}
private Element getImmediateChildOfTraitAlias(TraitAlias e, int index, string partialPredicateCall) {
exists(
int n, int nAttributeMacroExpansion, int nAttr, int nGenericParamList, int nName,
int nTypeBoundList, int nVisibility, int nWhereClause
|
n = 0 and
nAttributeMacroExpansion = n + 1 and
nAttr = nAttributeMacroExpansion + e.getNumberOfAttrs() and
nGenericParamList = nAttr + 1 and
nName = nGenericParamList + 1 and
nTypeBoundList = nName + 1 and
nVisibility = nTypeBoundList + 1 and
nWhereClause = nVisibility + 1 and
(
none()
or
index = n and
result = e.getAttributeMacroExpansion() and
partialPredicateCall = "AttributeMacroExpansion()"
or
result = e.getAttr(index - nAttributeMacroExpansion) and
partialPredicateCall = "Attr(" + (index - nAttributeMacroExpansion).toString() + ")"
or
index = nAttr and
result = e.getGenericParamList() and
partialPredicateCall = "GenericParamList()"
or
index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()"
or
index = nName and result = e.getTypeBoundList() and partialPredicateCall = "TypeBoundList()"
or
index = nTypeBoundList and
result = e.getVisibility() and
partialPredicateCall = "Visibility()"
or
index = nVisibility and
result = e.getWhereClause() and
partialPredicateCall = "WhereClause()"
)
)
}
private Element getImmediateChildOfUse(Use e, int index, string partialPredicateCall) {
exists(int n, int nAttributeMacroExpansion, int nAttr, int nUseTree, int nVisibility |
n = 0 and
@@ -3045,6 +3117,8 @@ private module Impl {
or
result = getImmediateChildOfFormatArgsArg(e, index, partialAccessor)
or
result = getImmediateChildOfFormatArgsArgName(e, index, partialAccessor)
or
result = getImmediateChildOfGenericArgList(e, index, partialAccessor)
or
result = getImmediateChildOfGenericParamList(e, index, partialAccessor)
@@ -3063,8 +3137,6 @@ private module Impl {
or
result = getImmediateChildOfMatchGuard(e, index, partialAccessor)
or
result = getImmediateChildOfMeta(e, index, partialAccessor)
or
result = getImmediateChildOfName(e, index, partialAccessor)
or
result = getImmediateChildOfParamList(e, index, partialAccessor)
@@ -3097,6 +3169,8 @@ private module Impl {
or
result = getImmediateChildOfTokenTree(e, index, partialAccessor)
or
result = getImmediateChildOfTryBlockModifier(e, index, partialAccessor)
or
result = getImmediateChildOfTupleField(e, index, partialAccessor)
or
result = getImmediateChildOfTypeBound(e, index, partialAccessor)
@@ -3151,6 +3225,14 @@ private module Impl {
or
result = getImmediateChildOfCastExpr(e, index, partialAccessor)
or
result = getImmediateChildOfCfgAtom(e, index, partialAccessor)
or
result = getImmediateChildOfCfgAttrMeta(e, index, partialAccessor)
or
result = getImmediateChildOfCfgComposite(e, index, partialAccessor)
or
result = getImmediateChildOfCfgMeta(e, index, partialAccessor)
or
result = getImmediateChildOfClosureExpr(e, index, partialAccessor)
or
result = getImmediateChildOfComment(e, index, partialAccessor)
@@ -3185,6 +3267,8 @@ private module Impl {
or
result = getImmediateChildOfInferTypeRepr(e, index, partialAccessor)
or
result = getImmediateChildOfKeyValueMeta(e, index, partialAccessor)
or
result = getImmediateChildOfLetExpr(e, index, partialAccessor)
or
result = getImmediateChildOfLetStmt(e, index, partialAccessor)
@@ -3225,6 +3309,8 @@ private module Impl {
or
result = getImmediateChildOfParenTypeRepr(e, index, partialAccessor)
or
result = getImmediateChildOfPathMeta(e, index, partialAccessor)
or
result = getImmediateChildOfPathPat(e, index, partialAccessor)
or
result = getImmediateChildOfPathTypeRepr(e, index, partialAccessor)
@@ -3259,6 +3345,8 @@ private module Impl {
or
result = getImmediateChildOfStructPat(e, index, partialAccessor)
or
result = getImmediateChildOfTokenTreeMeta(e, index, partialAccessor)
or
result = getImmediateChildOfTryExpr(e, index, partialAccessor)
or
result = getImmediateChildOfTupleExpr(e, index, partialAccessor)
@@ -3277,6 +3365,8 @@ private module Impl {
or
result = getImmediateChildOfUnderscoreExpr(e, index, partialAccessor)
or
result = getImmediateChildOfUnsafeMeta(e, index, partialAccessor)
or
result = getImmediateChildOfVariant(e, index, partialAccessor)
or
result = getImmediateChildOfWildcardPat(e, index, partialAccessor)
@@ -3311,8 +3401,6 @@ private module Impl {
or
result = getImmediateChildOfTrait(e, index, partialAccessor)
or
result = getImmediateChildOfTraitAlias(e, index, partialAccessor)
or
result = getImmediateChildOfUse(e, index, partialAccessor)
or
result = getImmediateChildOfConst(e, index, partialAccessor)

View File

@@ -0,0 +1,37 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `PathMeta`.
* 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.MetaImpl::Impl as MetaImpl
import codeql.rust.elements.Path
/**
* INTERNAL: This module contains the fully generated definition of `PathMeta` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::PathMeta` class directly.
* Use the subclass `PathMeta`, where the following predicates are available.
*/
class PathMeta extends Synth::TPathMeta, MetaImpl::Meta {
override string getAPrimaryQlClass() { result = "PathMeta" }
/**
* Gets the path of this path meta, if it exists.
*/
Path getPath() {
result =
Synth::convertPathFromRaw(Synth::convertPathMetaToRaw(this).(Raw::PathMeta).getPath())
}
/**
* Holds if `getPath()` exists.
*/
final predicate hasPath() { exists(this.getPath()) }
}
}

View File

@@ -418,6 +418,11 @@ module Raw {
int getNumberOfAttrs() { result = count(int i | callable_attrs(this, i, _)) }
}
/**
* INTERNAL: Do not use.
*/
class CfgPredicate extends @cfg_predicate, AstNode { }
/**
* INTERNAL: Do not use.
* The base class for expressions.
@@ -537,32 +542,41 @@ module Raw {
class FormatArgsArg extends @format_args_arg, AstNode {
override string toString() { result = "FormatArgsArg" }
/**
* Gets the argument name of this format arguments argument, if it exists.
*/
FormatArgsArgName getArgName() { format_args_arg_arg_names(this, result) }
/**
* Gets the expression of this format arguments argument, if it exists.
*/
Expr getExpr() { format_args_arg_exprs(this, result) }
/**
* Gets the name of this format arguments argument, if it exists.
*/
Name getName() { format_args_arg_names(this, result) }
}
private Element getImmediateChildOfFormatArgsArg(FormatArgsArg e, int index) {
exists(int n, int nExpr, int nName |
exists(int n, int nArgName, int nExpr |
n = 0 and
nExpr = n + 1 and
nName = nExpr + 1 and
nArgName = n + 1 and
nExpr = nArgName + 1 and
(
none()
or
index = n and result = e.getExpr()
index = n and result = e.getArgName()
or
index = nExpr and result = e.getName()
index = nArgName and result = e.getExpr()
)
)
}
/**
* INTERNAL: Do not use.
*/
class FormatArgsArgName extends @format_args_arg_name, AstNode {
override string toString() { result = "FormatArgsArgName" }
}
private Element getImmediateChildOfFormatArgsArgName(FormatArgsArgName e, int index) { none() }
/**
* INTERNAL: Do not use.
* A generic argument in a generic argument list.
@@ -988,47 +1002,7 @@ module Raw {
* }
* ```
*/
class Meta extends @meta, AstNode {
override string toString() { result = "Meta" }
/**
* Gets the expression of this meta, if it exists.
*/
Expr getExpr() { meta_exprs(this, result) }
/**
* Holds if this meta is unsafe.
*/
predicate isUnsafe() { meta_is_unsafe(this) }
/**
* Gets the path of this meta, if it exists.
*/
Path getPath() { meta_paths(this, result) }
/**
* Gets the token tree of this meta, if it exists.
*/
TokenTree getTokenTree() { meta_token_trees(this, result) }
}
private Element getImmediateChildOfMeta(Meta e, int index) {
exists(int n, int nExpr, int nPath, int nTokenTree |
n = 0 and
nExpr = n + 1 and
nPath = nExpr + 1 and
nTokenTree = nPath + 1 and
(
none()
or
index = n and result = e.getExpr()
or
index = nExpr and result = e.getPath()
or
index = nPath and result = e.getTokenTree()
)
)
}
class Meta extends @meta, AstNode { }
/**
* INTERNAL: Do not use.
@@ -1638,9 +1612,9 @@ module Raw {
int getNumberOfAttrs() { result = count(int i | struct_field_attrs(this, i, _)) }
/**
* Gets the default of this struct field, if it exists.
* Gets the default val of this struct field, if it exists.
*/
Expr getDefault() { struct_field_defaults(this, result) }
ConstArg getDefaultVal() { struct_field_default_vals(this, result) }
/**
* Holds if this struct field is unsafe.
@@ -1664,11 +1638,11 @@ module Raw {
}
private Element getImmediateChildOfStructField(StructField e, int index) {
exists(int n, int nAttr, int nDefault, int nName, int nTypeRepr, int nVisibility |
exists(int n, int nAttr, int nDefaultVal, int nName, int nTypeRepr, int nVisibility |
n = 0 and
nAttr = n + e.getNumberOfAttrs() and
nDefault = nAttr + 1 and
nName = nDefault + 1 and
nDefaultVal = nAttr + 1 and
nName = nDefaultVal + 1 and
nTypeRepr = nName + 1 and
nVisibility = nTypeRepr + 1 and
(
@@ -1676,9 +1650,9 @@ module Raw {
or
result = e.getAttr(index - n)
or
index = nAttr and result = e.getDefault()
index = nAttr and result = e.getDefaultVal()
or
index = nDefault and result = e.getName()
index = nDefaultVal and result = e.getName()
or
index = nName and result = e.getTypeRepr()
or
@@ -1806,6 +1780,35 @@ module Raw {
private Element getImmediateChildOfTokenTree(TokenTree e, int index) { none() }
/**
* INTERNAL: Do not use.
*/
class TryBlockModifier extends @try_block_modifier, AstNode {
override string toString() { result = "TryBlockModifier" }
/**
* Holds if this try block modifier is try.
*/
predicate isTry() { try_block_modifier_is_try(this) }
/**
* Gets the type representation of this try block modifier, if it exists.
*/
TypeRepr getTypeRepr() { try_block_modifier_type_reprs(this, result) }
}
private Element getImmediateChildOfTryBlockModifier(TryBlockModifier e, int index) {
exists(int n, int nTypeRepr |
n = 0 and
nTypeRepr = n + 1 and
(
none()
or
index = n and result = e.getTypeRepr()
)
)
}
/**
* INTERNAL: Do not use.
* A field in a tuple struct or tuple variant.
@@ -3044,6 +3047,107 @@ module Raw {
)
}
/**
* INTERNAL: Do not use.
*/
class CfgAtom extends @cfg_atom, CfgPredicate {
override string toString() { result = "CfgAtom" }
}
private Element getImmediateChildOfCfgAtom(CfgAtom e, int index) { none() }
/**
* INTERNAL: Do not use.
*/
class CfgAttrMeta extends @cfg_attr_meta, Meta {
override string toString() { result = "CfgAttrMeta" }
/**
* Gets the cfg predicate of this cfg attr meta, if it exists.
*/
CfgPredicate getCfgPredicate() { cfg_attr_meta_cfg_predicates(this, result) }
/**
* Gets the `index`th meta of this cfg attr meta (0-based).
*/
Meta getMeta(int index) { cfg_attr_meta_metas(this, index, result) }
/**
* Gets the number of metas of this cfg attr meta.
*/
int getNumberOfMetas() { result = count(int i | cfg_attr_meta_metas(this, i, _)) }
}
private Element getImmediateChildOfCfgAttrMeta(CfgAttrMeta e, int index) {
exists(int n, int nCfgPredicate, int nMeta |
n = 0 and
nCfgPredicate = n + 1 and
nMeta = nCfgPredicate + e.getNumberOfMetas() and
(
none()
or
index = n and result = e.getCfgPredicate()
or
result = e.getMeta(index - nCfgPredicate)
)
)
}
/**
* INTERNAL: Do not use.
*/
class CfgComposite extends @cfg_composite, CfgPredicate {
override string toString() { result = "CfgComposite" }
/**
* Gets the `index`th cfg predicate of this cfg composite (0-based).
*/
CfgPredicate getCfgPredicate(int index) { cfg_composite_cfg_predicates(this, index, result) }
/**
* Gets the number of cfg predicates of this cfg composite.
*/
int getNumberOfCfgPredicates() {
result = count(int i | cfg_composite_cfg_predicates(this, i, _))
}
}
private Element getImmediateChildOfCfgComposite(CfgComposite e, int index) {
exists(int n, int nCfgPredicate |
n = 0 and
nCfgPredicate = n + e.getNumberOfCfgPredicates() and
(
none()
or
result = e.getCfgPredicate(index - n)
)
)
}
/**
* INTERNAL: Do not use.
*/
class CfgMeta extends @cfg_meta, Meta {
override string toString() { result = "CfgMeta" }
/**
* Gets the cfg predicate of this cfg meta, if it exists.
*/
CfgPredicate getCfgPredicate() { cfg_meta_cfg_predicates(this, result) }
}
private Element getImmediateChildOfCfgMeta(CfgMeta e, int index) {
exists(int n, int nCfgPredicate |
n = 0 and
nCfgPredicate = n + 1 and
(
none()
or
index = n and result = e.getCfgPredicate()
)
)
}
/**
* INTERNAL: Do not use.
* A closure expression. For example:
@@ -3855,6 +3959,38 @@ module Raw {
MacroItems getAttributeMacroExpansion() { item_attribute_macro_expansions(this, result) }
}
/**
* INTERNAL: Do not use.
*/
class KeyValueMeta extends @key_value_meta, Meta {
override string toString() { result = "KeyValueMeta" }
/**
* Gets the expression of this key value meta, if it exists.
*/
Expr getExpr() { key_value_meta_exprs(this, result) }
/**
* Gets the path of this key value meta, if it exists.
*/
Path getPath() { key_value_meta_paths(this, result) }
}
private Element getImmediateChildOfKeyValueMeta(KeyValueMeta e, int index) {
exists(int n, int nExpr, int nPath |
n = 0 and
nExpr = n + 1 and
nPath = nExpr + 1 and
(
none()
or
index = n and result = e.getExpr()
or
index = nExpr and result = e.getPath()
)
)
}
/**
* INTERNAL: Do not use.
* The base class for expressions that can be labeled (`LoopExpr`, `ForExpr`, `WhileExpr` or `BlockExpr`).
@@ -4673,6 +4809,30 @@ module Raw {
*/
class PathExprBase extends @path_expr_base, Expr { }
/**
* INTERNAL: Do not use.
*/
class PathMeta extends @path_meta, Meta {
override string toString() { result = "PathMeta" }
/**
* Gets the path of this path meta, if it exists.
*/
Path getPath() { path_meta_paths(this, result) }
}
private Element getImmediateChildOfPathMeta(PathMeta e, int index) {
exists(int n, int nPath |
n = 0 and
nPath = n + 1 and
(
none()
or
index = n and result = e.getPath()
)
)
}
/**
* INTERNAL: Do not use.
* A path pattern. For example:
@@ -5379,6 +5539,38 @@ module Raw {
)
}
/**
* INTERNAL: Do not use.
*/
class TokenTreeMeta extends @token_tree_meta, Meta {
override string toString() { result = "TokenTreeMeta" }
/**
* Gets the path of this token tree meta, if it exists.
*/
Path getPath() { token_tree_meta_paths(this, result) }
/**
* Gets the token tree of this token tree meta, if it exists.
*/
TokenTree getTokenTree() { token_tree_meta_token_trees(this, result) }
}
private Element getImmediateChildOfTokenTreeMeta(TokenTreeMeta e, int index) {
exists(int n, int nPath, int nTokenTree |
n = 0 and
nPath = n + 1 and
nTokenTree = nPath + 1 and
(
none()
or
index = n and result = e.getPath()
or
index = nPath and result = e.getTokenTree()
)
)
}
/**
* INTERNAL: Do not use.
* A try expression using the `?` operator.
@@ -5741,6 +5933,35 @@ module Raw {
)
}
/**
* INTERNAL: Do not use.
*/
class UnsafeMeta extends @unsafe_meta, Meta {
override string toString() { result = "UnsafeMeta" }
/**
* Holds if this unsafe meta is unsafe.
*/
predicate isUnsafe() { unsafe_meta_is_unsafe(this) }
/**
* Gets the meta of this unsafe meta, if it exists.
*/
Meta getMeta() { unsafe_meta_meta(this, result) }
}
private Element getImmediateChildOfUnsafeMeta(UnsafeMeta e, int index) {
exists(int n, int nMeta |
n = 0 and
nMeta = n + 1 and
(
none()
or
index = n and result = e.getMeta()
)
)
}
/**
* INTERNAL: Do not use.
* A variant in an enum declaration.
@@ -5765,9 +5986,9 @@ module Raw {
int getNumberOfAttrs() { result = count(int i | variant_attrs(this, i, _)) }
/**
* Gets the discriminant of this variant, if it exists.
* Gets the const argument of this variant, if it exists.
*/
Expr getDiscriminant() { variant_discriminants(this, result) }
ConstArg getConstArg() { variant_const_args(this, result) }
/**
* Gets the field list of this variant, if it exists.
@@ -5786,11 +6007,11 @@ module Raw {
}
private Element getImmediateChildOfVariant(Variant e, int index) {
exists(int n, int nAttr, int nDiscriminant, int nFieldList, int nName, int nVisibility |
exists(int n, int nAttr, int nConstArg, int nFieldList, int nName, int nVisibility |
n = 0 and
nAttr = n + e.getNumberOfAttrs() and
nDiscriminant = nAttr + 1 and
nFieldList = nDiscriminant + 1 and
nConstArg = nAttr + 1 and
nFieldList = nConstArg + 1 and
nName = nFieldList + 1 and
nVisibility = nName + 1 and
(
@@ -5798,9 +6019,9 @@ module Raw {
or
result = e.getAttr(index - n)
or
index = nAttr and result = e.getDiscriminant()
index = nAttr and result = e.getConstArg()
or
index = nDiscriminant and result = e.getFieldList()
index = nConstArg and result = e.getFieldList()
or
index = nFieldList and result = e.getName()
or
@@ -6034,11 +6255,6 @@ module Raw {
*/
predicate isMove() { block_expr_is_move(this) }
/**
* Holds if this block expression is try.
*/
predicate isTry() { block_expr_is_try(this) }
/**
* Holds if this block expression is unsafe.
*/
@@ -6048,14 +6264,20 @@ module Raw {
* Gets the statement list of this block expression, if it exists.
*/
StmtList getStmtList() { block_expr_stmt_lists(this, result) }
/**
* Gets the try block modifier of this block expression, if it exists.
*/
TryBlockModifier getTryBlockModifier() { block_expr_try_block_modifiers(this, result) }
}
private Element getImmediateChildOfBlockExpr(BlockExpr e, int index) {
exists(int n, int nLabel, int nAttr, int nStmtList |
exists(int n, int nLabel, int nAttr, int nStmtList, int nTryBlockModifier |
n = 0 and
nLabel = n + 1 and
nAttr = nLabel + e.getNumberOfAttrs() and
nStmtList = nAttr + 1 and
nTryBlockModifier = nStmtList + 1 and
(
none()
or
@@ -6064,6 +6286,8 @@ module Raw {
result = e.getAttr(index - nLabel)
or
index = nAttr and result = e.getStmtList()
or
index = nStmtList and result = e.getTryBlockModifier()
)
)
}
@@ -6674,87 +6898,6 @@ module Raw {
)
}
/**
* INTERNAL: Do not use.
* A trait alias.
*
* For example:
* ```rust
* trait Foo = Bar + Baz;
* ```
*/
class TraitAlias extends @trait_alias, Item {
override string toString() { result = "TraitAlias" }
/**
* Gets the `index`th attr of this trait alias (0-based).
*/
Attr getAttr(int index) { trait_alias_attrs(this, index, result) }
/**
* Gets the number of attrs of this trait alias.
*/
int getNumberOfAttrs() { result = count(int i | trait_alias_attrs(this, i, _)) }
/**
* Gets the generic parameter list of this trait alias, if it exists.
*/
GenericParamList getGenericParamList() { trait_alias_generic_param_lists(this, result) }
/**
* Gets the name of this trait alias, if it exists.
*/
Name getName() { trait_alias_names(this, result) }
/**
* Gets the type bound list of this trait alias, if it exists.
*/
TypeBoundList getTypeBoundList() { trait_alias_type_bound_lists(this, result) }
/**
* Gets the visibility of this trait alias, if it exists.
*/
Visibility getVisibility() { trait_alias_visibilities(this, result) }
/**
* Gets the where clause of this trait alias, if it exists.
*/
WhereClause getWhereClause() { trait_alias_where_clauses(this, result) }
}
private Element getImmediateChildOfTraitAlias(TraitAlias e, int index) {
exists(
int n, int nAttributeMacroExpansion, int nAttr, int nGenericParamList, int nName,
int nTypeBoundList, int nVisibility, int nWhereClause
|
n = 0 and
nAttributeMacroExpansion = n + 1 and
nAttr = nAttributeMacroExpansion + e.getNumberOfAttrs() and
nGenericParamList = nAttr + 1 and
nName = nGenericParamList + 1 and
nTypeBoundList = nName + 1 and
nVisibility = nTypeBoundList + 1 and
nWhereClause = nVisibility + 1 and
(
none()
or
index = n and result = e.getAttributeMacroExpansion()
or
result = e.getAttr(index - nAttributeMacroExpansion)
or
index = nAttr and result = e.getGenericParamList()
or
index = nGenericParamList and result = e.getName()
or
index = nName and result = e.getTypeBoundList()
or
index = nTypeBoundList and result = e.getVisibility()
or
index = nVisibility and result = e.getWhereClause()
)
)
}
/**
* INTERNAL: Do not use.
* An item that defines a type. Either a `Struct`, `Enum`, or `Union`.
@@ -7712,6 +7855,8 @@ module Raw {
or
result = getImmediateChildOfFormatArgsArg(e, index)
or
result = getImmediateChildOfFormatArgsArgName(e, index)
or
result = getImmediateChildOfGenericArgList(e, index)
or
result = getImmediateChildOfGenericParamList(e, index)
@@ -7730,8 +7875,6 @@ module Raw {
or
result = getImmediateChildOfMatchGuard(e, index)
or
result = getImmediateChildOfMeta(e, index)
or
result = getImmediateChildOfName(e, index)
or
result = getImmediateChildOfParamList(e, index)
@@ -7764,6 +7907,8 @@ module Raw {
or
result = getImmediateChildOfTokenTree(e, index)
or
result = getImmediateChildOfTryBlockModifier(e, index)
or
result = getImmediateChildOfTupleField(e, index)
or
result = getImmediateChildOfTypeBound(e, index)
@@ -7818,6 +7963,14 @@ module Raw {
or
result = getImmediateChildOfCastExpr(e, index)
or
result = getImmediateChildOfCfgAtom(e, index)
or
result = getImmediateChildOfCfgAttrMeta(e, index)
or
result = getImmediateChildOfCfgComposite(e, index)
or
result = getImmediateChildOfCfgMeta(e, index)
or
result = getImmediateChildOfClosureExpr(e, index)
or
result = getImmediateChildOfComment(e, index)
@@ -7852,6 +8005,8 @@ module Raw {
or
result = getImmediateChildOfInferTypeRepr(e, index)
or
result = getImmediateChildOfKeyValueMeta(e, index)
or
result = getImmediateChildOfLetExpr(e, index)
or
result = getImmediateChildOfLetStmt(e, index)
@@ -7892,6 +8047,8 @@ module Raw {
or
result = getImmediateChildOfParenTypeRepr(e, index)
or
result = getImmediateChildOfPathMeta(e, index)
or
result = getImmediateChildOfPathPat(e, index)
or
result = getImmediateChildOfPathTypeRepr(e, index)
@@ -7926,6 +8083,8 @@ module Raw {
or
result = getImmediateChildOfStructPat(e, index)
or
result = getImmediateChildOfTokenTreeMeta(e, index)
or
result = getImmediateChildOfTryExpr(e, index)
or
result = getImmediateChildOfTupleExpr(e, index)
@@ -7944,6 +8103,8 @@ module Raw {
or
result = getImmediateChildOfUnderscoreExpr(e, index)
or
result = getImmediateChildOfUnsafeMeta(e, index)
or
result = getImmediateChildOfVariant(e, index)
or
result = getImmediateChildOfWildcardPat(e, index)
@@ -7972,8 +8133,6 @@ module Raw {
or
result = getImmediateChildOfTrait(e, index)
or
result = getImmediateChildOfTraitAlias(e, index)
or
result = getImmediateChildOfUse(e, index)
or
result = getImmediateChildOfConst(e, index)

View File

@@ -8,7 +8,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.Attr
import codeql.rust.elements.Expr
import codeql.rust.elements.ConstArg
import codeql.rust.elements.Name
import codeql.rust.elements.TypeRepr
import codeql.rust.elements.Visibility
@@ -53,19 +53,19 @@ module Generated {
final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) }
/**
* Gets the default of this struct field, if it exists.
* Gets the default val of this struct field, if it exists.
*/
Expr getDefault() {
ConstArg getDefaultVal() {
result =
Synth::convertExprFromRaw(Synth::convertStructFieldToRaw(this)
Synth::convertConstArgFromRaw(Synth::convertStructFieldToRaw(this)
.(Raw::StructField)
.getDefault())
.getDefaultVal())
}
/**
* Holds if `getDefault()` exists.
* Holds if `getDefaultVal()` exists.
*/
final predicate hasDefault() { exists(this.getDefault()) }
final predicate hasDefaultVal() { exists(this.getDefaultVal()) }
/**
* Holds if this struct field is unsafe.

View File

@@ -130,6 +130,22 @@ module Synth {
* INTERNAL: Do not use.
*/
TCastExpr(Raw::CastExpr id) { constructCastExpr(id) } or
/**
* INTERNAL: Do not use.
*/
TCfgAtom(Raw::CfgAtom id) { constructCfgAtom(id) } or
/**
* INTERNAL: Do not use.
*/
TCfgAttrMeta(Raw::CfgAttrMeta id) { constructCfgAttrMeta(id) } or
/**
* INTERNAL: Do not use.
*/
TCfgComposite(Raw::CfgComposite id) { constructCfgComposite(id) } or
/**
* INTERNAL: Do not use.
*/
TCfgMeta(Raw::CfgMeta id) { constructCfgMeta(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -220,6 +236,10 @@ module Synth {
* INTERNAL: Do not use.
*/
TFormatArgsArg(Raw::FormatArgsArg id) { constructFormatArgsArg(id) } or
/**
* INTERNAL: Do not use.
*/
TFormatArgsArgName(Raw::FormatArgsArgName id) { constructFormatArgsArgName(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -278,6 +298,10 @@ module Synth {
* INTERNAL: Do not use.
*/
TItemList(Raw::ItemList id) { constructItemList(id) } or
/**
* INTERNAL: Do not use.
*/
TKeyValueMeta(Raw::KeyValueMeta id) { constructKeyValueMeta(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -362,10 +386,6 @@ module Synth {
* INTERNAL: Do not use.
*/
TMatchGuard(Raw::MatchGuard id) { constructMatchGuard(id) } or
/**
* INTERNAL: Do not use.
*/
TMeta(Raw::Meta id) { constructMeta(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -434,6 +454,10 @@ module Synth {
* INTERNAL: Do not use.
*/
TPathExpr(Raw::PathExpr id) { constructPathExpr(id) } or
/**
* INTERNAL: Do not use.
*/
TPathMeta(Raw::PathMeta id) { constructPathMeta(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -558,6 +582,10 @@ module Synth {
* INTERNAL: Do not use.
*/
TTokenTree(Raw::TokenTree id) { constructTokenTree(id) } or
/**
* INTERNAL: Do not use.
*/
TTokenTreeMeta(Raw::TokenTreeMeta id) { constructTokenTreeMeta(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -565,7 +593,7 @@ module Synth {
/**
* INTERNAL: Do not use.
*/
TTraitAlias(Raw::TraitAlias id) { constructTraitAlias(id) } or
TTryBlockModifier(Raw::TryBlockModifier id) { constructTryBlockModifier(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -626,6 +654,10 @@ module Synth {
* INTERNAL: Do not use.
*/
TUnion(Raw::Union id) { constructUnion(id) } or
/**
* INTERNAL: Do not use.
*/
TUnsafeMeta(Raw::UnsafeMeta id) { constructUnsafeMeta(id) } or
/**
* INTERNAL: Do not use.
*/
@@ -709,22 +741,28 @@ module Synth {
*/
class TAstNode =
TAbi or TAddressable or TArgList or TAsmDirSpec or TAsmOperand or TAsmOperandExpr or
TAsmOption or TAsmPiece or TAsmRegSpec or TAssocItemList or TAttr or TCallable or TExpr or
TExternItemList or TFieldList or TForBinder or TFormatArgsArg or TGenericArg or
TGenericArgList or TGenericParam or TGenericParamList or TItemList or TLabel or TLetElse or
TMacroItems or TMatchArm or TMatchArmList or TMatchGuard or TMeta or TName or TParamBase or
TParamList or TParenthesizedArgList or TPat or TPath or TPathAstNode or TPathSegment or
TRename or TRetTypeRepr or TReturnTypeSyntax or TSourceFile or TStmt or TStmtList or
TAsmOption or TAsmPiece or TAsmRegSpec or TAssocItemList or TAttr or TCallable or
TCfgPredicate or TExpr or TExternItemList or TFieldList or TForBinder or TFormatArgsArg or
TFormatArgsArgName or TGenericArg or TGenericArgList or TGenericParam or
TGenericParamList or TItemList or TLabel or TLetElse or TMacroItems or TMatchArm or
TMatchArmList or TMatchGuard or TMeta or TName or TParamBase or TParamList or
TParenthesizedArgList or TPat or TPath or TPathAstNode or TPathSegment or TRename or
TRetTypeRepr or TReturnTypeSyntax or TSourceFile or TStmt or TStmtList or
TStructExprField or TStructExprFieldList or TStructField or TStructPatField or
TStructPatFieldList or TToken or TTokenTree or TTupleField or TTypeBound or
TTypeBoundList or TTypeRepr or TUseBoundGenericArg or TUseBoundGenericArgs or TUseTree or
TUseTreeList or TVariantList or TVisibility or TWhereClause or TWherePred;
TStructPatFieldList or TToken or TTokenTree or TTryBlockModifier or TTupleField or
TTypeBound or TTypeBoundList or TTypeRepr or TUseBoundGenericArg or TUseBoundGenericArgs or
TUseTree or TUseTreeList or TVariantList or TVisibility or TWhereClause or TWherePred;
/**
* INTERNAL: Do not use.
*/
class TCallable = TClosureExpr or TFunction;
/**
* INTERNAL: Do not use.
*/
class TCfgPredicate = TCfgAtom or TCfgComposite;
/**
* INTERNAL: Do not use.
*/
@@ -761,7 +799,7 @@ module Synth {
*/
class TItem =
TAsmExpr or TAssocItem or TExternBlock or TExternCrate or TExternItem or TImpl or TMacroDef or
TMacroRules or TModule or TTrait or TTraitAlias or TTypeItem or TUse;
TMacroRules or TModule or TTrait or TTypeItem or TUse;
/**
* INTERNAL: Do not use.
@@ -778,6 +816,12 @@ module Synth {
*/
class TLoopingExpr = TForExpr or TLoopExpr or TWhileExpr;
/**
* INTERNAL: Do not use.
*/
class TMeta =
TCfgAttrMeta or TCfgMeta or TKeyValueMeta or TPathMeta or TTokenTreeMeta or TUnsafeMeta;
/**
* INTERNAL: Do not use.
*/
@@ -1054,6 +1098,34 @@ module Synth {
*/
TCastExpr convertCastExprFromRaw(Raw::Element e) { result = TCastExpr(e) }
/**
* INTERNAL: Do not use.
*
* Converts a raw element to a synthesized `TCfgAtom`, if possible.
*/
TCfgAtom convertCfgAtomFromRaw(Raw::Element e) { result = TCfgAtom(e) }
/**
* INTERNAL: Do not use.
*
* Converts a raw element to a synthesized `TCfgAttrMeta`, if possible.
*/
TCfgAttrMeta convertCfgAttrMetaFromRaw(Raw::Element e) { result = TCfgAttrMeta(e) }
/**
* INTERNAL: Do not use.
*
* Converts a raw element to a synthesized `TCfgComposite`, if possible.
*/
TCfgComposite convertCfgCompositeFromRaw(Raw::Element e) { result = TCfgComposite(e) }
/**
* INTERNAL: Do not use.
*
* Converts a raw element to a synthesized `TCfgMeta`, if possible.
*/
TCfgMeta convertCfgMetaFromRaw(Raw::Element e) { result = TCfgMeta(e) }
/**
* INTERNAL: Do not use.
*
@@ -1208,6 +1280,15 @@ module Synth {
*/
TFormatArgsArg convertFormatArgsArgFromRaw(Raw::Element e) { result = TFormatArgsArg(e) }
/**
* INTERNAL: Do not use.
*
* Converts a raw element to a synthesized `TFormatArgsArgName`, if possible.
*/
TFormatArgsArgName convertFormatArgsArgNameFromRaw(Raw::Element e) {
result = TFormatArgsArgName(e)
}
/**
* INTERNAL: Do not use.
*
@@ -1303,6 +1384,13 @@ module Synth {
*/
TItemList convertItemListFromRaw(Raw::Element e) { result = TItemList(e) }
/**
* INTERNAL: Do not use.
*
* Converts a raw element to a synthesized `TKeyValueMeta`, if possible.
*/
TKeyValueMeta convertKeyValueMetaFromRaw(Raw::Element e) { result = TKeyValueMeta(e) }
/**
* INTERNAL: Do not use.
*
@@ -1450,13 +1538,6 @@ module Synth {
*/
TMatchGuard convertMatchGuardFromRaw(Raw::Element e) { result = TMatchGuard(e) }
/**
* INTERNAL: Do not use.
*
* Converts a raw element to a synthesized `TMeta`, if possible.
*/
TMeta convertMetaFromRaw(Raw::Element e) { result = TMeta(e) }
/**
* INTERNAL: Do not use.
*
@@ -1578,6 +1659,13 @@ module Synth {
*/
TPathExpr convertPathExprFromRaw(Raw::Element e) { result = TPathExpr(e) }
/**
* INTERNAL: Do not use.
*
* Converts a raw element to a synthesized `TPathMeta`, if possible.
*/
TPathMeta convertPathMetaFromRaw(Raw::Element e) { result = TPathMeta(e) }
/**
* INTERNAL: Do not use.
*
@@ -1799,6 +1887,13 @@ module Synth {
*/
TTokenTree convertTokenTreeFromRaw(Raw::Element e) { result = TTokenTree(e) }
/**
* INTERNAL: Do not use.
*
* Converts a raw element to a synthesized `TTokenTreeMeta`, if possible.
*/
TTokenTreeMeta convertTokenTreeMetaFromRaw(Raw::Element e) { result = TTokenTreeMeta(e) }
/**
* INTERNAL: Do not use.
*
@@ -1809,9 +1904,9 @@ module Synth {
/**
* INTERNAL: Do not use.
*
* Converts a raw element to a synthesized `TTraitAlias`, if possible.
* Converts a raw element to a synthesized `TTryBlockModifier`, if possible.
*/
TTraitAlias convertTraitAliasFromRaw(Raw::Element e) { result = TTraitAlias(e) }
TTryBlockModifier convertTryBlockModifierFromRaw(Raw::Element e) { result = TTryBlockModifier(e) }
/**
* INTERNAL: Do not use.
@@ -1918,6 +2013,13 @@ module Synth {
*/
TUnion convertUnionFromRaw(Raw::Element e) { result = TUnion(e) }
/**
* INTERNAL: Do not use.
*
* Converts a raw element to a synthesized `TUnsafeMeta`, if possible.
*/
TUnsafeMeta convertUnsafeMetaFromRaw(Raw::Element e) { result = TUnsafeMeta(e) }
/**
* INTERNAL: Do not use.
*
@@ -2100,6 +2202,8 @@ module Synth {
or
result = convertCallableFromRaw(e)
or
result = convertCfgPredicateFromRaw(e)
or
result = convertExprFromRaw(e)
or
result = convertExternItemListFromRaw(e)
@@ -2110,6 +2214,8 @@ module Synth {
or
result = convertFormatArgsArgFromRaw(e)
or
result = convertFormatArgsArgNameFromRaw(e)
or
result = convertGenericArgFromRaw(e)
or
result = convertGenericArgListFromRaw(e)
@@ -2176,6 +2282,8 @@ module Synth {
or
result = convertTokenTreeFromRaw(e)
or
result = convertTryBlockModifierFromRaw(e)
or
result = convertTupleFieldFromRaw(e)
or
result = convertTypeBoundFromRaw(e)
@@ -2211,6 +2319,16 @@ module Synth {
result = convertFunctionFromRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw DB element to a synthesized `TCfgPredicate`, if possible.
*/
TCfgPredicate convertCfgPredicateFromRaw(Raw::Element e) {
result = convertCfgAtomFromRaw(e)
or
result = convertCfgCompositeFromRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw DB element to a synthesized `TElement`, if possible.
@@ -2374,8 +2492,6 @@ module Synth {
or
result = convertTraitFromRaw(e)
or
result = convertTraitAliasFromRaw(e)
or
result = convertTypeItemFromRaw(e)
or
result = convertUseFromRaw(e)
@@ -2417,6 +2533,24 @@ module Synth {
result = convertWhileExprFromRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw DB element to a synthesized `TMeta`, if possible.
*/
TMeta convertMetaFromRaw(Raw::Element e) {
result = convertCfgAttrMetaFromRaw(e)
or
result = convertCfgMetaFromRaw(e)
or
result = convertKeyValueMetaFromRaw(e)
or
result = convertPathMetaFromRaw(e)
or
result = convertTokenTreeMetaFromRaw(e)
or
result = convertUnsafeMetaFromRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a raw DB element to a synthesized `TParamBase`, if possible.
@@ -2751,6 +2885,30 @@ module Synth {
*/
Raw::Element convertCastExprToRaw(TCastExpr e) { e = TCastExpr(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TCfgAtom` to a raw DB element, if possible.
*/
Raw::Element convertCfgAtomToRaw(TCfgAtom e) { e = TCfgAtom(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TCfgAttrMeta` to a raw DB element, if possible.
*/
Raw::Element convertCfgAttrMetaToRaw(TCfgAttrMeta e) { e = TCfgAttrMeta(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TCfgComposite` to a raw DB element, if possible.
*/
Raw::Element convertCfgCompositeToRaw(TCfgComposite e) { e = TCfgComposite(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TCfgMeta` to a raw DB element, if possible.
*/
Raw::Element convertCfgMetaToRaw(TCfgMeta e) { e = TCfgMeta(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TClosureExpr` to a raw DB element, if possible.
@@ -2883,6 +3041,14 @@ module Synth {
*/
Raw::Element convertFormatArgsArgToRaw(TFormatArgsArg e) { e = TFormatArgsArg(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TFormatArgsArgName` to a raw DB element, if possible.
*/
Raw::Element convertFormatArgsArgNameToRaw(TFormatArgsArgName e) {
e = TFormatArgsArgName(result)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TFormatArgsExpr` to a raw DB element, if possible.
@@ -2963,6 +3129,12 @@ module Synth {
*/
Raw::Element convertItemListToRaw(TItemList e) { e = TItemList(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TKeyValueMeta` to a raw DB element, if possible.
*/
Raw::Element convertKeyValueMetaToRaw(TKeyValueMeta e) { e = TKeyValueMeta(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TLabel` to a raw DB element, if possible.
@@ -3089,12 +3261,6 @@ module Synth {
*/
Raw::Element convertMatchGuardToRaw(TMatchGuard e) { e = TMatchGuard(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TMeta` to a raw DB element, if possible.
*/
Raw::Element convertMetaToRaw(TMeta e) { e = TMeta(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TMethodCallExpr` to a raw DB element, if possible.
@@ -3199,6 +3365,12 @@ module Synth {
*/
Raw::Element convertPathExprToRaw(TPathExpr e) { e = TPathExpr(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TPathMeta` to a raw DB element, if possible.
*/
Raw::Element convertPathMetaToRaw(TPathMeta e) { e = TPathMeta(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TPathPat` to a raw DB element, if possible.
@@ -3389,6 +3561,12 @@ module Synth {
*/
Raw::Element convertTokenTreeToRaw(TTokenTree e) { e = TTokenTree(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TTokenTreeMeta` to a raw DB element, if possible.
*/
Raw::Element convertTokenTreeMetaToRaw(TTokenTreeMeta e) { e = TTokenTreeMeta(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TTrait` to a raw DB element, if possible.
@@ -3397,9 +3575,9 @@ module Synth {
/**
* INTERNAL: Do not use.
* Converts a synthesized `TTraitAlias` to a raw DB element, if possible.
* Converts a synthesized `TTryBlockModifier` to a raw DB element, if possible.
*/
Raw::Element convertTraitAliasToRaw(TTraitAlias e) { e = TTraitAlias(result) }
Raw::Element convertTryBlockModifierToRaw(TTryBlockModifier e) { e = TTryBlockModifier(result) }
/**
* INTERNAL: Do not use.
@@ -3491,6 +3669,12 @@ module Synth {
*/
Raw::Element convertUnionToRaw(TUnion e) { e = TUnion(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TUnsafeMeta` to a raw DB element, if possible.
*/
Raw::Element convertUnsafeMetaToRaw(TUnsafeMeta e) { e = TUnsafeMeta(result) }
/**
* INTERNAL: Do not use.
* Converts a synthesized `TUse` to a raw DB element, if possible.
@@ -3660,6 +3844,8 @@ module Synth {
or
result = convertCallableToRaw(e)
or
result = convertCfgPredicateToRaw(e)
or
result = convertExprToRaw(e)
or
result = convertExternItemListToRaw(e)
@@ -3670,6 +3856,8 @@ module Synth {
or
result = convertFormatArgsArgToRaw(e)
or
result = convertFormatArgsArgNameToRaw(e)
or
result = convertGenericArgToRaw(e)
or
result = convertGenericArgListToRaw(e)
@@ -3736,6 +3924,8 @@ module Synth {
or
result = convertTokenTreeToRaw(e)
or
result = convertTryBlockModifierToRaw(e)
or
result = convertTupleFieldToRaw(e)
or
result = convertTypeBoundToRaw(e)
@@ -3771,6 +3961,16 @@ module Synth {
result = convertFunctionToRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TCfgPredicate` to a raw DB element, if possible.
*/
Raw::Element convertCfgPredicateToRaw(TCfgPredicate e) {
result = convertCfgAtomToRaw(e)
or
result = convertCfgCompositeToRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TElement` to a raw DB element, if possible.
@@ -3934,8 +4134,6 @@ module Synth {
or
result = convertTraitToRaw(e)
or
result = convertTraitAliasToRaw(e)
or
result = convertTypeItemToRaw(e)
or
result = convertUseToRaw(e)
@@ -3977,6 +4175,24 @@ module Synth {
result = convertWhileExprToRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TMeta` to a raw DB element, if possible.
*/
Raw::Element convertMetaToRaw(TMeta e) {
result = convertCfgAttrMetaToRaw(e)
or
result = convertCfgMetaToRaw(e)
or
result = convertKeyValueMetaToRaw(e)
or
result = convertPathMetaToRaw(e)
or
result = convertTokenTreeMetaToRaw(e)
or
result = convertUnsafeMetaToRaw(e)
}
/**
* INTERNAL: Do not use.
* Converts a synthesized `TParamBase` to a raw DB element, if possible.

View File

@@ -32,6 +32,10 @@ import codeql.rust.elements.internal.BoxPatConstructor
import codeql.rust.elements.internal.BreakExprConstructor
import codeql.rust.elements.internal.CallExprConstructor
import codeql.rust.elements.internal.CastExprConstructor
import codeql.rust.elements.internal.CfgAtomConstructor
import codeql.rust.elements.internal.CfgAttrMetaConstructor
import codeql.rust.elements.internal.CfgCompositeConstructor
import codeql.rust.elements.internal.CfgMetaConstructor
import codeql.rust.elements.internal.ClosureExprConstructor
import codeql.rust.elements.internal.CommentConstructor
import codeql.rust.elements.internal.ConstConstructor
@@ -54,6 +58,7 @@ import codeql.rust.elements.internal.ForExprConstructor
import codeql.rust.elements.internal.ForTypeReprConstructor
import codeql.rust.elements.internal.FormatConstructor
import codeql.rust.elements.internal.FormatArgsArgConstructor
import codeql.rust.elements.internal.FormatArgsArgNameConstructor
import codeql.rust.elements.internal.FormatArgsExprConstructor
import codeql.rust.elements.internal.FormatArgumentConstructor
import codeql.rust.elements.internal.FormatTemplateVariableAccessConstructor
@@ -67,6 +72,7 @@ import codeql.rust.elements.internal.ImplTraitTypeReprConstructor
import codeql.rust.elements.internal.IndexExprConstructor
import codeql.rust.elements.internal.InferTypeReprConstructor
import codeql.rust.elements.internal.ItemListConstructor
import codeql.rust.elements.internal.KeyValueMetaConstructor
import codeql.rust.elements.internal.LabelConstructor
import codeql.rust.elements.internal.LetElseConstructor
import codeql.rust.elements.internal.LetExprConstructor
@@ -88,7 +94,6 @@ import codeql.rust.elements.internal.MatchArmConstructor
import codeql.rust.elements.internal.MatchArmListConstructor
import codeql.rust.elements.internal.MatchExprConstructor
import codeql.rust.elements.internal.MatchGuardConstructor
import codeql.rust.elements.internal.MetaConstructor
import codeql.rust.elements.internal.MethodCallExprConstructor
import codeql.rust.elements.internal.MissingConstructor
import codeql.rust.elements.internal.ModuleConstructor
@@ -106,6 +111,7 @@ import codeql.rust.elements.internal.ParenTypeReprConstructor
import codeql.rust.elements.internal.ParenthesizedArgListConstructor
import codeql.rust.elements.internal.PathConstructor
import codeql.rust.elements.internal.PathExprConstructor
import codeql.rust.elements.internal.PathMetaConstructor
import codeql.rust.elements.internal.PathPatConstructor
import codeql.rust.elements.internal.PathSegmentConstructor
import codeql.rust.elements.internal.PathTypeReprConstructor
@@ -137,8 +143,9 @@ import codeql.rust.elements.internal.StructPatConstructor
import codeql.rust.elements.internal.StructPatFieldConstructor
import codeql.rust.elements.internal.StructPatFieldListConstructor
import codeql.rust.elements.internal.TokenTreeConstructor
import codeql.rust.elements.internal.TokenTreeMetaConstructor
import codeql.rust.elements.internal.TraitConstructor
import codeql.rust.elements.internal.TraitAliasConstructor
import codeql.rust.elements.internal.TryBlockModifierConstructor
import codeql.rust.elements.internal.TryExprConstructor
import codeql.rust.elements.internal.TupleExprConstructor
import codeql.rust.elements.internal.TupleFieldConstructor
@@ -154,6 +161,7 @@ import codeql.rust.elements.internal.TypeParamConstructor
import codeql.rust.elements.internal.UnderscoreExprConstructor
import codeql.rust.elements.internal.UnimplementedConstructor
import codeql.rust.elements.internal.UnionConstructor
import codeql.rust.elements.internal.UnsafeMetaConstructor
import codeql.rust.elements.internal.UseConstructor
import codeql.rust.elements.internal.UseBoundGenericArgsConstructor
import codeql.rust.elements.internal.UseTreeConstructor

View File

@@ -0,0 +1,55 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `TokenTreeMeta`.
* 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.MetaImpl::Impl as MetaImpl
import codeql.rust.elements.Path
import codeql.rust.elements.TokenTree
/**
* INTERNAL: This module contains the fully generated definition of `TokenTreeMeta` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::TokenTreeMeta` class directly.
* Use the subclass `TokenTreeMeta`, where the following predicates are available.
*/
class TokenTreeMeta extends Synth::TTokenTreeMeta, MetaImpl::Meta {
override string getAPrimaryQlClass() { result = "TokenTreeMeta" }
/**
* Gets the path of this token tree meta, if it exists.
*/
Path getPath() {
result =
Synth::convertPathFromRaw(Synth::convertTokenTreeMetaToRaw(this)
.(Raw::TokenTreeMeta)
.getPath())
}
/**
* Holds if `getPath()` exists.
*/
final predicate hasPath() { exists(this.getPath()) }
/**
* Gets the token tree of this token tree meta, if it exists.
*/
TokenTree getTokenTree() {
result =
Synth::convertTokenTreeFromRaw(Synth::convertTokenTreeMetaToRaw(this)
.(Raw::TokenTreeMeta)
.getTokenTree())
}
/**
* Holds if `getTokenTree()` exists.
*/
final predicate hasTokenTree() { exists(this.getTokenTree()) }
}
}

View File

@@ -1,128 +0,0 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `TraitAlias`.
* 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.Attr
import codeql.rust.elements.GenericParamList
import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl
import codeql.rust.elements.Name
import codeql.rust.elements.TypeBoundList
import codeql.rust.elements.Visibility
import codeql.rust.elements.WhereClause
/**
* INTERNAL: This module contains the fully generated definition of `TraitAlias` and should not
* be referenced directly.
*/
module Generated {
/**
* A trait alias.
*
* For example:
* ```rust
* trait Foo = Bar + Baz;
* ```
* INTERNAL: Do not reference the `Generated::TraitAlias` class directly.
* Use the subclass `TraitAlias`, where the following predicates are available.
*/
class TraitAlias extends Synth::TTraitAlias, ItemImpl::Item {
override string getAPrimaryQlClass() { result = "TraitAlias" }
/**
* Gets the `index`th attr of this trait alias (0-based).
*/
Attr getAttr(int index) {
result =
Synth::convertAttrFromRaw(Synth::convertTraitAliasToRaw(this)
.(Raw::TraitAlias)
.getAttr(index))
}
/**
* Gets any of the attrs of this trait alias.
*/
final Attr getAnAttr() { result = this.getAttr(_) }
/**
* Gets the number of attrs of this trait alias.
*/
final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) }
/**
* Gets the generic parameter list of this trait alias, if it exists.
*/
GenericParamList getGenericParamList() {
result =
Synth::convertGenericParamListFromRaw(Synth::convertTraitAliasToRaw(this)
.(Raw::TraitAlias)
.getGenericParamList())
}
/**
* Holds if `getGenericParamList()` exists.
*/
final predicate hasGenericParamList() { exists(this.getGenericParamList()) }
/**
* Gets the name of this trait alias, if it exists.
*/
Name getName() {
result =
Synth::convertNameFromRaw(Synth::convertTraitAliasToRaw(this).(Raw::TraitAlias).getName())
}
/**
* Holds if `getName()` exists.
*/
final predicate hasName() { exists(this.getName()) }
/**
* Gets the type bound list of this trait alias, if it exists.
*/
TypeBoundList getTypeBoundList() {
result =
Synth::convertTypeBoundListFromRaw(Synth::convertTraitAliasToRaw(this)
.(Raw::TraitAlias)
.getTypeBoundList())
}
/**
* Holds if `getTypeBoundList()` exists.
*/
final predicate hasTypeBoundList() { exists(this.getTypeBoundList()) }
/**
* Gets the visibility of this trait alias, if it exists.
*/
Visibility getVisibility() {
result =
Synth::convertVisibilityFromRaw(Synth::convertTraitAliasToRaw(this)
.(Raw::TraitAlias)
.getVisibility())
}
/**
* Holds if `getVisibility()` exists.
*/
final predicate hasVisibility() { exists(this.getVisibility()) }
/**
* Gets the where clause of this trait alias, if it exists.
*/
WhereClause getWhereClause() {
result =
Synth::convertWhereClauseFromRaw(Synth::convertTraitAliasToRaw(this)
.(Raw::TraitAlias)
.getWhereClause())
}
/**
* Holds if `getWhereClause()` exists.
*/
final predicate hasWhereClause() { exists(this.getWhereClause()) }
}
}

View File

@@ -0,0 +1,44 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `TryBlockModifier`.
* 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.AstNodeImpl::Impl as AstNodeImpl
import codeql.rust.elements.TypeRepr
/**
* INTERNAL: This module contains the fully generated definition of `TryBlockModifier` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::TryBlockModifier` class directly.
* Use the subclass `TryBlockModifier`, where the following predicates are available.
*/
class TryBlockModifier extends Synth::TTryBlockModifier, AstNodeImpl::AstNode {
override string getAPrimaryQlClass() { result = "TryBlockModifier" }
/**
* Holds if this try block modifier is try.
*/
predicate isTry() { Synth::convertTryBlockModifierToRaw(this).(Raw::TryBlockModifier).isTry() }
/**
* Gets the type representation of this try block modifier, if it exists.
*/
TypeRepr getTypeRepr() {
result =
Synth::convertTypeReprFromRaw(Synth::convertTryBlockModifierToRaw(this)
.(Raw::TryBlockModifier)
.getTypeRepr())
}
/**
* Holds if `getTypeRepr()` exists.
*/
final predicate hasTypeRepr() { exists(this.getTypeRepr()) }
}
}

View File

@@ -0,0 +1,42 @@
// generated by codegen, do not edit
/**
* This module provides the generated definition of `UnsafeMeta`.
* 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.Meta
import codeql.rust.elements.internal.MetaImpl::Impl as MetaImpl
/**
* INTERNAL: This module contains the fully generated definition of `UnsafeMeta` and should not
* be referenced directly.
*/
module Generated {
/**
* INTERNAL: Do not reference the `Generated::UnsafeMeta` class directly.
* Use the subclass `UnsafeMeta`, where the following predicates are available.
*/
class UnsafeMeta extends Synth::TUnsafeMeta, MetaImpl::Meta {
override string getAPrimaryQlClass() { result = "UnsafeMeta" }
/**
* Holds if this unsafe meta is unsafe.
*/
predicate isUnsafe() { Synth::convertUnsafeMetaToRaw(this).(Raw::UnsafeMeta).isUnsafe() }
/**
* Gets the meta of this unsafe meta, if it exists.
*/
Meta getMeta() {
result =
Synth::convertMetaFromRaw(Synth::convertUnsafeMetaToRaw(this).(Raw::UnsafeMeta).getMeta())
}
/**
* Holds if `getMeta()` exists.
*/
final predicate hasMeta() { exists(this.getMeta()) }
}
}

View File

@@ -8,7 +8,7 @@ private import codeql.rust.elements.internal.generated.Synth
private import codeql.rust.elements.internal.generated.Raw
import codeql.rust.elements.internal.AddressableImpl::Impl as AddressableImpl
import codeql.rust.elements.Attr
import codeql.rust.elements.Expr
import codeql.rust.elements.ConstArg
import codeql.rust.elements.FieldList
import codeql.rust.elements.Name
import codeql.rust.elements.Visibility
@@ -51,17 +51,17 @@ module Generated {
final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) }
/**
* Gets the discriminant of this variant, if it exists.
* Gets the const argument of this variant, if it exists.
*/
Expr getDiscriminant() {
ConstArg getConstArg() {
result =
Synth::convertExprFromRaw(Synth::convertVariantToRaw(this).(Raw::Variant).getDiscriminant())
Synth::convertConstArgFromRaw(Synth::convertVariantToRaw(this).(Raw::Variant).getConstArg())
}
/**
* Holds if `getDiscriminant()` exists.
* Holds if `getConstArg()` exists.
*/
final predicate hasDiscriminant() { exists(this.getDiscriminant()) }
final predicate hasConstArg() { exists(this.getConstArg()) }
/**
* Gets the field list of this variant, if it exists.

View File

@@ -189,11 +189,13 @@ named_crates(
| @assoc_item_list
| @attr
| @callable
| @cfg_predicate
| @expr
| @extern_item_list
| @field_list
| @for_binder
| @format_args_arg
| @format_args_arg_name
| @generic_arg
| @generic_arg_list
| @generic_param
@@ -227,6 +229,7 @@ named_crates(
| @struct_pat_field_list
| @token
| @token_tree
| @try_block_modifier
| @tuple_field
| @type_bound
| @type_bound_list
@@ -403,6 +406,11 @@ callable_attrs(
int attr: @attr ref
);
@cfg_predicate =
@cfg_atom
| @cfg_composite
;
@expr =
@array_expr_internal
| @asm_expr
@@ -476,16 +484,20 @@ format_args_args(
unique int id: @format_args_arg
);
#keyset[id]
format_args_arg_arg_names(
int id: @format_args_arg ref,
int arg_name: @format_args_arg_name ref
);
#keyset[id]
format_args_arg_exprs(
int id: @format_args_arg ref,
int expr: @expr ref
);
#keyset[id]
format_args_arg_names(
int id: @format_args_arg ref,
int name: @name ref
unique int id: @format_args_arg_name
);
@generic_arg =
@@ -629,32 +641,14 @@ match_guard_conditions(
int condition: @expr ref
);
meta(
unique int id: @meta
);
#keyset[id]
meta_exprs(
int id: @meta ref,
int expr: @expr ref
);
#keyset[id]
meta_is_unsafe(
int id: @meta ref
);
#keyset[id]
meta_paths(
int id: @meta ref,
int path: @path ref
);
#keyset[id]
meta_token_trees(
int id: @meta ref,
int token_tree: @token_tree ref
);
@meta =
@cfg_attr_meta
| @cfg_meta
| @key_value_meta
| @path_meta
| @token_tree_meta
| @unsafe_meta
;
names(
unique int id: @name
@@ -938,9 +932,9 @@ struct_field_attrs(
);
#keyset[id]
struct_field_defaults(
struct_field_default_vals(
int id: @struct_field ref,
int default: @expr ref
int default_val: @const_arg ref
);
#keyset[id]
@@ -1014,6 +1008,21 @@ token_trees(
unique int id: @token_tree
);
try_block_modifiers(
unique int id: @try_block_modifier
);
#keyset[id]
try_block_modifier_is_try(
int id: @try_block_modifier ref
);
#keyset[id]
try_block_modifier_type_reprs(
int id: @try_block_modifier ref,
int type_repr: @type_repr ref
);
tuple_fields(
unique int id: @tuple_field
);
@@ -1538,6 +1547,48 @@ cast_expr_type_reprs(
int type_repr: @type_repr ref
);
cfg_atoms(
unique int id: @cfg_atom
);
cfg_attr_meta(
unique int id: @cfg_attr_meta
);
#keyset[id]
cfg_attr_meta_cfg_predicates(
int id: @cfg_attr_meta ref,
int cfg_predicate: @cfg_predicate ref
);
#keyset[id, index]
cfg_attr_meta_metas(
int id: @cfg_attr_meta ref,
int index: int ref,
int meta: @meta ref
);
cfg_composites(
unique int id: @cfg_composite
);
#keyset[id, index]
cfg_composite_cfg_predicates(
int id: @cfg_composite ref,
int index: int ref,
int cfg_predicate: @cfg_predicate ref
);
cfg_meta(
unique int id: @cfg_meta
);
#keyset[id]
cfg_meta_cfg_predicates(
int id: @cfg_meta ref,
int cfg_predicate: @cfg_predicate ref
);
closure_exprs(
unique int id: @closure_expr
);
@@ -1897,7 +1948,6 @@ infer_type_reprs(
| @macro_rules
| @module
| @trait
| @trait_alias
| @type_item
| @use
;
@@ -1908,6 +1958,22 @@ item_attribute_macro_expansions(
int attribute_macro_expansion: @macro_items ref
);
key_value_meta(
unique int id: @key_value_meta
);
#keyset[id]
key_value_meta_exprs(
int id: @key_value_meta ref,
int expr: @expr ref
);
#keyset[id]
key_value_meta_paths(
int id: @key_value_meta ref,
int path: @path ref
);
@labelable_expr =
@block_expr
| @looping_expr
@@ -2235,6 +2301,16 @@ paren_type_repr_type_reprs(
@path_expr
;
path_meta(
unique int id: @path_meta
);
#keyset[id]
path_meta_paths(
int id: @path_meta ref,
int path: @path ref
);
path_pats(
unique int id: @path_pat
);
@@ -2517,6 +2593,22 @@ struct_pat_struct_pat_field_lists(
int struct_pat_field_list: @struct_pat_field_list ref
);
token_tree_meta(
unique int id: @token_tree_meta
);
#keyset[id]
token_tree_meta_paths(
int id: @token_tree_meta ref,
int path: @path ref
);
#keyset[id]
token_tree_meta_token_trees(
int id: @token_tree_meta ref,
int token_tree: @token_tree ref
);
try_exprs(
unique int id: @try_expr
);
@@ -2646,6 +2738,21 @@ underscore_expr_attrs(
int attr: @attr ref
);
unsafe_meta(
unique int id: @unsafe_meta
);
#keyset[id]
unsafe_meta_is_unsafe(
int id: @unsafe_meta ref
);
#keyset[id]
unsafe_meta_meta(
int id: @unsafe_meta ref,
int meta: @meta ref
);
variants(
unique int id: @variant
);
@@ -2658,9 +2765,9 @@ variant_attrs(
);
#keyset[id]
variant_discriminants(
variant_const_args(
int id: @variant ref,
int discriminant: @expr ref
int const_arg: @const_arg ref
);
#keyset[id]
@@ -2782,11 +2889,6 @@ block_expr_is_move(
int id: @block_expr ref
);
#keyset[id]
block_expr_is_try(
int id: @block_expr ref
);
#keyset[id]
block_expr_is_unsafe(
int id: @block_expr ref
@@ -2798,6 +2900,12 @@ block_expr_stmt_lists(
int stmt_list: @stmt_list ref
);
#keyset[id]
block_expr_try_block_modifiers(
int id: @block_expr ref,
int try_block_modifier: @try_block_modifier ref
);
extern_blocks(
unique int id: @extern_block
);
@@ -3097,47 +3205,6 @@ trait_where_clauses(
int where_clause: @where_clause ref
);
trait_aliases(
unique int id: @trait_alias
);
#keyset[id, index]
trait_alias_attrs(
int id: @trait_alias ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
trait_alias_generic_param_lists(
int id: @trait_alias ref,
int generic_param_list: @generic_param_list ref
);
#keyset[id]
trait_alias_names(
int id: @trait_alias ref,
int name: @name ref
);
#keyset[id]
trait_alias_type_bound_lists(
int id: @trait_alias ref,
int type_bound_list: @type_bound_list ref
);
#keyset[id]
trait_alias_visibilities(
int id: @trait_alias ref,
int visibility: @visibility ref
);
#keyset[id]
trait_alias_where_clauses(
int id: @trait_alias ref,
int where_clause: @where_clause ref
);
@type_item =
@enum
| @struct

View File

@@ -78,7 +78,6 @@ MatchArm/gen_match_arm.rs 4f4e717930729b2161b9cf9cd5e2b86b8e919204f5f7d4993d2c4e
MatchArmList/gen_match_arm_list.rs 6dcb92591c86771d2aeb762e4274d3e61a7d6c1a42da3dbace1cbc545b474080 6dcb92591c86771d2aeb762e4274d3e61a7d6c1a42da3dbace1cbc545b474080
MatchExpr/gen_match_expr.rs 081c5d4c78cb71ccd13fb37a93d7f525267c51b179f44b5a22ca3297897002a0 081c5d4c78cb71ccd13fb37a93d7f525267c51b179f44b5a22ca3297897002a0
MatchGuard/gen_match_guard.rs f0e84a1f608c0361983c516a40216cea149620a36e0aed7ff39b0b7d77a9ab8a f0e84a1f608c0361983c516a40216cea149620a36e0aed7ff39b0b7d77a9ab8a
Meta/gen_meta.rs 39172a1f7dd02fa3149e7a1fc1dc1f135aa87c84057ee721cd9b373517042b25 39172a1f7dd02fa3149e7a1fc1dc1f135aa87c84057ee721cd9b373517042b25
MethodCallExpr/gen_method_call_expr.rs f696e63c5302f46dcac7bc2914fe899d029996d5064ffe8252cfa173a06f9dd3 f696e63c5302f46dcac7bc2914fe899d029996d5064ffe8252cfa173a06f9dd3
Module/gen_module.rs 815605a604fea1d9276684f8d6738a4e833eacad57ceeb27e2095fc450264fc1 815605a604fea1d9276684f8d6738a4e833eacad57ceeb27e2095fc450264fc1
Name/gen_name.rs 8a7fe65ee632a47d12eaa313e7248ac9210e5a381e9522499ca68f94c39e72c0 8a7fe65ee632a47d12eaa313e7248ac9210e5a381e9522499ca68f94c39e72c0
@@ -125,7 +124,6 @@ StructPatField/gen_struct_pat_field.rs dfdab8cef7dcfee40451744c8d2c7c4ae67fdb8bd
StructPatFieldList/gen_struct_pat_field_list.rs 06c0e56c78a6b28909d94d9519ba41ac8a6005741f82b947ef14db51e8cbebd0 06c0e56c78a6b28909d94d9519ba41ac8a6005741f82b947ef14db51e8cbebd0
TokenTree/gen_token_tree.rs 3fdc9a36a1870bb2bedf66c8fe37d368f4ac18488e7118b86e3979d3957a8f94 3fdc9a36a1870bb2bedf66c8fe37d368f4ac18488e7118b86e3979d3957a8f94
Trait/gen_trait.rs bac694993e224f9c6dd86cfb28c54846ae1b3bae45a1e58d3149c884184487ea bac694993e224f9c6dd86cfb28c54846ae1b3bae45a1e58d3149c884184487ea
TraitAlias/gen_trait_alias.rs 425d78a7cb87db7737ceaf713c9a62e0411537374d1bc58c5b1fb80cc25732c9 425d78a7cb87db7737ceaf713c9a62e0411537374d1bc58c5b1fb80cc25732c9
TryExpr/gen_try_expr.rs f60198181a423661f4ed1bf6f98d475f40ada190b7b5fc6af97aa5e45ca29a1e f60198181a423661f4ed1bf6f98d475f40ada190b7b5fc6af97aa5e45ca29a1e
TupleExpr/gen_tuple_expr.rs 27e56846b3f08c37c8a345169c2a532b2023d231d46a5bdf586bbc6d8fb36a01 27e56846b3f08c37c8a345169c2a532b2023d231d46a5bdf586bbc6d8fb36a01
TupleField/gen_tuple_field.rs 20507753ddb979a33d0e568ae5ebe466f039e7ab7b8f2e6ce15b28b3e4450615 20507753ddb979a33d0e568ae5ebe466f039e7ab7b8f2e6ce15b28b3e4450615

View File

@@ -80,7 +80,6 @@
/MatchArmList/gen_match_arm_list.rs linguist-generated
/MatchExpr/gen_match_expr.rs linguist-generated
/MatchGuard/gen_match_guard.rs linguist-generated
/Meta/gen_meta.rs linguist-generated
/MethodCallExpr/gen_method_call_expr.rs linguist-generated
/Module/gen_module.rs linguist-generated
/Name/gen_name.rs linguist-generated
@@ -127,7 +126,6 @@
/StructPatFieldList/gen_struct_pat_field_list.rs linguist-generated
/TokenTree/gen_token_tree.rs linguist-generated
/Trait/gen_trait.rs linguist-generated
/TraitAlias/gen_trait_alias.rs linguist-generated
/TryExpr/gen_try_expr.rs linguist-generated
/TupleExpr/gen_tuple_expr.rs linguist-generated
/TupleField/gen_tuple_field.rs linguist-generated

View File

@@ -4,8 +4,8 @@ import TestUtils
query predicate instances(
BlockExpr x, string isAsync__label, string isAsync, string isConst__label, string isConst,
string isGen__label, string isGen, string isMove__label, string isMove, string isTry__label,
string isTry, string isUnsafe__label, string isUnsafe
string isGen__label, string isGen, string isMove__label, string isMove, string isUnsafe__label,
string isUnsafe
) {
toBeTested(x) and
not x.isUnknown() and
@@ -17,8 +17,6 @@ query predicate instances(
(if x.isGen() then isGen = "yes" else isGen = "no") and
isMove__label = "isMove:" and
(if x.isMove() then isMove = "yes" else isMove = "no") and
isTry__label = "isTry:" and
(if x.isTry() then isTry = "yes" else isTry = "no") and
isUnsafe__label = "isUnsafe:" and
if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no"
}
@@ -34,3 +32,7 @@ query predicate getAttr(BlockExpr x, int index, Attr getAttr) {
query predicate getStmtList(BlockExpr x, StmtList getStmtList) {
toBeTested(x) and not x.isUnknown() and getStmtList = x.getStmtList()
}
query predicate getTryBlockModifier(BlockExpr x, TryBlockModifier getTryBlockModifier) {
toBeTested(x) and not x.isUnknown() and getTryBlockModifier = x.getTryBlockModifier()
}

View File

@@ -0,0 +1,4 @@
// generated by codegen, do not edit
After a source file is added in this directory and codegen is run again, test queries
will appear and this file will be deleted

View File

@@ -0,0 +1,4 @@
// generated by codegen, do not edit
After a source file is added in this directory and codegen is run again, test queries
will appear and this file will be deleted

View File

@@ -0,0 +1,4 @@
// generated by codegen, do not edit
After a source file is added in this directory and codegen is run again, test queries
will appear and this file will be deleted

View File

@@ -0,0 +1,4 @@
// generated by codegen, do not edit
After a source file is added in this directory and codegen is run again, test queries
will appear and this file will be deleted

View File

@@ -0,0 +1,4 @@
// generated by codegen, do not edit
After a source file is added in this directory and codegen is run again, test queries
will appear and this file will be deleted

View File

@@ -4,10 +4,10 @@ import TestUtils
query predicate instances(FormatArgsArg x) { toBeTested(x) and not x.isUnknown() }
query predicate getArgName(FormatArgsArg x, FormatArgsArgName getArgName) {
toBeTested(x) and not x.isUnknown() and getArgName = x.getArgName()
}
query predicate getExpr(FormatArgsArg x, Expr getExpr) {
toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr()
}
query predicate getName(FormatArgsArg x, Name getName) {
toBeTested(x) and not x.isUnknown() and getName = x.getName()
}

View File

@@ -0,0 +1,4 @@
// generated by codegen, do not edit
After a source file is added in this directory and codegen is run again, test queries
will appear and this file will be deleted

View File

@@ -1,22 +0,0 @@
// generated by codegen, do not edit
import codeql.rust.elements
import TestUtils
query predicate instances(Meta x, string isUnsafe__label, string isUnsafe) {
toBeTested(x) and
not x.isUnknown() and
isUnsafe__label = "isUnsafe:" and
if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no"
}
query predicate getExpr(Meta x, Expr getExpr) {
toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr()
}
query predicate getPath(Meta x, Path getPath) {
toBeTested(x) and not x.isUnknown() and getPath = x.getPath()
}
query predicate getTokenTree(Meta x, TokenTree getTokenTree) {
toBeTested(x) and not x.isUnknown() and getTokenTree = x.getTokenTree()
}

View File

@@ -1,14 +0,0 @@
// generated by codegen, do not edit
fn test_meta() -> () {
// A meta item in an attribute.
//
// For example:
#[unsafe(lint::name = "reason_for_bypass")]
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#[deprecated(since = "1.2.0", note = "Use bar instead", unsafe=true)]
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
fn foo() {
// ...
}
}

View File

@@ -0,0 +1,4 @@
// generated by codegen, do not edit
After a source file is added in this directory and codegen is run again, test queries
will appear and this file will be deleted

View File

@@ -13,8 +13,8 @@ query predicate getAttr(StructField x, int index, Attr getAttr) {
toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index)
}
query predicate getDefault(StructField x, Expr getDefault) {
toBeTested(x) and not x.isUnknown() and getDefault = x.getDefault()
query predicate getDefaultVal(StructField x, ConstArg getDefaultVal) {
toBeTested(x) and not x.isUnknown() and getDefaultVal = x.getDefaultVal()
}
query predicate getName(StructField x, Name getName) {

View File

@@ -0,0 +1,4 @@
// generated by codegen, do not edit
After a source file is added in this directory and codegen is run again, test queries
will appear and this file will be deleted

View File

@@ -1,35 +0,0 @@
// generated by codegen, do not edit
import codeql.rust.elements
import TestUtils
query predicate instances(TraitAlias x) { toBeTested(x) and not x.isUnknown() }
query predicate getAttributeMacroExpansion(TraitAlias x, MacroItems getAttributeMacroExpansion) {
toBeTested(x) and
not x.isUnknown() and
getAttributeMacroExpansion = x.getAttributeMacroExpansion()
}
query predicate getAttr(TraitAlias x, int index, Attr getAttr) {
toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index)
}
query predicate getGenericParamList(TraitAlias x, GenericParamList getGenericParamList) {
toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList()
}
query predicate getName(TraitAlias x, Name getName) {
toBeTested(x) and not x.isUnknown() and getName = x.getName()
}
query predicate getTypeBoundList(TraitAlias x, TypeBoundList getTypeBoundList) {
toBeTested(x) and not x.isUnknown() and getTypeBoundList = x.getTypeBoundList()
}
query predicate getVisibility(TraitAlias x, Visibility getVisibility) {
toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility()
}
query predicate getWhereClause(TraitAlias x, WhereClause getWhereClause) {
toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause()
}

View File

@@ -1,8 +0,0 @@
// generated by codegen, do not edit
fn test_trait_alias() -> () {
// A trait alias.
//
// For example:
trait Foo = Bar + Baz;
}

View File

@@ -0,0 +1,4 @@
// generated by codegen, do not edit
After a source file is added in this directory and codegen is run again, test queries
will appear and this file will be deleted

View File

@@ -0,0 +1,4 @@
// generated by codegen, do not edit
After a source file is added in this directory and codegen is run again, test queries
will appear and this file will be deleted

View File

@@ -8,8 +8,8 @@ query predicate getAttr(Variant x, int index, Attr getAttr) {
toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index)
}
query predicate getDiscriminant(Variant x, Expr getDiscriminant) {
toBeTested(x) and not x.isUnknown() and getDiscriminant = x.getDiscriminant()
query predicate getConstArg(Variant x, ConstArg getConstArg) {
toBeTested(x) and not x.isUnknown() and getConstArg = x.getConstArg()
}
query predicate getFieldList(Variant x, FieldList getFieldList) {

View File

@@ -1936,18 +1936,6 @@ class _:
"""
@annotate(TraitAlias)
class _:
"""
A trait alias.
For example:
```rust
trait Foo = Bar + Baz;
```
"""
@annotate(TryExpr, cfg=True)
class _:
"""

61
rust/schema/ast.py generated
View File

@@ -14,6 +14,9 @@ class AsmPiece(AstNode, ):
class AssocItem(AstNode, ):
pass
class CfgPredicate(AstNode, ):
pass
class Expr(AstNode, ):
pass
@@ -29,6 +32,9 @@ class GenericArg(AstNode, ):
class GenericParam(AstNode, ):
pass
class Meta(AstNode, ):
pass
class Pat(AstNode, ):
pass
@@ -139,10 +145,10 @@ class BlockExpr(Expr, ):
is_const: predicate
is_gen: predicate
is_move: predicate
is_try: predicate
is_unsafe: predicate
label: optional["Label"] | child
stmt_list: optional["StmtList"] | child
try_block_modifier: optional["TryBlockModifier"] | child
class BoxPat(Pat, ):
pat: optional["Pat"] | child
@@ -162,6 +168,19 @@ class CastExpr(Expr, ):
expr: optional["Expr"] | child
type_repr: optional["TypeRepr"] | child
class CfgAtom(CfgPredicate, ):
pass
class CfgAttrMeta(Meta, ):
cfg_predicate: optional["CfgPredicate"] | child
metas: list["Meta"] | child
class CfgComposite(CfgPredicate, ):
cfg_predicates: list["CfgPredicate"] | child
class CfgMeta(Meta, ):
cfg_predicate: optional["CfgPredicate"] | child
class ClosureExpr(Expr, ):
attrs: list["Attr"] | child
closure_body: optional["Expr"] | child
@@ -277,8 +296,11 @@ class ForTypeRepr(TypeRepr, ):
type_repr: optional["TypeRepr"] | child
class FormatArgsArg(AstNode, ):
arg_name: optional["FormatArgsArgName"] | child
expr: optional["Expr"] | child
name: optional["Name"] | child
class FormatArgsArgName(AstNode, ):
pass
class FormatArgsExpr(Expr, ):
args: list["FormatArgsArg"] | child
@@ -331,6 +353,10 @@ class ItemList(AstNode, ):
attrs: list["Attr"] | child
items: list["Item"] | child
class KeyValueMeta(Meta, ):
expr: optional["Expr"] | child
path: optional["Path"] | child
class Label(AstNode, ):
lifetime: optional["Lifetime"] | child
@@ -420,12 +446,6 @@ class MatchExpr(Expr, ):
class MatchGuard(AstNode, ):
condition: optional["Expr"] | child
class Meta(AstNode, ):
expr: optional["Expr"] | child
is_unsafe: predicate
path: optional["Path"] | child
token_tree: optional["TokenTree"] | child
class MethodCallExpr(Expr, ):
arg_list: optional["ArgList"] | child
attrs: list["Attr"] | child
@@ -486,6 +506,9 @@ class PathExpr(Expr, ):
attrs: list["Attr"] | child
path: optional["Path"] | child
class PathMeta(Meta, ):
path: optional["Path"] | child
class PathPat(Pat, ):
path: optional["Path"] | child
@@ -536,7 +559,7 @@ class StructExprFieldList(AstNode, ):
class StructField(AstNode, ):
attrs: list["Attr"] | child
default: optional["Expr"] | child
default_val: optional["ConstArg"] | child
is_unsafe: predicate
name: optional["Name"] | child
type_repr: optional["TypeRepr"] | child
@@ -634,6 +657,10 @@ class Struct(TypeItem, Item, ):
class TokenTree(AstNode, ):
pass
class TokenTreeMeta(Meta, ):
path: optional["Path"] | child
token_tree: optional["TokenTree"] | child
class Trait(Item, ):
assoc_item_list: optional["AssocItemList"] | child
attrs: list["Attr"] | child
@@ -645,13 +672,9 @@ class Trait(Item, ):
visibility: optional["Visibility"] | child
where_clause: optional["WhereClause"] | child
class TraitAlias(Item, ):
attrs: list["Attr"] | child
generic_param_list: optional["GenericParamList"] | child
name: optional["Name"] | child
type_bound_list: optional["TypeBoundList"] | child
visibility: optional["Visibility"] | child
where_clause: optional["WhereClause"] | child
class TryBlockModifier(AstNode, ):
is_try: predicate
type_repr: optional["TypeRepr"] | child
class TryExpr(Expr, ):
attrs: list["Attr"] | child
@@ -720,6 +743,10 @@ class Union(TypeItem, Item, ):
visibility: optional["Visibility"] | child
where_clause: optional["WhereClause"] | child
class UnsafeMeta(Meta, ):
is_unsafe: predicate
meta: optional["Meta"] | child
class Use(Item, ):
attrs: list["Attr"] | child
use_tree: optional["UseTree"] | child
@@ -739,7 +766,7 @@ class UseTreeList(AstNode, ):
class Variant(AstNode, ):
attrs: list["Attr"] | child
discriminant: optional["Expr"] | child
const_arg: optional["ConstArg"] | child
field_list: optional["FieldList"] | child
name: optional["Name"] | child
visibility: optional["Visibility"] | child