Files
codeql/rust/ql/lib/rust.dbscheme
2024-09-06 18:23:01 +02:00

691 lines
8.5 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
;
@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
);
@ast_node =
@declaration
| @expr
| @label
| @match_arm
| @pat
| @stmt
| @type_ref
;
db_files(
unique int id: @db_file
);
db_locations(
unique int id: @db_location
);
@declaration =
@function
| @module
;
@expr =
@array
| @await
| @become
| @binary_op
| @block_base
| @box
| @break
| @call
| @cast
| @closure
| @const
| @continue
| @field
| @if
| @index
| @inline_asm
| @let
| @literal
| @loop
| @match
| @method_call
| @missing_expr
| @offset_of
| @path
| @range
| @record_lit
| @ref
| @return
| @tuple
| @unary_op
| @underscore
| @yeet
| @yield
;
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 =
@bind_pat
| @box_pat
| @const_block_pat
| @lit_pat
| @missing_pat
| @or_pat
| @path_pat
| @range_pat
| @record_pat
| @ref_pat
| @slice_pat
| @tuple_pat
| @tuple_struct_pat
| @wild_pat
;
@stmt =
@expr_stmt
| @if_let
| @item_stmt
;
type_refs(
unique int id: @type_ref
);
@array =
@element_list
| @repeat
;
awaits(
unique int id: @await,
int expr: @expr ref
);
becomes(
unique int id: @become,
int expr: @expr ref
);
binary_ops(
unique int id: @binary_op,
int lhs: @expr ref,
int rhs: @expr ref
);
#keyset[id]
binary_op_ops(
int id: @binary_op ref,
string op: string ref
);
bind_pats(
unique int id: @bind_pat,
string binding_id: string ref
);
#keyset[id]
bind_pat_subpats(
int id: @bind_pat ref,
int subpat: @pat ref
);
@block_base =
@async_block
| @block
| @unsafe_block
;
#keyset[id, index]
block_base_statements(
int id: @block_base ref,
int index: int ref,
int statement: @stmt ref
);
#keyset[id]
block_base_tails(
int id: @block_base ref,
int tail: @expr ref
);
boxes(
unique int id: @box,
int expr: @expr ref
);
box_pats(
unique int id: @box_pat,
int inner: @pat ref
);
breaks(
unique int id: @break
);
#keyset[id]
break_exprs(
int id: @break ref,
int expr: @expr ref
);
#keyset[id]
break_labels(
int id: @break ref,
int label: @label ref
);
calls(
unique int id: @call,
int callee: @expr ref
);
#keyset[id, index]
call_args(
int id: @call ref,
int index: int ref,
int arg: @expr ref
);
#keyset[id]
call_is_assignee_expr(
int id: @call ref
);
casts(
unique int id: @cast,
int expr: @expr ref,
int type_ref: @type_ref ref
);
closures(
unique int id: @closure,
int body: @expr ref
);
#keyset[id, index]
closure_args(
int id: @closure ref,
int index: int ref,
int arg: @pat ref
);
#keyset[id, index]
closure_arg_types(
int id: @closure ref,
int index: int ref,
int arg_type: @type_ref ref
);
#keyset[id]
closure_ret_types(
int id: @closure ref,
int ret_type: @type_ref ref
);
#keyset[id]
closure_is_move(
int id: @closure ref
);
consts(
unique int id: @const
);
const_block_pats(
unique int id: @const_block_pat,
int expr: @expr ref
);
continues(
unique int id: @continue
);
#keyset[id]
continue_labels(
int id: @continue ref,
int label: @label ref
);
expr_stmts(
unique int id: @expr_stmt,
int expr: @expr ref
);
#keyset[id]
expr_stmt_has_semi(
int id: @expr_stmt ref
);
fields(
unique int id: @field,
int expr: @expr ref,
string name: string ref
);
functions(
unique int id: @function,
string name: string ref,
int body: @expr ref
);
ifs(
unique int id: @if,
int condition: @expr ref,
int then: @expr ref
);
#keyset[id]
if_elses(
int id: @if ref,
int else: @expr ref
);
if_lets(
unique int id: @if_let,
int pat: @pat ref
);
#keyset[id]
if_let_type_refs(
int id: @if_let ref,
int type_ref: @type_ref ref
);
#keyset[id]
if_let_initializers(
int id: @if_let ref,
int initializer: @expr ref
);
#keyset[id]
if_let_else_branches(
int id: @if_let ref,
int else_branch: @expr ref
);
indices(
unique int id: @index,
int base: @expr ref,
int index: @expr ref
);
#keyset[id]
index_is_assignee_expr(
int id: @index ref
);
inline_asms(
unique int id: @inline_asm,
int expr: @expr ref
);
item_stmts(
unique int id: @item_stmt
);
lets(
unique int id: @let,
int pat: @pat ref,
int expr: @expr ref
);
lit_pats(
unique int id: @lit_pat,
int expr: @expr ref
);
literals(
unique int id: @literal
);
loops(
unique int id: @loop,
int body: @expr ref
);
#keyset[id]
loop_labels(
int id: @loop ref,
int label: @label ref
);
matches(
unique int id: @match,
int expr: @expr ref
);
#keyset[id, index]
match_branches(
int id: @match ref,
int index: int ref,
int branch: @match_arm ref
);
method_calls(
unique int id: @method_call,
int receiver: @expr ref,
string method_name: string ref
);
#keyset[id, index]
method_call_args(
int id: @method_call ref,
int index: int ref,
int arg: @expr 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_ofs(
unique int id: @offset_of,
int container: @type_ref ref
);
#keyset[id, index]
offset_of_fields(
int id: @offset_of 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
);
paths(
unique int id: @path
);
path_pats(
unique int id: @path_pat
);
ranges(
unique int id: @range
);
#keyset[id]
range_lhs(
int id: @range ref,
int lhs: @expr ref
);
#keyset[id]
range_rhs(
int id: @range ref,
int rhs: @expr ref
);
#keyset[id]
range_is_inclusive(
int id: @range 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_lits(
unique int id: @record_lit
);
record_pats(
unique int id: @record_pat
);
refs(
unique int id: @ref,
int expr: @expr ref
);
#keyset[id]
ref_is_raw(
int id: @ref ref
);
#keyset[id]
ref_is_mut(
int id: @ref ref
);
ref_pats(
unique int id: @ref_pat,
int pat: @pat ref
);
#keyset[id]
ref_pat_is_mut(
int id: @ref_pat ref
);
returns(
unique int id: @return
);
#keyset[id]
return_exprs(
int id: @return 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
);
tuples(
unique int id: @tuple
);
#keyset[id, index]
tuple_exprs(
int id: @tuple ref,
int index: int ref,
int expr: @expr ref
);
#keyset[id]
tuple_is_assignee_expr(
int id: @tuple 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_ellipses(
int id: @tuple_pat ref,
int ellipsis: int ref
);
tuple_struct_pats(
unique int id: @tuple_struct_pat
);
unary_ops(
unique int id: @unary_op,
int expr: @expr ref,
string op: string ref
);
underscores(
unique int id: @underscore
);
wild_pats(
unique int id: @wild_pat
);
yeets(
unique int id: @yeet
);
#keyset[id]
yeet_exprs(
int id: @yeet ref,
int expr: @expr ref
);
yields(
unique int id: @yield
);
#keyset[id]
yield_exprs(
int id: @yield ref,
int expr: @expr ref
);
async_blocks(
unique int id: @async_block
);
blocks(
unique int id: @block
);
#keyset[id]
block_labels(
int id: @block ref,
int label: @label ref
);
element_lists(
unique int id: @element_list
);
#keyset[id, index]
element_list_elements(
int id: @element_list ref,
int index: int ref,
int element: @expr ref
);
#keyset[id]
element_list_is_assignee_expr(
int id: @element_list ref
);
repeats(
unique int id: @repeat,
int initializer: @expr ref,
int repeat: @expr ref
);
unsafe_blocks(
unique int id: @unsafe_block
);