// generated by codegen/codegen.py // from codegen/prefix.dbscheme /** * The source location of the snapshot. */ sourceLocationPrefix( string prefix: string ref ); answer_to_life_the_universe_and_everything( int answer: int ref ); // from codegen/schema.yml @element = @argument | @file | @generic_context | @iterable_decl_context | @locatable | @location | @type ; files( unique int id: @file, string name: string ref ); @iterable_decl_context = @extension_decl | @nominal_type_decl ; #keyset[id, index] iterable_decl_context_members( int id: @iterable_decl_context ref, int index: int ref, int member: @decl ref ); @locatable = @ast_node | @condition_element ; #keyset[id] locatables( int id: @locatable ref, int location: @location ref ); locations( unique int id: @location, int file: @file ref, int start_line: int ref, int start_column: int ref, int end_line: int ref, int end_column: int ref ); @type = @any_function_type | @any_generic_type | @any_metatype_type | @builtin_type | @dependent_member_type | @dynamic_self_type | @error_type | @existential_type | @in_out_type | @l_value_type | @module_type | @placeholder_type | @protocol_composition_type | @reference_storage_type | @sil_block_storage_type | @sil_box_type | @sil_function_type | @sil_token_type | @substitutable_type | @sugar_type | @tuple_type | @type_variable_type | @unknown_type | @unresolved_type ; #keyset[id] types( int id: @type ref, string diagnostics_name: string ref, int canonical_type: @type ref ); extension_decls( unique int id: @extension_decl ); @nominal_type_decl = @class_decl | @enum_decl | @protocol_decl | @struct_decl ; #keyset[id] nominal_type_decls( int id: @nominal_type_decl ref, int type_: @type ref ); @ast_node = @case_label_item | @decl | @expr | @pattern | @stmt | @stmt_condition | @type_repr ; condition_elements( unique int id: @condition_element ); #keyset[id] condition_element_booleans( int id: @condition_element ref, int boolean_: @expr ref ); #keyset[id] condition_element_patterns( int id: @condition_element ref, int pattern: @pattern ref ); #keyset[id] condition_element_initializers( int id: @condition_element ref, int initializer: @expr ref ); @any_function_type = @function_type | @generic_function_type ; #keyset[id] any_function_types( int id: @any_function_type ref, int result: @type ref ); #keyset[id, index] any_function_type_param_types( int id: @any_function_type ref, int index: int ref, int param_type: @type ref ); #keyset[id, index] any_function_type_param_labels( int id: @any_function_type ref, int index: int ref, string param_label: string ref ); @any_generic_type = @nominal_or_bound_generic_nominal_type | @unbound_generic_type ; #keyset[id] any_generic_types( int id: @any_generic_type ref, int declaration: @decl ref ); #keyset[id] any_generic_type_parents( int id: @any_generic_type ref, int parent: @type ref ); @any_metatype_type = @existential_metatype_type | @metatype_type ; @builtin_type = @any_builtin_integer_type | @builtin_bridge_object_type | @builtin_default_actor_storage_type | @builtin_executor_type | @builtin_float_type | @builtin_job_type | @builtin_native_object_type | @builtin_raw_pointer_type | @builtin_raw_unsafe_continuation_type | @builtin_unsafe_value_buffer_type | @builtin_vector_type ; dependent_member_types( unique int id: @dependent_member_type ); dynamic_self_types( unique int id: @dynamic_self_type ); error_types( unique int id: @error_type ); in_out_types( unique int id: @in_out_type ); l_value_types( unique int id: @l_value_type, int object_type: @type ref ); module_types( unique int id: @module_type ); placeholder_types( unique int id: @placeholder_type ); protocol_composition_types( unique int id: @protocol_composition_type ); existential_types( unique int id: @existential_type ); @reference_storage_type = @unmanaged_storage_type | @unowned_storage_type | @weak_storage_type ; sil_block_storage_types( unique int id: @sil_block_storage_type ); sil_box_types( unique int id: @sil_box_type ); sil_function_types( unique int id: @sil_function_type ); sil_token_types( unique int id: @sil_token_type ); @substitutable_type = @archetype_type | @generic_type_param_type ; @sugar_type = @paren_type | @syntax_sugar_type | @type_alias_type ; tuple_types( unique int id: @tuple_type ); type_variable_types( unique int id: @type_variable_type ); unknown_types( unique int id: @unknown_type, string name: string ref ); unresolved_types( unique int id: @unresolved_type ); class_decls( unique int id: @class_decl ); enum_decls( unique int id: @enum_decl ); protocol_decls( unique int id: @protocol_decl ); struct_decls( unique int id: @struct_decl ); @decl = @enum_case_decl | @extension_decl | @if_config_decl | @import_decl | @missing_member_decl | @operator_decl | @pattern_binding_decl | @pound_diagnostic_decl | @precedence_group_decl | @top_level_code_decl | @unknown_ast_node | @value_decl ; @expr = @abstract_closure_expr | @any_try_expr | @applied_property_wrapper_expr | @apply_expr | @arrow_expr | @assign_expr | @bind_optional_expr | @capture_list_expr | @code_completion_expr | @collection_expr | @decl_ref_expr | @default_argument_expr | @discard_assignment_expr | @dot_syntax_base_ignored_expr | @dynamic_type_expr | @editor_placeholder_expr | @enum_is_case_expr | @error_expr | @explicit_cast_expr | @force_value_expr | @identity_expr | @if_expr | @implicit_conversion_expr | @in_out_expr | @key_path_application_expr | @key_path_dot_expr | @key_path_expr | @lazy_initializer_expr | @literal_expr | @lookup_expr | @make_temporarily_escapable_expr | @obj_c_selector_expr | @one_way_expr | @opaque_value_expr | @open_existential_expr | @optional_evaluation_expr | @other_constructor_decl_ref_expr | @overload_set_ref_expr | @property_wrapper_value_placeholder_expr | @rebind_self_in_constructor_expr | @sequence_expr | @super_ref_expr | @tap_expr | @tuple_element_expr | @tuple_expr | @type_expr | @unknown_ast_node | @unresolved_decl_ref_expr | @unresolved_dot_expr | @unresolved_member_expr | @unresolved_pattern_expr | @unresolved_specialize_expr | @vararg_expansion_expr ; #keyset[id] expr_types( int id: @expr ref, int type_: @type ref ); @pattern = @any_pattern | @binding_pattern | @bool_pattern | @enum_element_pattern | @expr_pattern | @is_pattern | @named_pattern | @optional_some_pattern | @paren_pattern | @tuple_pattern | @typed_pattern | @unknown_ast_node ; @stmt = @brace_stmt | @break_stmt | @case_stmt | @continue_stmt | @defer_stmt | @fail_stmt | @fallthrough_stmt | @labeled_stmt | @pound_assert_stmt | @return_stmt | @throw_stmt | @unknown_ast_node | @yield_stmt ; @type_repr = @unknown_ast_node ; function_types( unique int id: @function_type ); generic_function_types( unique int id: @generic_function_type ); #keyset[id, index] generic_function_type_generic_params( int id: @generic_function_type ref, int index: int ref, int generic_param: @generic_type_param_type ref ); @nominal_or_bound_generic_nominal_type = @bound_generic_type | @nominal_type ; unbound_generic_types( unique int id: @unbound_generic_type ); existential_metatype_types( unique int id: @existential_metatype_type ); metatype_types( unique int id: @metatype_type ); @any_builtin_integer_type = @builtin_integer_literal_type | @builtin_integer_type ; builtin_bridge_object_types( unique int id: @builtin_bridge_object_type ); builtin_default_actor_storage_types( unique int id: @builtin_default_actor_storage_type ); builtin_executor_types( unique int id: @builtin_executor_type ); builtin_float_types( unique int id: @builtin_float_type ); builtin_job_types( unique int id: @builtin_job_type ); builtin_native_object_types( unique int id: @builtin_native_object_type ); builtin_raw_pointer_types( unique int id: @builtin_raw_pointer_type ); builtin_raw_unsafe_continuation_types( unique int id: @builtin_raw_unsafe_continuation_type ); builtin_unsafe_value_buffer_types( unique int id: @builtin_unsafe_value_buffer_type ); builtin_vector_types( unique int id: @builtin_vector_type ); unmanaged_storage_types( unique int id: @unmanaged_storage_type ); unowned_storage_types( unique int id: @unowned_storage_type ); weak_storage_types( unique int id: @weak_storage_type ); @archetype_type = @nested_archetype_type | @opaque_type_archetype_type | @opened_archetype_type | @primary_archetype_type | @sequence_archetype_type ; generic_type_param_types( unique int id: @generic_type_param_type, string name: string ref ); paren_types( unique int id: @paren_type ); @syntax_sugar_type = @dictionary_type | @unary_syntax_sugar_type ; type_alias_types( unique int id: @type_alias_type ); enum_case_decls( unique int id: @enum_case_decl ); #keyset[id, index] enum_case_decl_elements( int id: @enum_case_decl ref, int index: int ref, int element: @enum_element_decl ref ); if_config_decls( unique int id: @if_config_decl ); import_decls( unique int id: @import_decl ); missing_member_decls( unique int id: @missing_member_decl ); @operator_decl = @infix_operator_decl | @postfix_operator_decl | @prefix_operator_decl ; pattern_binding_decls( unique int id: @pattern_binding_decl ); #keyset[id, index] pattern_binding_decl_inits( int id: @pattern_binding_decl ref, int index: int ref, int init: @expr ref ); #keyset[id, index] pattern_binding_decl_patterns( int id: @pattern_binding_decl ref, int index: int ref, int pattern: @pattern ref ); pound_diagnostic_decls( unique int id: @pound_diagnostic_decl ); precedence_group_decls( unique int id: @precedence_group_decl ); top_level_code_decls( unique int id: @top_level_code_decl, int body: @brace_stmt ref ); unknown_ast_nodes( unique int id: @unknown_ast_node, string name: string ref ); @value_decl = @abstract_function_decl | @abstract_storage_decl | @enum_element_decl | @type_decl ; #keyset[id] value_decls( int id: @value_decl ref, int interface_type: @type ref ); @abstract_closure_expr = @auto_closure_expr | @closure_expr ; @any_try_expr = @force_try_expr | @optional_try_expr | @try_expr ; #keyset[id] any_try_exprs( int id: @any_try_expr ref, int sub_expr: @expr ref ); applied_property_wrapper_exprs( unique int id: @applied_property_wrapper_expr ); arguments( unique int id: @argument, string label: string ref, int expr: @expr ref ); @apply_expr = @binary_expr | @call_expr | @postfix_unary_expr | @prefix_unary_expr | @self_apply_expr ; #keyset[id] apply_exprs( int id: @apply_expr ref, int function: @expr ref ); #keyset[id, index] apply_expr_arguments( int id: @apply_expr ref, int index: int ref, int argument: @argument ref ); arrow_exprs( unique int id: @arrow_expr ); assign_exprs( unique int id: @assign_expr, int dest: @expr ref, int source: @expr ref ); bind_optional_exprs( unique int id: @bind_optional_expr, int sub_expr: @expr ref ); capture_list_exprs( unique int id: @capture_list_expr, int closure_body: @closure_expr ref ); #keyset[id, index] capture_list_expr_binding_decls( int id: @capture_list_expr ref, int index: int ref, int binding_decl: @pattern_binding_decl ref ); code_completion_exprs( unique int id: @code_completion_expr ); @collection_expr = @array_expr | @dictionary_expr ; decl_ref_exprs( unique int id: @decl_ref_expr, int decl: @decl ref ); #keyset[id, index] decl_ref_expr_replacement_types( int id: @decl_ref_expr ref, int index: int ref, int replacement_type: @type ref ); default_argument_exprs( unique int id: @default_argument_expr, int param_decl: @param_decl ref, int param_index: int ref ); #keyset[id] default_argument_expr_caller_side_defaults( int id: @default_argument_expr ref, int caller_side_default: @expr ref ); discard_assignment_exprs( unique int id: @discard_assignment_expr ); dot_syntax_base_ignored_exprs( unique int id: @dot_syntax_base_ignored_expr, int qualifier: @expr ref, int sub_expr: @expr ref ); dynamic_type_exprs( unique int id: @dynamic_type_expr, int base_expr: @expr ref ); editor_placeholder_exprs( unique int id: @editor_placeholder_expr ); enum_is_case_exprs( unique int id: @enum_is_case_expr, int sub_expr: @expr ref, int type_repr: @type_repr ref, int element: @enum_element_decl ref ); error_exprs( unique int id: @error_expr ); @explicit_cast_expr = @checked_cast_expr | @coerce_expr ; #keyset[id] explicit_cast_exprs( int id: @explicit_cast_expr ref, int sub_expr: @expr ref ); force_value_exprs( unique int id: @force_value_expr, int sub_expr: @expr ref ); @identity_expr = @await_expr | @dot_self_expr | @paren_expr | @unresolved_member_chain_result_expr ; #keyset[id] identity_exprs( int id: @identity_expr ref, int sub_expr: @expr ref ); if_exprs( unique int id: @if_expr, int condition: @expr ref, int then_expr: @expr ref, int else_expr: @expr ref ); @implicit_conversion_expr = @any_hashable_erasure_expr | @archetype_to_super_expr | @array_to_pointer_expr | @bridge_from_obj_c_expr | @bridge_to_obj_c_expr | @class_metatype_to_object_expr | @collection_upcast_conversion_expr | @conditional_bridge_from_obj_c_expr | @covariant_function_conversion_expr | @covariant_return_conversion_expr | @derived_to_base_expr | @destructure_tuple_expr | @differentiable_function_expr | @differentiable_function_extract_original_expr | @erasure_expr | @existential_metatype_to_object_expr | @foreign_object_conversion_expr | @function_conversion_expr | @in_out_to_pointer_expr | @inject_into_optional_expr | @linear_function_expr | @linear_function_extract_original_expr | @linear_to_differentiable_function_expr | @load_expr | @metatype_conversion_expr | @pointer_to_pointer_expr | @protocol_metatype_to_object_expr | @string_to_pointer_expr | @underlying_to_opaque_expr | @unevaluated_instance_expr | @unresolved_type_conversion_expr ; #keyset[id] implicit_conversion_exprs( int id: @implicit_conversion_expr ref, int sub_expr: @expr ref ); in_out_exprs( unique int id: @in_out_expr, int sub_expr: @expr ref ); key_path_application_exprs( unique int id: @key_path_application_expr ); key_path_dot_exprs( unique int id: @key_path_dot_expr ); key_path_exprs( unique int id: @key_path_expr ); #keyset[id] key_path_expr_parsed_roots( int id: @key_path_expr ref, int parsed_root: @expr ref ); #keyset[id] key_path_expr_parsed_paths( int id: @key_path_expr ref, int parsed_path: @expr ref ); lazy_initializer_exprs( unique int id: @lazy_initializer_expr, int sub_expr: @expr ref ); @literal_expr = @builtin_literal_expr | @interpolated_string_literal_expr | @nil_literal_expr | @object_literal_expr | @regex_literal_expr ; @lookup_expr = @dynamic_lookup_expr | @member_ref_expr | @subscript_expr ; make_temporarily_escapable_exprs( unique int id: @make_temporarily_escapable_expr, int escaping_closure: @opaque_value_expr ref, int nonescaping_closure: @expr ref, int sub_expr: @expr ref ); obj_c_selector_exprs( unique int id: @obj_c_selector_expr, int sub_expr: @expr ref, int method: @abstract_function_decl ref ); one_way_exprs( unique int id: @one_way_expr, int sub_expr: @expr ref ); opaque_value_exprs( unique int id: @opaque_value_expr ); open_existential_exprs( unique int id: @open_existential_expr, int sub_expr: @expr ref, int existential: @expr ref, int opaque_expr: @opaque_value_expr ref ); optional_evaluation_exprs( unique int id: @optional_evaluation_expr, int sub_expr: @expr ref ); other_constructor_decl_ref_exprs( unique int id: @other_constructor_decl_ref_expr ); @overload_set_ref_expr = @overloaded_decl_ref_expr ; property_wrapper_value_placeholder_exprs( unique int id: @property_wrapper_value_placeholder_expr ); rebind_self_in_constructor_exprs( unique int id: @rebind_self_in_constructor_expr, int sub_expr: @expr ref, int self: @var_decl ref ); sequence_exprs( unique int id: @sequence_expr ); super_ref_exprs( unique int id: @super_ref_expr, int self: @var_decl ref ); tap_exprs( unique int id: @tap_expr, int var: @var_decl ref, int body: @brace_stmt ref ); #keyset[id] tap_expr_sub_exprs( int id: @tap_expr ref, int sub_expr: @expr ref ); tuple_element_exprs( unique int id: @tuple_element_expr, int sub_expr: @expr ref, int index: int ref ); tuple_exprs( unique int id: @tuple_expr ); #keyset[id, index] tuple_expr_elements( int id: @tuple_expr ref, int index: int ref, int element: @expr ref ); type_exprs( unique int id: @type_expr ); #keyset[id] type_expr_type_reprs( int id: @type_expr ref, int type_repr: @type_repr ref ); unresolved_decl_ref_exprs( unique int id: @unresolved_decl_ref_expr ); unresolved_dot_exprs( unique int id: @unresolved_dot_expr ); unresolved_member_exprs( unique int id: @unresolved_member_expr ); unresolved_pattern_exprs( unique int id: @unresolved_pattern_expr ); unresolved_specialize_exprs( unique int id: @unresolved_specialize_expr ); vararg_expansion_exprs( unique int id: @vararg_expansion_expr, int sub_expr: @expr ref ); any_patterns( unique int id: @any_pattern ); binding_patterns( unique int id: @binding_pattern, int sub_pattern: @pattern ref ); bool_patterns( unique int id: @bool_pattern, boolean value: boolean ref ); enum_element_patterns( unique int id: @enum_element_pattern, int element: @enum_element_decl ref ); #keyset[id] enum_element_pattern_sub_patterns( int id: @enum_element_pattern ref, int sub_pattern: @pattern ref ); expr_patterns( unique int id: @expr_pattern, int sub_expr: @expr ref ); is_patterns( unique int id: @is_pattern, int cast_type_repr: @type_repr ref ); #keyset[id] is_pattern_sub_patterns( int id: @is_pattern ref, int sub_pattern: @pattern ref ); named_patterns( unique int id: @named_pattern, string name: string ref ); optional_some_patterns( unique int id: @optional_some_pattern, int sub_pattern: @pattern ref ); paren_patterns( unique int id: @paren_pattern, int sub_pattern: @pattern ref ); tuple_patterns( unique int id: @tuple_pattern ); #keyset[id, index] tuple_pattern_elements( int id: @tuple_pattern ref, int index: int ref, int element: @pattern ref ); typed_patterns( unique int id: @typed_pattern, int sub_pattern: @pattern ref ); #keyset[id] typed_pattern_type_reprs( int id: @typed_pattern ref, int type_repr: @type_repr ref ); brace_stmts( unique int id: @brace_stmt ); #keyset[id, index] brace_stmt_elements( int id: @brace_stmt ref, int index: int ref, int element: @ast_node ref ); break_stmts( unique int id: @break_stmt ); #keyset[id] break_stmt_target_names( int id: @break_stmt ref, string target_name: string ref ); #keyset[id] break_stmt_targets( int id: @break_stmt ref, int target: @stmt ref ); case_stmts( unique int id: @case_stmt, int body: @stmt ref ); #keyset[id, index] case_stmt_labels( int id: @case_stmt ref, int index: int ref, int label: @case_label_item ref ); #keyset[id, index] case_stmt_variables( int id: @case_stmt ref, int index: int ref, int variable: @var_decl ref ); case_label_items( unique int id: @case_label_item, int pattern: @pattern ref ); #keyset[id] case_label_item_guards( int id: @case_label_item ref, int guard: @expr ref ); continue_stmts( unique int id: @continue_stmt ); #keyset[id] continue_stmt_target_names( int id: @continue_stmt ref, string target_name: string ref ); #keyset[id] continue_stmt_targets( int id: @continue_stmt ref, int target: @stmt ref ); defer_stmts( unique int id: @defer_stmt, int body: @brace_stmt ref ); fail_stmts( unique int id: @fail_stmt ); fallthrough_stmts( unique int id: @fallthrough_stmt, int fallthrough_source: @case_stmt ref, int fallthrough_dest: @case_stmt ref ); @labeled_stmt = @do_catch_stmt | @do_stmt | @for_each_stmt | @labeled_conditional_stmt | @repeat_while_stmt | @switch_stmt ; #keyset[id] labeled_stmt_labels( int id: @labeled_stmt ref, string label: string ref ); pound_assert_stmts( unique int id: @pound_assert_stmt ); return_stmts( unique int id: @return_stmt ); #keyset[id] return_stmt_results( int id: @return_stmt ref, int result: @expr ref ); throw_stmts( unique int id: @throw_stmt, int sub_expr: @expr ref ); yield_stmts( unique int id: @yield_stmt ); @bound_generic_type = @bound_generic_class_type | @bound_generic_enum_type | @bound_generic_struct_type ; @nominal_type = @class_type | @enum_type | @protocol_type | @struct_type ; builtin_integer_literal_types( unique int id: @builtin_integer_literal_type ); builtin_integer_types( unique int id: @builtin_integer_type ); nested_archetype_types( unique int id: @nested_archetype_type ); sequence_archetype_types( unique int id: @sequence_archetype_type ); opaque_type_archetype_types( unique int id: @opaque_type_archetype_type ); opened_archetype_types( unique int id: @opened_archetype_type ); primary_archetype_types( unique int id: @primary_archetype_type, int interface_type: @generic_type_param_type ref ); dictionary_types( unique int id: @dictionary_type ); @unary_syntax_sugar_type = @array_slice_type | @optional_type | @variadic_sequence_type ; infix_operator_decls( unique int id: @infix_operator_decl ); postfix_operator_decls( unique int id: @postfix_operator_decl ); prefix_operator_decls( unique int id: @prefix_operator_decl ); @abstract_function_decl = @constructor_decl | @destructor_decl | @func_decl ; #keyset[id] abstract_function_decls( int id: @abstract_function_decl ref, string name: string ref ); #keyset[id] abstract_function_decl_bodies( int id: @abstract_function_decl ref, int body: @brace_stmt ref ); #keyset[id, index] abstract_function_decl_params( int id: @abstract_function_decl ref, int index: int ref, int param: @param_decl ref ); @abstract_storage_decl = @subscript_decl | @var_decl ; enum_element_decls( unique int id: @enum_element_decl, string name: string ref ); #keyset[id, index] enum_element_decl_params( int id: @enum_element_decl ref, int index: int ref, int param: @param_decl ref ); @type_decl = @abstract_type_param_decl | @generic_type_decl | @module_decl ; #keyset[id] type_decls( int id: @type_decl ref, string name: string ref ); auto_closure_exprs( unique int id: @auto_closure_expr ); closure_exprs( unique int id: @closure_expr, int body: @brace_stmt ref ); force_try_exprs( unique int id: @force_try_expr ); optional_try_exprs( unique int id: @optional_try_expr ); try_exprs( unique int id: @try_expr ); binary_exprs( unique int id: @binary_expr ); call_exprs( unique int id: @call_expr ); postfix_unary_exprs( unique int id: @postfix_unary_expr ); prefix_unary_exprs( unique int id: @prefix_unary_expr ); @self_apply_expr = @constructor_ref_call_expr | @dot_syntax_call_expr ; #keyset[id] self_apply_exprs( int id: @self_apply_expr ref, int base_expr: @expr ref ); array_exprs( unique int id: @array_expr ); #keyset[id, index] array_expr_elements( int id: @array_expr ref, int index: int ref, int element: @expr ref ); dictionary_exprs( unique int id: @dictionary_expr ); #keyset[id, index] dictionary_expr_elements( int id: @dictionary_expr ref, int index: int ref, int element: @expr ref ); @checked_cast_expr = @conditional_checked_cast_expr | @forced_checked_cast_expr | @is_expr ; coerce_exprs( unique int id: @coerce_expr ); await_exprs( unique int id: @await_expr ); dot_self_exprs( unique int id: @dot_self_expr ); paren_exprs( unique int id: @paren_expr ); unresolved_member_chain_result_exprs( unique int id: @unresolved_member_chain_result_expr ); any_hashable_erasure_exprs( unique int id: @any_hashable_erasure_expr ); archetype_to_super_exprs( unique int id: @archetype_to_super_expr ); array_to_pointer_exprs( unique int id: @array_to_pointer_expr ); bridge_from_obj_c_exprs( unique int id: @bridge_from_obj_c_expr ); bridge_to_obj_c_exprs( unique int id: @bridge_to_obj_c_expr ); class_metatype_to_object_exprs( unique int id: @class_metatype_to_object_expr ); collection_upcast_conversion_exprs( unique int id: @collection_upcast_conversion_expr ); conditional_bridge_from_obj_c_exprs( unique int id: @conditional_bridge_from_obj_c_expr ); covariant_function_conversion_exprs( unique int id: @covariant_function_conversion_expr ); covariant_return_conversion_exprs( unique int id: @covariant_return_conversion_expr ); derived_to_base_exprs( unique int id: @derived_to_base_expr ); destructure_tuple_exprs( unique int id: @destructure_tuple_expr ); differentiable_function_exprs( unique int id: @differentiable_function_expr ); differentiable_function_extract_original_exprs( unique int id: @differentiable_function_extract_original_expr ); erasure_exprs( unique int id: @erasure_expr ); existential_metatype_to_object_exprs( unique int id: @existential_metatype_to_object_expr ); foreign_object_conversion_exprs( unique int id: @foreign_object_conversion_expr ); function_conversion_exprs( unique int id: @function_conversion_expr ); in_out_to_pointer_exprs( unique int id: @in_out_to_pointer_expr ); inject_into_optional_exprs( unique int id: @inject_into_optional_expr ); linear_function_exprs( unique int id: @linear_function_expr ); linear_function_extract_original_exprs( unique int id: @linear_function_extract_original_expr ); linear_to_differentiable_function_exprs( unique int id: @linear_to_differentiable_function_expr ); load_exprs( unique int id: @load_expr ); metatype_conversion_exprs( unique int id: @metatype_conversion_expr ); pointer_to_pointer_exprs( unique int id: @pointer_to_pointer_expr ); protocol_metatype_to_object_exprs( unique int id: @protocol_metatype_to_object_expr ); string_to_pointer_exprs( unique int id: @string_to_pointer_expr ); underlying_to_opaque_exprs( unique int id: @underlying_to_opaque_expr ); unevaluated_instance_exprs( unique int id: @unevaluated_instance_expr ); unresolved_type_conversion_exprs( unique int id: @unresolved_type_conversion_expr ); @builtin_literal_expr = @boolean_literal_expr | @magic_identifier_literal_expr | @number_literal_expr | @string_literal_expr ; interpolated_string_literal_exprs( unique int id: @interpolated_string_literal_expr ); #keyset[id] interpolated_string_literal_expr_interpolation_exprs( int id: @interpolated_string_literal_expr ref, int interpolation_expr: @opaque_value_expr ref ); #keyset[id] interpolated_string_literal_expr_interpolation_count_exprs( int id: @interpolated_string_literal_expr ref, int interpolation_count_expr: @expr ref ); #keyset[id] interpolated_string_literal_expr_literal_capacity_exprs( int id: @interpolated_string_literal_expr ref, int literal_capacity_expr: @expr ref ); #keyset[id] interpolated_string_literal_expr_appending_exprs( int id: @interpolated_string_literal_expr ref, int appending_expr: @tap_expr ref ); regex_literal_exprs( unique int id: @regex_literal_expr ); nil_literal_exprs( unique int id: @nil_literal_expr ); object_literal_exprs( unique int id: @object_literal_expr ); @dynamic_lookup_expr = @dynamic_member_ref_expr | @dynamic_subscript_expr ; member_ref_exprs( unique int id: @member_ref_expr, int base_expr: @expr ref ); subscript_exprs( unique int id: @subscript_expr, int base_expr: @expr ref ); #keyset[id, index] subscript_expr_arguments( int id: @subscript_expr ref, int index: int ref, int argument: @argument ref ); overloaded_decl_ref_exprs( unique int id: @overloaded_decl_ref_expr ); do_catch_stmts( unique int id: @do_catch_stmt, int body: @stmt ref ); #keyset[id, index] do_catch_stmt_catches( int id: @do_catch_stmt ref, int index: int ref, int catch: @case_stmt ref ); do_stmts( unique int id: @do_stmt, int body: @brace_stmt ref ); for_each_stmts( unique int id: @for_each_stmt, int body: @brace_stmt ref ); #keyset[id] for_each_stmt_wheres( int id: @for_each_stmt ref, int where: @expr ref ); @labeled_conditional_stmt = @guard_stmt | @if_stmt | @while_stmt ; #keyset[id] labeled_conditional_stmts( int id: @labeled_conditional_stmt ref, int condition: @stmt_condition ref ); stmt_conditions( unique int id: @stmt_condition ); #keyset[id, index] stmt_condition_elements( int id: @stmt_condition ref, int index: int ref, int element: @condition_element ref ); repeat_while_stmts( unique int id: @repeat_while_stmt, int condition: @expr ref, int body: @stmt ref ); switch_stmts( unique int id: @switch_stmt, int expr: @expr ref ); #keyset[id, index] switch_stmt_cases( int id: @switch_stmt ref, int index: int ref, int case_: @case_stmt ref ); bound_generic_class_types( unique int id: @bound_generic_class_type ); bound_generic_enum_types( unique int id: @bound_generic_enum_type ); bound_generic_struct_types( unique int id: @bound_generic_struct_type ); class_types( unique int id: @class_type, int decl: @class_decl ref ); enum_types( unique int id: @enum_type ); protocol_types( unique int id: @protocol_type ); struct_types( unique int id: @struct_type, int decl: @struct_decl ref ); array_slice_types( unique int id: @array_slice_type ); optional_types( unique int id: @optional_type ); variadic_sequence_types( unique int id: @variadic_sequence_type ); constructor_decls( unique int id: @constructor_decl ); destructor_decls( unique int id: @destructor_decl ); @func_decl = @accessor_decl | @concrete_func_decl ; subscript_decls( unique int id: @subscript_decl ); @var_decl = @concrete_var_decl | @param_decl ; #keyset[id] var_decls( int id: @var_decl ref, string name: string ref, int type_: @type ref ); @abstract_type_param_decl = @associated_type_decl | @generic_type_param_decl ; @generic_context = @abstract_function_decl | @extension_decl | @generic_type_decl | @subscript_expr ; #keyset[id, index] generic_context_generic_type_params( int id: @generic_context ref, int index: int ref, int generic_type_param: @generic_type_param_decl ref ); @generic_type_decl = @nominal_type_decl | @opaque_type_decl | @type_alias_decl ; module_decls( unique int id: @module_decl ); constructor_ref_call_exprs( unique int id: @constructor_ref_call_expr ); dot_syntax_call_exprs( unique int id: @dot_syntax_call_expr ); conditional_checked_cast_exprs( unique int id: @conditional_checked_cast_expr ); forced_checked_cast_exprs( unique int id: @forced_checked_cast_expr ); is_exprs( unique int id: @is_expr ); boolean_literal_exprs( unique int id: @boolean_literal_expr, boolean value: boolean ref ); magic_identifier_literal_exprs( unique int id: @magic_identifier_literal_expr, string kind: string ref ); @number_literal_expr = @float_literal_expr | @integer_literal_expr ; string_literal_exprs( unique int id: @string_literal_expr, string value: string ref ); dynamic_member_ref_exprs( unique int id: @dynamic_member_ref_expr ); dynamic_subscript_exprs( unique int id: @dynamic_subscript_expr ); guard_stmts( unique int id: @guard_stmt, int body: @brace_stmt ref ); if_stmts( unique int id: @if_stmt, int then: @stmt ref ); #keyset[id] if_stmt_elses( int id: @if_stmt ref, int else: @stmt ref ); while_stmts( unique int id: @while_stmt, int body: @stmt ref ); accessor_decls( unique int id: @accessor_decl ); concrete_func_decls( unique int id: @concrete_func_decl ); concrete_var_decls( unique int id: @concrete_var_decl, int introducer_int: int ref ); param_decls( unique int id: @param_decl ); associated_type_decls( unique int id: @associated_type_decl ); generic_type_param_decls( unique int id: @generic_type_param_decl ); opaque_type_decls( unique int id: @opaque_type_decl ); type_alias_decls( unique int id: @type_alias_decl ); float_literal_exprs( unique int id: @float_literal_expr, string string_value: string ref ); integer_literal_exprs( unique int id: @integer_literal_expr, string string_value: string ref );