mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
Merge pull request #17502 from github/aibaars/rust-extract-ast
Rust: ast-based extractor
This commit is contained in:
26
Cargo.lock
generated
26
Cargo.lock
generated
@@ -382,6 +382,7 @@ dependencies = [
|
||||
"ra_ap_hir_def",
|
||||
"ra_ap_ide_db",
|
||||
"ra_ap_load-cargo",
|
||||
"ra_ap_parser",
|
||||
"ra_ap_paths",
|
||||
"ra_ap_project_model",
|
||||
"ra_ap_syntax",
|
||||
@@ -680,6 +681,16 @@ version = "0.4.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7ab85b9b05e3978cc9a9cf8fea7f01b494e1a09ed3037e16ba39edc7a29eb61a"
|
||||
|
||||
[[package]]
|
||||
name = "generate-schema"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"itertools 0.10.5",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"ungrammar",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
version = "0.2.15"
|
||||
@@ -849,6 +860,15 @@ version = "1.70.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
|
||||
|
||||
[[package]]
|
||||
name = "itertools"
|
||||
version = "0.10.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
|
||||
dependencies = [
|
||||
"either",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "itertools"
|
||||
version = "0.12.1"
|
||||
@@ -2335,6 +2355,12 @@ dependencies = [
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ungrammar"
|
||||
version = "1.16.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a3e5df347f0bf3ec1d670aad6ca5c6a1859cd9ea61d2113125794654ccced68f"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.13"
|
||||
|
||||
@@ -7,6 +7,7 @@ members = [
|
||||
"ruby/extractor",
|
||||
"rust/extractor",
|
||||
"rust/extractor/macros",
|
||||
"rust/generate-schema",
|
||||
]
|
||||
|
||||
[patch.crates-io]
|
||||
|
||||
@@ -61,6 +61,7 @@ r.from_cargo(
|
||||
"//ruby/extractor:Cargo.toml",
|
||||
"//rust/extractor:Cargo.toml",
|
||||
"//rust/extractor/macros:Cargo.toml",
|
||||
"//rust/generate-schema:Cargo.toml",
|
||||
"//shared/tree-sitter-extractor:Cargo.toml",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -18,6 +18,7 @@ ra_ap_paths = "0.0.232"
|
||||
ra_ap_project_model = "0.0.232"
|
||||
ra_ap_syntax = "0.0.232"
|
||||
ra_ap_vfs = "0.0.232"
|
||||
ra_ap_parser = "0.0.232"
|
||||
serde = "1.0.209"
|
||||
serde_with = "3.9.0"
|
||||
stderrlog = "0.6.0"
|
||||
|
||||
2
rust/extractor/src/generated/.generated.list
generated
2
rust/extractor/src/generated/.generated.list
generated
@@ -1,2 +1,2 @@
|
||||
mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7
|
||||
top.rs ec9ec5e218af9a6b449b40f716e00bbe23c2777941d105b9ed68071aa2468ca2 ec9ec5e218af9a6b449b40f716e00bbe23c2777941d105b9ed68071aa2468ca2
|
||||
top.rs 90a8dbfc1e4689d3310f40a3377ef0542f1886cd8c84782362d3047f0b27b3ff 90a8dbfc1e4689d3310f40a3377ef0542f1886cd8c84782362d3047f0b27b3ff
|
||||
|
||||
6561
rust/extractor/src/generated/top.rs
generated
6561
rust/extractor/src/generated/top.rs
generated
File diff suppressed because it is too large
Load Diff
@@ -1,37 +1,11 @@
|
||||
use crate::trap::TrapId;
|
||||
use anyhow::Context;
|
||||
use itertools::Itertools;
|
||||
use log::info;
|
||||
use ra_ap_hir::db::DefDatabase;
|
||||
use ra_ap_hir::Crate;
|
||||
use ra_ap_load_cargo::{load_workspace_at, LoadCargoConfig, ProcMacroServerChoice};
|
||||
use ra_ap_project_model::CargoConfig;
|
||||
use ra_ap_project_model::RustLibSource;
|
||||
use ra_ap_vfs::AbsPathBuf;
|
||||
use std::path::PathBuf;
|
||||
|
||||
use ra_ap_ide_db::line_index::LineIndex;
|
||||
mod archive;
|
||||
mod config;
|
||||
pub mod generated;
|
||||
mod translate;
|
||||
pub mod trap;
|
||||
|
||||
fn find_project_manifests(
|
||||
files: &[PathBuf],
|
||||
) -> anyhow::Result<Vec<ra_ap_project_model::ProjectManifest>> {
|
||||
let current = std::env::current_dir()?;
|
||||
let abs_files: Vec<_> = files
|
||||
.iter()
|
||||
.map(|path| AbsPathBuf::assert_utf8(current.join(path)))
|
||||
.collect();
|
||||
let ret = ra_ap_project_model::ProjectManifest::discover_all(&abs_files);
|
||||
info!(
|
||||
"found manifests: {}",
|
||||
ret.iter().map(|m| format!("{m}")).join(", ")
|
||||
);
|
||||
Ok(ret)
|
||||
}
|
||||
|
||||
fn main() -> anyhow::Result<()> {
|
||||
let cfg = config::Config::extract().context("failed to load configuration")?;
|
||||
stderrlog::new()
|
||||
@@ -43,52 +17,20 @@ fn main() -> anyhow::Result<()> {
|
||||
let archiver = archive::Archiver {
|
||||
root: cfg.source_archive_dir,
|
||||
};
|
||||
|
||||
let config = CargoConfig {
|
||||
sysroot: Some(RustLibSource::Discover),
|
||||
target_dir: ra_ap_paths::Utf8PathBuf::from_path_buf(cfg.scratch_dir)
|
||||
.map(|x| x.join("target"))
|
||||
.ok(),
|
||||
..Default::default()
|
||||
};
|
||||
let progress = |t| (log::info!("progress: {}", t));
|
||||
let load_config = LoadCargoConfig {
|
||||
load_out_dirs_from_check: true,
|
||||
with_proc_macro_server: ProcMacroServerChoice::Sysroot,
|
||||
prefill_caches: false,
|
||||
};
|
||||
let projects = find_project_manifests(&cfg.inputs).context("loading inputs")?;
|
||||
for project in projects {
|
||||
let (db, vfs, _macro_server) = load_workspace_at(
|
||||
project.manifest_path().as_ref(),
|
||||
&config,
|
||||
&load_config,
|
||||
&progress,
|
||||
)?;
|
||||
|
||||
let crates = <dyn DefDatabase>::crate_graph(&db);
|
||||
for crate_id in crates.iter() {
|
||||
let krate = Crate::from(crate_id);
|
||||
if !cfg.extract_dependencies && !krate.origin(&db).is_local() {
|
||||
continue;
|
||||
}
|
||||
let name = krate.display_name(&db);
|
||||
let crate_name = name
|
||||
.as_ref()
|
||||
.map(|n| n.canonical_name().as_str())
|
||||
.unwrap_or("");
|
||||
let trap = traps.create(
|
||||
"crates",
|
||||
&PathBuf::from(format!(
|
||||
"/{}_{}",
|
||||
crate_name,
|
||||
crate_id.into_raw().into_u32()
|
||||
)),
|
||||
);
|
||||
translate::CrateTranslator::new(&db, trap, &krate, &vfs, &archiver)
|
||||
.emit_crate()
|
||||
.context("writing trap file")?;
|
||||
}
|
||||
for file in cfg.inputs {
|
||||
let file = std::path::absolute(&file).unwrap_or(file);
|
||||
let file = std::fs::canonicalize(&file).unwrap_or(file);
|
||||
archiver.archive(&file);
|
||||
let input = std::fs::read(&file)?;
|
||||
let input = String::from_utf8(input)?;
|
||||
let line_index = LineIndex::new(&input);
|
||||
let display_path = file.to_string_lossy();
|
||||
let mut trap = traps.create("source", &file);
|
||||
let label = trap.emit_file(&file);
|
||||
translate::SourceFileTranslator::new(trap, label, line_index)
|
||||
.extract(&display_path, &input)
|
||||
.context("writing trap file")?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
2
rust/generate-schema/.gitignore
vendored
Normal file
2
rust/generate-schema/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/target
|
||||
/.idea
|
||||
14
rust/generate-schema/BUILD.bazel
Normal file
14
rust/generate-schema/BUILD.bazel
Normal file
@@ -0,0 +1,14 @@
|
||||
load("//misc/bazel:rust.bzl", "codeql_rust_binary")
|
||||
|
||||
codeql_rust_binary(
|
||||
name = "generate-schema",
|
||||
srcs = glob(["src/**/*.rs"]),
|
||||
aliases = aliases(),
|
||||
proc_macro_deps = all_crate_deps(
|
||||
proc_macro = True,
|
||||
),
|
||||
visibility = ["//rust:__subpackages__"],
|
||||
deps = all_crate_deps(
|
||||
normal = True,
|
||||
),
|
||||
)
|
||||
16
rust/generate-schema/Cargo.lock
generated
Normal file
16
rust/generate-schema/Cargo.lock
generated
Normal file
@@ -0,0 +1,16 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "generate-schema"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"ungrammar",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ungrammar"
|
||||
version = "1.16.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a3e5df347f0bf3ec1d670aad6ca5c6a1859cd9ea61d2113125794654ccced68f"
|
||||
11
rust/generate-schema/Cargo.toml
Normal file
11
rust/generate-schema/Cargo.toml
Normal file
@@ -0,0 +1,11 @@
|
||||
[package]
|
||||
name = "generate-schema"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
ungrammar = "1.16.1"
|
||||
proc-macro2 = "1.0.33"
|
||||
quote = "1.0.12"
|
||||
itertools = "0.10.1"
|
||||
|
||||
718
rust/generate-schema/rust.ungram
Normal file
718
rust/generate-schema/rust.ungram
Normal file
@@ -0,0 +1,718 @@
|
||||
// Rust Un-Grammar.
|
||||
//
|
||||
// This grammar specifies the structure of Rust's concrete syntax tree.
|
||||
// It does not specify parsing rules (ambiguities, precedence, etc are out of scope).
|
||||
// Tokens are processed -- contextual keywords are recognised, compound operators glued.
|
||||
//
|
||||
// Legend:
|
||||
//
|
||||
// // -- comment
|
||||
// Name = -- non-terminal definition
|
||||
// 'ident' -- keyword or punct token (terminal)
|
||||
// '#ident' -- generic token (terminal)
|
||||
// '@ident' -- literal token (terminal)
|
||||
// A B -- sequence
|
||||
// A | B -- alternation
|
||||
// A* -- zero or more repetition
|
||||
// A? -- zero or one repetition
|
||||
// (A) -- same as A
|
||||
// label:A -- suggested name for field of AST node
|
||||
|
||||
//*************************//
|
||||
// Paths //
|
||||
//*************************//
|
||||
|
||||
Name =
|
||||
'#ident' | 'self'
|
||||
|
||||
NameRef =
|
||||
'#ident' | '@int_number' | 'self' | 'super' | 'crate' | 'Self'
|
||||
|
||||
Lifetime =
|
||||
'#lifetime_ident'
|
||||
|
||||
Path =
|
||||
(qualifier:Path '::')? segment:PathSegment
|
||||
|
||||
PathSegment =
|
||||
'::'? NameRef
|
||||
| NameRef GenericArgList?
|
||||
| NameRef ParamList RetType?
|
||||
| NameRef ReturnTypeSyntax
|
||||
| '<' Type ('as' PathType)? '>'
|
||||
|
||||
ReturnTypeSyntax =
|
||||
'(' '..' ')'
|
||||
|
||||
|
||||
//*************************//
|
||||
// Generics //
|
||||
//*************************//
|
||||
|
||||
GenericArgList =
|
||||
'::'? '<' (GenericArg (',' GenericArg)* ','?)? '>'
|
||||
|
||||
GenericArg =
|
||||
TypeArg
|
||||
| AssocTypeArg
|
||||
| LifetimeArg
|
||||
| ConstArg
|
||||
|
||||
TypeArg =
|
||||
Type
|
||||
|
||||
AssocTypeArg =
|
||||
NameRef
|
||||
(GenericArgList | ParamList RetType? | ReturnTypeSyntax)?
|
||||
(':' TypeBoundList | ('=' Type | ConstArg))
|
||||
|
||||
LifetimeArg =
|
||||
Lifetime
|
||||
|
||||
ConstArg =
|
||||
Expr
|
||||
|
||||
GenericParamList =
|
||||
'<' (GenericParam (',' GenericParam)* ','?)? '>'
|
||||
|
||||
GenericParam =
|
||||
ConstParam
|
||||
| LifetimeParam
|
||||
| TypeParam
|
||||
|
||||
TypeParam =
|
||||
Attr* Name (':' TypeBoundList?)?
|
||||
('=' default_type:Type)?
|
||||
|
||||
ConstParam =
|
||||
Attr* 'const' Name ':' Type
|
||||
('=' default_val:ConstArg)?
|
||||
|
||||
LifetimeParam =
|
||||
Attr* Lifetime (':' TypeBoundList?)?
|
||||
|
||||
WhereClause =
|
||||
'where' predicates:(WherePred (',' WherePred)* ','?)
|
||||
|
||||
WherePred =
|
||||
('for' GenericParamList)? (Lifetime | Type) ':' TypeBoundList?
|
||||
|
||||
|
||||
//*************************//
|
||||
// Macro //
|
||||
//*************************//
|
||||
|
||||
MacroCall =
|
||||
Attr* Path '!' TokenTree ';'?
|
||||
|
||||
TokenTree =
|
||||
'(' ')'
|
||||
| '{' '}'
|
||||
| '[' ']'
|
||||
|
||||
MacroItems =
|
||||
Item*
|
||||
|
||||
MacroStmts =
|
||||
statements:Stmt*
|
||||
Expr?
|
||||
|
||||
Attr =
|
||||
'#' '!'? '[' Meta ']'
|
||||
|
||||
Meta =
|
||||
'unsafe' '(' Path ('=' Expr | TokenTree)? ')'
|
||||
| Path ('=' Expr | TokenTree)?
|
||||
|
||||
//*************************//
|
||||
// Items //
|
||||
//*************************//
|
||||
|
||||
SourceFile =
|
||||
'#shebang'?
|
||||
Attr*
|
||||
Item*
|
||||
|
||||
Item =
|
||||
Const
|
||||
| Enum
|
||||
| ExternBlock
|
||||
| ExternCrate
|
||||
| Fn
|
||||
| Impl
|
||||
| MacroCall
|
||||
| MacroRules
|
||||
| MacroDef
|
||||
| Module
|
||||
| Static
|
||||
| Struct
|
||||
| Trait
|
||||
| TraitAlias
|
||||
| TypeAlias
|
||||
| Union
|
||||
| Use
|
||||
|
||||
MacroRules =
|
||||
Attr* Visibility?
|
||||
'macro_rules' '!' Name
|
||||
TokenTree
|
||||
|
||||
MacroDef =
|
||||
Attr* Visibility?
|
||||
'macro' Name args:TokenTree?
|
||||
body:TokenTree
|
||||
|
||||
Module =
|
||||
Attr* Visibility?
|
||||
'mod' Name
|
||||
(ItemList | ';')
|
||||
|
||||
ItemList =
|
||||
'{' Attr* Item* '}'
|
||||
|
||||
ExternCrate =
|
||||
Attr* Visibility?
|
||||
'extern' 'crate' NameRef Rename? ';'
|
||||
|
||||
Rename =
|
||||
'as' (Name | '_')
|
||||
|
||||
Use =
|
||||
Attr* Visibility?
|
||||
'use' UseTree ';'
|
||||
|
||||
UseTree =
|
||||
(Path? '::')? ('*' | UseTreeList)
|
||||
| Path Rename?
|
||||
|
||||
UseTreeList =
|
||||
'{' (UseTree (',' UseTree)* ','?)? '}'
|
||||
|
||||
Fn =
|
||||
Attr* Visibility?
|
||||
'default'? 'const'? 'async'? 'gen'? 'unsafe'? Abi?
|
||||
'fn' Name GenericParamList? ParamList RetType? WhereClause?
|
||||
(body:BlockExpr | ';')
|
||||
|
||||
Abi =
|
||||
'extern' '@string'?
|
||||
|
||||
ParamList =
|
||||
'('(
|
||||
SelfParam
|
||||
| (SelfParam ',')? (Param (',' Param)* ','?)?
|
||||
)')'
|
||||
| '|' (Param (',' Param)* ','?)? '|'
|
||||
|
||||
SelfParam =
|
||||
Attr* (
|
||||
('&' Lifetime?)? 'mut'? Name
|
||||
| 'mut'? Name ':' Type
|
||||
)
|
||||
|
||||
Param =
|
||||
Attr* (
|
||||
Pat (':' Type)?
|
||||
| Type
|
||||
| '...'
|
||||
)
|
||||
|
||||
RetType =
|
||||
'->' Type
|
||||
|
||||
TypeAlias =
|
||||
Attr* Visibility?
|
||||
'default'?
|
||||
'type' Name GenericParamList? (':' TypeBoundList?)? WhereClause?
|
||||
('=' Type)? ';'
|
||||
|
||||
Struct =
|
||||
Attr* Visibility?
|
||||
'struct' Name GenericParamList? (
|
||||
WhereClause? (RecordFieldList | ';')
|
||||
| TupleFieldList WhereClause? ';'
|
||||
)
|
||||
|
||||
RecordFieldList =
|
||||
'{' fields:(RecordField (',' RecordField)* ','?)? '}'
|
||||
|
||||
RecordField =
|
||||
Attr* Visibility?
|
||||
Name ':' Type
|
||||
|
||||
TupleFieldList =
|
||||
'(' fields:(TupleField (',' TupleField)* ','?)? ')'
|
||||
|
||||
TupleField =
|
||||
Attr* Visibility?
|
||||
Type
|
||||
|
||||
FieldList =
|
||||
RecordFieldList
|
||||
| TupleFieldList
|
||||
|
||||
Enum =
|
||||
Attr* Visibility?
|
||||
'enum' Name GenericParamList? WhereClause?
|
||||
VariantList
|
||||
|
||||
VariantList =
|
||||
'{' (Variant (',' Variant)* ','?)? '}'
|
||||
|
||||
Variant =
|
||||
Attr* Visibility?
|
||||
Name FieldList? ('=' Expr)?
|
||||
|
||||
Union =
|
||||
Attr* Visibility?
|
||||
'union' Name GenericParamList? WhereClause?
|
||||
RecordFieldList
|
||||
|
||||
// A Data Type.
|
||||
//
|
||||
// Not used directly in the grammar, but handy to have anyway.
|
||||
Adt =
|
||||
Enum
|
||||
| Struct
|
||||
| Union
|
||||
|
||||
Const =
|
||||
Attr* Visibility?
|
||||
'default'?
|
||||
'const' (Name | '_') ':' Type
|
||||
('=' body:Expr)? ';'
|
||||
|
||||
Static =
|
||||
Attr* Visibility?
|
||||
'static' 'mut'? Name ':' Type
|
||||
('=' body:Expr)? ';'
|
||||
|
||||
Trait =
|
||||
Attr* Visibility?
|
||||
'unsafe'? 'auto'?
|
||||
'trait' Name GenericParamList?
|
||||
(':' TypeBoundList?)? WhereClause? AssocItemList
|
||||
|
||||
TraitAlias =
|
||||
Attr* Visibility?
|
||||
'trait' Name GenericParamList? '=' TypeBoundList? WhereClause? ';'
|
||||
|
||||
AssocItemList =
|
||||
'{' Attr* AssocItem* '}'
|
||||
|
||||
AssocItem =
|
||||
Const
|
||||
| Fn
|
||||
| MacroCall
|
||||
| TypeAlias
|
||||
|
||||
Impl =
|
||||
Attr* Visibility?
|
||||
'default'? 'unsafe'?
|
||||
'impl' GenericParamList? ('const'? '!'? trait:Type 'for')? self_ty:Type WhereClause?
|
||||
AssocItemList
|
||||
|
||||
ExternBlock =
|
||||
Attr* 'unsafe'? Abi ExternItemList
|
||||
|
||||
ExternItemList =
|
||||
'{' Attr* ExternItem* '}'
|
||||
|
||||
ExternItem =
|
||||
Fn
|
||||
| MacroCall
|
||||
| Static
|
||||
| TypeAlias
|
||||
|
||||
Visibility =
|
||||
'pub' ('(' 'in'? Path ')')?
|
||||
|
||||
|
||||
//****************************//
|
||||
// Statements and Expressions //
|
||||
//****************************//
|
||||
|
||||
Stmt =
|
||||
';'
|
||||
| ExprStmt
|
||||
| Item
|
||||
| LetStmt
|
||||
|
||||
LetStmt =
|
||||
Attr* 'let' Pat (':' Type)?
|
||||
'=' initializer:Expr
|
||||
LetElse?
|
||||
';'
|
||||
|
||||
LetElse =
|
||||
'else' BlockExpr
|
||||
|
||||
ExprStmt =
|
||||
Expr ';'?
|
||||
|
||||
Expr =
|
||||
ArrayExpr
|
||||
| AsmExpr
|
||||
| AwaitExpr
|
||||
| BinExpr
|
||||
| BlockExpr
|
||||
| BreakExpr
|
||||
| CallExpr
|
||||
| CastExpr
|
||||
| ClosureExpr
|
||||
| ContinueExpr
|
||||
| FieldExpr
|
||||
| ForExpr
|
||||
| FormatArgsExpr
|
||||
| IfExpr
|
||||
| IndexExpr
|
||||
| Literal
|
||||
| LoopExpr
|
||||
| MacroExpr
|
||||
| MatchExpr
|
||||
| MethodCallExpr
|
||||
| OffsetOfExpr
|
||||
| ParenExpr
|
||||
| PathExpr
|
||||
| PrefixExpr
|
||||
| RangeExpr
|
||||
| RecordExpr
|
||||
| RefExpr
|
||||
| ReturnExpr
|
||||
| BecomeExpr
|
||||
| TryExpr
|
||||
| TupleExpr
|
||||
| WhileExpr
|
||||
| YieldExpr
|
||||
| YeetExpr
|
||||
| LetExpr
|
||||
| UnderscoreExpr
|
||||
|
||||
OffsetOfExpr =
|
||||
Attr* 'builtin' '#' 'offset_of' '(' Type ',' fields:(NameRef ('.' NameRef)* ) ')'
|
||||
|
||||
AsmExpr =
|
||||
Attr* 'builtin' '#' 'asm' '(' Expr ')'
|
||||
|
||||
FormatArgsExpr =
|
||||
Attr* 'builtin' '#' 'format_args' '('
|
||||
template:Expr
|
||||
(',' args:(FormatArgsArg (',' FormatArgsArg)* ','?)? )?
|
||||
')'
|
||||
|
||||
FormatArgsArg =
|
||||
(Name '=')? Expr
|
||||
|
||||
MacroExpr =
|
||||
MacroCall
|
||||
|
||||
Literal =
|
||||
Attr* value:(
|
||||
'@int_number' | '@float_number'
|
||||
| '@string' | '@raw_string'
|
||||
| '@byte_string' | '@raw_byte_string'
|
||||
| '@c_string' | '@raw_c_string'
|
||||
| '@char' | '@byte'
|
||||
| 'true' | 'false'
|
||||
)
|
||||
|
||||
PathExpr =
|
||||
Attr* Path
|
||||
|
||||
StmtList =
|
||||
'{'
|
||||
Attr*
|
||||
statements:Stmt*
|
||||
tail_expr:Expr?
|
||||
'}'
|
||||
|
||||
RefExpr =
|
||||
Attr* '&' (('raw' 'const'?)| ('raw'? 'mut') ) Expr
|
||||
|
||||
TryExpr =
|
||||
Attr* Expr '?'
|
||||
|
||||
BlockExpr =
|
||||
Attr* Label? ('try' | 'unsafe' | ('async' 'move'?) | ('gen' 'move'?) | 'const') StmtList
|
||||
|
||||
PrefixExpr =
|
||||
Attr* op:('-' | '!' | '*') Expr
|
||||
|
||||
BinExpr =
|
||||
Attr*
|
||||
lhs:Expr
|
||||
op:(
|
||||
'||' | '&&'
|
||||
| '==' | '!=' | '<=' | '>=' | '<' | '>'
|
||||
| '+' | '*' | '-' | '/' | '%' | '<<' | '>>' | '^' | '|' | '&'
|
||||
| '=' | '+=' | '/=' | '*=' | '%=' | '>>=' | '<<=' | '-=' | '|=' | '&=' | '^='
|
||||
)
|
||||
rhs:Expr
|
||||
|
||||
CastExpr =
|
||||
Attr* Expr 'as' Type
|
||||
|
||||
ParenExpr =
|
||||
Attr* '(' Attr* Expr ')'
|
||||
|
||||
ArrayExpr =
|
||||
Attr* '[' Attr* (
|
||||
(Expr (',' Expr)* ','?)?
|
||||
| Expr ';' Expr
|
||||
) ']'
|
||||
|
||||
IndexExpr =
|
||||
Attr* base:Expr '[' index:Expr ']'
|
||||
|
||||
TupleExpr =
|
||||
Attr* '(' Attr* fields:(Expr (',' Expr)* ','?)? ')'
|
||||
|
||||
RecordExpr =
|
||||
Path RecordExprFieldList
|
||||
|
||||
RecordExprFieldList =
|
||||
'{'
|
||||
Attr*
|
||||
fields:(RecordExprField (',' RecordExprField)* ','?)?
|
||||
('..' spread:Expr?)?
|
||||
'}'
|
||||
|
||||
RecordExprField =
|
||||
Attr* (NameRef ':')? Expr
|
||||
|
||||
CallExpr =
|
||||
Attr* Expr ArgList
|
||||
|
||||
ArgList =
|
||||
'(' args:(Expr (',' Expr)* ','?)? ')'
|
||||
|
||||
MethodCallExpr =
|
||||
Attr* receiver:Expr '.' NameRef GenericArgList? ArgList
|
||||
|
||||
FieldExpr =
|
||||
Attr* Expr '.' NameRef
|
||||
|
||||
ClosureExpr =
|
||||
Attr* ClosureBinder? 'const'? 'static'? 'async'? 'gen'? 'move'? ParamList RetType?
|
||||
body:Expr
|
||||
|
||||
ClosureBinder =
|
||||
'for' GenericParamList
|
||||
|
||||
IfExpr =
|
||||
Attr* 'if' condition:Expr then_branch:BlockExpr
|
||||
('else' else_branch:(IfExpr | BlockExpr))?
|
||||
|
||||
LoopExpr =
|
||||
Attr* Label? 'loop'
|
||||
loop_body:BlockExpr
|
||||
|
||||
ForExpr =
|
||||
Attr* Label? 'for' Pat 'in' iterable:Expr
|
||||
loop_body:BlockExpr
|
||||
|
||||
WhileExpr =
|
||||
Attr* Label? 'while' condition:Expr
|
||||
loop_body:BlockExpr
|
||||
|
||||
Label =
|
||||
Lifetime ':'
|
||||
|
||||
BreakExpr =
|
||||
Attr* 'break' Lifetime? Expr?
|
||||
|
||||
ContinueExpr =
|
||||
Attr* 'continue' Lifetime?
|
||||
|
||||
RangeExpr =
|
||||
Attr* start:Expr? op:('..' | '..=') end:Expr?
|
||||
|
||||
MatchExpr =
|
||||
Attr* 'match' Expr MatchArmList
|
||||
|
||||
MatchArmList =
|
||||
'{'
|
||||
Attr*
|
||||
arms:MatchArm*
|
||||
'}'
|
||||
|
||||
MatchArm =
|
||||
Attr* Pat guard:MatchGuard? '=>' Expr ','?
|
||||
|
||||
MatchGuard =
|
||||
'if' condition:Expr
|
||||
|
||||
ReturnExpr =
|
||||
Attr* 'return' Expr?
|
||||
|
||||
BecomeExpr =
|
||||
Attr* 'become' Expr
|
||||
|
||||
YieldExpr =
|
||||
Attr* 'yield' Expr?
|
||||
|
||||
YeetExpr =
|
||||
Attr* 'do' 'yeet' Expr?
|
||||
|
||||
LetExpr =
|
||||
Attr* 'let' Pat '=' Expr
|
||||
|
||||
UnderscoreExpr =
|
||||
Attr* '_'
|
||||
|
||||
AwaitExpr =
|
||||
Attr* Expr '.' 'await'
|
||||
|
||||
//*************************//
|
||||
// Types //
|
||||
//*************************//
|
||||
|
||||
Type =
|
||||
ArrayType
|
||||
| DynTraitType
|
||||
| FnPtrType
|
||||
| ForType
|
||||
| ImplTraitType
|
||||
| InferType
|
||||
| MacroType
|
||||
| NeverType
|
||||
| ParenType
|
||||
| PathType
|
||||
| PtrType
|
||||
| RefType
|
||||
| SliceType
|
||||
| TupleType
|
||||
|
||||
ParenType =
|
||||
'(' Type ')'
|
||||
|
||||
NeverType =
|
||||
'!'
|
||||
|
||||
MacroType =
|
||||
MacroCall
|
||||
|
||||
PathType =
|
||||
Path
|
||||
|
||||
TupleType =
|
||||
'(' fields:(Type (',' Type)* ','?)? ')'
|
||||
|
||||
PtrType =
|
||||
'*' ('const' | 'mut') Type
|
||||
|
||||
RefType =
|
||||
'&' Lifetime? 'mut'? Type
|
||||
|
||||
ArrayType =
|
||||
'[' Type ';' ConstArg ']'
|
||||
|
||||
SliceType =
|
||||
'[' Type ']'
|
||||
|
||||
InferType =
|
||||
'_'
|
||||
|
||||
FnPtrType =
|
||||
'const'? 'async'? 'unsafe'? Abi? 'fn' ParamList RetType?
|
||||
|
||||
ForType =
|
||||
'for' GenericParamList Type
|
||||
|
||||
ImplTraitType =
|
||||
'impl' TypeBoundList
|
||||
|
||||
DynTraitType =
|
||||
'dyn'? TypeBoundList
|
||||
|
||||
TypeBoundList =
|
||||
bounds:(TypeBound ('+' TypeBound)* '+'?)
|
||||
|
||||
TypeBound =
|
||||
Lifetime
|
||||
| ('~' 'const' | 'const')? 'async'? '?'? Type
|
||||
| 'use' GenericParamList
|
||||
|
||||
//************************//
|
||||
// Patterns //
|
||||
//************************//
|
||||
|
||||
Pat =
|
||||
IdentPat
|
||||
| BoxPat
|
||||
| RestPat
|
||||
| LiteralPat
|
||||
| MacroPat
|
||||
| OrPat
|
||||
| ParenPat
|
||||
| PathPat
|
||||
| WildcardPat
|
||||
| RangePat
|
||||
| RecordPat
|
||||
| RefPat
|
||||
| SlicePat
|
||||
| TuplePat
|
||||
| TupleStructPat
|
||||
| ConstBlockPat
|
||||
|
||||
LiteralPat =
|
||||
'-'? Literal
|
||||
|
||||
IdentPat =
|
||||
Attr* 'ref'? 'mut'? Name ('@' Pat)?
|
||||
|
||||
WildcardPat =
|
||||
'_'
|
||||
|
||||
RangePat =
|
||||
// 1..
|
||||
start:Pat op:('..' | '..=')
|
||||
// 1..2
|
||||
| start:Pat op:('..' | '..=') end:Pat
|
||||
// ..2
|
||||
| op:('..' | '..=') end:Pat
|
||||
|
||||
RefPat =
|
||||
'&' 'mut'? Pat
|
||||
|
||||
RecordPat =
|
||||
Path RecordPatFieldList
|
||||
|
||||
RecordPatFieldList =
|
||||
'{'
|
||||
fields:(RecordPatField (',' RecordPatField)* ','?)?
|
||||
RestPat?
|
||||
'}'
|
||||
|
||||
RecordPatField =
|
||||
Attr* (NameRef ':')? Pat
|
||||
|
||||
TupleStructPat =
|
||||
Path '(' fields:(Pat (',' Pat)* ','?)? ')'
|
||||
|
||||
TuplePat =
|
||||
'(' fields:(Pat (',' Pat)* ','?)? ')'
|
||||
|
||||
ParenPat =
|
||||
'(' Pat ')'
|
||||
|
||||
SlicePat =
|
||||
'[' (Pat (',' Pat)* ','?)? ']'
|
||||
|
||||
PathPat =
|
||||
Path
|
||||
|
||||
OrPat =
|
||||
(Pat ('|' Pat)* '|'?)
|
||||
|
||||
BoxPat =
|
||||
'box' Pat
|
||||
|
||||
RestPat =
|
||||
Attr* '..'
|
||||
|
||||
MacroPat =
|
||||
MacroCall
|
||||
|
||||
ConstBlockPat =
|
||||
'const' BlockExpr
|
||||
16
rust/generate-schema/src/codegen.rs
Normal file
16
rust/generate-schema/src/codegen.rs
Normal file
@@ -0,0 +1,16 @@
|
||||
pub mod grammar;
|
||||
pub fn reformat(x: String) -> String {
|
||||
x
|
||||
}
|
||||
|
||||
pub fn add_preamble(_x: crate::flags::CodegenType, y: String) -> String {
|
||||
y
|
||||
}
|
||||
pub fn ensure_file_contents(
|
||||
_x: crate::flags::CodegenType,
|
||||
path: &std::path::Path,
|
||||
contents: &String,
|
||||
_check: bool,
|
||||
) {
|
||||
std::fs::write(path, contents).expect("Unable to write file");
|
||||
}
|
||||
1007
rust/generate-schema/src/codegen/grammar.rs
Normal file
1007
rust/generate-schema/src/codegen/grammar.rs
Normal file
File diff suppressed because it is too large
Load Diff
244
rust/generate-schema/src/codegen/grammar/ast_src.rs
Normal file
244
rust/generate-schema/src/codegen/grammar/ast_src.rs
Normal file
@@ -0,0 +1,244 @@
|
||||
//! Defines input for code generation process.
|
||||
|
||||
use quote::ToTokens;
|
||||
|
||||
use crate::codegen::grammar::to_upper_snake_case;
|
||||
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
pub(crate) struct KindsSrc {
|
||||
pub(crate) punct: &'static [(&'static str, &'static str)],
|
||||
pub(crate) keywords: &'static [&'static str],
|
||||
pub(crate) contextual_keywords: &'static [&'static str],
|
||||
pub(crate) literals: &'static [&'static str],
|
||||
pub(crate) tokens: &'static [&'static str],
|
||||
pub(crate) nodes: &'static [&'static str],
|
||||
pub(crate) edition_dependent_keywords: &'static [(&'static str, Edition)],
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
|
||||
pub(super) enum Edition {
|
||||
Edition2015,
|
||||
Edition2018,
|
||||
Edition2021,
|
||||
Edition2024,
|
||||
}
|
||||
|
||||
impl ToTokens for Edition {
|
||||
fn to_tokens(&self, tokens: &mut proc_macro2::TokenStream) {
|
||||
match self {
|
||||
Edition::Edition2015 => {
|
||||
tokens.extend(quote::quote! { Edition::Edition2015 });
|
||||
}
|
||||
Edition::Edition2018 => {
|
||||
tokens.extend(quote::quote! { Edition::Edition2018 });
|
||||
}
|
||||
Edition::Edition2021 => {
|
||||
tokens.extend(quote::quote! { Edition::Edition2021 });
|
||||
}
|
||||
Edition::Edition2024 => {
|
||||
tokens.extend(quote::quote! { Edition::Edition2024 });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// The punctuations of the language.
|
||||
const PUNCT: &[(&str, &str)] = &[
|
||||
// KEEP THE DOLLAR AT THE TOP ITS SPECIAL
|
||||
("$", "DOLLAR"),
|
||||
(";", "SEMICOLON"),
|
||||
(",", "COMMA"),
|
||||
("(", "L_PAREN"),
|
||||
(")", "R_PAREN"),
|
||||
("{", "L_CURLY"),
|
||||
("}", "R_CURLY"),
|
||||
("[", "L_BRACK"),
|
||||
("]", "R_BRACK"),
|
||||
("<", "L_ANGLE"),
|
||||
(">", "R_ANGLE"),
|
||||
("@", "AT"),
|
||||
("#", "POUND"),
|
||||
("~", "TILDE"),
|
||||
("?", "QUESTION"),
|
||||
("&", "AMP"),
|
||||
("|", "PIPE"),
|
||||
("+", "PLUS"),
|
||||
("*", "STAR"),
|
||||
("/", "SLASH"),
|
||||
("^", "CARET"),
|
||||
("%", "PERCENT"),
|
||||
("_", "UNDERSCORE"),
|
||||
(".", "DOT"),
|
||||
("..", "DOT2"),
|
||||
("...", "DOT3"),
|
||||
("..=", "DOT2EQ"),
|
||||
(":", "COLON"),
|
||||
("::", "COLON2"),
|
||||
("=", "EQ"),
|
||||
("==", "EQ2"),
|
||||
("=>", "FAT_ARROW"),
|
||||
("!", "BANG"),
|
||||
("!=", "NEQ"),
|
||||
("-", "MINUS"),
|
||||
("->", "THIN_ARROW"),
|
||||
("<=", "LTEQ"),
|
||||
(">=", "GTEQ"),
|
||||
("+=", "PLUSEQ"),
|
||||
("-=", "MINUSEQ"),
|
||||
("|=", "PIPEEQ"),
|
||||
("&=", "AMPEQ"),
|
||||
("^=", "CARETEQ"),
|
||||
("/=", "SLASHEQ"),
|
||||
("*=", "STAREQ"),
|
||||
("%=", "PERCENTEQ"),
|
||||
("&&", "AMP2"),
|
||||
("||", "PIPE2"),
|
||||
("<<", "SHL"),
|
||||
(">>", "SHR"),
|
||||
("<<=", "SHLEQ"),
|
||||
(">>=", "SHREQ"),
|
||||
];
|
||||
const TOKENS: &[&str] = &["ERROR", "WHITESPACE", "NEWLINE", "COMMENT"];
|
||||
// &["ERROR", "IDENT", "WHITESPACE", "LIFETIME_IDENT", "COMMENT", "SHEBANG"],;
|
||||
|
||||
const EOF: &str = "EOF";
|
||||
|
||||
const RESERVED: &[&str] = &[
|
||||
"abstract", "become", "box", "do", "final", "macro", "override", "priv", "typeof", "unsized",
|
||||
"virtual", "yield",
|
||||
];
|
||||
// keywords that are keywords only in specific parse contexts
|
||||
#[doc(alias = "WEAK_KEYWORDS")]
|
||||
const CONTEXTUAL_KEYWORDS: &[&str] =
|
||||
&["macro_rules", "union", "default", "raw", "dyn", "auto", "yeet"];
|
||||
// keywords we use for special macro expansions
|
||||
const CONTEXTUAL_BUILTIN_KEYWORDS: &[&str] = &["builtin", "offset_of", "format_args", "asm"];
|
||||
// keywords that are keywords depending on the edition
|
||||
const EDITION_DEPENDENT_KEYWORDS: &[(&str, Edition)] = &[
|
||||
("try", Edition::Edition2018),
|
||||
("dyn", Edition::Edition2018),
|
||||
("async", Edition::Edition2018),
|
||||
("await", Edition::Edition2018),
|
||||
("gen", Edition::Edition2024),
|
||||
];
|
||||
|
||||
pub(crate) fn generate_kind_src(
|
||||
nodes: &[AstNodeSrc],
|
||||
enums: &[AstEnumSrc],
|
||||
grammar: &ungrammar::Grammar,
|
||||
) -> KindsSrc {
|
||||
let mut contextual_keywords: Vec<&_> =
|
||||
CONTEXTUAL_KEYWORDS.iter().chain(CONTEXTUAL_BUILTIN_KEYWORDS).copied().collect();
|
||||
|
||||
let mut keywords: Vec<&_> = Vec::new();
|
||||
let mut tokens: Vec<&_> = TOKENS.to_vec();
|
||||
let mut literals: Vec<&_> = Vec::new();
|
||||
let mut used_puncts = vec![false; PUNCT.len()];
|
||||
// Mark $ as used
|
||||
used_puncts[0] = true;
|
||||
grammar.tokens().for_each(|token| {
|
||||
let name = &*grammar[token].name;
|
||||
if name == EOF {
|
||||
return;
|
||||
}
|
||||
match name.split_at(1) {
|
||||
("@", lit) if !lit.is_empty() => {
|
||||
literals.push(String::leak(to_upper_snake_case(lit)));
|
||||
}
|
||||
("#", token) if !token.is_empty() => {
|
||||
tokens.push(String::leak(to_upper_snake_case(token)));
|
||||
}
|
||||
_ if contextual_keywords.contains(&name) => {}
|
||||
_ if name.chars().all(char::is_alphabetic) => {
|
||||
keywords.push(String::leak(name.to_owned()));
|
||||
}
|
||||
_ => {
|
||||
let idx = PUNCT
|
||||
.iter()
|
||||
.position(|(punct, _)| punct == &name)
|
||||
.unwrap_or_else(|| panic!("Grammar references unknown punctuation {name:?}"));
|
||||
used_puncts[idx] = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
PUNCT.iter().zip(used_puncts).filter(|(_, used)| !used).for_each(|((punct, _), _)| {
|
||||
panic!("Punctuation {punct:?} is not used in grammar");
|
||||
});
|
||||
keywords.extend(RESERVED.iter().copied());
|
||||
keywords.sort();
|
||||
keywords.dedup();
|
||||
contextual_keywords.sort();
|
||||
contextual_keywords.dedup();
|
||||
let mut edition_dependent_keywords: Vec<(&_, _)> = EDITION_DEPENDENT_KEYWORDS.to_vec();
|
||||
edition_dependent_keywords.sort();
|
||||
edition_dependent_keywords.dedup();
|
||||
|
||||
keywords.retain(|&it| !contextual_keywords.contains(&it));
|
||||
keywords.retain(|&it| !edition_dependent_keywords.iter().any(|&(kw, _)| kw == it));
|
||||
|
||||
// we leak things here for simplicity, that way we don't have to deal with lifetimes
|
||||
// The execution is a one shot job so thats fine
|
||||
let nodes = nodes
|
||||
.iter()
|
||||
.map(|it| &it.name)
|
||||
.chain(enums.iter().map(|it| &it.name))
|
||||
.map(|it| to_upper_snake_case(it))
|
||||
.map(String::leak)
|
||||
.map(|it| &*it)
|
||||
.collect();
|
||||
let nodes = Vec::leak(nodes);
|
||||
nodes.sort();
|
||||
let keywords = Vec::leak(keywords);
|
||||
let contextual_keywords = Vec::leak(contextual_keywords);
|
||||
let edition_dependent_keywords = Vec::leak(edition_dependent_keywords);
|
||||
let literals = Vec::leak(literals);
|
||||
literals.sort();
|
||||
let tokens = Vec::leak(tokens);
|
||||
tokens.sort();
|
||||
|
||||
KindsSrc {
|
||||
punct: PUNCT,
|
||||
nodes,
|
||||
keywords,
|
||||
contextual_keywords,
|
||||
edition_dependent_keywords,
|
||||
literals,
|
||||
tokens,
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Default, Debug)]
|
||||
pub(crate) struct AstSrc {
|
||||
pub(crate) tokens: Vec<String>,
|
||||
pub(crate) nodes: Vec<AstNodeSrc>,
|
||||
pub(crate) enums: Vec<AstEnumSrc>,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub(crate) struct AstNodeSrc {
|
||||
pub(crate) doc: Vec<String>,
|
||||
pub(crate) name: String,
|
||||
pub(crate) traits: Vec<String>,
|
||||
pub(crate) fields: Vec<Field>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Eq, PartialEq)]
|
||||
pub(crate) enum Field {
|
||||
Token(String),
|
||||
Node { name: String, ty: String, cardinality: Cardinality },
|
||||
}
|
||||
|
||||
#[derive(Debug, Eq, PartialEq)]
|
||||
pub(crate) enum Cardinality {
|
||||
Optional,
|
||||
Many,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub(crate) struct AstEnumSrc {
|
||||
pub(crate) doc: Vec<String>,
|
||||
pub(crate) name: String,
|
||||
pub(crate) traits: Vec<String>,
|
||||
pub(crate) variants: Vec<String>,
|
||||
}
|
||||
11
rust/generate-schema/src/flags.rs
Normal file
11
rust/generate-schema/src/flags.rs
Normal file
@@ -0,0 +1,11 @@
|
||||
use std::fmt::Display;
|
||||
|
||||
pub enum CodegenType {
|
||||
Grammar,
|
||||
}
|
||||
|
||||
impl Display for CodegenType {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
write!(f, "Grammar")
|
||||
}
|
||||
}
|
||||
503
rust/generate-schema/src/main.rs
Normal file
503
rust/generate-schema/src/main.rs
Normal file
@@ -0,0 +1,503 @@
|
||||
use std::{fs, path::PathBuf};
|
||||
|
||||
pub mod codegen;
|
||||
mod flags;
|
||||
use codegen::grammar::ast_src::{AstNodeSrc, AstSrc};
|
||||
use std::collections::{BTreeMap, BTreeSet};
|
||||
use std::env;
|
||||
use ungrammar::Grammar;
|
||||
|
||||
fn project_root() -> PathBuf {
|
||||
let dir =
|
||||
env::var("CARGO_MANIFEST_DIR").unwrap_or_else(|_| env!("CARGO_MANIFEST_DIR").to_owned());
|
||||
PathBuf::from(dir).parent().unwrap().to_owned()
|
||||
}
|
||||
|
||||
fn class_name(type_name: &String) -> String {
|
||||
match type_name.as_str() {
|
||||
"BinExpr" => "BinaryExpr".to_owned(),
|
||||
"ElseBranch" => "Expr".to_owned(),
|
||||
"Fn" => "Function".to_owned(),
|
||||
"Literal" => "LiteralExpr".to_owned(),
|
||||
"Type" => "TypeRef".to_owned(),
|
||||
_ => type_name.to_owned(),
|
||||
}
|
||||
}
|
||||
|
||||
fn property_name(type_name: &String, field_name: &String) -> String {
|
||||
match (type_name.as_str(), field_name.as_str()) {
|
||||
("Path", "segment") => "part".to_owned(),
|
||||
(_, "then_branch") => "then".to_owned(),
|
||||
(_, "else_branch") => "else_".to_owned(),
|
||||
_ => field_name.to_owned(),
|
||||
}
|
||||
}
|
||||
|
||||
fn to_lower_snake_case(s: &str) -> String {
|
||||
let mut buf = String::with_capacity(s.len());
|
||||
let mut prev = false;
|
||||
for c in s.chars() {
|
||||
if c.is_ascii_uppercase() && prev {
|
||||
buf.push('_')
|
||||
}
|
||||
prev = true;
|
||||
|
||||
buf.push(c.to_ascii_lowercase());
|
||||
}
|
||||
buf
|
||||
}
|
||||
|
||||
fn print_schema(grammar: &AstSrc, super_types: BTreeMap<String, BTreeSet<String>>) {
|
||||
for node in &grammar.enums {
|
||||
let super_classses = if let Some(cls) = super_types.get(&node.name) {
|
||||
let super_classes: Vec<String> = cls.iter().map(|x| class_name(x)).collect();
|
||||
super_classes.join(",")
|
||||
} else {
|
||||
"AstNode".to_owned()
|
||||
};
|
||||
println!("class {}({}):", class_name(&node.name), super_classses);
|
||||
println!(" pass");
|
||||
println!("");
|
||||
}
|
||||
for node in &grammar.nodes {
|
||||
let super_classses = if let Some(cls) = super_types.get(&node.name) {
|
||||
let super_classes: Vec<String> = cls.iter().map(|x| class_name(x)).collect();
|
||||
super_classes.join(",")
|
||||
} else {
|
||||
"AstNode".to_owned()
|
||||
};
|
||||
println!("class {}({}):", class_name(&node.name), super_classses);
|
||||
let mut empty = true;
|
||||
for field in get_fields(node) {
|
||||
if field.tp == "SyntaxToken" {
|
||||
continue;
|
||||
}
|
||||
|
||||
empty = false;
|
||||
if field.tp == "string" {
|
||||
println!(
|
||||
" {}: optional[string]",
|
||||
property_name(&node.name, &field.name),
|
||||
);
|
||||
} else {
|
||||
let list = field.is_many;
|
||||
let (o, c) = if list {
|
||||
("list[", "]")
|
||||
} else {
|
||||
("optional[", "]")
|
||||
};
|
||||
println!(
|
||||
" {}: {}\"{}\"{} | child",
|
||||
property_name(&node.name, &field.name),
|
||||
o,
|
||||
class_name(&field.tp),
|
||||
c
|
||||
);
|
||||
};
|
||||
}
|
||||
if empty {
|
||||
println!(" pass");
|
||||
}
|
||||
println!("");
|
||||
}
|
||||
}
|
||||
|
||||
struct FieldInfo {
|
||||
name: String,
|
||||
tp: String,
|
||||
is_many: bool,
|
||||
}
|
||||
fn get_fields(node: &AstNodeSrc) -> Vec<FieldInfo> {
|
||||
let mut result = Vec::new();
|
||||
|
||||
match node.name.as_str() {
|
||||
"Name" | "NameRef" | "Lifetime" => {
|
||||
result.push(FieldInfo {
|
||||
name: "text".to_string(),
|
||||
tp: "string".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"Abi" => {
|
||||
result.push(FieldInfo {
|
||||
name: "abi_string".to_string(),
|
||||
tp: "string".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"Literal" => {
|
||||
result.push(FieldInfo {
|
||||
name: "text_value".to_string(),
|
||||
tp: "string".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"PrefixExpr" => {
|
||||
result.push(FieldInfo {
|
||||
name: "operator_name".to_string(),
|
||||
tp: "string".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"BinExpr" => {
|
||||
result.push(FieldInfo {
|
||||
name: "lhs".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "rhs".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "operator_name".to_string(),
|
||||
tp: "string".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"IfExpr" => {
|
||||
result.push(FieldInfo {
|
||||
name: "then_branch".to_string(),
|
||||
tp: "BlockExpr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "else_branch".to_string(),
|
||||
tp: "ElseBranch".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "condition".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"RangeExpr" => {
|
||||
result.push(FieldInfo {
|
||||
name: "start".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "end".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "operator_name".to_string(),
|
||||
tp: "string".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"RangePat" => {
|
||||
result.push(FieldInfo {
|
||||
name: "start".to_string(),
|
||||
tp: "Pat".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "end".to_string(),
|
||||
tp: "Pat".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "operator_name".to_string(),
|
||||
tp: "string".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"IndexExpr" => {
|
||||
result.push(FieldInfo {
|
||||
name: "index".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "base".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"Impl" => {
|
||||
result.push(FieldInfo {
|
||||
name: "trait_".to_string(),
|
||||
tp: "Type".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "self_ty".to_string(),
|
||||
tp: "Type".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"ForExpr" => {
|
||||
result.push(FieldInfo {
|
||||
name: "iterable".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"WhileExpr" => {
|
||||
result.push(FieldInfo {
|
||||
name: "condition".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"MatchGuard" => {
|
||||
result.push(FieldInfo {
|
||||
name: "condition".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"MacroDef" => {
|
||||
result.push(FieldInfo {
|
||||
name: "args".to_string(),
|
||||
tp: "TokenTree".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "body".to_string(),
|
||||
tp: "TokenTree".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"FormatArgsExpr" => {
|
||||
result.push(FieldInfo {
|
||||
name: "args".to_string(),
|
||||
tp: "FormatArgsArg".to_string(),
|
||||
is_many: true,
|
||||
});
|
||||
}
|
||||
"ArgList" => {
|
||||
result.push(FieldInfo {
|
||||
name: "args".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: true,
|
||||
});
|
||||
}
|
||||
"Fn" => {
|
||||
result.push(FieldInfo {
|
||||
name: "body".to_string(),
|
||||
tp: "BlockExpr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"Const" => {
|
||||
result.push(FieldInfo {
|
||||
name: "body".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"Static" => {
|
||||
result.push(FieldInfo {
|
||||
name: "body".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
"ClosureExpr" => {
|
||||
result.push(FieldInfo {
|
||||
name: "body".to_string(),
|
||||
tp: "Expr".to_string(),
|
||||
is_many: false,
|
||||
});
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
||||
for field in &node.fields {
|
||||
// The ArrayExpr type also has an 'exprs' field
|
||||
if node.name == "ArrayExpr" && field.method_name() == "expr" {
|
||||
continue;
|
||||
}
|
||||
result.push(FieldInfo {
|
||||
name: field.method_name(),
|
||||
tp: field.ty().to_string(),
|
||||
is_many: field.is_many(),
|
||||
});
|
||||
}
|
||||
for trait_ in &node.traits {
|
||||
match trait_.as_str() {
|
||||
"HasAttrs" => result.push(FieldInfo {
|
||||
name: "attrs".to_owned(),
|
||||
tp: "Attr".to_owned(),
|
||||
is_many: true,
|
||||
}),
|
||||
"HasName" => result.push(FieldInfo {
|
||||
name: "name".to_owned(),
|
||||
tp: "Name".to_owned(),
|
||||
is_many: false,
|
||||
}),
|
||||
"HasVisibility" => result.push(FieldInfo {
|
||||
name: "visibility".to_owned(),
|
||||
tp: "Visibility".to_owned(),
|
||||
is_many: false,
|
||||
}),
|
||||
"HasGenericParams" => {
|
||||
result.push(FieldInfo {
|
||||
name: "generic_param_list".to_owned(),
|
||||
tp: "GenericParamList".to_owned(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "where_clause".to_owned(),
|
||||
tp: "WhereClause".to_owned(),
|
||||
is_many: false,
|
||||
})
|
||||
}
|
||||
"HasGenericArgs" => result.push(FieldInfo {
|
||||
name: "generic_arg_list".to_owned(),
|
||||
tp: "GenericArgList".to_owned(),
|
||||
is_many: false,
|
||||
}),
|
||||
"HasTypeBounds" => result.push(FieldInfo {
|
||||
name: "type_bound_list".to_owned(),
|
||||
tp: "TypeBoundList".to_owned(),
|
||||
is_many: false,
|
||||
}),
|
||||
"HasModuleItem" => result.push(FieldInfo {
|
||||
name: "items".to_owned(),
|
||||
tp: "Item".to_owned(),
|
||||
is_many: true,
|
||||
}),
|
||||
"HasLoopBody" => {
|
||||
result.push(FieldInfo {
|
||||
name: "label".to_owned(),
|
||||
tp: "Label".to_owned(),
|
||||
is_many: false,
|
||||
});
|
||||
result.push(FieldInfo {
|
||||
name: "loop_body".to_owned(),
|
||||
tp: "BlockExpr".to_owned(),
|
||||
is_many: false,
|
||||
})
|
||||
}
|
||||
"HasArgList" => result.push(FieldInfo {
|
||||
name: "arg_list".to_owned(),
|
||||
tp: "ArgList".to_owned(),
|
||||
is_many: false,
|
||||
}),
|
||||
"HasDocComments" => {}
|
||||
|
||||
_ => panic!("Unknown trait {}", trait_),
|
||||
};
|
||||
}
|
||||
result.sort_by(|x, y| x.name.cmp(&y.name));
|
||||
result
|
||||
}
|
||||
|
||||
fn print_extractor(grammar: &AstSrc) {
|
||||
for node in &grammar.enums {
|
||||
let type_name = &node.name;
|
||||
let class_name = class_name(&node.name);
|
||||
|
||||
println!(
|
||||
" fn emit_{}(&mut self, node: ast::{}) -> Label<generated::{}> {{",
|
||||
to_lower_snake_case(type_name),
|
||||
type_name,
|
||||
class_name
|
||||
);
|
||||
println!(" match node {{");
|
||||
for variant in &node.variants {
|
||||
println!(
|
||||
" ast::{}::{}(inner) => self.emit_{}(inner).into(),",
|
||||
type_name,
|
||||
variant,
|
||||
to_lower_snake_case(variant)
|
||||
);
|
||||
}
|
||||
println!(" }}");
|
||||
println!(" }}\n");
|
||||
}
|
||||
|
||||
for node in &grammar.nodes {
|
||||
let type_name = &node.name;
|
||||
let class_name = class_name(&node.name);
|
||||
|
||||
println!(
|
||||
" fn emit_{}(&mut self, node: ast::{}) -> Label<generated::{}> {{",
|
||||
to_lower_snake_case(type_name),
|
||||
type_name,
|
||||
class_name
|
||||
);
|
||||
for field in get_fields(&node) {
|
||||
if &field.tp == "SyntaxToken" {
|
||||
continue;
|
||||
}
|
||||
|
||||
let type_name = &field.tp;
|
||||
let struct_field_name = &field.name;
|
||||
let class_field_name = property_name(&node.name, &field.name);
|
||||
if field.tp == "string" {
|
||||
println!(" let {} = node.try_get_text();", class_field_name,);
|
||||
} else if field.is_many {
|
||||
println!(
|
||||
" let {} = node.{}().map(|x| self.emit_{}(x)).collect();",
|
||||
class_field_name,
|
||||
struct_field_name,
|
||||
to_lower_snake_case(type_name)
|
||||
);
|
||||
} else {
|
||||
println!(
|
||||
" let {} = node.{}().map(|x| self.emit_{}(x));",
|
||||
class_field_name,
|
||||
struct_field_name,
|
||||
to_lower_snake_case(type_name)
|
||||
);
|
||||
}
|
||||
}
|
||||
println!(
|
||||
" let label = self.trap.emit(generated::{} {{",
|
||||
class_name
|
||||
);
|
||||
println!(" id: TrapId::Star,");
|
||||
for field in get_fields(&node) {
|
||||
if field.tp == "SyntaxToken" {
|
||||
continue;
|
||||
}
|
||||
|
||||
let class_field_name: String = property_name(&node.name, &field.name);
|
||||
println!(" {},", class_field_name);
|
||||
}
|
||||
println!(" }});");
|
||||
println!(" self.emit_location(label, node);");
|
||||
println!(" label");
|
||||
|
||||
println!(" }}\n");
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let grammar: Grammar = fs::read_to_string(project_root().join("generate-schema/rust.ungram"))
|
||||
.unwrap()
|
||||
.parse()
|
||||
.unwrap();
|
||||
let mut grammar = codegen::grammar::lower(&grammar);
|
||||
grammar
|
||||
.nodes
|
||||
.retain(|x| x.name != "MacroStmts" && x.name != "MacroItems");
|
||||
|
||||
grammar.enums.retain(|x| x.name != "Adt");
|
||||
|
||||
let mut super_types: BTreeMap<String, BTreeSet<String>> = BTreeMap::new();
|
||||
for node in &grammar.enums {
|
||||
for variant in &node.variants {
|
||||
let set = super_types
|
||||
.entry(variant.to_owned())
|
||||
.or_insert_with(|| BTreeSet::new());
|
||||
set.insert(node.name.to_owned());
|
||||
}
|
||||
}
|
||||
// sort things while ensuring super clases are defined before they are used
|
||||
grammar.enums.sort_by(|x, y| {
|
||||
let super_class_x = super_types.get(&x.name).into_iter().flatten().max();
|
||||
let super_class_y = super_types.get(&y.name).into_iter().flatten().max();
|
||||
super_class_x.cmp(&super_class_y).then(x.name.cmp(&y.name))
|
||||
});
|
||||
//print_schema(&grammar, super_types);
|
||||
print_extractor(&grammar);
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
src/directory_module/mod.rs
|
||||
src/directory_module/nested_module.rs
|
||||
src/directory_module/not_loaded.rs
|
||||
src/file_module.rs
|
||||
src/main.rs
|
||||
|
||||
1016
rust/ql/.generated.list
generated
1016
rust/ql/.generated.list
generated
File diff suppressed because it is too large
Load Diff
662
rust/ql/.gitattributes
generated
vendored
662
rust/ql/.gitattributes
generated
vendored
@@ -1,97 +1,186 @@
|
||||
/.generated.list linguist-generated
|
||||
/.gitattributes linguist-generated
|
||||
/lib/codeql/rust/elements/Abi.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ArgList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ArrayExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ArrayType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/AsmExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/AssocItem.qll linguist-generated
|
||||
/lib/codeql/rust/elements/AssocItemList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/AssocTypeArg.qll linguist-generated
|
||||
/lib/codeql/rust/elements/AstNode.qll linguist-generated
|
||||
/lib/codeql/rust/elements/AsyncBlockExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Attr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/AwaitExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/BecomeExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/BinaryExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/BlockExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/BlockExprBase.qll linguist-generated
|
||||
/lib/codeql/rust/elements/BoxExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/BoxPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/BreakExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/CallExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/CastExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ClosureBinder.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ClosureExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Const.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ConstArg.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ConstBlockPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ConstExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ConstParam.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ContinueExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Declaration.qll linguist-generated
|
||||
/lib/codeql/rust/elements/DynTraitType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Element.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ElementListExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Enum.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Expr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ExprStmt.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ExternBlock.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ExternCrate.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ExternItem.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ExternItemList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/FieldExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/FieldList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/FnPtrType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ForExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ForType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/FormatArgsArg.qll linguist-generated
|
||||
/lib/codeql/rust/elements/FormatArgsExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Function.qll linguist-generated
|
||||
/lib/codeql/rust/elements/GenericArg.qll linguist-generated
|
||||
/lib/codeql/rust/elements/GenericArgList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/GenericParam.qll linguist-generated
|
||||
/lib/codeql/rust/elements/GenericParamList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/IdentPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/IfExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Impl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ImplTraitType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/IndexExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ItemStmt.qll linguist-generated
|
||||
/lib/codeql/rust/elements/InferType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Item.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ItemList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Label.qll linguist-generated
|
||||
/lib/codeql/rust/elements/LetElse.qll linguist-generated
|
||||
/lib/codeql/rust/elements/LetExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/LetStmt.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Lifetime.qll linguist-generated
|
||||
/lib/codeql/rust/elements/LifetimeArg.qll linguist-generated
|
||||
/lib/codeql/rust/elements/LifetimeParam.qll linguist-generated
|
||||
/lib/codeql/rust/elements/LiteralExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/LiteralPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Locatable.qll linguist-generated
|
||||
/lib/codeql/rust/elements/LoopExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MacroCall.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MacroDef.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MacroExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MacroPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MacroRules.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MacroType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MatchArm.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MatchArmList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MatchExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MatchGuard.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Meta.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MethodCallExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Missing.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MissingExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/MissingPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Module.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Name.qll linguist-generated
|
||||
/lib/codeql/rust/elements/NameRef.qll linguist-generated
|
||||
/lib/codeql/rust/elements/NeverType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/OffsetOfExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/OrPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Param.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ParamList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ParenExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ParenPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ParenType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Pat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Path.qll linguist-generated
|
||||
/lib/codeql/rust/elements/PathExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/PathPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/PathSegment.qll linguist-generated
|
||||
/lib/codeql/rust/elements/PathType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/PrefixExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/PtrType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RangeExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RangePat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RecordExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RecordExprField.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RecordExprFieldList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RecordField.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RecordFieldList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RecordPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RecordPatField.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RecordPatFieldList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RefExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RefPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RepeatExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RefType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Rename.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RestPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/RetType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ReturnExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/ReturnTypeSyntax.qll linguist-generated
|
||||
/lib/codeql/rust/elements/SelfParam.qll linguist-generated
|
||||
/lib/codeql/rust/elements/SlicePat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/SliceType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/SourceFile.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Static.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Stmt.qll linguist-generated
|
||||
/lib/codeql/rust/elements/StmtList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Struct.qll linguist-generated
|
||||
/lib/codeql/rust/elements/TokenTree.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Trait.qll linguist-generated
|
||||
/lib/codeql/rust/elements/TraitAlias.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
|
||||
/lib/codeql/rust/elements/TupleFieldList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/TuplePat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/TupleStructPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/TupleType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/TypeAlias.qll linguist-generated
|
||||
/lib/codeql/rust/elements/TypeArg.qll linguist-generated
|
||||
/lib/codeql/rust/elements/TypeBound.qll linguist-generated
|
||||
/lib/codeql/rust/elements/TypeBoundList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/TypeParam.qll linguist-generated
|
||||
/lib/codeql/rust/elements/TypeRef.qll linguist-generated
|
||||
/lib/codeql/rust/elements/UnderscoreExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Unextracted.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Unimplemented.qll linguist-generated
|
||||
/lib/codeql/rust/elements/UnimplementedDeclaration.qll linguist-generated
|
||||
/lib/codeql/rust/elements/UnsafeBlockExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Union.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Use.qll linguist-generated
|
||||
/lib/codeql/rust/elements/UseTree.qll linguist-generated
|
||||
/lib/codeql/rust/elements/UseTreeList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Variant.qll linguist-generated
|
||||
/lib/codeql/rust/elements/VariantList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/Visibility.qll linguist-generated
|
||||
/lib/codeql/rust/elements/WhereClause.qll linguist-generated
|
||||
/lib/codeql/rust/elements/WherePred.qll linguist-generated
|
||||
/lib/codeql/rust/elements/WhileExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/WildcardPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/YeetExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/YieldExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AbiConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AbiImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ArgListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ArgListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ArrayExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ArrayExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ArrayTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ArrayTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AsmExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AsmExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AssocItemImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AssocItemListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AssocItemListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AssocTypeArgConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AssocTypeArgImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AstNodeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AsyncBlockExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AsyncBlockExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AttrConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AttrImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AwaitExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AwaitExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/BecomeExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/BecomeExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/BinaryExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/BinaryExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/BlockExprBaseImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/BlockExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/BlockExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/BoxExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/BoxExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/BoxPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/BoxPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/BreakExprConstructor.qll linguist-generated
|
||||
@@ -100,62 +189,137 @@
|
||||
/lib/codeql/rust/elements/internal/CallExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/CastExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/CastExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ClosureBinderConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ClosureBinderImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ClosureExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ClosureExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ConstArgConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ConstArgImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ConstBlockPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ConstBlockPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ConstExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ConstExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ConstConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ConstImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ConstParamConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ConstParamImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ContinueExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ContinueExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/DeclarationImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ElementListExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ElementListExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/DynTraitTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/DynTraitTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/EnumConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/EnumImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ExprStmtConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ExprStmtImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ExternBlockConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ExternBlockImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ExternCrateConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ExternCrateImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ExternItemImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ExternItemListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ExternItemListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/FieldExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/FieldExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/FieldListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/FnPtrTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/FnPtrTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ForExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ForExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ForTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ForTypeImpl.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/FormatArgsExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/FormatArgsExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/FunctionConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/GenericArgImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/GenericArgListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/GenericArgListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/GenericParamImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/GenericParamListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/GenericParamListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/IdentPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/IdentPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/IfExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/IfExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ImplConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ImplImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ImplTraitTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ImplTraitTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/IndexExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/IndexExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ItemStmtConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ItemStmtImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/InferTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/InferTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ItemImpl.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/LabelConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LabelImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LetElseConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LetElseImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LetExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LetExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LetStmtConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LetStmtImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LifetimeArgConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LifetimeArgImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LifetimeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LifetimeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LifetimeParamConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LifetimeParamImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LiteralExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LiteralExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LiteralPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LiteralPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LoopExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/LoopExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MacroCallConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MacroCallImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MacroDefConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MacroDefImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MacroExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MacroExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MacroPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MacroPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MacroRulesConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MacroRulesImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MacroTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MacroTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MatchArmConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MatchArmImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MatchArmListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MatchArmListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MatchExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MatchExprImpl.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/MethodCallExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MissingExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MissingExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MissingConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MissingImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MissingPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/MissingPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ModuleConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ModuleImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/NameConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/NameImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/NameRefConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/NameRefImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/NeverTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/NeverTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/OffsetOfExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/OffsetOfExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/OrPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/OrPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ParamConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ParamImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ParamListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ParamListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ParenExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ParenExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ParenPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ParenPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ParenTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ParenTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PathConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PathExprConstructor.qll linguist-generated
|
||||
@@ -163,8 +327,14 @@
|
||||
/lib/codeql/rust/elements/internal/PathImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PathPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PathPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PathSegmentConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PathSegmentImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PathTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PathTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PrefixExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PrefixExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PtrTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/PtrTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RangeExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RangeExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RangePatConstructor.qll linguist-generated
|
||||
@@ -172,233 +342,409 @@
|
||||
/lib/codeql/rust/elements/internal/RecordExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordExprFieldConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordExprFieldImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordExprFieldListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordExprFieldListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordFieldConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordFieldImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordFieldListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordFieldListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordPatFieldConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordPatFieldImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordPatFieldListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordPatFieldListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RefExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RefExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RefPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RefPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RepeatExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RepeatExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RefTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RefTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RenameConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RenameImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RestPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RestPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RetTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RetTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ReturnExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ReturnExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ReturnTypeSyntaxConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ReturnTypeSyntaxImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/SelfParamConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/SelfParamImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/SlicePatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/SlicePatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/SliceTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/SliceTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/SourceFileConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/SourceFileImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/StaticConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/StaticImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/StmtImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/StmtListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/StmtListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/StructConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/StructImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/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/TraitConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TraitImpl.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
|
||||
/lib/codeql/rust/elements/internal/TupleExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleFieldConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleFieldImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleFieldListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleFieldListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TuplePatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TuplePatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleStructPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleStructPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TypeRefConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleTypeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleTypeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TypeAliasConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TypeAliasImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TypeArgConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TypeArgImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TypeBoundConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TypeBoundImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TypeBoundListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TypeBoundListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TypeParamConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TypeParamImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TypeRefImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UnderscoreExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UnderscoreExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UnextractedImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UnimplementedDeclarationConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UnimplementedDeclarationImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UnimplementedConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UnimplementedImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UnsafeBlockExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UnsafeBlockExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UnionConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UnionImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UseConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UseImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UseTreeConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UseTreeImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UseTreeListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/UseTreeListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/VariantConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/VariantImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/VariantListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/VariantListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/VisibilityConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/VisibilityImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/WhereClauseConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/WhereClauseImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/WherePredConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/WherePredImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/WhileExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/WhileExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/WildcardPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/WildcardPatImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/YeetExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/YeetExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/YieldExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/YieldExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Abi.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ArgList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ArrayExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ArrayType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/AsmExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/AssocItem.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/AssocItemList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/AssocTypeArg.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/AstNode.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/AsyncBlockExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Attr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/AwaitExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/BecomeExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/BinaryExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/BlockExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/BlockExprBase.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/BoxExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/BoxPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/BreakExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/CallExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/CastExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ClosureBinder.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ClosureExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Const.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ConstArg.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ConstBlockPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ConstExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ConstParam.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ContinueExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Declaration.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/DynTraitType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Element.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ElementListExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Enum.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Expr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ExprStmt.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ExternBlock.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ExternCrate.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ExternItem.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ExternItemList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/FieldExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/FieldList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/FnPtrType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ForExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ForType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/FormatArgsArg.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/FormatArgsExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Function.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/GenericArg.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/GenericArgList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/GenericParam.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/GenericParamList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/IdentPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/IfExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Impl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ImplTraitType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/IndexExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ItemStmt.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/InferType.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/Label.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/LetElse.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/LetExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/LetStmt.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Lifetime.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/LifetimeArg.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/LifetimeParam.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/LiteralExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/LiteralPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Locatable.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/LoopExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MacroCall.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MacroDef.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MacroExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MacroPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MacroRules.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MacroType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MatchArm.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MatchArmList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MatchExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MatchGuard.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Meta.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MethodCallExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Missing.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MissingExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/MissingPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Module.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Name.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/NameRef.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/NeverType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/OffsetOfExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/OrPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Param.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ParamList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ParenExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ParenPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ParenType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ParentChild.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Pat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Path.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/PathExpr.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/PathType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/PrefixExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/PtrType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RangeExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RangePat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Raw.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RecordExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RecordExprField.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RecordExprFieldList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RecordField.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RecordFieldList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RecordPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RecordPatField.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RecordPatFieldList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RefExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RefPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RepeatExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RefType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Rename.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RestPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/RetType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ReturnExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/ReturnTypeSyntax.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/SelfParam.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/SlicePat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/SliceType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/SourceFile.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Static.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Stmt.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/StmtList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Struct.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Synth.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TokenTree.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/TryExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TupleExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TupleField.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TupleFieldList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TuplePat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TupleStructPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TupleType.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TypeAlias.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TypeArg.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TypeBound.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TypeBoundList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TypeParam.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/TypeRef.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/UnderscoreExpr.qll linguist-generated
|
||||
/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/UnimplementedDeclaration.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/UnsafeBlockExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Union.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Use.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/UseTree.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/UseTreeList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Variant.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/VariantList.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/Visibility.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/WhereClause.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/WherePred.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/WhileExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/WildcardPat.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/YeetExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/generated/YieldExpr.qll linguist-generated
|
||||
/lib/codeql/rust/elements.qll linguist-generated
|
||||
/test/extractor-tests/generated/AsmExpr/AsmExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/AsyncBlockExpr/AsyncBlockExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/AsyncBlockExpr/AsyncBlockExpr_getStatement.ql linguist-generated
|
||||
/test/extractor-tests/generated/AsyncBlockExpr/AsyncBlockExpr_getTail.ql linguist-generated
|
||||
/test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getOp.ql linguist-generated
|
||||
/test/extractor-tests/generated/BlockExpr/BlockExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/BlockExpr/BlockExpr_getLabel.ql linguist-generated
|
||||
/test/extractor-tests/generated/BlockExpr/BlockExpr_getStatement.ql linguist-generated
|
||||
/test/extractor-tests/generated/BlockExpr/BlockExpr_getTail.ql linguist-generated
|
||||
/test/extractor-tests/generated/BoxExpr/BoxExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/BoxPat/BoxPat.ql linguist-generated
|
||||
/test/extractor-tests/generated/BreakExpr/BreakExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/BreakExpr/BreakExpr_getLabel.ql linguist-generated
|
||||
/test/extractor-tests/generated/CallExpr/CallExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql linguist-generated
|
||||
/test/extractor-tests/generated/CastExpr/CastExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getArg.ql linguist-generated
|
||||
/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getArgType.ql linguist-generated
|
||||
/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql linguist-generated
|
||||
/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql linguist-generated
|
||||
/test/extractor-tests/generated/ConstExpr/ConstExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLabel.ql linguist-generated
|
||||
/test/extractor-tests/generated/ElementListExpr/ElementListExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/ElementListExpr/ElementListExpr_getElement.ql linguist-generated
|
||||
/test/extractor-tests/generated/ExprStmt/ExprStmt.ql linguist-generated
|
||||
/test/extractor-tests/generated/FieldExpr/FieldExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/Function/Function.ql linguist-generated
|
||||
/test/extractor-tests/generated/GenericArgList/GenericArgList.ql linguist-generated
|
||||
/test/extractor-tests/generated/IdentPat/IdentPat.ql linguist-generated
|
||||
/test/extractor-tests/generated/IdentPat/IdentPat_getSubpat.ql linguist-generated
|
||||
/test/extractor-tests/generated/IfExpr/IfExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/IfExpr/IfExpr_getElse.ql linguist-generated
|
||||
/test/extractor-tests/generated/IndexExpr/IndexExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/Label/Label.ql linguist-generated
|
||||
/test/extractor-tests/generated/LetExpr/LetExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/LetStmt/LetStmt.ql linguist-generated
|
||||
/test/extractor-tests/generated/LetStmt/LetStmt_getElse.ql linguist-generated
|
||||
/test/extractor-tests/generated/LetStmt/LetStmt_getInitializer.ql linguist-generated
|
||||
/test/extractor-tests/generated/LetStmt/LetStmt_getType.ql linguist-generated
|
||||
/test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/LiteralPat/LiteralPat.ql linguist-generated
|
||||
/test/extractor-tests/generated/LoopExpr/LoopExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.ql linguist-generated
|
||||
/test/extractor-tests/generated/MatchArm/MatchArm.ql linguist-generated
|
||||
/test/extractor-tests/generated/MatchArm/MatchArm_getGuard.ql linguist-generated
|
||||
/test/extractor-tests/generated/MatchExpr/MatchExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/MatchExpr/MatchExpr_getBranch.ql linguist-generated
|
||||
/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql linguist-generated
|
||||
/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgs.ql linguist-generated
|
||||
/test/extractor-tests/generated/MissingExpr/MissingExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/MissingPat/MissingPat.ql linguist-generated
|
||||
/test/extractor-tests/generated/Module/Module.ql linguist-generated
|
||||
/test/extractor-tests/generated/Module/Module_getDeclaration.ql linguist-generated
|
||||
/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.ql linguist-generated
|
||||
/test/extractor-tests/generated/OrPat/OrPat.ql linguist-generated
|
||||
/test/extractor-tests/generated/OrPat/OrPat_getArg.ql linguist-generated
|
||||
/test/extractor-tests/generated/Path/Path.ql linguist-generated
|
||||
/test/extractor-tests/generated/PathExpr/PathExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/PathPat/PathPat.ql linguist-generated
|
||||
/test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/RangeExpr/RangeExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/RangeExpr/RangeExpr_getLhs.ql linguist-generated
|
||||
/test/extractor-tests/generated/RangeExpr/RangeExpr_getRhs.ql linguist-generated
|
||||
/test/extractor-tests/generated/RangePat/RangePat.ql linguist-generated
|
||||
/test/extractor-tests/generated/RangePat/RangePat_getEnd.ql linguist-generated
|
||||
/test/extractor-tests/generated/RangePat/RangePat_getStart.ql linguist-generated
|
||||
/test/extractor-tests/generated/RecordExpr/RecordExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/RecordExpr/RecordExpr_getFld.ql linguist-generated
|
||||
/test/extractor-tests/generated/RecordExpr/RecordExpr_getPath.ql linguist-generated
|
||||
/test/extractor-tests/generated/RecordExpr/RecordExpr_getSpread.ql linguist-generated
|
||||
/test/extractor-tests/generated/RecordExprField/RecordExprField.ql linguist-generated
|
||||
/test/extractor-tests/generated/RecordPat/RecordPat.ql linguist-generated
|
||||
/test/extractor-tests/generated/RecordPat/RecordPat_getFld.ql linguist-generated
|
||||
/test/extractor-tests/generated/RecordPat/RecordPat_getPath.ql linguist-generated
|
||||
/test/extractor-tests/generated/RecordPatField/RecordPatField.ql linguist-generated
|
||||
/test/extractor-tests/generated/RefExpr/RefExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/RefPat/RefPat.ql linguist-generated
|
||||
/test/extractor-tests/generated/RepeatExpr/RepeatExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/SlicePat/SlicePat.ql linguist-generated
|
||||
/test/extractor-tests/generated/SlicePat/SlicePat_getPrefix.ql linguist-generated
|
||||
/test/extractor-tests/generated/SlicePat/SlicePat_getSlice.ql linguist-generated
|
||||
/test/extractor-tests/generated/SlicePat/SlicePat_getSuffix.ql linguist-generated
|
||||
/test/extractor-tests/generated/TupleExpr/TupleExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/TupleExpr/TupleExpr_getExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/TuplePat/TuplePat.ql linguist-generated
|
||||
/test/extractor-tests/generated/TuplePat/TuplePat_getArg.ql linguist-generated
|
||||
/test/extractor-tests/generated/TuplePat/TuplePat_getEllipsisIndex.ql linguist-generated
|
||||
/test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql linguist-generated
|
||||
/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getArg.ql linguist-generated
|
||||
/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getEllipsisIndex.ql linguist-generated
|
||||
/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.ql linguist-generated
|
||||
/test/extractor-tests/generated/TypeRef/TypeRef.ql linguist-generated
|
||||
/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/UnsafeBlockExpr/UnsafeBlockExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/UnsafeBlockExpr/UnsafeBlockExpr_getStatement.ql linguist-generated
|
||||
/test/extractor-tests/generated/UnsafeBlockExpr/UnsafeBlockExpr_getTail.ql linguist-generated
|
||||
/test/extractor-tests/generated/WildcardPat/WildcardPat.ql linguist-generated
|
||||
/test/extractor-tests/generated/YeetExpr/YeetExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/YeetExpr/YeetExpr_getExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/YieldExpr/YieldExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/YieldExpr/YieldExpr_getExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/Abi/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ArgList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ArrayExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ArrayType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/AsmExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/AssocItemList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/AssocTypeArg/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Attr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/AwaitExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/BecomeExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/BinaryExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/BlockExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/BoxPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/BreakExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/CallExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/CastExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ClosureBinder/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ClosureExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Const/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ConstArg/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ConstBlockPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ConstParam/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ContinueExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/DynTraitType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Enum/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ExprStmt/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ExternBlock/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ExternCrate/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ExternItemList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/FieldExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/FnPtrType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ForExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ForType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/FormatArgsArg/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/FormatArgsExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Function/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/GenericArgList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/GenericParamList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/IdentPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/IfExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Impl/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ImplTraitType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/IndexExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/InferType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ItemList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Label/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/LetElse/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/LetExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/LetStmt/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Lifetime/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/LifetimeArg/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/LifetimeParam/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/LiteralExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/LiteralPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/LoopExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/MacroCall/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/MacroDef/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/MacroExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/MacroPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/MacroRules/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/MacroType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/MatchArm/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/MatchArmList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/MatchExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/MatchGuard/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Meta/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/MethodCallExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Module/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Name/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/NameRef/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/NeverType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/OffsetOfExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/OrPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Param/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ParamList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ParenExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ParenPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ParenType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Path/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/PathExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/PathPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/PathSegment/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/PathType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/PrefixExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/PtrType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RangeExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RangePat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RecordExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RecordExprField/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RecordExprFieldList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RecordField/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RecordFieldList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RecordPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RecordPatField/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RecordPatFieldList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RefExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RefPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RefType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Rename/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RestPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/RetType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ReturnExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/ReturnTypeSyntax/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/SelfParam/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/SlicePat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/SliceType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/SourceFile/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Static/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/StmtList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Struct/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TokenTree/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Trait/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TraitAlias/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TryExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TupleExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TupleField/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TupleFieldList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TuplePat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TupleStructPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TupleType/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TypeAlias/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TypeArg/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TypeBound/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TypeBoundList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/TypeParam/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/UnderscoreExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Union/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Use/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/UseTree/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/UseTreeList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Variant/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/VariantList/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/Visibility/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/WhereClause/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/WherePred/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/WhileExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/WildcardPat/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/YeetExpr/MISSING_SOURCE.txt linguist-generated
|
||||
/test/extractor-tests/generated/YieldExpr/MISSING_SOURCE.txt linguist-generated
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
private import codeql.Locations
|
||||
private import codeql.util.FileSystem
|
||||
private import codeql.rust.elements.SourceFile
|
||||
private import codeql.rust.elements.AstNode
|
||||
|
||||
private module Input implements InputSig {
|
||||
abstract class ContainerBase extends @container {
|
||||
@@ -41,8 +43,10 @@ class File extends Container, Impl::File {
|
||||
int getNumberOfLinesOfCode() {
|
||||
result =
|
||||
count(int line |
|
||||
exists(Location loc |
|
||||
loc.getFile() = this and
|
||||
exists(AstNode node, Location loc |
|
||||
not node instanceof SourceFile and loc = node.getLocation()
|
||||
|
|
||||
node.getFile() = this and
|
||||
line = [loc.getStartLine(), loc.getEndLine()] and
|
||||
not loc instanceof EmptyLocation
|
||||
)
|
||||
|
||||
@@ -69,16 +69,16 @@ class FunctionTree extends StandardPostOrderTree instanceof Function {
|
||||
|
||||
class BlockExprTree extends StandardPostOrderTree instanceof BlockExpr {
|
||||
override ControlFlowTree getChildNode(int i) {
|
||||
result = super.getStatement(i)
|
||||
result = super.getStmtList().getStatement(i)
|
||||
or
|
||||
not exists(super.getStatement(i)) and
|
||||
(exists(super.getStatement(i - 1)) or i = 0) and
|
||||
result = super.getTail()
|
||||
not exists(super.getStmtList().getStatement(i)) and
|
||||
(exists(super.getStmtList().getStatement(i - 1)) or i = 0) and
|
||||
result = super.getStmtList().getTailExpr()
|
||||
}
|
||||
}
|
||||
|
||||
class CallExprTree extends StandardPostOrderTree instanceof CallExpr {
|
||||
override ControlFlowTree getChildNode(int i) { result = super.getArg(i) }
|
||||
override ControlFlowTree getChildNode(int i) { result = super.getArgList().getArg(i) }
|
||||
}
|
||||
|
||||
class BinaryOpExprTree extends StandardPostOrderTree instanceof BinaryExpr {
|
||||
@@ -124,6 +124,3 @@ class LetExprTree extends StandardPostOrderTree instanceof LetExpr {
|
||||
class LiteralExprTree extends LeafTree instanceof LiteralExpr { }
|
||||
|
||||
class PathExprTree extends LeafTree instanceof PathExpr { }
|
||||
|
||||
// A leaf tree for unimplemented nodes in the AST.
|
||||
class UnimplementedTree extends LeafTree instanceof Unimplemented { }
|
||||
|
||||
104
rust/ql/lib/codeql/rust/elements.qll
generated
104
rust/ql/lib/codeql/rust/elements.qll
generated
@@ -3,78 +3,158 @@
|
||||
* This module exports all modules providing `Element` subclasses.
|
||||
*/
|
||||
|
||||
import codeql.rust.elements.Abi
|
||||
import codeql.rust.elements.ArgList
|
||||
import codeql.rust.elements.ArrayExpr
|
||||
import codeql.rust.elements.ArrayType
|
||||
import codeql.rust.elements.AsmExpr
|
||||
import codeql.rust.elements.AssocItem
|
||||
import codeql.rust.elements.AssocItemList
|
||||
import codeql.rust.elements.AssocTypeArg
|
||||
import codeql.rust.elements.AstNode
|
||||
import codeql.rust.elements.AsyncBlockExpr
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.AwaitExpr
|
||||
import codeql.rust.elements.BecomeExpr
|
||||
import codeql.rust.elements.BinaryExpr
|
||||
import codeql.rust.elements.BlockExpr
|
||||
import codeql.rust.elements.BlockExprBase
|
||||
import codeql.rust.elements.BoxExpr
|
||||
import codeql.rust.elements.BoxPat
|
||||
import codeql.rust.elements.BreakExpr
|
||||
import codeql.rust.elements.CallExpr
|
||||
import codeql.rust.elements.CastExpr
|
||||
import codeql.rust.elements.ClosureBinder
|
||||
import codeql.rust.elements.ClosureExpr
|
||||
import codeql.rust.elements.Const
|
||||
import codeql.rust.elements.ConstArg
|
||||
import codeql.rust.elements.ConstBlockPat
|
||||
import codeql.rust.elements.ConstExpr
|
||||
import codeql.rust.elements.ConstParam
|
||||
import codeql.rust.elements.ContinueExpr
|
||||
import codeql.rust.elements.Declaration
|
||||
import codeql.rust.elements.DynTraitType
|
||||
import codeql.rust.elements.Element
|
||||
import codeql.rust.elements.ElementListExpr
|
||||
import codeql.rust.elements.Enum
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.ExprStmt
|
||||
import codeql.rust.elements.ExternBlock
|
||||
import codeql.rust.elements.ExternCrate
|
||||
import codeql.rust.elements.ExternItem
|
||||
import codeql.rust.elements.ExternItemList
|
||||
import codeql.rust.elements.FieldExpr
|
||||
import codeql.rust.elements.FieldList
|
||||
import codeql.rust.elements.FnPtrType
|
||||
import codeql.rust.elements.ForExpr
|
||||
import codeql.rust.elements.ForType
|
||||
import codeql.rust.elements.FormatArgsArg
|
||||
import codeql.rust.elements.FormatArgsExpr
|
||||
import codeql.rust.elements.Function
|
||||
import codeql.rust.elements.GenericArg
|
||||
import codeql.rust.elements.GenericArgList
|
||||
import codeql.rust.elements.GenericParam
|
||||
import codeql.rust.elements.GenericParamList
|
||||
import codeql.rust.elements.IdentPat
|
||||
import codeql.rust.elements.IfExpr
|
||||
import codeql.rust.elements.Impl
|
||||
import codeql.rust.elements.ImplTraitType
|
||||
import codeql.rust.elements.IndexExpr
|
||||
import codeql.rust.elements.ItemStmt
|
||||
import codeql.rust.elements.InferType
|
||||
import codeql.rust.elements.Item
|
||||
import codeql.rust.elements.ItemList
|
||||
import codeql.rust.elements.Label
|
||||
import codeql.rust.elements.LetElse
|
||||
import codeql.rust.elements.LetExpr
|
||||
import codeql.rust.elements.LetStmt
|
||||
import codeql.rust.elements.Lifetime
|
||||
import codeql.rust.elements.LifetimeArg
|
||||
import codeql.rust.elements.LifetimeParam
|
||||
import codeql.rust.elements.LiteralExpr
|
||||
import codeql.rust.elements.LiteralPat
|
||||
import codeql.rust.elements.Locatable
|
||||
import codeql.rust.elements.LoopExpr
|
||||
import codeql.rust.elements.MacroCall
|
||||
import codeql.rust.elements.MacroDef
|
||||
import codeql.rust.elements.MacroExpr
|
||||
import codeql.rust.elements.MacroPat
|
||||
import codeql.rust.elements.MacroRules
|
||||
import codeql.rust.elements.MacroType
|
||||
import codeql.rust.elements.MatchArm
|
||||
import codeql.rust.elements.MatchArmList
|
||||
import codeql.rust.elements.MatchExpr
|
||||
import codeql.rust.elements.MatchGuard
|
||||
import codeql.rust.elements.Meta
|
||||
import codeql.rust.elements.MethodCallExpr
|
||||
import codeql.rust.elements.Missing
|
||||
import codeql.rust.elements.MissingExpr
|
||||
import codeql.rust.elements.MissingPat
|
||||
import codeql.rust.elements.Module
|
||||
import codeql.rust.elements.Name
|
||||
import codeql.rust.elements.NameRef
|
||||
import codeql.rust.elements.NeverType
|
||||
import codeql.rust.elements.OffsetOfExpr
|
||||
import codeql.rust.elements.OrPat
|
||||
import codeql.rust.elements.Param
|
||||
import codeql.rust.elements.ParamList
|
||||
import codeql.rust.elements.ParenExpr
|
||||
import codeql.rust.elements.ParenPat
|
||||
import codeql.rust.elements.ParenType
|
||||
import codeql.rust.elements.Pat
|
||||
import codeql.rust.elements.Path
|
||||
import codeql.rust.elements.PathExpr
|
||||
import codeql.rust.elements.PathPat
|
||||
import codeql.rust.elements.PathSegment
|
||||
import codeql.rust.elements.PathType
|
||||
import codeql.rust.elements.PrefixExpr
|
||||
import codeql.rust.elements.PtrType
|
||||
import codeql.rust.elements.RangeExpr
|
||||
import codeql.rust.elements.RangePat
|
||||
import codeql.rust.elements.RecordExpr
|
||||
import codeql.rust.elements.RecordExprField
|
||||
import codeql.rust.elements.RecordExprFieldList
|
||||
import codeql.rust.elements.RecordField
|
||||
import codeql.rust.elements.RecordFieldList
|
||||
import codeql.rust.elements.RecordPat
|
||||
import codeql.rust.elements.RecordPatField
|
||||
import codeql.rust.elements.RecordPatFieldList
|
||||
import codeql.rust.elements.RefExpr
|
||||
import codeql.rust.elements.RefPat
|
||||
import codeql.rust.elements.RepeatExpr
|
||||
import codeql.rust.elements.RefType
|
||||
import codeql.rust.elements.Rename
|
||||
import codeql.rust.elements.RestPat
|
||||
import codeql.rust.elements.RetType
|
||||
import codeql.rust.elements.ReturnExpr
|
||||
import codeql.rust.elements.ReturnTypeSyntax
|
||||
import codeql.rust.elements.SelfParam
|
||||
import codeql.rust.elements.SlicePat
|
||||
import codeql.rust.elements.SliceType
|
||||
import codeql.rust.elements.SourceFile
|
||||
import codeql.rust.elements.Static
|
||||
import codeql.rust.elements.Stmt
|
||||
import codeql.rust.elements.StmtList
|
||||
import codeql.rust.elements.Struct
|
||||
import codeql.rust.elements.TokenTree
|
||||
import codeql.rust.elements.Trait
|
||||
import codeql.rust.elements.TraitAlias
|
||||
import codeql.rust.elements.TryExpr
|
||||
import codeql.rust.elements.TupleExpr
|
||||
import codeql.rust.elements.TupleField
|
||||
import codeql.rust.elements.TupleFieldList
|
||||
import codeql.rust.elements.TuplePat
|
||||
import codeql.rust.elements.TupleStructPat
|
||||
import codeql.rust.elements.TupleType
|
||||
import codeql.rust.elements.TypeAlias
|
||||
import codeql.rust.elements.TypeArg
|
||||
import codeql.rust.elements.TypeBound
|
||||
import codeql.rust.elements.TypeBoundList
|
||||
import codeql.rust.elements.TypeParam
|
||||
import codeql.rust.elements.TypeRef
|
||||
import codeql.rust.elements.UnderscoreExpr
|
||||
import codeql.rust.elements.Unextracted
|
||||
import codeql.rust.elements.Unimplemented
|
||||
import codeql.rust.elements.UnimplementedDeclaration
|
||||
import codeql.rust.elements.UnsafeBlockExpr
|
||||
import codeql.rust.elements.Union
|
||||
import codeql.rust.elements.Use
|
||||
import codeql.rust.elements.UseTree
|
||||
import codeql.rust.elements.UseTreeList
|
||||
import codeql.rust.elements.Variant
|
||||
import codeql.rust.elements.VariantList
|
||||
import codeql.rust.elements.Visibility
|
||||
import codeql.rust.elements.WhereClause
|
||||
import codeql.rust.elements.WherePred
|
||||
import codeql.rust.elements.WhileExpr
|
||||
import codeql.rust.elements.WildcardPat
|
||||
import codeql.rust.elements.YeetExpr
|
||||
import codeql.rust.elements.YieldExpr
|
||||
|
||||
9
rust/ql/lib/codeql/rust/elements/Abi.qll
generated
Normal file
9
rust/ql/lib/codeql/rust/elements/Abi.qll
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `Abi`.
|
||||
*/
|
||||
|
||||
private import internal.AbiImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
|
||||
final class Abi = Impl::Abi;
|
||||
10
rust/ql/lib/codeql/rust/elements/ArgList.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/ArgList.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ArgList`.
|
||||
*/
|
||||
|
||||
private import internal.ArgListImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
final class ArgList = Impl::ArgList;
|
||||
8
rust/ql/lib/codeql/rust/elements/ArrayExpr.qll
generated
8
rust/ql/lib/codeql/rust/elements/ArrayExpr.qll
generated
@@ -4,13 +4,7 @@
|
||||
*/
|
||||
|
||||
private import internal.ArrayExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
* An array expression. For example:
|
||||
* ```rust
|
||||
* [1, 2, 3];
|
||||
* [1; 10];
|
||||
* ```
|
||||
*/
|
||||
final class ArrayExpr = Impl::ArrayExpr;
|
||||
|
||||
10
rust/ql/lib/codeql/rust/elements/ArrayType.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/ArrayType.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ArrayType`.
|
||||
*/
|
||||
|
||||
private import internal.ArrayTypeImpl
|
||||
import codeql.rust.elements.ConstArg
|
||||
import codeql.rust.elements.TypeRef
|
||||
|
||||
final class ArrayType = Impl::ArrayType;
|
||||
9
rust/ql/lib/codeql/rust/elements/AsmExpr.qll
generated
9
rust/ql/lib/codeql/rust/elements/AsmExpr.qll
generated
@@ -4,14 +4,7 @@
|
||||
*/
|
||||
|
||||
private import internal.AsmExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
* An inline assembly expression. For example:
|
||||
* ```rust
|
||||
* unsafe {
|
||||
* builtin # asm(_);
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
final class AsmExpr = Impl::AsmExpr;
|
||||
|
||||
9
rust/ql/lib/codeql/rust/elements/AssocItem.qll
generated
Normal file
9
rust/ql/lib/codeql/rust/elements/AssocItem.qll
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `AssocItem`.
|
||||
*/
|
||||
|
||||
private import internal.AssocItemImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
|
||||
final class AssocItem = Impl::AssocItem;
|
||||
11
rust/ql/lib/codeql/rust/elements/AssocItemList.qll
generated
Normal file
11
rust/ql/lib/codeql/rust/elements/AssocItemList.qll
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `AssocItemList`.
|
||||
*/
|
||||
|
||||
private import internal.AssocItemListImpl
|
||||
import codeql.rust.elements.AssocItem
|
||||
import codeql.rust.elements.AstNode
|
||||
import codeql.rust.elements.Attr
|
||||
|
||||
final class AssocItemList = Impl::AssocItemList;
|
||||
17
rust/ql/lib/codeql/rust/elements/AssocTypeArg.qll
generated
Normal file
17
rust/ql/lib/codeql/rust/elements/AssocTypeArg.qll
generated
Normal file
@@ -0,0 +1,17 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `AssocTypeArg`.
|
||||
*/
|
||||
|
||||
private import internal.AssocTypeArgImpl
|
||||
import codeql.rust.elements.ConstArg
|
||||
import codeql.rust.elements.GenericArg
|
||||
import codeql.rust.elements.GenericArgList
|
||||
import codeql.rust.elements.NameRef
|
||||
import codeql.rust.elements.ParamList
|
||||
import codeql.rust.elements.RetType
|
||||
import codeql.rust.elements.ReturnTypeSyntax
|
||||
import codeql.rust.elements.TypeBoundList
|
||||
import codeql.rust.elements.TypeRef
|
||||
|
||||
final class AssocTypeArg = Impl::AssocTypeArg;
|
||||
@@ -1,18 +0,0 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `AsyncBlockExpr`.
|
||||
*/
|
||||
|
||||
private import internal.AsyncBlockExprImpl
|
||||
import codeql.rust.elements.BlockExprBase
|
||||
|
||||
/**
|
||||
* An async block expression. For example:
|
||||
* ```rust
|
||||
* async {
|
||||
* let x = 42;
|
||||
* x
|
||||
* }.await
|
||||
* ```
|
||||
*/
|
||||
final class AsyncBlockExpr = Impl::AsyncBlockExpr;
|
||||
10
rust/ql/lib/codeql/rust/elements/Attr.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/Attr.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `Attr`.
|
||||
*/
|
||||
|
||||
private import internal.AttrImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
import codeql.rust.elements.Meta
|
||||
|
||||
final class Attr = Impl::Attr;
|
||||
10
rust/ql/lib/codeql/rust/elements/AwaitExpr.qll
generated
10
rust/ql/lib/codeql/rust/elements/AwaitExpr.qll
generated
@@ -4,15 +4,7 @@
|
||||
*/
|
||||
|
||||
private import internal.AwaitExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
* An `await` expression. For example:
|
||||
* ```rust
|
||||
* async {
|
||||
* let x = foo().await;
|
||||
* x
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
final class AwaitExpr = Impl::AwaitExpr;
|
||||
|
||||
13
rust/ql/lib/codeql/rust/elements/BecomeExpr.qll
generated
13
rust/ql/lib/codeql/rust/elements/BecomeExpr.qll
generated
@@ -4,18 +4,7 @@
|
||||
*/
|
||||
|
||||
private import internal.BecomeExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
* A `become` expression. For example:
|
||||
* ```rust
|
||||
* fn fact_a(n: i32, a: i32) -> i32 {
|
||||
* if n == 0 {
|
||||
* a
|
||||
* } else {
|
||||
* become fact_a(n - 1, n * a)
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
final class BecomeExpr = Impl::BecomeExpr;
|
||||
|
||||
11
rust/ql/lib/codeql/rust/elements/BinaryExpr.qll
generated
11
rust/ql/lib/codeql/rust/elements/BinaryExpr.qll
generated
@@ -4,16 +4,7 @@
|
||||
*/
|
||||
|
||||
private import internal.BinaryExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
* A binary operation expression. For example:
|
||||
* ```rust
|
||||
* x + y;
|
||||
* x && y;
|
||||
* x <= y;
|
||||
* x = y;
|
||||
* x += y;
|
||||
* ```
|
||||
*/
|
||||
final class BinaryExpr = Impl::BinaryExpr;
|
||||
|
||||
18
rust/ql/lib/codeql/rust/elements/BlockExpr.qll
generated
18
rust/ql/lib/codeql/rust/elements/BlockExpr.qll
generated
@@ -4,21 +4,9 @@
|
||||
*/
|
||||
|
||||
private import internal.BlockExprImpl
|
||||
import codeql.rust.elements.BlockExprBase
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.Label
|
||||
import codeql.rust.elements.StmtList
|
||||
|
||||
/**
|
||||
* A block expression. For example:
|
||||
* ```rust
|
||||
* {
|
||||
* let x = 42;
|
||||
* }
|
||||
* ```
|
||||
* ```rust
|
||||
* 'label: {
|
||||
* let x = 42;
|
||||
* x
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
final class BlockExpr = Impl::BlockExpr;
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `BlockExprBase`.
|
||||
*/
|
||||
|
||||
private import internal.BlockExprBaseImpl
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.Stmt
|
||||
|
||||
final class BlockExprBase = Impl::BlockExprBase;
|
||||
@@ -1,15 +0,0 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `BoxExpr`.
|
||||
*/
|
||||
|
||||
private import internal.BoxExprImpl
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
* A box expression. For example:
|
||||
* ```rust
|
||||
* let x = #[rustc_box] Box::new(42);
|
||||
* ```
|
||||
*/
|
||||
final class BoxExpr = Impl::BoxExpr;
|
||||
9
rust/ql/lib/codeql/rust/elements/BoxPat.qll
generated
9
rust/ql/lib/codeql/rust/elements/BoxPat.qll
generated
@@ -6,13 +6,4 @@
|
||||
private import internal.BoxPatImpl
|
||||
import codeql.rust.elements.Pat
|
||||
|
||||
/**
|
||||
* A box pattern. For example:
|
||||
* ```rust
|
||||
* match x {
|
||||
* box Option::Some(y) => y,
|
||||
* box Option::None => 0,
|
||||
* };
|
||||
* ```
|
||||
*/
|
||||
final class BoxPat = Impl::BoxPat;
|
||||
|
||||
20
rust/ql/lib/codeql/rust/elements/BreakExpr.qll
generated
20
rust/ql/lib/codeql/rust/elements/BreakExpr.qll
generated
@@ -4,24 +4,8 @@
|
||||
*/
|
||||
|
||||
private import internal.BreakExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.Label
|
||||
import codeql.rust.elements.Lifetime
|
||||
|
||||
/**
|
||||
* A break expression. For example:
|
||||
* ```rust
|
||||
* loop {
|
||||
* if not_ready() {
|
||||
* break;
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* ```rust
|
||||
* let x = 'label: loop {
|
||||
* if done() {
|
||||
* break 'label 42;
|
||||
* }
|
||||
* };
|
||||
* ```
|
||||
*/
|
||||
final class BreakExpr = Impl::BreakExpr;
|
||||
|
||||
11
rust/ql/lib/codeql/rust/elements/CallExpr.qll
generated
11
rust/ql/lib/codeql/rust/elements/CallExpr.qll
generated
@@ -4,15 +4,8 @@
|
||||
*/
|
||||
|
||||
private import internal.CallExprImpl
|
||||
import codeql.rust.elements.ArgList
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
* A function call expression. For example:
|
||||
* ```rust
|
||||
* foo(42);
|
||||
* foo::<u32, u64>(42);
|
||||
* foo[0](42);
|
||||
* foo(1) = 4;
|
||||
* ```
|
||||
*/
|
||||
final class CallExpr = Impl::CallExpr;
|
||||
|
||||
7
rust/ql/lib/codeql/rust/elements/CastExpr.qll
generated
7
rust/ql/lib/codeql/rust/elements/CastExpr.qll
generated
@@ -4,13 +4,8 @@
|
||||
*/
|
||||
|
||||
private import internal.CastExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.TypeRef
|
||||
|
||||
/**
|
||||
* A cast expression. For example:
|
||||
* ```rust
|
||||
* value as u64;
|
||||
* ```
|
||||
*/
|
||||
final class CastExpr = Impl::CastExpr;
|
||||
|
||||
10
rust/ql/lib/codeql/rust/elements/ClosureBinder.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/ClosureBinder.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ClosureBinder`.
|
||||
*/
|
||||
|
||||
private import internal.ClosureBinderImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
import codeql.rust.elements.GenericParamList
|
||||
|
||||
final class ClosureBinder = Impl::ClosureBinder;
|
||||
18
rust/ql/lib/codeql/rust/elements/ClosureExpr.qll
generated
18
rust/ql/lib/codeql/rust/elements/ClosureExpr.qll
generated
@@ -4,20 +4,10 @@
|
||||
*/
|
||||
|
||||
private import internal.ClosureExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.ClosureBinder
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.Pat
|
||||
import codeql.rust.elements.TypeRef
|
||||
import codeql.rust.elements.ParamList
|
||||
import codeql.rust.elements.RetType
|
||||
|
||||
/**
|
||||
* A closure expression. For example:
|
||||
* ```rust
|
||||
* |x| x + 1;
|
||||
* move |x: i32| -> i32 { x + 1 };
|
||||
* async |x: i32, y| x + y;
|
||||
* #[coroutine]
|
||||
* |x| yield x;
|
||||
* #[coroutine]
|
||||
* static |x| yield x;
|
||||
* ```
|
||||
*/
|
||||
final class ClosureExpr = Impl::ClosureExpr;
|
||||
|
||||
15
rust/ql/lib/codeql/rust/elements/Const.qll
generated
Normal file
15
rust/ql/lib/codeql/rust/elements/Const.qll
generated
Normal file
@@ -0,0 +1,15 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `Const`.
|
||||
*/
|
||||
|
||||
private import internal.ConstImpl
|
||||
import codeql.rust.elements.AssocItem
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.Item
|
||||
import codeql.rust.elements.Name
|
||||
import codeql.rust.elements.TypeRef
|
||||
import codeql.rust.elements.Visibility
|
||||
|
||||
final class Const = Impl::Const;
|
||||
10
rust/ql/lib/codeql/rust/elements/ConstArg.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/ConstArg.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ConstArg`.
|
||||
*/
|
||||
|
||||
private import internal.ConstArgImpl
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.GenericArg
|
||||
|
||||
final class ConstArg = Impl::ConstArg;
|
||||
11
rust/ql/lib/codeql/rust/elements/ConstBlockPat.qll
generated
11
rust/ql/lib/codeql/rust/elements/ConstBlockPat.qll
generated
@@ -4,16 +4,7 @@
|
||||
*/
|
||||
|
||||
private import internal.ConstBlockPatImpl
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.BlockExpr
|
||||
import codeql.rust.elements.Pat
|
||||
|
||||
/**
|
||||
* A const block pattern. For example:
|
||||
* ```rust
|
||||
* match x {
|
||||
* const { 1 + 2 + 3 } => "ok",
|
||||
* _ => "fail",
|
||||
* };
|
||||
* ```
|
||||
*/
|
||||
final class ConstBlockPat = Impl::ConstBlockPat;
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ConstExpr`.
|
||||
*/
|
||||
|
||||
private import internal.ConstExprImpl
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
* A `const` block expression. For example:
|
||||
* ```rust
|
||||
* if const { SRC::IS_ZST || DEST::IS_ZST || mem::align_of::<SRC>() != mem::align_of::<DEST>() } {
|
||||
* return false;
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
final class ConstExpr = Impl::ConstExpr;
|
||||
13
rust/ql/lib/codeql/rust/elements/ConstParam.qll
generated
Normal file
13
rust/ql/lib/codeql/rust/elements/ConstParam.qll
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ConstParam`.
|
||||
*/
|
||||
|
||||
private import internal.ConstParamImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.ConstArg
|
||||
import codeql.rust.elements.GenericParam
|
||||
import codeql.rust.elements.Name
|
||||
import codeql.rust.elements.TypeRef
|
||||
|
||||
final class ConstParam = Impl::ConstParam;
|
||||
20
rust/ql/lib/codeql/rust/elements/ContinueExpr.qll
generated
20
rust/ql/lib/codeql/rust/elements/ContinueExpr.qll
generated
@@ -4,24 +4,8 @@
|
||||
*/
|
||||
|
||||
private import internal.ContinueExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.Label
|
||||
import codeql.rust.elements.Lifetime
|
||||
|
||||
/**
|
||||
* A continue expression. For example:
|
||||
* ```rust
|
||||
* loop {
|
||||
* if not_ready() {
|
||||
* continue;
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* ```rust
|
||||
* 'label: loop {
|
||||
* if not_ready() {
|
||||
* continue 'label;
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
final class ContinueExpr = Impl::ContinueExpr;
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `Declaration`.
|
||||
*/
|
||||
|
||||
private import internal.DeclarationImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
|
||||
/**
|
||||
* The base class for declarations.
|
||||
*/
|
||||
final class Declaration = Impl::Declaration;
|
||||
10
rust/ql/lib/codeql/rust/elements/DynTraitType.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/DynTraitType.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `DynTraitType`.
|
||||
*/
|
||||
|
||||
private import internal.DynTraitTypeImpl
|
||||
import codeql.rust.elements.TypeBoundList
|
||||
import codeql.rust.elements.TypeRef
|
||||
|
||||
final class DynTraitType = Impl::DynTraitType;
|
||||
@@ -1,17 +0,0 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ElementListExpr`.
|
||||
*/
|
||||
|
||||
private import internal.ElementListExprImpl
|
||||
import codeql.rust.elements.ArrayExpr
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
* An element list expression. For example:
|
||||
* ```rust
|
||||
* [1, 2, 3, 4, 5];
|
||||
* [1, 2, 3, 4, 5][0] = 6;
|
||||
* ```
|
||||
*/
|
||||
final class ElementListExpr = Impl::ElementListExpr;
|
||||
15
rust/ql/lib/codeql/rust/elements/Enum.qll
generated
Normal file
15
rust/ql/lib/codeql/rust/elements/Enum.qll
generated
Normal file
@@ -0,0 +1,15 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `Enum`.
|
||||
*/
|
||||
|
||||
private import internal.EnumImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.GenericParamList
|
||||
import codeql.rust.elements.Item
|
||||
import codeql.rust.elements.Name
|
||||
import codeql.rust.elements.VariantList
|
||||
import codeql.rust.elements.Visibility
|
||||
import codeql.rust.elements.WhereClause
|
||||
|
||||
final class Enum = Impl::Enum;
|
||||
3
rust/ql/lib/codeql/rust/elements/Expr.qll
generated
3
rust/ql/lib/codeql/rust/elements/Expr.qll
generated
@@ -6,7 +6,4 @@
|
||||
private import internal.ExprImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
|
||||
/**
|
||||
* The base class for expressions.
|
||||
*/
|
||||
final class Expr = Impl::Expr;
|
||||
|
||||
8
rust/ql/lib/codeql/rust/elements/ExprStmt.qll
generated
8
rust/ql/lib/codeql/rust/elements/ExprStmt.qll
generated
@@ -7,12 +7,4 @@ private import internal.ExprStmtImpl
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.Stmt
|
||||
|
||||
/**
|
||||
* An expression statement. For example:
|
||||
* ```rust
|
||||
* start();
|
||||
* finish()
|
||||
* use std::env;
|
||||
* ```
|
||||
*/
|
||||
final class ExprStmt = Impl::ExprStmt;
|
||||
|
||||
12
rust/ql/lib/codeql/rust/elements/ExternBlock.qll
generated
Normal file
12
rust/ql/lib/codeql/rust/elements/ExternBlock.qll
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ExternBlock`.
|
||||
*/
|
||||
|
||||
private import internal.ExternBlockImpl
|
||||
import codeql.rust.elements.Abi
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.ExternItemList
|
||||
import codeql.rust.elements.Item
|
||||
|
||||
final class ExternBlock = Impl::ExternBlock;
|
||||
13
rust/ql/lib/codeql/rust/elements/ExternCrate.qll
generated
Normal file
13
rust/ql/lib/codeql/rust/elements/ExternCrate.qll
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ExternCrate`.
|
||||
*/
|
||||
|
||||
private import internal.ExternCrateImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Item
|
||||
import codeql.rust.elements.NameRef
|
||||
import codeql.rust.elements.Rename
|
||||
import codeql.rust.elements.Visibility
|
||||
|
||||
final class ExternCrate = Impl::ExternCrate;
|
||||
9
rust/ql/lib/codeql/rust/elements/ExternItem.qll
generated
Normal file
9
rust/ql/lib/codeql/rust/elements/ExternItem.qll
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ExternItem`.
|
||||
*/
|
||||
|
||||
private import internal.ExternItemImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
|
||||
final class ExternItem = Impl::ExternItem;
|
||||
11
rust/ql/lib/codeql/rust/elements/ExternItemList.qll
generated
Normal file
11
rust/ql/lib/codeql/rust/elements/ExternItemList.qll
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ExternItemList`.
|
||||
*/
|
||||
|
||||
private import internal.ExternItemListImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.ExternItem
|
||||
|
||||
final class ExternItemList = Impl::ExternItemList;
|
||||
8
rust/ql/lib/codeql/rust/elements/FieldExpr.qll
generated
8
rust/ql/lib/codeql/rust/elements/FieldExpr.qll
generated
@@ -4,12 +4,8 @@
|
||||
*/
|
||||
|
||||
private import internal.FieldExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.NameRef
|
||||
|
||||
/**
|
||||
* A field access expression. For example:
|
||||
* ```rust
|
||||
* x.foo
|
||||
* ```
|
||||
*/
|
||||
final class FieldExpr = Impl::FieldExpr;
|
||||
|
||||
9
rust/ql/lib/codeql/rust/elements/FieldList.qll
generated
Normal file
9
rust/ql/lib/codeql/rust/elements/FieldList.qll
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `FieldList`.
|
||||
*/
|
||||
|
||||
private import internal.FieldListImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
|
||||
final class FieldList = Impl::FieldList;
|
||||
12
rust/ql/lib/codeql/rust/elements/FnPtrType.qll
generated
Normal file
12
rust/ql/lib/codeql/rust/elements/FnPtrType.qll
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `FnPtrType`.
|
||||
*/
|
||||
|
||||
private import internal.FnPtrTypeImpl
|
||||
import codeql.rust.elements.Abi
|
||||
import codeql.rust.elements.ParamList
|
||||
import codeql.rust.elements.RetType
|
||||
import codeql.rust.elements.TypeRef
|
||||
|
||||
final class FnPtrType = Impl::FnPtrType;
|
||||
13
rust/ql/lib/codeql/rust/elements/ForExpr.qll
generated
Normal file
13
rust/ql/lib/codeql/rust/elements/ForExpr.qll
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ForExpr`.
|
||||
*/
|
||||
|
||||
private import internal.ForExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.BlockExpr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.Label
|
||||
import codeql.rust.elements.Pat
|
||||
|
||||
final class ForExpr = Impl::ForExpr;
|
||||
10
rust/ql/lib/codeql/rust/elements/ForType.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/ForType.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ForType`.
|
||||
*/
|
||||
|
||||
private import internal.ForTypeImpl
|
||||
import codeql.rust.elements.GenericParamList
|
||||
import codeql.rust.elements.TypeRef
|
||||
|
||||
final class ForType = Impl::ForType;
|
||||
11
rust/ql/lib/codeql/rust/elements/FormatArgsArg.qll
generated
Normal file
11
rust/ql/lib/codeql/rust/elements/FormatArgsArg.qll
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `FormatArgsArg`.
|
||||
*/
|
||||
|
||||
private import internal.FormatArgsArgImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.Name
|
||||
|
||||
final class FormatArgsArg = Impl::FormatArgsArg;
|
||||
11
rust/ql/lib/codeql/rust/elements/FormatArgsExpr.qll
generated
Normal file
11
rust/ql/lib/codeql/rust/elements/FormatArgsExpr.qll
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `FormatArgsExpr`.
|
||||
*/
|
||||
|
||||
private import internal.FormatArgsExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.FormatArgsArg
|
||||
|
||||
final class FormatArgsExpr = Impl::FormatArgsExpr;
|
||||
26
rust/ql/lib/codeql/rust/elements/Function.qll
generated
26
rust/ql/lib/codeql/rust/elements/Function.qll
generated
@@ -4,19 +4,17 @@
|
||||
*/
|
||||
|
||||
private import internal.FunctionImpl
|
||||
import codeql.rust.elements.Declaration
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.Abi
|
||||
import codeql.rust.elements.AssocItem
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.BlockExpr
|
||||
import codeql.rust.elements.ExternItem
|
||||
import codeql.rust.elements.GenericParamList
|
||||
import codeql.rust.elements.Item
|
||||
import codeql.rust.elements.Name
|
||||
import codeql.rust.elements.ParamList
|
||||
import codeql.rust.elements.RetType
|
||||
import codeql.rust.elements.Visibility
|
||||
import codeql.rust.elements.WhereClause
|
||||
|
||||
/**
|
||||
* A function declaration. For example
|
||||
* ```rust
|
||||
* fn foo(x: u32) -> u64 {(x + 1).into()}
|
||||
* ```
|
||||
* A function declaration within a trait might not have a body:
|
||||
* ```rust
|
||||
* trait Trait {
|
||||
* fn bar();
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
final class Function = Impl::Function;
|
||||
|
||||
9
rust/ql/lib/codeql/rust/elements/GenericArg.qll
generated
Normal file
9
rust/ql/lib/codeql/rust/elements/GenericArg.qll
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `GenericArg`.
|
||||
*/
|
||||
|
||||
private import internal.GenericArgImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
|
||||
final class GenericArg = Impl::GenericArg;
|
||||
@@ -5,12 +5,6 @@
|
||||
|
||||
private import internal.GenericArgListImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
import codeql.rust.elements.Unimplemented
|
||||
import codeql.rust.elements.GenericArg
|
||||
|
||||
/**
|
||||
* The base class for generic arguments.
|
||||
* ```rust
|
||||
* x.foo::<u32, u64>(42);
|
||||
* ```
|
||||
*/
|
||||
final class GenericArgList = Impl::GenericArgList;
|
||||
|
||||
9
rust/ql/lib/codeql/rust/elements/GenericParam.qll
generated
Normal file
9
rust/ql/lib/codeql/rust/elements/GenericParam.qll
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `GenericParam`.
|
||||
*/
|
||||
|
||||
private import internal.GenericParamImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
|
||||
final class GenericParam = Impl::GenericParam;
|
||||
10
rust/ql/lib/codeql/rust/elements/GenericParamList.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/GenericParamList.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `GenericParamList`.
|
||||
*/
|
||||
|
||||
private import internal.GenericParamListImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
import codeql.rust.elements.GenericParam
|
||||
|
||||
final class GenericParamList = Impl::GenericParamList;
|
||||
17
rust/ql/lib/codeql/rust/elements/IdentPat.qll
generated
17
rust/ql/lib/codeql/rust/elements/IdentPat.qll
generated
@@ -4,21 +4,8 @@
|
||||
*/
|
||||
|
||||
private import internal.IdentPatImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Name
|
||||
import codeql.rust.elements.Pat
|
||||
|
||||
/**
|
||||
* A binding pattern. For example:
|
||||
* ```rust
|
||||
* match x {
|
||||
* Option::Some(y) => y,
|
||||
* Option::None => 0,
|
||||
* };
|
||||
* ```
|
||||
* ```rust
|
||||
* match x {
|
||||
* y@Option::Some(_) => y,
|
||||
* Option::None => 0,
|
||||
* };
|
||||
* ```
|
||||
*/
|
||||
final class IdentPat = Impl::IdentPat;
|
||||
|
||||
17
rust/ql/lib/codeql/rust/elements/IfExpr.qll
generated
17
rust/ql/lib/codeql/rust/elements/IfExpr.qll
generated
@@ -4,21 +4,8 @@
|
||||
*/
|
||||
|
||||
private import internal.IfExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.BlockExpr
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
* An `if` expression. For example:
|
||||
* ```rust
|
||||
* if x == 42 {
|
||||
* println!("that's the answer");
|
||||
* }
|
||||
* ```
|
||||
* ```rust
|
||||
* let y = if x > 0 {
|
||||
* 1
|
||||
* } else {
|
||||
* 0
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
final class IfExpr = Impl::IfExpr;
|
||||
|
||||
15
rust/ql/lib/codeql/rust/elements/Impl.qll
generated
Normal file
15
rust/ql/lib/codeql/rust/elements/Impl.qll
generated
Normal file
@@ -0,0 +1,15 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `Impl`.
|
||||
*/
|
||||
|
||||
private import internal.ImplImpl
|
||||
import codeql.rust.elements.AssocItemList
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.GenericParamList
|
||||
import codeql.rust.elements.Item
|
||||
import codeql.rust.elements.TypeRef
|
||||
import codeql.rust.elements.Visibility
|
||||
import codeql.rust.elements.WhereClause
|
||||
|
||||
final class Impl = Impl::Impl;
|
||||
10
rust/ql/lib/codeql/rust/elements/ImplTraitType.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/ImplTraitType.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ImplTraitType`.
|
||||
*/
|
||||
|
||||
private import internal.ImplTraitTypeImpl
|
||||
import codeql.rust.elements.TypeBoundList
|
||||
import codeql.rust.elements.TypeRef
|
||||
|
||||
final class ImplTraitType = Impl::ImplTraitType;
|
||||
8
rust/ql/lib/codeql/rust/elements/IndexExpr.qll
generated
8
rust/ql/lib/codeql/rust/elements/IndexExpr.qll
generated
@@ -4,13 +4,7 @@
|
||||
*/
|
||||
|
||||
private import internal.IndexExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
* An index expression. For example:
|
||||
* ```rust
|
||||
* list[42];
|
||||
* list[42] = 1;
|
||||
* ```
|
||||
*/
|
||||
final class IndexExpr = Impl::IndexExpr;
|
||||
|
||||
9
rust/ql/lib/codeql/rust/elements/InferType.qll
generated
Normal file
9
rust/ql/lib/codeql/rust/elements/InferType.qll
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `InferType`.
|
||||
*/
|
||||
|
||||
private import internal.InferTypeImpl
|
||||
import codeql.rust.elements.TypeRef
|
||||
|
||||
final class InferType = Impl::InferType;
|
||||
9
rust/ql/lib/codeql/rust/elements/Item.qll
generated
Normal file
9
rust/ql/lib/codeql/rust/elements/Item.qll
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `Item`.
|
||||
*/
|
||||
|
||||
private import internal.ItemImpl
|
||||
import codeql.rust.elements.Stmt
|
||||
|
||||
final class Item = Impl::Item;
|
||||
11
rust/ql/lib/codeql/rust/elements/ItemList.qll
generated
Normal file
11
rust/ql/lib/codeql/rust/elements/ItemList.qll
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ItemList`.
|
||||
*/
|
||||
|
||||
private import internal.ItemListImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Item
|
||||
|
||||
final class ItemList = Impl::ItemList;
|
||||
@@ -1,18 +0,0 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `ItemStmt`.
|
||||
*/
|
||||
|
||||
private import internal.ItemStmtImpl
|
||||
import codeql.rust.elements.Stmt
|
||||
|
||||
/**
|
||||
* An item statement. For example:
|
||||
* ```rust
|
||||
* fn print_hello() {
|
||||
* println!("Hello, world!");
|
||||
* }
|
||||
* print_hello();
|
||||
* ```
|
||||
*/
|
||||
final class ItemStmt = Impl::ItemStmt;
|
||||
10
rust/ql/lib/codeql/rust/elements/Label.qll
generated
10
rust/ql/lib/codeql/rust/elements/Label.qll
generated
@@ -5,14 +5,6 @@
|
||||
|
||||
private import internal.LabelImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
import codeql.rust.elements.Lifetime
|
||||
|
||||
/**
|
||||
* A label. For example:
|
||||
* ```rust
|
||||
* 'label: loop {
|
||||
* println!("Hello, world (once)!");
|
||||
* break 'label;
|
||||
* };
|
||||
* ```
|
||||
*/
|
||||
final class Label = Impl::Label;
|
||||
|
||||
10
rust/ql/lib/codeql/rust/elements/LetElse.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/LetElse.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `LetElse`.
|
||||
*/
|
||||
|
||||
private import internal.LetElseImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
import codeql.rust.elements.BlockExpr
|
||||
|
||||
final class LetElse = Impl::LetElse;
|
||||
9
rust/ql/lib/codeql/rust/elements/LetExpr.qll
generated
9
rust/ql/lib/codeql/rust/elements/LetExpr.qll
generated
@@ -4,15 +4,8 @@
|
||||
*/
|
||||
|
||||
private import internal.LetExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.Pat
|
||||
|
||||
/**
|
||||
* A `let` expression. For example:
|
||||
* ```rust
|
||||
* if let Some(x) = maybe_some {
|
||||
* println!("{}", x);
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
final class LetExpr = Impl::LetExpr;
|
||||
|
||||
15
rust/ql/lib/codeql/rust/elements/LetStmt.qll
generated
15
rust/ql/lib/codeql/rust/elements/LetStmt.qll
generated
@@ -4,22 +4,11 @@
|
||||
*/
|
||||
|
||||
private import internal.LetStmtImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.LetElse
|
||||
import codeql.rust.elements.Pat
|
||||
import codeql.rust.elements.Stmt
|
||||
import codeql.rust.elements.TypeRef
|
||||
|
||||
/**
|
||||
* A let statement. For example:
|
||||
* ```rust
|
||||
* let x = 42;
|
||||
* let x: i32 = 42;
|
||||
* let x: i32;
|
||||
* let x;
|
||||
* let (x, y) = (1, 2);
|
||||
* let Some(x) = std::env::var("FOO") else {
|
||||
* return;
|
||||
* };
|
||||
* ```
|
||||
*/
|
||||
final class LetStmt = Impl::LetStmt;
|
||||
|
||||
9
rust/ql/lib/codeql/rust/elements/Lifetime.qll
generated
Normal file
9
rust/ql/lib/codeql/rust/elements/Lifetime.qll
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `Lifetime`.
|
||||
*/
|
||||
|
||||
private import internal.LifetimeImpl
|
||||
import codeql.rust.elements.AstNode
|
||||
|
||||
final class Lifetime = Impl::Lifetime;
|
||||
10
rust/ql/lib/codeql/rust/elements/LifetimeArg.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/LifetimeArg.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `LifetimeArg`.
|
||||
*/
|
||||
|
||||
private import internal.LifetimeArgImpl
|
||||
import codeql.rust.elements.GenericArg
|
||||
import codeql.rust.elements.Lifetime
|
||||
|
||||
final class LifetimeArg = Impl::LifetimeArg;
|
||||
12
rust/ql/lib/codeql/rust/elements/LifetimeParam.qll
generated
Normal file
12
rust/ql/lib/codeql/rust/elements/LifetimeParam.qll
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `LifetimeParam`.
|
||||
*/
|
||||
|
||||
private import internal.LifetimeParamImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.GenericParam
|
||||
import codeql.rust.elements.Lifetime
|
||||
import codeql.rust.elements.TypeBoundList
|
||||
|
||||
final class LifetimeParam = Impl::LifetimeParam;
|
||||
14
rust/ql/lib/codeql/rust/elements/LiteralExpr.qll
generated
14
rust/ql/lib/codeql/rust/elements/LiteralExpr.qll
generated
@@ -4,19 +4,7 @@
|
||||
*/
|
||||
|
||||
private import internal.LiteralExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
|
||||
/**
|
||||
* A literal expression. For example:
|
||||
* ```rust
|
||||
* 42;
|
||||
* 42.0;
|
||||
* "Hello, world!";
|
||||
* b"Hello, world!";
|
||||
* 'x';
|
||||
* b'x';
|
||||
* r"Hello, world!";
|
||||
* true;
|
||||
* ```
|
||||
*/
|
||||
final class LiteralExpr = Impl::LiteralExpr;
|
||||
|
||||
11
rust/ql/lib/codeql/rust/elements/LiteralPat.qll
generated
11
rust/ql/lib/codeql/rust/elements/LiteralPat.qll
generated
@@ -4,16 +4,7 @@
|
||||
*/
|
||||
|
||||
private import internal.LiteralPatImpl
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.LiteralExpr
|
||||
import codeql.rust.elements.Pat
|
||||
|
||||
/**
|
||||
* A literal pattern. For example:
|
||||
* ```rust
|
||||
* match x {
|
||||
* 42 => "ok",
|
||||
* _ => "fail",
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
final class LiteralPat = Impl::LiteralPat;
|
||||
|
||||
26
rust/ql/lib/codeql/rust/elements/LoopExpr.qll
generated
26
rust/ql/lib/codeql/rust/elements/LoopExpr.qll
generated
@@ -4,31 +4,9 @@
|
||||
*/
|
||||
|
||||
private import internal.LoopExprImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.BlockExpr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.Label
|
||||
|
||||
/**
|
||||
* A loop expression. For example:
|
||||
* ```rust
|
||||
* loop {
|
||||
* println!("Hello, world (again)!");
|
||||
* };
|
||||
* ```
|
||||
* ```rust
|
||||
* 'label: loop {
|
||||
* println!("Hello, world (once)!");
|
||||
* break 'label;
|
||||
* };
|
||||
* ```
|
||||
* ```rust
|
||||
* let mut x = 0;
|
||||
* loop {
|
||||
* if x < 10 {
|
||||
* x += 1;
|
||||
* } else {
|
||||
* break;
|
||||
* }
|
||||
* };
|
||||
* ```
|
||||
*/
|
||||
final class LoopExpr = Impl::LoopExpr;
|
||||
|
||||
14
rust/ql/lib/codeql/rust/elements/MacroCall.qll
generated
Normal file
14
rust/ql/lib/codeql/rust/elements/MacroCall.qll
generated
Normal file
@@ -0,0 +1,14 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `MacroCall`.
|
||||
*/
|
||||
|
||||
private import internal.MacroCallImpl
|
||||
import codeql.rust.elements.AssocItem
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.ExternItem
|
||||
import codeql.rust.elements.Item
|
||||
import codeql.rust.elements.Path
|
||||
import codeql.rust.elements.TokenTree
|
||||
|
||||
final class MacroCall = Impl::MacroCall;
|
||||
13
rust/ql/lib/codeql/rust/elements/MacroDef.qll
generated
Normal file
13
rust/ql/lib/codeql/rust/elements/MacroDef.qll
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `MacroDef`.
|
||||
*/
|
||||
|
||||
private import internal.MacroDefImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Item
|
||||
import codeql.rust.elements.Name
|
||||
import codeql.rust.elements.TokenTree
|
||||
import codeql.rust.elements.Visibility
|
||||
|
||||
final class MacroDef = Impl::MacroDef;
|
||||
10
rust/ql/lib/codeql/rust/elements/MacroExpr.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/MacroExpr.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `MacroExpr`.
|
||||
*/
|
||||
|
||||
private import internal.MacroExprImpl
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.MacroCall
|
||||
|
||||
final class MacroExpr = Impl::MacroExpr;
|
||||
10
rust/ql/lib/codeql/rust/elements/MacroPat.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/MacroPat.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `MacroPat`.
|
||||
*/
|
||||
|
||||
private import internal.MacroPatImpl
|
||||
import codeql.rust.elements.MacroCall
|
||||
import codeql.rust.elements.Pat
|
||||
|
||||
final class MacroPat = Impl::MacroPat;
|
||||
13
rust/ql/lib/codeql/rust/elements/MacroRules.qll
generated
Normal file
13
rust/ql/lib/codeql/rust/elements/MacroRules.qll
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `MacroRules`.
|
||||
*/
|
||||
|
||||
private import internal.MacroRulesImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Item
|
||||
import codeql.rust.elements.Name
|
||||
import codeql.rust.elements.TokenTree
|
||||
import codeql.rust.elements.Visibility
|
||||
|
||||
final class MacroRules = Impl::MacroRules;
|
||||
10
rust/ql/lib/codeql/rust/elements/MacroType.qll
generated
Normal file
10
rust/ql/lib/codeql/rust/elements/MacroType.qll
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
// generated by codegen, do not edit
|
||||
/**
|
||||
* This module provides the public class `MacroType`.
|
||||
*/
|
||||
|
||||
private import internal.MacroTypeImpl
|
||||
import codeql.rust.elements.MacroCall
|
||||
import codeql.rust.elements.TypeRef
|
||||
|
||||
final class MacroType = Impl::MacroType;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user