mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
817 lines
11 KiB
Plaintext
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
|
|
);
|