Files
codeql/rust/ql/lib/rust.dbscheme
2025-06-03 10:41:32 +02:00

3612 lines
54 KiB
Plaintext

// generated by codegen, do not edit
// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme
/*- Files and folders -*/
/**
* The location of an element.
* The location spans column `startcolumn` of line `startline` to
* column `endcolumn` of line `endline` in file `file`.
* For more information, see
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
*/
locations_default(
unique int id: @location_default,
int file: @file ref,
int beginLine: int ref,
int beginColumn: int ref,
int endLine: int ref,
int endColumn: int ref
);
files(
unique int id: @file,
string name: string ref
);
folders(
unique int id: @folder,
string name: string ref
);
@container = @file | @folder
containerparent(
int parent: @container ref,
unique int child: @container ref
);
/*- Empty location -*/
empty_location(
int location: @location_default ref
);
/*- Source location prefix -*/
/**
* The source location of the snapshot.
*/
sourceLocationPrefix(string prefix : string ref);
/*- Diagnostic messages -*/
diagnostics(
unique int id: @diagnostic,
int severity: int ref,
string error_tag: string ref,
string error_message: string ref,
string full_error_message: string ref,
int location: @location_default ref
);
/*- Diagnostic messages: severity -*/
case @diagnostic.severity of
10 = @diagnostic_debug
| 20 = @diagnostic_info
| 30 = @diagnostic_warning
| 40 = @diagnostic_error
;
/*- YAML -*/
#keyset[parent, idx]
yaml (unique int id: @yaml_node,
int kind: int ref,
int parent: @yaml_node_parent ref,
int idx: int ref,
string tag: string ref,
string tostring: string ref);
case @yaml_node.kind of
0 = @yaml_scalar_node
| 1 = @yaml_mapping_node
| 2 = @yaml_sequence_node
| 3 = @yaml_alias_node
;
@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node;
@yaml_node_parent = @yaml_collection_node | @file;
yaml_anchors (unique int node: @yaml_node ref,
string anchor: string ref);
yaml_aliases (unique int alias: @yaml_alias_node ref,
string target: string ref);
yaml_scalars (unique int scalar: @yaml_scalar_node ref,
int style: int ref,
string value: string ref);
yaml_errors (unique int id: @yaml_error,
string message: string ref);
yaml_locations(unique int locatable: @yaml_locatable ref,
int location: @location_default ref);
@yaml_locatable = @yaml_node | @yaml_error;
// from prefix.dbscheme
#keyset[id]
locatable_locations(
int id: @locatable ref,
int location: @location_default ref
);
// from schema
@element =
@extractor_step
| @locatable
| @named_crate
| @unextracted
;
extractor_steps(
unique int id: @extractor_step,
string action: string ref,
int duration_ms: int ref
);
#keyset[id]
extractor_step_files(
int id: @extractor_step ref,
int file: @file ref
);
@locatable =
@ast_node
| @crate
;
named_crates(
unique int id: @named_crate,
string name: string ref,
int crate: @crate ref
);
@unextracted =
@missing
| @unimplemented
;
@ast_node =
@abi
| @addressable
| @arg_list
| @asm_dir_spec
| @asm_operand
| @asm_operand_expr
| @asm_option
| @asm_piece
| @asm_reg_spec
| @assoc_item
| @assoc_item_list
| @attr
| @callable
| @closure_binder
| @expr
| @extern_item
| @extern_item_list
| @field_list
| @format_args_arg
| @generic_arg
| @generic_arg_list
| @generic_param
| @generic_param_list
| @item_list
| @label
| @let_else
| @macro_items
| @match_arm
| @match_arm_list
| @match_guard
| @meta
| @name
| @param_base
| @param_list
| @parenthesized_arg_list
| @pat
| @path
| @path_segment
| @rename
| @resolvable
| @ret_type_repr
| @return_type_syntax
| @source_file
| @stmt
| @stmt_list
| @struct_expr_field
| @struct_expr_field_list
| @struct_field
| @struct_pat_field
| @struct_pat_field_list
| @token
| @token_tree
| @tuple_field
| @type_bound
| @type_bound_list
| @type_repr
| @use_bound_generic_arg
| @use_bound_generic_args
| @use_tree
| @use_tree_list
| @variant_def
| @variant_list
| @visibility
| @where_clause
| @where_pred
;
crates(
unique int id: @crate
);
#keyset[id]
crate_names(
int id: @crate ref,
string name: string ref
);
#keyset[id]
crate_versions(
int id: @crate ref,
string version: string ref
);
#keyset[id, index]
crate_cfg_options(
int id: @crate ref,
int index: int ref,
string cfg_option: string ref
);
#keyset[id, index]
crate_named_dependencies(
int id: @crate ref,
int index: int ref,
int named_dependency: @named_crate ref
);
missings(
unique int id: @missing
);
unimplementeds(
unique int id: @unimplemented
);
abis(
unique int id: @abi
);
#keyset[id]
abi_abi_strings(
int id: @abi ref,
string abi_string: string ref
);
@addressable =
@item
| @variant
;
#keyset[id]
addressable_extended_canonical_paths(
int id: @addressable ref,
string extended_canonical_path: string ref
);
#keyset[id]
addressable_crate_origins(
int id: @addressable ref,
string crate_origin: string ref
);
arg_lists(
unique int id: @arg_list
);
#keyset[id, index]
arg_list_args(
int id: @arg_list ref,
int index: int ref,
int arg: @expr ref
);
asm_dir_specs(
unique int id: @asm_dir_spec
);
@asm_operand =
@asm_const
| @asm_label
| @asm_reg_operand
| @asm_sym
;
asm_operand_exprs(
unique int id: @asm_operand_expr
);
#keyset[id]
asm_operand_expr_in_exprs(
int id: @asm_operand_expr ref,
int in_expr: @expr ref
);
#keyset[id]
asm_operand_expr_out_exprs(
int id: @asm_operand_expr ref,
int out_expr: @expr ref
);
asm_options(
unique int id: @asm_option
);
#keyset[id]
asm_option_is_raw(
int id: @asm_option ref
);
@asm_piece =
@asm_clobber_abi
| @asm_operand_named
| @asm_options_list
;
asm_reg_specs(
unique int id: @asm_reg_spec
);
#keyset[id]
asm_reg_spec_identifiers(
int id: @asm_reg_spec ref,
int identifier: @name_ref ref
);
@assoc_item =
@const
| @function
| @macro_call
| @type_alias
;
assoc_item_lists(
unique int id: @assoc_item_list
);
#keyset[id, index]
assoc_item_list_assoc_items(
int id: @assoc_item_list ref,
int index: int ref,
int assoc_item: @assoc_item ref
);
#keyset[id, index]
assoc_item_list_attrs(
int id: @assoc_item_list ref,
int index: int ref,
int attr: @attr ref
);
attrs(
unique int id: @attr
);
#keyset[id]
attr_meta(
int id: @attr ref,
int meta: @meta ref
);
@callable =
@closure_expr
| @function
;
#keyset[id]
callable_param_lists(
int id: @callable ref,
int param_list: @param_list ref
);
#keyset[id, index]
callable_attrs(
int id: @callable ref,
int index: int ref,
int attr: @attr ref
);
closure_binders(
unique int id: @closure_binder
);
#keyset[id]
closure_binder_generic_param_lists(
int id: @closure_binder ref,
int generic_param_list: @generic_param_list ref
);
@expr =
@array_expr_internal
| @asm_expr
| @await_expr
| @become_expr
| @binary_expr
| @break_expr
| @call_expr_base
| @cast_expr
| @closure_expr
| @continue_expr
| @field_expr
| @format_args_expr
| @if_expr
| @index_expr
| @labelable_expr
| @let_expr
| @literal_expr
| @macro_block_expr
| @macro_expr
| @match_expr
| @offset_of_expr
| @paren_expr
| @path_expr_base
| @prefix_expr
| @range_expr
| @ref_expr
| @return_expr
| @struct_expr
| @try_expr
| @tuple_expr
| @underscore_expr
| @yeet_expr
| @yield_expr
;
@extern_item =
@function
| @macro_call
| @static
| @type_alias
;
extern_item_lists(
unique int id: @extern_item_list
);
#keyset[id, index]
extern_item_list_attrs(
int id: @extern_item_list ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id, index]
extern_item_list_extern_items(
int id: @extern_item_list ref,
int index: int ref,
int extern_item: @extern_item ref
);
@field_list =
@struct_field_list
| @tuple_field_list
;
format_args_args(
unique int id: @format_args_arg
);
#keyset[id]
format_args_arg_exprs(
int id: @format_args_arg ref,
int expr: @expr ref
);
#keyset[id]
format_args_arg_names(
int id: @format_args_arg ref,
int name: @name ref
);
@generic_arg =
@assoc_type_arg
| @const_arg
| @lifetime_arg
| @type_arg
;
generic_arg_lists(
unique int id: @generic_arg_list
);
#keyset[id, index]
generic_arg_list_generic_args(
int id: @generic_arg_list ref,
int index: int ref,
int generic_arg: @generic_arg ref
);
@generic_param =
@const_param
| @lifetime_param
| @type_param
;
generic_param_lists(
unique int id: @generic_param_list
);
#keyset[id, index]
generic_param_list_generic_params(
int id: @generic_param_list ref,
int index: int ref,
int generic_param: @generic_param ref
);
item_lists(
unique int id: @item_list
);
#keyset[id, index]
item_list_attrs(
int id: @item_list ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id, index]
item_list_items(
int id: @item_list ref,
int index: int ref,
int item: @item ref
);
labels(
unique int id: @label
);
#keyset[id]
label_lifetimes(
int id: @label ref,
int lifetime: @lifetime ref
);
let_elses(
unique int id: @let_else
);
#keyset[id]
let_else_block_exprs(
int id: @let_else ref,
int block_expr: @block_expr ref
);
macro_items(
unique int id: @macro_items
);
#keyset[id, index]
macro_items_items(
int id: @macro_items ref,
int index: int ref,
int item: @item ref
);
match_arms(
unique int id: @match_arm
);
#keyset[id, index]
match_arm_attrs(
int id: @match_arm ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
match_arm_exprs(
int id: @match_arm ref,
int expr: @expr ref
);
#keyset[id]
match_arm_guards(
int id: @match_arm ref,
int guard: @match_guard ref
);
#keyset[id]
match_arm_pats(
int id: @match_arm ref,
int pat: @pat ref
);
match_arm_lists(
unique int id: @match_arm_list
);
#keyset[id, index]
match_arm_list_arms(
int id: @match_arm_list ref,
int index: int ref,
int arm: @match_arm ref
);
#keyset[id, index]
match_arm_list_attrs(
int id: @match_arm_list ref,
int index: int ref,
int attr: @attr ref
);
match_guards(
unique int id: @match_guard
);
#keyset[id]
match_guard_conditions(
int id: @match_guard ref,
int condition: @expr ref
);
meta(
unique int id: @meta
);
#keyset[id]
meta_exprs(
int id: @meta ref,
int expr: @expr ref
);
#keyset[id]
meta_is_unsafe(
int id: @meta ref
);
#keyset[id]
meta_paths(
int id: @meta ref,
int path: @path ref
);
#keyset[id]
meta_token_trees(
int id: @meta ref,
int token_tree: @token_tree ref
);
names(
unique int id: @name
);
#keyset[id]
name_texts(
int id: @name ref,
string text: string ref
);
@param_base =
@param
| @self_param
;
#keyset[id, index]
param_base_attrs(
int id: @param_base ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
param_base_type_reprs(
int id: @param_base ref,
int type_repr: @type_repr ref
);
param_lists(
unique int id: @param_list
);
#keyset[id, index]
param_list_params(
int id: @param_list ref,
int index: int ref,
int param: @param ref
);
#keyset[id]
param_list_self_params(
int id: @param_list ref,
int self_param: @self_param ref
);
parenthesized_arg_lists(
unique int id: @parenthesized_arg_list
);
#keyset[id, index]
parenthesized_arg_list_type_args(
int id: @parenthesized_arg_list ref,
int index: int ref,
int type_arg: @type_arg ref
);
@pat =
@box_pat
| @const_block_pat
| @ident_pat
| @literal_pat
| @macro_pat
| @or_pat
| @paren_pat
| @path_pat
| @range_pat
| @ref_pat
| @rest_pat
| @slice_pat
| @struct_pat
| @tuple_pat
| @tuple_struct_pat
| @wildcard_pat
;
paths(
unique int id: @path
);
#keyset[id]
path_qualifiers(
int id: @path ref,
int qualifier: @path ref
);
#keyset[id]
path_segments_(
int id: @path ref,
int segment: @path_segment ref
);
path_segments(
unique int id: @path_segment
);
#keyset[id]
path_segment_generic_arg_lists(
int id: @path_segment ref,
int generic_arg_list: @generic_arg_list ref
);
#keyset[id]
path_segment_identifiers(
int id: @path_segment ref,
int identifier: @name_ref ref
);
#keyset[id]
path_segment_parenthesized_arg_lists(
int id: @path_segment ref,
int parenthesized_arg_list: @parenthesized_arg_list ref
);
#keyset[id]
path_segment_ret_types(
int id: @path_segment ref,
int ret_type: @ret_type_repr ref
);
#keyset[id]
path_segment_return_type_syntaxes(
int id: @path_segment ref,
int return_type_syntax: @return_type_syntax ref
);
#keyset[id]
path_segment_type_reprs(
int id: @path_segment ref,
int type_repr: @type_repr ref
);
#keyset[id]
path_segment_trait_type_reprs(
int id: @path_segment ref,
int trait_type_repr: @path_type_repr ref
);
renames(
unique int id: @rename
);
#keyset[id]
rename_names(
int id: @rename ref,
int name: @name ref
);
@resolvable =
@method_call_expr
| @path_ast_node
;
#keyset[id]
resolvable_resolved_paths(
int id: @resolvable ref,
string resolved_path: string ref
);
#keyset[id]
resolvable_resolved_crate_origins(
int id: @resolvable ref,
string resolved_crate_origin: string ref
);
ret_type_reprs(
unique int id: @ret_type_repr
);
#keyset[id]
ret_type_repr_type_reprs(
int id: @ret_type_repr ref,
int type_repr: @type_repr ref
);
return_type_syntaxes(
unique int id: @return_type_syntax
);
source_files(
unique int id: @source_file
);
#keyset[id, index]
source_file_attrs(
int id: @source_file ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id, index]
source_file_items(
int id: @source_file ref,
int index: int ref,
int item: @item ref
);
@stmt =
@expr_stmt
| @item
| @let_stmt
;
stmt_lists(
unique int id: @stmt_list
);
#keyset[id, index]
stmt_list_attrs(
int id: @stmt_list ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id, index]
stmt_list_statements(
int id: @stmt_list ref,
int index: int ref,
int statement: @stmt ref
);
#keyset[id]
stmt_list_tail_exprs(
int id: @stmt_list ref,
int tail_expr: @expr ref
);
struct_expr_fields(
unique int id: @struct_expr_field
);
#keyset[id, index]
struct_expr_field_attrs(
int id: @struct_expr_field ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
struct_expr_field_exprs(
int id: @struct_expr_field ref,
int expr: @expr ref
);
#keyset[id]
struct_expr_field_identifiers(
int id: @struct_expr_field ref,
int identifier: @name_ref ref
);
struct_expr_field_lists(
unique int id: @struct_expr_field_list
);
#keyset[id, index]
struct_expr_field_list_attrs(
int id: @struct_expr_field_list ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id, index]
struct_expr_field_list_fields(
int id: @struct_expr_field_list ref,
int index: int ref,
int field: @struct_expr_field ref
);
#keyset[id]
struct_expr_field_list_spreads(
int id: @struct_expr_field_list ref,
int spread: @expr ref
);
struct_fields(
unique int id: @struct_field
);
#keyset[id, index]
struct_field_attrs(
int id: @struct_field ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
struct_field_defaults(
int id: @struct_field ref,
int default: @expr ref
);
#keyset[id]
struct_field_is_unsafe(
int id: @struct_field ref
);
#keyset[id]
struct_field_names(
int id: @struct_field ref,
int name: @name ref
);
#keyset[id]
struct_field_type_reprs(
int id: @struct_field ref,
int type_repr: @type_repr ref
);
#keyset[id]
struct_field_visibilities(
int id: @struct_field ref,
int visibility: @visibility ref
);
struct_pat_fields(
unique int id: @struct_pat_field
);
#keyset[id, index]
struct_pat_field_attrs(
int id: @struct_pat_field ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
struct_pat_field_identifiers(
int id: @struct_pat_field ref,
int identifier: @name_ref ref
);
#keyset[id]
struct_pat_field_pats(
int id: @struct_pat_field ref,
int pat: @pat ref
);
struct_pat_field_lists(
unique int id: @struct_pat_field_list
);
#keyset[id, index]
struct_pat_field_list_fields(
int id: @struct_pat_field_list ref,
int index: int ref,
int field: @struct_pat_field ref
);
#keyset[id]
struct_pat_field_list_rest_pats(
int id: @struct_pat_field_list ref,
int rest_pat: @rest_pat ref
);
@token =
@comment
;
token_trees(
unique int id: @token_tree
);
tuple_fields(
unique int id: @tuple_field
);
#keyset[id, index]
tuple_field_attrs(
int id: @tuple_field ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
tuple_field_type_reprs(
int id: @tuple_field ref,
int type_repr: @type_repr ref
);
#keyset[id]
tuple_field_visibilities(
int id: @tuple_field ref,
int visibility: @visibility ref
);
type_bounds(
unique int id: @type_bound
);
#keyset[id]
type_bound_is_async(
int id: @type_bound ref
);
#keyset[id]
type_bound_is_const(
int id: @type_bound ref
);
#keyset[id]
type_bound_lifetimes(
int id: @type_bound ref,
int lifetime: @lifetime ref
);
#keyset[id]
type_bound_type_reprs(
int id: @type_bound ref,
int type_repr: @type_repr ref
);
#keyset[id]
type_bound_use_bound_generic_args(
int id: @type_bound ref,
int use_bound_generic_args: @use_bound_generic_args ref
);
type_bound_lists(
unique int id: @type_bound_list
);
#keyset[id, index]
type_bound_list_bounds(
int id: @type_bound_list ref,
int index: int ref,
int bound: @type_bound ref
);
@type_repr =
@array_type_repr
| @dyn_trait_type_repr
| @fn_ptr_type_repr
| @for_type_repr
| @impl_trait_type_repr
| @infer_type_repr
| @macro_type_repr
| @never_type_repr
| @paren_type_repr
| @path_type_repr
| @ptr_type_repr
| @ref_type_repr
| @slice_type_repr
| @tuple_type_repr
;
@use_bound_generic_arg =
@lifetime
| @name_ref
;
use_bound_generic_args(
unique int id: @use_bound_generic_args
);
#keyset[id, index]
use_bound_generic_args_use_bound_generic_args(
int id: @use_bound_generic_args ref,
int index: int ref,
int use_bound_generic_arg: @use_bound_generic_arg ref
);
use_trees(
unique int id: @use_tree
);
#keyset[id]
use_tree_is_glob(
int id: @use_tree ref
);
#keyset[id]
use_tree_paths(
int id: @use_tree ref,
int path: @path ref
);
#keyset[id]
use_tree_renames(
int id: @use_tree ref,
int rename: @rename ref
);
#keyset[id]
use_tree_use_tree_lists(
int id: @use_tree ref,
int use_tree_list: @use_tree_list ref
);
use_tree_lists(
unique int id: @use_tree_list
);
#keyset[id, index]
use_tree_list_use_trees(
int id: @use_tree_list ref,
int index: int ref,
int use_tree: @use_tree ref
);
@variant_def =
@struct
| @union
| @variant
;
variant_lists(
unique int id: @variant_list
);
#keyset[id, index]
variant_list_variants(
int id: @variant_list ref,
int index: int ref,
int variant: @variant ref
);
visibilities(
unique int id: @visibility
);
#keyset[id]
visibility_paths(
int id: @visibility ref,
int path: @path ref
);
where_clauses(
unique int id: @where_clause
);
#keyset[id, index]
where_clause_predicates(
int id: @where_clause ref,
int index: int ref,
int predicate: @where_pred ref
);
where_preds(
unique int id: @where_pred
);
#keyset[id]
where_pred_generic_param_lists(
int id: @where_pred ref,
int generic_param_list: @generic_param_list ref
);
#keyset[id]
where_pred_lifetimes(
int id: @where_pred ref,
int lifetime: @lifetime ref
);
#keyset[id]
where_pred_type_reprs(
int id: @where_pred ref,
int type_repr: @type_repr ref
);
#keyset[id]
where_pred_type_bound_lists(
int id: @where_pred ref,
int type_bound_list: @type_bound_list ref
);
array_expr_internals(
unique int id: @array_expr_internal
);
#keyset[id, index]
array_expr_internal_attrs(
int id: @array_expr_internal ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id, index]
array_expr_internal_exprs(
int id: @array_expr_internal ref,
int index: int ref,
int expr: @expr ref
);
#keyset[id]
array_expr_internal_is_semicolon(
int id: @array_expr_internal ref
);
array_type_reprs(
unique int id: @array_type_repr
);
#keyset[id]
array_type_repr_const_args(
int id: @array_type_repr ref,
int const_arg: @const_arg ref
);
#keyset[id]
array_type_repr_element_type_reprs(
int id: @array_type_repr ref,
int element_type_repr: @type_repr ref
);
asm_clobber_abis(
unique int id: @asm_clobber_abi
);
asm_consts(
unique int id: @asm_const
);
#keyset[id]
asm_const_exprs(
int id: @asm_const ref,
int expr: @expr ref
);
#keyset[id]
asm_const_is_const(
int id: @asm_const ref
);
asm_exprs(
unique int id: @asm_expr
);
#keyset[id, index]
asm_expr_asm_pieces(
int id: @asm_expr ref,
int index: int ref,
int asm_piece: @asm_piece ref
);
#keyset[id, index]
asm_expr_attrs(
int id: @asm_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id, index]
asm_expr_templates(
int id: @asm_expr ref,
int index: int ref,
int template: @expr ref
);
asm_labels(
unique int id: @asm_label
);
#keyset[id]
asm_label_block_exprs(
int id: @asm_label ref,
int block_expr: @block_expr ref
);
asm_operand_nameds(
unique int id: @asm_operand_named
);
#keyset[id]
asm_operand_named_asm_operands(
int id: @asm_operand_named ref,
int asm_operand: @asm_operand ref
);
#keyset[id]
asm_operand_named_names(
int id: @asm_operand_named ref,
int name: @name ref
);
asm_options_lists(
unique int id: @asm_options_list
);
#keyset[id, index]
asm_options_list_asm_options(
int id: @asm_options_list ref,
int index: int ref,
int asm_option: @asm_option ref
);
asm_reg_operands(
unique int id: @asm_reg_operand
);
#keyset[id]
asm_reg_operand_asm_dir_specs(
int id: @asm_reg_operand ref,
int asm_dir_spec: @asm_dir_spec ref
);
#keyset[id]
asm_reg_operand_asm_operand_exprs(
int id: @asm_reg_operand ref,
int asm_operand_expr: @asm_operand_expr ref
);
#keyset[id]
asm_reg_operand_asm_reg_specs(
int id: @asm_reg_operand ref,
int asm_reg_spec: @asm_reg_spec ref
);
asm_syms(
unique int id: @asm_sym
);
#keyset[id]
asm_sym_paths(
int id: @asm_sym ref,
int path: @path ref
);
assoc_type_args(
unique int id: @assoc_type_arg
);
#keyset[id]
assoc_type_arg_const_args(
int id: @assoc_type_arg ref,
int const_arg: @const_arg ref
);
#keyset[id]
assoc_type_arg_generic_arg_lists(
int id: @assoc_type_arg ref,
int generic_arg_list: @generic_arg_list ref
);
#keyset[id]
assoc_type_arg_identifiers(
int id: @assoc_type_arg ref,
int identifier: @name_ref ref
);
#keyset[id]
assoc_type_arg_param_lists(
int id: @assoc_type_arg ref,
int param_list: @param_list ref
);
#keyset[id]
assoc_type_arg_ret_types(
int id: @assoc_type_arg ref,
int ret_type: @ret_type_repr ref
);
#keyset[id]
assoc_type_arg_return_type_syntaxes(
int id: @assoc_type_arg ref,
int return_type_syntax: @return_type_syntax ref
);
#keyset[id]
assoc_type_arg_type_reprs(
int id: @assoc_type_arg ref,
int type_repr: @type_repr ref
);
#keyset[id]
assoc_type_arg_type_bound_lists(
int id: @assoc_type_arg ref,
int type_bound_list: @type_bound_list ref
);
await_exprs(
unique int id: @await_expr
);
#keyset[id, index]
await_expr_attrs(
int id: @await_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
await_expr_exprs(
int id: @await_expr ref,
int expr: @expr ref
);
become_exprs(
unique int id: @become_expr
);
#keyset[id, index]
become_expr_attrs(
int id: @become_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
become_expr_exprs(
int id: @become_expr ref,
int expr: @expr ref
);
binary_exprs(
unique int id: @binary_expr
);
#keyset[id, index]
binary_expr_attrs(
int id: @binary_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
binary_expr_lhs(
int id: @binary_expr ref,
int lhs: @expr ref
);
#keyset[id]
binary_expr_operator_names(
int id: @binary_expr ref,
string operator_name: string ref
);
#keyset[id]
binary_expr_rhs(
int id: @binary_expr ref,
int rhs: @expr ref
);
box_pats(
unique int id: @box_pat
);
#keyset[id]
box_pat_pats(
int id: @box_pat ref,
int pat: @pat ref
);
break_exprs(
unique int id: @break_expr
);
#keyset[id, index]
break_expr_attrs(
int id: @break_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
break_expr_exprs(
int id: @break_expr ref,
int expr: @expr ref
);
#keyset[id]
break_expr_lifetimes(
int id: @break_expr ref,
int lifetime: @lifetime ref
);
@call_expr_base =
@call_expr
| @method_call_expr
;
#keyset[id]
call_expr_base_arg_lists(
int id: @call_expr_base ref,
int arg_list: @arg_list ref
);
#keyset[id, index]
call_expr_base_attrs(
int id: @call_expr_base ref,
int index: int ref,
int attr: @attr ref
);
cast_exprs(
unique int id: @cast_expr
);
#keyset[id, index]
cast_expr_attrs(
int id: @cast_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
cast_expr_exprs(
int id: @cast_expr ref,
int expr: @expr ref
);
#keyset[id]
cast_expr_type_reprs(
int id: @cast_expr ref,
int type_repr: @type_repr ref
);
closure_exprs(
unique int id: @closure_expr
);
#keyset[id]
closure_expr_bodies(
int id: @closure_expr ref,
int body: @expr ref
);
#keyset[id]
closure_expr_closure_binders(
int id: @closure_expr ref,
int closure_binder: @closure_binder ref
);
#keyset[id]
closure_expr_is_async(
int id: @closure_expr ref
);
#keyset[id]
closure_expr_is_const(
int id: @closure_expr ref
);
#keyset[id]
closure_expr_is_gen(
int id: @closure_expr ref
);
#keyset[id]
closure_expr_is_move(
int id: @closure_expr ref
);
#keyset[id]
closure_expr_is_static(
int id: @closure_expr ref
);
#keyset[id]
closure_expr_ret_types(
int id: @closure_expr ref,
int ret_type: @ret_type_repr ref
);
comments(
unique int id: @comment,
int parent: @ast_node ref,
string text: string ref
);
const_args(
unique int id: @const_arg
);
#keyset[id]
const_arg_exprs(
int id: @const_arg ref,
int expr: @expr ref
);
const_block_pats(
unique int id: @const_block_pat
);
#keyset[id]
const_block_pat_block_exprs(
int id: @const_block_pat ref,
int block_expr: @block_expr ref
);
#keyset[id]
const_block_pat_is_const(
int id: @const_block_pat ref
);
const_params(
unique int id: @const_param
);
#keyset[id, index]
const_param_attrs(
int id: @const_param ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
const_param_default_vals(
int id: @const_param ref,
int default_val: @const_arg ref
);
#keyset[id]
const_param_is_const(
int id: @const_param ref
);
#keyset[id]
const_param_names(
int id: @const_param ref,
int name: @name ref
);
#keyset[id]
const_param_type_reprs(
int id: @const_param ref,
int type_repr: @type_repr ref
);
continue_exprs(
unique int id: @continue_expr
);
#keyset[id, index]
continue_expr_attrs(
int id: @continue_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
continue_expr_lifetimes(
int id: @continue_expr ref,
int lifetime: @lifetime ref
);
dyn_trait_type_reprs(
unique int id: @dyn_trait_type_repr
);
#keyset[id]
dyn_trait_type_repr_type_bound_lists(
int id: @dyn_trait_type_repr ref,
int type_bound_list: @type_bound_list ref
);
expr_stmts(
unique int id: @expr_stmt
);
#keyset[id]
expr_stmt_exprs(
int id: @expr_stmt ref,
int expr: @expr ref
);
field_exprs(
unique int id: @field_expr
);
#keyset[id, index]
field_expr_attrs(
int id: @field_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
field_expr_containers(
int id: @field_expr ref,
int container: @expr ref
);
#keyset[id]
field_expr_identifiers(
int id: @field_expr ref,
int identifier: @name_ref ref
);
fn_ptr_type_reprs(
unique int id: @fn_ptr_type_repr
);
#keyset[id]
fn_ptr_type_repr_abis(
int id: @fn_ptr_type_repr ref,
int abi: @abi ref
);
#keyset[id]
fn_ptr_type_repr_is_async(
int id: @fn_ptr_type_repr ref
);
#keyset[id]
fn_ptr_type_repr_is_const(
int id: @fn_ptr_type_repr ref
);
#keyset[id]
fn_ptr_type_repr_is_unsafe(
int id: @fn_ptr_type_repr ref
);
#keyset[id]
fn_ptr_type_repr_param_lists(
int id: @fn_ptr_type_repr ref,
int param_list: @param_list ref
);
#keyset[id]
fn_ptr_type_repr_ret_types(
int id: @fn_ptr_type_repr ref,
int ret_type: @ret_type_repr ref
);
for_type_reprs(
unique int id: @for_type_repr
);
#keyset[id]
for_type_repr_generic_param_lists(
int id: @for_type_repr ref,
int generic_param_list: @generic_param_list ref
);
#keyset[id]
for_type_repr_type_reprs(
int id: @for_type_repr ref,
int type_repr: @type_repr ref
);
format_args_exprs(
unique int id: @format_args_expr
);
#keyset[id, index]
format_args_expr_args(
int id: @format_args_expr ref,
int index: int ref,
int arg: @format_args_arg ref
);
#keyset[id, index]
format_args_expr_attrs(
int id: @format_args_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
format_args_expr_templates(
int id: @format_args_expr ref,
int template: @expr ref
);
ident_pats(
unique int id: @ident_pat
);
#keyset[id, index]
ident_pat_attrs(
int id: @ident_pat ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
ident_pat_is_mut(
int id: @ident_pat ref
);
#keyset[id]
ident_pat_is_ref(
int id: @ident_pat ref
);
#keyset[id]
ident_pat_names(
int id: @ident_pat ref,
int name: @name ref
);
#keyset[id]
ident_pat_pats(
int id: @ident_pat ref,
int pat: @pat ref
);
if_exprs(
unique int id: @if_expr
);
#keyset[id, index]
if_expr_attrs(
int id: @if_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
if_expr_conditions(
int id: @if_expr ref,
int condition: @expr ref
);
#keyset[id]
if_expr_elses(
int id: @if_expr ref,
int else: @expr ref
);
#keyset[id]
if_expr_thens(
int id: @if_expr ref,
int then: @block_expr ref
);
impl_trait_type_reprs(
unique int id: @impl_trait_type_repr
);
#keyset[id]
impl_trait_type_repr_type_bound_lists(
int id: @impl_trait_type_repr ref,
int type_bound_list: @type_bound_list ref
);
index_exprs(
unique int id: @index_expr
);
#keyset[id, index]
index_expr_attrs(
int id: @index_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
index_expr_bases(
int id: @index_expr ref,
int base: @expr ref
);
#keyset[id]
index_expr_indices(
int id: @index_expr ref,
int index: @expr ref
);
infer_type_reprs(
unique int id: @infer_type_repr
);
@item =
@const
| @enum
| @extern_block
| @extern_crate
| @function
| @impl
| @macro_call
| @macro_def
| @macro_rules
| @module
| @static
| @struct
| @trait
| @trait_alias
| @type_alias
| @union
| @use
;
#keyset[id]
item_attribute_macro_expansions(
int id: @item ref,
int attribute_macro_expansion: @macro_items ref
);
@labelable_expr =
@block_expr
| @looping_expr
;
#keyset[id]
labelable_expr_labels(
int id: @labelable_expr ref,
int label: @label ref
);
let_exprs(
unique int id: @let_expr
);
#keyset[id, index]
let_expr_attrs(
int id: @let_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
let_expr_scrutinees(
int id: @let_expr ref,
int scrutinee: @expr ref
);
#keyset[id]
let_expr_pats(
int id: @let_expr ref,
int pat: @pat ref
);
let_stmts(
unique int id: @let_stmt
);
#keyset[id, index]
let_stmt_attrs(
int id: @let_stmt ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
let_stmt_initializers(
int id: @let_stmt ref,
int initializer: @expr ref
);
#keyset[id]
let_stmt_let_elses(
int id: @let_stmt ref,
int let_else: @let_else ref
);
#keyset[id]
let_stmt_pats(
int id: @let_stmt ref,
int pat: @pat ref
);
#keyset[id]
let_stmt_type_reprs(
int id: @let_stmt ref,
int type_repr: @type_repr ref
);
lifetimes(
unique int id: @lifetime
);
#keyset[id]
lifetime_texts(
int id: @lifetime ref,
string text: string ref
);
lifetime_args(
unique int id: @lifetime_arg
);
#keyset[id]
lifetime_arg_lifetimes(
int id: @lifetime_arg ref,
int lifetime: @lifetime ref
);
lifetime_params(
unique int id: @lifetime_param
);
#keyset[id, index]
lifetime_param_attrs(
int id: @lifetime_param ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
lifetime_param_lifetimes(
int id: @lifetime_param ref,
int lifetime: @lifetime ref
);
#keyset[id]
lifetime_param_type_bound_lists(
int id: @lifetime_param ref,
int type_bound_list: @type_bound_list ref
);
literal_exprs(
unique int id: @literal_expr
);
#keyset[id, index]
literal_expr_attrs(
int id: @literal_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
literal_expr_text_values(
int id: @literal_expr ref,
string text_value: string ref
);
literal_pats(
unique int id: @literal_pat
);
#keyset[id]
literal_pat_literals(
int id: @literal_pat ref,
int literal: @literal_expr ref
);
macro_block_exprs(
unique int id: @macro_block_expr
);
#keyset[id]
macro_block_expr_tail_exprs(
int id: @macro_block_expr ref,
int tail_expr: @expr ref
);
#keyset[id, index]
macro_block_expr_statements(
int id: @macro_block_expr ref,
int index: int ref,
int statement: @stmt ref
);
macro_exprs(
unique int id: @macro_expr
);
#keyset[id]
macro_expr_macro_calls(
int id: @macro_expr ref,
int macro_call: @macro_call ref
);
macro_pats(
unique int id: @macro_pat
);
#keyset[id]
macro_pat_macro_calls(
int id: @macro_pat ref,
int macro_call: @macro_call ref
);
macro_type_reprs(
unique int id: @macro_type_repr
);
#keyset[id]
macro_type_repr_macro_calls(
int id: @macro_type_repr ref,
int macro_call: @macro_call ref
);
match_exprs(
unique int id: @match_expr
);
#keyset[id, index]
match_expr_attrs(
int id: @match_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
match_expr_scrutinees(
int id: @match_expr ref,
int scrutinee: @expr ref
);
#keyset[id]
match_expr_match_arm_lists(
int id: @match_expr ref,
int match_arm_list: @match_arm_list ref
);
name_refs(
unique int id: @name_ref
);
#keyset[id]
name_ref_texts(
int id: @name_ref ref,
string text: string ref
);
never_type_reprs(
unique int id: @never_type_repr
);
offset_of_exprs(
unique int id: @offset_of_expr
);
#keyset[id, index]
offset_of_expr_attrs(
int id: @offset_of_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id, index]
offset_of_expr_fields(
int id: @offset_of_expr ref,
int index: int ref,
int field: @name_ref ref
);
#keyset[id]
offset_of_expr_type_reprs(
int id: @offset_of_expr ref,
int type_repr: @type_repr ref
);
or_pats(
unique int id: @or_pat
);
#keyset[id, index]
or_pat_pats(
int id: @or_pat ref,
int index: int ref,
int pat: @pat ref
);
params(
unique int id: @param
);
#keyset[id]
param_pats(
int id: @param ref,
int pat: @pat ref
);
paren_exprs(
unique int id: @paren_expr
);
#keyset[id, index]
paren_expr_attrs(
int id: @paren_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
paren_expr_exprs(
int id: @paren_expr ref,
int expr: @expr ref
);
paren_pats(
unique int id: @paren_pat
);
#keyset[id]
paren_pat_pats(
int id: @paren_pat ref,
int pat: @pat ref
);
paren_type_reprs(
unique int id: @paren_type_repr
);
#keyset[id]
paren_type_repr_type_reprs(
int id: @paren_type_repr ref,
int type_repr: @type_repr ref
);
@path_ast_node =
@path_expr
| @path_pat
| @struct_expr
| @struct_pat
| @tuple_struct_pat
;
#keyset[id]
path_ast_node_paths(
int id: @path_ast_node ref,
int path: @path ref
);
@path_expr_base =
@path_expr
;
path_type_reprs(
unique int id: @path_type_repr
);
#keyset[id]
path_type_repr_paths(
int id: @path_type_repr ref,
int path: @path ref
);
prefix_exprs(
unique int id: @prefix_expr
);
#keyset[id, index]
prefix_expr_attrs(
int id: @prefix_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
prefix_expr_exprs(
int id: @prefix_expr ref,
int expr: @expr ref
);
#keyset[id]
prefix_expr_operator_names(
int id: @prefix_expr ref,
string operator_name: string ref
);
ptr_type_reprs(
unique int id: @ptr_type_repr
);
#keyset[id]
ptr_type_repr_is_const(
int id: @ptr_type_repr ref
);
#keyset[id]
ptr_type_repr_is_mut(
int id: @ptr_type_repr ref
);
#keyset[id]
ptr_type_repr_type_reprs(
int id: @ptr_type_repr ref,
int type_repr: @type_repr ref
);
range_exprs(
unique int id: @range_expr
);
#keyset[id, index]
range_expr_attrs(
int id: @range_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
range_expr_ends(
int id: @range_expr ref,
int end: @expr ref
);
#keyset[id]
range_expr_operator_names(
int id: @range_expr ref,
string operator_name: string ref
);
#keyset[id]
range_expr_starts(
int id: @range_expr ref,
int start: @expr ref
);
range_pats(
unique int id: @range_pat
);
#keyset[id]
range_pat_ends(
int id: @range_pat ref,
int end: @pat ref
);
#keyset[id]
range_pat_operator_names(
int id: @range_pat ref,
string operator_name: string ref
);
#keyset[id]
range_pat_starts(
int id: @range_pat ref,
int start: @pat ref
);
ref_exprs(
unique int id: @ref_expr
);
#keyset[id, index]
ref_expr_attrs(
int id: @ref_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
ref_expr_exprs(
int id: @ref_expr ref,
int expr: @expr ref
);
#keyset[id]
ref_expr_is_const(
int id: @ref_expr ref
);
#keyset[id]
ref_expr_is_mut(
int id: @ref_expr ref
);
#keyset[id]
ref_expr_is_raw(
int id: @ref_expr ref
);
ref_pats(
unique int id: @ref_pat
);
#keyset[id]
ref_pat_is_mut(
int id: @ref_pat ref
);
#keyset[id]
ref_pat_pats(
int id: @ref_pat ref,
int pat: @pat ref
);
ref_type_reprs(
unique int id: @ref_type_repr
);
#keyset[id]
ref_type_repr_is_mut(
int id: @ref_type_repr ref
);
#keyset[id]
ref_type_repr_lifetimes(
int id: @ref_type_repr ref,
int lifetime: @lifetime ref
);
#keyset[id]
ref_type_repr_type_reprs(
int id: @ref_type_repr ref,
int type_repr: @type_repr ref
);
rest_pats(
unique int id: @rest_pat
);
#keyset[id, index]
rest_pat_attrs(
int id: @rest_pat ref,
int index: int ref,
int attr: @attr ref
);
return_exprs(
unique int id: @return_expr
);
#keyset[id, index]
return_expr_attrs(
int id: @return_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
return_expr_exprs(
int id: @return_expr ref,
int expr: @expr ref
);
self_params(
unique int id: @self_param
);
#keyset[id]
self_param_is_ref(
int id: @self_param ref
);
#keyset[id]
self_param_is_mut(
int id: @self_param ref
);
#keyset[id]
self_param_lifetimes(
int id: @self_param ref,
int lifetime: @lifetime ref
);
#keyset[id]
self_param_names(
int id: @self_param ref,
int name: @name ref
);
slice_pats(
unique int id: @slice_pat
);
#keyset[id, index]
slice_pat_pats(
int id: @slice_pat ref,
int index: int ref,
int pat: @pat ref
);
slice_type_reprs(
unique int id: @slice_type_repr
);
#keyset[id]
slice_type_repr_type_reprs(
int id: @slice_type_repr ref,
int type_repr: @type_repr ref
);
struct_field_lists(
unique int id: @struct_field_list
);
#keyset[id, index]
struct_field_list_fields(
int id: @struct_field_list ref,
int index: int ref,
int field: @struct_field ref
);
try_exprs(
unique int id: @try_expr
);
#keyset[id, index]
try_expr_attrs(
int id: @try_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
try_expr_exprs(
int id: @try_expr ref,
int expr: @expr ref
);
tuple_exprs(
unique int id: @tuple_expr
);
#keyset[id, index]
tuple_expr_attrs(
int id: @tuple_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id, index]
tuple_expr_fields(
int id: @tuple_expr ref,
int index: int ref,
int field: @expr ref
);
tuple_field_lists(
unique int id: @tuple_field_list
);
#keyset[id, index]
tuple_field_list_fields(
int id: @tuple_field_list ref,
int index: int ref,
int field: @tuple_field ref
);
tuple_pats(
unique int id: @tuple_pat
);
#keyset[id, index]
tuple_pat_fields(
int id: @tuple_pat ref,
int index: int ref,
int field: @pat ref
);
tuple_type_reprs(
unique int id: @tuple_type_repr
);
#keyset[id, index]
tuple_type_repr_fields(
int id: @tuple_type_repr ref,
int index: int ref,
int field: @type_repr ref
);
type_args(
unique int id: @type_arg
);
#keyset[id]
type_arg_type_reprs(
int id: @type_arg ref,
int type_repr: @type_repr ref
);
type_params(
unique int id: @type_param
);
#keyset[id, index]
type_param_attrs(
int id: @type_param ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
type_param_default_types(
int id: @type_param ref,
int default_type: @type_repr ref
);
#keyset[id]
type_param_names(
int id: @type_param ref,
int name: @name ref
);
#keyset[id]
type_param_type_bound_lists(
int id: @type_param ref,
int type_bound_list: @type_bound_list ref
);
underscore_exprs(
unique int id: @underscore_expr
);
#keyset[id, index]
underscore_expr_attrs(
int id: @underscore_expr ref,
int index: int ref,
int attr: @attr ref
);
variants(
unique int id: @variant
);
#keyset[id, index]
variant_attrs(
int id: @variant ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
variant_discriminants(
int id: @variant ref,
int discriminant: @expr ref
);
#keyset[id]
variant_field_lists(
int id: @variant ref,
int field_list: @field_list ref
);
#keyset[id]
variant_names(
int id: @variant ref,
int name: @name ref
);
#keyset[id]
variant_visibilities(
int id: @variant ref,
int visibility: @visibility ref
);
wildcard_pats(
unique int id: @wildcard_pat
);
yeet_exprs(
unique int id: @yeet_expr
);
#keyset[id, index]
yeet_expr_attrs(
int id: @yeet_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
yeet_expr_exprs(
int id: @yeet_expr ref,
int expr: @expr ref
);
yield_exprs(
unique int id: @yield_expr
);
#keyset[id, index]
yield_expr_attrs(
int id: @yield_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
yield_expr_exprs(
int id: @yield_expr ref,
int expr: @expr ref
);
block_exprs(
unique int id: @block_expr
);
#keyset[id, index]
block_expr_attrs(
int id: @block_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
block_expr_is_async(
int id: @block_expr ref
);
#keyset[id]
block_expr_is_const(
int id: @block_expr ref
);
#keyset[id]
block_expr_is_gen(
int id: @block_expr ref
);
#keyset[id]
block_expr_is_move(
int id: @block_expr ref
);
#keyset[id]
block_expr_is_try(
int id: @block_expr ref
);
#keyset[id]
block_expr_is_unsafe(
int id: @block_expr ref
);
#keyset[id]
block_expr_stmt_lists(
int id: @block_expr ref,
int stmt_list: @stmt_list ref
);
call_exprs(
unique int id: @call_expr
);
#keyset[id]
call_expr_functions(
int id: @call_expr ref,
int function: @expr ref
);
consts(
unique int id: @const
);
#keyset[id, index]
const_attrs(
int id: @const ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
const_bodies(
int id: @const ref,
int body: @expr ref
);
#keyset[id]
const_is_const(
int id: @const ref
);
#keyset[id]
const_is_default(
int id: @const ref
);
#keyset[id]
const_names(
int id: @const ref,
int name: @name ref
);
#keyset[id]
const_type_reprs(
int id: @const ref,
int type_repr: @type_repr ref
);
#keyset[id]
const_visibilities(
int id: @const ref,
int visibility: @visibility ref
);
enums(
unique int id: @enum
);
#keyset[id, index]
enum_attrs(
int id: @enum ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
enum_generic_param_lists(
int id: @enum ref,
int generic_param_list: @generic_param_list ref
);
#keyset[id]
enum_names(
int id: @enum ref,
int name: @name ref
);
#keyset[id]
enum_variant_lists(
int id: @enum ref,
int variant_list: @variant_list ref
);
#keyset[id]
enum_visibilities(
int id: @enum ref,
int visibility: @visibility ref
);
#keyset[id]
enum_where_clauses(
int id: @enum ref,
int where_clause: @where_clause ref
);
extern_blocks(
unique int id: @extern_block
);
#keyset[id]
extern_block_abis(
int id: @extern_block ref,
int abi: @abi ref
);
#keyset[id, index]
extern_block_attrs(
int id: @extern_block ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
extern_block_extern_item_lists(
int id: @extern_block ref,
int extern_item_list: @extern_item_list ref
);
#keyset[id]
extern_block_is_unsafe(
int id: @extern_block ref
);
extern_crates(
unique int id: @extern_crate
);
#keyset[id, index]
extern_crate_attrs(
int id: @extern_crate ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
extern_crate_identifiers(
int id: @extern_crate ref,
int identifier: @name_ref ref
);
#keyset[id]
extern_crate_renames(
int id: @extern_crate ref,
int rename: @rename ref
);
#keyset[id]
extern_crate_visibilities(
int id: @extern_crate ref,
int visibility: @visibility ref
);
functions(
unique int id: @function
);
#keyset[id]
function_abis(
int id: @function ref,
int abi: @abi ref
);
#keyset[id]
function_bodies(
int id: @function ref,
int body: @block_expr ref
);
#keyset[id]
function_generic_param_lists(
int id: @function ref,
int generic_param_list: @generic_param_list ref
);
#keyset[id]
function_is_async(
int id: @function ref
);
#keyset[id]
function_is_const(
int id: @function ref
);
#keyset[id]
function_is_default(
int id: @function ref
);
#keyset[id]
function_is_gen(
int id: @function ref
);
#keyset[id]
function_is_unsafe(
int id: @function ref
);
#keyset[id]
function_names(
int id: @function ref,
int name: @name ref
);
#keyset[id]
function_ret_types(
int id: @function ref,
int ret_type: @ret_type_repr ref
);
#keyset[id]
function_visibilities(
int id: @function ref,
int visibility: @visibility ref
);
#keyset[id]
function_where_clauses(
int id: @function ref,
int where_clause: @where_clause ref
);
#keyset[id]
function_has_implementation(
int id: @function ref
);
impls(
unique int id: @impl
);
#keyset[id]
impl_assoc_item_lists(
int id: @impl ref,
int assoc_item_list: @assoc_item_list ref
);
#keyset[id, index]
impl_attrs(
int id: @impl ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
impl_generic_param_lists(
int id: @impl ref,
int generic_param_list: @generic_param_list ref
);
#keyset[id]
impl_is_const(
int id: @impl ref
);
#keyset[id]
impl_is_default(
int id: @impl ref
);
#keyset[id]
impl_is_unsafe(
int id: @impl ref
);
#keyset[id]
impl_self_ties(
int id: @impl ref,
int self_ty: @type_repr ref
);
#keyset[id]
impl_traits(
int id: @impl ref,
int trait: @type_repr ref
);
#keyset[id]
impl_visibilities(
int id: @impl ref,
int visibility: @visibility ref
);
#keyset[id]
impl_where_clauses(
int id: @impl ref,
int where_clause: @where_clause ref
);
@looping_expr =
@for_expr
| @loop_expr
| @while_expr
;
#keyset[id]
looping_expr_loop_bodies(
int id: @looping_expr ref,
int loop_body: @block_expr ref
);
macro_calls(
unique int id: @macro_call
);
#keyset[id, index]
macro_call_attrs(
int id: @macro_call ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
macro_call_paths(
int id: @macro_call ref,
int path: @path ref
);
#keyset[id]
macro_call_token_trees(
int id: @macro_call ref,
int token_tree: @token_tree ref
);
#keyset[id]
macro_call_macro_call_expansions(
int id: @macro_call ref,
int macro_call_expansion: @ast_node ref
);
macro_defs(
unique int id: @macro_def
);
#keyset[id]
macro_def_args(
int id: @macro_def ref,
int args: @token_tree ref
);
#keyset[id, index]
macro_def_attrs(
int id: @macro_def ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
macro_def_bodies(
int id: @macro_def ref,
int body: @token_tree ref
);
#keyset[id]
macro_def_names(
int id: @macro_def ref,
int name: @name ref
);
#keyset[id]
macro_def_visibilities(
int id: @macro_def ref,
int visibility: @visibility ref
);
macro_rules(
unique int id: @macro_rules
);
#keyset[id, index]
macro_rules_attrs(
int id: @macro_rules ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
macro_rules_names(
int id: @macro_rules ref,
int name: @name ref
);
#keyset[id]
macro_rules_token_trees(
int id: @macro_rules ref,
int token_tree: @token_tree ref
);
#keyset[id]
macro_rules_visibilities(
int id: @macro_rules ref,
int visibility: @visibility ref
);
method_call_exprs(
unique int id: @method_call_expr
);
#keyset[id]
method_call_expr_generic_arg_lists(
int id: @method_call_expr ref,
int generic_arg_list: @generic_arg_list ref
);
#keyset[id]
method_call_expr_identifiers(
int id: @method_call_expr ref,
int identifier: @name_ref ref
);
#keyset[id]
method_call_expr_receivers(
int id: @method_call_expr ref,
int receiver: @expr ref
);
modules(
unique int id: @module
);
#keyset[id, index]
module_attrs(
int id: @module ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
module_item_lists(
int id: @module ref,
int item_list: @item_list ref
);
#keyset[id]
module_names(
int id: @module ref,
int name: @name ref
);
#keyset[id]
module_visibilities(
int id: @module ref,
int visibility: @visibility ref
);
path_exprs(
unique int id: @path_expr
);
#keyset[id, index]
path_expr_attrs(
int id: @path_expr ref,
int index: int ref,
int attr: @attr ref
);
path_pats(
unique int id: @path_pat
);
statics(
unique int id: @static
);
#keyset[id, index]
static_attrs(
int id: @static ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
static_bodies(
int id: @static ref,
int body: @expr ref
);
#keyset[id]
static_is_mut(
int id: @static ref
);
#keyset[id]
static_is_static(
int id: @static ref
);
#keyset[id]
static_is_unsafe(
int id: @static ref
);
#keyset[id]
static_names(
int id: @static ref,
int name: @name ref
);
#keyset[id]
static_type_reprs(
int id: @static ref,
int type_repr: @type_repr ref
);
#keyset[id]
static_visibilities(
int id: @static ref,
int visibility: @visibility ref
);
structs(
unique int id: @struct
);
#keyset[id, index]
struct_attrs(
int id: @struct ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
struct_field_lists_(
int id: @struct ref,
int field_list: @field_list ref
);
#keyset[id]
struct_generic_param_lists(
int id: @struct ref,
int generic_param_list: @generic_param_list ref
);
#keyset[id]
struct_names(
int id: @struct ref,
int name: @name ref
);
#keyset[id]
struct_visibilities(
int id: @struct ref,
int visibility: @visibility ref
);
#keyset[id]
struct_where_clauses(
int id: @struct ref,
int where_clause: @where_clause ref
);
struct_exprs(
unique int id: @struct_expr
);
#keyset[id]
struct_expr_struct_expr_field_lists(
int id: @struct_expr ref,
int struct_expr_field_list: @struct_expr_field_list ref
);
struct_pats(
unique int id: @struct_pat
);
#keyset[id]
struct_pat_struct_pat_field_lists(
int id: @struct_pat ref,
int struct_pat_field_list: @struct_pat_field_list ref
);
traits(
unique int id: @trait
);
#keyset[id]
trait_assoc_item_lists(
int id: @trait ref,
int assoc_item_list: @assoc_item_list ref
);
#keyset[id, index]
trait_attrs(
int id: @trait ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
trait_generic_param_lists(
int id: @trait ref,
int generic_param_list: @generic_param_list ref
);
#keyset[id]
trait_is_auto(
int id: @trait ref
);
#keyset[id]
trait_is_unsafe(
int id: @trait ref
);
#keyset[id]
trait_names(
int id: @trait ref,
int name: @name ref
);
#keyset[id]
trait_type_bound_lists(
int id: @trait ref,
int type_bound_list: @type_bound_list ref
);
#keyset[id]
trait_visibilities(
int id: @trait ref,
int visibility: @visibility ref
);
#keyset[id]
trait_where_clauses(
int id: @trait ref,
int where_clause: @where_clause ref
);
trait_aliases(
unique int id: @trait_alias
);
#keyset[id, index]
trait_alias_attrs(
int id: @trait_alias ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
trait_alias_generic_param_lists(
int id: @trait_alias ref,
int generic_param_list: @generic_param_list ref
);
#keyset[id]
trait_alias_names(
int id: @trait_alias ref,
int name: @name ref
);
#keyset[id]
trait_alias_type_bound_lists(
int id: @trait_alias ref,
int type_bound_list: @type_bound_list ref
);
#keyset[id]
trait_alias_visibilities(
int id: @trait_alias ref,
int visibility: @visibility ref
);
#keyset[id]
trait_alias_where_clauses(
int id: @trait_alias ref,
int where_clause: @where_clause ref
);
tuple_struct_pats(
unique int id: @tuple_struct_pat
);
#keyset[id, index]
tuple_struct_pat_fields(
int id: @tuple_struct_pat ref,
int index: int ref,
int field: @pat ref
);
type_aliases(
unique int id: @type_alias
);
#keyset[id, index]
type_alias_attrs(
int id: @type_alias ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
type_alias_generic_param_lists(
int id: @type_alias ref,
int generic_param_list: @generic_param_list ref
);
#keyset[id]
type_alias_is_default(
int id: @type_alias ref
);
#keyset[id]
type_alias_names(
int id: @type_alias ref,
int name: @name ref
);
#keyset[id]
type_alias_type_reprs(
int id: @type_alias ref,
int type_repr: @type_repr ref
);
#keyset[id]
type_alias_type_bound_lists(
int id: @type_alias ref,
int type_bound_list: @type_bound_list ref
);
#keyset[id]
type_alias_visibilities(
int id: @type_alias ref,
int visibility: @visibility ref
);
#keyset[id]
type_alias_where_clauses(
int id: @type_alias ref,
int where_clause: @where_clause ref
);
unions(
unique int id: @union
);
#keyset[id, index]
union_attrs(
int id: @union ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
union_generic_param_lists(
int id: @union ref,
int generic_param_list: @generic_param_list ref
);
#keyset[id]
union_names(
int id: @union ref,
int name: @name ref
);
#keyset[id]
union_struct_field_lists(
int id: @union ref,
int struct_field_list: @struct_field_list ref
);
#keyset[id]
union_visibilities(
int id: @union ref,
int visibility: @visibility ref
);
#keyset[id]
union_where_clauses(
int id: @union ref,
int where_clause: @where_clause ref
);
uses(
unique int id: @use
);
#keyset[id, index]
use_attrs(
int id: @use ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
use_use_trees(
int id: @use ref,
int use_tree: @use_tree ref
);
#keyset[id]
use_visibilities(
int id: @use ref,
int visibility: @visibility ref
);
for_exprs(
unique int id: @for_expr
);
#keyset[id, index]
for_expr_attrs(
int id: @for_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
for_expr_iterables(
int id: @for_expr ref,
int iterable: @expr ref
);
#keyset[id]
for_expr_pats(
int id: @for_expr ref,
int pat: @pat ref
);
loop_exprs(
unique int id: @loop_expr
);
#keyset[id, index]
loop_expr_attrs(
int id: @loop_expr ref,
int index: int ref,
int attr: @attr ref
);
while_exprs(
unique int id: @while_expr
);
#keyset[id, index]
while_expr_attrs(
int id: @while_expr ref,
int index: int ref,
int attr: @attr ref
);
#keyset[id]
while_expr_conditions(
int id: @while_expr ref,
int condition: @expr ref
);