Files
codeql/rust/ql/lib/rust.dbscheme
2024-09-13 11:07:02 +02:00

817 lines
11 KiB
Plaintext

// generated by codegen
// from prefix.dbscheme
/**
* The source location of the snapshot.
*/
sourceLocationPrefix(
string prefix: string ref
);
// from schema.py
@element =
@file
| @locatable
| @location
| @unimplemented
;
@file =
@db_file
;
#keyset[id]
files(
int id: @file ref,
string name: string ref
);
@locatable =
@ast_node
;
#keyset[id]
locatable_locations(
int id: @locatable ref,
int location: @location ref
);
@location =
@db_location
;
#keyset[id]
locations(
int id: @location ref,
int file: @file ref,
int start_line: int ref,
int start_column: int ref,
int end_line: int ref,
int end_column: int ref
);
@unimplemented =
@generic_arg_list
| @path
| @type
| @unimplemented_declaration
;
@ast_node =
@declaration
| @expr
| @generic_arg_list
| @label
| @match_arm
| @pat
| @path
| @record_expr_field
| @record_pat_field
| @stmt
| @type
;
db_files(
unique int id: @db_file
);
db_locations(
unique int id: @db_location
);
@declaration =
@function
| @module
| @unimplemented_declaration
;
@expr =
@array_expr
| @asm_expr
| @await_expr
| @become_expr
| @bin_expr
| @block_expr_base
| @box_expr
| @break_expr
| @call_expr
| @cast_expr
| @closure_expr
| @const_expr
| @continue_expr
| @field_expr
| @if_expr
| @index_expr
| @let_expr
| @literal
| @loop_expr
| @match_expr
| @method_call_expr
| @missing_expr
| @offset_of_expr
| @path_expr
| @prefix_expr
| @range_expr
| @record_expr
| @ref_expr
| @return_expr
| @tuple_expr
| @underscore_expr
| @yeet_expr
| @yield_expr
;
generic_arg_lists(
unique int id: @generic_arg_list
);
labels(
unique int id: @label,
string name: string ref
);
match_arms(
unique int id: @match_arm,
int pat: @pat ref,
int expr: @expr ref
);
#keyset[id]
match_arm_guards(
int id: @match_arm ref,
int guard: @expr ref
);
@pat =
@box_pat
| @const_block_pat
| @ident_pat
| @literal_pat
| @missing_pat
| @or_pat
| @path_pat
| @range_pat
| @record_pat
| @ref_pat
| @slice_pat
| @tuple_pat
| @tuple_struct_pat
| @wildcard_pat
;
paths(
unique int id: @path
);
record_expr_fields(
unique int id: @record_expr_field,
string name: string ref,
int expr: @expr ref
);
record_pat_fields(
unique int id: @record_pat_field,
string name: string ref,
int pat: @pat ref
);
@stmt =
@expr_stmt
| @item_stmt
| @let_stmt
;
types(
unique int id: @type
);
@array_expr =
@element_list_expr
| @repeat_expr
;
asm_exprs(
unique int id: @asm_expr,
int expr: @expr ref
);
await_exprs(
unique int id: @await_expr,
int expr: @expr ref
);
become_exprs(
unique int id: @become_expr,
int expr: @expr ref
);
bin_exprs(
unique int id: @bin_expr,
int lhs: @expr ref,
int rhs: @expr ref
);
#keyset[id]
bin_expr_ops(
int id: @bin_expr ref,
string op: string ref
);
@block_expr_base =
@async_block_expr
| @block_expr
| @unsafe_block_expr
;
#keyset[id, index]
block_expr_base_statements(
int id: @block_expr_base ref,
int index: int ref,
int statement: @stmt ref
);
#keyset[id]
block_expr_base_tails(
int id: @block_expr_base ref,
int tail: @expr ref
);
box_exprs(
unique int id: @box_expr,
int expr: @expr ref
);
box_pats(
unique int id: @box_pat,
int inner: @pat ref
);
break_exprs(
unique int id: @break_expr
);
#keyset[id]
break_expr_exprs(
int id: @break_expr ref,
int expr: @expr ref
);
#keyset[id]
break_expr_labels(
int id: @break_expr ref,
int label: @label ref
);
call_exprs(
unique int id: @call_expr,
int callee: @expr ref
);
#keyset[id, index]
call_expr_args(
int id: @call_expr ref,
int index: int ref,
int arg: @expr ref
);
#keyset[id]
call_expr_is_assignee_expr(
int id: @call_expr ref
);
cast_exprs(
unique int id: @cast_expr,
int expr: @expr ref,
int type_: @type ref
);
closure_exprs(
unique int id: @closure_expr,
int body: @expr ref,
string closure_kind: string ref
);
#keyset[id, index]
closure_expr_args(
int id: @closure_expr ref,
int index: int ref,
int arg: @pat ref
);
#keyset[id, index]
closure_expr_arg_types(
int id: @closure_expr ref,
int index: int ref,
int arg_type: @type ref
);
#keyset[id]
closure_expr_ret_types(
int id: @closure_expr ref,
int ret_type: @type ref
);
#keyset[id]
closure_expr_is_move(
int id: @closure_expr ref
);
const_block_pats(
unique int id: @const_block_pat,
int expr: @expr ref
);
const_exprs(
unique int id: @const_expr,
int expr: @expr ref
);
continue_exprs(
unique int id: @continue_expr
);
#keyset[id]
continue_expr_labels(
int id: @continue_expr ref,
int label: @label ref
);
expr_stmts(
unique int id: @expr_stmt,
int expr: @expr ref
);
#keyset[id]
expr_stmt_has_semicolon(
int id: @expr_stmt ref
);
field_exprs(
unique int id: @field_expr,
int expr: @expr ref,
string name: string ref
);
functions(
unique int id: @function,
string name: string ref,
int body: @expr ref
);
ident_pats(
unique int id: @ident_pat,
string binding_id: string ref
);
#keyset[id]
ident_pat_subpats(
int id: @ident_pat ref,
int subpat: @pat ref
);
if_exprs(
unique int id: @if_expr,
int condition: @expr ref,
int then: @expr ref
);
#keyset[id]
if_expr_elses(
int id: @if_expr ref,
int else: @expr ref
);
index_exprs(
unique int id: @index_expr,
int base: @expr ref,
int index: @expr ref
);
#keyset[id]
index_expr_is_assignee_expr(
int id: @index_expr ref
);
item_stmts(
unique int id: @item_stmt
);
let_exprs(
unique int id: @let_expr,
int pat: @pat ref,
int expr: @expr ref
);
let_stmts(
unique int id: @let_stmt,
int pat: @pat ref
);
#keyset[id]
let_stmt_types(
int id: @let_stmt ref,
int type_: @type ref
);
#keyset[id]
let_stmt_initializers(
int id: @let_stmt ref,
int initializer: @expr ref
);
#keyset[id]
let_stmt_elses(
int id: @let_stmt ref,
int else: @expr ref
);
literals(
unique int id: @literal
);
literal_pats(
unique int id: @literal_pat,
int expr: @expr ref
);
loop_exprs(
unique int id: @loop_expr,
int body: @expr ref
);
#keyset[id]
loop_expr_labels(
int id: @loop_expr ref,
int label: @label ref
);
match_exprs(
unique int id: @match_expr,
int expr: @expr ref
);
#keyset[id, index]
match_expr_branches(
int id: @match_expr ref,
int index: int ref,
int branch: @match_arm ref
);
method_call_exprs(
unique int id: @method_call_expr,
int receiver: @expr ref,
string method_name: string ref
);
#keyset[id, index]
method_call_expr_args(
int id: @method_call_expr ref,
int index: int ref,
int arg: @expr ref
);
#keyset[id]
method_call_expr_generic_args(
int id: @method_call_expr ref,
int generic_args: @generic_arg_list ref
);
missing_exprs(
unique int id: @missing_expr
);
missing_pats(
unique int id: @missing_pat
);
modules(
unique int id: @module
);
#keyset[id, index]
module_declarations(
int id: @module ref,
int index: int ref,
int declaration: @declaration ref
);
offset_of_exprs(
unique int id: @offset_of_expr,
int container: @type ref
);
#keyset[id, index]
offset_of_expr_fields(
int id: @offset_of_expr ref,
int index: int ref,
string field: string ref
);
or_pats(
unique int id: @or_pat
);
#keyset[id, index]
or_pat_args(
int id: @or_pat ref,
int index: int ref,
int arg: @pat ref
);
path_exprs(
unique int id: @path_expr,
int path: @path ref
);
path_pats(
unique int id: @path_pat,
int path: @path ref
);
prefix_exprs(
unique int id: @prefix_expr,
int expr: @expr ref,
string op: string ref
);
range_exprs(
unique int id: @range_expr
);
#keyset[id]
range_expr_lhs(
int id: @range_expr ref,
int lhs: @expr ref
);
#keyset[id]
range_expr_rhs(
int id: @range_expr ref,
int rhs: @expr ref
);
#keyset[id]
range_expr_is_inclusive(
int id: @range_expr ref
);
range_pats(
unique int id: @range_pat
);
#keyset[id]
range_pat_starts(
int id: @range_pat ref,
int start: @pat ref
);
#keyset[id]
range_pat_ends(
int id: @range_pat ref,
int end: @pat ref
);
record_exprs(
unique int id: @record_expr
);
#keyset[id]
record_expr_paths(
int id: @record_expr ref,
int path: @path ref
);
#keyset[id, index]
record_expr_flds(
int id: @record_expr ref,
int index: int ref,
int fld: @record_expr_field ref
);
#keyset[id]
record_expr_spreads(
int id: @record_expr ref,
int spread: @expr ref
);
#keyset[id]
record_expr_has_ellipsis(
int id: @record_expr ref
);
#keyset[id]
record_expr_is_assignee_expr(
int id: @record_expr ref
);
record_pats(
unique int id: @record_pat
);
#keyset[id]
record_pat_paths(
int id: @record_pat ref,
int path: @path ref
);
#keyset[id, index]
record_pat_flds(
int id: @record_pat ref,
int index: int ref,
int fld: @record_pat_field ref
);
#keyset[id]
record_pat_has_ellipsis(
int id: @record_pat ref
);
ref_exprs(
unique int id: @ref_expr,
int expr: @expr ref
);
#keyset[id]
ref_expr_is_raw(
int id: @ref_expr ref
);
#keyset[id]
ref_expr_is_mut(
int id: @ref_expr ref
);
ref_pats(
unique int id: @ref_pat,
int pat: @pat ref
);
#keyset[id]
ref_pat_is_mut(
int id: @ref_pat ref
);
return_exprs(
unique int id: @return_expr
);
#keyset[id]
return_expr_exprs(
int id: @return_expr ref,
int expr: @expr ref
);
slice_pats(
unique int id: @slice_pat
);
#keyset[id, index]
slice_pat_prefixes(
int id: @slice_pat ref,
int index: int ref,
int prefix: @pat ref
);
#keyset[id]
slice_pat_slice(
int id: @slice_pat ref,
int slice: @pat ref
);
#keyset[id, index]
slice_pat_suffixes(
int id: @slice_pat ref,
int index: int ref,
int suffix: @pat ref
);
tuple_exprs(
unique int id: @tuple_expr
);
#keyset[id, index]
tuple_expr_exprs(
int id: @tuple_expr ref,
int index: int ref,
int expr: @expr ref
);
#keyset[id]
tuple_expr_is_assignee_expr(
int id: @tuple_expr ref
);
tuple_pats(
unique int id: @tuple_pat
);
#keyset[id, index]
tuple_pat_args(
int id: @tuple_pat ref,
int index: int ref,
int arg: @pat ref
);
#keyset[id]
tuple_pat_ellipsis_indices(
int id: @tuple_pat ref,
int ellipsis_index: int ref
);
tuple_struct_pats(
unique int id: @tuple_struct_pat
);
#keyset[id]
tuple_struct_pat_paths(
int id: @tuple_struct_pat ref,
int path: @path ref
);
#keyset[id, index]
tuple_struct_pat_args(
int id: @tuple_struct_pat ref,
int index: int ref,
int arg: @pat ref
);
#keyset[id]
tuple_struct_pat_ellipsis_indices(
int id: @tuple_struct_pat ref,
int ellipsis_index: int ref
);
underscore_exprs(
unique int id: @underscore_expr
);
unimplemented_declarations(
unique int id: @unimplemented_declaration
);
wildcard_pats(
unique int id: @wildcard_pat
);
yeet_exprs(
unique int id: @yeet_expr
);
#keyset[id]
yeet_expr_exprs(
int id: @yeet_expr ref,
int expr: @expr ref
);
yield_exprs(
unique int id: @yield_expr
);
#keyset[id]
yield_expr_exprs(
int id: @yield_expr ref,
int expr: @expr ref
);
async_block_exprs(
unique int id: @async_block_expr
);
block_exprs(
unique int id: @block_expr
);
#keyset[id]
block_expr_labels(
int id: @block_expr ref,
int label: @label ref
);
element_list_exprs(
unique int id: @element_list_expr
);
#keyset[id, index]
element_list_expr_elements(
int id: @element_list_expr ref,
int index: int ref,
int element: @expr ref
);
#keyset[id]
element_list_expr_is_assignee_expr(
int id: @element_list_expr ref
);
repeat_exprs(
unique int id: @repeat_expr,
int initializer: @expr ref,
int repeat: @expr ref
);
unsafe_block_exprs(
unique int id: @unsafe_block_expr
);