From e0c6800ab3c3d0a56a0269c830b7a237045a950a Mon Sep 17 00:00:00 2001 From: Geoff Romer Date: Mon, 23 Mar 2026 13:38:20 -0700 Subject: [PATCH] Reverse nesting structure of parameter patterns (#6930) See [here](https://docs.google.com/document/d/1rWcueFwIfZox6GKVGxiUG4cBzjrZ6djXiIDGyJDtrE4/edit?tab=t.0#heading=h.7mi143mdhr2h) for an overview of the changes and their rationale. Assisted-by: Gemini 3.1 Pro via Antigravity --- toolchain/check/cpp/import.cpp | 16 +- toolchain/check/function.cpp | 13 +- toolchain/check/handle_binding_pattern.cpp | 100 ++-- toolchain/check/handle_function.cpp | 28 +- toolchain/check/handle_let_and_var.cpp | 8 +- toolchain/check/import_ref.cpp | 39 +- toolchain/check/merge.cpp | 88 ++-- toolchain/check/merge.h | 4 +- toolchain/check/pattern.cpp | 79 ++-- toolchain/check/pattern_match.cpp | 185 ++++++-- toolchain/check/return.cpp | 4 + .../testdata/basics/dump_sem_ir_ranges.carbon | 4 +- .../testdata/basics/include_in_dumps.carbon | 12 +- .../testdata/basics/raw_identifier.carbon | 24 +- .../basics/raw_sem_ir/cpp_interop.carbon | 44 +- .../basics/raw_sem_ir/one_file.carbon | 108 ++--- .../one_file_with_textual_ir.carbon | 30 +- .../builtins/maybe_unformed/make_type.carbon | 4 +- .../testdata/builtins/pointer/is_null.carbon | 32 +- .../testdata/class/abstract/abstract.carbon | 39 +- .../abstract/fail_abstract_in_struct.carbon | 4 +- .../abstract/fail_abstract_in_tuple.carbon | 4 +- .../class/access/access_modifers.carbon | 28 +- .../class/access/import_access.carbon | 16 +- .../class/access/inheritance_access.carbon | 64 +-- .../class/access/method_access.carbon | 8 +- .../check/testdata/class/adapter/adapt.carbon | 4 +- .../testdata/class/adapter/adapt_copy.carbon | 64 +-- .../class/adapter/extend_adapt.carbon | 60 +-- .../testdata/class/adapter/init_adapt.carbon | 16 +- toolchain/check/testdata/class/basic.carbon | 28 +- .../class/complete_in_member_fn.carbon | 8 +- .../class/field/compound_field.carbon | 32 +- .../testdata/class/forward_declared.carbon | 8 +- .../check/testdata/class/generic/adapt.carbon | 56 +-- .../class/generic/base_is_generic.carbon | 20 +- .../check/testdata/class/generic/basic.carbon | 32 +- .../check/testdata/class/generic/call.carbon | 16 +- .../generic/complete_in_conversion.carbon | 12 +- .../check/testdata/class/generic/field.carbon | 40 +- .../testdata/class/generic/import.carbon | 20 +- .../check/testdata/class/generic/init.carbon | 32 +- .../class/generic/member_access.carbon | 16 +- .../class/generic/member_inline.carbon | 24 +- .../class/generic/member_lookup.carbon | 8 +- .../class/generic/member_out_of_line.carbon | 64 +-- .../testdata/class/generic/member_type.carbon | 88 ++-- .../class/generic/method_deduce.carbon | 40 +- .../check/testdata/class/generic/self.carbon | 8 +- toolchain/check/testdata/class/import.carbon | 8 +- .../testdata/class/inheritance/base.carbon | 12 +- .../class/inheritance/base_field.carbon | 8 +- .../class/inheritance/base_method.carbon | 12 +- .../inheritance/base_method_qualified.carbon | 56 +-- .../inheritance/base_method_shadow.carbon | 28 +- .../class/inheritance/derived_to_base.carbon | 36 +- .../class/inheritance/import_base.carbon | 8 +- .../class/inheritance/self_conversion.carbon | 32 +- toolchain/check/testdata/class/init.carbon | 24 +- .../check/testdata/class/init_nested.carbon | 8 +- toolchain/check/testdata/class/local.carbon | 8 +- .../class/method/generic_method.carbon | 24 +- .../check/testdata/class/method/method.carbon | 76 +-- .../class/method/static_method.carbon | 8 +- toolchain/check/testdata/class/nested.carbon | 4 +- .../check/testdata/class/nested_name.carbon | 12 +- .../testdata/class/partial/qualifier.carbon | 33 +- .../check/testdata/class/redeclaration.carbon | 16 +- .../check/testdata/class/reenter_scope.carbon | 12 +- toolchain/check/testdata/class/reorder.carbon | 8 +- toolchain/check/testdata/class/scope.carbon | 12 +- .../testdata/class/self/fail_ref_self.carbon | 16 +- .../check/testdata/class/self/raw_self.carbon | 40 +- .../testdata/class/self/raw_self_type.carbon | 16 +- .../check/testdata/class/self/self.carbon | 36 +- .../testdata/class/self/self_type.carbon | 20 +- .../testdata/class/syntactic_merge.carbon | 8 +- .../testdata/class/virtual_modifiers.carbon | 354 +++++++------- toolchain/check/testdata/const/basics.carbon | 24 +- toolchain/check/testdata/deduce/array.carbon | 92 ++-- .../testdata/deduce/binding_pattern.carbon | 8 +- .../check/testdata/deduce/generic_type.carbon | 84 ++-- .../check/testdata/deduce/int_float.carbon | 32 +- toolchain/check/testdata/deduce/tuple.carbon | 68 +-- .../testdata/deduce/type_operator.carbon | 108 ++--- .../value_with_type_through_access.carbon | 60 +-- toolchain/check/testdata/facet/access.carbon | 20 +- .../facet/call_combined_impl_witness.carbon | 4 +- ...t_class_type_to_generic_facet_value.carbon | 10 +- ...rt_class_value_to_facet_value_value.carbon | 4 +- ..._value_to_generic_facet_value_value.carbon | 32 +- ...t_value_as_type_knows_original_type.carbon | 2 +- ..._facet_value_to_narrowed_facet_type.carbon | 48 +- ...t_facet_value_value_to_blanket_impl.carbon | 8 +- ..._value_to_generic_facet_value_value.carbon | 44 +- ...convert_facet_value_value_to_itself.carbon | 8 +- .../testdata/facet/convert_interface.carbon | 4 +- ...convert_facet_value_to_missing_impl.carbon | 8 +- ...uction_uses_runtime_type_conversion.carbon | 22 +- .../check/testdata/facet/period_self.carbon | 8 +- .../facet/self_in_interface_param.carbon | 4 +- toolchain/check/testdata/for/actual.carbon | 72 +-- .../function/builtin/adapted_type.carbon | 48 +- .../testdata/function/builtin/call.carbon | 24 +- .../builtin/call_from_operator.carbon | 104 ++--- .../function/builtin/definition.carbon | 12 +- .../function/builtin/fail_redefined.carbon | 72 +-- .../testdata/function/builtin/import.carbon | 40 +- .../testdata/function/builtin/method.carbon | 24 +- .../function/builtin/positional.carbon | 4 +- .../check/testdata/function/call/alias.carbon | 4 +- .../function/call/empty_struct.carbon | 8 +- .../testdata/function/call/empty_tuple.carbon | 8 +- .../call/fail_explicit_self_param.carbon | 4 +- .../function/call/fail_param_count.carbon | 12 +- .../function/call/fail_param_type.carbon | 4 +- .../call/fail_return_type_mismatch.carbon | 4 +- .../check/testdata/function/call/form.carbon | 20 +- .../check/testdata/function/call/i32.carbon | 8 +- .../function/call/more_param_ir.carbon | 8 +- .../testdata/function/call/params_one.carbon | 4 +- .../function/call/params_one_comma.carbon | 4 +- .../testdata/function/call/params_two.carbon | 8 +- .../function/call/params_two_comma.carbon | 8 +- .../call/prefer_unqualified_lookup.carbon | 12 +- .../check/testdata/function/call/ref.carbon | 8 +- .../function/declaration/extern.carbon | 4 +- .../fail_import_incomplete_return.carbon | 16 +- .../declaration/fail_param_in_type.carbon | 10 +- .../declaration/fail_param_redecl.carbon | 8 +- .../function/declaration/fail_redecl.carbon | 12 +- .../declaration/fail_todo_no_params.carbon | 8 +- .../function/declaration/import.carbon | 32 +- .../declaration/param_same_name.carbon | 8 +- .../declaration/pattern_in_signature.carbon | 22 +- .../function/definition/basics.carbon | 4 +- .../fail_decl_param_mismatch.carbon | 34 +- .../function/definition/import.carbon | 16 +- .../function/definition/params_one.carbon | 4 +- .../definition/params_one_comma.carbon | 4 +- .../function/definition/params_two.carbon | 8 +- .../definition/params_two_comma.carbon | 8 +- .../definition/syntactic_merge.carbon | 100 ++-- .../testdata/function/generic/call.carbon | 16 +- .../testdata/function/generic/deduce.carbon | 124 ++--- .../fail_deduce_imported_function.carbon | 8 +- .../generic/indirect_generic_type.carbon | 4 +- .../function/generic/param_in_type.carbon | 4 +- .../function/generic/redeclare.carbon | 32 +- .../function/generic/return_slot.carbon | 4 +- .../testdata/generic/call_basic_depth.carbon | 4 +- .../testdata/generic/complete_type.carbon | 20 +- .../testdata/generic/dependent_param.carbon | 4 +- .../testdata/generic/template/convert.carbon | 48 +- .../generic/template/member_access.carbon | 40 +- .../generic/template/unimplemented.carbon | 16 +- .../generic/template_dependence.carbon | 20 +- toolchain/check/testdata/if/basics.carbon | 16 +- toolchain/check/testdata/if_expr/basic.carbon | 16 +- .../if_expr/constant_condition.carbon | 28 +- .../testdata/if_expr/control_flow.carbon | 16 +- .../if_expr/fail_partial_constant.carbon | 8 +- .../check/testdata/if_expr/nested.carbon | 16 +- .../check/testdata/if_expr/struct.carbon | 8 +- .../testdata/impl/assoc_const_self.carbon | 8 +- toolchain/check/testdata/impl/compound.carbon | 48 +- .../testdata/impl/extend_impl_generic.carbon | 48 +- .../testdata/impl/fail_call_invalid.carbon | 18 +- .../impl/fail_extend_impl_forall.carbon | 8 +- .../fail_extend_undefined_interface.carbon | 4 +- .../testdata/impl/fail_impl_as_scope.carbon | 12 +- .../impl/fail_impl_bad_assoc_fn.carbon | 212 ++++----- .../impl/fail_self_type_mismatch.carbon | 16 +- .../check/testdata/impl/forward_decls.carbon | 20 +- .../impl/generic_redeclaration.carbon | 8 +- .../check/testdata/impl/impl_thunk.carbon | 80 ++-- .../testdata/impl/import_builtin_call.carbon | 104 ++--- .../testdata/impl/import_compound.carbon | 24 +- .../testdata/impl/import_extend_impl.carbon | 4 +- .../check/testdata/impl/import_self.carbon | 36 +- .../testdata/impl/import_self_specific.carbon | 8 +- .../check/testdata/impl/import_thunk.carbon | 12 +- .../check/testdata/impl/interface_args.carbon | 96 ++-- .../check/testdata/impl/lookup/alias.carbon | 4 +- .../impl/lookup/canonical_query_self.carbon | 20 +- .../lookup/fail_alias_impl_not_found.carbon | 4 +- .../check/testdata/impl/lookup/generic.carbon | 84 ++-- .../testdata/impl/lookup/impl_forall.carbon | 24 +- .../check/testdata/impl/lookup/import.carbon | 72 +-- .../impl/lookup/instance_method.carbon | 24 +- ...pecialization_with_symbolic_rewrite.carbon | 35 +- .../testdata/impl/lookup/specific_args.carbon | 20 +- .../testdata/impl/lookup/transitive.carbon | 12 +- .../testdata/impl/multiple_extend.carbon | 20 +- .../check/testdata/impl/self_in_class.carbon | 8 +- .../testdata/impl/self_in_signature.carbon | 48 +- .../testdata/impl/use_assoc_entity.carbon | 442 +++++++++--------- .../check/testdata/index/expr_category.carbon | 12 +- .../testdata/index/fail_expr_category.carbon | 8 +- .../check/testdata/interface/as_type.carbon | 4 +- .../interface/assoc_const_in_generic.carbon | 4 +- .../interface/compound_member_access.carbon | 56 +-- .../testdata/interface/default_fn.carbon | 8 +- .../testdata/interface/export_name.carbon | 4 +- .../interface/fail_assoc_const_alias.carbon | 4 +- .../fail_assoc_fn_invalid_use.carbon | 4 +- .../testdata/interface/fail_duplicate.carbon | 4 +- .../testdata/interface/fail_modifiers.carbon | 8 +- .../fail_todo_define_default_fn_inline.carbon | 12 +- ..._todo_define_default_fn_out_of_line.carbon | 56 +-- .../check/testdata/interface/generic.carbon | 8 +- .../testdata/interface/generic_method.carbon | 96 ++-- .../check/testdata/interface/import.carbon | 12 +- .../testdata/interface/import_access.carbon | 50 +- .../testdata/interface/incomplete.carbon | 4 +- .../check/testdata/interface/local.carbon | 8 +- .../testdata/interface/member_lookup.carbon | 24 +- .../check/testdata/interface/self.carbon | 8 +- .../interface/todo_define_not_default.carbon | 12 +- .../testdata/interop/cpp/builtins.carbon | 4 +- .../interop/cpp/class/abstract.carbon | 4 +- .../testdata/interop/cpp/class/access.carbon | 28 +- .../testdata/interop/cpp/class/base.carbon | 12 +- .../testdata/interop/cpp/class/class.carbon | 28 +- .../testdata/interop/cpp/class/method.carbon | 24 +- .../testdata/interop/cpp/class/struct.carbon | 4 +- .../testdata/interop/cpp/class/union.carbon | 20 +- .../check/testdata/interop/cpp/deref.carbon | 4 +- .../interop/cpp/enum/anonymous.carbon | 4 +- .../interop/cpp/enum/incomplete.carbon | 4 +- .../interop/cpp/function/default_arg.carbon | 72 +-- .../interop/cpp/function/full_semir.carbon | 12 +- .../interop/cpp/function/operators.carbon | 64 +-- .../interop/cpp/function/overloads.carbon | 156 +++---- .../interop/cpp/function/return.carbon | 12 +- .../testdata/interop/cpp/impls/as.carbon | 44 +- .../testdata/interop/cpp/impls/destroy.carbon | 8 +- .../interop/cpp/impls/implicit_as.carbon | 52 +-- .../cpp/stdlib/initializer_list.carbon | 24 +- .../interop/cpp/stdlib/string_view.carbon | 16 +- .../testdata/let/compile_time_bindings.carbon | 16 +- toolchain/check/testdata/let/global.carbon | 4 +- .../check/testdata/let/shadowed_decl.carbon | 8 +- .../check/testdata/main_run/no_return.carbon | 8 +- .../check/testdata/main_run/return_i32.carbon | 16 +- .../testdata/namespace/add_to_import.carbon | 4 +- .../check/testdata/namespace/alias.carbon | 12 +- .../namespace/fail_decl_in_alias.carbon | 4 +- .../testdata/namespace/fail_params.carbon | 2 +- .../namespace/imported_indirect.carbon | 4 +- .../merging_with_indirections.carbon | 4 +- .../check/testdata/namespace/shadow.carbon | 4 +- .../testdata/operators/builtin/and.carbon | 16 +- .../fail_and_or_partial_constant.carbon | 8 +- .../fail_assignment_to_non_assignable.carbon | 4 +- .../fail_redundant_compound_access.carbon | 4 +- .../builtin/fail_type_mismatch_once.carbon | 4 +- .../builtin/fail_unimplemented_op.carbon | 4 +- .../testdata/operators/builtin/or.carbon | 16 +- .../operators/builtin/unary_op.carbon | 8 +- .../testdata/operators/overloaded/eq.carbon | 120 ++--- .../overloaded/fail_assign_non_ref.carbon | 24 +- .../overloaded/fail_error_recovery.carbon | 4 +- .../operators/overloaded/fail_no_impl.carbon | 24 +- .../operators/overloaded/implicit_as.carbon | 28 +- .../operators/overloaded/index.carbon | 36 +- .../overloaded/index_with_prelude.carbon | 36 +- .../operators/overloaded/ordered.carbon | 144 +++--- .../packages/cross_package_import.carbon | 4 +- .../testdata/packages/missing_prelude.carbon | 20 +- .../check/testdata/patterns/underscore.carbon | 8 +- .../check/testdata/patterns/unused.carbon | 4 +- .../testdata/pointer/address_of_deref.carbon | 4 +- toolchain/check/testdata/pointer/arrow.carbon | 8 +- toolchain/check/testdata/pointer/basic.carbon | 4 +- .../pointer/fail_deref_not_pointer.carbon | 4 +- .../pointer/fail_type_mismatch.carbon | 8 +- .../testdata/pointer/nested_const.carbon | 8 +- toolchain/check/testdata/pointer/types.carbon | 16 +- .../return/code_after_return_value.carbon | 8 +- .../testdata/return/fail_call_in_type.carbon | 4 +- .../return/fail_missing_return.carbon | 4 +- .../fail_missing_return_empty_tuple.carbon | 4 +- .../fail_return_var_no_returned_var.carbon | 4 +- .../fail_return_with_returned_var.carbon | 8 +- .../return/fail_returned_var_shadow.carbon | 8 +- .../return/fail_returned_var_type.carbon | 4 +- .../testdata/return/fail_type_mismatch.carbon | 4 +- .../testdata/return/fail_value_missing.carbon | 4 +- .../return/import_convert_function.carbon | 76 +-- .../check/testdata/return/returned_var.carbon | 8 +- .../testdata/return/returned_var_scope.carbon | 12 +- toolchain/check/testdata/return/struct.carbon | 4 +- toolchain/check/testdata/return/tuple.carbon | 4 +- toolchain/check/testdata/return/value.carbon | 4 +- .../struct/literal_member_access.carbon | 8 +- .../struct/nested_struct_in_place.carbon | 4 +- .../testdata/struct/partially_const.carbon | 8 +- .../testdata/struct/reorder_fields.carbon | 12 +- .../check/testdata/var/var_pattern.carbon | 20 +- .../testdata/where_expr/dot_self_index.carbon | 4 +- .../testdata/where_expr/non_generic.carbon | 4 +- toolchain/check/thunk.cpp | 47 +- toolchain/docs/check/pattern_matching.md | 20 +- .../lower/testdata/interop/cpp/nullptr.carbon | 2 +- toolchain/sem_ir/formatter.cpp | 18 +- toolchain/sem_ir/inst_categories.h | 74 ++- toolchain/sem_ir/inst_kind.def | 1 + toolchain/sem_ir/pattern.cpp | 27 +- toolchain/sem_ir/typed_insts.h | 49 +- 310 files changed, 4271 insertions(+), 4018 deletions(-) diff --git a/toolchain/check/cpp/import.cpp b/toolchain/check/cpp/import.cpp index 9c8192b541ea..0fc92eb250e2 100644 --- a/toolchain/check/cpp/import.cpp +++ b/toolchain/check/cpp/import.cpp @@ -1319,18 +1319,20 @@ static auto GetReturnInfo(Context& context, SemIR::LocId loc_id, auto return_patterns_id = SemIR::InstBlockId::Empty; if (auto init_form = context.insts().TryGetAs(form_inst_id)) { - SemIR::InstId return_slot_pattern_id = AddPatternInst( + auto param_pattern_id = AddPatternInst( context, MakeImportedLocIdAndInst( context, return_type_import_ir_inst_id, - SemIR::ReturnSlotPattern({.type_id = pattern_type_id, - .type_inst_id = type_inst_id}))); - auto param_pattern_id = AddPatternInst( + SemIR::OutParamPattern( + {.type_id = pattern_type_id, + .pretty_name_id = SemIR::NameId::ReturnSlot}))); + SemIR::InstId return_slot_pattern_id = AddPatternInst( context, MakeImportedLocIdAndInst( context, return_type_import_ir_inst_id, - SemIR::OutParamPattern({.type_id = pattern_type_id, - .subpattern_id = return_slot_pattern_id}))); - return_patterns_id = context.inst_blocks().Add({param_pattern_id}); + SemIR::ReturnSlotPattern({.type_id = pattern_type_id, + .subpattern_id = param_pattern_id, + .type_inst_id = type_inst_id}))); + return_patterns_id = context.inst_blocks().Add({return_slot_pattern_id}); } return {.return_type_inst_id = type_inst_id, .return_form_inst_id = form_inst_id, diff --git a/toolchain/check/function.cpp b/toolchain/check/function.cpp index 1404900cc185..facf7aa2a280 100644 --- a/toolchain/check/function.cpp +++ b/toolchain/check/function.cpp @@ -45,14 +45,15 @@ auto AddReturnPatterns(Context& context, SemIR::LocId loc_id, case CARBON_KIND(SemIR::InitForm _): { auto pattern_type_id = GetPatternType(context, form_expr.type_component_id); - auto return_slot_pattern_id = AddPatternInst( - context, loc_id, - {.type_id = pattern_type_id, - .type_inst_id = form_expr.type_component_inst_id}); - return_patterns.push_back(AddPatternInst( + auto out_param_id = AddPatternInst( context, SemIR::LocId(form_expr.form_inst_id), {.type_id = pattern_type_id, - .subpattern_id = return_slot_pattern_id})); + .pretty_name_id = SemIR::NameId::ReturnSlot}); + return_patterns.push_back(AddPatternInst( + context, SemIR::LocId(form_expr.form_inst_id), + {.type_id = pattern_type_id, + .subpattern_id = out_param_id, + .type_inst_id = form_expr.type_component_inst_id})); break; } case SemIR::ErrorInst::Kind: { diff --git a/toolchain/check/handle_binding_pattern.cpp b/toolchain/check/handle_binding_pattern.cpp index c43d59645190..aa400e740a0b 100644 --- a/toolchain/check/handle_binding_pattern.cpp +++ b/toolchain/check/handle_binding_pattern.cpp @@ -33,8 +33,8 @@ auto HandleParseNode(Context& context, Parse::UnderscoreNameId node_id) } // Returns the `InstKind` corresponding to the pattern's `NodeKind`. -static auto GetPatternInstKind(Parse::NodeKind node_kind, bool is_ref) - -> SemIR::InstKind { +static auto GetLeafBindingPatternInstKind(Parse::NodeKind node_kind, + bool is_ref) -> SemIR::InstKind { switch (node_kind) { case Parse::NodeKind::CompileTimeBindingPattern: return SemIR::InstKind::SymbolicBindingPattern; @@ -170,30 +170,34 @@ static auto HandleAnyBindingPattern(Context& context, Parse::NodeId node_id, context.node_stack() .PopAndDiscardSoloNodeIdIf(); - SemIR::InstKind pattern_inst_kind = GetPatternInstKind(node_kind, is_ref); - auto [name_node, name_id] = context.node_stack().PopNameWithNodeId(); const DeclIntroducerState& introducer = context.decl_introducer_state_stack().innermost(); - auto form_id = pattern_inst_kind == SemIR::FormBindingPattern::Kind + auto form_id = node_kind == Parse::FormBindingPattern::Kind ? context.constant_values().Get(type_expr.inst_id) : SemIR::ConstantId::None; - auto make_binding_pattern = [&]() -> SemIR::InstId { + // Adds a binding pattern for `node_id`, with the given kind and subpattern, + // and adds its name to the current context. The subpattern must not be + // provided unless the kind is `FormBindingPattern`. + auto make_binding_pattern = [&](SemIR::InstKind kind, + SemIR::InstId subpattern_id = + SemIR::InstId::None) -> SemIR::InstId { // TODO: Eventually the name will need to support associations with other // scopes, but right now we don't support qualified names here. auto phase = BindingPhase::Runtime; - if (pattern_inst_kind == SemIR::SymbolicBindingPattern::Kind) { + if (kind == SemIR::SymbolicBindingPattern::Kind) { phase = is_template ? BindingPhase::Template : BindingPhase::Symbolic; } auto binding = AddBindingPattern( context, name_node, type_expr_region_id, - {.kind = pattern_inst_kind, + {.kind = kind, .type_id = GetPatternType(context, type_expr.type_component_id), - .entity_name_id = AddBindingEntityName(context, name_id, form_id, - is_unused, phase)}); + .entity_name_id = + AddBindingEntityName(context, name_id, form_id, is_unused, phase), + .subpattern_id = subpattern_id}); // TODO: If `is_generic`, then `binding.bind_id is a SymbolicBinding. Subst // the `.Self` of type `type` in the `cast_type_id` type (a `FacetType`) @@ -281,30 +285,45 @@ static auto HandleAnyBindingPattern(Context& context, Parse::NodeId node_id, } } - auto result_inst_id = make_binding_pattern(); - - // A binding pattern in a function signature is a `Call` parameter - // unless it's nested inside a `var` pattern (because then the - // enclosing `var` pattern is), or it's a compile-time binding pattern - // (because then it's not passed to the `Call` inst). - if (node_kind == Parse::NodeKind::LetBindingPattern || - node_kind == Parse::NodeKind::FormBindingPattern) { - auto type_id = context.insts().GetAttachedType(result_inst_id); - if (is_ref) { - result_inst_id = AddPatternInst( - context, node_id, - {.type_id = type_id, .subpattern_id = result_inst_id}); - } else if (node_kind == Parse::NodeKind::FormBindingPattern) { - result_inst_id = AddPatternInst( - context, node_id, - {.type_id = type_id, - .subpattern_id = result_inst_id, - .form_id = form_id}); - } else { - result_inst_id = AddPatternInst( - context, node_id, - {.type_id = type_id, .subpattern_id = result_inst_id}); + auto result_inst_id = SemIR::InstId::None; + switch (node_kind) { + // A binding pattern in a function signature is a `Call` parameter + // unless it's nested inside a `var` pattern (because then the + // enclosing `var` pattern is), or it's a compile-time binding pattern + // (because then it's not passed to the `Call` inst). + case Parse::NodeKind::LetBindingPattern: + case Parse::NodeKind::FormBindingPattern: { + auto param_pattern_id = SemIR::InstId::None; + auto pattern_type_id = + GetPatternType(context, type_expr.type_component_id); + if (is_ref) { + param_pattern_id = AddPatternInst( + context, node_id, + {.type_id = pattern_type_id, .pretty_name_id = name_id}); + } else if (node_kind == Parse::NodeKind::FormBindingPattern) { + param_pattern_id = AddPatternInst( + context, node_id, + {.type_id = pattern_type_id, + .pretty_name_id = name_id, + .form_id = form_id}); + } else { + param_pattern_id = AddPatternInst( + context, node_id, + {.type_id = pattern_type_id, .pretty_name_id = name_id}); + } + result_inst_id = make_binding_pattern( + SemIR::WrapperBindingPattern::Kind, param_pattern_id); + break; } + case Parse::NodeKind::VarBindingPattern: + result_inst_id = make_binding_pattern(SemIR::RefBindingPattern::Kind); + break; + case Parse::NodeKind::CompileTimeBindingPattern: + result_inst_id = + make_binding_pattern(SemIR::SymbolicBindingPattern::Kind); + break; + default: + CARBON_FATAL("Unexpected node kind {0}", node_kind); } context.node_stack().Push(node_id, result_inst_id); break; @@ -333,7 +352,8 @@ static auto HandleAnyBindingPattern(Context& context, Parse::NodeId node_id, } } - auto binding_pattern_id = make_binding_pattern(); + auto binding_pattern_id = make_binding_pattern( + GetLeafBindingPatternInstKind(node_kind, is_ref)); if (node_kind == Parse::NodeKind::VarBindingPattern) { CARBON_CHECK(!is_generic); @@ -532,10 +552,6 @@ static auto MarkPatternUnused(Context& context, SemIR::InstId inst_id) -> bool { auto current_inst_id = worklist.pop_back_val(); auto inst = context.insts().Get(current_inst_id); CARBON_KIND_SWITCH(inst) { - case CARBON_KIND_ANY(SemIR::AnyParamPattern, param): { - worklist.push_back(param.subpattern_id); - break; - } case CARBON_KIND_ANY(SemIR::AnyBindingPattern, bind): { auto& name = context.entity_names().Get(bind.entity_name_id); name.is_unused = true; @@ -548,16 +564,16 @@ static auto MarkPatternUnused(Context& context, SemIR::InstId inst_id) -> bool { } break; } + case CARBON_KIND_ANY(SemIR::AnyVarPattern, var): { + worklist.push_back(var.subpattern_id); + break; + } case CARBON_KIND(SemIR::TuplePattern tuple): { for (auto elem_id : context.inst_blocks().Get(tuple.elements_id)) { worklist.push_back(elem_id); } break; } - case CARBON_KIND(SemIR::VarPattern var): { - worklist.push_back(var.subpattern_id); - break; - } default: break; } diff --git a/toolchain/check/handle_function.cpp b/toolchain/check/handle_function.cpp index 930cb70231f4..ec1bd32619be 100644 --- a/toolchain/check/handle_function.cpp +++ b/toolchain/check/handle_function.cpp @@ -312,20 +312,28 @@ static auto IsValidEntryPointParamList(Context& context, Parse::NodeId node_id, continue; } - auto param = - context.insts().TryGetAs(param_pattern_id); - if (!param) { - // Only value parameters are supported for now. + // Validate that this is a by-value parameter, which is represented as an + // WrapperBindingPattern wrapping a ValueParamPattern. + auto type_id = SemIR::TypeId::None; + if (auto binding = context.insts().TryGetAs( + param_pattern_id)) { + if (auto param_pattern = + context.insts().TryGetAs( + binding->subpattern_id)) { + type_id = param_pattern->type_id; + } + } + if (!type_id.has_value()) { return false; } - if (param->type_id == SemIR::ErrorInst::TypeId) { + if (type_id == SemIR::ErrorInst::TypeId) { // Ignore parameters with erroneous types. continue; } auto param_type_inst_id = context.types() - .GetAs(param->type_id) + .GetAs(type_id) .scrutinee_type_inst_id; switch (index) { case 0: { @@ -614,8 +622,7 @@ static auto CheckUnusedBindingsInPattern(Context& context, auto current_id = work_list.pop_back_val(); auto inst = context.insts().Get(current_id); CARBON_KIND_SWITCH(inst) { - case CARBON_KIND_ANY(SemIR::AnyParamPattern, param): { - work_list.push_back(param.subpattern_id); + case CARBON_KIND_ANY(SemIR::AnyLeafParamPattern, _): { break; } case CARBON_KIND_ANY(SemIR::AnyBindingPattern, bind): { @@ -628,9 +635,12 @@ static auto CheckUnusedBindingsInPattern(Context& context, "`unused` modifier on declaration"); context.emitter().Emit(current_id, UnusedModifierOnDeclaration); } + if (bind.kind == SemIR::WrapperBindingPattern::Kind) { + work_list.push_back(bind.subpattern_id); + } break; } - case CARBON_KIND(SemIR::VarPattern var_pattern): { + case CARBON_KIND_ANY(SemIR::AnyVarPattern, var_pattern): { work_list.push_back(var_pattern.subpattern_id); break; } diff --git a/toolchain/check/handle_let_and_var.cpp b/toolchain/check/handle_let_and_var.cpp index 3a6422576e14..329cae859a15 100644 --- a/toolchain/check/handle_let_and_var.cpp +++ b/toolchain/check/handle_let_and_var.cpp @@ -105,23 +105,25 @@ auto HandleParseNode(Context& context, Parse::VariablePatternId node_id) return true; } + auto pattern_id = SemIR::InstId::None; // In a parameter list, a `var` pattern is always a single `Call` parameter, // even if it contains multiple binding patterns. switch (context.full_pattern_stack().CurrentKind()) { case FullPatternStack::Kind::ExplicitParamList: case FullPatternStack::Kind::ImplicitParamList: - subpattern_id = AddPatternInst( + pattern_id = AddPatternInst( context, node_id, {.type_id = type_id, .subpattern_id = subpattern_id}); break; case FullPatternStack::Kind::NameBindingDecl: + pattern_id = AddPatternInst( + context, node_id, + {.type_id = type_id, .subpattern_id = subpattern_id}); break; case FullPatternStack::Kind::NotInEitherParamList: CARBON_FATAL("Unreachable"); } - auto pattern_id = AddPatternInst( - context, node_id, {.type_id = type_id, .subpattern_id = subpattern_id}); context.node_stack().Push(node_id, pattern_id); return true; } diff --git a/toolchain/check/import_ref.cpp b/toolchain/check/import_ref.cpp index 2a1525b9908b..a25148286f1c 100644 --- a/toolchain/check/import_ref.cpp +++ b/toolchain/check/import_ref.cpp @@ -1547,12 +1547,13 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, } template - requires SemIR::Internal::HasInstCategory + requires SemIR::Internal::HasInstCategory && + (!std::same_as) static auto TryResolveTypedInst(ImportRefResolver& resolver, ParamPatternT inst, SemIR::InstId import_inst_id) -> ResolveResult { auto type_const_id = GetLocalConstantId(resolver, inst.type_id); - auto subpattern_id = GetLocalConstantInstId(resolver, inst.subpattern_id); + auto name_id = GetLocalNameId(resolver, inst.pretty_name_id); if (resolver.HasNewWork()) { return ResolveResult::Retry(); } @@ -1561,7 +1562,7 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, ParamPatternT inst, resolver, import_inst_id, {.type_id = resolver.local_types().GetTypeIdForTypeConstantId(type_const_id), - .subpattern_id = subpattern_id}); + .pretty_name_id = name_id}); } static auto TryResolveTypedInst(ImportRefResolver& resolver, @@ -1743,6 +1744,10 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, resolver.import_entity_names().Get(inst.entity_name_id); auto parent_scope_id = GetLocalNameScopeId(resolver, import_entity_name.parent_scope_id); + auto subpattern_id = SemIR::InstId::None; + if constexpr (std::is_same_v) { + subpattern_id = GetLocalConstantInstId(resolver, inst.subpattern_id); + } if (resolver.HasNewWork()) { return ResolveResult::Retry(); } @@ -1753,11 +1758,17 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, .parent_scope_id = parent_scope_id, .bind_index_value = import_entity_name.bind_index().index, .is_template = import_entity_name.is_template}); + // We use AnyBindingPattern here so that we can initialize it uniformly, + // regardless of whether BindingPatternT has a subpattern_id field. + SemIR::AnyBindingPattern result = { + .kind = BindingPatternT::Kind, + .type_id = + resolver.local_types().GetTypeIdForTypeConstantId(type_const_id), + .entity_name_id = entity_name_id, + .subpattern_id = subpattern_id}; + return ResolveResult::Unique( - resolver, import_inst_id, - {.type_id = - resolver.local_types().GetTypeIdForTypeConstantId(type_const_id), - .entity_name_id = entity_name_id}); + resolver, import_inst_id, SemIR::Inst(result).As()); } static auto TryResolveTypedInst(ImportRefResolver& resolver, @@ -3730,6 +3741,7 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, SemIR::ReturnSlotPattern inst, SemIR::InstId import_inst_id) -> ResolveResult { auto type_const_id = GetLocalConstantId(resolver, inst.type_id); + auto subpattern_id = GetLocalConstantInstId(resolver, inst.subpattern_id); if (resolver.HasNewWork()) { return ResolveResult::Retry(); } @@ -3738,6 +3750,7 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, resolver, import_inst_id, {.type_id = resolver.local_types().GetTypeIdForTypeConstantId(type_const_id), + .subpattern_id = subpattern_id, .type_inst_id = SemIR::TypeInstId::None}); } @@ -3953,8 +3966,9 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, .element_type_inst_id = elem_const_inst_id}); } -static auto TryResolveTypedInst(ImportRefResolver& resolver, - SemIR::VarPattern inst, +template + requires SemIR::Internal::HasInstCategory +static auto TryResolveTypedInst(ImportRefResolver& resolver, VarPatternT inst, SemIR::InstId import_inst_id) -> ResolveResult { auto type_const_id = GetLocalConstantId(resolver, inst.type_id); auto subpattern_id = GetLocalConstantInstId(resolver, inst.subpattern_id); @@ -3962,7 +3976,7 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, return ResolveResult::Retry(); } - return ResolveResult::Unique( + return ResolveResult::Unique( resolver, import_inst_id, {.type_id = resolver.local_types().GetTypeIdForTypeConstantId(type_const_id), @@ -4267,6 +4281,9 @@ static auto TryResolveInstCanonical(ImportRefResolver& resolver, case CARBON_KIND(SemIR::VtablePtr inst): { return TryResolveTypedInst(resolver, inst); } + case CARBON_KIND(SemIR::WrapperBindingPattern inst): { + return TryResolveTypedInst(resolver, inst, constant_inst_id); + } default: // Found a canonical instruction which needs to be resolved, but which is // not yet handled. diff --git a/toolchain/check/merge.cpp b/toolchain/check/merge.cpp index 3a1b3a960a88..cf3f92b84ba7 100644 --- a/toolchain/check/merge.cpp +++ b/toolchain/check/merge.cpp @@ -207,14 +207,11 @@ static auto CheckRedeclParam(Context& context, bool is_implicit_param, SemIR::InstId orig_prev_param_pattern_id, SemIR::SpecificId prev_specific_id, bool diagnose, bool check_syntax, bool check_self) -> bool { - // TODO: Consider differentiating between type and name mistakes. For now, - // taking the simpler approach because I also think we may want to refactor - // params. CARBON_DIAGNOSTIC( RedeclParamPrevious, Note, "previous declaration's corresponding {0:implicit |}parameter here", Diagnostics::BoolAsSelect); - auto emit_diagnostic = [&]() { + auto emit_general_diagnostic = [&]() { if (!diagnose) { return; } @@ -239,28 +236,58 @@ static auto CheckRedeclParam(Context& context, bool is_implicit_param, pattern_stack.push_back({.prev_id = orig_prev_param_pattern_id, .new_id = orig_new_param_pattern_id}); + // When `check_self` is false, we need to disable type checking as soon as we + // determine this is a `self` parameter, and that decision needs to persist + // across the handling of any subpatterns. + bool check_type = true; do { auto patterns = pattern_stack.pop_back_val(); auto new_param_pattern = context.insts().Get(patterns.new_id); auto prev_param_pattern = context.insts().Get(patterns.prev_id); if (new_param_pattern.kind() != prev_param_pattern.kind()) { - emit_diagnostic(); + emit_general_diagnostic(); return false; } + // Conditionally checks for and diagnoses a type mismatch between the old + // and new parameter patterns. Returns false if a mismatch was found. + auto check_for_type_mismatch = [&]() { + auto prev_param_type_id = SemIR::GetTypeOfInstInSpecific( + context.sem_ir(), prev_specific_id, patterns.prev_id); + if (check_type && !context.types().AreEqualAcrossDeclarations( + new_param_pattern.type_id(), prev_param_type_id)) { + if (diagnose) { + CARBON_DIAGNOSTIC( + RedeclParamDiffersType, Error, + "type {3} of {0:implicit |}parameter {1} in " + "redeclaration differs from previous parameter type {2}", + Diagnostics::BoolAsSelect, int32_t, SemIR::TypeId, SemIR::TypeId); + context.emitter() + .Build(orig_new_param_pattern_id, RedeclParamDiffersType, + is_implicit_param, param_index + 1, prev_param_type_id, + new_param_pattern.type_id()) + .Note(orig_prev_param_pattern_id, RedeclParamPrevious, + is_implicit_param) + .Emit(); + } + return false; + } + return true; + }; + CARBON_KIND_SWITCH(new_param_pattern) { - case CARBON_KIND_ANY(SemIR::AnyParamPattern, new_any_param_pattern): { - auto prev_any_param_pattern = - prev_param_pattern.As(); - pattern_stack.push_back( - {.prev_id = prev_any_param_pattern.subpattern_id, - .new_id = new_any_param_pattern.subpattern_id}); + case CARBON_KIND_ANY(SemIR::AnyLeafParamPattern, _): { + if (!check_for_type_mismatch()) { + return false; + } break; } - case CARBON_KIND(SemIR::VarPattern new_var_pattern): { - auto prev_var_pattern = prev_param_pattern.As(); - pattern_stack.push_back({.prev_id = prev_var_pattern.subpattern_id, - .new_id = new_var_pattern.subpattern_id}); + case CARBON_KIND_ANY(SemIR::AnyVarPattern, new_var_param_pattern): { + auto prev_var_param_pattern = + prev_param_pattern.As(); + pattern_stack.push_back( + {.prev_id = prev_var_param_pattern.subpattern_id, + .new_id = new_var_param_pattern.subpattern_id}); break; } case CARBON_KIND_ANY(SemIR::AnyBindingPattern, new_any_binding_pattern): { @@ -275,33 +302,22 @@ static auto CheckRedeclParam(Context& context, bool is_implicit_param, if (!check_self && new_name_id == SemIR::NameId::SelfValue && prev_name_id == SemIR::NameId::SelfValue) { - break; + check_type = false; } - auto prev_param_type_id = SemIR::GetTypeOfInstInSpecific( - context.sem_ir(), prev_specific_id, patterns.prev_id); - if (!context.types().AreEqualAcrossDeclarations( - new_param_pattern.type_id(), prev_param_type_id)) { - if (!diagnose) { - return false; - } - CARBON_DIAGNOSTIC( - RedeclParamDiffersType, Error, - "type {3} of {0:implicit |}parameter {1} in " - "redeclaration differs from previous parameter type {2}", - Diagnostics::BoolAsSelect, int32_t, SemIR::TypeId, SemIR::TypeId); - context.emitter() - .Build(orig_new_param_pattern_id, RedeclParamDiffersType, - is_implicit_param, param_index + 1, prev_param_type_id, - new_param_pattern.type_id()) - .Note(orig_prev_param_pattern_id, RedeclParamPrevious, - is_implicit_param) - .Emit(); + if (new_any_binding_pattern.kind == + SemIR::WrapperBindingPattern::Kind) { + // The subpattern handling will take care of checking for type + // mismatch. + pattern_stack.push_back( + {.prev_id = prev_any_binding_pattern.subpattern_id, + .new_id = new_any_binding_pattern.subpattern_id}); + } else if (!check_for_type_mismatch()) { return false; } if (check_syntax && new_name_id != prev_name_id) { - emit_diagnostic(); + emit_general_diagnostic(); return false; } break; diff --git a/toolchain/check/merge.h b/toolchain/check/merge.h index 143c4460fec1..81c03d099578 100644 --- a/toolchain/check/merge.h +++ b/toolchain/check/merge.h @@ -95,7 +95,9 @@ struct DeclParams { // Checks that the parameters in a redeclaration of an entity match the // parameters in the prior declaration. If not, produces a diagnostic if -// `diagnose` is true, and returns false. +// `diagnose` is true, and returns false. If `check_self` is false, +// type and name mismatches will not be diagnosed for the `self` parameter +// (if any), but form mismatches will still be diagnosed. auto CheckRedeclParamsMatch(Context& context, const DeclParams& new_entity, const DeclParams& prev_entity, SemIR::SpecificId prev_specific_id, bool diagnose, diff --git a/toolchain/check/pattern.cpp b/toolchain/check/pattern.cpp index cd708889288c..781314cee048 100644 --- a/toolchain/check/pattern.cpp +++ b/toolchain/check/pattern.cpp @@ -4,6 +4,7 @@ #include "toolchain/check/pattern.h" +#include "toolchain/base/kind_switch.h" #include "toolchain/check/control_flow.h" #include "toolchain/check/inst.h" #include "toolchain/check/return.h" @@ -67,18 +68,37 @@ auto AddBindingPattern(Context& context, SemIR::LocId name_loc, SemIR::AnyBindingPattern pattern) -> BindingPatternInfo { SemIR::InstKind bind_name_kind; switch (pattern.kind) { - case SemIR::InstKind::FormBindingPattern: - bind_name_kind = SemIR::InstKind::FormBinding; + case SemIR::FormBindingPattern::Kind: + bind_name_kind = SemIR::FormBinding::Kind; break; - case SemIR::InstKind::RefBindingPattern: - bind_name_kind = SemIR::InstKind::RefBinding; + case SemIR::RefBindingPattern::Kind: + bind_name_kind = SemIR::RefBinding::Kind; break; - case SemIR::InstKind::SymbolicBindingPattern: - bind_name_kind = SemIR::InstKind::SymbolicBinding; + case SemIR::SymbolicBindingPattern::Kind: + bind_name_kind = SemIR::SymbolicBinding::Kind; break; - case SemIR::InstKind::ValueBindingPattern: - bind_name_kind = SemIR::InstKind::ValueBinding; + case SemIR::ValueBindingPattern::Kind: + bind_name_kind = SemIR::ValueBinding::Kind; break; + case SemIR::WrapperBindingPattern::Kind: { + auto subpattern = context.insts().Get(pattern.subpattern_id); + CARBON_KIND_SWITCH(subpattern) { + case SemIR::FormParamPattern::Kind: + bind_name_kind = SemIR::FormBinding::Kind; + break; + case SemIR::RefParamPattern::Kind: + case SemIR::VarPattern::Kind: + bind_name_kind = SemIR::RefBinding::Kind; + break; + case SemIR::ValueParamPattern::Kind: + bind_name_kind = SemIR::ValueBinding::Kind; + break; + default: + CARBON_FATAL("Unexpected subpattern kind for at_binding_pattern: {0}", + subpattern); + } + break; + } default: CARBON_FATAL("pattern_kind {0} is not a binding pattern kind", pattern.kind); @@ -134,11 +154,11 @@ auto AddPatternVarStorage(Context& context, SemIR::InstBlockId pattern_block_id, bool is_returned_var) -> void { // We need to emit the VarStorage insts early, because they may be output // arguments for the initializer. However, we can't emit them when we emit - // the corresponding `VarPattern`s because they're part of the pattern match, - // not part of the pattern. + // the corresponding `AnyVarPattern`s because they're part of the pattern + // match, not part of the pattern. // TODO: Find a way to do this without walking the whole pattern block. for (auto inst_id : context.inst_blocks().Get(pattern_block_id)) { - if (context.insts().Is(inst_id)) { + if (context.insts().Is(inst_id)) { context.var_storage_map().Insert( inst_id, GetOrAddVarStorage(context, inst_id, is_returned_var)); } @@ -149,32 +169,27 @@ auto AddParamPattern(Context& context, SemIR::LocId loc_id, SemIR::NameId name_id, SemIR::ExprRegionId type_expr_region_id, SemIR::TypeId type_id, bool is_ref) -> SemIR::InstId { - const auto& binding_pattern_kind = is_ref ? SemIR::RefBindingPattern::Kind - : SemIR::ValueBindingPattern::Kind; + auto pattern_type_id = GetPatternType(context, type_id); + const auto& param_pattern_kind = + is_ref ? SemIR::RefParamPattern::Kind : SemIR::ValueParamPattern::Kind; + auto pattern_id = AddPatternInst( + context, + SemIR::LocIdAndInst::UncheckedLoc( + loc_id, SemIR::AnyLeafParamPattern{.kind = param_pattern_kind, + .type_id = pattern_type_id, + .pretty_name_id = name_id})); + auto entity_name_id = AddBindingEntityName(context, name_id, /*form_id=*/SemIR::ConstantId::None, /*is_unused=*/false, /*phase=*/BindingPhase::Runtime); - SemIR::InstId pattern_id = - AddBindingPattern(context, loc_id, type_expr_region_id, - {.kind = binding_pattern_kind, - .type_id = GetPatternType(context, type_id), - .entity_name_id = entity_name_id}) - .pattern_id; - - const auto& param_pattern_kind = - is_ref ? SemIR::RefParamPattern::Kind : SemIR::ValueParamPattern::Kind; - pattern_id = AddPatternInst( - context, - SemIR::LocIdAndInst::UncheckedLoc( - loc_id, SemIR::AnyParamPattern{ - .kind = param_pattern_kind, - .type_id = context.insts().Get(pattern_id).type_id(), - .subpattern_id = pattern_id, - .form_id = SemIR::ConstantId::None})); - - return pattern_id; + return AddBindingPattern(context, loc_id, type_expr_region_id, + {.kind = SemIR::WrapperBindingPattern::Kind, + .type_id = GetPatternType(context, type_id), + .entity_name_id = entity_name_id, + .subpattern_id = pattern_id}) + .pattern_id; } } // namespace Carbon::Check diff --git a/toolchain/check/pattern_match.cpp b/toolchain/check/pattern_match.cpp index 15c1246deea2..fc7d1deb3c07 100644 --- a/toolchain/check/pattern_match.cpp +++ b/toolchain/check/pattern_match.cpp @@ -161,13 +161,27 @@ class MatchContext { // Do the post-work for `entry`. `entry.work` must be a `PostWork`, and // the pattern argument must be the value of `entry.pattern_id` in `context`. + auto DoPostWork(Context& context, SemIR::AnyBindingPattern binding_pattern, + WorkItem entry) -> void; auto DoPostWork(Context& context, SemIR::VarPattern var_pattern, WorkItem entry) -> void; auto DoPostWork(Context& context, SemIR::AnyParamPattern param_pattern, WorkItem entry) -> void; + auto DoPostWork(Context& context, + SemIR::ReturnSlotPattern return_slot_pattern, WorkItem entry) + -> void; auto DoPostWork(Context& context, SemIR::TuplePattern tuple_pattern, WorkItem entry) -> void; + // Asserts that there is a single inst in the top array in `results_stack_`, + // pops that array, and returns the inst. + auto PopResult() -> SemIR::InstId { + CARBON_CHECK(results_stack_.PeekArray().size() == 1); + auto value_id = results_stack_.PeekArray()[0]; + results_stack_.PopArray(); + return value_id; + } + // Performs the core logic of matching a variable pattern whose type is // `pattern_type_id`, but returns the scrutinee that its subpattern should be // matched with, rather than pushing it onto the worklist. This is factored @@ -286,13 +300,21 @@ static auto InsertHere(Context& context, SemIR::ExprRegionId region_id) } // Returns the kind of conversion to perform on the scrutinee when matching the -// given pattern. +// given pattern. Note that this returns `NoOp` for `var` patterns, because +// their conversion needs special handling, prior to any general-purpose +// conversion that would use this function. static auto ConversionKindFor(Context& context, SemIR::Inst pattern, MatchContext::WorkItem entry) -> ConversionTarget::Kind { CARBON_KIND_SWITCH(pattern) { - case SemIR::OutParamPattern::Kind: case SemIR::VarParamPattern::Kind: + case SemIR::VarPattern::Kind: + // See function comment. + case SemIR::OutParamPattern::Kind: + // OutParamPattern conversion is handled by the enclosing + // ReturnSlotPattern. + case SemIR::WrapperBindingPattern::Kind: + // WrapperBindingPattern conversion is handled by its subpattern. return ConversionTarget::NoOp; case SemIR::RefBindingPattern::Kind: return ConversionTarget::DurableRef; @@ -353,16 +375,33 @@ static auto ConversionKindFor(Context& context, SemIR::Inst pattern, } } -auto MatchContext::DoPreWork(Context& context, +auto MatchContext::DoPreWork(Context& /*context*/, SemIR::AnyBindingPattern binding_pattern, SemIR::InstId scrutinee_id, MatchContext::WorkItem entry) -> void { - if (kind_ == MatchKind::Caller) { - CARBON_CHECK( - binding_pattern.kind == SemIR::SymbolicBindingPattern::Kind, - "Found named runtime binding pattern during caller pattern match"); - return; + bool scheduled_post_work = false; + if (kind_ != MatchKind::Caller) { + results_stack_.PushArray(); + AddAsPostWork(entry); + scheduled_post_work = true; + } else { + CARBON_CHECK(!need_subpattern_results()); } + if (binding_pattern.kind == SemIR::WrapperBindingPattern::Kind) { + AddWork({.pattern_id = binding_pattern.subpattern_id, + .work = PreWork{.scrutinee_id = scrutinee_id}, + .allow_unmarked_ref = entry.allow_unmarked_ref}); + } else if (scheduled_post_work) { + // PostWork expects a result to bind the name to. If we scheduled PostWork, + // but didn't schedule PreWork for a subpattern, the name should be bound to + // the scrutinee. + results_stack_.AppendToTop(scrutinee_id); + } +} + +auto MatchContext::DoPostWork(Context& context, + SemIR::AnyBindingPattern binding_pattern, + MatchContext::WorkItem entry) -> void { // We're logically consuming this map entry, so we invalidate it in order // to avoid accidentally consuming it twice. auto [bind_name_id, type_expr_region_id] = @@ -372,25 +411,24 @@ auto MatchContext::DoPreWork(Context& context, if (type_expr_region_id.has_value()) { InsertHere(context, type_expr_region_id); } - auto value_id = SemIR::InstId::None; - if (kind_ == MatchKind::Local) { - auto conversion_kind = ConversionKindFor(context, binding_pattern, entry); + auto value_id = PopResult(); + if (value_id.has_value()) { + auto conversion_kind = ConversionKindFor(context, binding_pattern, entry); if (!bind_name_id.has_value()) { // TODO: Is this appropriate, or should we perform a conversion based on - // whether the `_` binding is a value or ref binding first, and then - // separately discard the initializer for a `_` binding? + // the category of the `_` binding first, and then separately discard the + // initializer for a `_` binding? conversion_kind = ConversionTarget::Discarded; } value_id = - Convert(context, SemIR::LocId(scrutinee_id), scrutinee_id, + Convert(context, SemIR::LocId(value_id), value_id, {.kind = conversion_kind, .type_id = context.insts().Get(bind_name_id).type_id()}); } else { - // In a function call, conversion is handled while matching the enclosing - // `*ParamPattern`. - value_id = scrutinee_id; + CARBON_CHECK(binding_pattern.kind == SemIR::SymbolicBindingPattern::Kind); } + if (bind_name_id.has_value()) { auto bind_name = context.insts().GetAs(bind_name_id); CARBON_CHECK(!bind_name.value_id.has_value()); @@ -442,16 +480,29 @@ auto MatchContext::DoPreWork(Context& context, SemIR::AnyParamPattern param_pattern, SemIR::InstId scrutinee_id, WorkItem entry) -> void { - // If the form is initializing, match this as a `VarPattern` before matching - // it as a parameter pattern. - if (param_pattern.kind == SemIR::FormParamPattern::Kind) { - auto form_inst_id = - context.constant_values().GetInstId(param_pattern.form_id); - if (context.insts().Get(form_inst_id).kind() == SemIR::InitForm::Kind) { - auto new_scrutinee_id = - DoVarPreWorkImpl(context, param_pattern.type_id, scrutinee_id, entry); - scrutinee_id = new_scrutinee_id; + AddAsPostWork(entry); + + // If `param_pattern` has initializing form, match it as a `VarPattern` + // before matching it as a parameter pattern. + switch (param_pattern.kind) { + case SemIR::FormParamPattern::Kind: { + auto form_param_pattern = + context.insts().GetAs(entry.pattern_id); + auto form_inst_id = + context.constant_values().GetInstId(form_param_pattern.form_id); + if (!context.insts().Is(form_inst_id)) { + break; + } + [[fallthrough]]; } + case SemIR::VarParamPattern::Kind: { + scrutinee_id = + DoVarPreWorkImpl(context, param_pattern.type_id, scrutinee_id, entry); + entry.allow_unmarked_ref = true; + break; + } + default: + break; } switch (kind_) { @@ -469,26 +520,43 @@ auto MatchContext::DoPreWork(Context& context, {.kind = ConversionKindFor(context, param_pattern, entry), .type_id = scrutinee_type_id})); } - // Do not traverse farther, because the caller side of the pattern - // ends here. + // Do not traverse farther or schedule PostWork, because the caller side + // of the pattern ends here. break; } case MatchKind::Callee: { - if (need_subpattern_results()) { - AddAsPostWork(entry); + SemIR::Inst param = + SemIR::AnyParam{.kind = ParamKindFor(context, param_pattern, entry), + .type_id = ExtractScrutineeType( + context.sem_ir(), param_pattern.type_id), + .index = SemIR::CallParamIndex(call_params_.size()), + .pretty_name_id = SemIR::GetPrettyNameFromPatternId( + context.sem_ir(), entry.pattern_id)}; + auto loc_id = SemIR::LocId(entry.pattern_id); + auto param_id = SemIR::InstId::None; + // TODO: find a way to avoid this boilerplate. + switch (param.kind()) { + case SemIR::OutParam::Kind: + param_id = AddInst(context, loc_id, param.As()); + break; + case SemIR::RefParam::Kind: + param_id = AddInst(context, loc_id, param.As()); + break; + case SemIR::ValueParam::Kind: + param_id = AddInst(context, loc_id, param.As()); + break; + default: + CARBON_FATAL("Unexpected parameter kind"); + } + if (auto var_param_pattern = + context.insts().TryGetAs( + entry.pattern_id)) { + AddWork({.pattern_id = var_param_pattern->subpattern_id, + .work = PreWork{.scrutinee_id = param_id}, + .allow_unmarked_ref = entry.allow_unmarked_ref}); + } else { + results_stack_.AppendToTop(param_id); } - SemIR::AnyParam param = { - .kind = ParamKindFor(context, param_pattern, entry), - .type_id = - ExtractScrutineeType(context.sem_ir(), param_pattern.type_id), - .index = SemIR::CallParamIndex(call_params_.size()), - .pretty_name_id = SemIR::GetPrettyNameFromPatternId( - context.sem_ir(), entry.pattern_id)}; - auto param_id = - AddInst(context, SemIR::LocIdAndInst::UncheckedLoc( - SemIR::LocId(entry.pattern_id), param)); - AddWork({.pattern_id = param_pattern.subpattern_id, - .work = PreWork{.scrutinee_id = param_id}}); call_params_.push_back(param_id); call_param_patterns_.push_back(entry.pattern_id); break; @@ -502,13 +570,27 @@ auto MatchContext::DoPreWork(Context& context, auto MatchContext::DoPostWork(Context& /*context*/, SemIR::AnyParamPattern /*param_pattern*/, WorkItem /*entry*/) -> void { - // No-op: the subpattern's result is this pattern's result. + // No-op: the subpattern's result is this pattern's result. Note that if + // there were any post-work corresponding to DoVarPreWorkImpl, that work + // would have to be done here. } -auto MatchContext::DoPreWork(Context& context, +auto MatchContext::DoPreWork(Context& /*context*/, SemIR::ReturnSlotPattern return_slot_pattern, SemIR::InstId scrutinee_id, WorkItem entry) -> void { + if (kind_ == MatchKind::Callee) { + CARBON_CHECK(!scrutinee_id.has_value()); + results_stack_.PushArray(); + AddAsPostWork(entry); + } + AddWork({.pattern_id = return_slot_pattern.subpattern_id, + .work = PreWork{.scrutinee_id = scrutinee_id}}); +} + +auto MatchContext::DoPostWork(Context& context, + SemIR::ReturnSlotPattern return_slot_pattern, + WorkItem entry) -> void { CARBON_CHECK(kind_ == MatchKind::Callee); auto type_id = ExtractScrutineeType(context.sem_ir(), return_slot_pattern.type_id); @@ -516,7 +598,7 @@ auto MatchContext::DoPreWork(Context& context, context, SemIR::LocId(entry.pattern_id), {.type_id = type_id, .type_inst_id = context.types().GetTypeInstId(type_id), - .storage_id = scrutinee_id}); + .storage_id = PopResult()}); bool already_in_lookup = context.scope_stack() .LookupOrAddName(SemIR::NameId::ReturnSlot, return_slot_id) @@ -536,7 +618,8 @@ auto MatchContext::DoPreWork(Context& context, SemIR::VarPattern var_pattern, AddAsPostWork(entry); } AddWork({.pattern_id = var_pattern.subpattern_id, - .work = PreWork{.scrutinee_id = new_scrutinee_id}}); + .work = PreWork{.scrutinee_id = new_scrutinee_id}, + .allow_unmarked_ref = true}); } auto MatchContext::DoVarPreWorkImpl(Context& context, @@ -549,7 +632,7 @@ auto MatchContext::DoVarPreWorkImpl(Context& context, // We're emitting pattern-match IR for the callee, but we're still on // the caller side of the pattern, so we traverse without emitting any // insts. - return SemIR::InstId::None; + return scrutinee_id; } case MatchKind::Local: { // In a `var`/`let` declaration, the `VarStorage` inst is created before @@ -741,10 +824,18 @@ auto MatchContext::Dispatch(Context& context, WorkItem entry) -> void { } case CARBON_KIND(PostWork _): { CARBON_KIND_SWITCH(pattern) { + case CARBON_KIND_ANY(SemIR::AnyBindingPattern, any_binding_pattern): { + DoPostWork(context, any_binding_pattern, entry); + break; + } case CARBON_KIND_ANY(SemIR::AnyParamPattern, any_param_pattern): { DoPostWork(context, any_param_pattern, entry); break; } + case CARBON_KIND(SemIR::ReturnSlotPattern return_slot_pattern): { + DoPostWork(context, return_slot_pattern, entry); + break; + } case CARBON_KIND(SemIR::VarPattern var_pattern): { DoPostWork(context, var_pattern, entry); break; diff --git a/toolchain/check/return.cpp b/toolchain/check/return.cpp index b7c1c8c0595d..81d999a06bf4 100644 --- a/toolchain/check/return.cpp +++ b/toolchain/check/return.cpp @@ -180,6 +180,10 @@ auto BuildReturnWithExpr(Context& context, SemIR::LocId loc_id, case CARBON_KIND(SemIR::InitForm _): { auto call_params = context.inst_blocks().Get( GetCurrentFunctionForReturn(context).call_params_id); + if (function.call_param_ranges.return_size() == 0) { + out_param_id = SemIR::InstId::None; + break; + } CARBON_CHECK(function.call_param_ranges.return_size() == 1); out_param_id = call_params[function.call_param_ranges.return_begin().index]; diff --git a/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon b/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon index a5a69c81ee0e..9b09f3909a0b 100644 --- a/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon +++ b/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon @@ -116,8 +116,8 @@ library "[[@TEST_NAME]]"; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] { -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %.loc17_12.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_12.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc17_12.2: type = converted %.loc17_12.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] diff --git a/toolchain/check/testdata/basics/include_in_dumps.carbon b/toolchain/check/testdata/basics/include_in_dumps.carbon index 0832481734b2..4e8b3448ee78 100644 --- a/toolchain/check/testdata/basics/include_in_dumps.carbon +++ b/toolchain/check/testdata/basics/include_in_dumps.carbon @@ -144,8 +144,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.Op.decl: @I.WithSelf.%I.WithSelf.Op.type (%I.WithSelf.Op.type.71c) = fn_decl @I.WithSelf.Op [symbolic = @I.WithSelf.%I.WithSelf.Op (constants.%I.WithSelf.Op.ae1)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc8_22.1: type = splice_block %.loc8_22.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -257,8 +257,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] @@ -373,8 +373,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] diff --git a/toolchain/check/testdata/basics/raw_identifier.carbon b/toolchain/check/testdata/basics/raw_identifier.carbon index 013c64526997..b9029a1b4ad7 100644 --- a/toolchain/check/testdata/basics/raw_identifier.carbon +++ b/toolchain/check/testdata/basics/raw_identifier.carbon @@ -45,10 +45,10 @@ fn C(r#if: ()) -> () { // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %n.patt: %pattern_type = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc14_17.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_17.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc14_17.2: type = converted %.loc14_17.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -63,10 +63,10 @@ fn C(r#if: ()) -> () { // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %n.patt: %pattern_type = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc18_19.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc18_19.2: type = converted %.loc18_19.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -81,10 +81,10 @@ fn C(r#if: ()) -> () { // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] { -// CHECK:STDOUT: %if.patt: %pattern_type = value_binding_pattern r#if [concrete] -// CHECK:STDOUT: %if.param_patt: %pattern_type = value_param_pattern %if.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %if.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %if.patt: %pattern_type = at_binding_pattern r#if, %if.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc22_20.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc22_20.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc22_20.2: type = converted %.loc22_20.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] diff --git a/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon b/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon index a5c57bdb9914..3888c7b6e533 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon @@ -153,9 +153,9 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: inst50000015: {kind: ClassType, arg0: class50000000, arg1: specific, type: type(TypeType)} // CHECK:STDOUT: inst50000016: {kind: NameRef, arg0: name2, arg1: inst50000014, type: type(TypeType)} // CHECK:STDOUT: inst50000017: {kind: PatternType, arg0: inst50000015, type: type(TypeType)} -// CHECK:STDOUT: inst50000018: {kind: ValueBinding, arg0: entity_name50000000, arg1: inst5000001B, type: type(inst50000015)} -// CHECK:STDOUT: inst50000019: {kind: ValueBindingPattern, arg0: entity_name50000000, type: type(inst50000017)} -// CHECK:STDOUT: inst5000001A: {kind: ValueParamPattern, arg0: inst50000019, type: type(inst50000017)} +// CHECK:STDOUT: inst50000018: {kind: ValueParamPattern, arg0: name1, type: type(inst50000017)} +// CHECK:STDOUT: inst50000019: {kind: ValueBinding, arg0: entity_name50000000, arg1: inst5000001B, type: type(inst50000015)} +// CHECK:STDOUT: inst5000001A: {kind: WrapperBindingPattern, arg0: entity_name50000000, arg1: inst50000018, type: type(inst50000017)} // CHECK:STDOUT: inst5000001B: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst50000015)} // CHECK:STDOUT: inst5000001C: {kind: SpliceBlock, arg0: inst_block50000005, arg1: inst50000016, type: type(TypeType)} // CHECK:STDOUT: inst5000001D: {kind: FunctionDecl, arg0: function50000000, arg1: inst_block5000000A, type: type(inst5000001E)} @@ -183,18 +183,18 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: inst50000033: {kind: Call, arg0: inst50000030, arg1: inst_block_empty, type: type(inst50000013)} // CHECK:STDOUT: inst50000034: {kind: NameRef, arg0: name(Cpp), arg1: inst50000011, type: type(inst(NamespaceType))} // CHECK:STDOUT: inst50000035: {kind: NameRef, arg0: name3, arg1: inst5000002A, type: type(inst50000029)} -// CHECK:STDOUT: inst50000036: {kind: NameRef, arg0: name1, arg1: inst50000018, type: type(inst50000015)} -// CHECK:STDOUT: inst50000037: {kind: ValueBinding, arg0: entity_name50000001, arg1: inst5000003A, type: type(inst50000015)} -// CHECK:STDOUT: inst50000038: {kind: ValueBindingPattern, arg0: entity_name50000001, type: type(inst50000017)} -// CHECK:STDOUT: inst50000039: {kind: ValueParamPattern, arg0: inst50000038, type: type(inst50000017)} +// CHECK:STDOUT: inst50000036: {kind: NameRef, arg0: name1, arg1: inst50000019, type: type(inst50000015)} +// CHECK:STDOUT: inst50000037: {kind: ValueParamPattern, arg0: name1, type: type(inst50000017)} +// CHECK:STDOUT: inst50000038: {kind: ValueBinding, arg0: entity_name50000001, arg1: inst5000003A, type: type(inst50000015)} +// CHECK:STDOUT: inst50000039: {kind: WrapperBindingPattern, arg0: entity_name50000001, arg1: inst50000037, type: type(inst50000017)} // CHECK:STDOUT: inst5000003A: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst50000015)} // CHECK:STDOUT: inst5000003B: {kind: FunctionDecl, arg0: function50000003, arg1: inst_block50000012, type: type(inst5000003C)} // CHECK:STDOUT: inst5000003C: {kind: FunctionType, arg0: function50000003, arg1: specific, type: type(TypeType)} // CHECK:STDOUT: inst5000003D: {kind: StructValue, arg0: inst_block_empty, type: type(inst5000003C)} // CHECK:STDOUT: inst5000003E: {kind: PatternType, arg0: inst50000020, type: type(TypeType)} -// CHECK:STDOUT: inst5000003F: {kind: ValueBinding, arg0: entity_name50000002, arg1: inst50000042, type: type(inst50000020)} -// CHECK:STDOUT: inst50000040: {kind: ValueBindingPattern, arg0: entity_name50000002, type: type(inst5000003E)} -// CHECK:STDOUT: inst50000041: {kind: ValueParamPattern, arg0: inst50000040, type: type(inst5000003E)} +// CHECK:STDOUT: inst5000003F: {kind: ValueParamPattern, arg0: name1, type: type(inst5000003E)} +// CHECK:STDOUT: inst50000040: {kind: ValueBinding, arg0: entity_name50000002, arg1: inst50000042, type: type(inst50000020)} +// CHECK:STDOUT: inst50000041: {kind: WrapperBindingPattern, arg0: entity_name50000002, arg1: inst5000003F, type: type(inst5000003E)} // CHECK:STDOUT: inst50000042: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst50000020)} // CHECK:STDOUT: inst50000043: {kind: FunctionDecl, arg0: function50000004, arg1: inst_block50000018, type: type(inst50000044)} // CHECK:STDOUT: inst50000044: {kind: FunctionType, arg0: function50000004, arg1: specific, type: type(TypeType)} @@ -241,7 +241,7 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: inst50000015: concrete_constant(inst50000015) // CHECK:STDOUT: inst50000016: concrete_constant(inst50000015) // CHECK:STDOUT: inst50000017: concrete_constant(inst50000017) -// CHECK:STDOUT: inst50000019: concrete_constant(inst50000019) +// CHECK:STDOUT: inst50000018: concrete_constant(inst50000018) // CHECK:STDOUT: inst5000001A: concrete_constant(inst5000001A) // CHECK:STDOUT: inst5000001C: concrete_constant(inst50000015) // CHECK:STDOUT: inst5000001D: concrete_constant(inst5000001F) @@ -268,13 +268,13 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: inst50000032: concrete_constant(inst50000032) // CHECK:STDOUT: inst50000034: concrete_constant(inst50000011) // CHECK:STDOUT: inst50000035: concrete_constant(inst5000002B) -// CHECK:STDOUT: inst50000038: concrete_constant(inst50000038) +// CHECK:STDOUT: inst50000037: concrete_constant(inst50000037) // CHECK:STDOUT: inst50000039: concrete_constant(inst50000039) // CHECK:STDOUT: inst5000003B: concrete_constant(inst5000003D) // CHECK:STDOUT: inst5000003C: concrete_constant(inst5000003C) // CHECK:STDOUT: inst5000003D: concrete_constant(inst5000003D) // CHECK:STDOUT: inst5000003E: concrete_constant(inst5000003E) -// CHECK:STDOUT: inst50000040: concrete_constant(inst50000040) +// CHECK:STDOUT: inst5000003F: concrete_constant(inst5000003F) // CHECK:STDOUT: inst50000041: concrete_constant(inst50000041) // CHECK:STDOUT: inst50000043: concrete_constant(inst50000045) // CHECK:STDOUT: inst50000044: concrete_constant(inst50000044) @@ -310,16 +310,16 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: inst_block50000006: // CHECK:STDOUT: 0: inst5000001A // CHECK:STDOUT: inst_block50000007: -// CHECK:STDOUT: 0: inst5000001A +// CHECK:STDOUT: 0: inst50000018 // CHECK:STDOUT: inst_block50000008: // CHECK:STDOUT: 0: inst5000001B // CHECK:STDOUT: inst_block50000009: -// CHECK:STDOUT: 0: inst50000019 +// CHECK:STDOUT: 0: inst50000018 // CHECK:STDOUT: 1: inst5000001A // CHECK:STDOUT: inst_block5000000A: // CHECK:STDOUT: 0: inst5000001B // CHECK:STDOUT: 1: inst5000001C -// CHECK:STDOUT: 2: inst50000018 +// CHECK:STDOUT: 2: inst50000019 // CHECK:STDOUT: inst_block5000000B: // CHECK:STDOUT: 0: inst50000028 // CHECK:STDOUT: 1: inst5000002C @@ -349,28 +349,28 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: inst_block5000000E: // CHECK:STDOUT: 0: inst50000039 // CHECK:STDOUT: inst_block5000000F: -// CHECK:STDOUT: 0: inst50000039 +// CHECK:STDOUT: 0: inst50000037 // CHECK:STDOUT: inst_block50000010: // CHECK:STDOUT: 0: inst5000003A // CHECK:STDOUT: inst_block50000011: -// CHECK:STDOUT: 0: inst50000038 +// CHECK:STDOUT: 0: inst50000037 // CHECK:STDOUT: 1: inst50000039 // CHECK:STDOUT: inst_block50000012: // CHECK:STDOUT: 0: inst5000003A -// CHECK:STDOUT: 1: inst50000037 +// CHECK:STDOUT: 1: inst50000038 // CHECK:STDOUT: inst_block50000013: {} // CHECK:STDOUT: inst_block50000014: // CHECK:STDOUT: 0: inst50000041 // CHECK:STDOUT: inst_block50000015: -// CHECK:STDOUT: 0: inst50000041 +// CHECK:STDOUT: 0: inst5000003F // CHECK:STDOUT: inst_block50000016: // CHECK:STDOUT: 0: inst50000042 // CHECK:STDOUT: inst_block50000017: -// CHECK:STDOUT: 0: inst50000040 +// CHECK:STDOUT: 0: inst5000003F // CHECK:STDOUT: 1: inst50000041 // CHECK:STDOUT: inst_block50000018: // CHECK:STDOUT: 0: inst50000042 -// CHECK:STDOUT: 1: inst5000003F +// CHECK:STDOUT: 1: inst50000040 // CHECK:STDOUT: inst_block50000019: // CHECK:STDOUT: 0: inst50000036 // CHECK:STDOUT: inst_block5000001A: diff --git a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon index e3a1671358c3..c8e2ef54c394 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon @@ -47,14 +47,14 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_inst6: {ir_id: import_ir78000004, inst_id: inst7000002D} // CHECK:STDOUT: import_ir_inst7: {ir_id: import_ir78000004, inst_id: inst70000027} // CHECK:STDOUT: import_ir_inst8: {ir_id: import_ir78000004, inst_id: inst70000028} -// CHECK:STDOUT: import_ir_inst9: {ir_id: import_ir78000004, inst_id: inst7000001E} +// CHECK:STDOUT: import_ir_inst9: {ir_id: import_ir78000004, inst_id: inst7000001D} // CHECK:STDOUT: import_ir_instA: {ir_id: import_ir78000004, inst_id: inst70000020} // CHECK:STDOUT: import_ir_instB: {ir_id: import_ir78000004, inst_id: inst70000023} // CHECK:STDOUT: import_ir_instC: {ir_id: import_ir78000004, inst_id: inst70000024} // CHECK:STDOUT: import_ir_instD: {ir_id: import_ir78000004, inst_id: inst70000012} // CHECK:STDOUT: import_ir_instE: {ir_id: import_ir78000004, inst_id: inst70000017} // CHECK:STDOUT: import_ir_instF: {ir_id: import_ir78000004, inst_id: inst7000001A} -// CHECK:STDOUT: import_ir_inst10: {ir_id: import_ir78000004, inst_id: inst7000001F} +// CHECK:STDOUT: import_ir_inst10: {ir_id: import_ir78000004, inst_id: inst7000001E} // CHECK:STDOUT: import_ir_inst11: {ir_id: import_ir78000004, inst_id: inst70000026} // CHECK:STDOUT: import_ir_inst12: {ir_id: import_ir78000004, inst_id: inst70000031} // CHECK:STDOUT: import_ir_inst13: {ir_id: import_ir78000004, inst_id: inst70000032} @@ -68,7 +68,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_inst1B: {ir_id: import_ir78000004, inst_id: inst70000089} // CHECK:STDOUT: import_ir_inst1C: {ir_id: import_ir78000004, inst_id: inst70000084} // CHECK:STDOUT: import_ir_inst1D: {ir_id: import_ir78000004, inst_id: inst70000085} -// CHECK:STDOUT: import_ir_inst1E: {ir_id: import_ir78000004, inst_id: inst7000007D} +// CHECK:STDOUT: import_ir_inst1E: {ir_id: import_ir78000004, inst_id: inst7000007C} // CHECK:STDOUT: import_ir_inst1F: {ir_id: import_ir78000004, inst_id: inst7000007F} // CHECK:STDOUT: import_ir_inst20: {ir_id: import_ir78000004, inst_id: inst70000080} // CHECK:STDOUT: import_ir_inst21: {ir_id: import_ir78000004, inst_id: inst70000081} @@ -76,7 +76,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_inst23: {ir_id: import_ir78000004, inst_id: inst70000078} // CHECK:STDOUT: import_ir_inst24: {ir_id: import_ir78000004, inst_id: inst70000079} // CHECK:STDOUT: import_ir_inst25: {ir_id: import_ir78000004, inst_id: inst7000007A} -// CHECK:STDOUT: import_ir_inst26: {ir_id: import_ir78000004, inst_id: inst7000007E} +// CHECK:STDOUT: import_ir_inst26: {ir_id: import_ir78000004, inst_id: inst7000007D} // CHECK:STDOUT: import_ir_inst27: {ir_id: import_ir78000004, inst_id: inst70000083} // CHECK:STDOUT: import_ir_inst28: {ir_id: import_ir78000004, inst_id: inst70000093} // CHECK:STDOUT: import_ir_inst29: {ir_id: import_ir78000004, inst_id: inst7000009A} @@ -125,14 +125,14 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_inst54: {ir_id: import_ir78000004, inst_id: inst7000014D} // CHECK:STDOUT: import_ir_inst55: {ir_id: import_ir78000004, inst_id: inst70000148} // CHECK:STDOUT: import_ir_inst56: {ir_id: import_ir78000004, inst_id: inst70000149} -// CHECK:STDOUT: import_ir_inst57: {ir_id: import_ir78000004, inst_id: inst70000141} +// CHECK:STDOUT: import_ir_inst57: {ir_id: import_ir78000004, inst_id: inst70000140} // CHECK:STDOUT: import_ir_inst58: {ir_id: import_ir78000004, inst_id: inst70000143} // CHECK:STDOUT: import_ir_inst59: {ir_id: import_ir78000004, inst_id: inst70000144} // CHECK:STDOUT: import_ir_inst5A: {ir_id: import_ir78000004, inst_id: inst70000145} // CHECK:STDOUT: import_ir_inst5B: {ir_id: import_ir78000004, inst_id: inst7000012D} // CHECK:STDOUT: import_ir_inst5C: {ir_id: import_ir78000004, inst_id: inst7000013D} // CHECK:STDOUT: import_ir_inst5D: {ir_id: import_ir78000004, inst_id: inst7000013E} -// CHECK:STDOUT: import_ir_inst5E: {ir_id: import_ir78000004, inst_id: inst70000142} +// CHECK:STDOUT: import_ir_inst5E: {ir_id: import_ir78000004, inst_id: inst70000141} // CHECK:STDOUT: import_ir_inst5F: {ir_id: import_ir78000004, inst_id: inst70000147} // CHECK:STDOUT: import_ir_inst60: {ir_id: import_ir78000004, inst_id: inst70000150} // CHECK:STDOUT: import_ir_inst61: {ir_id: import_ir78000004, inst_id: inst70000151} @@ -152,7 +152,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_inst6F: {ir_id: import_ir78000004, inst_id: inst700001C6} // CHECK:STDOUT: import_ir_inst70: {ir_id: import_ir78000004, inst_id: inst700001C1} // CHECK:STDOUT: import_ir_inst71: {ir_id: import_ir78000004, inst_id: inst700001C2} -// CHECK:STDOUT: import_ir_inst72: {ir_id: import_ir78000004, inst_id: inst700001BA} +// CHECK:STDOUT: import_ir_inst72: {ir_id: import_ir78000004, inst_id: inst700001B9} // CHECK:STDOUT: import_ir_inst73: {ir_id: import_ir78000004, inst_id: inst700001BC} // CHECK:STDOUT: import_ir_inst74: {ir_id: import_ir78000004, inst_id: inst700001BD} // CHECK:STDOUT: import_ir_inst75: {ir_id: import_ir78000004, inst_id: inst700001BE} @@ -163,7 +163,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_inst7A: {ir_id: import_ir78000004, inst_id: inst700001B5} // CHECK:STDOUT: import_ir_inst7B: {ir_id: import_ir78000004, inst_id: inst700001B6} // CHECK:STDOUT: import_ir_inst7C: {ir_id: import_ir78000004, inst_id: inst700001B7} -// CHECK:STDOUT: import_ir_inst7D: {ir_id: import_ir78000004, inst_id: inst700001BB} +// CHECK:STDOUT: import_ir_inst7D: {ir_id: import_ir78000004, inst_id: inst700001BA} // CHECK:STDOUT: import_ir_inst7E: {ir_id: import_ir78000004, inst_id: inst700001C0} // CHECK:STDOUT: import_ir_inst7F: {ir_id: import_ir78000004, inst_id: inst700001D1} // CHECK:STDOUT: import_ir_inst80: {ir_id: import_ir78000004, inst_id: inst700001D7} @@ -200,7 +200,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_inst9F: {ir_id: import_ir78000004, inst_id: inst70000256} // CHECK:STDOUT: import_ir_instA0: {ir_id: import_ir78000004, inst_id: inst70000251} // CHECK:STDOUT: import_ir_instA1: {ir_id: import_ir78000004, inst_id: inst70000252} -// CHECK:STDOUT: import_ir_instA2: {ir_id: import_ir78000004, inst_id: inst7000024A} +// CHECK:STDOUT: import_ir_instA2: {ir_id: import_ir78000004, inst_id: inst70000249} // CHECK:STDOUT: import_ir_instA3: {ir_id: import_ir78000004, inst_id: inst7000024C} // CHECK:STDOUT: import_ir_instA4: {ir_id: import_ir78000004, inst_id: inst7000024D} // CHECK:STDOUT: import_ir_instA5: {ir_id: import_ir78000004, inst_id: inst7000024E} @@ -214,7 +214,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_instAD: {ir_id: import_ir78000004, inst_id: inst70000245} // CHECK:STDOUT: import_ir_instAE: {ir_id: import_ir78000004, inst_id: inst70000246} // CHECK:STDOUT: import_ir_instAF: {ir_id: import_ir78000004, inst_id: inst70000247} -// CHECK:STDOUT: import_ir_instB0: {ir_id: import_ir78000004, inst_id: inst7000024B} +// CHECK:STDOUT: import_ir_instB0: {ir_id: import_ir78000004, inst_id: inst7000024A} // CHECK:STDOUT: import_ir_instB1: {ir_id: import_ir78000004, inst_id: inst70000250} // CHECK:STDOUT: import_ir_instB2: {ir_id: import_ir78000004, inst_id: inst70000261} // CHECK:STDOUT: import_ir_instB3: {ir_id: import_ir78000004, inst_id: inst70000266} @@ -478,10 +478,10 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst7800001D: {kind: PointerType, arg0: inst78000018, type: type(TypeType)} // CHECK:STDOUT: inst7800001E: {kind: PointerType, arg0: inst78000019, type: type(TypeType)} // CHECK:STDOUT: inst7800001F: {kind: PatternType, arg0: inst7800001D, type: type(TypeType)} -// CHECK:STDOUT: inst78000020: {kind: ValueBinding, arg0: entity_name78000002, arg1: inst7800003A, type: type(symbolic_constant78000004)} -// CHECK:STDOUT: inst78000021: {kind: ValueBindingPattern, arg0: entity_name78000002, type: type(symbolic_constant78000006)} -// CHECK:STDOUT: inst78000022: {kind: PatternType, arg0: inst7800001E, type: type(TypeType)} -// CHECK:STDOUT: inst78000023: {kind: ValueParamPattern, arg0: inst78000021, type: type(symbolic_constant78000006)} +// CHECK:STDOUT: inst78000020: {kind: ValueParamPattern, arg0: name2, type: type(symbolic_constant78000006)} +// CHECK:STDOUT: inst78000021: {kind: PatternType, arg0: inst7800001E, type: type(TypeType)} +// CHECK:STDOUT: inst78000022: {kind: ValueBinding, arg0: entity_name78000002, arg1: inst7800003A, type: type(symbolic_constant78000004)} +// CHECK:STDOUT: inst78000023: {kind: WrapperBindingPattern, arg0: entity_name78000002, arg1: inst78000020, type: type(symbolic_constant78000006)} // CHECK:STDOUT: inst78000024: {kind: NameRef, arg0: name1, arg1: inst78000017, type: type(TypeType)} // CHECK:STDOUT: inst78000025: {kind: PointerType, arg0: inst78000024, type: type(TypeType)} // CHECK:STDOUT: inst78000026: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} @@ -500,9 +500,9 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst78000033: {kind: InitForm, arg0: inst7800002F, type: type(inst(FormType))} // CHECK:STDOUT: inst78000034: {kind: InitForm, arg0: inst78000031, type: type(inst(FormType))} // CHECK:STDOUT: inst78000035: {kind: PatternType, arg0: inst7800002F, type: type(TypeType)} -// CHECK:STDOUT: inst78000036: {kind: ReturnSlotPattern, arg0: inst78000030, type: type(symbolic_constant7800000E)} +// CHECK:STDOUT: inst78000036: {kind: OutParamPattern, arg0: name(ReturnSlot), type: type(symbolic_constant7800000E)} // CHECK:STDOUT: inst78000037: {kind: PatternType, arg0: inst78000031, type: type(TypeType)} -// CHECK:STDOUT: inst78000038: {kind: OutParamPattern, arg0: inst78000036, type: type(symbolic_constant7800000E)} +// CHECK:STDOUT: inst78000038: {kind: ReturnSlotPattern, arg0: inst78000036, arg1: inst78000030, type: type(symbolic_constant7800000E)} // CHECK:STDOUT: inst78000039: {kind: SpliceBlock, arg0: inst_block78000005, arg1: inst78000015, type: type(TypeType)} // CHECK:STDOUT: inst7800003A: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(symbolic_constant78000004)} // CHECK:STDOUT: inst7800003B: {kind: SpliceBlock, arg0: inst_block78000007, arg1: inst7800001C, type: type(TypeType)} @@ -518,7 +518,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst78000045: {kind: RequireCompleteType, arg0: inst7800002F, type: type(inst(WitnessType))} // CHECK:STDOUT: inst78000046: {kind: RequireCompleteType, arg0: inst7800002F, type: type(inst(WitnessType))} // CHECK:STDOUT: inst78000047: {kind: RequireCompleteType, arg0: inst78000031, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst78000048: {kind: NameRef, arg0: name2, arg1: inst78000020, type: type(symbolic_constant78000004)} +// CHECK:STDOUT: inst78000048: {kind: NameRef, arg0: name2, arg1: inst78000022, type: type(symbolic_constant78000004)} // CHECK:STDOUT: inst78000049: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst78000026)} // CHECK:STDOUT: inst7800004A: {kind: TupleLiteral, arg0: inst_block7800001A, type: type(symbolic_constant7800000A)} // CHECK:STDOUT: inst7800004B: {kind: RequireCompleteType, arg0: inst7800002F, type: type(inst(WitnessType))} @@ -537,10 +537,10 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst78000058: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant78000015)} // CHECK:STDOUT: inst78000059: {kind: SymbolicBindingType, arg0: entity_name78000004, arg1: inst78000052, type: type(TypeType)} // CHECK:STDOUT: inst7800005A: {kind: PatternType, arg0: inst78000059, type: type(TypeType)} -// CHECK:STDOUT: inst7800005B: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant7800001B)} -// CHECK:STDOUT: inst7800005C: {kind: OutParamPattern, arg0: inst7800005B, type: type(symbolic_constant7800001B)} -// CHECK:STDOUT: inst7800005D: {kind: ValueBindingPattern, arg0: entity_name78000008, type: type(symbolic_constant7800001B)} -// CHECK:STDOUT: inst7800005E: {kind: ValueParamPattern, arg0: inst7800005D, type: type(symbolic_constant7800001B)} +// CHECK:STDOUT: inst7800005B: {kind: OutParamPattern, arg0: name(ReturnSlot), type: type(symbolic_constant7800001B)} +// CHECK:STDOUT: inst7800005C: {kind: ReturnSlotPattern, arg0: inst7800005B, arg1: inst, type: type(symbolic_constant7800001B)} +// CHECK:STDOUT: inst7800005D: {kind: ValueParamPattern, arg0: name(SelfValue), type: type(symbolic_constant7800001B)} +// CHECK:STDOUT: inst7800005E: {kind: WrapperBindingPattern, arg0: entity_name78000008, arg1: inst7800005D, type: type(symbolic_constant7800001B)} // CHECK:STDOUT: inst7800005F: {kind: InitForm, arg0: inst78000059, type: type(inst(FormType))} // CHECK:STDOUT: inst78000060: {kind: ImportRefLoaded, arg0: import_ir_instB, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst78000061: {kind: ImportRefLoaded, arg0: import_ir_instC, arg1: entity_name, type: type(inst(FormType))} @@ -569,10 +569,10 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst78000078: {kind: FunctionType, arg0: function78000002, arg1: specific78000004, type: type(TypeType)} // CHECK:STDOUT: inst78000079: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant78000031)} // CHECK:STDOUT: inst7800007A: {kind: PatternType, arg0: inst78000073, type: type(TypeType)} -// CHECK:STDOUT: inst7800007B: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant78000036)} -// CHECK:STDOUT: inst7800007C: {kind: OutParamPattern, arg0: inst7800007B, type: type(symbolic_constant78000036)} -// CHECK:STDOUT: inst7800007D: {kind: ValueBindingPattern, arg0: entity_name7800000F, type: type(symbolic_constant78000036)} -// CHECK:STDOUT: inst7800007E: {kind: ValueParamPattern, arg0: inst7800007D, type: type(symbolic_constant78000036)} +// CHECK:STDOUT: inst7800007B: {kind: OutParamPattern, arg0: name(ReturnSlot), type: type(symbolic_constant78000036)} +// CHECK:STDOUT: inst7800007C: {kind: ReturnSlotPattern, arg0: inst7800007B, arg1: inst, type: type(symbolic_constant78000036)} +// CHECK:STDOUT: inst7800007D: {kind: ValueParamPattern, arg0: name(SelfValue), type: type(symbolic_constant78000036)} +// CHECK:STDOUT: inst7800007E: {kind: WrapperBindingPattern, arg0: entity_name7800000F, arg1: inst7800007D, type: type(symbolic_constant78000036)} // CHECK:STDOUT: inst7800007F: {kind: InitForm, arg0: inst78000073, type: type(inst(FormType))} // CHECK:STDOUT: inst78000080: {kind: ImportRefLoaded, arg0: import_ir_inst20, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst78000081: {kind: ImportRefLoaded, arg0: import_ir_inst21, arg1: entity_name, type: type(inst(FormType))} @@ -641,10 +641,10 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst780000C0: {kind: FunctionDecl, arg0: function78000003, arg1: inst_block_empty, type: type(symbolic_constant78000070)} // CHECK:STDOUT: inst780000C1: {kind: FunctionType, arg0: function78000003, arg1: specific7800000B, type: type(TypeType)} // CHECK:STDOUT: inst780000C2: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant78000070)} -// CHECK:STDOUT: inst780000C3: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant78000074)} -// CHECK:STDOUT: inst780000C4: {kind: OutParamPattern, arg0: inst780000C3, type: type(symbolic_constant78000074)} -// CHECK:STDOUT: inst780000C5: {kind: ValueBindingPattern, arg0: entity_name7800001A, type: type(symbolic_constant78000074)} -// CHECK:STDOUT: inst780000C6: {kind: ValueParamPattern, arg0: inst780000C5, type: type(symbolic_constant78000074)} +// CHECK:STDOUT: inst780000C3: {kind: OutParamPattern, arg0: name(ReturnSlot), type: type(symbolic_constant78000074)} +// CHECK:STDOUT: inst780000C4: {kind: ReturnSlotPattern, arg0: inst780000C3, arg1: inst, type: type(symbolic_constant78000074)} +// CHECK:STDOUT: inst780000C5: {kind: ValueParamPattern, arg0: name(SelfValue), type: type(symbolic_constant78000074)} +// CHECK:STDOUT: inst780000C6: {kind: WrapperBindingPattern, arg0: entity_name7800001A, arg1: inst780000C5, type: type(symbolic_constant78000074)} // CHECK:STDOUT: inst780000C7: {kind: InitForm, arg0: inst7800001D, type: type(inst(FormType))} // CHECK:STDOUT: inst780000C8: {kind: ImportRefLoaded, arg0: import_ir_inst59, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst780000C9: {kind: ImportRefLoaded, arg0: import_ir_inst5A, arg1: entity_name, type: type(inst(FormType))} @@ -678,10 +678,10 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst780000E5: {kind: TupleType, arg0: inst_block7800004D, type: type(TypeType)} // CHECK:STDOUT: inst780000E6: {kind: TupleValue, arg0: inst_block7800004C, type: type(inst780000E5)} // CHECK:STDOUT: inst780000E7: {kind: PatternType, arg0: inst780000DE, type: type(TypeType)} -// CHECK:STDOUT: inst780000E8: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant7800008F)} -// CHECK:STDOUT: inst780000E9: {kind: OutParamPattern, arg0: inst780000E8, type: type(symbolic_constant7800008F)} -// CHECK:STDOUT: inst780000EA: {kind: ValueBindingPattern, arg0: entity_name7800001E, type: type(symbolic_constant7800008F)} -// CHECK:STDOUT: inst780000EB: {kind: ValueParamPattern, arg0: inst780000EA, type: type(symbolic_constant7800008F)} +// CHECK:STDOUT: inst780000E8: {kind: OutParamPattern, arg0: name(ReturnSlot), type: type(symbolic_constant7800008F)} +// CHECK:STDOUT: inst780000E9: {kind: ReturnSlotPattern, arg0: inst780000E8, arg1: inst, type: type(symbolic_constant7800008F)} +// CHECK:STDOUT: inst780000EA: {kind: ValueParamPattern, arg0: name(SelfValue), type: type(symbolic_constant7800008F)} +// CHECK:STDOUT: inst780000EB: {kind: WrapperBindingPattern, arg0: entity_name7800001E, arg1: inst780000EA, type: type(symbolic_constant7800008F)} // CHECK:STDOUT: inst780000EC: {kind: InitForm, arg0: inst780000DE, type: type(inst(FormType))} // CHECK:STDOUT: inst780000ED: {kind: ImportRefLoaded, arg0: import_ir_inst74, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst780000EE: {kind: ImportRefLoaded, arg0: import_ir_inst75, arg1: entity_name, type: type(inst(FormType))} @@ -746,10 +746,10 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst78000129: {kind: TupleType, arg0: inst_block7800006A, type: type(TypeType)} // CHECK:STDOUT: inst7800012A: {kind: TupleValue, arg0: inst_block78000069, type: type(inst78000129)} // CHECK:STDOUT: inst7800012B: {kind: PatternType, arg0: inst78000122, type: type(TypeType)} -// CHECK:STDOUT: inst7800012C: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant780000E2)} -// CHECK:STDOUT: inst7800012D: {kind: OutParamPattern, arg0: inst7800012C, type: type(symbolic_constant780000E2)} -// CHECK:STDOUT: inst7800012E: {kind: ValueBindingPattern, arg0: entity_name7800002D, type: type(symbolic_constant780000E2)} -// CHECK:STDOUT: inst7800012F: {kind: ValueParamPattern, arg0: inst7800012E, type: type(symbolic_constant780000E2)} +// CHECK:STDOUT: inst7800012C: {kind: OutParamPattern, arg0: name(ReturnSlot), type: type(symbolic_constant780000E2)} +// CHECK:STDOUT: inst7800012D: {kind: ReturnSlotPattern, arg0: inst7800012C, arg1: inst, type: type(symbolic_constant780000E2)} +// CHECK:STDOUT: inst7800012E: {kind: ValueParamPattern, arg0: name(SelfValue), type: type(symbolic_constant780000E2)} +// CHECK:STDOUT: inst7800012F: {kind: WrapperBindingPattern, arg0: entity_name7800002D, arg1: inst7800012E, type: type(symbolic_constant780000E2)} // CHECK:STDOUT: inst78000130: {kind: InitForm, arg0: inst78000122, type: type(inst(FormType))} // CHECK:STDOUT: inst78000131: {kind: ImportRefLoaded, arg0: import_ir_instA4, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst78000132: {kind: ImportRefLoaded, arg0: import_ir_instA5, arg1: entity_name, type: type(inst(FormType))} @@ -859,8 +859,8 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst7800001D: symbolic_constant78000003 // CHECK:STDOUT: inst7800001E: symbolic_constant78000004 // CHECK:STDOUT: inst7800001F: symbolic_constant78000005 -// CHECK:STDOUT: inst78000021: concrete_constant(inst78000021) -// CHECK:STDOUT: inst78000022: symbolic_constant78000006 +// CHECK:STDOUT: inst78000020: concrete_constant(inst78000020) +// CHECK:STDOUT: inst78000021: symbolic_constant78000006 // CHECK:STDOUT: inst78000023: concrete_constant(inst78000023) // CHECK:STDOUT: inst78000024: symbolic_constant78000002 // CHECK:STDOUT: inst78000025: symbolic_constant78000004 @@ -1697,14 +1697,14 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst_block78000010: // CHECK:STDOUT: 0: inst78000038 // CHECK:STDOUT: inst_block78000011: -// CHECK:STDOUT: 0: inst78000023 -// CHECK:STDOUT: 1: inst78000038 +// CHECK:STDOUT: 0: inst78000020 +// CHECK:STDOUT: 1: inst78000036 // CHECK:STDOUT: inst_block78000012: // CHECK:STDOUT: 0: inst7800003A // CHECK:STDOUT: 1: inst7800003C // CHECK:STDOUT: inst_block78000013: // CHECK:STDOUT: 0: inst7800001A -// CHECK:STDOUT: 1: inst78000021 +// CHECK:STDOUT: 1: inst78000020 // CHECK:STDOUT: 2: inst78000023 // CHECK:STDOUT: 3: inst78000036 // CHECK:STDOUT: 4: inst78000038 @@ -1720,7 +1720,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 8: inst78000017 // CHECK:STDOUT: 9: inst7800003A // CHECK:STDOUT: 10: inst7800003B -// CHECK:STDOUT: 11: inst78000020 +// CHECK:STDOUT: 11: inst78000022 // CHECK:STDOUT: 12: inst7800003C // CHECK:STDOUT: 13: inst7800003D // CHECK:STDOUT: inst_block78000015: @@ -1730,7 +1730,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst_block78000017: // CHECK:STDOUT: 0: inst78000019 // CHECK:STDOUT: 1: inst7800001E -// CHECK:STDOUT: 2: inst78000022 +// CHECK:STDOUT: 2: inst78000021 // CHECK:STDOUT: 3: inst7800002C // CHECK:STDOUT: 4: inst78000031 // CHECK:STDOUT: 5: inst78000034 @@ -1774,8 +1774,8 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 1: inst78000057 // CHECK:STDOUT: 2: inst78000058 // CHECK:STDOUT: inst_block7800001F: -// CHECK:STDOUT: 0: inst7800005E -// CHECK:STDOUT: 1: inst7800005C +// CHECK:STDOUT: 0: inst7800005D +// CHECK:STDOUT: 1: inst7800005B // CHECK:STDOUT: inst_block78000020: // CHECK:STDOUT: 0: inst7800005E // CHECK:STDOUT: inst_block78000021: @@ -1811,8 +1811,8 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 0: inst78000078 // CHECK:STDOUT: 1: inst78000079 // CHECK:STDOUT: inst_block7800002B: -// CHECK:STDOUT: 0: inst7800007E -// CHECK:STDOUT: 1: inst7800007C +// CHECK:STDOUT: 0: inst7800007D +// CHECK:STDOUT: 1: inst7800007B // CHECK:STDOUT: inst_block7800002C: // CHECK:STDOUT: 0: inst7800007E // CHECK:STDOUT: inst_block7800002D: @@ -1885,8 +1885,8 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 1: inst780000BE // CHECK:STDOUT: 2: inst780000BF // CHECK:STDOUT: inst_block78000042: -// CHECK:STDOUT: 0: inst780000C6 -// CHECK:STDOUT: 1: inst780000C4 +// CHECK:STDOUT: 0: inst780000C5 +// CHECK:STDOUT: 1: inst780000C3 // CHECK:STDOUT: inst_block78000043: // CHECK:STDOUT: 0: inst780000C6 // CHECK:STDOUT: inst_block78000044: @@ -1932,8 +1932,8 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 0: inst780000E3 // CHECK:STDOUT: 1: inst780000E4 // CHECK:STDOUT: inst_block78000050: -// CHECK:STDOUT: 0: inst780000EB -// CHECK:STDOUT: 1: inst780000E9 +// CHECK:STDOUT: 0: inst780000EA +// CHECK:STDOUT: 1: inst780000E8 // CHECK:STDOUT: inst_block78000051: // CHECK:STDOUT: 0: inst780000EB // CHECK:STDOUT: inst_block78000052: @@ -2050,8 +2050,8 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 0: inst78000127 // CHECK:STDOUT: 1: inst78000128 // CHECK:STDOUT: inst_block7800006D: -// CHECK:STDOUT: 0: inst7800012F -// CHECK:STDOUT: 1: inst7800012D +// CHECK:STDOUT: 0: inst7800012E +// CHECK:STDOUT: 1: inst7800012C // CHECK:STDOUT: inst_block7800006E: // CHECK:STDOUT: 0: inst7800012F // CHECK:STDOUT: inst_block7800006F: diff --git a/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon b/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon index 6c7dadcb1e17..c44075fcfc74 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon @@ -69,9 +69,9 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: inst50000012: {kind: TupleValue, arg0: inst_block_empty, type: type(inst50000010)} // CHECK:STDOUT: inst50000013: {kind: Converted, arg0: inst50000011, arg1: inst50000010, type: type(TypeType)} // CHECK:STDOUT: inst50000014: {kind: PatternType, arg0: inst50000010, type: type(TypeType)} -// CHECK:STDOUT: inst50000015: {kind: ValueBinding, arg0: entity_name50000000, arg1: inst50000026, type: type(inst50000010)} -// CHECK:STDOUT: inst50000016: {kind: ValueBindingPattern, arg0: entity_name50000000, type: type(inst50000014)} -// CHECK:STDOUT: inst50000017: {kind: ValueParamPattern, arg0: inst50000016, type: type(inst50000014)} +// CHECK:STDOUT: inst50000015: {kind: ValueParamPattern, arg0: name1, type: type(inst50000014)} +// CHECK:STDOUT: inst50000016: {kind: ValueBinding, arg0: entity_name50000000, arg1: inst50000026, type: type(inst50000010)} +// CHECK:STDOUT: inst50000017: {kind: WrapperBindingPattern, arg0: entity_name50000000, arg1: inst50000015, type: type(inst50000014)} // CHECK:STDOUT: inst50000018: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst50000010)} // CHECK:STDOUT: inst50000019: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst50000010)} // CHECK:STDOUT: inst5000001A: {kind: TupleType, arg0: inst_block50000008, type: type(TypeType)} @@ -84,8 +84,8 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: inst50000021: {kind: InitForm, arg0: inst50000020, type: type(inst(FormType))} // CHECK:STDOUT: inst50000022: {kind: InitForm, arg0: inst5000001A, type: type(inst(FormType))} // CHECK:STDOUT: inst50000023: {kind: PatternType, arg0: inst5000001A, type: type(TypeType)} -// CHECK:STDOUT: inst50000024: {kind: ReturnSlotPattern, arg0: inst50000020, type: type(inst50000023)} -// CHECK:STDOUT: inst50000025: {kind: OutParamPattern, arg0: inst50000024, type: type(inst50000023)} +// CHECK:STDOUT: inst50000024: {kind: OutParamPattern, arg0: name(ReturnSlot), type: type(inst50000023)} +// CHECK:STDOUT: inst50000025: {kind: ReturnSlotPattern, arg0: inst50000024, arg1: inst50000020, type: type(inst50000023)} // CHECK:STDOUT: inst50000026: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst50000010)} // CHECK:STDOUT: inst50000027: {kind: SpliceBlock, arg0: inst_block50000005, arg1: inst50000013, type: type(TypeType)} // CHECK:STDOUT: inst50000028: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(inst5000001A)} @@ -93,7 +93,7 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: inst5000002A: {kind: FunctionDecl, arg0: function50000000, arg1: inst_block5000000F, type: type(inst5000002B)} // CHECK:STDOUT: inst5000002B: {kind: FunctionType, arg0: function50000000, arg1: specific, type: type(TypeType)} // CHECK:STDOUT: inst5000002C: {kind: StructValue, arg0: inst_block_empty, type: type(inst5000002B)} -// CHECK:STDOUT: inst5000002D: {kind: NameRef, arg0: name1, arg1: inst50000015, type: type(inst50000010)} +// CHECK:STDOUT: inst5000002D: {kind: NameRef, arg0: name1, arg1: inst50000016, type: type(inst50000010)} // CHECK:STDOUT: inst5000002E: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst50000010)} // CHECK:STDOUT: inst5000002F: {kind: TupleLiteral, arg0: inst_block50000011, type: type(inst5000001A)} // CHECK:STDOUT: inst50000030: {kind: TupleAccess, arg0: inst50000028, arg1: element0, type: type(inst50000010)} @@ -113,7 +113,7 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: inst50000012: concrete_constant(inst50000012) // CHECK:STDOUT: inst50000013: concrete_constant(inst50000010) // CHECK:STDOUT: inst50000014: concrete_constant(inst50000014) -// CHECK:STDOUT: inst50000016: concrete_constant(inst50000016) +// CHECK:STDOUT: inst50000015: concrete_constant(inst50000015) // CHECK:STDOUT: inst50000017: concrete_constant(inst50000017) // CHECK:STDOUT: inst50000018: concrete_constant(inst50000012) // CHECK:STDOUT: inst50000019: concrete_constant(inst50000012) @@ -168,13 +168,13 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: inst_block5000000B: // CHECK:STDOUT: 0: inst50000025 // CHECK:STDOUT: inst_block5000000C: -// CHECK:STDOUT: 0: inst50000017 -// CHECK:STDOUT: 1: inst50000025 +// CHECK:STDOUT: 0: inst50000015 +// CHECK:STDOUT: 1: inst50000024 // CHECK:STDOUT: inst_block5000000D: // CHECK:STDOUT: 0: inst50000026 // CHECK:STDOUT: 1: inst50000028 // CHECK:STDOUT: inst_block5000000E: -// CHECK:STDOUT: 0: inst50000016 +// CHECK:STDOUT: 0: inst50000015 // CHECK:STDOUT: 1: inst50000017 // CHECK:STDOUT: 2: inst50000024 // CHECK:STDOUT: 3: inst50000025 @@ -188,7 +188,7 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: 6: inst50000021 // CHECK:STDOUT: 7: inst50000026 // CHECK:STDOUT: 8: inst50000027 -// CHECK:STDOUT: 9: inst50000015 +// CHECK:STDOUT: 9: inst50000016 // CHECK:STDOUT: 10: inst50000028 // CHECK:STDOUT: 11: inst50000029 // CHECK:STDOUT: inst_block50000010: @@ -243,10 +243,10 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: .Foo = %Foo.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %n.patt: %pattern_type.cb1 = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.cb1 = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.5b8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.5b8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.cb1 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.5b8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.5b8 = return_slot_pattern %return.param_patt, %.loc16_25.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc16_20: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc16_24: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] diff --git a/toolchain/check/testdata/builtins/maybe_unformed/make_type.carbon b/toolchain/check/testdata/builtins/maybe_unformed/make_type.carbon index f3e62d7ed458..a00f643a08ab 100644 --- a/toolchain/check/testdata/builtins/maybe_unformed/make_type.carbon +++ b/toolchain/check/testdata/builtins/maybe_unformed/make_type.carbon @@ -73,8 +73,8 @@ fn ColonBangParam(T:! type) -> type = "maybe_unformed.make_type"; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %b.patt: %pattern_type.ce6 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.ce6 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.ce6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.ce6 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: %.2ba = value_param call_param0 // CHECK:STDOUT: %.loc7_29.1: type = splice_block %.loc7_29.3 [concrete = constants.%.2ba] { diff --git a/toolchain/check/testdata/builtins/pointer/is_null.carbon b/toolchain/check/testdata/builtins/pointer/is_null.carbon index a202402fc546..b6931e1ac1a9 100644 --- a/toolchain/check/testdata/builtins/pointer/is_null.carbon +++ b/toolchain/check/testdata/builtins/pointer/is_null.carbon @@ -113,10 +113,10 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null"; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %TestEmptyStruct.decl: %TestEmptyStruct.type = fn_decl @TestEmptyStruct [concrete = constants.%TestEmptyStruct] { -// CHECK:STDOUT: %s.patt: %pattern_type.b42 = value_binding_pattern s [concrete] -// CHECK:STDOUT: %s.param_patt: %pattern_type.b42 = value_param_pattern %s.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %s.param_patt: %pattern_type.b42 = value_param_pattern [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b42 = at_binding_pattern s, %s.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc11_45.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_45.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc11_45.2: Core.Form = init_form %.loc11_45.1 [concrete = constants.%.f34] @@ -135,10 +135,10 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null"; // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestC.decl: %TestC.type = fn_decl @TestC [concrete = constants.%TestC] { -// CHECK:STDOUT: %c.patt: %pattern_type.b78 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.b78 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.b78 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.b78 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc15_34.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_34.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc15_34.2: Core.Form = init_form %.loc15_34.1 [concrete = constants.%.f34] @@ -201,10 +201,10 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null"; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %TestEmptyStruct.decl: %TestEmptyStruct.type = fn_decl @TestEmptyStruct [concrete = constants.%TestEmptyStruct] { -// CHECK:STDOUT: %s.patt: %pattern_type.b42 = value_binding_pattern s [concrete] -// CHECK:STDOUT: %s.param_patt: %pattern_type.b42 = value_param_pattern %s.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %s.param_patt: %pattern_type.b42 = value_param_pattern [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b42 = at_binding_pattern s, %s.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc10_45.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_45.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc10_45.2: Core.Form = init_form %.loc10_45.1 [concrete = constants.%.f34] @@ -223,10 +223,10 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null"; // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestC.decl: %TestC.type = fn_decl @TestC [concrete = constants.%TestC] { -// CHECK:STDOUT: %c.patt: %pattern_type.b78 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.b78 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.b78 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.b78 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc14_34.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_34.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc14_34.2: Core.Form = init_form %.loc14_34.1 [concrete = constants.%.f34] diff --git a/toolchain/check/testdata/class/abstract/abstract.carbon b/toolchain/check/testdata/class/abstract/abstract.carbon index 861645b6f6a8..49c938e7b37e 100644 --- a/toolchain/check/testdata/class/abstract/abstract.carbon +++ b/toolchain/check/testdata/class/abstract/abstract.carbon @@ -356,11 +356,10 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %_.patt: = ref_binding_pattern _ [concrete] // CHECK:STDOUT: %_.param_patt: = var_param_pattern %_.patt [concrete] -// CHECK:STDOUT: %_.var_patt: = var_pattern %_.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %_.param: ref = ref_param call_param0 // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] -// CHECK:STDOUT: %_: ref = ref_binding _, %_.param +// CHECK:STDOUT: %_: ref = ref_binding _, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -404,8 +403,8 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %Abstract = value_param call_param0 // CHECK:STDOUT: %Abstract.ref.loc6: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] @@ -509,16 +508,16 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {} // CHECK:STDOUT: %Param.decl: %Param.type = fn_decl @Param [concrete = constants.%Param] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %Abstract = value_param call_param0 // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] // CHECK:STDOUT: %a: %Abstract = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] { -// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %Abstract = value_param call_param0 // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] @@ -586,8 +585,8 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %Derived.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: %.loc12: Core.Form = init_form %Derived.ref [concrete = constants.%.d9b] @@ -674,10 +673,10 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Return.decl: %Return.type = fn_decl @Return [concrete = constants.%Return] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %Abstract.ref.loc19_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Abstract.ref.loc19_27: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] // CHECK:STDOUT: %.loc19: Core.Form = init_form %Abstract.ref.loc19_27 [concrete = constants.%.7d7] @@ -759,10 +758,10 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] { -// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern %return.param_patt, %.loc13_27.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc13_27.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc13_27.2: type = converted %.loc13_27.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -976,8 +975,8 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {} // CHECK:STDOUT: %ReturnAbstract.decl: %ReturnAbstract.type = fn_decl @ReturnAbstract [concrete = constants.%ReturnAbstract] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %Abstract.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] // CHECK:STDOUT: %.loc6: Core.Form = init_form %Abstract.ref [concrete = constants.%.7d7] diff --git a/toolchain/check/testdata/class/abstract/fail_abstract_in_struct.carbon b/toolchain/check/testdata/class/abstract/fail_abstract_in_struct.carbon index 812c483162d6..41054de7e8e2 100644 --- a/toolchain/check/testdata/class/abstract/fail_abstract_in_struct.carbon +++ b/toolchain/check/testdata/class/abstract/fail_abstract_in_struct.carbon @@ -223,8 +223,8 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: } // CHECK:STDOUT: %Abstract3.decl: type = class_decl @Abstract3 [concrete = constants.%Abstract3] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.7de = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7de = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7de = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7de = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %Abstract3 = value_param call_param0 // CHECK:STDOUT: %Abstract3.ref.loc6: type = name_ref Abstract3, file.%Abstract3.decl [concrete = constants.%Abstract3] diff --git a/toolchain/check/testdata/class/abstract/fail_abstract_in_tuple.carbon b/toolchain/check/testdata/class/abstract/fail_abstract_in_tuple.carbon index 65daf47b392b..f0194e0882ce 100644 --- a/toolchain/check/testdata/class/abstract/fail_abstract_in_tuple.carbon +++ b/toolchain/check/testdata/class/abstract/fail_abstract_in_tuple.carbon @@ -274,8 +274,8 @@ fn Var5() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Abstract3.decl: type = class_decl @Abstract3 [concrete = constants.%Abstract3] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.7de = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7de = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7de = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7de = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %Abstract3 = value_param call_param0 // CHECK:STDOUT: %Abstract3.ref.loc6: type = name_ref Abstract3, file.%Abstract3.decl [concrete = constants.%Abstract3] diff --git a/toolchain/check/testdata/class/access/access_modifers.carbon b/toolchain/check/testdata/class/access/access_modifers.carbon index 0d35b6ad814a..828d8081c592 100644 --- a/toolchain/check/testdata/class/access/access_modifers.carbon +++ b/toolchain/check/testdata/class/access/access_modifers.carbon @@ -244,8 +244,8 @@ class A { // CHECK:STDOUT: %.loc6_45.2: %i32 = converted %int_5, %.loc6_45.1 [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %SOME_INTERNAL_CONSTANT: %i32 = value_binding SOME_INTERNAL_CONSTANT, %.loc6_45.2 // CHECK:STDOUT: %Circle.SomeInternalFunction.decl: %Circle.SomeInternalFunction.type = fn_decl @Circle.SomeInternalFunction [concrete = constants.%Circle.SomeInternalFunction] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -253,8 +253,8 @@ class A { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Circle.Make.decl: %Circle.Make.type = fn_decl @Circle.Make [concrete = constants.%Circle.Make] { -// CHECK:STDOUT: %return.patt: %pattern_type.fcb = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.fcb = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fcb = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fcb = return_slot_pattern %return.param_patt, %Self.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Circle [concrete = constants.%Circle] // CHECK:STDOUT: %.loc12: Core.Form = init_form %Self.ref [concrete = constants.%.f65] @@ -475,10 +475,10 @@ class A { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc5: %Circle.elem = field_decl radius, element0 [concrete] // CHECK:STDOUT: %Circle.GetRadius.decl: %Circle.GetRadius.type = fn_decl @Circle.GetRadius [concrete = constants.%Circle.GetRadius] { -// CHECK:STDOUT: %self.patt: %pattern_type.fcb = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.fcb = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.fcb = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.fcb = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc7: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -489,8 +489,8 @@ class A { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Circle.SomeInternalFunction.decl: %Circle.SomeInternalFunction.type = fn_decl @Circle.SomeInternalFunction [concrete = constants.%Circle.SomeInternalFunction] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc11: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -498,10 +498,10 @@ class A { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Circle.Compute.decl: %Circle.Compute.type = fn_decl @Circle.Compute [concrete = constants.%Circle.Compute] { -// CHECK:STDOUT: %self.patt: %pattern_type.fcb = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.fcb = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.fcb = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.fcb = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/access/import_access.carbon b/toolchain/check/testdata/class/access/import_access.carbon index d9521c7f62c3..4af2a81a5198 100644 --- a/toolchain/check/testdata/class/access/import_access.carbon +++ b/toolchain/check/testdata/class/access/import_access.carbon @@ -460,8 +460,8 @@ private class Redecl {} // CHECK:STDOUT: %Test.import = import Test // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: %pattern_type = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc4: type = splice_block %ptr [concrete = constants.%ptr] { @@ -500,15 +500,15 @@ private class Redecl {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: = value_param call_param0 // CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = ] { // CHECK:STDOUT: %Forward.ref: = name_ref Forward, [concrete = ] // CHECK:STDOUT: %ptr: type = ptr_type [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: = value_binding c, %c.param +// CHECK:STDOUT: %c: = value_binding c, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -538,8 +538,8 @@ private class Redecl {} // CHECK:STDOUT: } // CHECK:STDOUT: %Test.import = import Test // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: = value_param call_param0 // CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = ] { @@ -547,7 +547,7 @@ private class Redecl {} // CHECK:STDOUT: %Forward.ref: = name_ref Forward, [concrete = ] // CHECK:STDOUT: %ptr: type = ptr_type [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: = value_binding c, %c.param +// CHECK:STDOUT: %c: = value_binding c, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/access/inheritance_access.carbon b/toolchain/check/testdata/class/access/inheritance_access.carbon index af225ff1c5e0..91b8320ad098 100644 --- a/toolchain/check/testdata/class/access/inheritance_access.carbon +++ b/toolchain/check/testdata/class/access/inheritance_access.carbon @@ -361,10 +361,10 @@ class B { // CHECK:STDOUT: %Shape.ref: type = name_ref Shape, file.%Shape.decl [concrete = constants.%Shape] // CHECK:STDOUT: %.loc10: %Circle.elem = base_decl %Shape.ref, element0 [concrete] // CHECK:STDOUT: %Circle.GetPosition.decl: %Circle.GetPosition.type = fn_decl @Circle.GetPosition [concrete = constants.%Circle.GetPosition] { -// CHECK:STDOUT: %self.patt: %pattern_type.fcb = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.fcb = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.fcb = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.fcb = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern %return.param_patt, %.loc12_44.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc12_36: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc12_41: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -493,8 +493,8 @@ class B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc10: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -516,10 +516,10 @@ class B { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc14: %C.elem = base_decl %B.ref, element0 [concrete] // CHECK:STDOUT: %C.G.decl: %C.G.type = fn_decl @C.G [concrete = constants.%C.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %.loc15_26.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_26.2: type = converted %.loc15_26.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -649,8 +649,8 @@ class B { // CHECK:STDOUT: %.loc5_38.2: %i32 = converted %int_5, %.loc5_38.1 [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %SOME_CONSTANT: %i32 = value_binding SOME_CONSTANT, %.loc5_38.2 // CHECK:STDOUT: %A.SomeProtectedFunction.decl: %A.SomeProtectedFunction.type = fn_decl @A.SomeProtectedFunction [concrete = constants.%A.SomeProtectedFunction] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -671,8 +671,8 @@ class B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc12: %B.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: %B.G.decl: %B.G.type = fn_decl @B.G [concrete = constants.%B.G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc14: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -680,8 +680,8 @@ class B { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.H.decl: %B.H.type = fn_decl @B.H [concrete = constants.%B.H] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc18: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -789,10 +789,10 @@ class B { // CHECK:STDOUT: %Shape.ref: type = name_ref Shape, file.%Shape.decl [concrete = constants.%Shape] // CHECK:STDOUT: %.loc9: %Square.elem = base_decl %Shape.ref, element0 [concrete] // CHECK:STDOUT: %Square.GetPosition.decl: %Square.GetPosition.type = fn_decl @Square.GetPosition [concrete = constants.%Square.GetPosition] { -// CHECK:STDOUT: %self.patt: %pattern_type.1d2 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1d2 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1d2 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1d2 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc11: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -1126,8 +1126,8 @@ class B { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc16: %C.elem = base_decl %B.ref, element0 [concrete] // CHECK:STDOUT: %C.G1.decl: %C.G1.type = fn_decl @C.G1 [concrete = constants.%C.G1] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc25: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -1383,8 +1383,8 @@ class B { // CHECK:STDOUT: %Internal.ref: type = name_ref Internal, file.%Internal.decl [concrete = constants.%Internal] // CHECK:STDOUT: %.loc14: %B.elem = field_decl internal, element0 [concrete] // CHECK:STDOUT: %B.G.decl: %B.G.type = fn_decl @B.G [concrete = constants.%B.G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -1392,10 +1392,10 @@ class B { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.SomeFunc.decl: %B.SomeFunc.type = fn_decl @B.SomeFunc [concrete = constants.%B.SomeFunc] { -// CHECK:STDOUT: %self.patt: %pattern_type.1f4 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1f4 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc36: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -1492,8 +1492,8 @@ class B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.1f4 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1f4 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %B = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B] @@ -1574,8 +1574,8 @@ class B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.1f4 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1f4 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %B = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B] diff --git a/toolchain/check/testdata/class/access/method_access.carbon b/toolchain/check/testdata/class/access/method_access.carbon index 42916aa92a06..9892f3f6edc7 100644 --- a/toolchain/check/testdata/class/access/method_access.carbon +++ b/toolchain/check/testdata/class/access/method_access.carbon @@ -48,8 +48,8 @@ fn G(x: X) { // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %x.patt: %pattern_type = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %X = value_param call_param0 // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] @@ -59,8 +59,8 @@ fn G(x: X) { // CHECK:STDOUT: // CHECK:STDOUT: class @X { // CHECK:STDOUT: %X.F.decl: %X.F.type = fn_decl @X.F [concrete = constants.%X.F] { -// CHECK:STDOUT: %self.patt: %pattern_type = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %X = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%X [concrete = constants.%X] diff --git a/toolchain/check/testdata/class/adapter/adapt.carbon b/toolchain/check/testdata/class/adapter/adapt.carbon index f1116258b5e5..a8ff7fe8ffa1 100644 --- a/toolchain/check/testdata/class/adapter/adapt.carbon +++ b/toolchain/check/testdata/class/adapter/adapt.carbon @@ -176,8 +176,8 @@ interface I { // CHECK:STDOUT: %Adapted.decl: type = class_decl @Adapted [concrete = constants.%Adapted] {} {} // CHECK:STDOUT: %AdaptNotExtend.decl: type = class_decl @AdaptNotExtend [concrete = constants.%AdaptNotExtend] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %AdaptNotExtend = value_param call_param0 // CHECK:STDOUT: %AdaptNotExtend.ref: type = name_ref AdaptNotExtend, file.%AdaptNotExtend.decl [concrete = constants.%AdaptNotExtend] diff --git a/toolchain/check/testdata/class/adapter/adapt_copy.carbon b/toolchain/check/testdata/class/adapter/adapt_copy.carbon index 87c60b88f14f..d54778be9159 100644 --- a/toolchain/check/testdata/class/adapter/adapt_copy.carbon +++ b/toolchain/check/testdata/class/adapter/adapt_copy.carbon @@ -223,10 +223,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %AdaptCopyable.decl: type = class_decl @AdaptCopyable [concrete = constants.%AdaptCopyable] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: %pattern_type.e78 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.e78 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.e78 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.e78 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.e78 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e78 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.e78 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.e78 = return_slot_pattern %return.param_patt, %AdaptCopyable.ref.loc8_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptCopyable.ref.loc8_27: type = name_ref AdaptCopyable, file.%AdaptCopyable.decl [concrete = constants.%AdaptCopyable] // CHECK:STDOUT: %.loc8: Core.Form = init_form %AdaptCopyable.ref.loc8_27 [concrete = constants.%.23e] @@ -237,10 +237,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %return: ref %AdaptCopyable = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InTuple.decl: %InTuple.type = fn_decl @InTuple [concrete = constants.%InTuple] { -// CHECK:STDOUT: %c.patt: %pattern_type.87f = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.87f = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.87f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.87f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.87f = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.87f = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.87f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.87f = return_slot_pattern %return.param_patt, %.loc27_59.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptCopyable.ref.loc27_41: type = name_ref AdaptCopyable, file.%AdaptCopyable.decl [concrete = constants.%AdaptCopyable] // CHECK:STDOUT: %u32.loc27_56: type = type_literal constants.%u32 [concrete = constants.%u32] @@ -399,10 +399,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %AdaptTuple.decl: type = class_decl @AdaptTuple [concrete = constants.%AdaptTuple] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: %pattern_type.6cd = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.6cd = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.6cd = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.6cd = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.6cd = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.6cd = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6cd = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6cd = return_slot_pattern %return.param_patt, %AdaptTuple.ref.loc8_24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptTuple.ref.loc8_24: type = name_ref AdaptTuple, file.%AdaptTuple.decl [concrete = constants.%AdaptTuple] // CHECK:STDOUT: %.loc8: Core.Form = init_form %AdaptTuple.ref.loc8_24 [concrete = constants.%.52a] @@ -413,10 +413,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %return: ref %AdaptTuple = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InTuple.decl: %InTuple.type = fn_decl @InTuple [concrete = constants.%InTuple] { -// CHECK:STDOUT: %c.patt: %pattern_type.6f4 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.6f4 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.6f4 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.6f4 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.6f4 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.6f4 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6f4 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6f4 = return_slot_pattern %return.param_patt, %.loc13_53.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptTuple.ref.loc13_38: type = name_ref AdaptTuple, file.%AdaptTuple.decl [concrete = constants.%AdaptTuple] // CHECK:STDOUT: %u32.loc13_50: type = type_literal constants.%u32 [concrete = constants.%u32] @@ -645,10 +645,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Noncopyable.decl: type = class_decl @Noncopyable [concrete = constants.%Noncopyable] {} {} // CHECK:STDOUT: %AdaptNoncopyable.decl: type = class_decl @AdaptNoncopyable [concrete = constants.%AdaptNoncopyable] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.patt: %pattern_type.92b = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.92b = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.92b = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.92b = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.92b = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.92b = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.92b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.92b = return_slot_pattern %return.param_patt, %AdaptNoncopyable.ref.loc12_30 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptNoncopyable.ref.loc12_30: type = name_ref AdaptNoncopyable, file.%AdaptNoncopyable.decl [concrete = constants.%AdaptNoncopyable] // CHECK:STDOUT: %.loc12: Core.Form = init_form %AdaptNoncopyable.ref.loc12_30 [concrete = constants.%.e94] @@ -761,10 +761,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Noncopyable.decl: type = class_decl @Noncopyable [concrete = constants.%Noncopyable] {} {} // CHECK:STDOUT: %AdaptNoncopyableIndirect.decl: type = class_decl @AdaptNoncopyableIndirect [concrete = constants.%AdaptNoncopyableIndirect] {} {} // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { -// CHECK:STDOUT: %a.patt: %pattern_type.ca6 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.ca6 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.ca6 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.ca6 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.ca6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.ca6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.ca6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.ca6 = return_slot_pattern %return.param_patt, %AdaptNoncopyableIndirect.ref.loc12_38 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptNoncopyableIndirect.ref.loc12_38: type = name_ref AdaptNoncopyableIndirect, file.%AdaptNoncopyableIndirect.decl [concrete = constants.%AdaptNoncopyableIndirect] // CHECK:STDOUT: %.loc12: Core.Form = init_form %AdaptNoncopyableIndirect.ref.loc12_38 [concrete = constants.%.ae4] @@ -923,10 +923,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %AdaptStruct.decl: type = class_decl @AdaptStruct [concrete = constants.%AdaptStruct] {} {} // CHECK:STDOUT: %I.decl: %I.type = fn_decl @I [concrete = constants.%I] { -// CHECK:STDOUT: %g.patt: %pattern_type.341 = value_binding_pattern g [concrete] -// CHECK:STDOUT: %g.param_patt: %pattern_type.341 = value_param_pattern %g.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.341 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.341 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %g.param_patt: %pattern_type.341 = value_param_pattern [concrete] +// CHECK:STDOUT: %g.patt: %pattern_type.341 = at_binding_pattern g, %g.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.341 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.341 = return_slot_pattern %return.param_patt, %AdaptStruct.ref.loc8_25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptStruct.ref.loc8_25: type = name_ref AdaptStruct, file.%AdaptStruct.decl [concrete = constants.%AdaptStruct] // CHECK:STDOUT: %.loc8: Core.Form = init_form %AdaptStruct.ref.loc8_25 [concrete = constants.%.8e3] @@ -937,10 +937,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %return: ref %AdaptStruct = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InTuple.decl: %InTuple.type = fn_decl @InTuple [concrete = constants.%InTuple] { -// CHECK:STDOUT: %c.patt: %pattern_type.b13 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.b13 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.b13 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.b13 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.b13 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.b13 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b13 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b13 = return_slot_pattern %return.param_patt, %.loc13_55.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptStruct.ref.loc13_39: type = name_ref AdaptStruct, file.%AdaptStruct.decl [concrete = constants.%AdaptStruct] // CHECK:STDOUT: %u32.loc13_52: type = type_literal constants.%u32 [concrete = constants.%u32] diff --git a/toolchain/check/testdata/class/adapter/extend_adapt.carbon b/toolchain/check/testdata/class/adapter/extend_adapt.carbon index 75f343bd7c2b..c546f0f7ae04 100644 --- a/toolchain/check/testdata/class/adapter/extend_adapt.carbon +++ b/toolchain/check/testdata/class/adapter/extend_adapt.carbon @@ -188,16 +188,16 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %SomeClass.decl: type = class_decl @SomeClass [concrete = constants.%SomeClass] {} {} // CHECK:STDOUT: %SomeClassAdapter.decl.loc15: type = class_decl @SomeClassAdapter [concrete = constants.%SomeClassAdapter] {} {} // CHECK:STDOUT: %TestStaticMemberFunction.decl: %TestStaticMemberFunction.type = fn_decl @TestStaticMemberFunction [concrete = constants.%TestStaticMemberFunction] { -// CHECK:STDOUT: %a.patt: %pattern_type.31a = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.31a = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0 // CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [concrete = constants.%SomeClassAdapter] // CHECK:STDOUT: %a: %SomeClassAdapter = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestAdapterMethod.decl: %TestAdapterMethod.type = fn_decl @TestAdapterMethod [concrete = constants.%TestAdapterMethod] { -// CHECK:STDOUT: %a.patt: %pattern_type.31a = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.31a = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0 // CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [concrete = constants.%SomeClassAdapter] @@ -226,8 +226,8 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %.loc8: %SomeClass.elem = field_decl b, element1 [concrete] // CHECK:STDOUT: %SomeClass.StaticMemberFunction.decl: %SomeClass.StaticMemberFunction.type = fn_decl @SomeClass.StaticMemberFunction [concrete = constants.%SomeClass.StaticMemberFunction] {} {} // CHECK:STDOUT: %SomeClass.AdapterMethod.decl: %SomeClass.AdapterMethod.type = fn_decl @SomeClass.AdapterMethod [concrete = constants.%SomeClass.AdapterMethod] { -// CHECK:STDOUT: %self.patt: %pattern_type.31a = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.31a = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.31a = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.31a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %SomeClassAdapter = value_param call_param0 // CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [concrete = constants.%SomeClassAdapter] @@ -304,8 +304,8 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %SomeClass.decl: type = class_decl @SomeClass [concrete = constants.%SomeClass] {} {} // CHECK:STDOUT: %SomeClassAdapter.decl: type = class_decl @SomeClassAdapter [concrete = constants.%SomeClassAdapter] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.31a = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.31a = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0 // CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl [concrete = constants.%SomeClassAdapter] @@ -315,8 +315,8 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @SomeClass { // CHECK:STDOUT: %SomeClass.F.decl: %SomeClass.F.type = fn_decl @SomeClass.F [concrete = constants.%SomeClass.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.ea0 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.ea0 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.ea0 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.ea0 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %SomeClass = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%SomeClass [concrete = constants.%SomeClass] @@ -398,10 +398,10 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %SomeClass.decl: type = class_decl @SomeClass [concrete = constants.%SomeClass] {} {} // CHECK:STDOUT: %SomeClassAdapter.decl: type = class_decl @SomeClassAdapter [concrete = constants.%SomeClassAdapter] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.31a = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.31a = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc13: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -484,10 +484,10 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %StructAdapter.decl: type = class_decl @StructAdapter [concrete = constants.%StructAdapter] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.7d8 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7d8 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7d8 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7d8 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -558,10 +558,10 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %TupleAdapter.decl: type = class_decl @TupleAdapter [concrete = constants.%TupleAdapter] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.3a8 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.3a8 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.3a8 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.3a8 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -638,10 +638,10 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %MakeInt.decl: %MakeInt.type = fn_decl @MakeInt [concrete = constants.%MakeInt] { -// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = value_binding_pattern N [concrete] -// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern %N.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc4_37.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_37.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc4_37.2: Core.Form = init_form %.loc4_37.1 [concrete = constants.%.805] @@ -659,10 +659,10 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %IntAdapter.decl: type = class_decl @IntAdapter [concrete = constants.%IntAdapter] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.f40 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.f40 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.f40 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.f40 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc10: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/adapter/init_adapt.carbon b/toolchain/check/testdata/class/adapter/init_adapt.carbon index cd187a1fdf36..bc8c260660be 100644 --- a/toolchain/check/testdata/class/adapter/init_adapt.carbon +++ b/toolchain/check/testdata/class/adapter/init_adapt.carbon @@ -208,8 +208,8 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %C.ref.loc17: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: %C = value_binding c, @__global_init.%.loc17_14.2 // CHECK:STDOUT: %MakeC.decl: %MakeC.type = fn_decl @MakeC [concrete = constants.%MakeC] { -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc19: Core.Form = init_form %C.ref [concrete = constants.%.a69] @@ -217,8 +217,8 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %MakeAdaptC.decl: %MakeAdaptC.type = fn_decl @MakeAdaptC [concrete = constants.%MakeAdaptC] { -// CHECK:STDOUT: %return.patt: %pattern_type.507 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.507 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.507 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.507 = return_slot_pattern %return.param_patt, %AdaptC.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptC.ref: type = name_ref AdaptC, file.%AdaptC.decl [concrete = constants.%AdaptC] // CHECK:STDOUT: %.loc21: Core.Form = init_form %AdaptC.ref [concrete = constants.%.e6b] @@ -414,8 +414,8 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %.loc33: %C = converted @__global_init.%b.ref, [concrete = ] // CHECK:STDOUT: %c: %C = value_binding c, [concrete = ] // CHECK:STDOUT: %MakeC.decl: %MakeC.type = fn_decl @MakeC [concrete = constants.%MakeC] { -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc35: Core.Form = init_form %C.ref [concrete = constants.%.a69] @@ -423,8 +423,8 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %MakeAdaptC.decl: %MakeAdaptC.type = fn_decl @MakeAdaptC [concrete = constants.%MakeAdaptC] { -// CHECK:STDOUT: %return.patt: %pattern_type.507 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.507 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.507 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.507 = return_slot_pattern %return.param_patt, %AdaptC.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptC.ref: type = name_ref AdaptC, file.%AdaptC.decl [concrete = constants.%AdaptC] // CHECK:STDOUT: %.loc37: Core.Form = init_form %AdaptC.ref [concrete = constants.%.e6b] diff --git a/toolchain/check/testdata/class/basic.carbon b/toolchain/check/testdata/class/basic.carbon index b78e7e8f6a50..6b4d46d9c91e 100644 --- a/toolchain/check/testdata/class/basic.carbon +++ b/toolchain/check/testdata/class/basic.carbon @@ -105,10 +105,10 @@ fn Run() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc25_23 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc25_23: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25_23 [concrete = constants.%.ff5] @@ -119,8 +119,8 @@ fn Run() -> i32 { // CHECK:STDOUT: %return.loc25: ref %i32 = return_slot %return.param.loc25 // CHECK:STDOUT: } // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc29: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -131,10 +131,10 @@ fn Run() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc16_19 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16_19 [concrete = constants.%.ff5] @@ -145,10 +145,10 @@ fn Run() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc25_23 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc20_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc20: Core.Form = init_form %i32.loc20_19 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/complete_in_member_fn.carbon b/toolchain/check/testdata/class/complete_in_member_fn.carbon index 108ca1f24061..712a792ce08a 100644 --- a/toolchain/check/testdata/class/complete_in_member_fn.carbon +++ b/toolchain/check/testdata/class/complete_in_member_fn.carbon @@ -71,10 +71,10 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { -// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16_17: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/field/compound_field.carbon b/toolchain/check/testdata/class/field/compound_field.carbon index f3617ed9a0ee..bb5540fbcc73 100644 --- a/toolchain/check/testdata/class/field/compound_field.carbon +++ b/toolchain/check/testdata/class/field/compound_field.carbon @@ -125,10 +125,10 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %AccessDerived.decl: %AccessDerived.type = fn_decl @AccessDerived [concrete = constants.%AccessDerived] { -// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc28: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -139,10 +139,10 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessBase.decl: %AccessBase.type = fn_decl @AccessBase [concrete = constants.%AccessBase] { -// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc32: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -153,10 +153,10 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessDerivedIndirect.decl: %AccessDerivedIndirect.type = fn_decl @AccessDerivedIndirect [concrete = constants.%AccessDerivedIndirect] { -// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.0dd = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern %return.param_patt, %ptr.loc36_45 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %ptr.loc36_45: type = ptr_type %i32 [concrete = constants.%ptr.235] @@ -171,10 +171,10 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %return: ref %ptr.235 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessBaseIndirect.decl: %AccessBaseIndirect.type = fn_decl @AccessBaseIndirect [concrete = constants.%AccessBaseIndirect] { -// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.0dd = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern %return.param_patt, %ptr.loc40_42 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %ptr.loc40_42: type = ptr_type %i32 [concrete = constants.%ptr.235] diff --git a/toolchain/check/testdata/class/forward_declared.carbon b/toolchain/check/testdata/class/forward_declared.carbon index 6932f196cd45..4a606a801915 100644 --- a/toolchain/check/testdata/class/forward_declared.carbon +++ b/toolchain/check/testdata/class/forward_declared.carbon @@ -58,10 +58,10 @@ fn F(p: Class*) -> Class* { return p; } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %p.patt: %pattern_type.018 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.018 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.018 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.018 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.018 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.018 = return_slot_pattern %return.param_patt, %ptr.loc17_25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref.loc17_20: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %ptr.loc17_25: type = ptr_type %Class.ref.loc17_20 [concrete = constants.%ptr.8e5] diff --git a/toolchain/check/testdata/class/generic/adapt.carbon b/toolchain/check/testdata/class/generic/adapt.carbon index a19715deaca3..43a99479f67a 100644 --- a/toolchain/check/testdata/class/generic/adapt.carbon +++ b/toolchain/check/testdata/class/generic/adapt.carbon @@ -200,10 +200,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Adapter.decl: type = class_decl @Adapter [concrete = constants.%Adapter] {} {} // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] { -// CHECK:STDOUT: %a.patt: %pattern_type.bf2 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.bf2 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc12 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc12: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc12: Core.Form = init_form %i32.loc12 [concrete = constants.%.ff5] @@ -359,10 +359,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %ImportedAccess.decl: %ImportedAccess.type = fn_decl @ImportedAccess [concrete = constants.%ImportedAccess] { -// CHECK:STDOUT: %a.patt: %pattern_type.bf2 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.501 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.501 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.bf2 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.501 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.501 = return_slot_pattern %return.param_patt, %i32.loc6 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6: Core.Form = init_form %i32.loc6 [concrete = constants.%.4ca] @@ -498,10 +498,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Adapter.decl: type = class_decl @Adapter [concrete = constants.%Adapter] {} {} // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] { -// CHECK:STDOUT: %a.patt: %pattern_type.bf2 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.bf2 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc12: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -742,10 +742,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %ImportedAccess.decl: %ImportedAccess.type = fn_decl @ImportedAccess [concrete = constants.%ImportedAccess] { -// CHECK:STDOUT: %a.patt: %pattern_type.bf2 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.501 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.501 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.bf2 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.501 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.501 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6: Core.Form = init_form %i32 [concrete = constants.%.4ca] @@ -877,10 +877,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.loc4_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc4_15.1 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %Convert.decl: %Convert.type = fn_decl @Convert [concrete = constants.%Convert] { -// CHECK:STDOUT: %a.patt: %pattern_type.1fb = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.1fb = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.1fb = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.1fb = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc8_32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc8_32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8_32: Core.Form = init_form %i32.loc8_32 [concrete = constants.%.ff5] @@ -1014,10 +1014,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %ImportedConvert.decl: %ImportedConvert.type = fn_decl @ImportedConvert [concrete = constants.%ImportedConvert] { -// CHECK:STDOUT: %a.patt: %pattern_type.1fb = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.1fb = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.1fb = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.1fb = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc6_40 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_40: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6_40: Core.Form = init_form %i32.loc6_40 [concrete = constants.%.ff5] @@ -1033,10 +1033,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %ImportedConvertLocal.decl: %ImportedConvertLocal.type = fn_decl @ImportedConvertLocal [concrete = constants.%ImportedConvertLocal] { -// CHECK:STDOUT: %a.patt: %pattern_type.014 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.014 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.014 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.014 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc14_43: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/generic/base_is_generic.carbon b/toolchain/check/testdata/class/generic/base_is_generic.carbon index 95754ea24245..dcdbf5a6b6a5 100644 --- a/toolchain/check/testdata/class/generic/base_is_generic.carbon +++ b/toolchain/check/testdata/class/generic/base_is_generic.carbon @@ -171,10 +171,10 @@ fn H() { // CHECK:STDOUT: %Param.decl: type = class_decl @Param [concrete = constants.%Param] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %DoubleFieldAccess.decl: %DoubleFieldAccess.type = fn_decl @DoubleFieldAccess [concrete = constants.%DoubleFieldAccess] { -// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -354,10 +354,10 @@ fn H() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %ImportedDoubleFieldAccess.decl: %ImportedDoubleFieldAccess.type = fn_decl @ImportedDoubleFieldAccess [concrete = constants.%ImportedDoubleFieldAccess] { -// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.501 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.501 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.501 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.501 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6: Core.Form = init_form %i32 [concrete = constants.%.4ca] @@ -640,8 +640,8 @@ fn H() { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %X.G.decl: @X.%X.G.type (%X.G.type.20eb90.1) = fn_decl @X.G [symbolic = @X.%X.G (constants.%X.G.f9f685.1)] { -// CHECK:STDOUT: %return.patt: @X.G.%pattern_type (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @X.G.%pattern_type (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @X.G.%pattern_type (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @X.G.%pattern_type (%pattern_type.51d) = return_slot_pattern %return.param_patt, %U.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref: type = name_ref U, @X.%U.loc4_14.2 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %.loc5_13.3: Core.Form = init_form %U.ref [symbolic = %.loc5_13.2 (constants.%.184)] diff --git a/toolchain/check/testdata/class/generic/basic.carbon b/toolchain/check/testdata/class/generic/basic.carbon index 663a1d4e68a5..4db598beffbe 100644 --- a/toolchain/check/testdata/class/generic/basic.carbon +++ b/toolchain/check/testdata/class/generic/basic.carbon @@ -122,10 +122,10 @@ class Declaration(T:! type); // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Class.GetAddr.decl: @Class.%Class.GetAddr.type (%Class.GetAddr.type) = fn_decl @Class.GetAddr [symbolic = @Class.%Class.GetAddr (constants.%Class.GetAddr)] { -// CHECK:STDOUT: %self.patt: @Class.GetAddr.%pattern_type.loc6_18 (%pattern_type.893) = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Class.GetAddr.%pattern_type.loc6_18 (%pattern_type.893) = ref_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @Class.GetAddr.%pattern_type.loc6_32 (%pattern_type.65a) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.GetAddr.%pattern_type.loc6_32 (%pattern_type.65a) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.GetAddr.%pattern_type.loc6_22 (%pattern_type.893) = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.GetAddr.%pattern_type.loc6_22 (%pattern_type.893) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.GetAddr.%pattern_type.loc6_36 (%pattern_type.65a) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.GetAddr.%pattern_type.loc6_36 (%pattern_type.65a) = return_slot_pattern %return.param_patt, %ptr.loc6_36.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.035)] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -142,10 +142,10 @@ class Declaration(T:! type); // CHECK:STDOUT: %return: ref @Class.GetAddr.%ptr.loc6_36.1 (%ptr.e7d) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.GetValue.decl: @Class.%Class.GetValue.type (%Class.GetValue.type) = fn_decl @Class.GetValue [symbolic = @Class.%Class.GetValue (constants.%Class.GetValue)] { -// CHECK:STDOUT: %self.patt: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.893) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.893) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @Class.GetValue.%pattern_type.loc10_29 (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.GetValue.%pattern_type.loc10_29 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.GetValue.%pattern_type.loc10_19 (%pattern_type.893) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.GetValue.%pattern_type.loc10_19 (%pattern_type.893) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.GetValue.%pattern_type.loc10_32 (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.GetValue.%pattern_type.loc10_32 (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc10_32.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.035)] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -185,11 +185,11 @@ class Declaration(T:! type); // CHECK:STDOUT: generic fn @Class.GetAddr(@Class.%T.loc5_13.2: %Copy.type) { // CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.035)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %pattern_type.loc6_18: type = pattern_type %Class [symbolic = %pattern_type.loc6_18 (constants.%pattern_type.893)] +// CHECK:STDOUT: %pattern_type.loc6_22: type = pattern_type %Class [symbolic = %pattern_type.loc6_22 (constants.%pattern_type.893)] // CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %ptr.loc6_36.1: type = ptr_type %T.binding.as_type [symbolic = %ptr.loc6_36.1 (constants.%ptr.e7d)] // CHECK:STDOUT: %.loc6_36.1: Core.Form = init_form %ptr.loc6_36.1 [symbolic = %.loc6_36.1 (constants.%.66f)] -// CHECK:STDOUT: %pattern_type.loc6_32: type = pattern_type %ptr.loc6_36.1 [symbolic = %pattern_type.loc6_32 (constants.%pattern_type.65a)] +// CHECK:STDOUT: %pattern_type.loc6_36: type = pattern_type %ptr.loc6_36.1 [symbolic = %pattern_type.loc6_36 (constants.%pattern_type.65a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_22: = require_complete_type %Class [symbolic = %require_complete.loc6_22 (constants.%require_complete.904)] @@ -221,10 +221,10 @@ class Declaration(T:! type); // CHECK:STDOUT: generic fn @Class.GetValue(@Class.%T.loc5_13.2: %Copy.type) { // CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.035)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %pattern_type.loc10_15: type = pattern_type %Class [symbolic = %pattern_type.loc10_15 (constants.%pattern_type.893)] +// CHECK:STDOUT: %pattern_type.loc10_19: type = pattern_type %Class [symbolic = %pattern_type.loc10_19 (constants.%pattern_type.893)] // CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %.loc10_32.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc10_32.2 (constants.%.076a48.2)] -// CHECK:STDOUT: %pattern_type.loc10_29: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc10_29 (constants.%pattern_type.9b9f0c.2)] +// CHECK:STDOUT: %pattern_type.loc10_32: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc10_32 (constants.%pattern_type.9b9f0c.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class [symbolic = %require_complete.loc10 (constants.%require_complete.904)] @@ -271,20 +271,20 @@ class Declaration(T:! type); // CHECK:STDOUT: specific @Class.GetAddr(constants.%T.035) { // CHECK:STDOUT: %T => constants.%T.035 // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.893 +// CHECK:STDOUT: %pattern_type.loc6_22 => constants.%pattern_type.893 // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %ptr.loc6_36.1 => constants.%ptr.e7d // CHECK:STDOUT: %.loc6_36.1 => constants.%.66f -// CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.65a +// CHECK:STDOUT: %pattern_type.loc6_36 => constants.%pattern_type.65a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.GetValue(constants.%T.035) { // CHECK:STDOUT: %T => constants.%T.035 // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %pattern_type.loc10_15 => constants.%pattern_type.893 +// CHECK:STDOUT: %pattern_type.loc10_19 => constants.%pattern_type.893 // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %.loc10_32.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc10_29 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %pattern_type.loc10_32 => constants.%pattern_type.9b9f0c.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Declaration(constants.%T.67d) { diff --git a/toolchain/check/testdata/class/generic/call.carbon b/toolchain/check/testdata/class/generic/call.carbon index ffb9576b5005..6a6d61a7a810 100644 --- a/toolchain/check/testdata/class/generic/call.carbon +++ b/toolchain/check/testdata/class/generic/call.carbon @@ -695,8 +695,8 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Inner.A.decl: @Inner.%Inner.A.type (%Inner.A.type.c2f) = fn_decl @Inner.A [symbolic = @Inner.%Inner.A (constants.%Inner.A.07b)] { -// CHECK:STDOUT: %return.patt: @Inner.A.%pattern_type (%pattern_type.130) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Inner.A.%pattern_type (%pattern_type.130) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Inner.A.%pattern_type (%pattern_type.130) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Inner.A.%pattern_type (%pattern_type.130) = return_slot_pattern %return.param_patt, %Outer.loc4_22.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2_13.2 [symbolic = %T (constants.%T)] @@ -706,8 +706,8 @@ class Outer(T:! type) { // CHECK:STDOUT: %return: ref @Inner.A.%Outer.loc4_22.1 (%Outer.387) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Inner.B.decl: @Inner.%Inner.B.type (%Inner.B.type.f42) = fn_decl @Inner.B [symbolic = @Inner.%Inner.B (constants.%Inner.B.b14)] { -// CHECK:STDOUT: %return.patt: @Inner.B.%pattern_type (%pattern_type.760) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Inner.B.%pattern_type (%pattern_type.760) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Inner.B.%pattern_type (%pattern_type.760) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Inner.B.%pattern_type (%pattern_type.760) = return_slot_pattern %return.param_patt, %Outer.loc7_22.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %U.ref: type = name_ref U, @Inner.%U.loc3_15.2 [symbolic = %U (constants.%U)] @@ -717,8 +717,8 @@ class Outer(T:! type) { // CHECK:STDOUT: %return: ref @Inner.B.%Outer.loc7_22.1 (%Outer.d2f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Inner.C.decl: @Inner.%Inner.C.type (%Inner.C.type.912) = fn_decl @Inner.C [symbolic = @Inner.%Inner.C (constants.%Inner.C.125)] { -// CHECK:STDOUT: %return.patt: @Inner.C.%pattern_type (%pattern_type.81e) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Inner.C.%pattern_type (%pattern_type.81e) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Inner.C.%pattern_type (%pattern_type.81e) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Inner.C.%pattern_type (%pattern_type.81e) = return_slot_pattern %return.param_patt, %Inner.loc10_22.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_15: @Inner.C.%Inner.type (%Inner.type.e0d) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.ada)] // CHECK:STDOUT: %Inner.ref: @Inner.C.%Inner.type (%Inner.type.e0d) = name_ref Inner, %.loc10_15 [symbolic = %Inner.generic (constants.%Inner.generic.ada)] @@ -729,8 +729,8 @@ class Outer(T:! type) { // CHECK:STDOUT: %return: ref @Inner.C.%Inner.loc10_22.1 (%Inner.ddc) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Inner.D.decl: @Inner.%Inner.D.type (%Inner.D.type.cd0) = fn_decl @Inner.D [symbolic = @Inner.%Inner.D (constants.%Inner.D.147)] { -// CHECK:STDOUT: %return.patt: @Inner.D.%pattern_type (%pattern_type.0d1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Inner.D.%pattern_type (%pattern_type.0d1) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Inner.D.%pattern_type (%pattern_type.0d1) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Inner.D.%pattern_type (%pattern_type.0d1) = return_slot_pattern %return.param_patt, %Inner.loc13_22.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc13_15: @Inner.D.%Inner.type (%Inner.type.e0d) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.ada)] // CHECK:STDOUT: %Inner.ref: @Inner.D.%Inner.type (%Inner.type.e0d) = name_ref Inner, %.loc13_15 [symbolic = %Inner.generic (constants.%Inner.generic.ada)] diff --git a/toolchain/check/testdata/class/generic/complete_in_conversion.carbon b/toolchain/check/testdata/class/generic/complete_in_conversion.carbon index 19c2218da87d..4fb35f6c899b 100644 --- a/toolchain/check/testdata/class/generic/complete_in_conversion.carbon +++ b/toolchain/check/testdata/class/generic/complete_in_conversion.carbon @@ -135,10 +135,10 @@ fn F(a: A(0)*) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Int.decl: %Int.type.b3e = fn_decl @Int.loc2 [concrete = constants.%Int.d6d] { -// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = value_binding_pattern N [concrete] -// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern %N.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc2_33.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc2_33.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc2_33.2: Core.Form = init_form %.loc2_33.1 [concrete = constants.%.805] @@ -165,8 +165,8 @@ fn F(a: A(0)*) { // CHECK:STDOUT: %N.loc6_9.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_9.1 (constants.%N.5de)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.f32 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.f32 = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.f32 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.f32 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %ptr.0e2 = value_param call_param0 // CHECK:STDOUT: %.loc12_13: type = splice_block %ptr.loc12 [concrete = constants.%ptr.0e2] { diff --git a/toolchain/check/testdata/class/generic/field.carbon b/toolchain/check/testdata/class/generic/field.carbon index 940284fdcb5d..98637e522e84 100644 --- a/toolchain/check/testdata/class/generic/field.carbon +++ b/toolchain/check/testdata/class/generic/field.carbon @@ -133,10 +133,10 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %T.loc5_13.2: type = symbolic_binding T, 0 [symbolic = %T.loc5_13.1 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: %pattern_type.1c2 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.1c2 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.1c2 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.1c2 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc9_24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc9_24: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc9_24: Core.Form = init_form %i32.loc9_24 [concrete = constants.%.ff5] @@ -152,10 +152,10 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %T.patt: %pattern_type.ce2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %c.patt: @G.%pattern_type.loc13_21 (%pattern_type.c542f5.1) = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: @G.%pattern_type.loc13_21 (%pattern_type.c542f5.1) = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: @G.%pattern_type.loc13_34 (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc13_34 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: @G.%pattern_type.loc13_22 (%pattern_type.c542f5.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: @G.%pattern_type.loc13_22 (%pattern_type.c542f5.1) = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc13_37 (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @G.%pattern_type.loc13_37 (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc13_37.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc13_37: %Copy.type = name_ref T, %T.loc13_6.2 [symbolic = %T.loc13_6.1 (constants.%T.035)] // CHECK:STDOUT: %T.as_type.loc13_37: type = facet_access_type %T.ref.loc13_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -181,10 +181,10 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { // CHECK:STDOUT: %U.patt: %pattern_type.ce2 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %c.patt: @H.%pattern_type.loc17_21 (%pattern_type.c542f5.2) = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: @H.%pattern_type.loc17_21 (%pattern_type.c542f5.2) = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: @H.%pattern_type.loc17_34 (%pattern_type.9b9f0c.3) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @H.%pattern_type.loc17_34 (%pattern_type.9b9f0c.3) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: @H.%pattern_type.loc17_22 (%pattern_type.c542f5.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: @H.%pattern_type.loc17_22 (%pattern_type.c542f5.2) = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @H.%pattern_type.loc17_37 (%pattern_type.9b9f0c.3) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @H.%pattern_type.loc17_37 (%pattern_type.9b9f0c.3) = return_slot_pattern %return.param_patt, %.loc17_37.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc17_37: %Copy.type = name_ref U, %U.loc17_6.2 [symbolic = %U.loc17_6.1 (constants.%U.035)] // CHECK:STDOUT: %U.as_type.loc17_37: type = facet_access_type %U.ref.loc17_37 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] @@ -251,9 +251,9 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %T.loc13_6.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc13_6.1 (constants.%T.035)] // CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc13_6.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %Class.loc13_31.1: type = class_type @Class, @Class(%T.binding.as_type) [symbolic = %Class.loc13_31.1 (constants.%Class.3168aa.1)] -// CHECK:STDOUT: %pattern_type.loc13_21: type = pattern_type %Class.loc13_31.1 [symbolic = %pattern_type.loc13_21 (constants.%pattern_type.c542f5.1)] +// CHECK:STDOUT: %pattern_type.loc13_22: type = pattern_type %Class.loc13_31.1 [symbolic = %pattern_type.loc13_22 (constants.%pattern_type.c542f5.1)] // CHECK:STDOUT: %.loc13_37.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc13_37.2 (constants.%.076a48.2)] -// CHECK:STDOUT: %pattern_type.loc13_34: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc13_34 (constants.%pattern_type.9b9f0c.2)] +// CHECK:STDOUT: %pattern_type.loc13_37: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc13_37 (constants.%pattern_type.9b9f0c.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13: = require_complete_type %Class.loc13_31.1 [symbolic = %require_complete.loc13 (constants.%require_complete.ae7bfa.1)] @@ -285,9 +285,9 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %U.loc17_6.1: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc17_6.1 (constants.%U.035)] // CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc17_6.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] // CHECK:STDOUT: %Class.loc17_31.1: type = class_type @Class, @Class(%U.binding.as_type) [symbolic = %Class.loc17_31.1 (constants.%Class.3168aa.2)] -// CHECK:STDOUT: %pattern_type.loc17_21: type = pattern_type %Class.loc17_31.1 [symbolic = %pattern_type.loc17_21 (constants.%pattern_type.c542f5.2)] +// CHECK:STDOUT: %pattern_type.loc17_22: type = pattern_type %Class.loc17_31.1 [symbolic = %pattern_type.loc17_22 (constants.%pattern_type.c542f5.2)] // CHECK:STDOUT: %.loc17_37.2: Core.Form = init_form %U.binding.as_type [symbolic = %.loc17_37.2 (constants.%.076a48.3)] -// CHECK:STDOUT: %pattern_type.loc17_34: type = pattern_type %U.binding.as_type [symbolic = %pattern_type.loc17_34 (constants.%pattern_type.9b9f0c.3)] +// CHECK:STDOUT: %pattern_type.loc17_37: type = pattern_type %U.binding.as_type [symbolic = %pattern_type.loc17_37 (constants.%pattern_type.9b9f0c.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc17: = require_complete_type %Class.loc17_31.1 [symbolic = %require_complete.loc17 (constants.%require_complete.ae7bfa.2)] @@ -345,9 +345,9 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %T.loc13_6.1 => constants.%T.035 // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %Class.loc13_31.1 => constants.%Class.3168aa.1 -// CHECK:STDOUT: %pattern_type.loc13_21 => constants.%pattern_type.c542f5.1 +// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.c542f5.1 // CHECK:STDOUT: %.loc13_37.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc13_34 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %pattern_type.loc13_37 => constants.%pattern_type.9b9f0c.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%U.binding.as_type.14b) { @@ -365,8 +365,8 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %U.loc17_6.1 => constants.%U.035 // CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type.14b // CHECK:STDOUT: %Class.loc17_31.1 => constants.%Class.3168aa.2 -// CHECK:STDOUT: %pattern_type.loc17_21 => constants.%pattern_type.c542f5.2 +// CHECK:STDOUT: %pattern_type.loc17_22 => constants.%pattern_type.c542f5.2 // CHECK:STDOUT: %.loc17_37.2 => constants.%.076a48.3 -// CHECK:STDOUT: %pattern_type.loc17_34 => constants.%pattern_type.9b9f0c.3 +// CHECK:STDOUT: %pattern_type.loc17_37 => constants.%pattern_type.9b9f0c.3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index 584049606ffc..b9246c760c41 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -176,8 +176,8 @@ class Class(U:! type) { // CHECK:STDOUT: %T.loc6_21.2: type = symbolic_binding T, 0 [symbolic = %T.loc6_21.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.cb5 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb5 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb5 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb5 = return_slot_pattern %return.param_patt, %CompleteClass [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, file.%CompleteClass.decl [concrete = constants.%CompleteClass.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -207,8 +207,8 @@ class Class(U:! type) { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc7: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem) = field_decl n, element0 [concrete] // CHECK:STDOUT: %CompleteClass.F.decl: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type) = fn_decl @CompleteClass.F [symbolic = @CompleteClass.%CompleteClass.F (constants.%CompleteClass.F)] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8_13: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -360,8 +360,8 @@ class Class(U:! type) { // CHECK:STDOUT: %T.loc4: type = symbolic_binding T, 0 [symbolic = %T.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.b91 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.b91 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b91 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b91 = return_slot_pattern %return.param_patt, %CompleteClass [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, imports.%Main.CompleteClass [concrete = constants.%CompleteClass.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -547,8 +547,8 @@ class Class(U:! type) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %UseMethod.decl: %UseMethod.type = fn_decl @UseMethod [concrete = constants.%UseMethod] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc5 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5 [concrete = constants.%.ff5] @@ -556,8 +556,8 @@ class Class(U:! type) { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %UseField.decl: %UseField.type = fn_decl @UseField [concrete = constants.%UseField] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc10 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc10: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc10: Core.Form = init_form %i32.loc10 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/generic/init.carbon b/toolchain/check/testdata/class/generic/init.carbon index 2d7fd57dabdf..13c4a45c961f 100644 --- a/toolchain/check/testdata/class/generic/init.carbon +++ b/toolchain/check/testdata/class/generic/init.carbon @@ -124,10 +124,10 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: file { // CHECK:STDOUT: %InitFromStructGeneric.decl: %InitFromStructGeneric.type = fn_decl @InitFromStructGeneric [concrete = constants.%InitFromStructGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.ce2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc9_50.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_50: %Copy.type = name_ref T, %T.loc9_26.2 [symbolic = %T.loc9_26.1 (constants.%T.035)] // CHECK:STDOUT: %T.as_type.loc9_50: type = facet_access_type %T.ref.loc9_50 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -150,10 +150,10 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %return: ref @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromStructSpecific.decl: %InitFromStructSpecific.type = fn_decl @InitFromStructSpecific [concrete = constants.%InitFromStructSpecific] { -// CHECK:STDOUT: %x.patt: %pattern_type.7ce = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.7ce = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.7ce = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc14_38 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc14_38: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc14: Core.Form = init_form %i32.loc14_38 [concrete = constants.%.ff5] @@ -342,10 +342,10 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: file { // CHECK:STDOUT: %InitFromAdaptedGeneric.decl: %InitFromAdaptedGeneric.type = fn_decl @InitFromAdaptedGeneric [concrete = constants.%InitFromAdaptedGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.ce2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc9_51.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_51: %Copy.type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.035)] // CHECK:STDOUT: %T.as_type.loc9_51: type = facet_access_type %T.ref.loc9_51 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -368,10 +368,10 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %return: ref @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromAdaptedSpecific.decl: %InitFromAdaptedSpecific.type = fn_decl @InitFromAdaptedSpecific [concrete = constants.%InitFromAdaptedSpecific] { -// CHECK:STDOUT: %x.patt: %pattern_type.7ce = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.7ce = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.7ce = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc13_39 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc13_39: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc13: Core.Form = init_form %i32.loc13_39 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/generic/member_access.carbon b/toolchain/check/testdata/class/generic/member_access.carbon index 9b4c71062cc8..d8d3e88804b6 100644 --- a/toolchain/check/testdata/class/generic/member_access.carbon +++ b/toolchain/check/testdata/class/generic/member_access.carbon @@ -291,20 +291,20 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: specific @Class.Get(constants.%T.035) { // CHECK:STDOUT: %T => constants.%T.035 // CHECK:STDOUT: %Class => constants.%Class.847 -// CHECK:STDOUT: %pattern_type.loc7_10 => constants.%pattern_type.893 +// CHECK:STDOUT: %pattern_type.loc7_14 => constants.%pattern_type.893 // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %.loc7_27.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc7_24 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %pattern_type.loc7_27 => constants.%pattern_type.9b9f0c.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.GetAddr(constants.%T.035) { // CHECK:STDOUT: %T => constants.%T.035 // CHECK:STDOUT: %Class => constants.%Class.847 -// CHECK:STDOUT: %pattern_type.loc13_18 => constants.%pattern_type.893 +// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.893 // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %ptr.loc13_36.1 => constants.%ptr.e7d // CHECK:STDOUT: %.loc13_36.1 => constants.%.66f -// CHECK:STDOUT: %pattern_type.loc13_32 => constants.%pattern_type.65a +// CHECK:STDOUT: %pattern_type.loc13_36 => constants.%pattern_type.65a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%Copy.facet.de4) { @@ -326,10 +326,10 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: specific @Class.Get(constants.%Copy.facet.de4) { // CHECK:STDOUT: %T => constants.%Copy.facet.de4 // CHECK:STDOUT: %Class => constants.%Class.06a -// CHECK:STDOUT: %pattern_type.loc7_10 => constants.%pattern_type.cea +// CHECK:STDOUT: %pattern_type.loc7_14 => constants.%pattern_type.cea // CHECK:STDOUT: %T.binding.as_type => constants.%i32 // CHECK:STDOUT: %.loc7_27.2 => constants.%.ff5 -// CHECK:STDOUT: %pattern_type.loc7_24 => constants.%pattern_type.7ce +// CHECK:STDOUT: %pattern_type.loc7_27 => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc7 => constants.%complete_type.1ec @@ -345,11 +345,11 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: specific @Class.GetAddr(constants.%Copy.facet.de4) { // CHECK:STDOUT: %T => constants.%Copy.facet.de4 // CHECK:STDOUT: %Class => constants.%Class.06a -// CHECK:STDOUT: %pattern_type.loc13_18 => constants.%pattern_type.cea +// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.cea // CHECK:STDOUT: %T.binding.as_type => constants.%i32 // CHECK:STDOUT: %ptr.loc13_36.1 => constants.%ptr.235 // CHECK:STDOUT: %.loc13_36.1 => constants.%.605 -// CHECK:STDOUT: %pattern_type.loc13_32 => constants.%pattern_type.fe8 +// CHECK:STDOUT: %pattern_type.loc13_36 => constants.%pattern_type.fe8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_22 => constants.%complete_type.1ec diff --git a/toolchain/check/testdata/class/generic/member_inline.carbon b/toolchain/check/testdata/class/generic/member_inline.carbon index e299874d022f..33e66e23957a 100644 --- a/toolchain/check/testdata/class/generic/member_inline.carbon +++ b/toolchain/check/testdata/class/generic/member_inline.carbon @@ -113,10 +113,10 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] { -// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc6_17.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_17: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.035)] // CHECK:STDOUT: %T.as_type.loc6_17: type = facet_access_type %T.ref.loc6_17 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -133,10 +133,10 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %return: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: @Class.%Class.G.type (%Class.G.type) = fn_decl @Class.G [symbolic = @Class.%Class.G (constants.%Class.G)] { -// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc10_8 (%pattern_type.893) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc10_8 (%pattern_type.893) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc10_22 (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc10_22 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc10_12 (%pattern_type.893) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc10_12 (%pattern_type.893) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc10_25 (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc10_25 (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc10_25.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.035)] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -197,10 +197,10 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: generic fn @Class.G(@Class.%T.loc5_13.2: %Copy.type) { // CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.035)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %pattern_type.loc10_8: type = pattern_type %Class [symbolic = %pattern_type.loc10_8 (constants.%pattern_type.893)] +// CHECK:STDOUT: %pattern_type.loc10_12: type = pattern_type %Class [symbolic = %pattern_type.loc10_12 (constants.%pattern_type.893)] // CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %.loc10_25.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc10_25.2 (constants.%.076a48.2)] -// CHECK:STDOUT: %pattern_type.loc10_22: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc10_22 (constants.%pattern_type.9b9f0c.2)] +// CHECK:STDOUT: %pattern_type.loc10_25: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc10_25 (constants.%pattern_type.9b9f0c.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class [symbolic = %require_complete.loc10 (constants.%require_complete.904)] @@ -254,10 +254,10 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: specific @Class.G(constants.%T.035) { // CHECK:STDOUT: %T => constants.%T.035 // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %pattern_type.loc10_8 => constants.%pattern_type.893 +// CHECK:STDOUT: %pattern_type.loc10_12 => constants.%pattern_type.893 // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %.loc10_25.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc10_22 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %pattern_type.loc10_25 => constants.%pattern_type.9b9f0c.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_member_inline_missing_self_dot.carbon diff --git a/toolchain/check/testdata/class/generic/member_lookup.carbon b/toolchain/check/testdata/class/generic/member_lookup.carbon index 1b4483e9bb7c..0ef77ca33f02 100644 --- a/toolchain/check/testdata/class/generic/member_lookup.carbon +++ b/toolchain/check/testdata/class/generic/member_lookup.carbon @@ -164,17 +164,17 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %T.loc13_18.1 => constants.%T.035 // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %Derived.loc13_45.1 => constants.%Derived.ad7 -// CHECK:STDOUT: %pattern_type.loc13_33 => constants.%pattern_type.d85 +// CHECK:STDOUT: %pattern_type.loc13_34 => constants.%pattern_type.d85 // CHECK:STDOUT: %.loc13_51.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc13_48 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %pattern_type.loc13_51 => constants.%pattern_type.9b9f0c.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessBase(constants.%T.035) { // CHECK:STDOUT: %T.loc19_15.1 => constants.%T.035 // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %Derived.loc19_42.1 => constants.%Derived.ad7 -// CHECK:STDOUT: %pattern_type.loc19_30 => constants.%pattern_type.d85 +// CHECK:STDOUT: %pattern_type.loc19_31 => constants.%pattern_type.d85 // CHECK:STDOUT: %.loc19_48.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc19_45 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %pattern_type.loc19_48 => constants.%pattern_type.9b9f0c.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_out_of_line.carbon b/toolchain/check/testdata/class/generic/member_out_of_line.carbon index eada0f708498..94e0ca116521 100644 --- a/toolchain/check/testdata/class/generic/member_out_of_line.carbon +++ b/toolchain/check/testdata/class/generic/member_out_of_line.carbon @@ -162,10 +162,10 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %T.loc5_13.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_13.1 (constants.%T.035)] // CHECK:STDOUT: } // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [symbolic = constants.%Class.F] { -// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc11_36.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_18: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: @@ -188,10 +188,10 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %return.loc11: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param.loc11 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [symbolic = constants.%Class.G] { -// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.893) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.893) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.893) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.893) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc15_44.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_18: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: @@ -231,10 +231,10 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] { -// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc11_36.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_17: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T.loc6 (constants.%T.035)] // CHECK:STDOUT: %T.as_type.loc6_17: type = facet_access_type %T.ref.loc6_17 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -251,10 +251,10 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %return.loc6: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: @Class.%Class.G.type (%Class.G.type) = fn_decl @Class.G [symbolic = @Class.%Class.G (constants.%Class.G)] { -// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.893) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.893) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.893) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.893) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc15_44.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc7: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T.loc7 (constants.%T.035)] // CHECK:STDOUT: %T.as_type.loc7: type = facet_access_type %T.ref.loc7 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -315,10 +315,10 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: generic fn @Class.G(@Class.%T.loc5_13.2: %Copy.type) { // CHECK:STDOUT: %T.loc7: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc7 (constants.%T.035)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc7) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %pattern_type.loc7_8: type = pattern_type %Class [symbolic = %pattern_type.loc7_8 (constants.%pattern_type.893)] +// CHECK:STDOUT: %pattern_type.loc7_12: type = pattern_type %Class [symbolic = %pattern_type.loc7_12 (constants.%pattern_type.893)] // CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc7 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %.loc7_25.1: Core.Form = init_form %T.binding.as_type [symbolic = %.loc7_25.1 (constants.%.076a48.2)] -// CHECK:STDOUT: %pattern_type.loc7_22: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc7_22 (constants.%pattern_type.9b9f0c.2)] +// CHECK:STDOUT: %pattern_type.loc7_25: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc7_25 (constants.%pattern_type.9b9f0c.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc15: = require_complete_type %Class [symbolic = %require_complete.loc15 (constants.%require_complete.904)] @@ -372,10 +372,10 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: specific @Class.G(constants.%T.035) { // CHECK:STDOUT: %T.loc7 => constants.%T.035 // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %pattern_type.loc7_8 => constants.%pattern_type.893 +// CHECK:STDOUT: %pattern_type.loc7_12 => constants.%pattern_type.893 // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %.loc7_25.1 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc7_22 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %pattern_type.loc7_25 => constants.%pattern_type.9b9f0c.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nested.carbon @@ -411,10 +411,10 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %T.loc5_9.2: type = symbolic_binding T, 0 [symbolic = %T.loc5_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [symbolic = constants.%B.F] { -// CHECK:STDOUT: %self.patt: @B.F.%pattern_type.loc7_10 (%pattern_type.830) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @B.F.%pattern_type.loc7_10 (%pattern_type.830) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %a.patt: @B.F.%pattern_type.loc7_22 (%pattern_type.51d) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @B.F.%pattern_type.loc7_22 (%pattern_type.51d) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @B.F.%pattern_type.loc7_14 (%pattern_type.830) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @B.F.%pattern_type.loc7_14 (%pattern_type.830) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @B.F.%pattern_type.loc7_23 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @B.F.%pattern_type.loc7_23 (%pattern_type.51d) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_10.1: type = splice_block %.loc11_10.2 [concrete = type] { // CHECK:STDOUT: @@ -476,10 +476,10 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %B.F.decl: @B.%B.F.type (%B.F.type) = fn_decl @B.F [symbolic = @B.%B.F (constants.%B.F)] { -// CHECK:STDOUT: %self.patt: @B.F.%pattern_type.loc7_10 (%pattern_type.830) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @B.F.%pattern_type.loc7_10 (%pattern_type.830) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %a.patt: @B.F.%pattern_type.loc7_22 (%pattern_type.51d) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @B.F.%pattern_type.loc7_22 (%pattern_type.51d) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @B.F.%pattern_type.loc7_14 (%pattern_type.830) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @B.F.%pattern_type.loc7_14 (%pattern_type.830) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @B.F.%pattern_type.loc7_23 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @B.F.%pattern_type.loc7_23 (%pattern_type.51d) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc7: @B.F.%B (%B) = value_param call_param0 // CHECK:STDOUT: %.loc7_16.1: type = splice_block %Self.ref.loc7 [symbolic = %B (constants.%B)] { @@ -505,8 +505,8 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %T.loc7: type = symbolic_binding T, 0 [symbolic = %T.loc7 (constants.%T)] // CHECK:STDOUT: %_.loc7: @B.F.%T.loc7 (%T) = symbolic_binding _, 1 [symbolic = %_.loc7 (constants.%_)] // CHECK:STDOUT: %B: type = class_type @B, @B(%T.loc7, %_.loc7) [symbolic = %B (constants.%B)] -// CHECK:STDOUT: %pattern_type.loc7_10: type = pattern_type %B [symbolic = %pattern_type.loc7_10 (constants.%pattern_type.830)] -// CHECK:STDOUT: %pattern_type.loc7_22: type = pattern_type %T.loc7 [symbolic = %pattern_type.loc7_22 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc7_14: type = pattern_type %B [symbolic = %pattern_type.loc7_14 (constants.%pattern_type.830)] +// CHECK:STDOUT: %pattern_type.loc7_23: type = pattern_type %T.loc7 [symbolic = %pattern_type.loc7_23 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc11_38: = require_complete_type %B [symbolic = %require_complete.loc11_38 (constants.%require_complete.7cc)] @@ -540,7 +540,7 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %T.loc7 => constants.%T // CHECK:STDOUT: %_.loc7 => constants.%_ // CHECK:STDOUT: %B => constants.%B -// CHECK:STDOUT: %pattern_type.loc7_10 => constants.%pattern_type.830 -// CHECK:STDOUT: %pattern_type.loc7_22 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc7_14 => constants.%pattern_type.830 +// CHECK:STDOUT: %pattern_type.loc7_23 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_type.carbon b/toolchain/check/testdata/class/generic/member_type.carbon index 78bb780f54e6..08b29160696c 100644 --- a/toolchain/check/testdata/class/generic/member_type.carbon +++ b/toolchain/check/testdata/class/generic/member_type.carbon @@ -180,8 +180,8 @@ fn Test() -> i32 { // CHECK:STDOUT: %T.loc4_13.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc4_13.1 (constants.%T.035)] // CHECK:STDOUT: } // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc12 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc12: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc12: Core.Form = init_form %i32.loc12 [concrete = constants.%.ff5] @@ -201,10 +201,10 @@ fn Test() -> i32 { // CHECK:STDOUT: class { // CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [symbolic = @Outer.%Inner (constants.%Inner.bcf)] {} {} // CHECK:STDOUT: %Outer.F.decl: @Outer.%Outer.F.type (%Outer.F.type.2fb) = fn_decl @Outer.F [symbolic = @Outer.%Outer.F (constants.%Outer.F.5e3)] { -// CHECK:STDOUT: %n.patt: @Outer.F.%pattern_type.loc9_8 (%pattern_type.9b9f0c.2) = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: @Outer.F.%pattern_type.loc9_8 (%pattern_type.9b9f0c.2) = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: @Outer.F.%pattern_type.loc9_14 (%pattern_type.611) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Outer.F.%pattern_type.loc9_14 (%pattern_type.611) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: @Outer.F.%pattern_type.loc9_9 (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Outer.F.%pattern_type.loc9_9 (%pattern_type.9b9f0c.2) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Outer.F.%pattern_type.loc9_17 (%pattern_type.611) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Outer.F.%pattern_type.loc9_17 (%pattern_type.611) = return_slot_pattern %return.param_patt, %Inner.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_17.2: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%T.035) [symbolic = %Inner (constants.%Inner.bcf)] // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc9_17.2 [symbolic = %Inner (constants.%Inner.bcf)] @@ -258,10 +258,10 @@ fn Test() -> i32 { // CHECK:STDOUT: generic fn @Outer.F(@Outer.%T.loc4_13.2: %Copy.type) { // CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.035)] // CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc9_8: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9_8 (constants.%pattern_type.9b9f0c.2)] +// CHECK:STDOUT: %pattern_type.loc9_9: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9_9 (constants.%pattern_type.9b9f0c.2)] // CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T) [symbolic = %Inner (constants.%Inner.bcf)] // CHECK:STDOUT: %.loc9_17.1: Core.Form = init_form %Inner [symbolic = %.loc9_17.1 (constants.%.d79)] -// CHECK:STDOUT: %pattern_type.loc9_14: type = pattern_type %Inner [symbolic = %pattern_type.loc9_14 (constants.%pattern_type.611)] +// CHECK:STDOUT: %pattern_type.loc9_17: type = pattern_type %Inner [symbolic = %pattern_type.loc9_17 (constants.%pattern_type.611)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_9: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_9 (constants.%require_complete.67c)] @@ -367,10 +367,10 @@ fn Test() -> i32 { // CHECK:STDOUT: specific @Outer.F(constants.%T.035) { // CHECK:STDOUT: %T => constants.%T.035 // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc9_8 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %pattern_type.loc9_9 => constants.%pattern_type.9b9f0c.2 // CHECK:STDOUT: %Inner => constants.%Inner.bcf // CHECK:STDOUT: %.loc9_17.1 => constants.%.d79 -// CHECK:STDOUT: %pattern_type.loc9_14 => constants.%pattern_type.611 +// CHECK:STDOUT: %pattern_type.loc9_17 => constants.%pattern_type.611 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%Copy.facet.de4) { @@ -396,10 +396,10 @@ fn Test() -> i32 { // CHECK:STDOUT: specific @Outer.F(constants.%Copy.facet.de4) { // CHECK:STDOUT: %T => constants.%Copy.facet.de4 // CHECK:STDOUT: %T.binding.as_type => constants.%i32 -// CHECK:STDOUT: %pattern_type.loc9_8 => constants.%pattern_type.7ce +// CHECK:STDOUT: %pattern_type.loc9_9 => constants.%pattern_type.7ce // CHECK:STDOUT: %Inner => constants.%Inner.74c // CHECK:STDOUT: %.loc9_17.1 => constants.%.42e -// CHECK:STDOUT: %pattern_type.loc9_14 => constants.%pattern_type.35b +// CHECK:STDOUT: %pattern_type.loc9_17 => constants.%pattern_type.35b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_9 => constants.%complete_type.f8a @@ -528,8 +528,8 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc22 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc22: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc22: Core.Form = init_form %i32.loc22 [concrete = constants.%.ff5] @@ -550,10 +550,10 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Inner.WithSelf.F.decl: @Inner.WithSelf.%Inner.WithSelf.F.type (%Inner.WithSelf.F.type.675) = fn_decl @Inner.WithSelf.F [symbolic = @Inner.WithSelf.%Inner.WithSelf.F (constants.%Inner.WithSelf.F.06f)] { -// CHECK:STDOUT: %self.patt: @Inner.WithSelf.F.%pattern_type.loc6_10 (%pattern_type.72a) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_10 (%pattern_type.72a) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @Inner.WithSelf.F.%pattern_type.loc6_24 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_24 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_14 (%pattern_type.72a) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Inner.WithSelf.F.%pattern_type.loc6_14 (%pattern_type.72a) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_27 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Inner.WithSelf.F.%pattern_type.loc6_27 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc6_27.2: Core.Form = init_form %T.ref [symbolic = %.loc6_27.1 (constants.%.184)] @@ -594,10 +594,10 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: impl: %Self.ref as %Inner.ref { // CHECK:STDOUT: %C.as.Inner.impl.F.decl: @C.as.Inner.impl.%C.as.Inner.impl.F.type (%C.as.Inner.impl.F.type.72e) = fn_decl @C.as.Inner.impl.F [symbolic = @C.as.Inner.impl.%C.as.Inner.impl.F (constants.%C.as.Inner.impl.F.28d)] { -// CHECK:STDOUT: %self.patt: @C.as.Inner.impl.F.%pattern_type.loc11_12 (%pattern_type.fe7) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @C.as.Inner.impl.F.%pattern_type.loc11_12 (%pattern_type.fe7) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @C.as.Inner.impl.F.%pattern_type.loc11_23 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @C.as.Inner.impl.F.%pattern_type.loc11_23 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @C.as.Inner.impl.F.%pattern_type.loc11_16 (%pattern_type.fe7) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @C.as.Inner.impl.F.%pattern_type.loc11_16 (%pattern_type.fe7) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @C.as.Inner.impl.F.%pattern_type.loc11_26 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @C.as.Inner.impl.F.%pattern_type.loc11_26 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc11_26.3: Core.Form = init_form %T.ref [symbolic = %.loc11_26.2 (constants.%.184)] @@ -624,10 +624,10 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: impl @D.as.Inner.impl: %Self.ref as %Inner.ref { // CHECK:STDOUT: %D.as.Inner.impl.F.decl: %D.as.Inner.impl.F.type = fn_decl @D.as.Inner.impl.F [concrete = constants.%D.as.Inner.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.9c8 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9c8 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9c8 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9c8 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc18: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -710,9 +710,9 @@ fn Test() -> i32 { // CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.6ef)] // CHECK:STDOUT: %Self: @Inner.WithSelf.F.%Inner.type (%Inner.type.6ef) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.d55)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.534)] -// CHECK:STDOUT: %pattern_type.loc6_10: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc6_10 (constants.%pattern_type.72a)] +// CHECK:STDOUT: %pattern_type.loc6_14: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc6_14 (constants.%pattern_type.72a)] // CHECK:STDOUT: %.loc6_27.1: Core.Form = init_form %T [symbolic = %.loc6_27.1 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc6_24: type = pattern_type %T [symbolic = %pattern_type.loc6_24 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc6_27: type = pattern_type %T [symbolic = %pattern_type.loc6_27 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Inner.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.534)) -> out %return.param: @Inner.WithSelf.F.%T (%T); // CHECK:STDOUT: } @@ -720,9 +720,9 @@ fn Test() -> i32 { // CHECK:STDOUT: generic fn @C.as.Inner.impl.F(@Outer.%T.loc4_13.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.131)] -// CHECK:STDOUT: %pattern_type.loc11_12: type = pattern_type %C [symbolic = %pattern_type.loc11_12 (constants.%pattern_type.fe7)] +// CHECK:STDOUT: %pattern_type.loc11_16: type = pattern_type %C [symbolic = %pattern_type.loc11_16 (constants.%pattern_type.fe7)] // CHECK:STDOUT: %.loc11_26.2: Core.Form = init_form %T [symbolic = %.loc11_26.2 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc11_23: type = pattern_type %T [symbolic = %pattern_type.loc11_23 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc11_26: type = pattern_type %T [symbolic = %pattern_type.loc11_26 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc11_16: = require_complete_type %C [symbolic = %require_complete.loc11_16 (constants.%require_complete.4fd)] @@ -829,9 +829,9 @@ fn Test() -> i32 { // CHECK:STDOUT: %Inner.type => constants.%Inner.type.6ef // CHECK:STDOUT: %Self => constants.%Self.d55 // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.534 -// CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.72a +// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.72a // CHECK:STDOUT: %.loc6_27.1 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { @@ -853,9 +853,9 @@ fn Test() -> i32 { // CHECK:STDOUT: specific @C.as.Inner.impl.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %C => constants.%C.131 -// CHECK:STDOUT: %pattern_type.loc11_12 => constants.%pattern_type.fe7 +// CHECK:STDOUT: %pattern_type.loc11_16 => constants.%pattern_type.fe7 // CHECK:STDOUT: %.loc11_26.2 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc11_23 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc11_26 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner.WithSelf(constants.%T, constants.%Inner.facet.921) { @@ -874,9 +874,9 @@ fn Test() -> i32 { // CHECK:STDOUT: %Inner.type => constants.%Inner.type.6ef // CHECK:STDOUT: %Self => constants.%Inner.facet.921 // CHECK:STDOUT: %Self.binding.as_type => constants.%C.131 -// CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.fe7 +// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.fe7 // CHECK:STDOUT: %.loc6_27.1 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner.WithSelf(constants.%T, constants.%Inner.facet.f78) { @@ -895,9 +895,9 @@ fn Test() -> i32 { // CHECK:STDOUT: %Inner.type => constants.%Inner.type.6ef // CHECK:STDOUT: %Self => constants.%Inner.facet.f78 // CHECK:STDOUT: %Self.binding.as_type => constants.%C.131 -// CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.fe7 +// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.fe7 // CHECK:STDOUT: %.loc6_27.1 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%i32) { @@ -946,9 +946,9 @@ fn Test() -> i32 { // CHECK:STDOUT: %Inner.type => constants.%Inner.type.94a // CHECK:STDOUT: %Self => constants.%Inner.facet.dc9 // CHECK:STDOUT: %Self.binding.as_type => constants.%D -// CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.9c8 +// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.9c8 // CHECK:STDOUT: %.loc6_27.1 => constants.%.ff5 -// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.7ce +// CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.Inner.impl(constants.%i32) { @@ -977,9 +977,9 @@ fn Test() -> i32 { // CHECK:STDOUT: specific @C.as.Inner.impl.F(constants.%i32) { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: %C => constants.%C.d3f -// CHECK:STDOUT: %pattern_type.loc11_12 => constants.%pattern_type.129 +// CHECK:STDOUT: %pattern_type.loc11_16 => constants.%pattern_type.129 // CHECK:STDOUT: %.loc11_26.2 => constants.%.ff5 -// CHECK:STDOUT: %pattern_type.loc11_23 => constants.%pattern_type.7ce +// CHECK:STDOUT: %pattern_type.loc11_26 => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc11_16 => constants.%complete_type.357 @@ -1002,8 +1002,8 @@ fn Test() -> i32 { // CHECK:STDOUT: %Inner.type => constants.%Inner.type.94a // CHECK:STDOUT: %Self => constants.%Inner.facet.ac9 // CHECK:STDOUT: %Self.binding.as_type => constants.%C.d3f -// CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.129 +// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.129 // CHECK:STDOUT: %.loc6_27.1 => constants.%.ff5 -// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.7ce +// CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/method_deduce.carbon b/toolchain/check/testdata/class/generic/method_deduce.carbon index 084e73d8dd7a..15afdfe83d1a 100644 --- a/toolchain/check/testdata/class/generic/method_deduce.carbon +++ b/toolchain/check/testdata/class/generic/method_deduce.carbon @@ -114,10 +114,10 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %T.loc18_13.2: type = symbolic_binding T, 0 [symbolic = %T.loc18_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] { -// CHECK:STDOUT: %c.patt: %pattern_type.36c = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.36c = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.b74 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.b74 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.36c = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.36c = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b74 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b74 = return_slot_pattern %return.param_patt, %.loc23_43.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref.loc23_39: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %B.ref.loc23: type = name_ref B, file.%B.decl [concrete = constants.%B] @@ -135,10 +135,10 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %return: ref %tuple.type.e87 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethodWithNonDeducedParam.decl: %CallGenericMethodWithNonDeducedParam.type = fn_decl @CallGenericMethodWithNonDeducedParam [concrete = constants.%CallGenericMethodWithNonDeducedParam] { -// CHECK:STDOUT: %c.patt: %pattern_type.36c = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.36c = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.b74 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.b74 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.36c = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.36c = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b74 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b74 = return_slot_pattern %return.param_patt, %.loc27_62.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref.loc27_58: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %B.ref.loc27: type = name_ref B, file.%B.decl [concrete = constants.%B] @@ -185,8 +185,8 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: class { // CHECK:STDOUT: %Class.Get.decl: @Class.%Class.Get.type (%Class.Get.type.ab7) = fn_decl @Class.Get [symbolic = @Class.%Class.Get (constants.%Class.Get.ecd)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %return.patt: @Class.Get.%pattern_type (%pattern_type.eee) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.Get.%pattern_type (%pattern_type.eee) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.Get.%pattern_type (%pattern_type.eee) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.Get.%pattern_type (%pattern_type.eee) = return_slot_pattern %return.param_patt, %.loc19_28.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc18_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %U.ref.loc19_27: type = name_ref U, %U.loc19_10.2 [symbolic = %U.loc19_10.1 (constants.%U)] @@ -202,11 +202,11 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %return: ref @Class.Get.%tuple.type (%tuple.type.a5e) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.GetNoDeduce.decl: @Class.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.cf2) = fn_decl @Class.GetNoDeduce [symbolic = @Class.%Class.GetNoDeduce (constants.%Class.GetNoDeduce.1a5)] { -// CHECK:STDOUT: %x.patt: @Class.GetNoDeduce.%pattern_type.loc20_18 (%pattern_type.51d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @Class.GetNoDeduce.%pattern_type.loc20_18 (%pattern_type.51d) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @Class.GetNoDeduce.%pattern_type.loc20_19 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Class.GetNoDeduce.%pattern_type.loc20_19 (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %return.patt: @Class.GetNoDeduce.%pattern_type.loc20_34 (%pattern_type.eee) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.GetNoDeduce.%pattern_type.loc20_34 (%pattern_type.eee) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.GetNoDeduce.%pattern_type.loc20_42 (%pattern_type.eee) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.GetNoDeduce.%pattern_type.loc20_42 (%pattern_type.eee) = return_slot_pattern %return.param_patt, %.loc20_42.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc20_38: type = name_ref T, @Class.%T.loc18_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %U.ref.loc20_41: type = name_ref U, %U.loc20_24.2 [symbolic = %U.loc20_24.1 (constants.%U)] @@ -263,12 +263,12 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Class.GetNoDeduce(@Class.%T.loc18_13.2: type, %U.loc20_24.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %pattern_type.loc20_18: type = pattern_type %T [symbolic = %pattern_type.loc20_18 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc20_19: type = pattern_type %T [symbolic = %pattern_type.loc20_19 (constants.%pattern_type.51d)] // CHECK:STDOUT: %U.loc20_24.1: type = symbolic_binding U, 1 [symbolic = %U.loc20_24.1 (constants.%U)] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%T, %U.loc20_24.1) [symbolic = %tuple (constants.%tuple.4b9)] // CHECK:STDOUT: %tuple.type: type = tuple_type (%T, %U.loc20_24.1) [symbolic = %tuple.type (constants.%tuple.type.a5e)] // CHECK:STDOUT: %.loc20_42.2: Core.Form = init_form %tuple.type [symbolic = %.loc20_42.2 (constants.%.f18)] -// CHECK:STDOUT: %pattern_type.loc20_34: type = pattern_type %tuple.type [symbolic = %pattern_type.loc20_34 (constants.%pattern_type.eee)] +// CHECK:STDOUT: %pattern_type.loc20_42: type = pattern_type %tuple.type [symbolic = %pattern_type.loc20_42 (constants.%pattern_type.eee)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic = %require_complete (constants.%require_complete.944)] @@ -350,12 +350,12 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.GetNoDeduce(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %pattern_type.loc20_18 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc20_19 => constants.%pattern_type.51d // CHECK:STDOUT: %U.loc20_24.1 => constants.%U // CHECK:STDOUT: %tuple => constants.%tuple.4b9 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.a5e // CHECK:STDOUT: %.loc20_42.2 => constants.%.f18 -// CHECK:STDOUT: %pattern_type.loc20_34 => constants.%pattern_type.eee +// CHECK:STDOUT: %pattern_type.loc20_42 => constants.%pattern_type.eee // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.944 @@ -391,12 +391,12 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.GetNoDeduce(constants.%A, constants.%B) { // CHECK:STDOUT: %T => constants.%A -// CHECK:STDOUT: %pattern_type.loc20_18 => constants.%pattern_type.1ab +// CHECK:STDOUT: %pattern_type.loc20_19 => constants.%pattern_type.1ab // CHECK:STDOUT: %U.loc20_24.1 => constants.%B // CHECK:STDOUT: %tuple => constants.%tuple.5bc // CHECK:STDOUT: %tuple.type => constants.%tuple.type.e87 // CHECK:STDOUT: %.loc20_42.2 => constants.%.3aa -// CHECK:STDOUT: %pattern_type.loc20_34 => constants.%pattern_type.b74 +// CHECK:STDOUT: %pattern_type.loc20_42 => constants.%pattern_type.b74 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 diff --git a/toolchain/check/testdata/class/generic/self.carbon b/toolchain/check/testdata/class/generic/self.carbon index 16c4a6f0d3b1..3156e7ff8011 100644 --- a/toolchain/check/testdata/class/generic/self.carbon +++ b/toolchain/check/testdata/class/generic/self.carbon @@ -97,8 +97,8 @@ class Class(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Class.MakeSelf.decl: @Class.%Class.MakeSelf.type (%Class.MakeSelf.type) = fn_decl @Class.MakeSelf [symbolic = @Class.%Class.MakeSelf (constants.%Class.MakeSelf)] { -// CHECK:STDOUT: %return.patt: @Class.MakeSelf.%pattern_type (%pattern_type.466) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.MakeSelf.%pattern_type (%pattern_type.466) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.MakeSelf.%pattern_type (%pattern_type.466) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.MakeSelf.%pattern_type (%pattern_type.466) = return_slot_pattern %return.param_patt, %Self.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18_20.2: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc18_20.2 [symbolic = %Class (constants.%Class)] @@ -107,8 +107,8 @@ class Class(T:! type) { // CHECK:STDOUT: %return: ref @Class.MakeSelf.%Class (%Class) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.MakeClass.decl: @Class.%Class.MakeClass.type (%Class.MakeClass.type) = fn_decl @Class.MakeClass [symbolic = @Class.%Class.MakeClass (constants.%Class.MakeClass)] { -// CHECK:STDOUT: %return.patt: @Class.MakeClass.%pattern_type (%pattern_type.466) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.MakeClass.%pattern_type (%pattern_type.466) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.MakeClass.%pattern_type (%pattern_type.466) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.MakeClass.%pattern_type (%pattern_type.466) = return_slot_pattern %return.param_patt, %Class.loc19_28.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_13.2 [symbolic = %T (constants.%T)] diff --git a/toolchain/check/testdata/class/import.carbon b/toolchain/check/testdata/class/import.carbon index b1f617a67520..1b1fa233bc11 100644 --- a/toolchain/check/testdata/class/import.carbon +++ b/toolchain/check/testdata/class/import.carbon @@ -122,16 +122,16 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: class @ForwardDeclared { // CHECK:STDOUT: %ForwardDeclared.F.decl: %ForwardDeclared.F.type = fn_decl @ForwardDeclared.F [concrete = constants.%ForwardDeclared.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.af1 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.af1 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.af1 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.af1 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %ForwardDeclared = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%ForwardDeclared [concrete = constants.%ForwardDeclared] // CHECK:STDOUT: %self: %ForwardDeclared = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %ForwardDeclared.G.decl: %ForwardDeclared.G.type = fn_decl @ForwardDeclared.G [concrete = constants.%ForwardDeclared.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.af1 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.af1 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.af1 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.af1 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %ForwardDeclared = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%ForwardDeclared [concrete = constants.%ForwardDeclared] diff --git a/toolchain/check/testdata/class/inheritance/base.carbon b/toolchain/check/testdata/class/inheritance/base.carbon index 3f1d88a51df0..86a96ba404a4 100644 --- a/toolchain/check/testdata/class/inheritance/base.carbon +++ b/toolchain/check/testdata/class/inheritance/base.carbon @@ -147,8 +147,8 @@ class Derived { // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %return.patt: %pattern_type.db9 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.db9 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.db9 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.db9 = return_slot_pattern %return.param_patt, %Derived.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: %.loc13: Core.Form = init_form %Derived.ref [concrete = constants.%.c4f] @@ -156,10 +156,10 @@ class Derived { // CHECK:STDOUT: %return: ref %Derived = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] { -// CHECK:STDOUT: %d.patt: %pattern_type.db9 = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.db9 = value_param_pattern %d.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.db9 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.db9 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern %return.param_patt, %.loc17_35.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc17_27: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc17_32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/class/inheritance/base_field.carbon b/toolchain/check/testdata/class/inheritance/base_field.carbon index 427832172c68..9c5a592c5818 100644 --- a/toolchain/check/testdata/class/inheritance/base_field.carbon +++ b/toolchain/check/testdata/class/inheritance/base_field.carbon @@ -89,10 +89,10 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] { -// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.0dd = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern %return.param_patt, %ptr.loc28_30 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %ptr.loc28_30: type = ptr_type %i32 [concrete = constants.%ptr.235] diff --git a/toolchain/check/testdata/class/inheritance/base_method.carbon b/toolchain/check/testdata/class/inheritance/base_method.carbon index d53cc74823a5..e1ea9cffe96a 100644 --- a/toolchain/check/testdata/class/inheritance/base_method.carbon +++ b/toolchain/check/testdata/class/inheritance/base_method.carbon @@ -95,8 +95,8 @@ fn Call(p: Derived*) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.101 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.101 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc21: ref %Base = ref_param call_param0 // CHECK:STDOUT: %Self.ref.loc21: type = name_ref Self, constants.%Base [concrete = constants.%Base] @@ -104,8 +104,8 @@ fn Call(p: Derived*) { // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] { -// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.0dd = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %ptr.f74 = value_param call_param0 // CHECK:STDOUT: %.loc29: type = splice_block %ptr [concrete = constants.%ptr.f74] { @@ -120,8 +120,8 @@ fn Call(p: Derived*) { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16: %Base.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.101 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.101 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc18: ref %Base = ref_param call_param0 // CHECK:STDOUT: %Self.ref.loc18: type = name_ref Self, constants.%Base [concrete = constants.%Base] diff --git a/toolchain/check/testdata/class/inheritance/base_method_qualified.carbon b/toolchain/check/testdata/class/inheritance/base_method_qualified.carbon index 75f894086554..7279fca48ecc 100644 --- a/toolchain/check/testdata/class/inheritance/base_method_qualified.carbon +++ b/toolchain/check/testdata/class/inheritance/base_method_qualified.carbon @@ -104,10 +104,10 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Derived.decl.loc22: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] { -// CHECK:STDOUT: %a.patt: %pattern_type.9f6 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.9f6 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9f6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc29: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -118,10 +118,10 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallIndirect.decl: %CallIndirect.type = fn_decl @CallIndirect [concrete = constants.%CallIndirect] { -// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.0dd = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc33_33: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -135,10 +135,10 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %PassDerivedToBase.decl: %PassDerivedToBase.type = fn_decl @PassDerivedToBase [concrete = constants.%PassDerivedToBase] { -// CHECK:STDOUT: %a.patt: %pattern_type.9f6 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.9f6 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9f6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc37: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -149,10 +149,10 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %PassDerivedToBaseIndirect.decl: %PassDerivedToBaseIndirect.type = fn_decl @PassDerivedToBaseIndirect [concrete = constants.%PassDerivedToBaseIndirect] { -// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.0dd = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc41_46: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -171,16 +171,16 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %.loc23: %Derived.elem = base_decl %Base.ref, element0 [concrete] // CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] // CHECK:STDOUT: %self: %Derived = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.G.decl: %Derived.G.type = fn_decl @Derived.G [concrete = constants.%Derived.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] @@ -200,10 +200,10 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.101 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc18: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -214,10 +214,10 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Base.G.decl: %Base.G.type = fn_decl @Base.G [concrete = constants.%Base.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc19: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/inheritance/base_method_shadow.carbon b/toolchain/check/testdata/class/inheritance/base_method_shadow.carbon index 8f862f1d6228..8a83ab2dada1 100644 --- a/toolchain/check/testdata/class/inheritance/base_method_shadow.carbon +++ b/toolchain/check/testdata/class/inheritance/base_method_shadow.carbon @@ -97,14 +97,14 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] { -// CHECK:STDOUT: %a.patt: %pattern_type.f29 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.f29 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.191 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.191 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.506 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.506 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.415 = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.415 = value_param_pattern %d.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.f29 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.f29 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.191 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.191 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.506 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.506 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.415 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.415 = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %ptr.643 = value_param call_param0 // CHECK:STDOUT: %.loc33_13: type = splice_block %ptr.loc33_13 [concrete = constants.%ptr.643] { @@ -135,8 +135,8 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %A.F.decl: %A.F.type = fn_decl @A.F [concrete = constants.%A.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.1ab = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1ab = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %A = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%A [concrete = constants.%A] @@ -154,8 +154,8 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc20: %B.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.1f4 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1f4 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %B = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B] @@ -176,8 +176,8 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc25: %C.elem = base_decl %B.ref, element0 [concrete] // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] diff --git a/toolchain/check/testdata/class/inheritance/derived_to_base.carbon b/toolchain/check/testdata/class/inheritance/derived_to_base.carbon index 8583c24d68a1..b3c6953e222e 100644 --- a/toolchain/check/testdata/class/inheritance/derived_to_base.carbon +++ b/toolchain/check/testdata/class/inheritance/derived_to_base.carbon @@ -214,10 +214,10 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %ConvertCToB.decl: %ConvertCToB.type = fn_decl @ConvertCToB [concrete = constants.%ConvertCToB] { -// CHECK:STDOUT: %p.patt: %pattern_type.506 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.191 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.191 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.506 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.191 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.191 = return_slot_pattern %return.param_patt, %ptr.loc19_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %ptr.loc19_27: type = ptr_type %B.ref [concrete = constants.%ptr.27c] @@ -232,10 +232,10 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: %return: ref %ptr.27c = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConvertBToA.decl: %ConvertBToA.type = fn_decl @ConvertBToA [concrete = constants.%ConvertBToA] { -// CHECK:STDOUT: %p.patt: %pattern_type.191 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.191 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f29 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.191 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.191 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f29 = return_slot_pattern %return.param_patt, %ptr.loc20_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %ptr.loc20_27: type = ptr_type %A.ref [concrete = constants.%ptr.643] @@ -250,10 +250,10 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: %return: ref %ptr.643 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConvertCToA.decl: %ConvertCToA.type = fn_decl @ConvertCToA [concrete = constants.%ConvertCToA] { -// CHECK:STDOUT: %p.patt: %pattern_type.506 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f29 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.506 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f29 = return_slot_pattern %return.param_patt, %ptr.loc21_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %ptr.loc21_27: type = ptr_type %A.ref [concrete = constants.%ptr.643] @@ -268,18 +268,18 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: %return: ref %ptr.643 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConvertValue.decl: %ConvertValue.type = fn_decl @ConvertValue [concrete = constants.%ConvertValue] { -// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: %C = value_binding c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConvertRef.decl: %ConvertRef.type = fn_decl @ConvertRef [concrete = constants.%ConvertRef] { -// CHECK:STDOUT: %c.patt: %pattern_type.506 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.506 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f29 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.506 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.506 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f29 = return_slot_pattern %return.param_patt, %ptr.loc27_26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref.loc27: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %ptr.loc27_26: type = ptr_type %A.ref.loc27 [concrete = constants.%ptr.643] diff --git a/toolchain/check/testdata/class/inheritance/import_base.carbon b/toolchain/check/testdata/class/inheritance/import_base.carbon index 9094ac9147fa..1c2876f658d8 100644 --- a/toolchain/check/testdata/class/inheritance/import_base.carbon +++ b/toolchain/check/testdata/class/inheritance/import_base.carbon @@ -84,16 +84,16 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.101 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Base = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base] // CHECK:STDOUT: %self: %Base = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %Base.Unused.decl: %Base.Unused.type = fn_decl @Base.Unused [concrete = constants.%Base.Unused] { -// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.101 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Base = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base] diff --git a/toolchain/check/testdata/class/inheritance/self_conversion.carbon b/toolchain/check/testdata/class/inheritance/self_conversion.carbon index 3eaa39efd590..a5b9889dd6c4 100644 --- a/toolchain/check/testdata/class/inheritance/self_conversion.carbon +++ b/toolchain/check/testdata/class/inheritance/self_conversion.carbon @@ -121,10 +121,10 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Derived.SelfBase.decl: %Derived.SelfBase.type = fn_decl @Derived.SelfBase [concrete = constants.%Derived.SelfBase] { -// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.101 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc26: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc26: Core.Form = init_form %i32.loc26 [concrete = constants.%.ff5] @@ -135,18 +135,18 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %return.loc26: ref %i32 = return_slot %return.param.loc26 // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.RefSelfBase.decl: %Derived.RefSelfBase.type = fn_decl @Derived.RefSelfBase [concrete = constants.%Derived.RefSelfBase] { -// CHECK:STDOUT: %self.patt: %pattern_type.101 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.101 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc30: ref %Base = ref_param call_param0 // CHECK:STDOUT: %Base.ref.loc30: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %self.loc30: ref %Base = ref_binding self, %self.param.loc30 // CHECK:STDOUT: } // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] { -// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.0dd = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc34_25: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -177,10 +177,10 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %.loc20: %Derived.elem = base_decl %Base.ref, element0 [concrete] // CHECK:STDOUT: %Derived.SelfBase.decl: %Derived.SelfBase.type = fn_decl @Derived.SelfBase [concrete = constants.%Derived.SelfBase] { -// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.101 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc22: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc22: Core.Form = init_form %i32.loc22 [concrete = constants.%.ff5] @@ -191,8 +191,8 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %return.loc22: ref %i32 = return_slot %return.param.loc22 // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.RefSelfBase.decl: %Derived.RefSelfBase.type = fn_decl @Derived.RefSelfBase [concrete = constants.%Derived.RefSelfBase] { -// CHECK:STDOUT: %self.patt: %pattern_type.101 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.101 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc23: ref %Base = ref_param call_param0 // CHECK:STDOUT: %Base.ref.loc23: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] diff --git a/toolchain/check/testdata/class/init.carbon b/toolchain/check/testdata/class/init.carbon index 30ebcac008cd..644deab86e78 100644 --- a/toolchain/check/testdata/class/init.carbon +++ b/toolchain/check/testdata/class/init.carbon @@ -95,12 +95,12 @@ fn MakeReorder(n: i32, next: Class*) -> Class { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %next.patt: %pattern_type.018 = value_binding_pattern next [concrete] -// CHECK:STDOUT: %next.param_patt: %pattern_type.018 = value_param_pattern %next.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %next.param_patt: %pattern_type.018 = value_param_pattern [concrete] +// CHECK:STDOUT: %next.patt: %pattern_type.018 = at_binding_pattern next, %next.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern %return.param_patt, %Class.ref.loc20_34 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref.loc20_34: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %.loc20_34: Core.Form = init_form %Class.ref.loc20_34 [concrete = constants.%.cff] @@ -117,12 +117,12 @@ fn MakeReorder(n: i32, next: Class*) -> Class { // CHECK:STDOUT: %return: ref %Class = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %MakeReorder.decl: %MakeReorder.type = fn_decl @MakeReorder [concrete = constants.%MakeReorder] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %next.patt: %pattern_type.018 = value_binding_pattern next [concrete] -// CHECK:STDOUT: %next.param_patt: %pattern_type.018 = value_param_pattern %next.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %next.param_patt: %pattern_type.018 = value_param_pattern [concrete] +// CHECK:STDOUT: %next.patt: %pattern_type.018 = at_binding_pattern next, %next.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern %return.param_patt, %Class.ref.loc24_41 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref.loc24_41: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %.loc24_41: Core.Form = init_form %Class.ref.loc24_41 [concrete = constants.%.cff] diff --git a/toolchain/check/testdata/class/init_nested.carbon b/toolchain/check/testdata/class/init_nested.carbon index adf443d8be6a..f4787d650d3a 100644 --- a/toolchain/check/testdata/class/init_nested.carbon +++ b/toolchain/check/testdata/class/init_nested.carbon @@ -73,8 +73,8 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [concrete = constants.%Inner] {} {} // CHECK:STDOUT: %MakeInner.decl: %MakeInner.type = fn_decl @MakeInner [concrete = constants.%MakeInner] { -// CHECK:STDOUT: %return.patt: %pattern_type.84b = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.84b = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.84b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.84b = return_slot_pattern %return.param_patt, %Inner.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, file.%Inner.decl [concrete = constants.%Inner] // CHECK:STDOUT: %.loc20: Core.Form = init_form %Inner.ref [concrete = constants.%.413] @@ -83,8 +83,8 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: } // CHECK:STDOUT: %Outer.decl: type = class_decl @Outer [concrete = constants.%Outer] {} {} // CHECK:STDOUT: %MakeOuter.decl: %MakeOuter.type = fn_decl @MakeOuter [concrete = constants.%MakeOuter] { -// CHECK:STDOUT: %return.patt: %pattern_type.9ae = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ae = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.9ae = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.9ae = return_slot_pattern %return.param_patt, %Outer.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer] // CHECK:STDOUT: %.loc27: Core.Form = init_form %Outer.ref [concrete = constants.%.b00] diff --git a/toolchain/check/testdata/class/local.carbon b/toolchain/check/testdata/class/local.carbon index a26706d6cd8d..078d5387c16c 100644 --- a/toolchain/check/testdata/class/local.carbon +++ b/toolchain/check/testdata/class/local.carbon @@ -116,8 +116,8 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %A.F.decl: %A.F.type = fn_decl @A.F [concrete = constants.%A.F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -134,8 +134,8 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: class @B { // CHECK:STDOUT: %B.Make.decl: %B.Make.type = fn_decl @B.Make [concrete = constants.%B.Make] { -// CHECK:STDOUT: %return.patt: %pattern_type.971 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.971 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.971 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.971 = return_slot_pattern %return.param_patt, %Self.ref.loc18 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc18: type = name_ref Self, constants.%B [concrete = constants.%B] // CHECK:STDOUT: %.loc18: Core.Form = init_form %Self.ref.loc18 [concrete = constants.%.18e] diff --git a/toolchain/check/testdata/class/method/generic_method.carbon b/toolchain/check/testdata/class/method/generic_method.carbon index d764d413a012..875ce78fe68a 100644 --- a/toolchain/check/testdata/class/method/generic_method.carbon +++ b/toolchain/check/testdata/class/method/generic_method.carbon @@ -63,10 +63,10 @@ fn Class(T:! type).F[unused self: Self](unused n: T) {} // CHECK:STDOUT: %T.loc15_13.2: type = symbolic_binding T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [symbolic = constants.%Class.F] { -// CHECK:STDOUT: %self.patt: @Class.F.%pattern_type.loc17_8 (%pattern_type.466) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Class.F.%pattern_type.loc17_8 (%pattern_type.466) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type.loc17_20 (%pattern_type.51d) = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type.loc17_20 (%pattern_type.51d) = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.F.%pattern_type.loc17_12 (%pattern_type.466) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.F.%pattern_type.loc17_12 (%pattern_type.466) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type.loc17_21 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type.loc17_21 (%pattern_type.51d) = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc20_14.1: type = splice_block %.loc20_14.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -101,10 +101,10 @@ fn Class(T:! type).F[unused self: Self](unused n: T) {} // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_13.2 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: %.loc16: @Class.%Class.elem (%Class.elem) = field_decl a, element0 [concrete] // CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] { -// CHECK:STDOUT: %self.patt: @Class.F.%pattern_type.loc17_8 (%pattern_type.466) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Class.F.%pattern_type.loc17_8 (%pattern_type.466) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type.loc17_20 (%pattern_type.51d) = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type.loc17_20 (%pattern_type.51d) = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.F.%pattern_type.loc17_12 (%pattern_type.466) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.F.%pattern_type.loc17_12 (%pattern_type.466) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type.loc17_21 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type.loc17_21 (%pattern_type.51d) = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc17: @Class.F.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc17_14.1: type = splice_block %Self.ref.loc17 [symbolic = %Class (constants.%Class)] { @@ -130,8 +130,8 @@ fn Class(T:! type).F[unused self: Self](unused n: T) {} // CHECK:STDOUT: generic fn @Class.F(@Class.%T.loc15_13.2: type) { // CHECK:STDOUT: %T.loc17: type = symbolic_binding T, 0 [symbolic = %T.loc17 (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc17) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %pattern_type.loc17_8: type = pattern_type %Class [symbolic = %pattern_type.loc17_8 (constants.%pattern_type.466)] -// CHECK:STDOUT: %pattern_type.loc17_20: type = pattern_type %T.loc17 [symbolic = %pattern_type.loc17_20 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc17_12: type = pattern_type %Class [symbolic = %pattern_type.loc17_12 (constants.%pattern_type.466)] +// CHECK:STDOUT: %pattern_type.loc17_21: type = pattern_type %T.loc17 [symbolic = %pattern_type.loc17_21 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc20_33: = require_complete_type %Class [symbolic = %require_complete.loc20_33 (constants.%require_complete.43d)] @@ -159,7 +159,7 @@ fn Class(T:! type).F[unused self: Self](unused n: T) {} // CHECK:STDOUT: specific @Class.F(constants.%T) { // CHECK:STDOUT: %T.loc17 => constants.%T // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %pattern_type.loc17_8 => constants.%pattern_type.466 -// CHECK:STDOUT: %pattern_type.loc17_20 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc17_12 => constants.%pattern_type.466 +// CHECK:STDOUT: %pattern_type.loc17_21 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/method/method.carbon b/toolchain/check/testdata/class/method/method.carbon index d1f908e0b661..a4ea7a9f30ec 100644 --- a/toolchain/check/testdata/class/method/method.carbon +++ b/toolchain/check/testdata/class/method/method.carbon @@ -187,10 +187,10 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc24: Core.Form = init_form %i32.loc24 [concrete = constants.%.ff5] @@ -201,10 +201,10 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return.loc24: ref %i32 = return_slot %return.param.loc24 // CHECK:STDOUT: } // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] { -// CHECK:STDOUT: %c.patt: %pattern_type.904 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.904 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.904 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc28: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -215,10 +215,10 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallAlias.decl: %CallAlias.type = fn_decl @CallAlias [concrete = constants.%CallAlias] { -// CHECK:STDOUT: %c.patt: %pattern_type.904 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.904 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.904 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc34: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -229,8 +229,8 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallOnConstBoundMethod.decl: %CallOnConstBoundMethod.type = fn_decl @CallOnConstBoundMethod [concrete = constants.%CallOnConstBoundMethod] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc38: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -238,8 +238,8 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallWithRef.decl: %CallWithRef.type = fn_decl @CallWithRef [concrete = constants.%CallWithRef] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc42: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -247,10 +247,10 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallFThroughPointer.decl: %CallFThroughPointer.type = fn_decl @CallFThroughPointer [concrete = constants.%CallFThroughPointer] { -// CHECK:STDOUT: %p.patt: %pattern_type.018 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.018 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc47_38: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -264,10 +264,10 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGThroughPointer.decl: %CallGThroughPointer.type = fn_decl @CallGThroughPointer [concrete = constants.%CallGThroughPointer] { -// CHECK:STDOUT: %p.patt: %pattern_type.018 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.018 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc51_38: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -281,8 +281,8 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern %return.param_patt, %Class.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %.loc55: Core.Form = init_form %Class.ref [concrete = constants.%.cff] @@ -290,8 +290,8 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return: ref %Class = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallFOnInitializingExpr.decl: %CallFOnInitializingExpr.type = fn_decl @CallFOnInitializingExpr [concrete = constants.%CallFOnInitializingExpr] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc57: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -299,8 +299,8 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGOnInitializingExpr.decl: %CallGOnInitializingExpr.type = fn_decl @CallGOnInitializingExpr [concrete = constants.%CallGOnInitializingExpr] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc61: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -311,10 +311,10 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16 [concrete = constants.%.ff5] @@ -325,10 +325,10 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return.loc16: ref %i32 = return_slot %return.param.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc17: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/method/static_method.carbon b/toolchain/check/testdata/class/method/static_method.carbon index f590f1487f05..4e4cfe3d41c4 100644 --- a/toolchain/check/testdata/class/method/static_method.carbon +++ b/toolchain/check/testdata/class/method/static_method.carbon @@ -77,8 +77,8 @@ fn Run() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc19: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -89,8 +89,8 @@ fn Run() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/nested.carbon b/toolchain/check/testdata/class/nested.carbon index 9be94a94f9a0..2cd40b0bbc3a 100644 --- a/toolchain/check/testdata/class/nested.carbon +++ b/toolchain/check/testdata/class/nested.carbon @@ -145,8 +145,8 @@ fn F(a: Outer*) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Outer.decl: type = class_decl @Outer [concrete = constants.%Outer] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.cd9 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.cd9 = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.cd9 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.cd9 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %ptr.56b = value_param call_param0 // CHECK:STDOUT: %.loc45: type = splice_block %ptr.loc45 [concrete = constants.%ptr.56b] { diff --git a/toolchain/check/testdata/class/nested_name.carbon b/toolchain/check/testdata/class/nested_name.carbon index 26d08c5ee93b..803c5beb26c0 100644 --- a/toolchain/check/testdata/class/nested_name.carbon +++ b/toolchain/check/testdata/class/nested_name.carbon @@ -103,10 +103,10 @@ fn G(o: Outer) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Outer.decl: type = class_decl @Outer [concrete = constants.%Outer] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %oi.patt: %pattern_type.86a = value_binding_pattern oi [concrete] -// CHECK:STDOUT: %oi.param_patt: %pattern_type.86a = value_param_pattern %oi.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %oi.param_patt: %pattern_type.86a = value_param_pattern [concrete] +// CHECK:STDOUT: %oi.patt: %pattern_type.86a = at_binding_pattern oi, %oi.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc21_26: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -120,8 +120,8 @@ fn G(o: Outer) { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %o.patt: %pattern_type.9ae = value_binding_pattern o [concrete] -// CHECK:STDOUT: %o.param_patt: %pattern_type.9ae = value_param_pattern %o.patt [concrete] +// CHECK:STDOUT: %o.param_patt: %pattern_type.9ae = value_param_pattern [concrete] +// CHECK:STDOUT: %o.patt: %pattern_type.9ae = at_binding_pattern o, %o.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %o.param: %Outer = value_param call_param0 // CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer] diff --git a/toolchain/check/testdata/class/partial/qualifier.carbon b/toolchain/check/testdata/class/partial/qualifier.carbon index c3d8e08912fa..0ea2c937f7e0 100644 --- a/toolchain/check/testdata/class/partial/qualifier.carbon +++ b/toolchain/check/testdata/class/partial/qualifier.carbon @@ -187,8 +187,8 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %.e97 = value_param call_param0 // CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.2 [concrete = constants.%.e97] { @@ -213,8 +213,8 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %.e97 = value_param call_param0 // CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.2 [concrete = constants.%.e97] { @@ -241,7 +241,6 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %p.patt: %pattern_type = ref_binding_pattern p [concrete] // CHECK:STDOUT: %p.param_patt: %pattern_type = var_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type = var_pattern %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: ref %.e97 = ref_param call_param0 // CHECK:STDOUT: %.loc6_13.1: type = splice_block %.loc6_13.2 [concrete = constants.%.e97] { @@ -266,8 +265,8 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %.e97 = value_param call_param0 // CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.e97] { @@ -292,8 +291,8 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %.d37 = value_param call_param0 // CHECK:STDOUT: %.loc13_9.1: type = splice_block %.loc13_9.2 [concrete = constants.%.d37] { @@ -318,8 +317,8 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %.e97 = value_param call_param0 // CHECK:STDOUT: %.loc13_9.1: type = splice_block %.loc13_9.2 [concrete = constants.%.e97] { @@ -347,8 +346,8 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %.42f = value_param call_param0 // CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.3 [concrete = constants.%.42f] { @@ -377,8 +376,8 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %.be9 = value_param call_param0 // CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.be9] { @@ -405,8 +404,8 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %.d45 = value_param call_param0 // CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.d45] { diff --git a/toolchain/check/testdata/class/redeclaration.carbon b/toolchain/check/testdata/class/redeclaration.carbon index a10b77265df7..9aca20cada79 100644 --- a/toolchain/check/testdata/class/redeclaration.carbon +++ b/toolchain/check/testdata/class/redeclaration.carbon @@ -50,10 +50,10 @@ fn Class.F[unused self: Self](unused b: ()) {} // CHECK:STDOUT: %Class.decl.loc15: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.decl.loc17: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.cb1 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.cb1 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc21: %Class = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc21: type = name_ref Self, constants.%Class [concrete = constants.%Class] @@ -69,10 +69,10 @@ fn Class.F[unused self: Self](unused b: ()) {} // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.cb1 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.cb1 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc18: %Class = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc18: type = name_ref Self, constants.%Class [concrete = constants.%Class] diff --git a/toolchain/check/testdata/class/reenter_scope.carbon b/toolchain/check/testdata/class/reenter_scope.carbon index 2e836cce799d..ea67448abe5e 100644 --- a/toolchain/check/testdata/class/reenter_scope.carbon +++ b/toolchain/check/testdata/class/reenter_scope.carbon @@ -57,8 +57,8 @@ fn Class.F() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc20 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc20: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc20: Core.Form = init_form %i32.loc20 [concrete = constants.%.ff5] @@ -69,8 +69,8 @@ fn Class.F() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc20 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16 [concrete = constants.%.ff5] @@ -78,8 +78,8 @@ fn Class.F() -> i32 { // CHECK:STDOUT: %return.loc16: ref %i32 = return_slot %return.param.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc17: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/reorder.carbon b/toolchain/check/testdata/class/reorder.carbon index 1d91b6cdf127..7d02b31e9e42 100644 --- a/toolchain/check/testdata/class/reorder.carbon +++ b/toolchain/check/testdata/class/reorder.carbon @@ -81,8 +81,8 @@ class Class { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -90,8 +90,8 @@ class Class { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc20: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/scope.carbon b/toolchain/check/testdata/class/scope.carbon index d077182cac9d..7fe3ce4d1fbc 100644 --- a/toolchain/check/testdata/class/scope.carbon +++ b/toolchain/check/testdata/class/scope.carbon @@ -103,8 +103,8 @@ fn Run() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc25: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -116,8 +116,8 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -125,8 +125,8 @@ fn Run() { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc20: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/class/self/fail_ref_self.carbon b/toolchain/check/testdata/class/self/fail_ref_self.carbon index c6f1fdafa4b4..fc5acdda3624 100644 --- a/toolchain/check/testdata/class/self/fail_ref_self.carbon +++ b/toolchain/check/testdata/class/self/fail_ref_self.carbon @@ -76,8 +76,8 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern %return.param_patt, %Class.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %.loc19: Core.Form = init_form %Class.ref [concrete = constants.%.cff] @@ -85,10 +85,10 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: %return: ref %Class = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: %pattern_type.904 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.904 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.018 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.904 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.018 = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %Class = value_param call_param0 // CHECK:STDOUT: %Class.ref.loc21_9: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] @@ -104,8 +104,8 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Class = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Class [concrete = constants.%Class] diff --git a/toolchain/check/testdata/class/self/raw_self.carbon b/toolchain/check/testdata/class/self/raw_self.carbon index 869de84daf0f..74c7fc343788 100644 --- a/toolchain/check/testdata/class/self/raw_self.carbon +++ b/toolchain/check/testdata/class/self/raw_self.carbon @@ -82,10 +82,10 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.patt.loc21_16: %pattern_type.904 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt.loc21_20: %pattern_type.904 = ref_param_pattern %self.patt.loc21_16 [concrete] -// CHECK:STDOUT: %self.patt.loc21_28: %pattern_type.7ce = value_binding_pattern r#self [concrete] -// CHECK:STDOUT: %self.param_patt.loc21_34: %pattern_type.7ce = value_param_pattern %self.patt.loc21_28 [concrete] +// CHECK:STDOUT: %self.param_patt.loc21_20: %pattern_type.904 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc21_16: %pattern_type.904 = at_binding_pattern self, %self.param_patt.loc21_20 [concrete] +// CHECK:STDOUT: %self.param_patt.loc21_34: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc21_28: %pattern_type.7ce = at_binding_pattern r#self, %self.param_patt.loc21_34 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc21_20: ref %Class = ref_param call_param0 // CHECK:STDOUT: %Self.ref.loc21: type = name_ref Self, constants.%Class [concrete = constants.%Class] @@ -95,12 +95,12 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %self.loc21_28: %i32 = value_binding r#self, %self.param.loc21_34 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %self.patt.loc25_12: %pattern_type.904 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt.loc25_16: %pattern_type.904 = value_param_pattern %self.patt.loc25_12 [concrete] -// CHECK:STDOUT: %self.patt.loc25_24: %pattern_type.7ce = value_binding_pattern r#self [concrete] -// CHECK:STDOUT: %self.param_patt.loc25_30: %pattern_type.7ce = value_param_pattern %self.patt.loc25_24 [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt.loc25_16: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc25_12: %pattern_type.904 = at_binding_pattern self, %self.param_patt.loc25_16 [concrete] +// CHECK:STDOUT: %self.param_patt.loc25_30: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc25_24: %pattern_type.7ce = at_binding_pattern r#self, %self.param_patt.loc25_30 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern %return.param_patt, %.loc25_49.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc25_41: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc25_46: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -120,10 +120,10 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.patt.loc21_16: %pattern_type.904 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt.loc21_20: %pattern_type.904 = ref_param_pattern %self.patt.loc21_16 [concrete] -// CHECK:STDOUT: %self.patt.loc21_28: %pattern_type.7ce = value_binding_pattern r#self [concrete] -// CHECK:STDOUT: %self.param_patt.loc21_34: %pattern_type.7ce = value_param_pattern %self.patt.loc21_28 [concrete] +// CHECK:STDOUT: %self.param_patt.loc21_20: %pattern_type.904 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc21_16: %pattern_type.904 = at_binding_pattern self, %self.param_patt.loc21_20 [concrete] +// CHECK:STDOUT: %self.param_patt.loc21_34: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc21_28: %pattern_type.7ce = at_binding_pattern r#self, %self.param_patt.loc21_34 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc16_16: ref %Class = ref_param call_param0 // CHECK:STDOUT: %Self.ref.loc16: type = name_ref Self, constants.%Class [concrete = constants.%Class] @@ -133,12 +133,12 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %self.loc16_24: %i32 = value_binding r#self, %self.param.loc16_30 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %self.patt.loc25_12: %pattern_type.904 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt.loc25_16: %pattern_type.904 = value_param_pattern %self.patt.loc25_12 [concrete] -// CHECK:STDOUT: %self.patt.loc25_24: %pattern_type.7ce = value_binding_pattern r#self [concrete] -// CHECK:STDOUT: %self.param_patt.loc25_30: %pattern_type.7ce = value_param_pattern %self.patt.loc25_24 [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt.loc25_16: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc25_12: %pattern_type.904 = at_binding_pattern self, %self.param_patt.loc25_16 [concrete] +// CHECK:STDOUT: %self.param_patt.loc25_30: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc25_24: %pattern_type.7ce = at_binding_pattern r#self, %self.param_patt.loc25_30 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern %return.param_patt, %.loc25_49.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc17_37: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc17_42: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/class/self/raw_self_type.carbon b/toolchain/check/testdata/class/self/raw_self_type.carbon index b4cc8a2e8a92..fa43d1760fee 100644 --- a/toolchain/check/testdata/class/self/raw_self_type.carbon +++ b/toolchain/check/testdata/class/self/raw_self_type.carbon @@ -95,10 +95,10 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {} // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %MemberNamedSelf.decl: type = class_decl @MemberNamedSelf [concrete = constants.%MemberNamedSelf] {} {} // CHECK:STDOUT: %MemberNamedSelf.F.decl: %MemberNamedSelf.F.type = fn_decl @MemberNamedSelf.F [concrete = constants.%MemberNamedSelf.F] { -// CHECK:STDOUT: %x.patt: %pattern_type.4b2 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.4b2 = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %y.patt: %pattern_type.f56 = value_binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: %pattern_type.f56 = value_param_pattern %y.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.4b2 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.4b2 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %y.param_patt: %pattern_type.f56 = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.f56 = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param.loc28: %MemberNamedSelf = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc28_32: type = name_ref Self, constants.%MemberNamedSelf [concrete = constants.%MemberNamedSelf] @@ -122,10 +122,10 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {} // CHECK:STDOUT: class @MemberNamedSelf { // CHECK:STDOUT: %Self.decl: type = class_decl @Self [concrete = constants.%Self.0d4] {} {} // CHECK:STDOUT: %MemberNamedSelf.F.decl: %MemberNamedSelf.F.type = fn_decl @MemberNamedSelf.F [concrete = constants.%MemberNamedSelf.F] { -// CHECK:STDOUT: %x.patt: %pattern_type.4b2 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.4b2 = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %y.patt: %pattern_type.f56 = value_binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: %pattern_type.f56 = value_param_pattern %y.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.4b2 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.4b2 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %y.param_patt: %pattern_type.f56 = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.f56 = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param.loc25: %MemberNamedSelf = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc25_11: type = name_ref Self, constants.%MemberNamedSelf [concrete = constants.%MemberNamedSelf] diff --git a/toolchain/check/testdata/class/self/self.carbon b/toolchain/check/testdata/class/self/self.carbon index 2ad48d8508a0..f7df2d87d35e 100644 --- a/toolchain/check/testdata/class/self/self.carbon +++ b/toolchain/check/testdata/class/self/self.carbon @@ -98,10 +98,10 @@ class Class { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc11 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc11: Core.Form = init_form %i32.loc11 [concrete = constants.%.ff5] @@ -112,10 +112,10 @@ class Class { // CHECK:STDOUT: %return.loc11: ref %i32 = return_slot %return.param.loc11 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.ff5] @@ -129,10 +129,10 @@ class Class { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc11 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5 [concrete = constants.%.ff5] @@ -143,10 +143,10 @@ class Class { // CHECK:STDOUT: %return.loc5: ref %i32 = return_slot %return.param.loc5 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6: Core.Form = init_form %i32.loc6 [concrete = constants.%.ff5] @@ -229,8 +229,8 @@ class Class { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.ref: %Class = name_ref self, %self // CHECK:STDOUT: %.loc12: type = converted %self.ref, [concrete = ] diff --git a/toolchain/check/testdata/class/self/self_type.carbon b/toolchain/check/testdata/class/self/self_type.carbon index 1c0015e5ae7c..372507bc0f01 100644 --- a/toolchain/check/testdata/class/self/self_type.carbon +++ b/toolchain/check/testdata/class/self/self_type.carbon @@ -92,10 +92,10 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25 [concrete = constants.%.ff5] @@ -109,10 +109,10 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.904 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16 [concrete = constants.%.ff5] @@ -123,8 +123,8 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: %return.loc16: ref %i32 = return_slot %return.param.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.Make.decl: %Class.Make.type = fn_decl @Class.Make [concrete = constants.%Class.Make] { -// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern %return.param_patt, %Self.ref.loc17 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc17: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %.loc17_16.2: Core.Form = init_form %Self.ref.loc17 [concrete = constants.%.cff] diff --git a/toolchain/check/testdata/class/syntactic_merge.carbon b/toolchain/check/testdata/class/syntactic_merge.carbon index 148cec2a9c89..26c25a79a9bf 100644 --- a/toolchain/check/testdata/class/syntactic_merge.carbon +++ b/toolchain/check/testdata/class/syntactic_merge.carbon @@ -1149,8 +1149,8 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: } // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Base.F.decl: %Base.F.type.c66019.2 = fn_decl @Base.F.loc17 [concrete = constants.%Base.F.811e28.2] { -// CHECK:STDOUT: %self.patt: %pattern_type = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0 // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] @@ -1163,8 +1163,8 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: %.loc5_11.2: type = converted %.loc5_11.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc5_8: %Base.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %Base.F.decl: %Base.F.type.c66019.1 = fn_decl @Base.F.loc7 [concrete = constants.%Base.F.811e28.1] { -// CHECK:STDOUT: %self.patt: %pattern_type = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base] diff --git a/toolchain/check/testdata/class/virtual_modifiers.carbon b/toolchain/check/testdata/class/virtual_modifiers.carbon index 53d2c26cf413..99fd6d40fc57 100644 --- a/toolchain/check/testdata/class/virtual_modifiers.carbon +++ b/toolchain/check/testdata/class/virtual_modifiers.carbon @@ -300,12 +300,12 @@ base class T1 { class T2 { extend base: T1; - // CHECK:STDERR: fail_ref_self_mismatch.carbon:[[@LINE+7]]:18: error: redeclaration differs at implicit parameter 1 [RedeclParamDiffers] + // CHECK:STDERR: fail_ref_self_mismatch.carbon:[[@LINE+7]]:22: error: redeclaration differs at implicit parameter 1 [RedeclParamDiffers] // CHECK:STDERR: override fn F1[ref self: Self](); - // CHECK:STDERR: ^~~~~~~~~~~~~~ + // CHECK:STDERR: ^~~~ // CHECK:STDERR: fail_ref_self_mismatch.carbon:[[@LINE-8]]:17: note: previous declaration's corresponding implicit parameter here [RedeclParamPrevious] // CHECK:STDERR: virtual fn F1[self: Self](); - // CHECK:STDERR: ^~~~~~~~~~ + // CHECK:STDERR: ^~~~ // CHECK:STDERR: override fn F1[ref self: Self](); } @@ -418,10 +418,10 @@ class D1 { extend base: Base(T1); // CHECK:STDERR: fail_impl_generic_specifically_mismatch.carbon:[[@LINE+7]]:43: error: type `` of parameter 1 in redeclaration differs from previous parameter type `` [RedeclParamDiffersType] // CHECK:STDERR: override fn F[unused self: Self](unused t: T2*) { } - // CHECK:STDERR: ^~~~~~ + // CHECK:STDERR: ^ // CHECK:STDERR: fail_impl_generic_specifically_mismatch.carbon:[[@LINE-8]]:42: note: previous declaration's corresponding parameter here [RedeclParamPrevious] // CHECK:STDERR: virtual fn F[unused self: Self](unused t: T1*) { } - // CHECK:STDERR: ^~~~~~ + // CHECK:STDERR: ^ // CHECK:STDERR: override fn F[unused self: Self](unused t: T2*) { } } @@ -437,10 +437,10 @@ class Derived(T:! type) { extend base: Base(T); // CHECK:STDERR: fail_impl_generic_generic_mismatch.carbon:[[@LINE+7]]:43: error: type `` of parameter 1 in redeclaration differs from previous parameter type `` [RedeclParamDiffersType] // CHECK:STDERR: override fn F[unused self: Self](unused t: T) { } - // CHECK:STDERR: ^~~~ + // CHECK:STDERR: ^ // CHECK:STDERR: fail_impl_generic_generic_mismatch.carbon:[[@LINE-7]]:42: note: previous declaration's corresponding parameter here [RedeclParamPrevious] // CHECK:STDERR: virtual fn F[unused self: Self](unused t: T*) { } - // CHECK:STDERR: ^~~~~ + // CHECK:STDERR: ^ // CHECK:STDERR: override fn F[unused self: Self](unused t: T) { } } @@ -556,8 +556,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %Base.H.decl: %Base.H.type = fn_decl @Base.H [concrete = constants.%Base.H] { -// CHECK:STDOUT: %self.patt: %pattern_type.dec = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.dec = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.dec = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.dec = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Base = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base] @@ -575,16 +575,16 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @Abstract { // CHECK:STDOUT: %Abstract.J.decl: %Abstract.J.type = fn_decl @Abstract.J [concrete = constants.%Abstract.J] { -// CHECK:STDOUT: %self.patt: %pattern_type.3c9 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.3c9 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.3c9 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.3c9 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Abstract = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Abstract [concrete = constants.%Abstract] // CHECK:STDOUT: %self: %Abstract = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %Abstract.K.decl: %Abstract.K.type = fn_decl @Abstract.K [concrete = constants.%Abstract.K] { -// CHECK:STDOUT: %self.patt: %pattern_type.3c9 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.3c9 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.3c9 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.3c9 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Abstract = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Abstract [concrete = constants.%Abstract] @@ -688,8 +688,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base.ref: type = name_ref Base, imports.%Modifiers.Base [concrete = constants.%Base] // CHECK:STDOUT: %.loc7: %Derived.elem = base_decl %Base.ref, element0 [concrete] // CHECK:STDOUT: %Derived.H.decl: %Derived.H.type = fn_decl @Derived.H [concrete = constants.%Derived.H] { -// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] @@ -811,8 +811,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] @@ -990,8 +990,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @A1 { // CHECK:STDOUT: %A1.F.decl: %A1.F.type = fn_decl @A1.F [concrete = constants.%A1.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.258 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.258 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.258 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.258 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %A1 = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%A1 [concrete = constants.%A1] @@ -1011,8 +1011,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %A1.ref: type = name_ref A1, file.%A1.decl [concrete = constants.%A1] // CHECK:STDOUT: %.loc9: %A2.elem = base_decl %A1.ref, element0 [concrete] // CHECK:STDOUT: %A2.F.decl: %A2.F.type = fn_decl @A2.F [concrete = constants.%A2.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.f23 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.f23 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f23 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f23 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %A2 = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%A2 [concrete = constants.%A2] @@ -1126,8 +1126,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @B1 { // CHECK:STDOUT: %B1.F.decl: %B1.F.type = fn_decl @B1.F [concrete = constants.%B1.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.748 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.748 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.748 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.748 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %B1 = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B1 [concrete = constants.%B1] @@ -1147,8 +1147,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %B1.ref: type = name_ref B1, file.%B1.decl [concrete = constants.%B1] // CHECK:STDOUT: %.loc9: %B2.elem = base_decl %B1.ref, element0 [concrete] // CHECK:STDOUT: %B2.F.decl: %B2.F.type = fn_decl @B2.F [concrete = constants.%B2.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.8b5 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.8b5 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.8b5 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.8b5 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %B2 = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B2 [concrete = constants.%B2] @@ -1171,8 +1171,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %B2.ref: type = name_ref B2, file.%B2.decl [concrete = constants.%B2] // CHECK:STDOUT: %.loc14: %C.elem = base_decl %B2.ref, element0 [concrete] // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] @@ -1323,8 +1323,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { -// CHECK:STDOUT: %self.patt: %pattern_type = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] @@ -1444,8 +1444,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6: %Base.elem = field_decl m2, element2 [concrete] // CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.101 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Base = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base] @@ -1621,8 +1621,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %.loc8: %Derived.elem = base_decl %Base.ref, element1 [concrete] // CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] { -// CHECK:STDOUT: %self.patt: %pattern_type = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] @@ -1693,8 +1693,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @AbstractBase { // CHECK:STDOUT: %AbstractBase.F.decl: %AbstractBase.F.type = fn_decl @AbstractBase.F [concrete = constants.%AbstractBase.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.079 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.079 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.079 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.079 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %AbstractBase = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%AbstractBase [concrete = constants.%AbstractBase] @@ -1729,8 +1729,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %AbstractIntermediate.ref: type = name_ref AbstractIntermediate, file.%AbstractIntermediate.decl [concrete = constants.%AbstractIntermediate] // CHECK:STDOUT: %.loc13: %Derived.elem = base_decl %AbstractIntermediate.ref, element0 [concrete] // CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] @@ -1813,8 +1813,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @VirtualBase { // CHECK:STDOUT: %VirtualBase.F.decl: %VirtualBase.F.type = fn_decl @VirtualBase.F [concrete = constants.%VirtualBase.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.012 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.012 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.012 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.012 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %VirtualBase = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%VirtualBase [concrete = constants.%VirtualBase] @@ -1849,8 +1849,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %VirtualIntermediate.ref: type = name_ref VirtualIntermediate, file.%VirtualIntermediate.decl [concrete = constants.%VirtualIntermediate] // CHECK:STDOUT: %.loc13: %Derived.elem = base_decl %VirtualIntermediate.ref, element0 [concrete] // CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] @@ -1933,8 +1933,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.101 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Base = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base] @@ -1954,10 +1954,10 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %.loc9: %Derived.elem = base_decl %Base.ref, element0 [concrete] // CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %v.patt: %pattern_type.7ce = value_binding_pattern v [concrete] -// CHECK:STDOUT: %v.param_patt: %pattern_type.7ce = value_param_pattern %v.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %v.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.7ce = at_binding_pattern v, %v.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] @@ -2061,10 +2061,10 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: impl @T2.as.ImplicitAs.impl: %T2.ref as %ImplicitAs.type { // CHECK:STDOUT: %T2.as.ImplicitAs.impl.Convert.decl: %T2.as.ImplicitAs.impl.Convert.type = fn_decl @T2.as.ImplicitAs.impl.Convert [concrete = constants.%T2.as.ImplicitAs.impl.Convert] { -// CHECK:STDOUT: %self.patt: %pattern_type.b8b = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.b8b = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.818 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.818 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.b8b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.b8b = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.818 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.818 = return_slot_pattern %return.param_patt, %T1.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1] // CHECK:STDOUT: %.loc11: Core.Form = init_form %T1.ref [concrete = constants.%.a53] @@ -2101,10 +2101,10 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.818 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.818 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.101 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.818 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.818 = return_slot_pattern %return.param_patt, %T1.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1] // CHECK:STDOUT: %.loc17: Core.Form = init_form %T1.ref [concrete = constants.%.a53] @@ -2130,10 +2130,10 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %.loc21: %Derived.elem = base_decl %Base.ref, element0 [concrete] // CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.b8b = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.b8b = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b8b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b8b = return_slot_pattern %return.param_patt, %T2.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T2.ref: type = name_ref T2, file.%T2.decl [concrete = constants.%T2] // CHECK:STDOUT: %.loc29: Core.Form = init_form %T2.ref [concrete = constants.%.c13] @@ -2231,8 +2231,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F)] { -// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type (%pattern_type.2f0) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Base.F.%Base (%Base) = value_param call_param0 // CHECK:STDOUT: %.loc12_22.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base)] { @@ -2361,10 +2361,10 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type.0f1) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F.cd3)] { -// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type.loc8_23 (%pattern_type.2f0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc8_23 (%pattern_type.2f0) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: @Base.F.%pattern_type.loc8_42 (%pattern_type.51d) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc8_42 (%pattern_type.51d) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc8_27 (%pattern_type.2f0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type.loc8_27 (%pattern_type.2f0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc8_43 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @Base.F.%pattern_type.loc8_43 (%pattern_type.51d) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Base.F.%Base (%Base.d0c) = value_param call_param0 // CHECK:STDOUT: %.loc8_29.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base.d0c)] { @@ -2396,10 +2396,10 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base: type = class_type @Base, @Base(constants.%T1) [concrete = constants.%Base.d5d] // CHECK:STDOUT: %.loc12: %Derived.elem = base_decl %Base, element0 [concrete] // CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: %pattern_type.818 = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: %pattern_type.818 = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.818 = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.818 = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] @@ -2433,8 +2433,8 @@ class T2(G2:! type) { // CHECK:STDOUT: generic virtual fn @Base.F(@Base.%T.loc7_17.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.d0c)] -// CHECK:STDOUT: %pattern_type.loc8_23: type = pattern_type %Base [symbolic = %pattern_type.loc8_23 (constants.%pattern_type.2f0)] -// CHECK:STDOUT: %pattern_type.loc8_42: type = pattern_type %T [symbolic = %pattern_type.loc8_42 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc8_27: type = pattern_type %Base [symbolic = %pattern_type.loc8_27 (constants.%pattern_type.2f0)] +// CHECK:STDOUT: %pattern_type.loc8_43: type = pattern_type %T [symbolic = %pattern_type.loc8_43 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8_27: = require_complete_type %Base [symbolic = %require_complete.loc8_27 (constants.%require_complete.1e0)] @@ -2463,8 +2463,8 @@ class T2(G2:! type) { // CHECK:STDOUT: specific @Base.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Base => constants.%Base.d0c -// CHECK:STDOUT: %pattern_type.loc8_23 => constants.%pattern_type.2f0 -// CHECK:STDOUT: %pattern_type.loc8_42 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc8_27 => constants.%pattern_type.2f0 +// CHECK:STDOUT: %pattern_type.loc8_43 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8_27 => constants.%require_complete.1e0 @@ -2483,8 +2483,8 @@ class T2(G2:! type) { // CHECK:STDOUT: specific @Base.F(constants.%T1) { // CHECK:STDOUT: %T => constants.%T1 // CHECK:STDOUT: %Base => constants.%Base.d5d -// CHECK:STDOUT: %pattern_type.loc8_23 => constants.%pattern_type.64f -// CHECK:STDOUT: %pattern_type.loc8_42 => constants.%pattern_type.818 +// CHECK:STDOUT: %pattern_type.loc8_27 => constants.%pattern_type.64f +// CHECK:STDOUT: %pattern_type.loc8_43 => constants.%pattern_type.818 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8_27 => constants.%complete_type.513 @@ -2601,8 +2601,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @T1 { // CHECK:STDOUT: %T1.F1.decl: %T1.F1.type = fn_decl @T1.F1 [concrete = constants.%T1.F1] { -// CHECK:STDOUT: %self.patt: %pattern_type.818 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.818 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.818 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.818 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %T1 = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%T1 [concrete = constants.%T1] @@ -2622,8 +2622,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1] // CHECK:STDOUT: %.loc9: %T2.elem = base_decl %T1.ref, element0 [concrete] // CHECK:STDOUT: %T2.F1.decl: %T2.F1.type = fn_decl @T2.F1 [concrete = constants.%T2.F1] { -// CHECK:STDOUT: %self.patt: %pattern_type.b8b = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.b8b = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.b8b = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.b8b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %T2 = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%T2 [concrete = constants.%T2] @@ -2687,8 +2687,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @T1 { // CHECK:STDOUT: %T1.F.decl: %T1.F.type = fn_decl @T1.F [concrete = constants.%T1.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.818 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.818 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.818 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.818 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %T1 = value_param call_param0 @@ -2769,8 +2769,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F)] { -// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.253) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.253) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1) = value_param call_param0 @@ -2869,8 +2869,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F)] { -// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.253) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.253) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1) = value_param call_param0 // CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %T1 (constants.%T1)] { @@ -2984,10 +2984,10 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F)] { -// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type.loc5_23 (%pattern_type.253) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type.loc5_23 (%pattern_type.253) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: @T1.F.%pattern_type.loc5_42 (%pattern_type.51d) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @T1.F.%pattern_type.loc5_42 (%pattern_type.51d) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type.loc5_27 (%pattern_type.253) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type.loc5_27 (%pattern_type.253) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @T1.F.%pattern_type.loc5_43 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @T1.F.%pattern_type.loc5_43 (%pattern_type.51d) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1) = value_param call_param0 // CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %T1 (constants.%T1)] { @@ -3019,8 +3019,8 @@ class T2(G2:! type) { // CHECK:STDOUT: generic virtual fn @T1.F(@T1.%T.loc4_15.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T1: type = class_type @T1, @T1(%T) [symbolic = %T1 (constants.%T1)] -// CHECK:STDOUT: %pattern_type.loc5_23: type = pattern_type %T1 [symbolic = %pattern_type.loc5_23 (constants.%pattern_type.253)] -// CHECK:STDOUT: %pattern_type.loc5_42: type = pattern_type %T [symbolic = %pattern_type.loc5_42 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc5_27: type = pattern_type %T1 [symbolic = %pattern_type.loc5_27 (constants.%pattern_type.253)] +// CHECK:STDOUT: %pattern_type.loc5_43: type = pattern_type %T [symbolic = %pattern_type.loc5_43 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_27: = require_complete_type %T1 [symbolic = %require_complete.loc5_27 (constants.%require_complete.6d2)] @@ -3044,8 +3044,8 @@ class T2(G2:! type) { // CHECK:STDOUT: specific @T1.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %T1 => constants.%T1 -// CHECK:STDOUT: %pattern_type.loc5_23 => constants.%pattern_type.253 -// CHECK:STDOUT: %pattern_type.loc5_42 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc5_27 => constants.%pattern_type.253 +// CHECK:STDOUT: %pattern_type.loc5_43 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_27 => constants.%require_complete.6d2 @@ -3089,8 +3089,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Modifiers.import = import Modifiers // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %b.patt: %pattern_type = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: %Base = value_param call_param0 // CHECK:STDOUT: %.loc6: type = splice_block %Base.ref [concrete = constants.%Base] { @@ -3174,16 +3174,16 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @NonGenericBase { // CHECK:STDOUT: %NonGenericBase.F1.decl: %NonGenericBase.F1.type = fn_decl @NonGenericBase.F1 [concrete = constants.%NonGenericBase.F1] { -// CHECK:STDOUT: %self.patt: %pattern_type.126 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.126 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.126 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.126 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %NonGenericBase = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%NonGenericBase [concrete = constants.%NonGenericBase] // CHECK:STDOUT: %self: %NonGenericBase = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %NonGenericBase.F2.decl: %NonGenericBase.F2.type = fn_decl @NonGenericBase.F2 [concrete = constants.%NonGenericBase.F2] { -// CHECK:STDOUT: %self.patt: %pattern_type.126 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.126 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.126 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.126 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %NonGenericBase = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%NonGenericBase [concrete = constants.%NonGenericBase] @@ -3217,8 +3217,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %NonGenericBase.ref: type = name_ref NonGenericBase, file.%NonGenericBase.decl [concrete = constants.%NonGenericBase] // CHECK:STDOUT: %.loc10: @GenericDerived.%GenericDerived.elem (%GenericDerived.elem) = base_decl %NonGenericBase.ref, element0 [concrete] // CHECK:STDOUT: %GenericDerived.F2.decl: @GenericDerived.%GenericDerived.F2.type (%GenericDerived.F2.type) = fn_decl @GenericDerived.F2 [symbolic = @GenericDerived.%GenericDerived.F2 (constants.%GenericDerived.F2)] { -// CHECK:STDOUT: %self.patt: @GenericDerived.F2.%pattern_type (%pattern_type.945) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @GenericDerived.F2.%pattern_type (%pattern_type.945) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @GenericDerived.F2.%pattern_type (%pattern_type.945) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @GenericDerived.F2.%pattern_type (%pattern_type.945) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @GenericDerived.F2.%GenericDerived (%GenericDerived) = value_param call_param0 // CHECK:STDOUT: %.loc11_31.1: type = splice_block %Self.ref [symbolic = %GenericDerived (constants.%GenericDerived)] { @@ -3228,8 +3228,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %self: @GenericDerived.F2.%GenericDerived (%GenericDerived) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %GenericDerived.F3.decl: @GenericDerived.%GenericDerived.F3.type (%GenericDerived.F3.type) = fn_decl @GenericDerived.F3 [symbolic = @GenericDerived.%GenericDerived.F3 (constants.%GenericDerived.F3)] { -// CHECK:STDOUT: %self.patt: @GenericDerived.F3.%pattern_type (%pattern_type.945) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @GenericDerived.F3.%pattern_type (%pattern_type.945) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @GenericDerived.F3.%pattern_type (%pattern_type.945) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @GenericDerived.F3.%pattern_type (%pattern_type.945) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @GenericDerived.F3.%GenericDerived (%GenericDerived) = value_param call_param0 // CHECK:STDOUT: %.loc12_30.1: type = splice_block %Self.ref [symbolic = %GenericDerived (constants.%GenericDerived)] { @@ -3420,8 +3420,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %GenericBase.F1.decl: @GenericBase.%GenericBase.F1.type (%GenericBase.F1.type.c30) = fn_decl @GenericBase.F1 [symbolic = @GenericBase.%GenericBase.F1 (constants.%GenericBase.F1.5f6)] { -// CHECK:STDOUT: %self.patt: @GenericBase.F1.%pattern_type (%pattern_type.3f7) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @GenericBase.F1.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @GenericBase.F1.%pattern_type (%pattern_type.3f7) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @GenericBase.F1.%pattern_type (%pattern_type.3f7) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @GenericBase.F1.%GenericBase (%GenericBase.5e3) = value_param call_param0 // CHECK:STDOUT: %.loc5_30.1: type = splice_block %Self.ref [symbolic = %GenericBase (constants.%GenericBase.5e3)] { @@ -3431,8 +3431,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %self: @GenericBase.F1.%GenericBase (%GenericBase.5e3) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %GenericBase.F2.decl: @GenericBase.%GenericBase.F2.type (%GenericBase.F2.type.3d4) = fn_decl @GenericBase.F2 [symbolic = @GenericBase.%GenericBase.F2 (constants.%GenericBase.F2.9ed)] { -// CHECK:STDOUT: %self.patt: @GenericBase.F2.%pattern_type (%pattern_type.3f7) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @GenericBase.F2.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @GenericBase.F2.%pattern_type (%pattern_type.3f7) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @GenericBase.F2.%pattern_type (%pattern_type.3f7) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @GenericBase.F2.%GenericBase (%GenericBase.5e3) = value_param call_param0 // CHECK:STDOUT: %.loc6_30.1: type = splice_block %Self.ref [symbolic = %GenericBase (constants.%GenericBase.5e3)] { @@ -3463,16 +3463,16 @@ class T2(G2:! type) { // CHECK:STDOUT: %GenericBase: type = class_type @GenericBase, @GenericBase(constants.%T1) [concrete = constants.%GenericBase.52d] // CHECK:STDOUT: %.loc12: %NonGenericDerived.elem = base_decl %GenericBase, element0 [concrete] // CHECK:STDOUT: %NonGenericDerived.F2.decl: %NonGenericDerived.F2.type = fn_decl @NonGenericDerived.F2 [concrete = constants.%NonGenericDerived.F2] { -// CHECK:STDOUT: %self.patt: %pattern_type.c19 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.c19 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.c19 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.c19 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %NonGenericDerived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%NonGenericDerived [concrete = constants.%NonGenericDerived] // CHECK:STDOUT: %self: %NonGenericDerived = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %NonGenericDerived.F3.decl: %NonGenericDerived.F3.type = fn_decl @NonGenericDerived.F3 [concrete = constants.%NonGenericDerived.F3] { -// CHECK:STDOUT: %self.patt: %pattern_type.c19 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.c19 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.c19 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.c19 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %NonGenericDerived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%NonGenericDerived [concrete = constants.%NonGenericDerived] @@ -3681,10 +3681,10 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type.0f1) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F.cd3)] { -// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.cf5) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.cf5) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc5_27 (%pattern_type.2f0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type.loc5_27 (%pattern_type.2f0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc5_43 (%pattern_type.cf5) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @Base.F.%pattern_type.loc5_43 (%pattern_type.cf5) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Base.F.%Base.loc5_29 (%Base.d0c) = value_param call_param0 // CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %Base.loc5_29 (constants.%Base.d0c)] { @@ -3724,10 +3724,10 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base: type = class_type @Base, @Base(constants.%T1) [concrete = constants.%Base.d5d] // CHECK:STDOUT: %.loc9: %D1.elem = base_decl %Base, element0 [concrete] // CHECK:STDOUT: %D1.F.decl: %D1.F.type = fn_decl @D1.F [concrete = constants.%D1.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.7f9 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7f9 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: %pattern_type.912 = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: %pattern_type.912 = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7f9 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7f9 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.912 = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.912 = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %D1 = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%D1 [concrete = constants.%D1] @@ -3766,9 +3766,9 @@ class T2(G2:! type) { // CHECK:STDOUT: generic virtual fn @Base.F(@Base.%T.loc4_17.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base.loc5_29: type = class_type @Base, @Base(%T) [symbolic = %Base.loc5_29 (constants.%Base.d0c)] -// CHECK:STDOUT: %pattern_type.loc5_23: type = pattern_type %Base.loc5_29 [symbolic = %pattern_type.loc5_23 (constants.%pattern_type.2f0)] +// CHECK:STDOUT: %pattern_type.loc5_27: type = pattern_type %Base.loc5_29 [symbolic = %pattern_type.loc5_27 (constants.%pattern_type.2f0)] // CHECK:STDOUT: %ptr.loc5_52.1: type = ptr_type %Base.loc5_29 [symbolic = %ptr.loc5_52.1 (constants.%ptr.4b1)] -// CHECK:STDOUT: %pattern_type.loc5_42: type = pattern_type %ptr.loc5_52.1 [symbolic = %pattern_type.loc5_42 (constants.%pattern_type.cf5)] +// CHECK:STDOUT: %pattern_type.loc5_43: type = pattern_type %ptr.loc5_52.1 [symbolic = %pattern_type.loc5_43 (constants.%pattern_type.cf5)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_27: = require_complete_type %Base.loc5_29 [symbolic = %require_complete.loc5_27 (constants.%require_complete.1e0)] @@ -3797,9 +3797,9 @@ class T2(G2:! type) { // CHECK:STDOUT: specific @Base.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Base.loc5_29 => constants.%Base.d0c -// CHECK:STDOUT: %pattern_type.loc5_23 => constants.%pattern_type.2f0 +// CHECK:STDOUT: %pattern_type.loc5_27 => constants.%pattern_type.2f0 // CHECK:STDOUT: %ptr.loc5_52.1 => constants.%ptr.4b1 -// CHECK:STDOUT: %pattern_type.loc5_42 => constants.%pattern_type.cf5 +// CHECK:STDOUT: %pattern_type.loc5_43 => constants.%pattern_type.cf5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_27 => constants.%require_complete.1e0 @@ -3818,9 +3818,9 @@ class T2(G2:! type) { // CHECK:STDOUT: specific @Base.F(constants.%T1) { // CHECK:STDOUT: %T => constants.%T1 // CHECK:STDOUT: %Base.loc5_29 => constants.%Base.d5d -// CHECK:STDOUT: %pattern_type.loc5_23 => constants.%pattern_type.64f +// CHECK:STDOUT: %pattern_type.loc5_27 => constants.%pattern_type.64f // CHECK:STDOUT: %ptr.loc5_52.1 => constants.%ptr.6e0 -// CHECK:STDOUT: %pattern_type.loc5_42 => constants.%pattern_type.912 +// CHECK:STDOUT: %pattern_type.loc5_43 => constants.%pattern_type.912 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_27 => constants.%complete_type.513 @@ -3911,10 +3911,10 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type.0f1) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F.cd3)] { -// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: %pattern_type.c16 = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: %pattern_type.c16 = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type (%pattern_type.2f0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.c16 = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.c16 = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Base.F.%Base (%Base.d0c) = value_param call_param0 // CHECK:STDOUT: %.loc8_29.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base.d0c)] { @@ -3949,10 +3949,10 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base: type = class_type @Base, @Base(constants.%T1) [concrete = constants.%Base.d5d] // CHECK:STDOUT: %.loc12: %D1.elem = base_decl %Base, element0 [concrete] // CHECK:STDOUT: %D1.F.decl: %D1.F.type = fn_decl @D1.F [concrete = constants.%D1.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.7f9 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7f9 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: %pattern_type.64c = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: %pattern_type.64c = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7f9 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7f9 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.64c = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.64c = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %D1 = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%D1 [concrete = constants.%D1] @@ -4124,10 +4124,10 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F)] { -// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.4f4) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.4f4) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc5_27 (%pattern_type.2f0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type.loc5_27 (%pattern_type.2f0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc5_43 (%pattern_type.4f4) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @Base.F.%pattern_type.loc5_43 (%pattern_type.4f4) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Base.F.%Base (%Base) = value_param call_param0 // CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base)] { @@ -4175,10 +4175,10 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base.loc8_22.1: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc8_22.2 (constants.%Base)] // CHECK:STDOUT: %.loc8: @Derived.%Derived.elem (%Derived.elem) = base_decl %Base.loc8_22.1, element0 [concrete] // CHECK:STDOUT: %Derived.F.decl: @Derived.%Derived.F.type (%Derived.F.type) = fn_decl @Derived.F [symbolic = @Derived.%Derived.F (constants.%Derived.F)] { -// CHECK:STDOUT: %self.patt: @Derived.F.%pattern_type.loc16_24 (%pattern_type.b9d) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Derived.F.%pattern_type.loc16_24 (%pattern_type.b9d) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: @Derived.F.%pattern_type.loc16_43 (%pattern_type.51d) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @Derived.F.%pattern_type.loc16_43 (%pattern_type.51d) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Derived.F.%pattern_type.loc16_28 (%pattern_type.b9d) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Derived.F.%pattern_type.loc16_28 (%pattern_type.b9d) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @Derived.F.%pattern_type.loc16_44 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @Derived.F.%pattern_type.loc16_44 (%pattern_type.51d) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Derived.F.%Derived (%Derived) = value_param call_param0 // CHECK:STDOUT: %.loc16_30.1: type = splice_block %Self.ref [symbolic = %Derived (constants.%Derived)] { @@ -4217,9 +4217,9 @@ class T2(G2:! type) { // CHECK:STDOUT: generic virtual fn @Base.F(@Base.%T.loc4_21.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base)] -// CHECK:STDOUT: %pattern_type.loc5_23: type = pattern_type %Base [symbolic = %pattern_type.loc5_23 (constants.%pattern_type.2f0)] +// CHECK:STDOUT: %pattern_type.loc5_27: type = pattern_type %Base [symbolic = %pattern_type.loc5_27 (constants.%pattern_type.2f0)] // CHECK:STDOUT: %ptr.loc5_46.1: type = ptr_type %T [symbolic = %ptr.loc5_46.1 (constants.%ptr.e8f)] -// CHECK:STDOUT: %pattern_type.loc5_42: type = pattern_type %ptr.loc5_46.1 [symbolic = %pattern_type.loc5_42 (constants.%pattern_type.4f4)] +// CHECK:STDOUT: %pattern_type.loc5_43: type = pattern_type %ptr.loc5_46.1 [symbolic = %pattern_type.loc5_43 (constants.%pattern_type.4f4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_27: = require_complete_type %Base [symbolic = %require_complete.loc5_27 (constants.%require_complete.1e0)] @@ -4234,10 +4234,10 @@ class T2(G2:! type) { // CHECK:STDOUT: generic override fn @Derived.F(@Derived.%T.loc7_15.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T) [symbolic = %Derived (constants.%Derived)] -// CHECK:STDOUT: %pattern_type.loc16_24: type = pattern_type %Derived [symbolic = %pattern_type.loc16_24 (constants.%pattern_type.b9d)] +// CHECK:STDOUT: %pattern_type.loc16_28: type = pattern_type %Derived [symbolic = %pattern_type.loc16_28 (constants.%pattern_type.b9d)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base)] // CHECK:STDOUT: %require_complete.loc16_46: = require_complete_type %Base [symbolic = %require_complete.loc16_46 (constants.%require_complete.1e0)] -// CHECK:STDOUT: %pattern_type.loc16_43: type = pattern_type %T [symbolic = %pattern_type.loc16_43 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc16_44: type = pattern_type %T [symbolic = %pattern_type.loc16_44 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc16_28: = require_complete_type %Derived [symbolic = %require_complete.loc16_28 (constants.%require_complete.a43)] @@ -4261,9 +4261,9 @@ class T2(G2:! type) { // CHECK:STDOUT: specific @Base.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Base => constants.%Base -// CHECK:STDOUT: %pattern_type.loc5_23 => constants.%pattern_type.2f0 +// CHECK:STDOUT: %pattern_type.loc5_27 => constants.%pattern_type.2f0 // CHECK:STDOUT: %ptr.loc5_46.1 => constants.%ptr.e8f -// CHECK:STDOUT: %pattern_type.loc5_42 => constants.%pattern_type.4f4 +// CHECK:STDOUT: %pattern_type.loc5_43 => constants.%pattern_type.4f4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_27 => constants.%require_complete.1e0 @@ -4288,10 +4288,10 @@ class T2(G2:! type) { // CHECK:STDOUT: specific @Derived.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Derived => constants.%Derived -// CHECK:STDOUT: %pattern_type.loc16_24 => constants.%pattern_type.b9d +// CHECK:STDOUT: %pattern_type.loc16_28 => constants.%pattern_type.b9d // CHECK:STDOUT: %Base => constants.%Base // CHECK:STDOUT: %require_complete.loc16_46 => constants.%require_complete.1e0 -// CHECK:STDOUT: %pattern_type.loc16_43 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc16_44 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc16_28 => constants.%require_complete.a43 @@ -4386,10 +4386,10 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type.0f1) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F.cd3)] { -// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.51d) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.51d) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc5_27 (%pattern_type.2f0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type.loc5_27 (%pattern_type.2f0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc5_43 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @Base.F.%pattern_type.loc5_43 (%pattern_type.51d) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Base.F.%Base (%Base.d0c) = value_param call_param0 // CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base.d0c)] { @@ -4436,10 +4436,10 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base.loc8_23.1: type = class_type @Base, @Base(constants.%ptr.e8f) [symbolic = %Base.loc8_23.2 (constants.%Base.f29)] // CHECK:STDOUT: %.loc8: @Derived.%Derived.elem (%Derived.elem) = base_decl %Base.loc8_23.1, element0 [concrete] // CHECK:STDOUT: %Derived.F.decl: @Derived.%Derived.F.type (%Derived.F.type) = fn_decl @Derived.F [symbolic = @Derived.%Derived.F (constants.%Derived.F)] { -// CHECK:STDOUT: %self.patt: @Derived.F.%pattern_type.loc9_24 (%pattern_type.b9d) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Derived.F.%pattern_type.loc9_24 (%pattern_type.b9d) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: @Derived.F.%pattern_type.loc9_43 (%pattern_type.4f4) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @Derived.F.%pattern_type.loc9_43 (%pattern_type.4f4) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Derived.F.%pattern_type.loc9_28 (%pattern_type.b9d) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Derived.F.%pattern_type.loc9_28 (%pattern_type.b9d) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @Derived.F.%pattern_type.loc9_44 (%pattern_type.4f4) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @Derived.F.%pattern_type.loc9_44 (%pattern_type.4f4) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Derived.F.%Derived (%Derived) = value_param call_param0 // CHECK:STDOUT: %.loc9_30.1: type = splice_block %Self.ref [symbolic = %Derived (constants.%Derived)] { @@ -4481,8 +4481,8 @@ class T2(G2:! type) { // CHECK:STDOUT: generic virtual fn @Base.F(@Base.%T.loc4_21.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.d0c)] -// CHECK:STDOUT: %pattern_type.loc5_23: type = pattern_type %Base [symbolic = %pattern_type.loc5_23 (constants.%pattern_type.2f0)] -// CHECK:STDOUT: %pattern_type.loc5_42: type = pattern_type %T [symbolic = %pattern_type.loc5_42 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc5_27: type = pattern_type %Base [symbolic = %pattern_type.loc5_27 (constants.%pattern_type.2f0)] +// CHECK:STDOUT: %pattern_type.loc5_43: type = pattern_type %T [symbolic = %pattern_type.loc5_43 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_27: = require_complete_type %Base [symbolic = %require_complete.loc5_27 (constants.%require_complete.1e0)] @@ -4497,11 +4497,11 @@ class T2(G2:! type) { // CHECK:STDOUT: generic override fn @Derived.F(@Derived.%T.loc7_15.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T) [symbolic = %Derived (constants.%Derived)] -// CHECK:STDOUT: %pattern_type.loc9_24: type = pattern_type %Derived [symbolic = %pattern_type.loc9_24 (constants.%pattern_type.b9d)] +// CHECK:STDOUT: %pattern_type.loc9_28: type = pattern_type %Derived [symbolic = %pattern_type.loc9_28 (constants.%pattern_type.b9d)] // CHECK:STDOUT: %ptr.loc9_46: type = ptr_type %T [symbolic = %ptr.loc9_46 (constants.%ptr.e8f)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%ptr.loc9_46) [symbolic = %Base (constants.%Base.f29)] // CHECK:STDOUT: %require_complete.loc9_46: = require_complete_type %Base [symbolic = %require_complete.loc9_46 (constants.%require_complete.b3c)] -// CHECK:STDOUT: %pattern_type.loc9_43: type = pattern_type %ptr.loc9_46 [symbolic = %pattern_type.loc9_43 (constants.%pattern_type.4f4)] +// CHECK:STDOUT: %pattern_type.loc9_44: type = pattern_type %ptr.loc9_46 [symbolic = %pattern_type.loc9_44 (constants.%pattern_type.4f4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_28: = require_complete_type %Derived [symbolic = %require_complete.loc9_28 (constants.%require_complete.a43)] @@ -4525,8 +4525,8 @@ class T2(G2:! type) { // CHECK:STDOUT: specific @Base.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Base => constants.%Base.d0c -// CHECK:STDOUT: %pattern_type.loc5_23 => constants.%pattern_type.2f0 -// CHECK:STDOUT: %pattern_type.loc5_42 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc5_27 => constants.%pattern_type.2f0 +// CHECK:STDOUT: %pattern_type.loc5_43 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_27 => constants.%require_complete.1e0 @@ -4561,8 +4561,8 @@ class T2(G2:! type) { // CHECK:STDOUT: specific @Base.F(constants.%ptr.e8f) { // CHECK:STDOUT: %T => constants.%ptr.e8f // CHECK:STDOUT: %Base => constants.%Base.f29 -// CHECK:STDOUT: %pattern_type.loc5_23 => constants.%pattern_type.d96 -// CHECK:STDOUT: %pattern_type.loc5_42 => constants.%pattern_type.4f4 +// CHECK:STDOUT: %pattern_type.loc5_27 => constants.%pattern_type.d96 +// CHECK:STDOUT: %pattern_type.loc5_43 => constants.%pattern_type.4f4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_27 => constants.%require_complete.b3c @@ -4572,11 +4572,11 @@ class T2(G2:! type) { // CHECK:STDOUT: specific @Derived.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Derived => constants.%Derived -// CHECK:STDOUT: %pattern_type.loc9_24 => constants.%pattern_type.b9d +// CHECK:STDOUT: %pattern_type.loc9_28 => constants.%pattern_type.b9d // CHECK:STDOUT: %ptr.loc9_46 => constants.%ptr.e8f // CHECK:STDOUT: %Base => constants.%Base.f29 // CHECK:STDOUT: %require_complete.loc9_46 => constants.%require_complete.b3c -// CHECK:STDOUT: %pattern_type.loc9_43 => constants.%pattern_type.4f4 +// CHECK:STDOUT: %pattern_type.loc9_44 => constants.%pattern_type.4f4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_28 => constants.%require_complete.a43 @@ -4655,8 +4655,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type.0f1) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F.cd3)] { -// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type (%pattern_type.2f0) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Base.F.%Base (%Base.d0c) = value_param call_param0 // CHECK:STDOUT: %.loc5_23.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base.d0c)] { @@ -4685,8 +4685,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base: type = class_type @Base, @Base(constants.%T1) [concrete = constants.%Base.d5d] // CHECK:STDOUT: %.loc11: %Derived.elem = base_decl %Base, element0 [concrete] // CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] @@ -4807,8 +4807,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F)] { -// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type (%pattern_type.2f0) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Base.F.%Base (%Base) = value_param call_param0 // CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base)] { @@ -5094,8 +5094,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type.e39697.1) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F.9b864d.1)] { -// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.253617.1) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253617.1) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253617.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.253617.1) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1.6d4458.1) = value_param call_param0 // CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %T1 (constants.%T1.6d4458.1)] { @@ -5294,8 +5294,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type.e39697.1) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F.9b864d.1)] { -// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.253617.1) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253617.1) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253617.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.253617.1) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1.6d4458.1) = value_param call_param0 // CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %T1 (constants.%T1.6d4458.1)] { diff --git a/toolchain/check/testdata/const/basics.carbon b/toolchain/check/testdata/const/basics.carbon index b8edd378e062..9e5453d70f0f 100644 --- a/toolchain/check/testdata/const/basics.carbon +++ b/toolchain/check/testdata/const/basics.carbon @@ -178,10 +178,10 @@ fn PassConstReferenceToReference(p: const X*) { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %p.patt: %pattern_type.559 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.559 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.559 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.559 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.559 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.559 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.559 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.559 = return_slot_pattern %return.param_patt, %ptr.loc6_31 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc6_29: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %const.loc6_23: type = const_type %C.ref.loc6_29 [concrete = constants.%const.0e5] @@ -200,10 +200,10 @@ fn PassConstReferenceToReference(p: const X*) { // CHECK:STDOUT: %return: ref %ptr.728 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %p.patt: %pattern_type.665 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.665 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.665 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.665 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.665 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.665 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.665 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.665 = return_slot_pattern %return.param_patt, %const.loc10_24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc10_31: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %ptr.loc10_32: type = ptr_type %C.ref.loc10_31 [concrete = constants.%ptr.31e] @@ -274,10 +274,10 @@ fn PassConstReferenceToReference(p: const X*) { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %p.patt: %pattern_type.559 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.559 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.559 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.559 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.559 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.559 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.559 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.559 = return_slot_pattern %return.param_patt, %ptr.loc11_39 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc11_36: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %const.loc11_30: type = const_type %C.ref.loc11_36 [concrete = constants.%const.0e5] diff --git a/toolchain/check/testdata/deduce/array.carbon b/toolchain/check/testdata/deduce/array.carbon index e470ce193339..e7293ede5402 100644 --- a/toolchain/check/testdata/deduce/array.carbon +++ b/toolchain/check/testdata/deduce/array.carbon @@ -206,10 +206,10 @@ fn G() { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc6_16 (%pattern_type.b3f) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.b3f) = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_32 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_32 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc6_17 (%pattern_type.b3f) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc6_17 (%pattern_type.b3f) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_35 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_35 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref.loc6_35 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_35: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %.loc6_35.3: Core.Form = init_form %T.ref.loc6_35 [symbolic = %.loc6_35.2 (constants.%.184)] @@ -229,8 +229,8 @@ fn G() { // CHECK:STDOUT: %return: ref @F.%T.loc6_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref.loc8 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc8_11.2: Core.Form = init_form %C.ref.loc8 [concrete = constants.%.a69] @@ -250,9 +250,9 @@ fn G() { // CHECK:STDOUT: generic fn @F(%T.loc6_6.2: type) { // CHECK:STDOUT: %T.loc6_6.1: type = symbolic_binding T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %array_type.loc6_29.1: type = array_type constants.%int_3, %T.loc6_6.1 [symbolic = %array_type.loc6_29.1 (constants.%array_type.3ec)] -// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %array_type.loc6_29.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.b3f)] +// CHECK:STDOUT: %pattern_type.loc6_17: type = pattern_type %array_type.loc6_29.1 [symbolic = %pattern_type.loc6_17 (constants.%pattern_type.b3f)] // CHECK:STDOUT: %.loc6_35.2: Core.Form = init_form %T.loc6_6.1 [symbolic = %.loc6_35.2 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc6_32: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_32 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc6_35: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_35 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_29.1 [symbolic = %require_complete (constants.%require_complete)] @@ -317,9 +317,9 @@ fn G() { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc6_6.1 => constants.%T // CHECK:STDOUT: %array_type.loc6_29.1 => constants.%array_type.3ec -// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.b3f +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.b3f // CHECK:STDOUT: %.loc6_35.2 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc6_35 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete @@ -329,9 +329,9 @@ fn G() { // CHECK:STDOUT: specific @F(constants.%C) { // CHECK:STDOUT: %T.loc6_6.1 => constants.%C // CHECK:STDOUT: %array_type.loc6_29.1 => constants.%array_type.931 -// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.f21 +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.f21 // CHECK:STDOUT: %.loc6_35.2 => constants.%.a69 -// CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.7c7 +// CHECK:STDOUT: %pattern_type.loc6_35 => constants.%pattern_type.7c7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.c7a @@ -429,10 +429,10 @@ fn G() { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.cc9) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.cc9) = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.cc9) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.cc9) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6_55: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -456,8 +456,8 @@ fn G() { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -623,8 +623,8 @@ fn G() { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 1 [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.4d8) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.4d8) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.4d8) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.4d8) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_10.1: type = splice_block %.loc6_10.2 [concrete = type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -802,10 +802,10 @@ fn G() { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc6_16 (%pattern_type.b42) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.b42) = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_32 (%pattern_type.51d1c4.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_32 (%pattern_type.51d1c4.1) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc6_17 (%pattern_type.b42) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc6_17 (%pattern_type.b42) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_35 (%pattern_type.51d1c4.1) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_35 (%pattern_type.51d1c4.1) = return_slot_pattern %return.param_patt, %T.ref.loc6_35 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_35: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %.loc6_35.3: Core.Form = init_form %T.ref.loc6_35 [symbolic = %.loc6_35.2 (constants.%.184347.1)] @@ -825,8 +825,8 @@ fn G() { // CHECK:STDOUT: %return: ref @F.%T.loc6_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref.loc8 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc8_11.2: Core.Form = init_form %C.ref.loc8 [concrete = constants.%.a69] @@ -846,9 +846,9 @@ fn G() { // CHECK:STDOUT: generic fn @F(%T.loc6_6.2: type) { // CHECK:STDOUT: %T.loc6_6.1: type = symbolic_binding T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %array_type.loc6_29.1: type = array_type constants.%int_2, %T.loc6_6.1 [symbolic = %array_type.loc6_29.1 (constants.%array_type.a0b)] -// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %array_type.loc6_29.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.b42)] +// CHECK:STDOUT: %pattern_type.loc6_17: type = pattern_type %array_type.loc6_29.1 [symbolic = %pattern_type.loc6_17 (constants.%pattern_type.b42)] // CHECK:STDOUT: %.loc6_35.2: Core.Form = init_form %T.loc6_6.1 [symbolic = %.loc6_35.2 (constants.%.184347.1)] -// CHECK:STDOUT: %pattern_type.loc6_32: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_32 (constants.%pattern_type.51d1c4.1)] +// CHECK:STDOUT: %pattern_type.loc6_35: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_35 (constants.%pattern_type.51d1c4.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_29.1 [symbolic = %require_complete (constants.%require_complete)] @@ -913,9 +913,9 @@ fn G() { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc6_6.1 => constants.%T // CHECK:STDOUT: %array_type.loc6_29.1 => constants.%array_type.a0b -// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.b42 +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.b42 // CHECK:STDOUT: %.loc6_35.2 => constants.%.184347.1 -// CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.51d1c4.1 +// CHECK:STDOUT: %pattern_type.loc6_35 => constants.%pattern_type.51d1c4.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete @@ -925,9 +925,9 @@ fn G() { // CHECK:STDOUT: specific @F(constants.%C) { // CHECK:STDOUT: %T.loc6_6.1 => constants.%C // CHECK:STDOUT: %array_type.loc6_29.1 => constants.%array_type.158 -// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.6d3 +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.6d3 // CHECK:STDOUT: %.loc6_35.2 => constants.%.a69 -// CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.7c7 +// CHECK:STDOUT: %pattern_type.loc6_35 => constants.%pattern_type.7c7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.b8b @@ -1030,10 +1030,10 @@ fn G() { // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.cc9) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.cc9) = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.cc9) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.cc9) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc7_55: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -1057,8 +1057,8 @@ fn G() { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc9: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -1267,10 +1267,10 @@ fn G() { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.0fb) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.0fb) = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.0fb) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.0fb) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc6_41 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_41: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6_41: Core.Form = init_form %i32.loc6_41 [concrete = constants.%.ff5] @@ -1297,8 +1297,8 @@ fn G() { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -1456,8 +1456,8 @@ fn G() { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.0fb) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.0fb) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.0fb) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.0fb) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_10: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/deduce/binding_pattern.carbon b/toolchain/check/testdata/deduce/binding_pattern.carbon index 6899626b2a77..3834526e37e0 100644 --- a/toolchain/check/testdata/deduce/binding_pattern.carbon +++ b/toolchain/check/testdata/deduce/binding_pattern.carbon @@ -155,8 +155,8 @@ fn F(unused U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %C.Create.decl: @C.%C.Create.type (%C.Create.type.c11) = fn_decl @C.Create [symbolic = @C.%C.Create (constants.%C.Create.723)] { -// CHECK:STDOUT: %value.patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_binding_pattern value [concrete] -// CHECK:STDOUT: %value.param_patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern %value.patt [concrete] +// CHECK:STDOUT: %value.param_patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %value.patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = at_binding_pattern value, %value.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %value.param: @C.Create.%T (%T) = value_param call_param0 // CHECK:STDOUT: %T.ref: type = name_ref T, @C.%T.loc4_9.2 [symbolic = %T (constants.%T)] @@ -367,8 +367,8 @@ fn F(unused U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %C.Create.decl: @C.%C.Create.type (%C.Create.type.c11) = fn_decl @C.Create [symbolic = @C.%C.Create (constants.%C.Create.723)] { -// CHECK:STDOUT: %value.patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_binding_pattern value [concrete] -// CHECK:STDOUT: %value.param_patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern %value.patt [concrete] +// CHECK:STDOUT: %value.param_patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %value.patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = at_binding_pattern value, %value.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %value.param: @C.Create.%T (%T) = value_param call_param0 // CHECK:STDOUT: %T.ref: type = name_ref T, @C.%T.loc4_9.2 [symbolic = %T (constants.%T)] diff --git a/toolchain/check/testdata/deduce/generic_type.carbon b/toolchain/check/testdata/deduce/generic_type.carbon index f08c8bb338e2..953dd662397f 100644 --- a/toolchain/check/testdata/deduce/generic_type.carbon +++ b/toolchain/check/testdata/deduce/generic_type.carbon @@ -127,10 +127,10 @@ fn G() -> i32 { // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc7_16 (%pattern_type.3d5) = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc7_16 (%pattern_type.3d5) = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_25 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_25 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc7_17 (%pattern_type.3d5) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc7_17 (%pattern_type.3d5) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_28 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_28 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref.loc7_28 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc7_28: type = name_ref T, %T.loc7_6.2 [symbolic = %T.loc7_6.1 (constants.%T)] // CHECK:STDOUT: %.loc7_28.3: Core.Form = init_form %T.ref.loc7_28 [symbolic = %.loc7_28.2 (constants.%.184)] @@ -150,10 +150,10 @@ fn G() -> i32 { // CHECK:STDOUT: %return: ref @F.%T.loc7_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type.a7e = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.a7e = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.a7e = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.a7e = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern %return.param_patt, %D.ref.loc9_18 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc9_18: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %.loc9_18.2: Core.Form = init_form %D.ref.loc9_18 [concrete = constants.%.9a5] @@ -194,9 +194,9 @@ fn G() -> i32 { // CHECK:STDOUT: generic fn @F(%T.loc7_6.2: type) { // CHECK:STDOUT: %T.loc7_6.1: type = symbolic_binding T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] // CHECK:STDOUT: %C.loc7_22.1: type = class_type @C, @C(%T.loc7_6.1) [symbolic = %C.loc7_22.1 (constants.%C.5a3)] -// CHECK:STDOUT: %pattern_type.loc7_16: type = pattern_type %C.loc7_22.1 [symbolic = %pattern_type.loc7_16 (constants.%pattern_type.3d5)] +// CHECK:STDOUT: %pattern_type.loc7_17: type = pattern_type %C.loc7_22.1 [symbolic = %pattern_type.loc7_17 (constants.%pattern_type.3d5)] // CHECK:STDOUT: %.loc7_28.2: Core.Form = init_form %T.loc7_6.1 [symbolic = %.loc7_28.2 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc7_25: type = pattern_type %T.loc7_6.1 [symbolic = %pattern_type.loc7_25 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc7_28: type = pattern_type %T.loc7_6.1 [symbolic = %pattern_type.loc7_28 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc7_17: = require_complete_type %C.loc7_22.1 [symbolic = %require_complete.loc7_17 (constants.%require_complete.32c)] @@ -233,9 +233,9 @@ fn G() -> i32 { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc7_6.1 => constants.%T // CHECK:STDOUT: %C.loc7_22.1 => constants.%C.5a3 -// CHECK:STDOUT: %pattern_type.loc7_16 => constants.%pattern_type.3d5 +// CHECK:STDOUT: %pattern_type.loc7_17 => constants.%pattern_type.3d5 // CHECK:STDOUT: %.loc7_28.2 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc7_25 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc7_28 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc7_17 => constants.%require_complete.32c @@ -252,9 +252,9 @@ fn G() -> i32 { // CHECK:STDOUT: specific @F(constants.%D) { // CHECK:STDOUT: %T.loc7_6.1 => constants.%D // CHECK:STDOUT: %C.loc7_22.1 => constants.%C.302 -// CHECK:STDOUT: %pattern_type.loc7_16 => constants.%pattern_type.a7e +// CHECK:STDOUT: %pattern_type.loc7_17 => constants.%pattern_type.a7e // CHECK:STDOUT: %.loc7_28.2 => constants.%.9a5 -// CHECK:STDOUT: %pattern_type.loc7_25 => constants.%pattern_type.9c8 +// CHECK:STDOUT: %pattern_type.loc7_28 => constants.%pattern_type.9c8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc7_17 => constants.%complete_type @@ -317,10 +317,10 @@ fn G() -> i32 { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %p.patt: @F.%pattern_type (%pattern_type.7be) = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: @F.%pattern_type (%pattern_type.7be) = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: @F.%pattern_type (%pattern_type.7be) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @F.%pattern_type (%pattern_type.7be) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc7_28.2: Core.Form = init_form %C.ref [concrete = constants.%.a69] @@ -340,10 +340,10 @@ fn G() -> i32 { // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type.767 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.767 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.767 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.767 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref.loc9_18 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc9_18: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc9_18.2: Core.Form = init_form %C.ref.loc9_18 [concrete = constants.%.a69] @@ -519,10 +519,10 @@ fn G() -> i32 { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc13_26 (%pattern_type.0d1) = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc13_26 (%pattern_type.0d1) = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc13_48 (%pattern_type.eee) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc13_48 (%pattern_type.eee) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc13_27 (%pattern_type.0d1) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc13_27 (%pattern_type.0d1) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc13_56 (%pattern_type.eee) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc13_56 (%pattern_type.eee) = return_slot_pattern %return.param_patt, %.loc13_56.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc13_52: type = name_ref T, %T.loc13_6.2 [symbolic = %T.loc13_6.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc13_55: type = name_ref U, %U.loc13_16.2 [symbolic = %U.loc13_16.1 (constants.%U)] @@ -554,10 +554,10 @@ fn G() -> i32 { // CHECK:STDOUT: %return: ref @F.%tuple.type (%tuple.type.a5e) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type.204 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.204 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.881 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.881 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.204 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.204 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.881 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.881 = return_slot_pattern %return.param_patt, %.loc15_36.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc15_32: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %D.ref.loc15_35: type = name_ref D, file.%D.decl [concrete = constants.%D] @@ -644,11 +644,11 @@ fn G() -> i32 { // CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc13_6.1) [symbolic = %Inner.type (constants.%Inner.type.e0d)] // CHECK:STDOUT: %Inner.generic: @F.%Inner.type (%Inner.type.e0d) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.ada)] // CHECK:STDOUT: %Inner.loc13_45.1: type = class_type @Inner, @Inner(%T.loc13_6.1, %U.loc13_16.1) [symbolic = %Inner.loc13_45.1 (constants.%Inner.e21)] -// CHECK:STDOUT: %pattern_type.loc13_26: type = pattern_type %Inner.loc13_45.1 [symbolic = %pattern_type.loc13_26 (constants.%pattern_type.0d1)] +// CHECK:STDOUT: %pattern_type.loc13_27: type = pattern_type %Inner.loc13_45.1 [symbolic = %pattern_type.loc13_27 (constants.%pattern_type.0d1)] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%T.loc13_6.1, %U.loc13_16.1) [symbolic = %tuple (constants.%tuple.4b9)] // CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc13_6.1, %U.loc13_16.1) [symbolic = %tuple.type (constants.%tuple.type.a5e)] // CHECK:STDOUT: %.loc13_56.2: Core.Form = init_form %tuple.type [symbolic = %.loc13_56.2 (constants.%.f18)] -// CHECK:STDOUT: %pattern_type.loc13_48: type = pattern_type %tuple.type [symbolic = %pattern_type.loc13_48 (constants.%pattern_type.eee)] +// CHECK:STDOUT: %pattern_type.loc13_56: type = pattern_type %tuple.type [symbolic = %pattern_type.loc13_56 (constants.%pattern_type.eee)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_27: = require_complete_type %Inner.loc13_45.1 [symbolic = %require_complete.loc13_27 (constants.%require_complete.41c)] @@ -698,11 +698,11 @@ fn G() -> i32 { // CHECK:STDOUT: %Inner.type => constants.%Inner.type.e0d // CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.ada // CHECK:STDOUT: %Inner.loc13_45.1 => constants.%Inner.e21 -// CHECK:STDOUT: %pattern_type.loc13_26 => constants.%pattern_type.0d1 +// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.0d1 // CHECK:STDOUT: %tuple => constants.%tuple.4b9 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.a5e // CHECK:STDOUT: %.loc13_56.2 => constants.%.f18 -// CHECK:STDOUT: %pattern_type.loc13_48 => constants.%pattern_type.eee +// CHECK:STDOUT: %pattern_type.loc13_56 => constants.%pattern_type.eee // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_27 => constants.%require_complete.41c @@ -732,11 +732,11 @@ fn G() -> i32 { // CHECK:STDOUT: %Inner.type => constants.%Inner.type.e8c // CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.9a9 // CHECK:STDOUT: %Inner.loc13_45.1 => constants.%Inner.240 -// CHECK:STDOUT: %pattern_type.loc13_26 => constants.%pattern_type.204 +// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.204 // CHECK:STDOUT: %tuple => constants.%tuple.a0a // CHECK:STDOUT: %tuple.type => constants.%tuple.type.281 // CHECK:STDOUT: %.loc13_56.2 => constants.%.eae -// CHECK:STDOUT: %pattern_type.loc13_48 => constants.%pattern_type.881 +// CHECK:STDOUT: %pattern_type.loc13_56 => constants.%pattern_type.881 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_27 => constants.%complete_type.357 @@ -848,10 +848,10 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.43d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.43d) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.43d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.43d) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc6_44 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_44: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6_44: Core.Form = init_form %i32.loc6_44 [concrete = constants.%.ff5] @@ -871,8 +871,8 @@ fn G() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/deduce/int_float.carbon b/toolchain/check/testdata/deduce/int_float.carbon index 458f04e6962c..2b362ffda22d 100644 --- a/toolchain/check/testdata/deduce/int_float.carbon +++ b/toolchain/check/testdata/deduce/int_float.carbon @@ -96,10 +96,10 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %n.patt: @F.%pattern_type (%pattern_type.764) = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: @F.%pattern_type (%pattern_type.764) = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: @F.%pattern_type (%pattern_type.764) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @F.%pattern_type (%pattern_type.764) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc4_71.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref.loc4_55: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %IntLiteral.ref.loc4_59: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral] @@ -128,10 +128,10 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %return: ref Core.IntLiteral = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.patt: %pattern_type.95b = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.95b = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.95b = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.95b = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc8_33.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral] @@ -251,10 +251,10 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %n.patt: @F.%pattern_type (%pattern_type.7d0) = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: @F.%pattern_type (%pattern_type.7d0) = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: @F.%pattern_type (%pattern_type.7d0) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @F.%pattern_type (%pattern_type.7d0) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc4_73.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref.loc4_57: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %IntLiteral.ref.loc4_61: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral] @@ -283,10 +283,10 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %return: ref Core.IntLiteral = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.patt: %pattern_type.0ae = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.0ae = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.0ae = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.0ae = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc8_33.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral] diff --git a/toolchain/check/testdata/deduce/tuple.carbon b/toolchain/check/testdata/deduce/tuple.carbon index c6eb6e0dc4fd..b9895bbedd1b 100644 --- a/toolchain/check/testdata/deduce/tuple.carbon +++ b/toolchain/check/testdata/deduce/tuple.carbon @@ -111,10 +111,10 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %pair.patt: @F.%pattern_type.loc7_26 (%pattern_type.eee) = value_binding_pattern pair [concrete] -// CHECK:STDOUT: %pair.param_patt: @F.%pattern_type.loc7_26 (%pattern_type.eee) = value_param_pattern %pair.patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_40 (%pattern_type.946) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_40 (%pattern_type.946) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %pair.param_patt: @F.%pattern_type.loc7_30 (%pattern_type.eee) = value_param_pattern [concrete] +// CHECK:STDOUT: %pair.patt: @F.%pattern_type.loc7_30 (%pattern_type.eee) = at_binding_pattern pair, %pair.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_43 (%pattern_type.946) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_43 (%pattern_type.946) = return_slot_pattern %return.param_patt, %U.ref.loc7_43 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc7_43: type = name_ref U, %U.loc7_16.2 [symbolic = %U.loc7_16.1 (constants.%U)] // CHECK:STDOUT: %.loc7_43.3: Core.Form = init_form %U.ref.loc7_43 [symbolic = %.loc7_43.2 (constants.%.822)] @@ -140,10 +140,10 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %return: ref @F.%U.loc7_16.1 (%U) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %pair.patt: %pattern_type.881 = value_binding_pattern pair [concrete] -// CHECK:STDOUT: %pair.param_patt: %pattern_type.881 = value_param_pattern %pair.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %pair.param_patt: %pattern_type.881 = value_param_pattern [concrete] +// CHECK:STDOUT: %pair.patt: %pattern_type.881 = at_binding_pattern pair, %pair.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern %return.param_patt, %D.ref.loc9_23 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc9_23: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %.loc9_23.2: Core.Form = init_form %D.ref.loc9_23 [concrete = constants.%.9a5] @@ -181,9 +181,9 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %U.loc7_16.1: type = symbolic_binding U, 1 [symbolic = %U.loc7_16.1 (constants.%U)] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%T.loc7_6.1, %U.loc7_16.1) [symbolic = %tuple (constants.%tuple.4b9)] // CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc7_6.1, %U.loc7_16.1) [symbolic = %tuple.type (constants.%tuple.type.a5e)] -// CHECK:STDOUT: %pattern_type.loc7_26: type = pattern_type %tuple.type [symbolic = %pattern_type.loc7_26 (constants.%pattern_type.eee)] +// CHECK:STDOUT: %pattern_type.loc7_30: type = pattern_type %tuple.type [symbolic = %pattern_type.loc7_30 (constants.%pattern_type.eee)] // CHECK:STDOUT: %.loc7_43.2: Core.Form = init_form %U.loc7_16.1 [symbolic = %.loc7_43.2 (constants.%.822)] -// CHECK:STDOUT: %pattern_type.loc7_40: type = pattern_type %U.loc7_16.1 [symbolic = %pattern_type.loc7_40 (constants.%pattern_type.946)] +// CHECK:STDOUT: %pattern_type.loc7_43: type = pattern_type %U.loc7_16.1 [symbolic = %pattern_type.loc7_43 (constants.%pattern_type.946)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete)] @@ -215,9 +215,9 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %U.loc7_16.1 => constants.%U // CHECK:STDOUT: %tuple => constants.%tuple.4b9 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.a5e -// CHECK:STDOUT: %pattern_type.loc7_26 => constants.%pattern_type.eee +// CHECK:STDOUT: %pattern_type.loc7_30 => constants.%pattern_type.eee // CHECK:STDOUT: %.loc7_43.2 => constants.%.822 -// CHECK:STDOUT: %pattern_type.loc7_40 => constants.%pattern_type.946 +// CHECK:STDOUT: %pattern_type.loc7_43 => constants.%pattern_type.946 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete @@ -229,9 +229,9 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %U.loc7_16.1 => constants.%D // CHECK:STDOUT: %tuple => constants.%tuple.a0a // CHECK:STDOUT: %tuple.type => constants.%tuple.type.281 -// CHECK:STDOUT: %pattern_type.loc7_26 => constants.%pattern_type.881 +// CHECK:STDOUT: %pattern_type.loc7_30 => constants.%pattern_type.881 // CHECK:STDOUT: %.loc7_43.2 => constants.%.9a5 -// CHECK:STDOUT: %pattern_type.loc7_40 => constants.%pattern_type.9c8 +// CHECK:STDOUT: %pattern_type.loc7_43 => constants.%pattern_type.9c8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.734 @@ -353,10 +353,10 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %A.patt: %pattern_type.7ce = symbolic_binding_pattern A, 0 [concrete] // CHECK:STDOUT: %B.patt: %pattern_type.7ce = symbolic_binding_pattern B, 1 [concrete] -// CHECK:STDOUT: %h.patt: @F.%pattern_type (%pattern_type.dc2) = value_binding_pattern h [concrete] -// CHECK:STDOUT: %h.param_patt: @F.%pattern_type (%pattern_type.dc2) = value_param_pattern %h.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %h.param_patt: @F.%pattern_type (%pattern_type.dc2) = value_param_pattern [concrete] +// CHECK:STDOUT: %h.patt: @F.%pattern_type (%pattern_type.dc2) = at_binding_pattern h, %h.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc6_54 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_54: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6_54: Core.Form = init_form %i32.loc6_54 [concrete = constants.%.ff5] @@ -385,10 +385,10 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %h.patt: %pattern_type.530 = value_binding_pattern h [concrete] -// CHECK:STDOUT: %h.param_patt: %pattern_type.530 = value_param_pattern %h.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %h.param_patt: %pattern_type.530 = value_param_pattern [concrete] +// CHECK:STDOUT: %h.patt: %pattern_type.530 = at_binding_pattern h, %h.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8_29: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -554,10 +554,10 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %pair.patt: @F.%pattern_type.loc7_16 (%pattern_type.c3f) = value_binding_pattern pair [concrete] -// CHECK:STDOUT: %pair.param_patt: @F.%pattern_type.loc7_16 (%pattern_type.c3f) = value_param_pattern %pair.patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_30 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_30 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %pair.param_patt: @F.%pattern_type.loc7_20 (%pattern_type.c3f) = value_param_pattern [concrete] +// CHECK:STDOUT: %pair.patt: @F.%pattern_type.loc7_20 (%pattern_type.c3f) = at_binding_pattern pair, %pair.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_33 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_33 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref.loc7_33 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc7_33: type = name_ref T, %T.loc7_6.2 [symbolic = %T.loc7_6.1 (constants.%T)] // CHECK:STDOUT: %.loc7_33.2: Core.Form = init_form %T.ref.loc7_33 [symbolic = %.loc7_33.1 (constants.%.184)] @@ -578,10 +578,10 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %return: ref @F.%T.loc7_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %pair.patt: %pattern_type.881 = value_binding_pattern pair [concrete] -// CHECK:STDOUT: %pair.param_patt: %pattern_type.881 = value_param_pattern %pair.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %pair.param_patt: %pattern_type.881 = value_param_pattern [concrete] +// CHECK:STDOUT: %pair.patt: %pattern_type.881 = at_binding_pattern pair, %pair.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern %return.param_patt, %D.ref.loc9_23 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc9_23: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %.loc9_23: Core.Form = init_form %D.ref.loc9_23 [concrete = constants.%.9a5] @@ -618,9 +618,9 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %T.loc7_6.1: type = symbolic_binding T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%T.loc7_6.1, %T.loc7_6.1) [symbolic = %tuple (constants.%tuple.11e)] // CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc7_6.1, %T.loc7_6.1) [symbolic = %tuple.type (constants.%tuple.type.07a)] -// CHECK:STDOUT: %pattern_type.loc7_16: type = pattern_type %tuple.type [symbolic = %pattern_type.loc7_16 (constants.%pattern_type.c3f)] +// CHECK:STDOUT: %pattern_type.loc7_20: type = pattern_type %tuple.type [symbolic = %pattern_type.loc7_20 (constants.%pattern_type.c3f)] // CHECK:STDOUT: %.loc7_33.1: Core.Form = init_form %T.loc7_6.1 [symbolic = %.loc7_33.1 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc7_30: type = pattern_type %T.loc7_6.1 [symbolic = %pattern_type.loc7_30 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc7_33: type = pattern_type %T.loc7_6.1 [symbolic = %pattern_type.loc7_33 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%pair.param: @F.%tuple.type (%tuple.type.07a)) -> out %return.param: @F.%T.loc7_6.1 (%T); // CHECK:STDOUT: } @@ -636,8 +636,8 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %T.loc7_6.1 => constants.%T // CHECK:STDOUT: %tuple => constants.%tuple.11e // CHECK:STDOUT: %tuple.type => constants.%tuple.type.07a -// CHECK:STDOUT: %pattern_type.loc7_16 => constants.%pattern_type.c3f +// CHECK:STDOUT: %pattern_type.loc7_20 => constants.%pattern_type.c3f // CHECK:STDOUT: %.loc7_33.1 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc7_30 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc7_33 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/type_operator.carbon b/toolchain/check/testdata/deduce/type_operator.carbon index 36e8ea75814e..d705181f6040 100644 --- a/toolchain/check/testdata/deduce/type_operator.carbon +++ b/toolchain/check/testdata/deduce/type_operator.carbon @@ -114,10 +114,10 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_23 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_23 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_17 (%pattern_type.4f4) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6_17 (%pattern_type.4f4) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_26 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_26 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref.loc6_26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %.loc6_26.3: Core.Form = init_form %T.ref.loc6_26 [symbolic = %.loc6_26.2 (constants.%.184)] @@ -136,10 +136,10 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %return: ref @F.%T.loc6_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type.506 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.506 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref.loc8_16 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8_16: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc8_16.2: Core.Form = init_form %C.ref.loc8_16 [concrete = constants.%.a69] @@ -165,9 +165,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: generic fn @F(%T.loc6_6.2: type) { // CHECK:STDOUT: %T.loc6_6.1: type = symbolic_binding T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc6_20.1: type = ptr_type %T.loc6_6.1 [symbolic = %ptr.loc6_20.1 (constants.%ptr.e8f)] -// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_20.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.4f4)] +// CHECK:STDOUT: %pattern_type.loc6_17: type = pattern_type %ptr.loc6_20.1 [symbolic = %pattern_type.loc6_17 (constants.%pattern_type.4f4)] // CHECK:STDOUT: %.loc6_26.2: Core.Form = init_form %T.loc6_6.1 [symbolic = %.loc6_26.2 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc6_23: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_23 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc6_26: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_26 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_20.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.ef1)] @@ -198,9 +198,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc6_6.1 => constants.%T // CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.e8f -// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.4f4 +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.4f4 // CHECK:STDOUT: %.loc6_26.2 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc6_23 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc6_26 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.ef1 @@ -211,9 +211,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: specific @F(constants.%C) { // CHECK:STDOUT: %T.loc6_6.1 => constants.%C // CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.31e -// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.506 +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.506 // CHECK:STDOUT: %.loc6_26.2 => constants.%.a69 -// CHECK:STDOUT: %pattern_type.loc6_23 => constants.%pattern_type.7c7 +// CHECK:STDOUT: %pattern_type.loc6_26 => constants.%pattern_type.7c7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.17a @@ -270,10 +270,10 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_29 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_29 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_17 (%pattern_type.26f) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6_17 (%pattern_type.26f) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_32 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_32 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref.loc6_32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %.loc6_32.3: Core.Form = init_form %T.ref.loc6_32 [symbolic = %.loc6_32.2 (constants.%.184)] @@ -293,10 +293,10 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %return: ref @F.%T.loc6_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type.6eb = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.6eb = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.6eb = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.6eb = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref.loc8_22 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8_22: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc8_22.2: Core.Form = init_form %C.ref.loc8_22 [concrete = constants.%.a69] @@ -324,9 +324,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %T.loc6_6.1: type = symbolic_binding T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %const.loc6_19.1: type = const_type %T.loc6_6.1 [symbolic = %const.loc6_19.1 (constants.%const.4ff)] // CHECK:STDOUT: %ptr.loc6_26.1: type = ptr_type %const.loc6_19.1 [symbolic = %ptr.loc6_26.1 (constants.%ptr.a15)] -// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_26.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.26f)] +// CHECK:STDOUT: %pattern_type.loc6_17: type = pattern_type %ptr.loc6_26.1 [symbolic = %pattern_type.loc6_17 (constants.%pattern_type.26f)] // CHECK:STDOUT: %.loc6_32.2: Core.Form = init_form %T.loc6_6.1 [symbolic = %.loc6_32.2 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc6_29: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_29 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc6_32: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_32 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_26.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.0c1)] @@ -358,9 +358,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %T.loc6_6.1 => constants.%T // CHECK:STDOUT: %const.loc6_19.1 => constants.%const.4ff // CHECK:STDOUT: %ptr.loc6_26.1 => constants.%ptr.a15 -// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.26f +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.26f // CHECK:STDOUT: %.loc6_32.2 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc6_29 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.0c1 @@ -372,9 +372,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %T.loc6_6.1 => constants.%C // CHECK:STDOUT: %const.loc6_19.1 => constants.%const.0e5 // CHECK:STDOUT: %ptr.loc6_26.1 => constants.%ptr.c45 -// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.6eb +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.6eb // CHECK:STDOUT: %.loc6_32.2 => constants.%.a69 -// CHECK:STDOUT: %pattern_type.loc6_29 => constants.%pattern_type.7c7 +// CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.7c7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.e6f @@ -430,10 +430,10 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_23 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_23 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_17 (%pattern_type.4f4) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6_17 (%pattern_type.4f4) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_26 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_26 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref.loc6_26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %.loc6_26.3: Core.Form = init_form %T.ref.loc6_26 [symbolic = %.loc6_26.2 (constants.%.184)] @@ -452,10 +452,10 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %return: ref @F.%T.loc6_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type.6eb = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.6eb = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.03b = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.03b = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.6eb = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.6eb = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.03b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.03b = return_slot_pattern %return.param_patt, %const.loc8_22 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8_28: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %const.loc8_22: type = const_type %C.ref.loc8_28 [concrete = constants.%const] @@ -483,9 +483,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: generic fn @F(%T.loc6_6.2: type) { // CHECK:STDOUT: %T.loc6_6.1: type = symbolic_binding T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc6_20.1: type = ptr_type %T.loc6_6.1 [symbolic = %ptr.loc6_20.1 (constants.%ptr.e8f)] -// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_20.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.4f4)] +// CHECK:STDOUT: %pattern_type.loc6_17: type = pattern_type %ptr.loc6_20.1 [symbolic = %pattern_type.loc6_17 (constants.%pattern_type.4f4)] // CHECK:STDOUT: %.loc6_26.2: Core.Form = init_form %T.loc6_6.1 [symbolic = %.loc6_26.2 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc6_23: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_23 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc6_26: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_26 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_20.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.ef1)] @@ -516,9 +516,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc6_6.1 => constants.%T // CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.e8f -// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.4f4 +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.4f4 // CHECK:STDOUT: %.loc6_26.2 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc6_23 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc6_26 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.ef1 @@ -529,9 +529,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: specific @F(constants.%const) { // CHECK:STDOUT: %T.loc6_6.1 => constants.%const // CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.c45 -// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.6eb +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.6eb // CHECK:STDOUT: %.loc6_26.2 => constants.%.007 -// CHECK:STDOUT: %pattern_type.loc6_23 => constants.%pattern_type.03b +// CHECK:STDOUT: %pattern_type.loc6_26 => constants.%pattern_type.03b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.e6f @@ -586,10 +586,10 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_29 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_29 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_17 (%pattern_type.26f) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6_17 (%pattern_type.26f) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_32 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_32 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref.loc6_32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %.loc6_32.3: Core.Form = init_form %T.ref.loc6_32 [symbolic = %.loc6_32.2 (constants.%.184)] @@ -609,10 +609,10 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %return: ref @F.%T.loc6_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type.506 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.03b = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.03b = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.506 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.03b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.03b = return_slot_pattern %return.param_patt, %const [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8_22: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %const: type = const_type %C.ref.loc8_22 [concrete = constants.%const.0e5] @@ -640,9 +640,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %T.loc6_6.1: type = symbolic_binding T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %const.loc6_19.1: type = const_type %T.loc6_6.1 [symbolic = %const.loc6_19.1 (constants.%const.4ff)] // CHECK:STDOUT: %ptr.loc6_26.1: type = ptr_type %const.loc6_19.1 [symbolic = %ptr.loc6_26.1 (constants.%ptr.a15)] -// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_26.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.26f)] +// CHECK:STDOUT: %pattern_type.loc6_17: type = pattern_type %ptr.loc6_26.1 [symbolic = %pattern_type.loc6_17 (constants.%pattern_type.26f)] // CHECK:STDOUT: %.loc6_32.2: Core.Form = init_form %T.loc6_6.1 [symbolic = %.loc6_32.2 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc6_29: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_29 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc6_32: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_32 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_26.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.0c1)] @@ -671,9 +671,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %T.loc6_6.1 => constants.%T // CHECK:STDOUT: %const.loc6_19.1 => constants.%const.4ff // CHECK:STDOUT: %ptr.loc6_26.1 => constants.%ptr.a15 -// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.26f +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.26f // CHECK:STDOUT: %.loc6_32.2 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc6_29 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.0c1 diff --git a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon index 08ab802373e6..ed8244b78cd3 100644 --- a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon +++ b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon @@ -184,10 +184,10 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.f1e = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc8_27 (%pattern_type.17d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc8_27 (%pattern_type.17d) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc8_51 (%pattern_type.e66) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc8_51 (%pattern_type.e66) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc8_28 (%pattern_type.17d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc8_28 (%pattern_type.17d) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc8_52 (%pattern_type.e66) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc8_52 (%pattern_type.e66) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_17.1: type = splice_block %.loc8_17.3 [concrete = constants.%tuple.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -240,9 +240,9 @@ fn G() { // CHECK:STDOUT: generic fn @F(%T.loc8_6.2: %tuple.type) { // CHECK:STDOUT: %T.loc8_6.1: %tuple.type = symbolic_binding T, 0 [symbolic = %T.loc8_6.1 (constants.%T)] // CHECK:STDOUT: %HoldsType.loc8_41.1: type = class_type @HoldsType, @HoldsType(%T.loc8_6.1) [symbolic = %HoldsType.loc8_41.1 (constants.%HoldsType.f6a)] -// CHECK:STDOUT: %pattern_type.loc8_27: type = pattern_type %HoldsType.loc8_41.1 [symbolic = %pattern_type.loc8_27 (constants.%pattern_type.17d)] +// CHECK:STDOUT: %pattern_type.loc8_28: type = pattern_type %HoldsType.loc8_41.1 [symbolic = %pattern_type.loc8_28 (constants.%pattern_type.17d)] // CHECK:STDOUT: %tuple.elem0.loc8_55.1: type = tuple_access %T.loc8_6.1, element0 [symbolic = %tuple.elem0.loc8_55.1 (constants.%tuple.elem0)] -// CHECK:STDOUT: %pattern_type.loc8_51: type = pattern_type %tuple.elem0.loc8_55.1 [symbolic = %pattern_type.loc8_51 (constants.%pattern_type.e66)] +// CHECK:STDOUT: %pattern_type.loc8_52: type = pattern_type %tuple.elem0.loc8_55.1 [symbolic = %pattern_type.loc8_52 (constants.%pattern_type.e66)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8_28: = require_complete_type %HoldsType.loc8_41.1 [symbolic = %require_complete.loc8_28 (constants.%require_complete.7bf)] @@ -297,9 +297,9 @@ fn G() { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc8_6.1 => constants.%T // CHECK:STDOUT: %HoldsType.loc8_41.1 => constants.%HoldsType.f6a -// CHECK:STDOUT: %pattern_type.loc8_27 => constants.%pattern_type.17d +// CHECK:STDOUT: %pattern_type.loc8_28 => constants.%pattern_type.17d // CHECK:STDOUT: %tuple.elem0.loc8_55.1 => constants.%tuple.elem0 -// CHECK:STDOUT: %pattern_type.loc8_51 => constants.%pattern_type.e66 +// CHECK:STDOUT: %pattern_type.loc8_52 => constants.%pattern_type.e66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%tuple.1f1) { @@ -311,9 +311,9 @@ fn G() { // CHECK:STDOUT: specific @F(constants.%tuple.1f1) { // CHECK:STDOUT: %T.loc8_6.1 => constants.%tuple.1f1 // CHECK:STDOUT: %HoldsType.loc8_41.1 => constants.%HoldsType.a31 -// CHECK:STDOUT: %pattern_type.loc8_27 => constants.%pattern_type.a646 +// CHECK:STDOUT: %pattern_type.loc8_28 => constants.%pattern_type.a646 // CHECK:STDOUT: %tuple.elem0.loc8_55.1 => constants.%C -// CHECK:STDOUT: %pattern_type.loc8_51 => constants.%pattern_type.7c7 +// CHECK:STDOUT: %pattern_type.loc8_52 => constants.%pattern_type.7c7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8_28 => constants.%complete_type @@ -389,10 +389,10 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.7f2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc8_29 (%pattern_type.2de) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc8_29 (%pattern_type.2de) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc8_53 (%pattern_type.92c) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc8_53 (%pattern_type.92c) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc8_30 (%pattern_type.2de) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc8_30 (%pattern_type.2de) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc8_54 (%pattern_type.92c) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc8_54 (%pattern_type.92c) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_19: type = splice_block %struct_type.t [concrete = constants.%struct_type.t] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -443,9 +443,9 @@ fn G() { // CHECK:STDOUT: generic fn @F(%T.loc8_6.2: %struct_type.t) { // CHECK:STDOUT: %T.loc8_6.1: %struct_type.t = symbolic_binding T, 0 [symbolic = %T.loc8_6.1 (constants.%T)] // CHECK:STDOUT: %HoldsType.loc8_43.1: type = class_type @HoldsType, @HoldsType(%T.loc8_6.1) [symbolic = %HoldsType.loc8_43.1 (constants.%HoldsType.cac)] -// CHECK:STDOUT: %pattern_type.loc8_29: type = pattern_type %HoldsType.loc8_43.1 [symbolic = %pattern_type.loc8_29 (constants.%pattern_type.2de)] +// CHECK:STDOUT: %pattern_type.loc8_30: type = pattern_type %HoldsType.loc8_43.1 [symbolic = %pattern_type.loc8_30 (constants.%pattern_type.2de)] // CHECK:STDOUT: %.loc8_57.1: type = struct_access %T.loc8_6.1, element0 [symbolic = %.loc8_57.1 (constants.%.424)] -// CHECK:STDOUT: %pattern_type.loc8_53: type = pattern_type %.loc8_57.1 [symbolic = %pattern_type.loc8_53 (constants.%pattern_type.92c)] +// CHECK:STDOUT: %pattern_type.loc8_54: type = pattern_type %.loc8_57.1 [symbolic = %pattern_type.loc8_54 (constants.%pattern_type.92c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8_30: = require_complete_type %HoldsType.loc8_43.1 [symbolic = %require_complete.loc8_30 (constants.%require_complete.276)] @@ -500,9 +500,9 @@ fn G() { // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc8_6.1 => constants.%T // CHECK:STDOUT: %HoldsType.loc8_43.1 => constants.%HoldsType.cac -// CHECK:STDOUT: %pattern_type.loc8_29 => constants.%pattern_type.2de +// CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.2de // CHECK:STDOUT: %.loc8_57.1 => constants.%.424 -// CHECK:STDOUT: %pattern_type.loc8_53 => constants.%pattern_type.92c +// CHECK:STDOUT: %pattern_type.loc8_54 => constants.%pattern_type.92c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%struct) { @@ -514,9 +514,9 @@ fn G() { // CHECK:STDOUT: specific @F(constants.%struct) { // CHECK:STDOUT: %T.loc8_6.1 => constants.%struct // CHECK:STDOUT: %HoldsType.loc8_43.1 => constants.%HoldsType.673 -// CHECK:STDOUT: %pattern_type.loc8_29 => constants.%pattern_type.4e6 +// CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.4e6 // CHECK:STDOUT: %.loc8_57.1 => constants.%C -// CHECK:STDOUT: %pattern_type.loc8_53 => constants.%pattern_type.7c7 +// CHECK:STDOUT: %pattern_type.loc8_54 => constants.%pattern_type.7c7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8_30 => constants.%complete_type @@ -606,10 +606,10 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.904 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.3b8) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.3b8) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %a.patt: = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.3b8) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.3b8) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc21_10: type = splice_block %Class.ref [concrete = constants.%Class] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -630,7 +630,7 @@ fn G() { // CHECK:STDOUT: %.loc21_52.2: ref type = class_element_access %T.ref.loc21_51, element0 [symbolic = %.loc21_52.1 (constants.%.208)] // CHECK:STDOUT: %.loc21_52.3: type = acquire_value %.loc21_52.2 // CHECK:STDOUT: } -// CHECK:STDOUT: %a: = value_binding a, %a.param +// CHECK:STDOUT: %a: = value_binding a, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { @@ -862,10 +862,10 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.dcb = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.342) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.342) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %a.patt: = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.342) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.342) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12_23: type = splice_block %array_type [concrete = constants.%array_type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -896,7 +896,7 @@ fn G() { // CHECK:STDOUT: %.loc12_63.2: ref type = array_index %.loc12_63.1, %.loc12_62.2 // CHECK:STDOUT: %.loc12_63.3: type = acquire_value %.loc12_63.2 // CHECK:STDOUT: } -// CHECK:STDOUT: %a: = value_binding a, %a.param +// CHECK:STDOUT: %a: = value_binding a, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} diff --git a/toolchain/check/testdata/facet/access.carbon b/toolchain/check/testdata/facet/access.carbon index e8666322da65..ca84b405dd17 100644 --- a/toolchain/check/testdata/facet/access.carbon +++ b/toolchain/check/testdata/facet/access.carbon @@ -527,10 +527,10 @@ fn F2(U:! Z) { // CHECK:STDOUT: file { // CHECK:STDOUT: %Use.decl: %Use.type = fn_decl @Use [concrete = constants.%Use] { // CHECK:STDOUT: %T.patt: %pattern_type.9d9 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @Use.%pattern_type (%pattern_type.422) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @Use.%pattern_type (%pattern_type.422) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @Use.%pattern_type (%pattern_type.422) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Use.%pattern_type (%pattern_type.422) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @Use.%pattern_type (%pattern_type.422) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Use.%pattern_type (%pattern_type.422) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Use.%pattern_type (%pattern_type.422) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Use.%pattern_type (%pattern_type.422) = return_slot_pattern %return.param_patt, %.loc9_24.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_24: %I.type = name_ref T, %T.loc9_8.2 [symbolic = %T.loc9_8.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc9_24: type = facet_access_type %T.ref.loc9_24 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -714,8 +714,8 @@ fn F2(U:! Z) { // CHECK:STDOUT: %A.decl: type = interface_decl @A [concrete = constants.%A.type] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %AA.patt: %pattern_type.dc8 = symbolic_binding_pattern AA, 0 [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc6_33 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AA.ref: %A_where.type = name_ref AA, %AA.loc6_6.2 [symbolic = %AA.loc6_6.1 (constants.%AA)] // CHECK:STDOUT: %AA.as_type: type = facet_access_type %AA.ref [symbolic = %AA.binding.as_type (constants.%AA.binding.as_type)] @@ -852,8 +852,8 @@ fn F2(U:! Z) { // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %AB.patt: %pattern_type.77e = symbolic_binding_pattern AB, 0 [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc14_49 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AB.ref: %facet_type.82c = name_ref AB, %AB.loc14_6.2 [symbolic = %AB.loc14_6.1 (constants.%AB)] // CHECK:STDOUT: %AB.as_type: type = facet_access_type %AB.ref [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)] @@ -897,8 +897,8 @@ fn F2(U:! Z) { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %AB.patt: %pattern_type.77e = symbolic_binding_pattern AB, 0 [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern %return.param_patt, %impl.elem0.loc18_49 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AB.ref: %facet_type.82c = name_ref AB, %AB.loc18_6.2 [symbolic = %AB.loc18_6.1 (constants.%AB)] // CHECK:STDOUT: %AB.as_type: type = facet_access_type %AB.ref [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)] diff --git a/toolchain/check/testdata/facet/call_combined_impl_witness.carbon b/toolchain/check/testdata/facet/call_combined_impl_witness.carbon index 797bcc94126d..f189b2a86b65 100644 --- a/toolchain/check/testdata/facet/call_combined_impl_witness.carbon +++ b/toolchain/check/testdata/facet/call_combined_impl_witness.carbon @@ -176,8 +176,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %T.patt: %pattern_type.773 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @G.%pattern_type (%pattern_type.2ee) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @G.%pattern_type (%pattern_type.2ee) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.param_patt: @G.%pattern_type (%pattern_type.2ee) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @G.%pattern_type (%pattern_type.2ee) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc33_20.1: type = splice_block %.loc33_20.3 [concrete = constants.%facet_type.dc7] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon b/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon index 4185c89edcc2..2969a20b8a39 100644 --- a/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon +++ b/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon @@ -501,8 +501,8 @@ fn G() { // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type.loc15_39 (%pattern_type.c49) = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %t.patt: @CallGenericMethod.%pattern_type.loc15_62 (%pattern_type.51d) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @CallGenericMethod.%pattern_type.loc15_62 (%pattern_type.51d) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.param_patt: @CallGenericMethod.%pattern_type.loc15_63 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @CallGenericMethod.%pattern_type.loc15_63 (%pattern_type.51d) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_26.1: type = splice_block %.loc15_26.2 [concrete = type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -587,7 +587,7 @@ fn G() { // CHECK:STDOUT: %Generic.type.loc15_52.1: type = facet_type <@Generic, @Generic(%T.loc15_22.1)> [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.03dff7.2)] // CHECK:STDOUT: %U.loc15_39.1: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.03dff7.2) = symbolic_binding U, 1 [symbolic = %U.loc15_39.1 (constants.%U)] // CHECK:STDOUT: %pattern_type.loc15_39: type = pattern_type %Generic.type.loc15_52.1 [symbolic = %pattern_type.loc15_39 (constants.%pattern_type.c49)] -// CHECK:STDOUT: %pattern_type.loc15_62: type = pattern_type %T.loc15_22.1 [symbolic = %pattern_type.loc15_62 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc15_63: type = pattern_type %T.loc15_22.1 [symbolic = %pattern_type.loc15_63 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.loc15_22.1 [symbolic = %require_complete (constants.%require_complete)] @@ -669,7 +669,7 @@ fn G() { // CHECK:STDOUT: %Generic.type.loc15_52.1 => constants.%Generic.type.03dff7.2 // CHECK:STDOUT: %U.loc15_39.1 => constants.%U // CHECK:STDOUT: %pattern_type.loc15_39 => constants.%pattern_type.c49 -// CHECK:STDOUT: %pattern_type.loc15_62 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc15_63 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) { @@ -677,7 +677,7 @@ fn G() { // CHECK:STDOUT: %Generic.type.loc15_52.1 => constants.%Generic.type.498 // CHECK:STDOUT: %U.loc15_39.1 => constants.%Generic.facet // CHECK:STDOUT: %pattern_type.loc15_39 => constants.%pattern_type.cba -// CHECK:STDOUT: %pattern_type.loc15_62 => constants.%pattern_type.27a +// CHECK:STDOUT: %pattern_type.loc15_63 => constants.%pattern_type.27a // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type diff --git a/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon index 5e2493ac5a7b..9fd83fc28ffc 100644 --- a/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon +++ b/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon @@ -75,8 +75,8 @@ fn F() { // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %WalkAnimal.decl: %WalkAnimal.type = fn_decl @WalkAnimal [concrete = constants.%WalkAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.patt: @WalkAnimal.%pattern_type (%pattern_type.892) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @WalkAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @WalkAnimal.%pattern_type (%pattern_type.892) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @WalkAnimal.%pattern_type (%pattern_type.892) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_19: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon index 0030617213c7..315a9c6d6dfc 100644 --- a/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon +++ b/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon @@ -206,10 +206,10 @@ fn B() { // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type.loc15_32 (%pattern_type.c49) = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %a.patt: @CallGenericMethod.%pattern_type.loc15_55 (%pattern_type.46f) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @CallGenericMethod.%pattern_type.loc15_55 (%pattern_type.46f) = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %s.patt: @CallGenericMethod.%pattern_type.loc15_68 (%pattern_type.51d) = value_binding_pattern s [concrete] -// CHECK:STDOUT: %s.param_patt: @CallGenericMethod.%pattern_type.loc15_68 (%pattern_type.51d) = value_param_pattern %s.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @CallGenericMethod.%pattern_type.loc15_56 (%pattern_type.46f) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @CallGenericMethod.%pattern_type.loc15_56 (%pattern_type.46f) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %s.param_patt: @CallGenericMethod.%pattern_type.loc15_69 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %s.patt: @CallGenericMethod.%pattern_type.loc15_69 (%pattern_type.51d) = at_binding_pattern s, %s.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_26.1: type = splice_block %.loc15_26.2 [concrete = type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -302,8 +302,8 @@ fn B() { // CHECK:STDOUT: %U.loc15_32.1: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.03dff7.2) = symbolic_binding U, 1 [symbolic = %U.loc15_32.1 (constants.%U)] // CHECK:STDOUT: %pattern_type.loc15_32: type = pattern_type %Generic.type.loc15_45.1 [symbolic = %pattern_type.loc15_32 (constants.%pattern_type.c49)] // CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U.loc15_32.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc15_55: type = pattern_type %U.binding.as_type [symbolic = %pattern_type.loc15_55 (constants.%pattern_type.46f)] -// CHECK:STDOUT: %pattern_type.loc15_68: type = pattern_type %T.loc15_22.1 [symbolic = %pattern_type.loc15_68 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc15_56: type = pattern_type %U.binding.as_type [symbolic = %pattern_type.loc15_56 (constants.%pattern_type.46f)] +// CHECK:STDOUT: %pattern_type.loc15_69: type = pattern_type %T.loc15_22.1 [symbolic = %pattern_type.loc15_69 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc15_56: = require_complete_type %U.binding.as_type [symbolic = %require_complete.loc15_56 (constants.%require_complete.186)] @@ -428,8 +428,8 @@ fn B() { // CHECK:STDOUT: %U.loc15_32.1 => constants.%U // CHECK:STDOUT: %pattern_type.loc15_32 => constants.%pattern_type.c49 // CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type -// CHECK:STDOUT: %pattern_type.loc15_55 => constants.%pattern_type.46f -// CHECK:STDOUT: %pattern_type.loc15_68 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc15_56 => constants.%pattern_type.46f +// CHECK:STDOUT: %pattern_type.loc15_69 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf(constants.%T, constants.%U) { @@ -451,8 +451,8 @@ fn B() { // CHECK:STDOUT: %U.loc15_32.1 => constants.%Generic.facet // CHECK:STDOUT: %pattern_type.loc15_32 => constants.%pattern_type.cba // CHECK:STDOUT: %U.binding.as_type => constants.%ImplsGeneric -// CHECK:STDOUT: %pattern_type.loc15_55 => constants.%pattern_type.4da -// CHECK:STDOUT: %pattern_type.loc15_68 => constants.%pattern_type.27a +// CHECK:STDOUT: %pattern_type.loc15_56 => constants.%pattern_type.4da +// CHECK:STDOUT: %pattern_type.loc15_69 => constants.%pattern_type.27a // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc15_56 => constants.%complete_type.357 @@ -564,8 +564,8 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %T.patt: %pattern_type.eee = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.826) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.826) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.826) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.826) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_18.1: type = splice_block %I.type [concrete = constants.%I.type.5f7] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -822,8 +822,8 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %T.patt: %pattern_type.24a = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.ced) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.ced) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.ced) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.ced) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_18.1: type = splice_block %I.type [concrete = constants.%I.type.7b9] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1049,8 +1049,8 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %T.patt: %pattern_type.9d9 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.422) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.422) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.422) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.422) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_10: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon b/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon index d1885a1054c2..5cf7f620d051 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon @@ -259,6 +259,6 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: %B.loc25_13.1 => constants.%B // CHECK:STDOUT: %pattern_type.loc25_13 => constants.%pattern_type.14f // CHECK:STDOUT: %C.loc25_29.1 => constants.%C -// CHECK:STDOUT: %pattern_type.loc25_20 => constants.%pattern_type.e04 +// CHECK:STDOUT: %pattern_type.loc25_21 => constants.%pattern_type.e04 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon b/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon index 35de7b729f22..1131192e2c19 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon @@ -153,8 +153,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { // CHECK:STDOUT: %T.patt: %pattern_type.0dc = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.93e) = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.93e) = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -171,8 +171,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %U.patt: %pattern_type.37f = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.256) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.256) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.256) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.256) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -356,8 +356,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Tame.decl: type = interface_decl @Tame [concrete = constants.%Tame.type] {} {} // CHECK:STDOUT: %FeedTame.decl: %FeedTame.type = fn_decl @FeedTame [concrete = constants.%FeedTame] { // CHECK:STDOUT: %V.patt: %pattern_type.fa7 = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %v.patt: @FeedTame.%pattern_type (%pattern_type.795) = value_binding_pattern v [concrete] -// CHECK:STDOUT: %v.param_patt: @FeedTame.%pattern_type (%pattern_type.795) = value_param_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.param_patt: @FeedTame.%pattern_type (%pattern_type.795) = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: @FeedTame.%pattern_type (%pattern_type.795) = at_binding_pattern v, %v.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_22.1: type = splice_block %.loc7_22.3 [concrete = constants.%facet_type.2db] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -380,8 +380,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %HandleTameAnimal.decl: %HandleTameAnimal.type = fn_decl @HandleTameAnimal [concrete = constants.%HandleTameAnimal] { // CHECK:STDOUT: %W.patt: %pattern_type.fb4 = symbolic_binding_pattern W, 0 [concrete] -// CHECK:STDOUT: %w.patt: @HandleTameAnimal.%pattern_type (%pattern_type.e8e) = value_binding_pattern w [concrete] -// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal.%pattern_type (%pattern_type.e8e) = value_param_pattern %w.patt [concrete] +// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal.%pattern_type (%pattern_type.e8e) = value_param_pattern [concrete] +// CHECK:STDOUT: %w.patt: @HandleTameAnimal.%pattern_type (%pattern_type.e8e) = at_binding_pattern w, %w.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_39.1: type = splice_block %.loc9_39.3 [concrete = constants.%facet_type.206] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -607,8 +607,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %FeedTame2.decl: %FeedTame2.type = fn_decl @FeedTame2 [concrete = constants.%FeedTame2] { // CHECK:STDOUT: %V.patt: %pattern_type.fa7 = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %v.patt: @FeedTame2.%pattern_type (%pattern_type.795) = value_binding_pattern v [concrete] -// CHECK:STDOUT: %v.param_patt: @FeedTame2.%pattern_type (%pattern_type.795) = value_param_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.param_patt: @FeedTame2.%pattern_type (%pattern_type.795) = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: @FeedTame2.%pattern_type (%pattern_type.795) = at_binding_pattern v, %v.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.3 [concrete = constants.%facet_type.2db] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -631,8 +631,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %HandleTameAnimal2.decl: %HandleTameAnimal2.type = fn_decl @HandleTameAnimal2 [concrete = constants.%HandleTameAnimal2] { // CHECK:STDOUT: %W.patt: %pattern_type.310 = symbolic_binding_pattern W, 0 [concrete] -// CHECK:STDOUT: %w.patt: @HandleTameAnimal2.%pattern_type (%pattern_type.da7) = value_binding_pattern w [concrete] -// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal2.%pattern_type (%pattern_type.da7) = value_param_pattern %w.patt [concrete] +// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal2.%pattern_type (%pattern_type.da7) = value_param_pattern [concrete] +// CHECK:STDOUT: %w.patt: @HandleTameAnimal2.%pattern_type (%pattern_type.da7) = at_binding_pattern w, %w.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_33.1: type = splice_block %.loc11_33.3 [concrete = constants.%facet_type.afc] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -840,8 +840,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %A.decl: type = interface_decl @A [concrete = constants.%A.type] {} {} // CHECK:STDOUT: %TakesA.decl: %TakesA.type = fn_decl @TakesA [concrete = constants.%TakesA] { // CHECK:STDOUT: %T.patt: %pattern_type.faf = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @TakesA.%pattern_type (%pattern_type.057cf4.1) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @TakesA.%pattern_type (%pattern_type.057cf4.1) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @TakesA.%pattern_type (%pattern_type.057cf4.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @TakesA.%pattern_type (%pattern_type.057cf4.1) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_15: type = splice_block %A.ref [concrete = constants.%A.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -858,8 +858,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %WithExtraWhere.decl: %WithExtraWhere.type = fn_decl @WithExtraWhere [concrete = constants.%WithExtraWhere] { // CHECK:STDOUT: %U.patt: %pattern_type.faf = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %y.patt: @WithExtraWhere.%pattern_type (%pattern_type.057cf4.2) = value_binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: @WithExtraWhere.%pattern_type (%pattern_type.057cf4.2) = value_param_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.param_patt: @WithExtraWhere.%pattern_type (%pattern_type.057cf4.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @WithExtraWhere.%pattern_type (%pattern_type.057cf4.2) = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_25.1: type = splice_block %.loc9_25.2 [concrete = constants.%A.type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -1002,8 +1002,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %TakesTypeDeduced.decl: %TakesTypeDeduced.type = fn_decl @TakesTypeDeduced [concrete = constants.%TakesTypeDeduced] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_25.1: type = splice_block %.loc3_25.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -1016,8 +1016,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %CallsWithExtraWhere.decl: %CallsWithExtraWhere.type = fn_decl @CallsWithExtraWhere [concrete = constants.%CallsWithExtraWhere] { // CHECK:STDOUT: %U.patt: %pattern_type.9a5 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %y.patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.349) = value_binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.349) = value_param_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.param_patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.349) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.349) = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_33.1: type = splice_block %.loc4_33.2 [concrete = constants.%type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -1212,8 +1212,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %TakesExtraWhereDeduced.decl: %TakesExtraWhereDeduced.type = fn_decl @TakesExtraWhereDeduced [concrete = constants.%TakesExtraWhereDeduced] { // CHECK:STDOUT: %T.patt: %pattern_type.9a5 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.349) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.349) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.349) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.349) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_36.1: type = splice_block %.loc3_36.2 [concrete = constants.%type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -1237,8 +1237,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %CallsWithType.decl: %CallsWithType.type = fn_decl @CallsWithType [concrete = constants.%CallsWithType] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %y.patt: @CallsWithType.%pattern_type (%pattern_type.51d) = value_binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: @CallsWithType.%pattern_type (%pattern_type.51d) = value_param_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.param_patt: @CallsWithType.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @CallsWithType.%pattern_type (%pattern_type.51d) = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_22.1: type = splice_block %.loc4_22.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon index 146fcdd24e6f..9cb350d4a792 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon @@ -89,8 +89,8 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: } // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { // CHECK:STDOUT: %T.patt: %pattern_type.0dc = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.93e) = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.93e) = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc20_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -107,8 +107,8 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.892) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc22_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon index aa03ad6c65a6..f80a4b35b2fe 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon @@ -193,10 +193,10 @@ fn F() { // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { // CHECK:STDOUT: %Food.patt: %pattern_type.b51 = symbolic_binding_pattern Food, 0 [concrete] // CHECK:STDOUT: %T.patt: @Feed.%pattern_type.loc31_24 (%pattern_type.350) = symbolic_binding_pattern T, 1 [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type.loc31_47 (%pattern_type.2b9) = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type.loc31_47 (%pattern_type.2b9) = value_param_pattern %e.patt [concrete] -// CHECK:STDOUT: %food.patt: @Feed.%pattern_type.loc31_60 (%pattern_type.12a) = value_binding_pattern food [concrete] -// CHECK:STDOUT: %food.param_patt: @Feed.%pattern_type.loc31_60 (%pattern_type.12a) = value_param_pattern %food.patt [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type.loc31_48 (%pattern_type.2b9) = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type.loc31_48 (%pattern_type.2b9) = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %food.param_patt: @Feed.%pattern_type.loc31_64 (%pattern_type.12a) = value_param_pattern [concrete] +// CHECK:STDOUT: %food.patt: @Feed.%pattern_type.loc31_64 (%pattern_type.12a) = at_binding_pattern food, %food.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc31_16: type = splice_block %Edible.ref [concrete = constants.%Edible.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -230,10 +230,10 @@ fn F() { // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %A.patt: %pattern_type.e10 = symbolic_binding_pattern A, 0 [concrete] // CHECK:STDOUT: %Food.patt: %pattern_type.b51 = symbolic_binding_pattern Food, 1 [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type.loc32_44 (%pattern_type.892) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type.loc32_44 (%pattern_type.892) = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %food.patt: @HandleAnimal.%pattern_type.loc32_50 (%pattern_type.9ed) = value_binding_pattern food [concrete] -// CHECK:STDOUT: %food.param_patt: @HandleAnimal.%pattern_type.loc32_50 (%pattern_type.9ed) = value_param_pattern %food.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type.loc32_45 (%pattern_type.892) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type.loc32_45 (%pattern_type.892) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %food.param_patt: @HandleAnimal.%pattern_type.loc32_54 (%pattern_type.9ed) = value_param_pattern [concrete] +// CHECK:STDOUT: %food.patt: @HandleAnimal.%pattern_type.loc32_54 (%pattern_type.9ed) = at_binding_pattern food, %food.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc32_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -363,8 +363,8 @@ fn F() { // CHECK:STDOUT: %T.loc31_24.1: @Feed.%Eats.type.loc31_37.1 (%Eats.type.570) = symbolic_binding T, 1 [symbolic = %T.loc31_24.1 (constants.%T.2b9)] // CHECK:STDOUT: %pattern_type.loc31_24: type = pattern_type %Eats.type.loc31_37.1 [symbolic = %pattern_type.loc31_24 (constants.%pattern_type.350)] // CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 1, %T.loc31_24.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.8ae)] -// CHECK:STDOUT: %pattern_type.loc31_47: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc31_47 (constants.%pattern_type.2b9)] -// CHECK:STDOUT: %pattern_type.loc31_60: type = pattern_type %Food.binding.as_type [symbolic = %pattern_type.loc31_60 (constants.%pattern_type.12a)] +// CHECK:STDOUT: %pattern_type.loc31_48: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc31_48 (constants.%pattern_type.2b9)] +// CHECK:STDOUT: %pattern_type.loc31_64: type = pattern_type %Food.binding.as_type [symbolic = %pattern_type.loc31_64 (constants.%pattern_type.12a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc31_48: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc31_48 (constants.%require_complete.0c1)] @@ -380,9 +380,9 @@ fn F() { // CHECK:STDOUT: %A.loc32_17.1: %Animal.type = symbolic_binding A, 0 [symbolic = %A.loc32_17.1 (constants.%A)] // CHECK:STDOUT: %Food.loc32_29.1: %Edible.type = symbolic_binding Food, 1 [symbolic = %Food.loc32_29.1 (constants.%Food.2fc)] // CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A.loc32_17.1 [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc32_44: type = pattern_type %A.binding.as_type [symbolic = %pattern_type.loc32_44 (constants.%pattern_type.892)] +// CHECK:STDOUT: %pattern_type.loc32_45: type = pattern_type %A.binding.as_type [symbolic = %pattern_type.loc32_45 (constants.%pattern_type.892)] // CHECK:STDOUT: %Food.binding.as_type: type = symbolic_binding_type Food, 1, %Food.loc32_29.1 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.e7e)] -// CHECK:STDOUT: %pattern_type.loc32_50: type = pattern_type %Food.binding.as_type [symbolic = %pattern_type.loc32_50 (constants.%pattern_type.9ed)] +// CHECK:STDOUT: %pattern_type.loc32_54: type = pattern_type %Food.binding.as_type [symbolic = %pattern_type.loc32_54 (constants.%pattern_type.9ed)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc32_45: = require_complete_type %A.binding.as_type [symbolic = %require_complete.loc32_45 (constants.%require_complete.72f)] @@ -507,17 +507,17 @@ fn F() { // CHECK:STDOUT: %T.loc31_24.1 => constants.%T.2b9 // CHECK:STDOUT: %pattern_type.loc31_24 => constants.%pattern_type.350 // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.8ae -// CHECK:STDOUT: %pattern_type.loc31_47 => constants.%pattern_type.2b9 -// CHECK:STDOUT: %pattern_type.loc31_60 => constants.%pattern_type.12a +// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.2b9 +// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.12a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%A, constants.%Food.2fc) { // CHECK:STDOUT: %A.loc32_17.1 => constants.%A // CHECK:STDOUT: %Food.loc32_29.1 => constants.%Food.2fc // CHECK:STDOUT: %A.binding.as_type => constants.%A.binding.as_type -// CHECK:STDOUT: %pattern_type.loc32_44 => constants.%pattern_type.892 +// CHECK:STDOUT: %pattern_type.loc32_45 => constants.%pattern_type.892 // CHECK:STDOUT: %Food.binding.as_type => constants.%Food.binding.as_type.e7e -// CHECK:STDOUT: %pattern_type.loc32_50 => constants.%pattern_type.9ed +// CHECK:STDOUT: %pattern_type.loc32_54 => constants.%pattern_type.9ed // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats(constants.%Food.binding.as_type.e7e) { @@ -543,8 +543,8 @@ fn F() { // CHECK:STDOUT: %T.loc31_24.1 => constants.%Eats.facet.702 // CHECK:STDOUT: %pattern_type.loc31_24 => constants.%pattern_type.67b // CHECK:STDOUT: %T.binding.as_type => constants.%A.binding.as_type -// CHECK:STDOUT: %pattern_type.loc31_47 => constants.%pattern_type.892 -// CHECK:STDOUT: %pattern_type.loc31_60 => constants.%pattern_type.9ed +// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.892 +// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.9ed // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc31_48 => constants.%require_complete.72f @@ -555,9 +555,9 @@ fn F() { // CHECK:STDOUT: %A.loc32_17.1 => constants.%Animal.facet // CHECK:STDOUT: %Food.loc32_29.1 => constants.%Edible.facet // CHECK:STDOUT: %A.binding.as_type => constants.%Goat -// CHECK:STDOUT: %pattern_type.loc32_44 => constants.%pattern_type.234 +// CHECK:STDOUT: %pattern_type.loc32_45 => constants.%pattern_type.234 // CHECK:STDOUT: %Food.binding.as_type => constants.%Grass -// CHECK:STDOUT: %pattern_type.loc32_50 => constants.%pattern_type.df6 +// CHECK:STDOUT: %pattern_type.loc32_54 => constants.%pattern_type.df6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc32_45 => constants.%complete_type.357 @@ -600,8 +600,8 @@ fn F() { // CHECK:STDOUT: %T.loc31_24.1 => constants.%Eats.facet.a4e // CHECK:STDOUT: %pattern_type.loc31_24 => constants.%pattern_type.968 // CHECK:STDOUT: %T.binding.as_type => constants.%Goat -// CHECK:STDOUT: %pattern_type.loc31_47 => constants.%pattern_type.234 -// CHECK:STDOUT: %pattern_type.loc31_60 => constants.%pattern_type.df6 +// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.234 +// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.df6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc31_48 => constants.%complete_type.357 diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon index 98bf98bb6da0..4445c78f563d 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon @@ -82,8 +82,8 @@ fn F() { // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %FeedAnimal.decl: %FeedAnimal.type = fn_decl @FeedAnimal [concrete = constants.%FeedAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.patt: @FeedAnimal.%pattern_type (%pattern_type.892) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @FeedAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @FeedAnimal.%pattern_type (%pattern_type.892) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @FeedAnimal.%pattern_type (%pattern_type.892) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_19: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -100,8 +100,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.892) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc19_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/facet/convert_interface.carbon b/toolchain/check/testdata/facet/convert_interface.carbon index defe65fa4c76..9dd77af8827f 100644 --- a/toolchain/check/testdata/facet/convert_interface.carbon +++ b/toolchain/check/testdata/facet/convert_interface.carbon @@ -62,8 +62,8 @@ fn G() { F(Animal); } // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %e.patt: %pattern_type = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: %pattern_type = value_param_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %Eats.type = value_param call_param0 // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] diff --git a/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon b/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon index 8308fb065a6d..4d627afc202d 100644 --- a/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon +++ b/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon @@ -71,8 +71,8 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { // CHECK:STDOUT: %T.patt: %pattern_type.0dc = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.93e) = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.93e) = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -89,8 +89,8 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.892) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc27_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon b/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon index fd837a5cb829..3b9e1f787304 100644 --- a/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon +++ b/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon @@ -136,8 +136,8 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.f1e = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %A.patt: @F.%pattern_type.loc27_27 (%pattern_type.e66) = symbolic_binding_pattern A, 1 [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc27_43 (%pattern_type.17d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc27_43 (%pattern_type.17d) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc27_44 (%pattern_type.17d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc27_44 (%pattern_type.17d) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc27_17.1: type = splice_block %.loc27_17.3 [concrete = constants.%tuple.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -162,8 +162,8 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: %x: @F.%HoldsType.loc27_57.1 (%HoldsType.f6a) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %holds_to.patt: %pattern_type.c6f = value_binding_pattern holds_to [concrete] -// CHECK:STDOUT: %holds_to.param_patt: %pattern_type.c6f = value_param_pattern %holds_to.patt [concrete] +// CHECK:STDOUT: %holds_to.param_patt: %pattern_type.c6f = value_param_pattern [concrete] +// CHECK:STDOUT: %holds_to.patt: %pattern_type.c6f = at_binding_pattern holds_to, %holds_to.param_patt [concrete] // CHECK:STDOUT: %from.patt: %pattern_type.6bd = symbolic_binding_pattern from, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %holds_to.param: %HoldsType.0ca = value_param call_param0 @@ -186,10 +186,10 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: // CHECK:STDOUT: impl @RuntimeConvertFrom.as.ImplicitAs.impl: %RuntimeConvertFrom.ref as %ImplicitAs.type { // CHECK:STDOUT: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.decl: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.type = fn_decl @RuntimeConvertFrom.as.ImplicitAs.impl.Convert [concrete = constants.%RuntimeConvertFrom.as.ImplicitAs.impl.Convert] { -// CHECK:STDOUT: %self.patt: %pattern_type.6bd = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.6bd = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.c89 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c89 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.6bd = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.6bd = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c89 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c89 = return_slot_pattern %return.param_patt, %RuntimeConvertTo.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %RuntimeConvertTo.ref: type = name_ref RuntimeConvertTo, file.%RuntimeConvertTo.decl [concrete = constants.%RuntimeConvertTo] // CHECK:STDOUT: %.loc24_38: Core.Form = init_form %RuntimeConvertTo.ref [concrete = constants.%.993] @@ -252,7 +252,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: %A.loc27_27.1: @F.%tuple.elem0.loc27_32.1 (%tuple.elem0) = symbolic_binding A, 1 [symbolic = %A.loc27_27.1 (constants.%A)] // CHECK:STDOUT: %pattern_type.loc27_27: type = pattern_type %tuple.elem0.loc27_32.1 [symbolic = %pattern_type.loc27_27 (constants.%pattern_type.e66)] // CHECK:STDOUT: %HoldsType.loc27_57.1: type = class_type @HoldsType, @HoldsType(%T.loc27_6.1) [symbolic = %HoldsType.loc27_57.1 (constants.%HoldsType.f6a)] -// CHECK:STDOUT: %pattern_type.loc27_43: type = pattern_type %HoldsType.loc27_57.1 [symbolic = %pattern_type.loc27_43 (constants.%pattern_type.17d)] +// CHECK:STDOUT: %pattern_type.loc27_44: type = pattern_type %HoldsType.loc27_57.1 [symbolic = %pattern_type.loc27_44 (constants.%pattern_type.17d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc27_57.1 [symbolic = %require_complete (constants.%require_complete)] @@ -305,7 +305,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: %A.loc27_27.1 => constants.%A // CHECK:STDOUT: %pattern_type.loc27_27 => constants.%pattern_type.e66 // CHECK:STDOUT: %HoldsType.loc27_57.1 => constants.%HoldsType.f6a -// CHECK:STDOUT: %pattern_type.loc27_43 => constants.%pattern_type.17d +// CHECK:STDOUT: %pattern_type.loc27_44 => constants.%pattern_type.17d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%tuple.b95) { @@ -324,6 +324,6 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: %A.loc27_27.1 => // CHECK:STDOUT: %pattern_type.loc27_27 => constants.%pattern_type.c89 // CHECK:STDOUT: %HoldsType.loc27_57.1 => constants.%HoldsType.0ca -// CHECK:STDOUT: %pattern_type.loc27_43 => constants.%pattern_type.c6f +// CHECK:STDOUT: %pattern_type.loc27_44 => constants.%pattern_type.c6f // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/period_self.carbon b/toolchain/check/testdata/facet/period_self.carbon index f660be5a6654..dbd3f6c54973 100644 --- a/toolchain/check/testdata/facet/period_self.carbon +++ b/toolchain/check/testdata/facet/period_self.carbon @@ -399,8 +399,8 @@ fn F[U:! Core.Destroy where .Self impls I(.Self)](u: U) { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.033 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc8_39 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc8_6.2 [symbolic = %T.loc8_6.1 (constants.%T.706)] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -436,8 +436,8 @@ fn F[U:! Core.Destroy where .Self impls I(.Self)](u: U) { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %T.patt: %pattern_type.033 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc12_47 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc12_6.2 [symbolic = %T.loc12_6.1 (constants.%T.706)] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] diff --git a/toolchain/check/testdata/facet/self_in_interface_param.carbon b/toolchain/check/testdata/facet/self_in_interface_param.carbon index e1f8f63232bc..c48628e6eb9a 100644 --- a/toolchain/check/testdata/facet/self_in_interface_param.carbon +++ b/toolchain/check/testdata/facet/self_in_interface_param.carbon @@ -53,8 +53,8 @@ fn G(_:! I(.Self) where .I1 = ()) {} // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.033 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc18_39 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc18_6.2 [symbolic = %T.loc18_6.1 (constants.%T.706)] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] diff --git a/toolchain/check/testdata/for/actual.carbon b/toolchain/check/testdata/for/actual.carbon index a522daca5b0a..7f981a9f97d3 100644 --- a/toolchain/check/testdata/for/actual.carbon +++ b/toolchain/check/testdata/for/actual.carbon @@ -276,10 +276,10 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %N.loc4_16.2: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N.loc4_16.1 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %Range.decl: %Range.type = fn_decl @Range [concrete = constants.%Range] { -// CHECK:STDOUT: %end.patt: %pattern_type.7ce = value_binding_pattern end [concrete] -// CHECK:STDOUT: %end.param_patt: %pattern_type.7ce = value_param_pattern %end.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.615 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.615 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %end.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %end.patt: %pattern_type.7ce = at_binding_pattern end, %end.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.615 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.615 = return_slot_pattern %return.param_patt, %IntRange.loc26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %IntRange.ref.loc26: %IntRange.type = name_ref IntRange, file.%IntRange.decl [concrete = constants.%IntRange.generic] // CHECK:STDOUT: %int_32.loc26: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] @@ -314,10 +314,10 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: // CHECK:STDOUT: impl: %Self.ref as %.loc9_24 { // CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor.decl: @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.NewCursor.type (%IntRange.as.Iterate.impl.NewCursor.type) = fn_decl @IntRange.as.Iterate.impl.NewCursor [symbolic = @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.NewCursor (constants.%IntRange.as.Iterate.impl.NewCursor)] { -// CHECK:STDOUT: %self.patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_18 (%pattern_type.b16) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_18 (%pattern_type.b16) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_32 (%pattern_type.764eab.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_32 (%pattern_type.764eab.1) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_22 (%pattern_type.b16) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_22 (%pattern_type.b16) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_45 (%pattern_type.764eab.1) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_45 (%pattern_type.764eab.1) = return_slot_pattern %return.param_patt, %Int.loc10_45.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] @@ -334,12 +334,12 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %return: ref @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.fc6021.1) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %IntRange.as.Iterate.impl.Next.decl: @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.Next.type (%IntRange.as.Iterate.impl.Next.type) = fn_decl @IntRange.as.Iterate.impl.Next [symbolic = @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.Next (constants.%IntRange.as.Iterate.impl.Next)] { -// CHECK:STDOUT: %self.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_13 (%pattern_type.b16) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_13 (%pattern_type.b16) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %cursor.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_25 (%pattern_type.bda) = value_binding_pattern cursor [concrete] -// CHECK:STDOUT: %cursor.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_25 (%pattern_type.bda) = value_param_pattern %cursor.patt [concrete] -// CHECK:STDOUT: %return.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_47 (%pattern_type.0c2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_47 (%pattern_type.0c2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_17 (%pattern_type.b16) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_17 (%pattern_type.b16) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %cursor.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_31 (%pattern_type.bda) = value_param_pattern [concrete] +// CHECK:STDOUT: %cursor.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_31 (%pattern_type.bda) = at_binding_pattern cursor, %cursor.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_75 (%pattern_type.0c2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_75 (%pattern_type.0c2) = return_slot_pattern %return.param_patt, %Optional.loc11_75.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref.loc11_50: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Optional.ref.loc11: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] @@ -398,12 +398,12 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %IntRange.Make.decl: @IntRange.%IntRange.Make.type (%IntRange.Make.type.1df) = fn_decl @IntRange.Make [symbolic = @IntRange.%IntRange.Make (constants.%IntRange.Make.8a9)] { -// CHECK:STDOUT: %start.patt: @IntRange.Make.%pattern_type.loc5_11 (%pattern_type.764eab.1) = value_binding_pattern start [concrete] -// CHECK:STDOUT: %start.param_patt: @IntRange.Make.%pattern_type.loc5_11 (%pattern_type.764eab.1) = value_param_pattern %start.patt [concrete] -// CHECK:STDOUT: %end.patt: @IntRange.Make.%pattern_type.loc5_11 (%pattern_type.764eab.1) = value_binding_pattern end [concrete] -// CHECK:STDOUT: %end.param_patt: @IntRange.Make.%pattern_type.loc5_11 (%pattern_type.764eab.1) = value_param_pattern %end.patt [concrete] -// CHECK:STDOUT: %return.patt: @IntRange.Make.%pattern_type.loc5_49 (%pattern_type.b16) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @IntRange.Make.%pattern_type.loc5_49 (%pattern_type.b16) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %start.param_patt: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.764eab.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %start.patt: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.764eab.1) = at_binding_pattern start, %start.param_patt [concrete] +// CHECK:STDOUT: %end.param_patt: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.764eab.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %end.patt: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.764eab.1) = at_binding_pattern end, %end.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @IntRange.Make.%pattern_type.loc5_52 (%pattern_type.b16) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @IntRange.Make.%pattern_type.loc5_52 (%pattern_type.b16) = return_slot_pattern %return.param_patt, %Self.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_52.2: type = specific_constant constants.%IntRange.265, @IntRange(constants.%N) [symbolic = %IntRange (constants.%IntRange.265)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc5_52.2 [symbolic = %IntRange (constants.%IntRange.265)] @@ -483,10 +483,10 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: generic fn @IntRange.Make(@IntRange.%N.loc4_16.2: Core.IntLiteral) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %Int.loc5_28.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc5_28.1 (constants.%Int.fc6021.1)] -// CHECK:STDOUT: %pattern_type.loc5_11: type = pattern_type %Int.loc5_28.1 [symbolic = %pattern_type.loc5_11 (constants.%pattern_type.764eab.1)] +// CHECK:STDOUT: %pattern_type.loc5_16: type = pattern_type %Int.loc5_28.1 [symbolic = %pattern_type.loc5_16 (constants.%pattern_type.764eab.1)] // CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.265)] // CHECK:STDOUT: %.loc5_52.1: Core.Form = init_form %IntRange [symbolic = %.loc5_52.1 (constants.%.e1e)] -// CHECK:STDOUT: %pattern_type.loc5_49: type = pattern_type %IntRange [symbolic = %pattern_type.loc5_49 (constants.%pattern_type.b16)] +// CHECK:STDOUT: %pattern_type.loc5_52: type = pattern_type %IntRange [symbolic = %pattern_type.loc5_52 (constants.%pattern_type.b16)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_16: = require_complete_type %Int.loc5_28.1 [symbolic = %require_complete.loc5_16 (constants.%require_complete.9019d7.1)] @@ -528,10 +528,10 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: generic fn @IntRange.as.Iterate.impl.NewCursor(@IntRange.%N.loc4_16.2: Core.IntLiteral) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.265)] -// CHECK:STDOUT: %pattern_type.loc10_18: type = pattern_type %IntRange [symbolic = %pattern_type.loc10_18 (constants.%pattern_type.b16)] +// CHECK:STDOUT: %pattern_type.loc10_22: type = pattern_type %IntRange [symbolic = %pattern_type.loc10_22 (constants.%pattern_type.b16)] // CHECK:STDOUT: %Int.loc10_45.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc10_45.1 (constants.%Int.fc6021.1)] // CHECK:STDOUT: %.loc10_45.1: Core.Form = init_form %Int.loc10_45.1 [symbolic = %.loc10_45.1 (constants.%.83cba3.1)] -// CHECK:STDOUT: %pattern_type.loc10_32: type = pattern_type %Int.loc10_45.1 [symbolic = %pattern_type.loc10_32 (constants.%pattern_type.764eab.1)] +// CHECK:STDOUT: %pattern_type.loc10_45: type = pattern_type %Int.loc10_45.1 [symbolic = %pattern_type.loc10_45 (constants.%pattern_type.764eab.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc10_22: = require_complete_type %IntRange [symbolic = %require_complete.loc10_22 (constants.%require_complete.8a1)] @@ -563,10 +563,10 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: generic fn @IntRange.as.Iterate.impl.Next(@IntRange.%N.loc4_16.2: Core.IntLiteral) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.265)] -// CHECK:STDOUT: %pattern_type.loc11_13: type = pattern_type %IntRange [symbolic = %pattern_type.loc11_13 (constants.%pattern_type.b16)] +// CHECK:STDOUT: %pattern_type.loc11_17: type = pattern_type %IntRange [symbolic = %pattern_type.loc11_17 (constants.%pattern_type.b16)] // CHECK:STDOUT: %Int.loc11_43.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc11_43.1 (constants.%Int.fc6021.1)] // CHECK:STDOUT: %ptr.loc11_44.1: type = ptr_type %Int.loc11_43.1 [symbolic = %ptr.loc11_44.1 (constants.%ptr.c9c)] -// CHECK:STDOUT: %pattern_type.loc11_25: type = pattern_type %ptr.loc11_44.1 [symbolic = %pattern_type.loc11_25 (constants.%pattern_type.bda)] +// CHECK:STDOUT: %pattern_type.loc11_31: type = pattern_type %ptr.loc11_44.1 [symbolic = %pattern_type.loc11_31 (constants.%pattern_type.bda)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.93c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.7a8)] // CHECK:STDOUT: %facet_value: %facet_type.7e2 = facet_value %Int.loc11_43.1, (%Destroy.lookup_impl_witness, %Copy.lookup_impl_witness) [symbolic = %facet_value (constants.%facet_value)] @@ -575,7 +575,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %OptionalStorage.facet.loc11_75.1: %OptionalStorage.type = facet_value %Int.loc11_43.1, (%OptionalStorage.lookup_impl_witness) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.01e)] // CHECK:STDOUT: %Optional.loc11_75.1: type = class_type @Optional, @Optional(%OptionalStorage.facet.loc11_75.1) [symbolic = %Optional.loc11_75.1 (constants.%Optional.e48)] // CHECK:STDOUT: %.loc11_75.4: Core.Form = init_form %Optional.loc11_75.1 [symbolic = %.loc11_75.4 (constants.%.949)] -// CHECK:STDOUT: %pattern_type.loc11_47: type = pattern_type %Optional.loc11_75.1 [symbolic = %pattern_type.loc11_47 (constants.%pattern_type.0c2)] +// CHECK:STDOUT: %pattern_type.loc11_75: type = pattern_type %Optional.loc11_75.1 [symbolic = %pattern_type.loc11_75 (constants.%pattern_type.0c2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc11_17: = require_complete_type %IntRange [symbolic = %require_complete.loc11_17 (constants.%require_complete.8a1)] @@ -759,10 +759,10 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: specific @IntRange.Make(constants.%N) { // CHECK:STDOUT: %N => constants.%N // CHECK:STDOUT: %Int.loc5_28.1 => constants.%Int.fc6021.1 -// CHECK:STDOUT: %pattern_type.loc5_11 => constants.%pattern_type.764eab.1 +// CHECK:STDOUT: %pattern_type.loc5_16 => constants.%pattern_type.764eab.1 // CHECK:STDOUT: %IntRange => constants.%IntRange.265 // CHECK:STDOUT: %.loc5_52.1 => constants.%.e1e -// CHECK:STDOUT: %pattern_type.loc5_49 => constants.%pattern_type.b16 +// CHECK:STDOUT: %pattern_type.loc5_52 => constants.%pattern_type.b16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange.as.Iterate.impl(constants.%N) { @@ -788,19 +788,19 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: specific @IntRange.as.Iterate.impl.NewCursor(constants.%N) { // CHECK:STDOUT: %N => constants.%N // CHECK:STDOUT: %IntRange => constants.%IntRange.265 -// CHECK:STDOUT: %pattern_type.loc10_18 => constants.%pattern_type.b16 +// CHECK:STDOUT: %pattern_type.loc10_22 => constants.%pattern_type.b16 // CHECK:STDOUT: %Int.loc10_45.1 => constants.%Int.fc6021.1 // CHECK:STDOUT: %.loc10_45.1 => constants.%.83cba3.1 -// CHECK:STDOUT: %pattern_type.loc10_32 => constants.%pattern_type.764eab.1 +// CHECK:STDOUT: %pattern_type.loc10_45 => constants.%pattern_type.764eab.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange.as.Iterate.impl.Next(constants.%N) { // CHECK:STDOUT: %N => constants.%N // CHECK:STDOUT: %IntRange => constants.%IntRange.265 -// CHECK:STDOUT: %pattern_type.loc11_13 => constants.%pattern_type.b16 +// CHECK:STDOUT: %pattern_type.loc11_17 => constants.%pattern_type.b16 // CHECK:STDOUT: %Int.loc11_43.1 => constants.%Int.fc6021.1 // CHECK:STDOUT: %ptr.loc11_44.1 => constants.%ptr.c9c -// CHECK:STDOUT: %pattern_type.loc11_25 => constants.%pattern_type.bda +// CHECK:STDOUT: %pattern_type.loc11_31 => constants.%pattern_type.bda // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.lookup_impl_witness.93c // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.7a8 // CHECK:STDOUT: %facet_value => constants.%facet_value @@ -809,7 +809,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %OptionalStorage.facet.loc11_75.1 => constants.%OptionalStorage.facet.01e // CHECK:STDOUT: %Optional.loc11_75.1 => constants.%Optional.e48 // CHECK:STDOUT: %.loc11_75.4 => constants.%.949 -// CHECK:STDOUT: %pattern_type.loc11_47 => constants.%pattern_type.0c2 +// CHECK:STDOUT: %pattern_type.loc11_75 => constants.%pattern_type.0c2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange(constants.%int_32) { @@ -830,10 +830,10 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: specific @IntRange.Make(constants.%int_32) { // CHECK:STDOUT: %N => constants.%int_32 // CHECK:STDOUT: %Int.loc5_28.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type.loc5_11 => constants.%pattern_type.7ce +// CHECK:STDOUT: %pattern_type.loc5_16 => constants.%pattern_type.7ce // CHECK:STDOUT: %IntRange => constants.%IntRange.a89 // CHECK:STDOUT: %.loc5_52.1 => constants.%.aec -// CHECK:STDOUT: %pattern_type.loc5_49 => constants.%pattern_type.615 +// CHECK:STDOUT: %pattern_type.loc5_52 => constants.%pattern_type.615 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_16 => constants.%complete_type.f8a diff --git a/toolchain/check/testdata/function/builtin/adapted_type.carbon b/toolchain/check/testdata/function/builtin/adapted_type.carbon index 3bd56fd5409d..e9d1f152816d 100644 --- a/toolchain/check/testdata/function/builtin/adapted_type.carbon +++ b/toolchain/check/testdata/function/builtin/adapted_type.carbon @@ -92,8 +92,8 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: .v = %v // CHECK:STDOUT: } // CHECK:STDOUT: %IntLiteral.decl: %IntLiteral.type = fn_decl @IntLiteral [concrete = constants.%IntLiteral] { -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc4_20.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_20.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc4_20.2: Core.Form = init_form %.loc4_20.1 [concrete = constants.%.805] @@ -102,10 +102,10 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: } // CHECK:STDOUT: %MyIntLiteral.decl: type = class_decl @MyIntLiteral [concrete = constants.%MyIntLiteral] {} {} // CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] { -// CHECK:STDOUT: %N.patt: %pattern_type.d59 = value_binding_pattern N [concrete] -// CHECK:STDOUT: %N.param_patt: %pattern_type.d59 = value_param_pattern %N.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %N.param_patt: %pattern_type.d59 = value_param_pattern [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.d59 = at_binding_pattern N, %N.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc10_28.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_28.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc10_28.2: Core.Form = init_form %.loc10_28.1 [concrete = constants.%.805] @@ -117,10 +117,10 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: } // CHECK:STDOUT: %MyInt32.decl: type = class_decl @MyInt32 [concrete = constants.%MyInt32] {} {} // CHECK:STDOUT: %MyInt32.Make.decl: %MyInt32.Make.type = fn_decl @MyInt32.Make [concrete = constants.%MyInt32.Make] { -// CHECK:STDOUT: %a.patt: %pattern_type.d59 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.d59 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.4d1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.4d1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.d59 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d59 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.4d1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.4d1 = return_slot_pattern %return.param_patt, %MyInt32.ref.loc18 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %MyInt32.ref.loc18: type = name_ref MyInt32, file.%MyInt32.decl [concrete = constants.%MyInt32] // CHECK:STDOUT: %.loc18: Core.Form = init_form %MyInt32.ref.loc18 [concrete = constants.%.c88] @@ -131,12 +131,12 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: %return.loc18: ref %MyInt32 = return_slot %return.param.loc18 // CHECK:STDOUT: } // CHECK:STDOUT: %MyAdd.decl: %MyAdd.type = fn_decl @MyAdd [concrete = constants.%MyAdd] { -// CHECK:STDOUT: %a.patt: %pattern_type.4d1 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.4d1 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.4d1 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.4d1 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.4d1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.4d1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.4d1 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4d1 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.4d1 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.4d1 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.4d1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.4d1 = return_slot_pattern %return.param_patt, %MyInt32.ref.loc20_37 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %MyInt32.ref.loc20_37: type = name_ref MyInt32, file.%MyInt32.decl [concrete = constants.%MyInt32] // CHECK:STDOUT: %.loc20: Core.Form = init_form %MyInt32.ref.loc20_37 [concrete = constants.%.c88] @@ -183,10 +183,10 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: %.loc13_32.2: type = converted %Int.call, %.loc13_32.1 [concrete = constants.%i32.builtin] // CHECK:STDOUT: adapt_decl %.loc13_32.2 [concrete] // CHECK:STDOUT: %MyInt32.Make.decl: %MyInt32.Make.type = fn_decl @MyInt32.Make [concrete = constants.%MyInt32.Make] { -// CHECK:STDOUT: %a.patt: %pattern_type.d59 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.d59 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.4d1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.4d1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.d59 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d59 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.4d1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.4d1 = return_slot_pattern %return.param_patt, %MyInt32.ref.loc18 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %MyInt32.ref.loc15: type = name_ref MyInt32, file.%MyInt32.decl [concrete = constants.%MyInt32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %MyInt32.ref.loc15 [concrete = constants.%.c88] @@ -262,10 +262,10 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: } // CHECK:STDOUT: %MyIntLiteral.decl: type = class_decl @MyIntLiteral [concrete = constants.%MyIntLiteral] {} {} // CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] { -// CHECK:STDOUT: %N.patt: %pattern_type.d59 = value_binding_pattern N [concrete] -// CHECK:STDOUT: %N.param_patt: %pattern_type.d59 = value_param_pattern %N.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %N.param_patt: %pattern_type.d59 = value_param_pattern [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.d59 = at_binding_pattern N, %N.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc12_28.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12_28.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc12_28.2: Core.Form = init_form %.loc12_28.1 [concrete = constants.%.805] diff --git a/toolchain/check/testdata/function/builtin/call.carbon b/toolchain/check/testdata/function/builtin/call.carbon index 4103202f90f9..e40f84fcd8fc 100644 --- a/toolchain/check/testdata/function/builtin/call.carbon +++ b/toolchain/check/testdata/function/builtin/call.carbon @@ -110,12 +110,12 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Add.decl: %Add.type = fn_decl @Add [concrete = constants.%Add] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_27: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_27 [concrete = constants.%.ff5] @@ -166,12 +166,12 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %arr: ref %array_type = ref_binding arr, %arr.var [concrete = %arr.var] // CHECK:STDOUT: %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [concrete = constants.%RuntimeCall] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc19_35 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc19_35: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc19: Core.Form = init_form %i32.loc19_35 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/function/builtin/call_from_operator.carbon b/toolchain/check/testdata/function/builtin/call_from_operator.carbon index 08fc8c205b44..692d3b6bcbb7 100644 --- a/toolchain/check/testdata/function/builtin/call_from_operator.carbon +++ b/toolchain/check/testdata/function/builtin/call_from_operator.carbon @@ -163,8 +163,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: .ImplicitAs = %ImplicitAs.decl // CHECK:STDOUT: } // CHECK:STDOUT: %IntLiteral.decl: %IntLiteral.type = fn_decl @IntLiteral [concrete = constants.%IntLiteral] { -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc4_20.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_20.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc4_20.2: Core.Form = init_form %.loc4_20.1 [concrete = constants.%.805] @@ -172,10 +172,10 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %return: ref type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] { -// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = value_binding_pattern N [concrete] -// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern %N.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc5_28.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_28.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc5_28.2: Core.Form = init_form %.loc5_28.1 [concrete = constants.%.805] @@ -265,12 +265,12 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %AddWith.WithSelf.Op.decl: @AddWith.WithSelf.%AddWith.WithSelf.Op.type (%AddWith.WithSelf.Op.type.65a) = fn_decl @AddWith.WithSelf.Op [symbolic = @AddWith.WithSelf.%AddWith.WithSelf.Op (constants.%AddWith.WithSelf.Op.647)] { -// CHECK:STDOUT: %self.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = return_slot_pattern %return.param_patt, %.loc8_37.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_37.2: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.26b) = specific_constant @AddWith.%Self.loc7_29.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.a37)] // CHECK:STDOUT: %Self.ref.loc8_37: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.26b) = name_ref Self, %.loc8_37.2 [symbolic = %Self (constants.%Self.a37)] @@ -320,10 +320,10 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %As.WithSelf.Convert.decl: @As.WithSelf.%As.WithSelf.Convert.type (%As.WithSelf.Convert.type.aef) = fn_decl @As.WithSelf.Convert [symbolic = @As.WithSelf.%As.WithSelf.Convert (constants.%As.WithSelf.Convert.a95)] { -// CHECK:STDOUT: %self.patt: @As.WithSelf.Convert.%pattern_type.loc12_14 (%pattern_type.24e) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_14 (%pattern_type.24e) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @As.WithSelf.Convert.%pattern_type.loc12_28 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_28 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_18 (%pattern_type.24e) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @As.WithSelf.Convert.%pattern_type.loc12_18 (%pattern_type.24e) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_31 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @As.WithSelf.Convert.%pattern_type.loc12_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @As.%T.loc11_14.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc12_31.2: Core.Form = init_form %T.ref [symbolic = %.loc12_31.1 (constants.%.184)] @@ -364,10 +364,10 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.f6b) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.de0)] { -// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_14 (%pattern_type.8de) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_14 (%pattern_type.8de) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_28 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_28 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_18 (%pattern_type.8de) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_18 (%pattern_type.8de) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_31 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @ImplicitAs.%T.loc15_22.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc16_31.2: Core.Form = init_form %T.ref [symbolic = %.loc16_31.1 (constants.%.184)] @@ -397,12 +397,12 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.builtin.as.AddWith.impl: %.loc19_6 as %AddWith.type { // CHECK:STDOUT: %i32.builtin.as.AddWith.impl.Op.decl: %i32.builtin.as.AddWith.impl.Op.type = fn_decl @i32.builtin.as.AddWith.impl.Op [concrete = constants.%i32.builtin.as.AddWith.impl.Op] { -// CHECK:STDOUT: %self.patt: %pattern_type.956 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.956 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.956 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.956 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.956 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.956 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.956 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.956 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern %return.param_patt, %Self.ref.loc20_37 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc20_37: type = name_ref Self, @i32.builtin.as.AddWith.impl.%.loc19_6 [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc20: Core.Form = init_form %Self.ref.loc20_37 [concrete = constants.%.9cb] @@ -425,10 +425,10 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: impl @Core.IntLiteral.as.As.impl: %.loc23_17.2 as %As.type { // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.decl: %Core.IntLiteral.as.As.impl.Convert.type = fn_decl @Core.IntLiteral.as.As.impl.Convert [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] { -// CHECK:STDOUT: %self.patt: %pattern_type.dc0 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.dc0 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.dc0 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern %return.param_patt, %.loc24_31.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc24_31.1: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc24_31.2: Core.Form = init_form %.loc24_31.1 [concrete = constants.%.9cb] @@ -448,10 +448,10 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: impl @Core.IntLiteral.as.ImplicitAs.impl: %.loc27_17.2 as %ImplicitAs.type { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.decl: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = fn_decl @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] { -// CHECK:STDOUT: %self.patt: %pattern_type.dc0 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.dc0 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.dc0 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern %return.param_patt, %.loc28_31.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc28_31.1: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc28_31.2: Core.Form = init_form %.loc28_31.1 [concrete = constants.%.9cb] @@ -471,10 +471,10 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.builtin.as.ImplicitAs.impl: %.loc31_6 as %ImplicitAs.type { // CHECK:STDOUT: %i32.builtin.as.ImplicitAs.impl.Convert.decl: %i32.builtin.as.ImplicitAs.impl.Convert.type = fn_decl @i32.builtin.as.ImplicitAs.impl.Convert [concrete = constants.%i32.builtin.as.ImplicitAs.impl.Convert] { -// CHECK:STDOUT: %self.patt: %pattern_type.956 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.956 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.956 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.956 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc32_42.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [concrete = constants.%IntLiteral] // CHECK:STDOUT: %IntLiteral.call: init type = call %IntLiteral.ref() [concrete = Core.IntLiteral] @@ -516,9 +516,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.b54)] // CHECK:STDOUT: %Self: @As.WithSelf.Convert.%As.type (%As.type.b54) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a8c)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.69d)] -// CHECK:STDOUT: %pattern_type.loc12_14: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc12_14 (constants.%pattern_type.24e)] +// CHECK:STDOUT: %pattern_type.loc12_18: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc12_18 (constants.%pattern_type.24e)] // CHECK:STDOUT: %.loc12_31.1: Core.Form = init_form %T [symbolic = %.loc12_31.1 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc12_28: type = pattern_type %T [symbolic = %pattern_type.loc12_28 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc12_31: type = pattern_type %T [symbolic = %pattern_type.loc12_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @As.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type.69d)) -> out %return.param: @As.WithSelf.Convert.%T (%T); // CHECK:STDOUT: } @@ -528,9 +528,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.9fe)] // CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.7c0)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.984)] -// CHECK:STDOUT: %pattern_type.loc16_14: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc16_14 (constants.%pattern_type.8de)] +// CHECK:STDOUT: %pattern_type.loc16_18: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc16_18 (constants.%pattern_type.8de)] // CHECK:STDOUT: %.loc16_31.1: Core.Form = init_form %T [symbolic = %.loc16_31.1 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc16_28: type = pattern_type %T [symbolic = %pattern_type.loc16_28 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc16_31: type = pattern_type %T [symbolic = %pattern_type.loc16_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type.984)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%T (%T); // CHECK:STDOUT: } @@ -569,9 +569,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %As.type => constants.%As.type.b54 // CHECK:STDOUT: %Self => constants.%Self.a8c // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.69d -// CHECK:STDOUT: %pattern_type.loc12_14 => constants.%pattern_type.24e +// CHECK:STDOUT: %pattern_type.loc12_18 => constants.%pattern_type.24e // CHECK:STDOUT: %.loc12_31.1 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc12_28 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc12_31 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%T) { @@ -585,9 +585,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fe // CHECK:STDOUT: %Self => constants.%Self.7c0 // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.984 -// CHECK:STDOUT: %pattern_type.loc16_14 => constants.%pattern_type.8de +// CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.8de // CHECK:STDOUT: %.loc16_31.1 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc16_28 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc16_31 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith(constants.%i32.builtin) { @@ -664,9 +664,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %As.type => constants.%As.type.1ed // CHECK:STDOUT: %Self => constants.%As.facet // CHECK:STDOUT: %Self.binding.as_type => Core.IntLiteral -// CHECK:STDOUT: %pattern_type.loc12_14 => constants.%pattern_type.dc0 +// CHECK:STDOUT: %pattern_type.loc12_18 => constants.%pattern_type.dc0 // CHECK:STDOUT: %.loc12_31.1 => constants.%.9cb -// CHECK:STDOUT: %pattern_type.loc12_28 => constants.%pattern_type.956 +// CHECK:STDOUT: %pattern_type.loc12_31 => constants.%pattern_type.956 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%i32.builtin) { @@ -704,9 +704,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.92b // CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.b36 // CHECK:STDOUT: %Self.binding.as_type => Core.IntLiteral -// CHECK:STDOUT: %pattern_type.loc16_14 => constants.%pattern_type.dc0 +// CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.dc0 // CHECK:STDOUT: %.loc16_31.1 => constants.%.9cb -// CHECK:STDOUT: %pattern_type.loc16_28 => constants.%pattern_type.956 +// CHECK:STDOUT: %pattern_type.loc16_31 => constants.%pattern_type.956 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(Core.IntLiteral) { @@ -744,9 +744,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.79c // CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.c5c // CHECK:STDOUT: %Self.binding.as_type => constants.%i32.builtin -// CHECK:STDOUT: %pattern_type.loc16_14 => constants.%pattern_type.956 +// CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.956 // CHECK:STDOUT: %.loc16_31.1 => constants.%.f7d -// CHECK:STDOUT: %pattern_type.loc16_28 => constants.%pattern_type.dc0 +// CHECK:STDOUT: %pattern_type.loc16_31 => constants.%pattern_type.dc0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- user.carbon diff --git a/toolchain/check/testdata/function/builtin/definition.carbon b/toolchain/check/testdata/function/builtin/definition.carbon index 2476489fa258..3ce1bb40d780 100644 --- a/toolchain/check/testdata/function/builtin/definition.carbon +++ b/toolchain/check/testdata/function/builtin/definition.carbon @@ -43,12 +43,12 @@ fn Add(a: i32, b: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Add.decl: %Add.type = fn_decl @Add [concrete = constants.%Add] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_27: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_27 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/function/builtin/fail_redefined.carbon b/toolchain/check/testdata/function/builtin/fail_redefined.carbon index 187c05485ed8..b26cdce0d912 100644 --- a/toolchain/check/testdata/function/builtin/fail_redefined.carbon +++ b/toolchain/check/testdata/function/builtin/fail_redefined.carbon @@ -98,12 +98,12 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl.loc15: %A.type.8165c1.1 = fn_decl @A.loc15 [concrete = constants.%A.8aef9d.1] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.7ce = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15_25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_25 [concrete = constants.%.ff5] @@ -117,12 +117,12 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl.loc23: %A.type.8165c1.2 = fn_decl @A.loc23 [concrete = constants.%A.8aef9d.2] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.7ce = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc23_32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc23_32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc23: Core.Form = init_form %i32.loc23_32 [concrete = constants.%.ff5] @@ -136,12 +136,12 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl.loc25: %B.type.d6bcfe.1 = fn_decl @B.loc25 [concrete = constants.%B.5d732e.1] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.7ce = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc25_32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc25_32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25_32 [concrete = constants.%.ff5] @@ -155,12 +155,12 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl.loc33: %B.type.d6bcfe.2 = fn_decl @B.loc33 [concrete = constants.%B.5d732e.2] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.7ce = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc33_25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc33_25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc33: Core.Form = init_form %i32.loc33_25 [concrete = constants.%.ff5] @@ -174,12 +174,12 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl.loc35: %C.type.0036b9.1 = fn_decl @C.loc35 [concrete = constants.%C.6a91b4.1] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.7ce = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc35_25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc35_25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc35: Core.Form = init_form %i32.loc35_25 [concrete = constants.%.ff5] @@ -193,12 +193,12 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl.loc43: %C.type.0036b9.2 = fn_decl @C.loc43 [concrete = constants.%C.6a91b4.2] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.7ce = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc43_25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc43_25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc43: Core.Form = init_form %i32.loc43_25 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/function/builtin/import.carbon b/toolchain/check/testdata/function/builtin/import.carbon index 6eb3db592e51..6a0566eabefe 100644 --- a/toolchain/check/testdata/function/builtin/import.carbon +++ b/toolchain/check/testdata/function/builtin/import.carbon @@ -63,8 +63,8 @@ var arr: array(i32, Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2)) // CHECK:STDOUT: .TestAdd = %TestAdd.decl // CHECK:STDOUT: } // CHECK:STDOUT: %IntLiteral.decl: %IntLiteral.type = fn_decl @IntLiteral [concrete = constants.%IntLiteral] { -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc5_20.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_20.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc5_20.2: Core.Form = init_form %.loc5_20.1 [concrete = constants.%.805] @@ -72,10 +72,10 @@ var arr: array(i32, Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2)) // CHECK:STDOUT: %return: ref type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] { -// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = value_binding_pattern N [concrete] -// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern %N.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc6_28.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_28.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc6_28.2: Core.Form = init_form %.loc6_28.1 [concrete = constants.%.805] @@ -91,10 +91,10 @@ var arr: array(i32, Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2)) // CHECK:STDOUT: %return: ref type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AsI32.decl: %AsI32.type = fn_decl @AsI32 [concrete = constants.%AsI32] { -// CHECK:STDOUT: %a.patt: %pattern_type.dc0 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.dc0 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.dc0 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern %return.param_patt, %.loc8_30.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_30.1: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc8_30.2: Core.Form = init_form %.loc8_30.1 [concrete = constants.%.9cb] @@ -110,10 +110,10 @@ var arr: array(i32, Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2)) // CHECK:STDOUT: %return: ref %i32.builtin = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AsIntLiteral.decl: %AsIntLiteral.type = fn_decl @AsIntLiteral [concrete = constants.%AsIntLiteral] { -// CHECK:STDOUT: %a.patt: %pattern_type.956 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.956 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.956 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.956 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc9_39.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [concrete = constants.%IntLiteral] // CHECK:STDOUT: %IntLiteral.call: init type = call %IntLiteral.ref() [concrete = Core.IntLiteral] @@ -127,12 +127,12 @@ var arr: array(i32, Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2)) // CHECK:STDOUT: %return: ref Core.IntLiteral = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestAdd.decl: %TestAdd.type = fn_decl @TestAdd [concrete = constants.%TestAdd] { -// CHECK:STDOUT: %a.patt: %pattern_type.956 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.956 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.956 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.956 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.956 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.956 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.956 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.956 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern %return.param_patt, %.loc11_31.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_31.1: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc11_31.2: Core.Form = init_form %.loc11_31.1 [concrete = constants.%.9cb] diff --git a/toolchain/check/testdata/function/builtin/method.carbon b/toolchain/check/testdata/function/builtin/method.carbon index 75bea24f004b..a988dd4be1aa 100644 --- a/toolchain/check/testdata/function/builtin/method.carbon +++ b/toolchain/check/testdata/function/builtin/method.carbon @@ -193,12 +193,12 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.08c) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.705)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = return_slot_pattern %return.param_patt, %.loc16_36.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_36: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.ab9)] // CHECK:STDOUT: %Self.as_type.loc16_36: type = facet_access_type %Self.ref.loc16_36 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] @@ -233,12 +233,12 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.as.I.impl: %i32 as %I.ref { // CHECK:STDOUT: %i32.as.I.impl.F.decl: %i32.as.I.impl.F.type = fn_decl @i32.as.I.impl.F [concrete = constants.%i32.as.I.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.7ce = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7ce = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.7ce = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.7ce = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7ce = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.7ce = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc20_34 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc20_34: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc20: Core.Form = init_form %i32.loc20_34 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/function/builtin/positional.carbon b/toolchain/check/testdata/function/builtin/positional.carbon index 50d79ca6cc37..f2451ac09db4 100644 --- a/toolchain/check/testdata/function/builtin/positional.carbon +++ b/toolchain/check/testdata/function/builtin/positional.carbon @@ -66,8 +66,8 @@ fn Mul = "int.smul"; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Add.decl: %Add.type = fn_decl @Add [concrete = constants.%Add] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc10: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/function/call/alias.carbon b/toolchain/check/testdata/function/call/alias.carbon index a31b3588b024..fd735782de8f 100644 --- a/toolchain/check/testdata/function/call/alias.carbon +++ b/toolchain/check/testdata/function/call/alias.carbon @@ -54,8 +54,8 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %.loc15_12.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_12.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_12.2: type = converted %.loc15_12.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] diff --git a/toolchain/check/testdata/function/call/empty_struct.carbon b/toolchain/check/testdata/function/call/empty_struct.carbon index 1998ef702b0c..37088866f0d6 100644 --- a/toolchain/check/testdata/function/call/empty_struct.carbon +++ b/toolchain/check/testdata/function/call/empty_struct.carbon @@ -39,10 +39,10 @@ fn Main() { // CHECK:STDOUT: .Main = %Main.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Echo.decl: %Echo.type = fn_decl @Echo [concrete = constants.%Echo] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc15_20.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_20.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc15_20.2: type = converted %.loc15_20.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] diff --git a/toolchain/check/testdata/function/call/empty_tuple.carbon b/toolchain/check/testdata/function/call/empty_tuple.carbon index 27b412356978..8cabaed45bc3 100644 --- a/toolchain/check/testdata/function/call/empty_tuple.carbon +++ b/toolchain/check/testdata/function/call/empty_tuple.carbon @@ -39,10 +39,10 @@ fn Main() { // CHECK:STDOUT: .Main = %Main.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Echo.decl: %Echo.type = fn_decl @Echo [concrete = constants.%Echo] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc15_20.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_20.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_20.2: type = converted %.loc15_20.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] diff --git a/toolchain/check/testdata/function/call/fail_explicit_self_param.carbon b/toolchain/check/testdata/function/call/fail_explicit_self_param.carbon index c80112848716..a2e11add6a0d 100644 --- a/toolchain/check/testdata/function/call/fail_explicit_self_param.carbon +++ b/toolchain/check/testdata/function/call/fail_explicit_self_param.carbon @@ -40,8 +40,8 @@ fn Run() { // CHECK:STDOUT: .Run = %Run.decl // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %self.patt: %pattern_type = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc19_13.1: type = splice_block %.loc19_13.3 [concrete = constants.%empty_tuple.type] { diff --git a/toolchain/check/testdata/function/call/fail_param_count.carbon b/toolchain/check/testdata/function/call/fail_param_count.carbon index cff2f4835d80..4d063ed2b966 100644 --- a/toolchain/check/testdata/function/call/fail_param_count.carbon +++ b/toolchain/check/testdata/function/call/fail_param_count.carbon @@ -109,18 +109,18 @@ fn Main() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Run0.decl: %Run0.type = fn_decl @Run0 [concrete = constants.%Run0] {} {} // CHECK:STDOUT: %Run1.decl: %Run1.type = fn_decl @Run1 [concrete = constants.%Run1] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Run2.decl: %Run2.type = fn_decl @Run2 [concrete = constants.%Run2] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc17_19: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/call/fail_param_type.carbon b/toolchain/check/testdata/function/call/fail_param_type.carbon index 8dbff79f3bd7..f4eda316287b 100644 --- a/toolchain/check/testdata/function/call/fail_param_type.carbon +++ b/toolchain/check/testdata/function/call/fail_param_type.carbon @@ -65,8 +65,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon index 9bb549c51464..f75d80b8af6f 100644 --- a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon +++ b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon @@ -91,8 +91,8 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %return.patt: %pattern_type.0ae = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0ae = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.0ae = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.0ae = return_slot_pattern %return.param_patt, %f64 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %f64: type = type_literal constants.%f64.d77 [concrete = constants.%f64.d77] // CHECK:STDOUT: %.loc15_13: Core.Form = init_form %f64 [concrete = constants.%.49c] diff --git a/toolchain/check/testdata/function/call/form.carbon b/toolchain/check/testdata/function/call/form.carbon index 31536002abc8..86235d2f2b22 100644 --- a/toolchain/check/testdata/function/call/form.carbon +++ b/toolchain/check/testdata/function/call/form.carbon @@ -243,8 +243,8 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type.7ce = form_binding_pattern x [concrete] -// CHECK:STDOUT: %.loc4_7: %pattern_type.7ce = form_param_pattern %x.patt, constants.%.1da [concrete] +// CHECK:STDOUT: %.loc4_7: %pattern_type.7ce = form_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.7ce = at_binding_pattern x, %.loc4_7 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: ref %i32 = ref_param call_param0 // CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.1da] { @@ -303,8 +303,8 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type.7ce = form_binding_pattern x [concrete] -// CHECK:STDOUT: %.loc4_7: %pattern_type.7ce = form_param_pattern %x.patt, constants.%.ff5 [concrete] +// CHECK:STDOUT: %.loc4_7: %pattern_type.7ce = form_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.7ce = at_binding_pattern x, %.loc4_7 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: ref %i32 = ref_param call_param0 // CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.ff5] { @@ -371,8 +371,8 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type.7ce = form_binding_pattern x [concrete] -// CHECK:STDOUT: %.loc4_7: %pattern_type.7ce = form_param_pattern %x.patt, constants.%.754 [concrete] +// CHECK:STDOUT: %.loc4_7: %pattern_type.7ce = form_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.7ce = at_binding_pattern x, %.loc4_7 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.754] { @@ -413,8 +413,8 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type = form_binding_pattern x [concrete] -// CHECK:STDOUT: %.loc4_7: %pattern_type = form_param_pattern %x.patt, constants.%.9f9 [concrete] +// CHECK:STDOUT: %.loc4_7: %pattern_type = form_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type = at_binding_pattern x, %.loc4_7 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: ref %empty_tuple.type = ref_param call_param0 // CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.9f9] { @@ -476,8 +476,8 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, constants.%i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc4: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/function/call/i32.carbon b/toolchain/check/testdata/function/call/i32.carbon index cf462383bf88..a27cd6a7cddd 100644 --- a/toolchain/check/testdata/function/call/i32.carbon +++ b/toolchain/check/testdata/function/call/i32.carbon @@ -94,10 +94,10 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Echo.decl: %Echo.type = fn_decl @Echo [concrete = constants.%Echo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15_20 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_20: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_20 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/function/call/more_param_ir.carbon b/toolchain/check/testdata/function/call/more_param_ir.carbon index 81a6c49a09ba..55b1a1120336 100644 --- a/toolchain/check/testdata/function/call/more_param_ir.carbon +++ b/toolchain/check/testdata/function/call/more_param_ir.carbon @@ -90,10 +90,10 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/call/params_one.carbon b/toolchain/check/testdata/function/call/params_one.carbon index 3fafd2b93ad8..a55f26715ff8 100644 --- a/toolchain/check/testdata/function/call/params_one.carbon +++ b/toolchain/check/testdata/function/call/params_one.carbon @@ -71,8 +71,8 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/call/params_one_comma.carbon b/toolchain/check/testdata/function/call/params_one_comma.carbon index 5d0846e509fa..da0b165c75a0 100644 --- a/toolchain/check/testdata/function/call/params_one_comma.carbon +++ b/toolchain/check/testdata/function/call/params_one_comma.carbon @@ -72,8 +72,8 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/call/params_two.carbon b/toolchain/check/testdata/function/call/params_two.carbon index d900c1b1b8c7..08c60a4a96cf 100644 --- a/toolchain/check/testdata/function/call/params_two.carbon +++ b/toolchain/check/testdata/function/call/params_two.carbon @@ -75,10 +75,10 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/call/params_two_comma.carbon b/toolchain/check/testdata/function/call/params_two_comma.carbon index 9399d0372492..8d983f092862 100644 --- a/toolchain/check/testdata/function/call/params_two_comma.carbon +++ b/toolchain/check/testdata/function/call/params_two_comma.carbon @@ -76,10 +76,10 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon b/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon index bdaf50b2ad0f..f50bf788a907 100644 --- a/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon +++ b/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon @@ -99,8 +99,8 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: %F.loc5_13.2: type = symbolic_binding F, 0 [symbolic = %F.loc5_13.1 (constants.%F)] // CHECK:STDOUT: } // CHECK:STDOUT: %Inner.G.decl: %Inner.G.type = fn_decl @Inner.G [symbolic = constants.%Inner.G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc13 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc13_14.1: type = splice_block %.loc13_14.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -141,8 +141,8 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Inner.F.decl: @Inner.%Inner.F.type (%Inner.F.type) = fn_decl @Inner.F [symbolic = @Inner.%Inner.F (constants.%Inner.F)] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8_15: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -150,8 +150,8 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Inner.G.decl: @Inner.%Inner.G.type (%Inner.G.type) = fn_decl @Inner.G [symbolic = @Inner.%Inner.G (constants.%Inner.G)] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc13 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc9: Core.Form = init_form %i32.loc9 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/function/call/ref.carbon b/toolchain/check/testdata/function/call/ref.carbon index 9eb2b897c7b5..387ac6e1bc1e 100644 --- a/toolchain/check/testdata/function/call/ref.carbon +++ b/toolchain/check/testdata/function/call/ref.carbon @@ -138,8 +138,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type.7ce = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.7ce = ref_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.7ce = ref_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.7ce = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: ref %i32 = ref_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -212,8 +212,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] diff --git a/toolchain/check/testdata/function/declaration/extern.carbon b/toolchain/check/testdata/function/declaration/extern.carbon index ba9716bfcef5..3bc89ae0b02e 100644 --- a/toolchain/check/testdata/function/declaration/extern.carbon +++ b/toolchain/check/testdata/function/declaration/extern.carbon @@ -200,8 +200,8 @@ extern library "basic" fn F(); // CHECK:STDOUT: class @C { // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] {} {} // CHECK:STDOUT: %C.G.decl: %C.G.type = fn_decl @C.G [concrete = constants.%C.G] { -// CHECK:STDOUT: %self.patt: %pattern_type = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] diff --git a/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon b/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon index d234a59b1ae8..67fe5a2255a4 100644 --- a/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon +++ b/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon @@ -133,8 +133,8 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %D.decl.loc5: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %ReturnCUnused.decl: %ReturnCUnused.type = fn_decl @ReturnCUnused [concrete = constants.%ReturnCUnused] { -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc7: Core.Form = init_form %C.ref [concrete = constants.%.a69] @@ -142,8 +142,8 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ReturnCUsed.decl: %ReturnCUsed.type = fn_decl @ReturnCUsed [concrete = constants.%ReturnCUsed] { -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc8: Core.Form = init_form %C.ref [concrete = constants.%.a69] @@ -151,8 +151,8 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ReturnDUnused.decl: %ReturnDUnused.type = fn_decl @ReturnDUnused [concrete = constants.%ReturnDUnused] { -// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl.loc5 [concrete = constants.%D] // CHECK:STDOUT: %.loc9: Core.Form = init_form %D.ref [concrete = constants.%.9a5] @@ -160,8 +160,8 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ReturnDUsed.decl: %ReturnDUsed.type = fn_decl @ReturnDUsed [concrete = constants.%ReturnDUsed] { -// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl.loc5 [concrete = constants.%D] // CHECK:STDOUT: %.loc10: Core.Form = init_form %D.ref [concrete = constants.%.9a5] diff --git a/toolchain/check/testdata/function/declaration/fail_param_in_type.carbon b/toolchain/check/testdata/function/declaration/fail_param_in_type.carbon index 9dae709bc5f4..05bbfd0596f8 100644 --- a/toolchain/check/testdata/function/declaration/fail_param_in_type.carbon +++ b/toolchain/check/testdata/function/declaration/fail_param_in_type.carbon @@ -46,10 +46,10 @@ fn F(n: i32, a: array(i32, n)*); // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %a.patt: = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc19_9: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -60,7 +60,7 @@ fn F(n: i32, a: array(i32, n)*); // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %ptr: type = ptr_type [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: = value_binding a, %a.param +// CHECK:STDOUT: %a: = value_binding a, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/declaration/fail_param_redecl.carbon b/toolchain/check/testdata/function/declaration/fail_param_redecl.carbon index 9ab902ab24ec..304533e3ff57 100644 --- a/toolchain/check/testdata/function/declaration/fail_param_redecl.carbon +++ b/toolchain/check/testdata/function/declaration/fail_param_redecl.carbon @@ -49,10 +49,10 @@ fn F(n: i32, n: i32); // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %n.patt.loc22_6: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt.loc22_7: %pattern_type.7ce = value_param_pattern %n.patt.loc22_6 [concrete] -// CHECK:STDOUT: %n.patt.loc22_14: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt.loc22_15: %pattern_type.7ce = value_param_pattern %n.patt.loc22_14 [concrete] +// CHECK:STDOUT: %n.param_patt.loc22_7: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt.loc22_6: %pattern_type.7ce = at_binding_pattern n, %n.param_patt.loc22_7 [concrete] +// CHECK:STDOUT: %n.param_patt.loc22_15: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt.loc22_14: %pattern_type.7ce = at_binding_pattern n, %n.param_patt.loc22_15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param.loc22_7: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc22_9: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/declaration/fail_redecl.carbon b/toolchain/check/testdata/function/declaration/fail_redecl.carbon index f5e490b72034..3a699bc87cd8 100644 --- a/toolchain/check/testdata/function/declaration/fail_redecl.carbon +++ b/toolchain/check/testdata/function/declaration/fail_redecl.carbon @@ -95,8 +95,8 @@ fn E() {} // CHECK:STDOUT: %A.decl.loc15: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %A.decl.loc23: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl.loc25: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %x.patt: %pattern_type = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param.loc25: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc25_10.1: type = splice_block %.loc25_10.3 [concrete = constants.%empty_tuple.type] { @@ -106,8 +106,8 @@ fn E() {} // CHECK:STDOUT: %x.loc25: %empty_tuple.type = value_binding x, %x.param.loc25 // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl.loc33: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %x.patt: %pattern_type = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param.loc33: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc33_10.1: type = splice_block %.loc33_10.3 [concrete = constants.%empty_tuple.type] { @@ -118,8 +118,8 @@ fn E() {} // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl.loc35: %C.type.0036b9.1 = fn_decl @C.loc35 [concrete = constants.%C.6a91b4.1] {} {} // CHECK:STDOUT: %C.decl.loc43: %C.type.0036b9.2 = fn_decl @C.loc43 [concrete = constants.%C.6a91b4.2] { -// CHECK:STDOUT: %x.patt: %pattern_type = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc43_10.1: type = splice_block %.loc43_10.3 [concrete = constants.%empty_tuple.type] { diff --git a/toolchain/check/testdata/function/declaration/fail_todo_no_params.carbon b/toolchain/check/testdata/function/declaration/fail_todo_no_params.carbon index ad784c0dd94b..82c1c7ce1de9 100644 --- a/toolchain/check/testdata/function/declaration/fail_todo_no_params.carbon +++ b/toolchain/check/testdata/function/declaration/fail_todo_no_params.carbon @@ -132,8 +132,8 @@ fn A { // CHECK:STDOUT: .A = %A.decl // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc7_10.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_10.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_10.2: type = converted %.loc7_10.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -161,8 +161,8 @@ fn A { // CHECK:STDOUT: .A = %A.decl // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc7_12.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_12.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_12.2: type = converted %.loc7_12.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] diff --git a/toolchain/check/testdata/function/declaration/import.carbon b/toolchain/check/testdata/function/declaration/import.carbon index c2c1db94785b..1fa134c69909 100644 --- a/toolchain/check/testdata/function/declaration/import.carbon +++ b/toolchain/check/testdata/function/declaration/import.carbon @@ -309,10 +309,10 @@ import library "extern_api"; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc5_17 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5_17: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5_17 [concrete = constants.%.ff5] @@ -323,10 +323,10 @@ import library "extern_api"; // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] { -// CHECK:STDOUT: %c.patt: %pattern_type.b74 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.b74 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.688 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.688 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.b74 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.b74 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.688 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.688 = return_slot_pattern %return.param_patt, %struct_type.c [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete = constants.%struct_type.c] @@ -407,10 +407,10 @@ import library "extern_api"; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc5_52 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5_52: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5_52 [concrete = constants.%.ff5] @@ -421,10 +421,10 @@ import library "extern_api"; // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] { -// CHECK:STDOUT: %c.patt: %pattern_type.b74 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.b74 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.688 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.688 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.b74 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.b74 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.688 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.688 = return_slot_pattern %return.param_patt, %struct_type.c [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_60: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete = constants.%struct_type.c] diff --git a/toolchain/check/testdata/function/declaration/param_same_name.carbon b/toolchain/check/testdata/function/declaration/param_same_name.carbon index 8509f92e1757..9e18834a6133 100644 --- a/toolchain/check/testdata/function/declaration/param_same_name.carbon +++ b/toolchain/check/testdata/function/declaration/param_same_name.carbon @@ -47,16 +47,16 @@ fn G(a: i32); // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/declaration/pattern_in_signature.carbon b/toolchain/check/testdata/function/declaration/pattern_in_signature.carbon index c858ebc8b339..b2e01138e361 100644 --- a/toolchain/check/testdata/function/declaration/pattern_in_signature.carbon +++ b/toolchain/check/testdata/function/declaration/pattern_in_signature.carbon @@ -38,13 +38,13 @@ fn CallF(ab: ({}, {}), c: {}) { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.a96 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.a96 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.a96 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.a96 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %.loc14_33: %pattern_type.de4 = tuple_pattern (%a.param_patt, %b.param_patt) [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.a96 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.a96 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.a96 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.a96 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.a96 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.a96 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %.loc14_33: %pattern_type.de4 = tuple_pattern (%a.patt, %b.patt) [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.a96 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.a96 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %empty_struct_type = value_param call_param0 // CHECK:STDOUT: %.loc14_18.1: type = splice_block %.loc14_18.3 [concrete = constants.%empty_struct_type] { @@ -66,10 +66,10 @@ fn CallF(ab: ({}, {}), c: {}) { // CHECK:STDOUT: %c: %empty_struct_type = value_binding c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallF.decl: %CallF.type = fn_decl @CallF [concrete = constants.%CallF] { -// CHECK:STDOUT: %ab.patt: %pattern_type.de4 = value_binding_pattern ab [concrete] -// CHECK:STDOUT: %ab.param_patt: %pattern_type.de4 = value_param_pattern %ab.patt [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.a96 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.a96 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %ab.param_patt: %pattern_type.de4 = value_param_pattern [concrete] +// CHECK:STDOUT: %ab.patt: %pattern_type.de4 = at_binding_pattern ab, %ab.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.a96 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.a96 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %ab.param: %tuple.type.b6b = value_param call_param0 // CHECK:STDOUT: %.loc18_21.1: type = splice_block %.loc18_21.5 [concrete = constants.%tuple.type.b6b] { diff --git a/toolchain/check/testdata/function/definition/basics.carbon b/toolchain/check/testdata/function/definition/basics.carbon index ae1538292401..5d7e1992c412 100644 --- a/toolchain/check/testdata/function/definition/basics.carbon +++ b/toolchain/check/testdata/function/definition/basics.carbon @@ -42,8 +42,8 @@ fn F(unused n: C) {} // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %n.patt: %pattern_type = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] diff --git a/toolchain/check/testdata/function/definition/fail_decl_param_mismatch.carbon b/toolchain/check/testdata/function/definition/fail_decl_param_mismatch.carbon index f43ebc1de305..229f7b6426e6 100644 --- a/toolchain/check/testdata/function/definition/fail_decl_param_mismatch.carbon +++ b/toolchain/check/testdata/function/definition/fail_decl_param_mismatch.carbon @@ -117,8 +117,8 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc15: %F.type.117dbc.1 = fn_decl @F.loc15 [concrete = constants.%F.d98bd5.1] {} {} // CHECK:STDOUT: %F.decl.loc23: %F.type.117dbc.2 = fn_decl @F.loc23 [concrete = constants.%F.d98bd5.2] { -// CHECK:STDOUT: %x.patt: %pattern_type.cb1 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.cb1 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc23_17.1: type = splice_block %.loc23_17.3 [concrete = constants.%empty_tuple.type] { @@ -128,8 +128,8 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: %x: %empty_tuple.type = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl.loc25: %G.type.90f93f.1 = fn_decl @G.loc25 [concrete = constants.%G.4dbc02.1] { -// CHECK:STDOUT: %x.patt: %pattern_type.cb1 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.cb1 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc25_10.1: type = splice_block %.loc25_10.3 [concrete = constants.%empty_tuple.type] { @@ -140,8 +140,8 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl.loc33: %G.type.90f93f.2 = fn_decl @G.loc33 [concrete = constants.%G.4dbc02.2] {} {} // CHECK:STDOUT: %H.decl.loc35: %H.type.7917a6.1 = fn_decl @H.loc35 [concrete = constants.%H.414c03.1] { -// CHECK:STDOUT: %x.patt: %pattern_type.cb1 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.cb1 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc35_10.1: type = splice_block %.loc35_10.3 [concrete = constants.%empty_tuple.type] { @@ -151,17 +151,17 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: %x: %empty_tuple.type = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl.loc40: %H.type.7917a6.2 = fn_decl @H.loc40 [concrete = constants.%H.414c03.2] { -// CHECK:STDOUT: %x.patt: = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: = value_param call_param0 // CHECK:STDOUT: %.loc40: type = type_literal [concrete = ] -// CHECK:STDOUT: %x: = value_binding x, %x.param +// CHECK:STDOUT: %x: = value_binding x, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: %I.decl.loc42: %I.type.f30c8e.1 = fn_decl @I.loc42 [concrete = constants.%I.73832e.1] {} {} // CHECK:STDOUT: %I.decl.loc50: %I.type.f30c8e.2 = fn_decl @I.loc50 [concrete = constants.%I.73832e.2] { -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %.loc50_12.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc50_12.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc50_12.2: type = converted %.loc50_12.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -170,8 +170,8 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %J.decl.loc52: %J.type.fe0423.1 = fn_decl @J.loc52 [concrete = constants.%J.6d8208.1] { -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %.loc52_12.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc52_12.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc52_12.2: type = converted %.loc52_12.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -181,8 +181,8 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: } // CHECK:STDOUT: %J.decl.loc60: %J.type.fe0423.2 = fn_decl @J.loc60 [concrete = constants.%J.6d8208.2] {} {} // CHECK:STDOUT: %K.decl.loc62: %K.type.4b1c50.1 = fn_decl @K.loc62 [concrete = constants.%K.548a8d.1] { -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %.loc62_12.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc62_12.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc62_12.2: type = converted %.loc62_12.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -191,8 +191,8 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %K.decl.loc70: %K.type.4b1c50.2 = fn_decl @K.loc70 [concrete = constants.%K.548a8d.2] { -// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern %return.param_patt, %.loc70_12.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc70_12.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc70_12.2: type = converted %.loc70_12.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] diff --git a/toolchain/check/testdata/function/definition/import.carbon b/toolchain/check/testdata/function/definition/import.carbon index fb2154919068..bf742f24dfe8 100644 --- a/toolchain/check/testdata/function/definition/import.carbon +++ b/toolchain/check/testdata/function/definition/import.carbon @@ -176,10 +176,10 @@ fn D() {} // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc5_17 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5_17: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5_17 [concrete = constants.%.ff5] @@ -190,10 +190,10 @@ fn D() {} // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] { -// CHECK:STDOUT: %c.patt: %pattern_type.b74 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.b74 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.688 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.688 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.b74 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.b74 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.688 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.688 = return_slot_pattern %return.param_patt, %struct_type.c [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete = constants.%struct_type.c] diff --git a/toolchain/check/testdata/function/definition/params_one.carbon b/toolchain/check/testdata/function/definition/params_one.carbon index f29ec6af0749..a02630bd1094 100644 --- a/toolchain/check/testdata/function/definition/params_one.carbon +++ b/toolchain/check/testdata/function/definition/params_one.carbon @@ -42,8 +42,8 @@ fn Foo(unused a: i32) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/definition/params_one_comma.carbon b/toolchain/check/testdata/function/definition/params_one_comma.carbon index 869c38d99842..52f2c3f52afd 100644 --- a/toolchain/check/testdata/function/definition/params_one_comma.carbon +++ b/toolchain/check/testdata/function/definition/params_one_comma.carbon @@ -42,8 +42,8 @@ fn Foo(unused a: i32,) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/definition/params_two.carbon b/toolchain/check/testdata/function/definition/params_two.carbon index 60e1b0cc086b..db35474907ee 100644 --- a/toolchain/check/testdata/function/definition/params_two.carbon +++ b/toolchain/check/testdata/function/definition/params_two.carbon @@ -42,10 +42,10 @@ fn Foo(unused a: i32, unused b: i32) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/definition/params_two_comma.carbon b/toolchain/check/testdata/function/definition/params_two_comma.carbon index 39ec380f63ce..cab1ce0debed 100644 --- a/toolchain/check/testdata/function/definition/params_two_comma.carbon +++ b/toolchain/check/testdata/function/definition/params_two_comma.carbon @@ -42,10 +42,10 @@ fn Foo(unused a: i32, unused b: i32,) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/definition/syntactic_merge.carbon b/toolchain/check/testdata/function/definition/syntactic_merge.carbon index 402a2dc5303f..23a40ed99e9d 100644 --- a/toolchain/check/testdata/function/definition/syntactic_merge.carbon +++ b/toolchain/check/testdata/function/definition/syntactic_merge.carbon @@ -111,10 +111,10 @@ alias D = C; fn Foo(a: C); // CHECK:STDERR: fail_name_mismatch.carbon:[[@LINE+7]]:15: error: redeclaration differs at parameter 1 [RedeclParamDiffers] // CHECK:STDERR: fn Foo(unused b: D) {} -// CHECK:STDERR: ^~~~ +// CHECK:STDERR: ^ // CHECK:STDERR: fail_name_mismatch.carbon:[[@LINE-4]]:8: note: previous declaration's corresponding parameter here [RedeclParamPrevious] // CHECK:STDERR: fn Foo(a: C); -// CHECK:STDERR: ^~~~ +// CHECK:STDERR: ^ // CHECK:STDERR: fn Foo(unused b: D) {} @@ -222,32 +222,32 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param.loc7: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc7: %C = value_binding a, %a.param.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc8: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param.loc8: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc8: %C = value_binding a, %a.param.loc8 // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl.loc10: %Bar.type = fn_decl @Bar [concrete = constants.%Bar] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param.loc10: %C = value_param call_param0 // CHECK:STDOUT: %D.ref.loc10: type = name_ref D, file.%D [concrete = constants.%C] // CHECK:STDOUT: %a.loc10: %C = value_binding a, %a.param.loc10 // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl.loc11: %Bar.type = fn_decl @Bar [concrete = constants.%Bar] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param.loc11: %C = value_param call_param0 // CHECK:STDOUT: %D.ref.loc11: type = name_ref D, file.%D [concrete = constants.%C] @@ -291,16 +291,16 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %Foo.decl.loc6: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param.loc6: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc6: %C = value_binding a, %a.param.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param.loc7: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -341,16 +341,16 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.47530a.1 = fn_decl @Foo.loc6 [concrete = constants.%Foo.9ec12f.1] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.47530a.2 = fn_decl @Foo.loc14 [concrete = constants.%Foo.9ec12f.2] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -428,16 +428,16 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %Foo.decl.loc6: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param.loc6: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.loc6: %C = value_binding a, %a.param.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param.loc7: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -482,16 +482,16 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl: %Bar.type = fn_decl @Bar [concrete = constants.%Bar] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] @@ -541,16 +541,16 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %default.import.loc2_24.1 = import // CHECK:STDOUT: %default.import.loc2_24.2 = import // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %a: %C = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl: %Bar.type = fn_decl @Bar [concrete = constants.%Bar] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C] @@ -598,16 +598,16 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.47530a.1 = fn_decl @Foo.loc7 [concrete = constants.%Foo.9ec12f.1] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.47530a.2 = fn_decl @Foo.loc15 [concrete = constants.%Foo.9ec12f.2] { -// CHECK:STDOUT: %b.patt: %pattern_type = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: %C = value_param call_param0 // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] @@ -653,16 +653,16 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.47530a.1 = fn_decl @Foo.loc7 [concrete = constants.%Foo.9ec12f.1] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.47530a.2 = fn_decl @Foo.loc15 [concrete = constants.%Foo.9ec12f.2] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] @@ -790,8 +790,8 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc7: Core.Form = init_form %C.ref [concrete = constants.%.a69] @@ -799,8 +799,8 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %return.loc7: ref %C = return_slot %return.param.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc8: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] // CHECK:STDOUT: %.loc8_13: Core.Form = init_form %D.ref [concrete = constants.%.a69] @@ -843,8 +843,8 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -890,8 +890,8 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] @@ -932,8 +932,8 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.47530a.1 = fn_decl @Foo.loc6 [concrete = constants.%Foo.9ec12f.1] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %const = value_param call_param0 // CHECK:STDOUT: %.loc6: type = splice_block %const [concrete = constants.%const] { @@ -943,8 +943,8 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %a: %const = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.47530a.2 = fn_decl @Foo.loc18 [concrete = constants.%Foo.9ec12f.2] { -// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %const = value_param call_param0 // CHECK:STDOUT: %.loc18: type = splice_block %const.loc18_18 [concrete = constants.%const] { diff --git a/toolchain/check/testdata/function/generic/call.carbon b/toolchain/check/testdata/function/generic/call.carbon index bd9551615617..d3efc0769dbb 100644 --- a/toolchain/check/testdata/function/generic/call.carbon +++ b/toolchain/check/testdata/function/generic/call.carbon @@ -132,10 +132,10 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: file { // CHECK:STDOUT: %Function.decl: %Function.type = fn_decl @Function [concrete = constants.%Function] { // CHECK:STDOUT: %T.patt: %pattern_type.ce2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc5_37.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc5_37: %Copy.type = name_ref T, %T.loc5_13.2 [symbolic = %T.loc5_13.1 (constants.%T.035)] // CHECK:STDOUT: %T.as_type.loc5_37: type = facet_access_type %T.ref.loc5_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -368,10 +368,10 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: file { // CHECK:STDOUT: %Function.decl: %Function.type = fn_decl @Function [concrete = constants.%Function] { // CHECK:STDOUT: %T.patt: %pattern_type.ce2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc5_37.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc5_37: %Copy.type = name_ref T, %T.loc5_13.2 [symbolic = %T.loc5_13.1 (constants.%T.035)] // CHECK:STDOUT: %T.as_type.loc5_37: type = facet_access_type %T.ref.loc5_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] diff --git a/toolchain/check/testdata/function/generic/deduce.carbon b/toolchain/check/testdata/function/generic/deduce.carbon index c6be75896b81..1f21c66bacf8 100644 --- a/toolchain/check/testdata/function/generic/deduce.carbon +++ b/toolchain/check/testdata/function/generic/deduce.carbon @@ -267,8 +267,8 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %ExplicitGenericParam.decl: %ExplicitGenericParam.type = fn_decl @ExplicitGenericParam [concrete = constants.%ExplicitGenericParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %return.patt: @ExplicitGenericParam.%pattern_type (%pattern_type.4f4) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @ExplicitGenericParam.%pattern_type (%pattern_type.4f4) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @ExplicitGenericParam.%pattern_type (%pattern_type.4f4) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @ExplicitGenericParam.%pattern_type (%pattern_type.4f4) = return_slot_pattern %return.param_patt, %ptr.loc4_39.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc4_39.2: type = ptr_type %T.ref.loc4_38 [symbolic = %ptr.loc4_39.1 (constants.%ptr.e8f)] @@ -282,8 +282,8 @@ fn F() { // CHECK:STDOUT: %return: ref @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr.e8f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitGenericParam.decl: %CallExplicitGenericParam.type = fn_decl @CallExplicitGenericParam [concrete = constants.%CallExplicitGenericParam] { -// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern %return.param_patt, %ptr [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %ptr: type = ptr_type %i32.loc6 [concrete = constants.%ptr.235] @@ -293,8 +293,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitGenericParamWithGenericArg.decl: %CallExplicitGenericParamWithGenericArg.type = fn_decl @CallExplicitGenericParamWithGenericArg [concrete = constants.%CallExplicitGenericParamWithGenericArg] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %return.patt: @CallExplicitGenericParamWithGenericArg.%pattern_type (%pattern_type.1cb) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @CallExplicitGenericParamWithGenericArg.%pattern_type (%pattern_type.1cb) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @CallExplicitGenericParamWithGenericArg.%pattern_type (%pattern_type.1cb) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @CallExplicitGenericParamWithGenericArg.%pattern_type (%pattern_type.1cb) = return_slot_pattern %return.param_patt, %ptr.loc10_63.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc10: type = name_ref T, %T.loc10_43.2 [symbolic = %T.loc10_43.1 (constants.%T)] // CHECK:STDOUT: %struct_type.a.loc10_62.2: type = struct_type {.a: @CallExplicitGenericParamWithGenericArg.%T.loc10_43.1 (%T)} [symbolic = %struct_type.a.loc10_62.1 (constants.%struct_type.a)] @@ -439,8 +439,8 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %ExplicitGenericParam.decl: %ExplicitGenericParam.type = fn_decl @ExplicitGenericParam [concrete = constants.%ExplicitGenericParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %return.patt: @ExplicitGenericParam.%pattern_type (%pattern_type.4f4) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @ExplicitGenericParam.%pattern_type (%pattern_type.4f4) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @ExplicitGenericParam.%pattern_type (%pattern_type.4f4) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @ExplicitGenericParam.%pattern_type (%pattern_type.4f4) = return_slot_pattern %return.param_patt, %ptr.loc4_39.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc4_39.2: type = ptr_type %T.ref.loc4_38 [symbolic = %ptr.loc4_39.1 (constants.%ptr)] @@ -463,8 +463,8 @@ fn F() { // CHECK:STDOUT: %T.loc6_34.2: type = symbolic_binding T, 0 [symbolic = %T.loc6_34.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitGenericParamNonConst.decl: %CallExplicitGenericParamNonConst.type = fn_decl @CallExplicitGenericParamNonConst [concrete = constants.%CallExplicitGenericParamNonConst] { -// CHECK:STDOUT: %T.patt: %pattern_type.98f = value_binding_pattern T [concrete] -// CHECK:STDOUT: %T.param_patt: %pattern_type.98f = value_param_pattern %T.patt [concrete] +// CHECK:STDOUT: %T.param_patt: %pattern_type.98f = value_param_pattern [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.98f = at_binding_pattern T, %T.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = value_param call_param0 // CHECK:STDOUT: %.loc10: type = type_literal type [concrete = type] @@ -586,10 +586,10 @@ fn F() { // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %ExplicitAndAlsoDeduced.decl: %ExplicitAndAlsoDeduced.type = fn_decl @ExplicitAndAlsoDeduced [concrete = constants.%ExplicitAndAlsoDeduced] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @ExplicitAndAlsoDeduced.%pattern_type.loc6_37 (%pattern_type.51d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @ExplicitAndAlsoDeduced.%pattern_type.loc6_37 (%pattern_type.51d) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @ExplicitAndAlsoDeduced.%pattern_type.loc6_43 (%pattern_type.4f4) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @ExplicitAndAlsoDeduced.%pattern_type.loc6_43 (%pattern_type.4f4) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @ExplicitAndAlsoDeduced.%pattern_type.loc6_38 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @ExplicitAndAlsoDeduced.%pattern_type.loc6_38 (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @ExplicitAndAlsoDeduced.%pattern_type.loc6_47 (%pattern_type.4f4) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @ExplicitAndAlsoDeduced.%pattern_type.loc6_47 (%pattern_type.4f4) = return_slot_pattern %return.param_patt, %ptr.loc6_47.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_46: type = name_ref T, %T.loc6_27.2 [symbolic = %T.loc6_27.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc6_47.2: type = ptr_type %T.ref.loc6_46 [symbolic = %ptr.loc6_47.1 (constants.%ptr.e8f)] @@ -606,8 +606,8 @@ fn F() { // CHECK:STDOUT: %return: ref @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.e8f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitAndAlsoDeduced.decl: %CallExplicitAndAlsoDeduced.type = fn_decl @CallExplicitAndAlsoDeduced [concrete = constants.%CallExplicitAndAlsoDeduced] { -// CHECK:STDOUT: %return.patt: %pattern_type.f29 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f29 = return_slot_pattern %return.param_patt, %ptr [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref.loc10: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %ptr: type = ptr_type %A.ref.loc10 [concrete = constants.%ptr.643] @@ -627,10 +627,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @ExplicitAndAlsoDeduced(%T.loc6_27.2: type) { // CHECK:STDOUT: %T.loc6_27.1: type = symbolic_binding T, 0 [symbolic = %T.loc6_27.1 (constants.%T)] -// CHECK:STDOUT: %pattern_type.loc6_37: type = pattern_type %T.loc6_27.1 [symbolic = %pattern_type.loc6_37 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc6_38: type = pattern_type %T.loc6_27.1 [symbolic = %pattern_type.loc6_38 (constants.%pattern_type.51d)] // CHECK:STDOUT: %ptr.loc6_47.1: type = ptr_type %T.loc6_27.1 [symbolic = %ptr.loc6_47.1 (constants.%ptr.e8f)] // CHECK:STDOUT: %.loc6_47.1: Core.Form = init_form %ptr.loc6_47.1 [symbolic = %.loc6_47.1 (constants.%.cb6)] -// CHECK:STDOUT: %pattern_type.loc6_43: type = pattern_type %ptr.loc6_47.1 [symbolic = %pattern_type.loc6_43 (constants.%pattern_type.4f4)] +// CHECK:STDOUT: %pattern_type.loc6_47: type = pattern_type %ptr.loc6_47.1 [symbolic = %pattern_type.loc6_47 (constants.%pattern_type.4f4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_38: = require_complete_type %T.loc6_27.1 [symbolic = %require_complete.loc6_38 (constants.%require_complete.944)] @@ -669,10 +669,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitAndAlsoDeduced(constants.%T) { // CHECK:STDOUT: %T.loc6_27.1 => constants.%T -// CHECK:STDOUT: %pattern_type.loc6_37 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.51d // CHECK:STDOUT: %ptr.loc6_47.1 => constants.%ptr.e8f // CHECK:STDOUT: %.loc6_47.1 => constants.%.cb6 -// CHECK:STDOUT: %pattern_type.loc6_43 => constants.%pattern_type.4f4 +// CHECK:STDOUT: %pattern_type.loc6_47 => constants.%pattern_type.4f4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_38 => constants.%require_complete.944 @@ -682,10 +682,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitAndAlsoDeduced(constants.%A) { // CHECK:STDOUT: %T.loc6_27.1 => constants.%A -// CHECK:STDOUT: %pattern_type.loc6_37 => constants.%pattern_type.1ab +// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.1ab // CHECK:STDOUT: %ptr.loc6_47.1 => constants.%ptr.643 // CHECK:STDOUT: %.loc6_47.1 => constants.%.ebf -// CHECK:STDOUT: %pattern_type.loc6_43 => constants.%pattern_type.f29 +// CHECK:STDOUT: %pattern_type.loc6_47 => constants.%pattern_type.f29 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_38 => constants.%complete_type.357 @@ -743,10 +743,10 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %ImplicitGenericParam.decl: %ImplicitGenericParam.type = fn_decl @ImplicitGenericParam [concrete = constants.%ImplicitGenericParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @ImplicitGenericParam.%pattern_type.loc4_35 (%pattern_type.51d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @ImplicitGenericParam.%pattern_type.loc4_35 (%pattern_type.51d) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @ImplicitGenericParam.%pattern_type.loc4_41 (%pattern_type.4f4) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @ImplicitGenericParam.%pattern_type.loc4_41 (%pattern_type.4f4) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @ImplicitGenericParam.%pattern_type.loc4_36 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @ImplicitGenericParam.%pattern_type.loc4_36 (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @ImplicitGenericParam.%pattern_type.loc4_45 (%pattern_type.4f4) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @ImplicitGenericParam.%pattern_type.loc4_45 (%pattern_type.4f4) = return_slot_pattern %return.param_patt, %ptr.loc4_45.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc4_44: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc4_45.2: type = ptr_type %T.ref.loc4_44 [symbolic = %ptr.loc4_45.1 (constants.%ptr.e8f)] @@ -763,10 +763,10 @@ fn F() { // CHECK:STDOUT: %return: ref @ImplicitGenericParam.%ptr.loc4_45.1 (%ptr.e8f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallImplicitGenericParam.decl: %CallImplicitGenericParam.type = fn_decl @CallImplicitGenericParam [concrete = constants.%CallImplicitGenericParam] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern %return.param_patt, %ptr [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_40: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %ptr: type = ptr_type %i32.loc6_40 [concrete = constants.%ptr.235] @@ -781,10 +781,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @ImplicitGenericParam(%T.loc4_25.2: type) { // CHECK:STDOUT: %T.loc4_25.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_25.1 (constants.%T)] -// CHECK:STDOUT: %pattern_type.loc4_35: type = pattern_type %T.loc4_25.1 [symbolic = %pattern_type.loc4_35 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc4_36: type = pattern_type %T.loc4_25.1 [symbolic = %pattern_type.loc4_36 (constants.%pattern_type.51d)] // CHECK:STDOUT: %ptr.loc4_45.1: type = ptr_type %T.loc4_25.1 [symbolic = %ptr.loc4_45.1 (constants.%ptr.e8f)] // CHECK:STDOUT: %.loc4_45.1: Core.Form = init_form %ptr.loc4_45.1 [symbolic = %.loc4_45.1 (constants.%.cb6)] -// CHECK:STDOUT: %pattern_type.loc4_41: type = pattern_type %ptr.loc4_45.1 [symbolic = %pattern_type.loc4_41 (constants.%pattern_type.4f4)] +// CHECK:STDOUT: %pattern_type.loc4_45: type = pattern_type %ptr.loc4_45.1 [symbolic = %pattern_type.loc4_45 (constants.%pattern_type.4f4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc4_36: = require_complete_type %T.loc4_25.1 [symbolic = %require_complete.loc4_36 (constants.%require_complete.944)] @@ -812,10 +812,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitGenericParam(constants.%T) { // CHECK:STDOUT: %T.loc4_25.1 => constants.%T -// CHECK:STDOUT: %pattern_type.loc4_35 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc4_36 => constants.%pattern_type.51d // CHECK:STDOUT: %ptr.loc4_45.1 => constants.%ptr.e8f // CHECK:STDOUT: %.loc4_45.1 => constants.%.cb6 -// CHECK:STDOUT: %pattern_type.loc4_41 => constants.%pattern_type.4f4 +// CHECK:STDOUT: %pattern_type.loc4_45 => constants.%pattern_type.4f4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc4_36 => constants.%require_complete.944 @@ -825,10 +825,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitGenericParam(constants.%i32) { // CHECK:STDOUT: %T.loc4_25.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type.loc4_35 => constants.%pattern_type.7ce +// CHECK:STDOUT: %pattern_type.loc4_36 => constants.%pattern_type.7ce // CHECK:STDOUT: %ptr.loc4_45.1 => constants.%ptr.235 // CHECK:STDOUT: %.loc4_45.1 => constants.%.605 -// CHECK:STDOUT: %pattern_type.loc4_41 => constants.%pattern_type.fe8 +// CHECK:STDOUT: %pattern_type.loc4_45 => constants.%pattern_type.fe8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc4_36 => constants.%complete_type.f8a @@ -907,8 +907,8 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %TupleParam.decl: %TupleParam.type = fn_decl @TupleParam [concrete = constants.%TupleParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @TupleParam.%pattern_type (%pattern_type.e77) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @TupleParam.%pattern_type (%pattern_type.e77) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @TupleParam.%pattern_type (%pattern_type.e77) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @TupleParam.%pattern_type (%pattern_type.e77) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_19.1: type = splice_block %.loc4_19.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1047,8 +1047,8 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %StructParam.decl: %StructParam.type = fn_decl @StructParam [concrete = constants.%StructParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @StructParam.%pattern_type (%pattern_type.8a5) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @StructParam.%pattern_type (%pattern_type.8a5) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @StructParam.%pattern_type (%pattern_type.8a5) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @StructParam.%pattern_type (%pattern_type.8a5) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1157,8 +1157,8 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %BigStructParam.decl: %BigStructParam.type = fn_decl @BigStructParam [concrete = constants.%BigStructParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @BigStructParam.%pattern_type (%pattern_type.1d5) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @BigStructParam.%pattern_type (%pattern_type.1d5) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @BigStructParam.%pattern_type (%pattern_type.1d5) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @BigStructParam.%pattern_type (%pattern_type.1d5) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_23.1: type = splice_block %.loc4_23.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1249,8 +1249,8 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %SmallStructParam.decl: %SmallStructParam.type = fn_decl @SmallStructParam [concrete = constants.%SmallStructParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @SmallStructParam.%pattern_type (%pattern_type.958) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @SmallStructParam.%pattern_type (%pattern_type.958) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @SmallStructParam.%pattern_type (%pattern_type.958) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @SmallStructParam.%pattern_type (%pattern_type.958) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_25.1: type = splice_block %.loc4_25.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1340,8 +1340,8 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %WrongNameStructParam.decl: %WrongNameStructParam.type = fn_decl @WrongNameStructParam [concrete = constants.%WrongNameStructParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @WrongNameStructParam.%pattern_type (%pattern_type.ce4) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @WrongNameStructParam.%pattern_type (%pattern_type.ce4) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @WrongNameStructParam.%pattern_type (%pattern_type.ce4) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @WrongNameStructParam.%pattern_type (%pattern_type.ce4) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_29.1: type = splice_block %.loc4_29.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1430,8 +1430,8 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %WrongOrderStructParam.decl: %WrongOrderStructParam.type = fn_decl @WrongOrderStructParam [concrete = constants.%WrongOrderStructParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @WrongOrderStructParam.%pattern_type (%pattern_type.ab3) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @WrongOrderStructParam.%pattern_type (%pattern_type.ab3) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @WrongOrderStructParam.%pattern_type (%pattern_type.ab3) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @WrongOrderStructParam.%pattern_type (%pattern_type.ab3) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_30.1: type = splice_block %.loc4_30.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1513,10 +1513,10 @@ fn F() { // CHECK:STDOUT: %ImplicitNotDeducible.decl: %ImplicitNotDeducible.type = fn_decl @ImplicitNotDeducible [concrete = constants.%ImplicitNotDeducible] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %x.patt: @ImplicitNotDeducible.%pattern_type.loc6_45 (%pattern_type.51d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @ImplicitNotDeducible.%pattern_type.loc6_45 (%pattern_type.51d) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @ImplicitNotDeducible.%pattern_type.loc6_51 (%pattern_type.946) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @ImplicitNotDeducible.%pattern_type.loc6_51 (%pattern_type.946) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @ImplicitNotDeducible.%pattern_type.loc6_46 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @ImplicitNotDeducible.%pattern_type.loc6_46 (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @ImplicitNotDeducible.%pattern_type.loc6_54 (%pattern_type.946) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @ImplicitNotDeducible.%pattern_type.loc6_54 (%pattern_type.946) = return_slot_pattern %return.param_patt, %U.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc6_35.2 [symbolic = %U.loc6_35.1 (constants.%U)] // CHECK:STDOUT: %.loc6_54.2: Core.Form = init_form %U.ref [symbolic = %.loc6_54.1 (constants.%.822)] @@ -1542,9 +1542,9 @@ fn F() { // CHECK:STDOUT: generic fn @ImplicitNotDeducible(%T.loc6_25.2: type, %U.loc6_35.2: type) { // CHECK:STDOUT: %T.loc6_25.1: type = symbolic_binding T, 0 [symbolic = %T.loc6_25.1 (constants.%T)] // CHECK:STDOUT: %U.loc6_35.1: type = symbolic_binding U, 1 [symbolic = %U.loc6_35.1 (constants.%U)] -// CHECK:STDOUT: %pattern_type.loc6_45: type = pattern_type %T.loc6_25.1 [symbolic = %pattern_type.loc6_45 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc6_46: type = pattern_type %T.loc6_25.1 [symbolic = %pattern_type.loc6_46 (constants.%pattern_type.51d)] // CHECK:STDOUT: %.loc6_54.1: Core.Form = init_form %U.loc6_35.1 [symbolic = %.loc6_54.1 (constants.%.822)] -// CHECK:STDOUT: %pattern_type.loc6_51: type = pattern_type %U.loc6_35.1 [symbolic = %pattern_type.loc6_51 (constants.%pattern_type.946)] +// CHECK:STDOUT: %pattern_type.loc6_54: type = pattern_type %U.loc6_35.1 [symbolic = %pattern_type.loc6_54 (constants.%pattern_type.946)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @ImplicitNotDeducible.%T.loc6_25.1 (%T)) -> out %return.param: @ImplicitNotDeducible.%U.loc6_35.1 (%U); // CHECK:STDOUT: } @@ -1559,9 +1559,9 @@ fn F() { // CHECK:STDOUT: specific @ImplicitNotDeducible(constants.%T, constants.%U) { // CHECK:STDOUT: %T.loc6_25.1 => constants.%T // CHECK:STDOUT: %U.loc6_35.1 => constants.%U -// CHECK:STDOUT: %pattern_type.loc6_45 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc6_46 => constants.%pattern_type.51d // CHECK:STDOUT: %.loc6_54.1 => constants.%.822 -// CHECK:STDOUT: %pattern_type.loc6_51 => constants.%pattern_type.946 +// CHECK:STDOUT: %pattern_type.loc6_54 => constants.%pattern_type.946 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduce_inconsistent.carbon @@ -1599,12 +1599,12 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %ImplicitNotDeducible.decl: %ImplicitNotDeducible.type = fn_decl @ImplicitNotDeducible [concrete = constants.%ImplicitNotDeducible] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.51d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.51d) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %y.patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.51d) = value_binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.51d) = value_param_pattern %y.patt [concrete] -// CHECK:STDOUT: %return.patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %y.param_patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.51d) = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref.loc4_50 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc4_50: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] // CHECK:STDOUT: %.loc4_50.2: Core.Form = init_form %T.ref.loc4_50 [symbolic = %.loc4_50.1 (constants.%.184)] diff --git a/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon b/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon index cf902007d6c2..9147e544c332 100644 --- a/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon +++ b/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon @@ -70,8 +70,8 @@ fn B() { // CHECK:STDOUT: %Z.decl: type = interface_decl @Z [concrete = constants.%Z.type] {} {} // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %T.patt: %pattern_type.473 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @A.%pattern_type (%pattern_type.3fc) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @A.%pattern_type (%pattern_type.3fc) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @A.%pattern_type (%pattern_type.3fc) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @A.%pattern_type (%pattern_type.3fc) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_10: type = splice_block %Z.ref [concrete = constants.%Z.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -172,8 +172,8 @@ fn B() { // CHECK:STDOUT: %Lib.import = import Lib // CHECK:STDOUT: %A.decl: %A.type.816 = fn_decl @A.loc4 [concrete = constants.%A.8ae] { // CHECK:STDOUT: %T.patt: %pattern_type.e5e = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @A.loc4.%pattern_type (%pattern_type.857) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @A.loc4.%pattern_type (%pattern_type.857) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @A.loc4.%pattern_type (%pattern_type.857) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @A.loc4.%pattern_type (%pattern_type.857) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_13: type = splice_block %Z.ref [concrete = constants.%Z.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/function/generic/indirect_generic_type.carbon b/toolchain/check/testdata/function/generic/indirect_generic_type.carbon index 187eb4ea211f..543815a48a9e 100644 --- a/toolchain/check/testdata/function/generic/indirect_generic_type.carbon +++ b/toolchain/check/testdata/function/generic/indirect_generic_type.carbon @@ -70,8 +70,8 @@ fn F(T:! type, p: T**) -> T* { // CHECK:STDOUT: %T.loc4_6.1 => constants.%T.67d // CHECK:STDOUT: %ptr.loc4_20.1 => constants.%ptr.e8f // CHECK:STDOUT: %ptr.loc4_21.1 => constants.%ptr.125 -// CHECK:STDOUT: %pattern_type.loc4_16 => constants.%pattern_type.8bb +// CHECK:STDOUT: %pattern_type.loc4_17 => constants.%pattern_type.8bb // CHECK:STDOUT: %.loc4_28.1 => constants.%.cb6 -// CHECK:STDOUT: %pattern_type.loc4_24 => constants.%pattern_type.4f4 +// CHECK:STDOUT: %pattern_type.loc4_28 => constants.%pattern_type.4f4 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/param_in_type.carbon b/toolchain/check/testdata/function/generic/param_in_type.carbon index d3d0b0965338..7f8f773d6763 100644 --- a/toolchain/check/testdata/function/generic/param_in_type.carbon +++ b/toolchain/check/testdata/function/generic/param_in_type.carbon @@ -69,8 +69,8 @@ fn F(N:! i32, a: array(i32, N)*); // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.bb8) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.bb8) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.bb8) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.bb8) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_10: type = splice_block %i32.loc15_10 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/function/generic/redeclare.carbon b/toolchain/check/testdata/function/generic/redeclare.carbon index 6f7e36f3cb5a..b9c395a46c8c 100644 --- a/toolchain/check/testdata/function/generic/redeclare.carbon +++ b/toolchain/check/testdata/function/generic/redeclare.carbon @@ -125,8 +125,8 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl.loc4: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.4f4) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.4f4) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.4f4) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.4f4) = return_slot_pattern %return.param_patt, %ptr.loc6 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc4: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc4_20.2: type = ptr_type %T.ref.loc4 [symbolic = %ptr.loc4_20.1 (constants.%ptr)] @@ -141,8 +141,8 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc6: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.4f4) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.4f4) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.4f4) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.4f4) = return_slot_pattern %return.param_patt, %ptr.loc6 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6: type = name_ref T, %T.loc6 [symbolic = %T.loc4_6.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc6: type = ptr_type %T.ref.loc6 [symbolic = %ptr.loc4_20.1 (constants.%ptr)] @@ -225,8 +225,8 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %F.decl.loc4: %F.type.117dbc.1 = fn_decl @F.loc4 [concrete = constants.%F.d98bd5.1] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %return.patt: @F.loc4.%pattern_type (%pattern_type.4f4) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.loc4.%pattern_type (%pattern_type.4f4) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.loc4.%pattern_type (%pattern_type.4f4) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.loc4.%pattern_type (%pattern_type.4f4) = return_slot_pattern %return.param_patt, %ptr.loc4_30.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type %T.ref [symbolic = %ptr.loc4_30.1 (constants.%ptr.e8f)] @@ -247,8 +247,8 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %F.decl.loc13: %F.type.117dbc.2 = fn_decl @F.loc13 [concrete = constants.%F.d98bd5.2] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %return.patt: @F.loc13.%pattern_type (%pattern_type.423) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.loc13.%pattern_type (%pattern_type.423) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.loc13.%pattern_type (%pattern_type.423) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.loc13.%pattern_type (%pattern_type.423) = return_slot_pattern %return.param_patt, %ptr.loc13_30.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13_16.2 [symbolic = %U.loc13_16.1 (constants.%U)] // CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type %U.ref [symbolic = %ptr.loc13_30.1 (constants.%ptr.18e)] @@ -351,8 +351,8 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %F.decl.loc4: %F.type.117dbc.1 = fn_decl @F.loc4 [concrete = constants.%F.d98bd5.1] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %return.patt: @F.loc4.%pattern_type (%pattern_type.4f4) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.loc4.%pattern_type (%pattern_type.4f4) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.loc4.%pattern_type (%pattern_type.4f4) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.loc4.%pattern_type (%pattern_type.4f4) = return_slot_pattern %return.param_patt, %ptr.loc4_30.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T.67d)] // CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type %T.ref [symbolic = %ptr.loc4_30.1 (constants.%ptr.e8f)] @@ -373,8 +373,8 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %F.decl.loc13: %F.type.117dbc.2 = fn_decl @F.loc13 [concrete = constants.%F.d98bd5.2] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 1 [concrete] -// CHECK:STDOUT: %return.patt: @F.loc13.%pattern_type (%pattern_type.423) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.loc13.%pattern_type (%pattern_type.423) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.loc13.%pattern_type (%pattern_type.423) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.loc13.%pattern_type (%pattern_type.423) = return_slot_pattern %return.param_patt, %ptr.loc13_37.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc13_23.2 [symbolic = %T.loc13_23.1 (constants.%T.091)] // CHECK:STDOUT: %ptr.loc13_37.2: type = ptr_type %T.ref.loc13 [symbolic = %ptr.loc13_37.1 (constants.%ptr.18e)] @@ -477,8 +477,8 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %F.decl.loc4: %F.type.117dbc.1 = fn_decl @F.loc4 [concrete = constants.%F.d98bd5.1] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %return.patt: @F.loc4.%pattern_type (%pattern_type.4f4b84.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.loc4.%pattern_type (%pattern_type.4f4b84.1) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.loc4.%pattern_type (%pattern_type.4f4b84.1) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.loc4.%pattern_type (%pattern_type.4f4b84.1) = return_slot_pattern %return.param_patt, %ptr.loc4_30.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T.67d)] // CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type %T.ref [symbolic = %ptr.loc4_30.1 (constants.%ptr.e8f8f9.1)] @@ -499,8 +499,8 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %F.decl.loc13: %F.type.117dbc.2 = fn_decl @F.loc13 [concrete = constants.%F.d98bd5.2] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 1 [concrete] -// CHECK:STDOUT: %return.patt: @F.loc13.%pattern_type (%pattern_type.4f4b84.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.loc13.%pattern_type (%pattern_type.4f4b84.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.loc13.%pattern_type (%pattern_type.4f4b84.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.loc13.%pattern_type (%pattern_type.4f4b84.2) = return_slot_pattern %return.param_patt, %ptr.loc13_30.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13_6.2 [symbolic = %U.loc13_6.1 (constants.%U.67d)] // CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type %U.ref [symbolic = %ptr.loc13_30.1 (constants.%ptr.e8f8f9.2)] diff --git a/toolchain/check/testdata/function/generic/return_slot.carbon b/toolchain/check/testdata/function/generic/return_slot.carbon index be8905959a18..892e2406912b 100644 --- a/toolchain/check/testdata/function/generic/return_slot.carbon +++ b/toolchain/check/testdata/function/generic/return_slot.carbon @@ -127,8 +127,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Wrap.Make.decl: @Wrap.%Wrap.Make.type (%Wrap.Make.type.6e9) = fn_decl @Wrap.Make [symbolic = @Wrap.%Wrap.Make (constants.%Wrap.Make.e25)] { -// CHECK:STDOUT: %return.patt: @Wrap.Make.%pattern_type (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Wrap.Make.%pattern_type (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Wrap.Make.%pattern_type (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Wrap.Make.%pattern_type (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Wrap.%T.loc15_12.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc16_16.3: Core.Form = init_form %T.ref [symbolic = %.loc16_16.2 (constants.%.184)] diff --git a/toolchain/check/testdata/generic/call_basic_depth.carbon b/toolchain/check/testdata/generic/call_basic_depth.carbon index 0a04a45d9446..647965560189 100644 --- a/toolchain/check/testdata/generic/call_basic_depth.carbon +++ b/toolchain/check/testdata/generic/call_basic_depth.carbon @@ -76,8 +76,8 @@ fn M() { // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc19_10.1: type = splice_block %.loc19_10.2 [concrete = type] { // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/complete_type.carbon b/toolchain/check/testdata/generic/complete_type.carbon index 9a0e6dc38106..33cc36f8398b 100644 --- a/toolchain/check/testdata/generic/complete_type.carbon +++ b/toolchain/check/testdata/generic/complete_type.carbon @@ -132,8 +132,8 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: %T.loc6_9.2: type = symbolic_binding T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type.fa6 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.fa6 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.fa6 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.fa6 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %A.764 = value_param call_param0 // CHECK:STDOUT: %.loc27: type = splice_block %A [concrete = constants.%A.764] { @@ -239,8 +239,8 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: %B.decl.loc4: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.4f4) = value_binding_pattern v [concrete] -// CHECK:STDOUT: %v.param_patt: @F.%pattern_type (%pattern_type.4f4) = value_param_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.param_patt: @F.%pattern_type (%pattern_type.4f4) = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.4f4) = at_binding_pattern v, %v.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_10.1: type = splice_block %.loc6_10.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -255,8 +255,8 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: %v: @F.%ptr.loc6_20.1 (%ptr.e8f) = value_binding v, %v.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type.191 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.191 = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.191 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.191 = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %ptr.27c = value_param call_param0 // CHECK:STDOUT: %.loc11: type = splice_block %ptr [concrete = constants.%ptr.27c] { @@ -360,8 +360,8 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6 (%pattern_type.4f4) = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6 (%pattern_type.4f4) = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6 (%pattern_type.4f4) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6 (%pattern_type.4f4) = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_10.1: type = splice_block %.loc6_10.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -376,8 +376,8 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: %p: @F.%ptr.loc6_20.1 (%ptr.e8f) = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.patt: %pattern_type.191 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.191 = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.191 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.191 = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %ptr.27c = value_param call_param0 // CHECK:STDOUT: %.loc20: type = splice_block %ptr [concrete = constants.%ptr.27c] { diff --git a/toolchain/check/testdata/generic/dependent_param.carbon b/toolchain/check/testdata/generic/dependent_param.carbon index c950cd4b4cb4..92d36e4acd74 100644 --- a/toolchain/check/testdata/generic/dependent_param.carbon +++ b/toolchain/check/testdata/generic/dependent_param.carbon @@ -140,8 +140,8 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Inner.Get.decl: @Inner.%Inner.Get.type (%Inner.Get.type.6ef) = fn_decl @Inner.Get [symbolic = @Inner.%Inner.Get (constants.%Inner.Get.ba5)] { -// CHECK:STDOUT: %return.patt: @Inner.Get.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Inner.Get.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Inner.Get.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Inner.Get.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc7_17.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T.035)] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] diff --git a/toolchain/check/testdata/generic/template/convert.carbon b/toolchain/check/testdata/generic/template/convert.carbon index 7baab0f964b2..c6750717e4ab 100644 --- a/toolchain/check/testdata/generic/template/convert.carbon +++ b/toolchain/check/testdata/generic/template/convert.carbon @@ -157,10 +157,10 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d1c4.1) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d1c4.1) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc4: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.ff5] @@ -176,10 +176,10 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Test1.decl: %Test1.type = fn_decl @Test1 [concrete = constants.%Test1] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc9_21 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc9_21: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc9: Core.Form = init_form %i32.loc9_21 [concrete = constants.%.ff5] @@ -191,10 +191,10 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %Test2.decl: %Test2.type = fn_decl @Test2 [concrete = constants.%Test2] { -// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc20: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -208,10 +208,10 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.ImplicitAs.impl: %Self.ref as %ImplicitAs.type { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type = fn_decl @C.as.ImplicitAs.impl.Convert [concrete = constants.%C.as.ImplicitAs.impl.Convert] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16_33: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -405,10 +405,10 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d1c4.1) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d1c4.1) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc4: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.ff5] @@ -425,10 +425,10 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { -// CHECK:STDOUT: %d.patt: %pattern_type.9c8 = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.9c8 = value_param_pattern %d.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.9c8 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.9c8 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc11: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/generic/template/member_access.carbon b/toolchain/check/testdata/generic/template/member_access.carbon index b5b39f3605de..8e6d050f67a3 100644 --- a/toolchain/check/testdata/generic/template/member_access.carbon +++ b/toolchain/check/testdata/generic/template/member_access.carbon @@ -175,10 +175,10 @@ fn Test(e: E) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc4: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.ff5] @@ -195,16 +195,16 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %Test1.decl: %Test1.type = fn_decl @Test1 [concrete = constants.%Test1] { -// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: %C = value_binding c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: %Test2.decl: %Test2.type = fn_decl @Test2 [concrete = constants.%Test2] { -// CHECK:STDOUT: %x.patt: %pattern_type.811 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.811 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.811 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.811 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %struct_type.m.n = value_param call_param0 // CHECK:STDOUT: %.loc17: type = splice_block %struct_type.m.n [concrete = constants.%struct_type.m.n] { @@ -376,10 +376,10 @@ fn Test(e: E) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc4: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.ff5] @@ -396,8 +396,8 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { -// CHECK:STDOUT: %d.patt: %pattern_type.9c8 = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.9c8 = value_param_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.9c8 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.9c8 = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %d.param: %D = value_param call_param0 // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] @@ -558,10 +558,10 @@ fn Test(e: E) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F.loc4 [concrete = constants.%F.d98] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] -// CHECK:STDOUT: %x.patt: @F.loc4.%pattern_type (%pattern_type.51d1c4.1) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.loc4.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.loc4.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.loc4.%pattern_type (%pattern_type.51d1c4.1) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc4: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.ff5] @@ -578,8 +578,8 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: %E.decl: type = class_decl @E [concrete = constants.%E] {} {} // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { -// CHECK:STDOUT: %e.patt: %pattern_type.99f = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: %pattern_type.99f = value_param_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.param_patt: %pattern_type.99f = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.99f = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %E = value_param call_param0 // CHECK:STDOUT: %E.ref: type = name_ref E, file.%E.decl [concrete = constants.%E] diff --git a/toolchain/check/testdata/generic/template/unimplemented.carbon b/toolchain/check/testdata/generic/template/unimplemented.carbon index 00cd883d5634..18b173152171 100644 --- a/toolchain/check/testdata/generic/template/unimplemented.carbon +++ b/toolchain/check/testdata/generic/template/unimplemented.carbon @@ -111,10 +111,10 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d1c4.1) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d1c4.1) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6_34: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -201,8 +201,8 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %c.patt: %pattern_type.7c7 = symbolic_binding_pattern c, 0, template [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc11_25: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -300,8 +300,8 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.cac = symbolic_binding_pattern T, 0, template [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.a64db1.2) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.a64db1.2) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.a64db1.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.a64db1.2) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_23: type = splice_block %Destroy.ref [concrete = constants.%Destroy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/generic/template_dependence.carbon b/toolchain/check/testdata/generic/template_dependence.carbon index 841394192a86..aad74991fdae 100644 --- a/toolchain/check/testdata/generic/template_dependence.carbon +++ b/toolchain/check/testdata/generic/template_dependence.carbon @@ -57,10 +57,10 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc5_25 (%pattern_type.8bb) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc5_25 (%pattern_type.8bb) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc5_33 (%pattern_type.4f4b84.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc5_33 (%pattern_type.4f4b84.1) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc5_26 (%pattern_type.8bb) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc5_26 (%pattern_type.8bb) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc5_37 (%pattern_type.4f4b84.1) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc5_37 (%pattern_type.4f4b84.1) = return_slot_pattern %return.param_patt, %ptr.loc5_37 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc5_36: type = name_ref T, %T.loc5_15.2 [template = %T.loc5_15.1 (constants.%T.67db0b.1)] // CHECK:STDOUT: %ptr.loc5_37: type = ptr_type %T.ref.loc5_36 [template = %ptr.loc5_29.1 (constants.%ptr.e8f8f9.1)] @@ -86,9 +86,9 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: %T.loc5_15.1: type = symbolic_binding T, 0, template [template = %T.loc5_15.1 (constants.%T.67db0b.1)] // CHECK:STDOUT: %ptr.loc5_29.1: type = ptr_type %T.loc5_15.1 [template = %ptr.loc5_29.1 (constants.%ptr.e8f8f9.1)] // CHECK:STDOUT: %ptr.loc5_30.1: type = ptr_type %ptr.loc5_29.1 [template = %ptr.loc5_30.1 (constants.%ptr.125)] -// CHECK:STDOUT: %pattern_type.loc5_25: type = pattern_type %ptr.loc5_30.1 [template = %pattern_type.loc5_25 (constants.%pattern_type.8bb)] +// CHECK:STDOUT: %pattern_type.loc5_26: type = pattern_type %ptr.loc5_30.1 [template = %pattern_type.loc5_26 (constants.%pattern_type.8bb)] // CHECK:STDOUT: %.loc5_37.1: Core.Form = init_form %ptr.loc5_29.1 [template = %.loc5_37.1 (constants.%.cb6cb9.1)] -// CHECK:STDOUT: %pattern_type.loc5_33: type = pattern_type %ptr.loc5_29.1 [template = %pattern_type.loc5_33 (constants.%pattern_type.4f4b84.1)] +// CHECK:STDOUT: %pattern_type.loc5_37: type = pattern_type %ptr.loc5_29.1 [template = %pattern_type.loc5_37 (constants.%pattern_type.4f4b84.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_26: = require_complete_type %ptr.loc5_30.1 [template = %require_complete.loc5_26 (constants.%require_complete.fbe)] @@ -119,9 +119,9 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: %T.loc5_15.1 => constants.%T.67db0b.1 // CHECK:STDOUT: %ptr.loc5_29.1 => constants.%ptr.e8f8f9.1 // CHECK:STDOUT: %ptr.loc5_30.1 => constants.%ptr.125 -// CHECK:STDOUT: %pattern_type.loc5_25 => constants.%pattern_type.8bb +// CHECK:STDOUT: %pattern_type.loc5_26 => constants.%pattern_type.8bb // CHECK:STDOUT: %.loc5_37.1 => constants.%.cb6cb9.1 -// CHECK:STDOUT: %pattern_type.loc5_33 => constants.%pattern_type.4f4b84.1 +// CHECK:STDOUT: %pattern_type.loc5_37 => constants.%pattern_type.4f4b84.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- mixed.carbon @@ -145,8 +145,8 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.eee) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.eee) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.eee) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.eee) = return_slot_pattern %return.param_patt, %.loc5_43.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc5: type = name_ref T, %T.loc5_15.2 [template = %T.loc5_15.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc5: type = name_ref U, %U.loc5_25.2 [symbolic = %U.loc5_25.1 (constants.%U)] diff --git a/toolchain/check/testdata/if/basics.carbon b/toolchain/check/testdata/if/basics.carbon index c027029458dc..2183a06053df 100644 --- a/toolchain/check/testdata/if/basics.carbon +++ b/toolchain/check/testdata/if/basics.carbon @@ -124,8 +124,8 @@ fn VarScope(b: bool) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %If.decl: %If.type = fn_decl @If [concrete = constants.%If] { -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc8: type = type_literal bool [concrete = bool] @@ -169,8 +169,8 @@ fn VarScope(b: bool) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %If.decl: %If.type = fn_decl @If [concrete = constants.%If] { -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc7: type = type_literal bool [concrete = bool] @@ -221,10 +221,10 @@ fn VarScope(b: bool) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %If.decl: %If.type = fn_decl @If [concrete = constants.%If] { -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc4_19.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_19.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc4_19.2: Core.Form = init_form %.loc4_19.1 [concrete = constants.%.f34] diff --git a/toolchain/check/testdata/if_expr/basic.carbon b/toolchain/check/testdata/if_expr/basic.carbon index 99ad2f778c10..b0297c773ef5 100644 --- a/toolchain/check/testdata/if_expr/basic.carbon +++ b/toolchain/check/testdata/if_expr/basic.carbon @@ -99,14 +99,14 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.7ce = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15_34 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_34: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15_34: Core.Form = init_form %i32.loc15_34 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/if_expr/constant_condition.carbon b/toolchain/check/testdata/if_expr/constant_condition.carbon index c5cd9b03a1d9..3c4b245f67cc 100644 --- a/toolchain/check/testdata/if_expr/constant_condition.carbon +++ b/toolchain/check/testdata/if_expr/constant_condition.carbon @@ -144,8 +144,8 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15_11: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -153,8 +153,8 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16_11: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -162,8 +162,8 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc18: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -171,8 +171,8 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc22: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -180,8 +180,8 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Constant.decl: %Constant.type = fn_decl @Constant [concrete = constants.%Constant] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc26: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc26: Core.Form = init_form %i32.loc26 [concrete = constants.%.ff5] @@ -189,10 +189,10 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %PartiallyConstant.decl: %PartiallyConstant.type = fn_decl @PartiallyConstant [concrete = constants.%PartiallyConstant] { -// CHECK:STDOUT: %t.patt: %pattern_type.98f = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: %pattern_type.98f = value_param_pattern %t.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.98f = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.98f = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc32_34: Core.Form = init_form %i32.loc32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/if_expr/control_flow.carbon b/toolchain/check/testdata/if_expr/control_flow.carbon index 6abaadfb66bb..fd231dcfc292 100644 --- a/toolchain/check/testdata/if_expr/control_flow.carbon +++ b/toolchain/check/testdata/if_expr/control_flow.carbon @@ -99,8 +99,8 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15_11: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -108,8 +108,8 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16_11: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -117,10 +117,10 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc18_18: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/if_expr/fail_partial_constant.carbon b/toolchain/check/testdata/if_expr/fail_partial_constant.carbon index ec1d1e62e424..f1e8e226a7da 100644 --- a/toolchain/check/testdata/if_expr/fail_partial_constant.carbon +++ b/toolchain/check/testdata/if_expr/fail_partial_constant.carbon @@ -80,8 +80,8 @@ fn ChosenBranchIsNonConstant(t: type) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %ConditionIsNonConstant.decl: %ConditionIsNonConstant.type = fn_decl @ConditionIsNonConstant [concrete = constants.%ConditionIsNonConstant] { -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc4: type = type_literal bool [concrete = bool] @@ -155,8 +155,8 @@ fn ChosenBranchIsNonConstant(t: type) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %ChosenBranchIsNonConstant.decl: %ChosenBranchIsNonConstant.type = fn_decl @ChosenBranchIsNonConstant [concrete = constants.%ChosenBranchIsNonConstant] { -// CHECK:STDOUT: %t.patt: %pattern_type.98f = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: %pattern_type.98f = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.98f = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.98f = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %t.param: type = value_param call_param0 // CHECK:STDOUT: %.loc4: type = type_literal type [concrete = type] diff --git a/toolchain/check/testdata/if_expr/nested.carbon b/toolchain/check/testdata/if_expr/nested.carbon index a6c95cdd52de..a19e2a5d2b6f 100644 --- a/toolchain/check/testdata/if_expr/nested.carbon +++ b/toolchain/check/testdata/if_expr/nested.carbon @@ -98,14 +98,14 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.831 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.831 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.831 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.831 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.831 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15_36: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/if_expr/struct.carbon b/toolchain/check/testdata/if_expr/struct.carbon index b3e4e4ebea4a..780d810fb267 100644 --- a/toolchain/check/testdata/if_expr/struct.carbon +++ b/toolchain/check/testdata/if_expr/struct.carbon @@ -90,8 +90,8 @@ fn F(cond: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %s.patt: %pattern_type.851 = value_binding_pattern s [concrete] -// CHECK:STDOUT: %s.param_patt: %pattern_type.851 = value_param_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.param_patt: %pattern_type.851 = value_param_pattern [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.851 = at_binding_pattern s, %s.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %s.param: %struct_type.a.b.501 = value_param call_param0 // CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b.501] { @@ -102,8 +102,8 @@ fn F(cond: bool) { // CHECK:STDOUT: %s: %struct_type.a.b.501 = value_binding s, %s.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %cond.patt: %pattern_type.831 = value_binding_pattern cond [concrete] -// CHECK:STDOUT: %cond.param_patt: %pattern_type.831 = value_param_pattern %cond.patt [concrete] +// CHECK:STDOUT: %cond.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %cond.patt: %pattern_type.831 = at_binding_pattern cond, %cond.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %cond.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc17: type = type_literal bool [concrete = bool] diff --git a/toolchain/check/testdata/impl/assoc_const_self.carbon b/toolchain/check/testdata/impl/assoc_const_self.carbon index f7167a2567bf..06e1282e3b11 100644 --- a/toolchain/check/testdata/impl/assoc_const_self.carbon +++ b/toolchain/check/testdata/impl/assoc_const_self.carbon @@ -491,10 +491,10 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.ImplicitAs.impl: %.loc10_7.2 as %ImplicitAs.type { // CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert.decl: %empty_tuple.type.as.ImplicitAs.impl.Convert.type = fn_decl @empty_tuple.type.as.ImplicitAs.impl.Convert [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert] { -// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc11_36: Core.Form = init_form %C.ref [concrete = constants.%.a69] diff --git a/toolchain/check/testdata/impl/compound.carbon b/toolchain/check/testdata/impl/compound.carbon index 4c94492d6f6c..e538b18571b9 100644 --- a/toolchain/check/testdata/impl/compound.carbon +++ b/toolchain/check/testdata/impl/compound.carbon @@ -169,10 +169,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert)] { -// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.8de) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.8de) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_28 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_28 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.8de) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.8de) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_31 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %Dest.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_22.2 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %.loc4_31.2: Core.Form = init_form %Dest.ref [symbolic = %.loc4_31.1 (constants.%.184)] @@ -205,9 +205,9 @@ fn InstanceCallFail() { // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.9fe)] // CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc4_14: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.8de)] +// CHECK:STDOUT: %pattern_type.loc4_18: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc4_18 (constants.%pattern_type.8de)] // CHECK:STDOUT: %.loc4_31.1: Core.Form = init_form %Dest [symbolic = %.loc4_31.1 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc4_28: type = pattern_type %Dest [symbolic = %pattern_type.loc4_28 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc4_31: type = pattern_type %Dest [symbolic = %pattern_type.loc4_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%Dest (%Dest); // CHECK:STDOUT: } @@ -223,9 +223,9 @@ fn InstanceCallFail() { // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fe // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc4_14 => constants.%pattern_type.8de +// CHECK:STDOUT: %pattern_type.loc4_18 => constants.%pattern_type.8de // CHECK:STDOUT: %.loc4_31.1 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc4_28 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc4_31 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- non-instance_success.carbon @@ -406,8 +406,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %NonInstance2.ref: type = name_ref NonInstance2, file.%NonInstance2.decl [concrete = constants.%NonInstance2.type] // CHECK:STDOUT: } // CHECK:STDOUT: %NonInstanceCall2.decl: %NonInstanceCall2.type = fn_decl @NonInstanceCall2 [concrete = constants.%NonInstanceCall2] { -// CHECK:STDOUT: %n.patt: %pattern_type.d5c = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.d5c = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.d5c = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.d5c = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %struct_type.b = value_param call_param0 // CHECK:STDOUT: %.loc13_31: type = splice_block %struct_type.b [concrete = constants.%struct_type.b] { @@ -619,8 +619,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %NonInstance3.ref: type = name_ref NonInstance3, file.%NonInstance3.decl [concrete = constants.%NonInstance3.type] // CHECK:STDOUT: } // CHECK:STDOUT: %NonInstanceCallIndirect.decl: %NonInstanceCallIndirect.type = fn_decl @NonInstanceCallIndirect [concrete = constants.%NonInstanceCallIndirect] { -// CHECK:STDOUT: %p.patt: %pattern_type.5f5 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.5f5 = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.5f5 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.5f5 = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc13_39: type = splice_block %ptr [concrete = constants.%ptr] { @@ -805,8 +805,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Instance1.ref: type = name_ref Instance1, file.%Instance1.decl [concrete = constants.%Instance1.type] // CHECK:STDOUT: } // CHECK:STDOUT: %InstanceCall.decl: %InstanceCall.type = fn_decl @InstanceCall [concrete = constants.%InstanceCall] { -// CHECK:STDOUT: %n.patt: %pattern_type.515 = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.515 = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.515 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.515 = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %struct_type.d = value_param call_param0 // CHECK:STDOUT: %.loc11_27: type = splice_block %struct_type.d [concrete = constants.%struct_type.d] { @@ -817,8 +817,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %n: %struct_type.d = value_binding n, %n.param // CHECK:STDOUT: } // CHECK:STDOUT: %InstanceCallIndirect.decl: %InstanceCallIndirect.type = fn_decl @InstanceCallIndirect [concrete = constants.%InstanceCallIndirect] { -// CHECK:STDOUT: %p.patt: %pattern_type.8d6 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.8d6 = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.8d6 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.8d6 = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc15_36: type = splice_block %ptr [concrete = constants.%ptr] { @@ -837,8 +837,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Instance1.WithSelf.G1.decl: @Instance1.WithSelf.%Instance1.WithSelf.G1.type (%Instance1.WithSelf.G1.type.291) = fn_decl @Instance1.WithSelf.G1 [symbolic = @Instance1.WithSelf.%Instance1.WithSelf.G1 (constants.%Instance1.WithSelf.G1.db7)] { -// CHECK:STDOUT: %self.patt: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.97b) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.97b) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.97b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.97b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Instance1.WithSelf.G1.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -860,8 +860,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: impl @struct_type.d.as.Instance1.impl: %struct_type.d as %Instance1.ref { // CHECK:STDOUT: %struct_type.d.as.Instance1.impl.G1.decl: %struct_type.d.as.Instance1.impl.G1.type = fn_decl @struct_type.d.as.Instance1.impl.G1 [concrete = constants.%struct_type.d.as.Instance1.impl.G1] { -// CHECK:STDOUT: %self.patt: %pattern_type.515 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.515 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.515 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.515 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %struct_type.d = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @struct_type.d.as.Instance1.impl.%struct_type.d [concrete = constants.%struct_type.d] @@ -988,8 +988,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Instance2.WithSelf.G2.decl: @Instance2.WithSelf.%Instance2.WithSelf.G2.type (%Instance2.WithSelf.G2.type.e15) = fn_decl @Instance2.WithSelf.G2 [symbolic = @Instance2.WithSelf.%Instance2.WithSelf.G2 (constants.%Instance2.WithSelf.G2.6c8)] { -// CHECK:STDOUT: %self.patt: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.a35) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.a35) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.a35) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.a35) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Instance2.WithSelf.G2.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -1011,8 +1011,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: impl @struct_type.e.as.Instance2.impl: %struct_type.e as %Instance2.ref { // CHECK:STDOUT: %struct_type.e.as.Instance2.impl.G2.decl: %struct_type.e.as.Instance2.impl.G2.type = fn_decl @struct_type.e.as.Instance2.impl.G2 [concrete = constants.%struct_type.e.as.Instance2.impl.G2] { -// CHECK:STDOUT: %self.patt: %pattern_type.efd = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.efd = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.efd = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.efd = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %struct_type.e = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @struct_type.e.as.Instance2.impl.%struct_type.e [concrete = constants.%struct_type.e] diff --git a/toolchain/check/testdata/impl/extend_impl_generic.carbon b/toolchain/check/testdata/impl/extend_impl_generic.carbon index 9785c131ae23..f2d8216b90f8 100644 --- a/toolchain/check/testdata/impl/extend_impl_generic.carbon +++ b/toolchain/check/testdata/impl/extend_impl_generic.carbon @@ -180,8 +180,8 @@ class X(U:! type) { // CHECK:STDOUT: %Param.decl: type = class_decl @Param [concrete = constants.%Param] {} {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc20: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -202,8 +202,8 @@ class X(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.246) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.58b)] { -// CHECK:STDOUT: %return.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.51d1c4.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.51d1c4.1) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.51d1c4.1) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.51d1c4.1) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @HasF.%T.loc4_16.2 [symbolic = %T (constants.%T.67d)] // CHECK:STDOUT: %.loc5_13.2: Core.Form = init_form %T.ref [symbolic = %.loc5_13.1 (constants.%.184347.1)] @@ -226,8 +226,8 @@ class X(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.HasF.impl: %Self.ref as %HasF.type { // CHECK:STDOUT: %C.as.HasF.impl.F.decl: %C.as.HasF.impl.F.type = fn_decl @C.as.HasF.impl.F [concrete = constants.%C.as.HasF.impl.F] { -// CHECK:STDOUT: %return.patt: %pattern_type.9ea = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ea = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.9ea = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.9ea = return_slot_pattern %return.param_patt, %Param.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Param.ref: type = name_ref Param, file.%Param.decl [concrete = constants.%Param] // CHECK:STDOUT: %.loc14: Core.Form = init_form %Param.ref [concrete = constants.%.436] @@ -499,10 +499,10 @@ class X(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.1d69d8.1) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.cd4fc9.1)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type.loc5_8 (%pattern_type.a8a) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type.loc5_8 (%pattern_type.a8a) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: @I.WithSelf.F.%pattern_type.loc5_20 (%pattern_type.51d1c4.1) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @I.WithSelf.F.%pattern_type.loc5_20 (%pattern_type.51d1c4.1) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.a8a) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.a8a) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @I.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.51d1c4.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @I.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.51d1c4.1) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -543,10 +543,10 @@ class X(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: impl: %Self.ref as %I.type.loc9_21.2 { // CHECK:STDOUT: %X.as.I.impl.F.decl: @X.as.I.impl.%X.as.I.impl.F.type (%X.as.I.impl.F.type) = fn_decl @X.as.I.impl.F [symbolic = @X.as.I.impl.%X.as.I.impl.F (constants.%X.as.I.impl.F)] { -// CHECK:STDOUT: %self.patt: @X.as.I.impl.F.%pattern_type.loc10_17 (%pattern_type.e07) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @X.as.I.impl.F.%pattern_type.loc10_17 (%pattern_type.e07) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %t.patt: @X.as.I.impl.F.%pattern_type.loc10_36 (%pattern_type.51d1c4.2) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @X.as.I.impl.F.%pattern_type.loc10_36 (%pattern_type.51d1c4.2) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @X.as.I.impl.F.%pattern_type.loc10_21 (%pattern_type.e07) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @X.as.I.impl.F.%pattern_type.loc10_21 (%pattern_type.e07) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @X.as.I.impl.F.%pattern_type.loc10_37 (%pattern_type.51d1c4.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @X.as.I.impl.F.%pattern_type.loc10_37 (%pattern_type.51d1c4.2) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @X.as.I.impl.F.%X (%X) = value_param call_param0 // CHECK:STDOUT: %.loc10_23.1: type = splice_block %Self.ref [symbolic = %X (constants.%X)] { @@ -599,8 +599,8 @@ class X(U:! type) { // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab3e4.1)] // CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.1ab3e4.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.fdb544.1)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.a8a)] -// CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %T [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.51d1c4.1)] +// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.a8a)] +// CHECK:STDOUT: %pattern_type.loc5_21: type = pattern_type %T [symbolic = %pattern_type.loc5_21 (constants.%pattern_type.51d1c4.1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type), %t.param: @I.WithSelf.F.%T (%T)); // CHECK:STDOUT: } @@ -608,10 +608,10 @@ class X(U:! type) { // CHECK:STDOUT: generic fn @X.as.I.impl.F(@X.%U.loc8_9.2: type) { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %X: type = class_type @X, @X(%U) [symbolic = %X (constants.%X)] -// CHECK:STDOUT: %pattern_type.loc10_17: type = pattern_type %X [symbolic = %pattern_type.loc10_17 (constants.%pattern_type.e07)] +// CHECK:STDOUT: %pattern_type.loc10_21: type = pattern_type %X [symbolic = %pattern_type.loc10_21 (constants.%pattern_type.e07)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U)> [symbolic = %I.type (constants.%I.type.1ab3e4.2)] // CHECK:STDOUT: %require_complete.loc10_39: = require_complete_type %I.type [symbolic = %require_complete.loc10_39 (constants.%require_complete.e36)] -// CHECK:STDOUT: %pattern_type.loc10_36: type = pattern_type %U [symbolic = %pattern_type.loc10_36 (constants.%pattern_type.51d1c4.2)] +// CHECK:STDOUT: %pattern_type.loc10_37: type = pattern_type %U [symbolic = %pattern_type.loc10_37 (constants.%pattern_type.51d1c4.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc10_21: = require_complete_type %X [symbolic = %require_complete.loc10_21 (constants.%require_complete.5dd)] @@ -634,8 +634,8 @@ class X(U:! type) { // CHECK:STDOUT: %I.type => constants.%I.type.1ab3e4.1 // CHECK:STDOUT: %Self => constants.%Self.fdb544.1 // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.a8a -// CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.51d1c4.1 +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.a8a +// CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.51d1c4.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%U) { @@ -680,10 +680,10 @@ class X(U:! type) { // CHECK:STDOUT: specific @X.as.I.impl.F(constants.%U) { // CHECK:STDOUT: %U => constants.%U // CHECK:STDOUT: %X => constants.%X -// CHECK:STDOUT: %pattern_type.loc10_17 => constants.%pattern_type.e07 +// CHECK:STDOUT: %pattern_type.loc10_21 => constants.%pattern_type.e07 // CHECK:STDOUT: %I.type => constants.%I.type.1ab3e4.2 // CHECK:STDOUT: %require_complete.loc10_39 => constants.%require_complete.e36 -// CHECK:STDOUT: %pattern_type.loc10_36 => constants.%pattern_type.51d1c4.2 +// CHECK:STDOUT: %pattern_type.loc10_37 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%U, constants.%I.facet) { @@ -702,7 +702,7 @@ class X(U:! type) { // CHECK:STDOUT: %I.type => constants.%I.type.1ab3e4.2 // CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.binding.as_type => constants.%X -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.e07 -// CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.51d1c4.2 +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.e07 +// CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_call_invalid.carbon b/toolchain/check/testdata/impl/fail_call_invalid.carbon index be553e66e334..6f8faf413313 100644 --- a/toolchain/check/testdata/impl/fail_call_invalid.carbon +++ b/toolchain/check/testdata/impl/fail_call_invalid.carbon @@ -81,8 +81,8 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: %Simple.ref: type = name_ref Simple, file.%Simple.decl [concrete = constants.%Simple.type] // CHECK:STDOUT: } // CHECK:STDOUT: %InstanceCall.decl: %InstanceCall.type = fn_decl @InstanceCall [concrete = constants.%InstanceCall] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -96,8 +96,8 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Simple.WithSelf.G.decl: @Simple.WithSelf.%Simple.WithSelf.G.type (%Simple.WithSelf.G.type.d78) = fn_decl @Simple.WithSelf.G [symbolic = @Simple.WithSelf.%Simple.WithSelf.G (constants.%Simple.WithSelf.G.41d)] { -// CHECK:STDOUT: %self.patt: @Simple.WithSelf.G.%pattern_type (%pattern_type.5e9) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Simple.WithSelf.G.%pattern_type (%pattern_type.5e9) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Simple.WithSelf.G.%pattern_type (%pattern_type.5e9) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Simple.WithSelf.G.%pattern_type (%pattern_type.5e9) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Simple.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -119,16 +119,16 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.as.Simple.impl: %i32 as %Simple.ref { // CHECK:STDOUT: %i32.as.Simple.impl.G.decl.loc24_27.1: %i32.as.Simple.impl.G.type.32ad7a.1 = fn_decl @i32.as.Simple.impl.G.loc24_27.1 [concrete = constants.%i32.as.Simple.impl.G.4f6260.1] { -// CHECK:STDOUT: %self.patt: = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: = value_param call_param0 // CHECK:STDOUT: %Undeclared.ref: = name_ref Undeclared, [concrete = ] -// CHECK:STDOUT: %self: = value_binding self, %self.param +// CHECK:STDOUT: %self: = value_binding self, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.as.Simple.impl.G.decl.loc24_27.2: %i32.as.Simple.impl.G.type.32ad7a.2 = fn_decl @i32.as.Simple.impl.G.loc24_27.2 [concrete = constants.%i32.as.Simple.impl.G.4f6260.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.7ce = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7ce = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7ce = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %i32 = value_param call_param0 // CHECK:STDOUT: %self: %i32 = value_binding self, %self.param diff --git a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon index 8b953203c23e..912bfa0834b2 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon @@ -81,8 +81,8 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %GenericInterface.WithSelf.F.decl: @GenericInterface.WithSelf.%GenericInterface.WithSelf.F.type (%GenericInterface.WithSelf.F.type) = fn_decl @GenericInterface.WithSelf.F [symbolic = @GenericInterface.WithSelf.%GenericInterface.WithSelf.F (constants.%GenericInterface.WithSelf.F)] { -// CHECK:STDOUT: %x.patt: @GenericInterface.WithSelf.F.%pattern_type (%pattern_type.51d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @GenericInterface.WithSelf.F.%pattern_type (%pattern_type.51d) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @GenericInterface.WithSelf.F.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @GenericInterface.WithSelf.F.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: @GenericInterface.WithSelf.F.%T (%T) = value_param call_param0 // CHECK:STDOUT: %T.ref: type = name_ref T, @GenericInterface.%T.loc15_28.2 [symbolic = %T (constants.%T)] @@ -112,8 +112,8 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: impl: %Self.ref as %GenericInterface.type.loc24_54.2 { // CHECK:STDOUT: %C.as.GenericInterface.impl.F.decl: @C.as.GenericInterface.impl.%C.as.GenericInterface.impl.F.type (%C.as.GenericInterface.impl.F.type) = fn_decl @C.as.GenericInterface.impl.F [symbolic = @C.as.GenericInterface.impl.%C.as.GenericInterface.impl.F (constants.%C.as.GenericInterface.impl.F)] { -// CHECK:STDOUT: %x.patt: @C.as.GenericInterface.impl.F.%pattern_type (%pattern_type.51d) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @C.as.GenericInterface.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @C.as.GenericInterface.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @C.as.GenericInterface.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: @C.as.GenericInterface.impl.F.%T (%T) = value_param call_param0 // CHECK:STDOUT: %T.ref: type = name_ref T, @C.as.GenericInterface.impl.%T.loc24_23.2 [symbolic = %T (constants.%T)] diff --git a/toolchain/check/testdata/impl/fail_extend_undefined_interface.carbon b/toolchain/check/testdata/impl/fail_extend_undefined_interface.carbon index 26b62c4aea6b..64bd74778dcc 100644 --- a/toolchain/check/testdata/impl/fail_extend_undefined_interface.carbon +++ b/toolchain/check/testdata/impl/fail_extend_undefined_interface.carbon @@ -51,8 +51,8 @@ fn F(c: C) { // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: %pattern_type = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc28: type = name_ref C, file.%C.decl [concrete = constants.%C] diff --git a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon index ace7b0bf6078..a37bcf7563ba 100644 --- a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon +++ b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon @@ -305,8 +305,8 @@ class X { // CHECK:STDOUT: %Z.WithSelf.Zero.decl: @Z.WithSelf.%Z.WithSelf.Zero.type (%Z.WithSelf.Zero.type.e4a) = fn_decl @Z.WithSelf.Zero [symbolic = @Z.WithSelf.%Z.WithSelf.Zero (constants.%Z.WithSelf.Zero.3f4)] {} {} // CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, %Z.WithSelf.Zero.decl [concrete = constants.%assoc0.cc0] // CHECK:STDOUT: %Z.WithSelf.Method.decl: @Z.WithSelf.%Z.WithSelf.Method.type (%Z.WithSelf.Method.type.dfd) = fn_decl @Z.WithSelf.Method [symbolic = @Z.WithSelf.%Z.WithSelf.Method (constants.%Z.WithSelf.Method.324)] { -// CHECK:STDOUT: %self.patt: @Z.WithSelf.Method.%pattern_type (%pattern_type.84b) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.Method.%pattern_type (%pattern_type.84b) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.Method.%pattern_type (%pattern_type.84b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Z.WithSelf.Method.%pattern_type (%pattern_type.84b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Z.WithSelf.Method.%Self.binding.as_type (%Self.binding.as_type.62d) = value_param call_param0 // CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.62d)] { @@ -343,8 +343,8 @@ class X { // CHECK:STDOUT: impl: as %Z.ref { // CHECK:STDOUT: %.as.Z.impl.Zero.decl: @.as.Z.impl.%.as.Z.impl.Zero.type (%.as.Z.impl.Zero.type) = fn_decl @.as.Z.impl.Zero [symbolic = @.as.Z.impl.%.as.Z.impl.Zero (constants.%.as.Z.impl.Zero)] {} {} // CHECK:STDOUT: %.as.Z.impl.Method.decl: @.as.Z.impl.%.as.Z.impl.Method.type (%.as.Z.impl.Method.type) = fn_decl @.as.Z.impl.Method [symbolic = @.as.Z.impl.%.as.Z.impl.Method (constants.%.as.Z.impl.Method)] { -// CHECK:STDOUT: %self.patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.84b) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.84b) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.84b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.84b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @.as.Z.impl.Method.%Self.binding.as_type (%Self.binding.as_type.62d) = value_param call_param0 // CHECK:STDOUT: %.loc13_28.1: type = splice_block %.loc13_28.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.62d)] { @@ -365,8 +365,8 @@ class X { // CHECK:STDOUT: impl @Point.as.Z.impl: %Self.ref as %Z.ref { // CHECK:STDOUT: %Point.as.Z.impl.Zero.decl: %Point.as.Z.impl.Zero.type = fn_decl @Point.as.Z.impl.Zero [concrete = constants.%Point.as.Z.impl.Zero] {} {} // CHECK:STDOUT: %Point.as.Z.impl.Method.decl: %Point.as.Z.impl.Method.type = fn_decl @Point.as.Z.impl.Method [concrete = constants.%Point.as.Z.impl.Method] { -// CHECK:STDOUT: %self.patt: %pattern_type.c86 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.c86 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.c86 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.c86 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Point = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Point [concrete = constants.%Point] diff --git a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon index c681466247fa..6f8e1b7291dd 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon @@ -505,12 +505,12 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.adb) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.569)] { -// CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc103_44.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc103_44.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc103_44.2: Core.Form = init_form %.loc103_44.1 [concrete = constants.%.f34] @@ -539,10 +539,10 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %SelfNested.WithSelf.F.decl: @SelfNested.WithSelf.%SelfNested.WithSelf.F.type (%SelfNested.WithSelf.F.type.430) = fn_decl @SelfNested.WithSelf.F [symbolic = @SelfNested.WithSelf.%SelfNested.WithSelf.F (constants.%SelfNested.WithSelf.F.257)] { -// CHECK:STDOUT: %x.patt: @SelfNested.WithSelf.F.%pattern_type.loc211_8 (%pattern_type.37a) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @SelfNested.WithSelf.F.%pattern_type.loc211_8 (%pattern_type.37a) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @SelfNested.WithSelf.F.%pattern_type.loc211_41 (%pattern_type.dfe) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @SelfNested.WithSelf.F.%pattern_type.loc211_41 (%pattern_type.dfe) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @SelfNested.WithSelf.F.%pattern_type.loc211_9 (%pattern_type.37a) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @SelfNested.WithSelf.F.%pattern_type.loc211_9 (%pattern_type.37a) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @SelfNested.WithSelf.F.%pattern_type.loc211_57 (%pattern_type.dfe) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @SelfNested.WithSelf.F.%pattern_type.loc211_57 (%pattern_type.dfe) = return_slot_pattern %return.param_patt, %array_type.loc211_57.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc211_50: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.aed)] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] @@ -611,8 +611,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: impl @FExtraParam.as.I.impl: %Self.ref as %I.ref { // CHECK:STDOUT: %FExtraParam.as.I.impl.F.decl.loc69_18.1: %FExtraParam.as.I.impl.F.type.531438.1 = fn_decl @FExtraParam.as.I.impl.F.loc69_18.1 [concrete = constants.%FExtraParam.as.I.impl.F.33e1fe.1] { -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc69: type = type_literal bool [concrete = bool] @@ -629,8 +629,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: impl @FExtraImplicitParam.as.I.impl: %Self.ref as %I.ref { // CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.decl.loc85_23.1: %FExtraImplicitParam.as.I.impl.F.type.9dd145.1 = fn_decl @FExtraImplicitParam.as.I.impl.F.loc85_23.1 [concrete = constants.%FExtraImplicitParam.as.I.impl.F.99eae8.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.235 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.235 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.235 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.235 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %FExtraImplicitParam = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%FExtraImplicitParam [concrete = constants.%FExtraImplicitParam] @@ -647,8 +647,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: impl @FExtraReturnType.as.I.impl: %Self.ref as %I.ref { // CHECK:STDOUT: %FExtraReturnType.as.I.impl.F.decl: %FExtraReturnType.as.I.impl.F.type = fn_decl @FExtraReturnType.as.I.impl.F [concrete = constants.%FExtraReturnType.as.I.impl.F] { -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc99_15.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc99_15.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc99_15.2: Core.Form = init_form %.loc99_15.1 [concrete = constants.%.f34] @@ -665,10 +665,10 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: impl @FMissingParam.as.J.impl: %Self.ref as %J.ref { // CHECK:STDOUT: %FMissingParam.as.J.impl.F.decl.loc117_31.1: %FMissingParam.as.J.impl.F.type.0f71d8.1 = fn_decl @FMissingParam.as.J.impl.F.loc117_31.1 [concrete = constants.%FMissingParam.as.J.impl.F.7540f6.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc117_27.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc117_27.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc117_27.2: Core.Form = init_form %.loc117_27.1 [concrete = constants.%.f34] @@ -681,12 +681,12 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.567) [concrete = bool] // CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.567) [concrete = constants.%.f34] // CHECK:STDOUT: %FMissingParam.as.J.impl.F.decl.loc117_31.2: %FMissingParam.as.J.impl.F.type.0f71d8.2 = fn_decl @FMissingParam.as.J.impl.F.loc117_31.2 [concrete = constants.%FMissingParam.as.J.impl.F.7540f6.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, invalid [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: bool = value_param call_param0 // CHECK:STDOUT: %self: bool = value_binding self, %self.param @@ -705,10 +705,10 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: impl @FMissingImplicitParam.as.J.impl: %Self.ref as %J.ref { // CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1: %FMissingImplicitParam.as.J.impl.F.type.80a56b.1 = fn_decl @FMissingImplicitParam.as.J.impl.F.loc130_26.1 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.c6a0b7.1] { -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc130_22.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc130_22.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc130_22.2: Core.Form = init_form %.loc130_22.1 [concrete = constants.%.f34] @@ -721,12 +721,12 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.266) [concrete = bool] // CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.266) [concrete = constants.%.f34] // CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.2: %FMissingImplicitParam.as.J.impl.F.type.80a56b.2 = fn_decl @FMissingImplicitParam.as.J.impl.F.loc130_26.2 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.c6a0b7.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, invalid [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: bool = value_param call_param0 // CHECK:STDOUT: %self: bool = value_binding self, %self.param @@ -745,10 +745,10 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: impl @FMissingReturnType.as.J.impl: %Self.ref as %J.ref { // CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.decl.loc152_30.1: %FMissingReturnType.as.J.impl.F.type.ce0d21.1 = fn_decl @FMissingReturnType.as.J.impl.F.loc152_30.1 [concrete = constants.%FMissingReturnType.as.J.impl.F.5b613a.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc152_16: type = type_literal bool [concrete = bool] @@ -760,12 +760,12 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.a9e) [concrete = bool] // CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.a9e) [concrete = constants.%.f34] // CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.decl.loc152_30.2: %FMissingReturnType.as.J.impl.F.type.ce0d21.2 = fn_decl @FMissingReturnType.as.J.impl.F.loc152_30.2 [concrete = constants.%FMissingReturnType.as.J.impl.F.5b613a.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, invalid [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: bool = value_param call_param0 // CHECK:STDOUT: %self: bool = value_binding self, %self.param @@ -784,12 +784,12 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: impl @FDifferentParamType.as.J.impl: %Self.ref as %J.ref { // CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.decl.loc171_38.1: %FDifferentParamType.as.J.impl.F.type.10926d.1 = fn_decl @FDifferentParamType.as.J.impl.F.loc171_38.1 [concrete = constants.%FDifferentParamType.as.J.impl.F.f1245a.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.b79 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.b79 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.b79 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.b79 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc171_34.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc171_34.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc171_34.2: Core.Form = init_form %.loc171_34.1 [concrete = constants.%.f34] @@ -805,12 +805,12 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.bd2) [concrete = bool] // CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.bd2) [concrete = constants.%.f34] // CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.decl.loc171_38.2: %FDifferentParamType.as.J.impl.F.type.10926d.2 = fn_decl @FDifferentParamType.as.J.impl.F.loc171_38.2 [concrete = constants.%FDifferentParamType.as.J.impl.F.f1245a.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, invalid [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: bool = value_param call_param0 // CHECK:STDOUT: %self: bool = value_binding self, %self.param @@ -829,12 +829,12 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: impl @FDifferentImplicitParamType.as.J.impl: %Self.ref as %J.ref { // CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.1: %FDifferentImplicitParamType.as.J.impl.F.type.955391.1 = fn_decl @FDifferentImplicitParamType.as.J.impl.F.loc184_38.1 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.a9ece4.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.b8f = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.b8f = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.b8f = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.b8f = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc184_34.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc184_34.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc184_34.2: Core.Form = init_form %.loc184_34.1 [concrete = constants.%.f34] @@ -850,12 +850,12 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.030) [concrete = bool] // CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.030) [concrete = constants.%.f34] // CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.2: %FDifferentImplicitParamType.as.J.impl.F.type.955391.2 = fn_decl @FDifferentImplicitParamType.as.J.impl.F.loc184_38.2 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.a9ece4.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, invalid [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: bool = value_param call_param0 // CHECK:STDOUT: %self: bool = value_binding self, %self.param @@ -874,12 +874,12 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: impl @FDifferentReturnType.as.J.impl: %Self.ref as %J.ref { // CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.decl.loc200_38.1: %FDifferentReturnType.as.J.impl.F.type.7bcb67.1 = fn_decl @FDifferentReturnType.as.J.impl.F.loc200_38.1 [concrete = constants.%FDifferentReturnType.as.J.impl.F.a709b1.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.5c8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.5c8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.5c8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.5c8 = return_slot_pattern %return.param_patt, %Self.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%FDifferentReturnType [concrete = constants.%FDifferentReturnType] // CHECK:STDOUT: %.loc200_34: Core.Form = init_form %Self.ref [concrete = constants.%.2a9] @@ -895,12 +895,12 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.4a1) [concrete = bool] // CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.4a1) [concrete = constants.%.f34] // CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.decl.loc200_38.2: %FDifferentReturnType.as.J.impl.F.type.7bcb67.2 = fn_decl @FDifferentReturnType.as.J.impl.F.loc200_38.2 [concrete = constants.%FDifferentReturnType.as.J.impl.F.a709b1.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, invalid [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: bool = value_param call_param0 // CHECK:STDOUT: %self: bool = value_binding self, %self.param @@ -919,10 +919,10 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: impl @SelfNestedBadParam.as.SelfNested.impl: %Self.ref as %SelfNested.ref { // CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.1: %SelfNestedBadParam.as.SelfNested.impl.F.type.789632.1 = fn_decl @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.1 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.6e1661.1] { -// CHECK:STDOUT: %x.patt: %pattern_type.395 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.395 = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.ec1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.ec1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.395 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.395 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.ec1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.ec1 = return_slot_pattern %return.param_patt, %array_type [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %SelfNestedBadParam.ref.loc223_65: type = name_ref SelfNestedBadParam, file.%SelfNestedBadParam.decl [concrete = constants.%SelfNestedBadParam] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] @@ -945,10 +945,10 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %.loc211_57.1: type = specific_constant @SelfNested.WithSelf.F.%array_type.loc211_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.b9f) [concrete = constants.%array_type.388] // CHECK:STDOUT: %.loc211_57.2: type = specific_constant @SelfNested.WithSelf.F.%.loc211_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.b9f) [concrete = constants.%.0cb] // CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.2: %SelfNestedBadParam.as.SelfNested.impl.F.type.789632.2 = fn_decl @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.2 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.6e1661.2] { -// CHECK:STDOUT: %x.patt: %pattern_type.8d7 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.8d7 = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.ec1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.ec1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.8d7 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.8d7 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.ec1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.ec1 = return_slot_pattern %return.param_patt, invalid [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %tuple.type.7ea = value_param call_param0 // CHECK:STDOUT: %x: %tuple.type.7ea = value_binding x, %x.param @@ -966,10 +966,10 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: impl @SelfNestedBadReturnType.as.SelfNested.impl: %Self.ref as %SelfNested.ref { // CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.1: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.75d128.1 = fn_decl @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.1 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.587f77.1] { -// CHECK:STDOUT: %x.patt: %pattern_type.1f1 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.1f1 = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.ec1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.ec1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.1f1 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.1f1 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.ec1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.ec1 = return_slot_pattern %return.param_patt, %array_type [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %SelfNestedBadParam.ref: type = name_ref SelfNestedBadParam, file.%SelfNestedBadParam.decl [concrete = constants.%SelfNestedBadParam] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] @@ -992,10 +992,10 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %.loc211_57.1: type = specific_constant @SelfNested.WithSelf.F.%array_type.loc211_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.23f) [concrete = constants.%array_type.31b] // CHECK:STDOUT: %.loc211_57.2: type = specific_constant @SelfNested.WithSelf.F.%.loc211_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.23f) [concrete = constants.%.369] // CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.2: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.75d128.2 = fn_decl @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.2 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.587f77.2] { -// CHECK:STDOUT: %x.patt: %pattern_type.1f1 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.1f1 = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.1fd = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.1fd = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.1f1 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.1f1 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.1fd = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.1fd = return_slot_pattern %return.param_patt, invalid [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %tuple.type.064 = value_param call_param0 // CHECK:STDOUT: %x: %tuple.type.064 = value_binding x, %x.param @@ -1317,10 +1317,10 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %struct_type.x.y.loc211_37.1: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.07b), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.e05)] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple (constants.%tuple.179)] // CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple.type (constants.%tuple.type.9cf)] -// CHECK:STDOUT: %pattern_type.loc211_8: type = pattern_type %tuple.type [symbolic = %pattern_type.loc211_8 (constants.%pattern_type.37a)] +// CHECK:STDOUT: %pattern_type.loc211_9: type = pattern_type %tuple.type [symbolic = %pattern_type.loc211_9 (constants.%pattern_type.37a)] // CHECK:STDOUT: %array_type.loc211_57.1: type = array_type constants.%int_4, %Self.binding.as_type [symbolic = %array_type.loc211_57.1 (constants.%array_type.eba)] // CHECK:STDOUT: %.loc211_57.1: Core.Form = init_form %array_type.loc211_57.1 [symbolic = %.loc211_57.1 (constants.%.efe)] -// CHECK:STDOUT: %pattern_type.loc211_41: type = pattern_type %array_type.loc211_57.1 [symbolic = %pattern_type.loc211_41 (constants.%pattern_type.dfe)] +// CHECK:STDOUT: %pattern_type.loc211_57: type = pattern_type %array_type.loc211_57.1 [symbolic = %pattern_type.loc211_57 (constants.%pattern_type.dfe)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.9cf)) -> out %return.param: @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.eba); // CHECK:STDOUT: } @@ -1488,10 +1488,10 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.e05 // CHECK:STDOUT: %tuple => constants.%tuple.179 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.9cf -// CHECK:STDOUT: %pattern_type.loc211_8 => constants.%pattern_type.37a +// CHECK:STDOUT: %pattern_type.loc211_9 => constants.%pattern_type.37a // CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.eba // CHECK:STDOUT: %.loc211_57.1 => constants.%.efe -// CHECK:STDOUT: %pattern_type.loc211_41 => constants.%pattern_type.dfe +// CHECK:STDOUT: %pattern_type.loc211_57 => constants.%pattern_type.dfe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.b9f) { @@ -1508,10 +1508,10 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.62a // CHECK:STDOUT: %tuple => constants.%tuple.73b // CHECK:STDOUT: %tuple.type => constants.%tuple.type.7ea -// CHECK:STDOUT: %pattern_type.loc211_8 => constants.%pattern_type.8d7 +// CHECK:STDOUT: %pattern_type.loc211_9 => constants.%pattern_type.8d7 // CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.388 // CHECK:STDOUT: %.loc211_57.1 => constants.%.0cb -// CHECK:STDOUT: %pattern_type.loc211_41 => constants.%pattern_type.ec1 +// CHECK:STDOUT: %pattern_type.loc211_57 => constants.%pattern_type.ec1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.23f) { @@ -1528,9 +1528,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.cfa // CHECK:STDOUT: %tuple => constants.%tuple.c42 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.064 -// CHECK:STDOUT: %pattern_type.loc211_8 => constants.%pattern_type.1f1 +// CHECK:STDOUT: %pattern_type.loc211_9 => constants.%pattern_type.1f1 // CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.31b // CHECK:STDOUT: %.loc211_57.1 => constants.%.369 -// CHECK:STDOUT: %pattern_type.loc211_41 => constants.%pattern_type.1fd +// CHECK:STDOUT: %pattern_type.loc211_57 => constants.%pattern_type.1fd // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon b/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon index 9925fcf615c4..ee9195c30f91 100644 --- a/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon +++ b/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon @@ -149,8 +149,8 @@ impl i32 as I { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.08c) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.705)] { -// CHECK:STDOUT: %c.patt: @I.WithSelf.F.%pattern_type (%pattern_type.a8e) = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.a8e) = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.a8e) = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: @I.WithSelf.F.%pattern_type (%pattern_type.a8e) = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: @I.WithSelf.F.%C.loc25_17.1 (%C.eab) = value_param call_param0 // CHECK:STDOUT: %.loc25: type = splice_block %C.loc25_17.2 [symbolic = %C.loc25_17.1 (constants.%C.eab)] { @@ -174,8 +174,8 @@ impl i32 as I { // CHECK:STDOUT: // CHECK:STDOUT: impl @bool.as.I.impl: %.loc28 as %I.ref { // CHECK:STDOUT: %bool.as.I.impl.F.decl: %bool.as.I.impl.F.type = fn_decl @bool.as.I.impl.F [concrete = constants.%bool.as.I.impl.F] { -// CHECK:STDOUT: %c.patt: %pattern_type.212 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.212 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.212 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.212 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C.60c = value_param call_param0 // CHECK:STDOUT: %.loc32_22: type = splice_block %C [concrete = constants.%C.60c] { @@ -200,8 +200,8 @@ impl i32 as I { // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.as.I.impl: %i32 as %I.ref { // CHECK:STDOUT: %i32.as.I.impl.F.decl.loc43_18.1: %i32.as.I.impl.F.type.6c53e7.1 = fn_decl @i32.as.I.impl.F.loc43_18.1 [concrete = constants.%i32.as.I.impl.F.7f652f.1] { -// CHECK:STDOUT: %c.patt: %pattern_type.619 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.619 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.619 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.619 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C.899 = value_param call_param0 // CHECK:STDOUT: %.loc43: type = splice_block %C [concrete = constants.%C.899] { @@ -212,8 +212,8 @@ impl i32 as I { // CHECK:STDOUT: %c: %C.899 = value_binding c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: %i32.as.I.impl.F.decl.loc43_18.2: %i32.as.I.impl.F.type.6c53e7.2 = fn_decl @i32.as.I.impl.F.loc43_18.2 [concrete = constants.%i32.as.I.impl.F.7f652f.2] { -// CHECK:STDOUT: %c.patt: %pattern_type.54c = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.54c = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.54c = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.54c = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C.719 = value_param call_param0 // CHECK:STDOUT: %c: %C.719 = value_binding c, %c.param diff --git a/toolchain/check/testdata/impl/forward_decls.carbon b/toolchain/check/testdata/impl/forward_decls.carbon index 9c51aef87acb..546916e46128 100644 --- a/toolchain/check/testdata/impl/forward_decls.carbon +++ b/toolchain/check/testdata/impl/forward_decls.carbon @@ -1365,8 +1365,8 @@ interface I { // CHECK:STDOUT: %T.loc6_9.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc8: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type.b40 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.b40 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.b40 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.b40 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param.loc8: %C.229 = value_param call_param0 // CHECK:STDOUT: %.loc8_12.1: type = splice_block %C.loc8 [concrete = constants.%C.229] { @@ -1393,8 +1393,8 @@ interface I { // CHECK:STDOUT: %T.loc12: %I.type = symbolic_binding T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc14: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type.b40 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.b40 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.b40 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.b40 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param.loc14: %C.229 = value_param call_param0 // CHECK:STDOUT: %.loc14_19.1: type = splice_block %C.loc14 [concrete = constants.%C.229] { @@ -1743,8 +1743,8 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl.loc7: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %U.patt: %pattern_type.b4b = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.b36) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.b36) = value_param_pattern %u.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.b36) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.b36) = at_binding_pattern u, %u.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_10: type = splice_block %X.ref.loc7 [concrete = constants.%X.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1768,8 +1768,8 @@ interface I { // CHECK:STDOUT: %X.decl.loc16: type = interface_decl @X [concrete = constants.%X.type] {} {} // CHECK:STDOUT: %C.decl.loc23: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { -// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc25: type = name_ref C, file.%C.decl.loc9 [concrete = constants.%C] @@ -1787,8 +1787,8 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl.loc35: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %U.patt: %pattern_type.b4b = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.b36) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.b36) = value_param_pattern %u.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.b36) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.b36) = at_binding_pattern u, %u.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc35_10: type = splice_block %X.ref.loc35 [concrete = constants.%X.type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/impl/generic_redeclaration.carbon b/toolchain/check/testdata/impl/generic_redeclaration.carbon index 09b700fe993a..092a8840961c 100644 --- a/toolchain/check/testdata/impl/generic_redeclaration.carbon +++ b/toolchain/check/testdata/impl/generic_redeclaration.carbon @@ -791,8 +791,8 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: impl: %T.ref as %I.ref { // CHECK:STDOUT: %T.as.I.impl.B.decl: @T.as.I.impl.f7b5a3.2.%T.as.I.impl.B.type (%T.as.I.impl.B.type) = fn_decl @T.as.I.impl.B [symbolic = @T.as.I.impl.f7b5a3.2.%T.as.I.impl.B (constants.%T.as.I.impl.B)] {} {} // CHECK:STDOUT: %T.as.I.impl.C.decl: @T.as.I.impl.f7b5a3.2.%T.as.I.impl.C.type (%T.as.I.impl.C.type) = fn_decl @T.as.I.impl.C [symbolic = @T.as.I.impl.f7b5a3.2.%T.as.I.impl.C (constants.%T.as.I.impl.C)] { -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %.loc19_14.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc19_14.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc19_14.2: type = converted %.loc19_14.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -801,8 +801,8 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %T.as.I.impl.D.decl: @T.as.I.impl.f7b5a3.2.%T.as.I.impl.D.type (%T.as.I.impl.D.type) = fn_decl @T.as.I.impl.D [symbolic = @T.as.I.impl.f7b5a3.2.%T.as.I.impl.D (constants.%T.as.I.impl.D)] { -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %.loc20_14.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc20_14.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc20_14.2: type = converted %.loc20_14.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] diff --git a/toolchain/check/testdata/impl/impl_thunk.carbon b/toolchain/check/testdata/impl/impl_thunk.carbon index 5ed70da7b0d5..005b1dbf0dde 100644 --- a/toolchain/check/testdata/impl/impl_thunk.carbon +++ b/toolchain/check/testdata/impl/impl_thunk.carbon @@ -348,10 +348,10 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %I.ref { // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_48.1: %empty_tuple.type.as.I.impl.F.type.19e4b8.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_48.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.8be29b.1] { -// CHECK:STDOUT: %y.patt: %pattern_type.231 = value_binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: %pattern_type.231 = value_param_pattern %y.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.844 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.844 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %y.param_patt: %pattern_type.231 = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.231 = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.844 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.844 = return_slot_pattern %return.param_patt, %struct_type.d.c [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_38.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_38.2: type = converted %.loc10_38.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -448,12 +448,12 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref { // CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.1: %B.as.X.impl.F.type.421a66.1 = fn_decl @B.as.X.impl.F.loc14_37.1 [concrete = constants.%B.as.X.impl.F.8ec460.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.1ab = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = ref_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.f29 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.f29 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.506 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.506 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1ab = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.f29 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.f29 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.506 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.506 = return_slot_pattern %return.param_patt, %ptr.loc14_36 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %ptr.loc14_36: type = ptr_type %C.ref [concrete = constants.%ptr.31e] @@ -523,10 +523,10 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref { // CHECK:STDOUT: %B.as.X.impl.F.decl.loc13_26.1: %B.as.X.impl.F.type.421a66.1 = fn_decl @B.as.X.impl.F.loc13_26.1 [concrete = constants.%B.as.X.impl.F.8ec460.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.1ab = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.1ab = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.1ab = value_param_pattern %other.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1ab = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.1ab = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.1ab = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref.loc13_14: type = name_ref A, file.%A.decl [concrete = constants.%A] @@ -597,12 +597,12 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref { // CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.1: %B.as.X.impl.F.type.421a66.1 = fn_decl @B.as.X.impl.F.loc14_37.1 [concrete = constants.%B.as.X.impl.F.8ec460.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.1ab = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = ref_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.f29 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.f29 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.506 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.506 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1ab = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.f29 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.f29 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.506 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.506 = return_slot_pattern %return.param_patt, %ptr.loc14_36 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %ptr.loc14_36: type = ptr_type %C.ref [concrete = constants.%ptr.31e] @@ -694,12 +694,12 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref { // CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.1: %B.as.X.impl.F.type.421a66.1 = fn_decl @B.as.X.impl.F.loc14_37.1 [concrete = constants.%B.as.X.impl.F.8ec460.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.1ab = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = ref_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.f29 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.f29 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.506 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.506 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1ab = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.f29 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.f29 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.506 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.506 = return_slot_pattern %return.param_patt, %ptr.loc14_36 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %ptr.loc14_36: type = ptr_type %C.ref [concrete = constants.%ptr.31e] @@ -772,8 +772,8 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: impl @A.as.X.impl: %A.ref as %X.ref { // CHECK:STDOUT: %A.as.X.impl.F.decl.loc23_14.1: %A.as.X.impl.F.type.170a02.1 = fn_decl @A.as.X.impl.F.loc23_14.1 [concrete = constants.%A.as.X.impl.F.e6cf46.1] { -// CHECK:STDOUT: %return.patt: %pattern_type.1f4 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.1f4 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.1f4 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.1f4 = return_slot_pattern %return.param_patt, %B.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc23: Core.Form = init_form %B.ref [concrete = constants.%.7df] @@ -859,10 +859,10 @@ impl () as I({}) { // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %I.ref { // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_34.1: %empty_tuple.type.as.I.impl.F.type.19e4b8.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_34.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.8be29b.1] { // CHECK:STDOUT: %U.patt: %pattern_type.ce2 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.9b9f0c.2) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc10_32.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc10_32: %Copy.type = name_ref U, %U.loc10_8.2 [symbolic = %U.loc10_8.1 (constants.%U.035)] // CHECK:STDOUT: %U.as_type.loc10_32: type = facet_access_type %U.ref.loc10_32 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] @@ -1023,13 +1023,13 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %I.ref { // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_51.1: %empty_tuple.type.as.I.impl.F.type.19e4b8.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_51.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.8be29b.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.ce2 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.9b9f0c.2) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc10_49.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc10_49: %Copy.type = name_ref U, %U.loc10_25.2 [symbolic = %U.loc10_25.1 (constants.%U.035)] // CHECK:STDOUT: %U.as_type.loc10_49: type = facet_access_type %U.ref.loc10_49 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] @@ -1171,8 +1171,8 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %I.type { // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_29.1: %empty_tuple.type.as.I.impl.F.type.e82c13.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_29.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.5f0cef.1] { -// CHECK:STDOUT: %return.patt: %pattern_type.914 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.914 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.914 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.914 = return_slot_pattern %return.param_patt, %struct_type.b.a [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_19.2: type = converted %.loc10_19.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] diff --git a/toolchain/check/testdata/impl/import_builtin_call.carbon b/toolchain/check/testdata/impl/import_builtin_call.carbon index b7403e07cacb..66d72d8320b1 100644 --- a/toolchain/check/testdata/impl/import_builtin_call.carbon +++ b/toolchain/check/testdata/impl/import_builtin_call.carbon @@ -133,8 +133,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: %Add.decl: type = interface_decl @Add [concrete = constants.%Add.type] {} {} // CHECK:STDOUT: %IntLiteral.decl: %IntLiteral.type = fn_decl @IntLiteral [concrete = constants.%IntLiteral] { -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc8_20.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_20.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc8_20.2: Core.Form = init_form %.loc8_20.1 [concrete = constants.%.805] @@ -142,10 +142,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %return: ref type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] { -// CHECK:STDOUT: %n.patt: %pattern_type.dc0 = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.dc0 = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.dc0 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc9_28.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_28.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc9_28.2: Core.Form = init_form %.loc9_28.1 [concrete = constants.%.805] @@ -190,10 +190,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: %Double.decl: %Double.type = fn_decl @Double [concrete = constants.%Double] { // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %x.patt: @Double.%pattern_type (%pattern_type.1a3) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @Double.%pattern_type (%pattern_type.1a3) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @Double.%pattern_type (%pattern_type.1a3) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Double.%pattern_type (%pattern_type.1a3) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @Double.%pattern_type (%pattern_type.1a3) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Double.%pattern_type (%pattern_type.1a3) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Double.%pattern_type (%pattern_type.1a3) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Double.%pattern_type (%pattern_type.1a3) = return_slot_pattern %return.param_patt, %MyInt.loc19_52 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %MyInt.ref.loc19_45: %MyInt.type = name_ref MyInt, file.%MyInt.decl [concrete = constants.%MyInt.generic] // CHECK:STDOUT: %N.ref.loc19_51: Core.IntLiteral = name_ref N, %N.loc19_11.2 [symbolic = %N.loc19_11.1 (constants.%N)] @@ -225,12 +225,12 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Add.WithSelf.Op.decl: @Add.WithSelf.%Add.WithSelf.Op.type (%Add.WithSelf.Op.type.f48) = fn_decl @Add.WithSelf.Op [symbolic = @Add.WithSelf.%Add.WithSelf.Op (constants.%Add.WithSelf.Op.060)] { -// CHECK:STDOUT: %self.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = return_slot_pattern %return.param_patt, %.loc5_37.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc5_37: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_37: type = facet_access_type %Self.ref.loc5_37 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] @@ -275,12 +275,12 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: impl: %MyInt.loc15_39.2 as %Add.ref { // CHECK:STDOUT: %MyInt.as.Add.impl.Op.decl: @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op.type (%MyInt.as.Add.impl.Op.type) = fn_decl @MyInt.as.Add.impl.Op [symbolic = @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op (constants.%MyInt.as.Add.impl.Op)] { -// CHECK:STDOUT: %self.patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.1a3) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.1a3) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.1a3) = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.1a3) = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.1a3) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.1a3) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.1a3) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.1a3) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.1a3) = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.1a3) = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.1a3) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.1a3) = return_slot_pattern %return.param_patt, %Self.ref.loc16_37 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_37: type = name_ref Self, @MyInt.as.Add.impl.%MyInt.loc15_39.2 [symbolic = %MyInt (constants.%MyInt)] // CHECK:STDOUT: %.loc16_37.2: Core.Form = init_form %Self.ref.loc16_37 [symbolic = %.loc16_37.1 (constants.%.6e6)] @@ -546,10 +546,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %CallImportedDouble.decl: %CallImportedDouble.type = fn_decl @CallImportedDouble [concrete = constants.%CallImportedDouble] { -// CHECK:STDOUT: %n.patt: %pattern_type.48d = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.48d = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.48d = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.48d = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.48d = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.48d = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.48d = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.48d = return_slot_pattern %return.param_patt, %MyInt.loc6_48 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %MyInt.ref.loc6_40: %MyInt.type = name_ref MyInt, imports.%Main.MyInt [concrete = constants.%MyInt.generic] // CHECK:STDOUT: %int_64.loc6_46: Core.IntLiteral = int_value 64 [concrete = constants.%int_64] @@ -831,8 +831,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: .MakeFromClass = %MakeFromClass.decl // CHECK:STDOUT: } // CHECK:STDOUT: %IntLiteral.decl: %IntLiteral.type = fn_decl @IntLiteral [concrete = constants.%IntLiteral] { -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc4_20.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_20.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc4_20.2: Core.Form = init_form %.loc4_20.1 [concrete = constants.%.805] @@ -840,10 +840,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %return: ref type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] { -// CHECK:STDOUT: %n.patt: %pattern_type.dc0 = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.dc0 = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.dc0 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc5_28.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_28.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc5_28.2: Core.Form = init_form %.loc5_28.1 [concrete = constants.%.805] @@ -859,10 +859,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %return: ref type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ToLiteral.decl: %ToLiteral.type = fn_decl @ToLiteral [concrete = constants.%ToLiteral] { -// CHECK:STDOUT: %n.patt: %pattern_type.956 = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.956 = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.956 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.956 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc6_40.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [concrete = constants.%IntLiteral] // CHECK:STDOUT: %IntLiteral.call: init type = call %IntLiteral.ref() [concrete = Core.IntLiteral] @@ -882,10 +882,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %return: ref Core.IntLiteral = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %FromLiteral.decl: %FromLiteral.type = fn_decl @FromLiteral [concrete = constants.%FromLiteral] { -// CHECK:STDOUT: %n.patt: %pattern_type.dc0 = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.dc0 = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.dc0 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern %return.param_patt, %.loc7_42.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, file.%Int.decl [concrete = constants.%Int] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] @@ -906,8 +906,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { // CHECK:STDOUT: %N.patt: %pattern_type.956 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %return.patt: @Make.%pattern_type (%pattern_type.073) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Make.%pattern_type (%pattern_type.073) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Make.%pattern_type (%pattern_type.073) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Make.%pattern_type (%pattern_type.073) = return_slot_pattern %return.param_patt, %.loc9_41.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Int.ref.loc9_25: %Int.type = name_ref Int, file.%Int.decl [concrete = constants.%Int] // CHECK:STDOUT: %ToLiteral.ref: %ToLiteral.type = name_ref ToLiteral, file.%ToLiteral.decl [concrete = constants.%ToLiteral] @@ -933,10 +933,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: %OtherInt.decl: type = class_decl @OtherInt [concrete = constants.%OtherInt] {} {} // CHECK:STDOUT: %OtherInt.ToLiteral.decl: %OtherInt.ToLiteral.type = fn_decl @OtherInt.ToLiteral [concrete = constants.%OtherInt.ToLiteral] { -// CHECK:STDOUT: %self.patt: %pattern_type.08d = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.08d = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.08d = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.08d = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc16_51.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %IntLiteral.ref.loc16: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [concrete = constants.%IntLiteral] // CHECK:STDOUT: %IntLiteral.call.loc16: init type = call %IntLiteral.ref.loc16() [concrete = Core.IntLiteral] @@ -951,8 +951,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: %MakeFromClass.decl: %MakeFromClass.type = fn_decl @MakeFromClass [concrete = constants.%MakeFromClass] { // CHECK:STDOUT: %N.patt: %pattern_type.08d = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %return.patt: @MakeFromClass.%pattern_type (%pattern_type.bd7) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @MakeFromClass.%pattern_type (%pattern_type.bd7) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @MakeFromClass.%pattern_type (%pattern_type.bd7) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @MakeFromClass.%pattern_type (%pattern_type.bd7) = return_slot_pattern %return.param_patt, %.loc18_52.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, file.%Int.decl [concrete = constants.%Int] // CHECK:STDOUT: %N.ref.loc18_39: %OtherInt = name_ref N, %N.loc18_18.2 [symbolic = %N.loc18_18.1 (constants.%N.0f7)] @@ -983,10 +983,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %.loc12_16.2: type = converted %Int.call, %.loc12_16.1 [concrete = constants.%i32.builtin] // CHECK:STDOUT: adapt_decl %.loc12_16.2 [concrete] // CHECK:STDOUT: %OtherInt.ToLiteral.decl: %OtherInt.ToLiteral.type = fn_decl @OtherInt.ToLiteral [concrete = constants.%OtherInt.ToLiteral] { -// CHECK:STDOUT: %self.patt: %pattern_type.08d = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.08d = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.08d = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.08d = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc16_51.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %IntLiteral.ref.loc13: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [concrete = constants.%IntLiteral] // CHECK:STDOUT: %IntLiteral.call.loc13: init type = call %IntLiteral.ref.loc13() [concrete = Core.IntLiteral] diff --git a/toolchain/check/testdata/impl/import_compound.carbon b/toolchain/check/testdata/impl/import_compound.carbon index 0b9d23bcd658..97c4a3904ebd 100644 --- a/toolchain/check/testdata/impl/import_compound.carbon +++ b/toolchain/check/testdata/impl/import_compound.carbon @@ -185,8 +185,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Instance.WithSelf.G.decl: @Instance.WithSelf.%Instance.WithSelf.G.type (%Instance.WithSelf.G.type.332) = fn_decl @Instance.WithSelf.G [symbolic = @Instance.WithSelf.%Instance.WithSelf.G (constants.%Instance.WithSelf.G.cc9)] { -// CHECK:STDOUT: %self.patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.7f8) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.7f8) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.7f8) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.7f8) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Instance.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc12_14.1: type = splice_block %.loc12_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -218,8 +218,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: impl @struct_type.i.as.Instance.impl: %struct_type.i as %Instance.ref { // CHECK:STDOUT: %struct_type.i.as.Instance.impl.G.decl: %struct_type.i.as.Instance.impl.G.type = fn_decl @struct_type.i.as.Instance.impl.G [concrete = constants.%struct_type.i.as.Instance.impl.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.9b2 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9b2 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9b2 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9b2 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %struct_type.i = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @struct_type.i.as.Instance.impl.%struct_type.i [concrete = constants.%struct_type.i] @@ -448,8 +448,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %NonInstanceCallImportFail.decl: %NonInstanceCallImportFail.type = fn_decl @NonInstanceCallImportFail [concrete = constants.%NonInstanceCallImportFail] { -// CHECK:STDOUT: %n.patt: %pattern_type.9b2 = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.9b2 = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.9b2 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.9b2 = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %struct_type.i = value_param call_param0 // CHECK:STDOUT: %.loc5_40: type = splice_block %struct_type.i [concrete = constants.%struct_type.i] { @@ -538,8 +538,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %NonInstanceCallIndirectImport.decl: %NonInstanceCallIndirectImport.type = fn_decl @NonInstanceCallIndirectImport [concrete = constants.%NonInstanceCallIndirectImport] { -// CHECK:STDOUT: %p.patt: %pattern_type.72c = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.72c = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.72c = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.72c = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc5_45: type = splice_block %ptr [concrete = constants.%ptr] { @@ -645,8 +645,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %InstanceCallImport.decl: %InstanceCallImport.type = fn_decl @InstanceCallImport [concrete = constants.%InstanceCallImport] { -// CHECK:STDOUT: %n.patt: %pattern_type.9b2 = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.9b2 = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.9b2 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.9b2 = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %struct_type.i = value_param call_param0 // CHECK:STDOUT: %.loc5_33: type = splice_block %struct_type.i [concrete = constants.%struct_type.i] { @@ -657,8 +657,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %n: %struct_type.i = value_binding n, %n.param // CHECK:STDOUT: } // CHECK:STDOUT: %InstanceCallIndirectImport.decl: %InstanceCallIndirectImport.type = fn_decl @InstanceCallIndirectImport [concrete = constants.%InstanceCallIndirectImport] { -// CHECK:STDOUT: %p.patt: %pattern_type.72c = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.72c = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.72c = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.72c = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %p.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc9_42: type = splice_block %ptr [concrete = constants.%ptr] { diff --git a/toolchain/check/testdata/impl/import_extend_impl.carbon b/toolchain/check/testdata/impl/import_extend_impl.carbon index da0f5644f14f..be9574c288ac 100644 --- a/toolchain/check/testdata/impl/import_extend_impl.carbon +++ b/toolchain/check/testdata/impl/import_extend_impl.carbon @@ -188,8 +188,8 @@ fn G(c: C) { // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %c.patt: %pattern_type = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, imports.%Main.C [concrete = constants.%C] diff --git a/toolchain/check/testdata/impl/import_self.carbon b/toolchain/check/testdata/impl/import_self.carbon index cfa740a155ce..7fc8a4e24c44 100644 --- a/toolchain/check/testdata/impl/import_self.carbon +++ b/toolchain/check/testdata/impl/import_self.carbon @@ -72,12 +72,12 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Add.WithSelf.Op.decl: @Add.WithSelf.%Add.WithSelf.Op.type (%Add.WithSelf.Op.type) = fn_decl @Add.WithSelf.Op [symbolic = @Add.WithSelf.%Add.WithSelf.Op (constants.%Add.WithSelf.Op)] { -// CHECK:STDOUT: %self.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = return_slot_pattern %return.param_patt, %.loc5_37.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc5_37: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_37: type = facet_access_type %Self.ref.loc5_37 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] @@ -186,12 +186,12 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%Main.Add [concrete = constants.%Add.type] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type.7c7 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.7c7 = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %y.patt: %pattern_type.7c7 = value_binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: %pattern_type.7c7 = value_param_pattern %y.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.7c7 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %y.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.7c7 = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref.loc12_21 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc12_21: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc12: Core.Form = init_form %C.ref.loc12_21 [concrete = constants.%.a69] @@ -217,12 +217,12 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.Add.impl: %C.ref as %Add.ref { // CHECK:STDOUT: %C.as.Add.impl.Op.decl: %C.as.Add.impl.Op.type = fn_decl @C.as.Add.impl.Op [concrete = constants.%C.as.Add.impl.Op] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.7c7 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.7c7 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.7c7 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %Self.ref.loc9_51 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc9_51: type = name_ref Self, @C.as.Add.impl.%C.ref [concrete = constants.%C] // CHECK:STDOUT: %.loc9_51: Core.Form = init_form %Self.ref.loc9_51 [concrete = constants.%.a69] diff --git a/toolchain/check/testdata/impl/import_self_specific.carbon b/toolchain/check/testdata/impl/import_self_specific.carbon index 7b45cb7bebd9..e51e4fb11157 100644 --- a/toolchain/check/testdata/impl/import_self_specific.carbon +++ b/toolchain/check/testdata/impl/import_self_specific.carbon @@ -178,8 +178,8 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%Assoc [concrete = constants.%assoc0] // CHECK:STDOUT: } // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] { -// CHECK:STDOUT: %c.patt: @I.WithSelf.F.%pattern_type (%pattern_type.850) = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.850) = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.850) = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: @I.WithSelf.F.%pattern_type (%pattern_type.850) = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: @I.WithSelf.F.%C.loc24_18.1 (%C.6ff) = value_param call_param0 // CHECK:STDOUT: %.loc24_18.2: type = splice_block %C.loc24_18.2 [symbolic = %C.loc24_18.1 (constants.%C.6ff)] { @@ -530,8 +530,8 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: // CHECK:STDOUT: impl: %D.loc20_24.2 as %.loc20_31 { // CHECK:STDOUT: %D.as.I.impl.F.decl: @D.as.I.impl.%D.as.I.impl.F.type (%D.as.I.impl.F.type) = fn_decl @D.as.I.impl.F [symbolic = @D.as.I.impl.%D.as.I.impl.F (constants.%D.as.I.impl.F)] { -// CHECK:STDOUT: %c.patt: %pattern_type.479 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.479 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.479 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.479 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C.a44 = value_param call_param0 // CHECK:STDOUT: %.loc21_22.1: type = splice_block %C [concrete = constants.%C.a44] { diff --git a/toolchain/check/testdata/impl/import_thunk.carbon b/toolchain/check/testdata/impl/import_thunk.carbon index d3c99887474b..9a775aca1af1 100644 --- a/toolchain/check/testdata/impl/import_thunk.carbon +++ b/toolchain/check/testdata/impl/import_thunk.carbon @@ -77,8 +77,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] { -// CHECK:STDOUT: %x.patt: %pattern_type = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_struct_type = value_param call_param0 // CHECK:STDOUT: %.loc5_12.1: type = splice_block %.loc5_12.3 [concrete = constants.%empty_struct_type] { @@ -224,8 +224,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.loc7_25.2 as %I.ref { // CHECK:STDOUT: %C.as.I.impl.F.decl.loc8_24.1: @C.as.I.impl.%C.as.I.impl.F.type.loc8_24.1 (%C.as.I.impl.F.type.cf838e.1) = fn_decl @C.as.I.impl.F.loc8_24.1 [symbolic = @C.as.I.impl.%C.as.I.impl.F.loc8_24.1 (constants.%C.as.I.impl.F.421e41.1)] { -// CHECK:STDOUT: %x.patt: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.fb2) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.fb2) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.fb2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.fb2) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: @C.as.I.impl.F.loc8_24.1.%C.loc8_21.1 (%C.c8540f.2) = value_param call_param0 // CHECK:STDOUT: %.loc8: type = splice_block %C.loc8_21.2 [symbolic = %C.loc8_21.1 (constants.%C.c8540f.2)] { @@ -236,8 +236,8 @@ fn G() { // CHECK:STDOUT: %x: @C.as.I.impl.F.loc8_24.1.%C.loc8_21.1 (%C.c8540f.2) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.as.I.impl.F.decl.loc8_24.2: @C.as.I.impl.%C.as.I.impl.F.type.loc8_24.2 (%C.as.I.impl.F.type.cf838e.2) = fn_decl @C.as.I.impl.F.loc8_24.2 [symbolic = @C.as.I.impl.%C.as.I.impl.F.loc8_24.2 (constants.%C.as.I.impl.F.421e41.2)] { -// CHECK:STDOUT: %x.patt: %pattern_type.a96 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_struct_type = value_param call_param0 // CHECK:STDOUT: %x: %empty_struct_type = value_binding x, %x.param diff --git a/toolchain/check/testdata/impl/interface_args.carbon b/toolchain/check/testdata/impl/interface_args.carbon index 2fff70863c5a..0162a2e76ec9 100644 --- a/toolchain/check/testdata/impl/interface_args.carbon +++ b/toolchain/check/testdata/impl/interface_args.carbon @@ -156,10 +156,10 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert)] { -// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.8de) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.8de) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_28 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_28 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.8de) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.8de) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_31 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %Dest.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_22.2 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %.loc4_31.2: Core.Form = init_form %Dest.ref [symbolic = %.loc4_31.1 (constants.%.184)] @@ -192,9 +192,9 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.9fe)] // CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc4_14: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.8de)] +// CHECK:STDOUT: %pattern_type.loc4_18: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc4_18 (constants.%pattern_type.8de)] // CHECK:STDOUT: %.loc4_31.1: Core.Form = init_form %Dest [symbolic = %.loc4_31.1 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc4_28: type = pattern_type %Dest [symbolic = %pattern_type.loc4_28 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc4_31: type = pattern_type %Dest [symbolic = %pattern_type.loc4_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%Dest (%Dest); // CHECK:STDOUT: } @@ -210,9 +210,9 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fe // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc4_14 => constants.%pattern_type.8de +// CHECK:STDOUT: %pattern_type.loc4_18 => constants.%pattern_type.8de // CHECK:STDOUT: %.loc4_31.1 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc4_28 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc4_31 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- action.carbon @@ -292,8 +292,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [concrete = constants.%Action.type.879] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt: %pattern_type.1ab = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.1ab = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.1ab = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.1ab = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] @@ -314,8 +314,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Action.WithSelf.Op.decl: @Action.WithSelf.%Action.WithSelf.Op.type (%Action.WithSelf.Op.type.ecb) = fn_decl @Action.WithSelf.Op [symbolic = @Action.WithSelf.%Action.WithSelf.Op (constants.%Action.WithSelf.Op.a8d)] { -// CHECK:STDOUT: %self.patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.84c) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.84c) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.84c) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.84c) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Action.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -339,8 +339,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: // CHECK:STDOUT: impl @A.as.Action.impl: %A.ref as %Action.type { // CHECK:STDOUT: %A.as.Action.impl.Op.decl: %A.as.Action.impl.Op.type = fn_decl @A.as.Action.impl.Op [concrete = constants.%A.as.Action.impl.Op] { -// CHECK:STDOUT: %self.patt: %pattern_type.1ab = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1ab = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %A = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @A.as.Action.impl.%A.ref [concrete = constants.%A] @@ -540,8 +540,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %default.import.loc2_22.2 = import // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.patt: %pattern_type.1ab = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.1ab = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.1ab = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.1ab = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Main.A [concrete = constants.%A] @@ -732,8 +732,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %default.import.loc2_22.2 = import // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.patt: %pattern_type.1ab = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.1ab = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.1ab = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.1ab = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Main.A [concrete = constants.%A] @@ -944,8 +944,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Factory.WithSelf.Make.decl: @Factory.WithSelf.%Factory.WithSelf.Make.type (%Factory.WithSelf.Make.type.086) = fn_decl @Factory.WithSelf.Make [symbolic = @Factory.WithSelf.%Factory.WithSelf.Make (constants.%Factory.WithSelf.Make.6b9)] { -// CHECK:STDOUT: %return.patt: @Factory.WithSelf.Make.%pattern_type (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Factory.WithSelf.Make.%pattern_type (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Factory.WithSelf.Make.%pattern_type (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Factory.WithSelf.Make.%pattern_type (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Factory.%T.loc4_19.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc6_16.2: Core.Form = init_form %T.ref [symbolic = %.loc6_16.1 (constants.%.184)] @@ -954,10 +954,10 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc6_17.1: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.129) = assoc_entity element0, %Factory.WithSelf.Make.decl [symbolic = %assoc0.loc6_17.2 (constants.%assoc0.cdd)] // CHECK:STDOUT: %Factory.WithSelf.Method.decl: @Factory.WithSelf.%Factory.WithSelf.Method.type (%Factory.WithSelf.Method.type.900) = fn_decl @Factory.WithSelf.Method [symbolic = @Factory.WithSelf.%Factory.WithSelf.Method (constants.%Factory.WithSelf.Method.655)] { -// CHECK:STDOUT: %self.patt: @Factory.WithSelf.Method.%pattern_type.loc8_13 (%pattern_type.077) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Factory.WithSelf.Method.%pattern_type.loc8_13 (%pattern_type.077) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @Factory.WithSelf.Method.%pattern_type.loc8_27 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Factory.WithSelf.Method.%pattern_type.loc8_27 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Factory.WithSelf.Method.%pattern_type.loc8_17 (%pattern_type.077) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Factory.WithSelf.Method.%pattern_type.loc8_17 (%pattern_type.077) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Factory.WithSelf.Method.%pattern_type.loc8_30 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Factory.WithSelf.Method.%pattern_type.loc8_30 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Factory.%T.loc4_19.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc8_30.2: Core.Form = init_form %T.ref [symbolic = %.loc8_30.1 (constants.%.184)] @@ -988,8 +988,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: // CHECK:STDOUT: impl @A.as.Factory.impl: %A.ref as %Factory.type { // CHECK:STDOUT: %A.as.Factory.impl.Make.decl: %A.as.Factory.impl.Make.type = fn_decl @A.as.Factory.impl.Make [concrete = constants.%A.as.Factory.impl.Make] { -// CHECK:STDOUT: %return.patt: %pattern_type.1f4 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.1f4 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.1f4 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.1f4 = return_slot_pattern %return.param_patt, %B.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc15: Core.Form = init_form %B.ref [concrete = constants.%.7df] @@ -997,10 +997,10 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %return: ref %B = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %A.as.Factory.impl.Method.decl: %A.as.Factory.impl.Method.type = fn_decl @A.as.Factory.impl.Method [concrete = constants.%A.as.Factory.impl.Method] { -// CHECK:STDOUT: %self.patt: %pattern_type.1ab = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.1f4 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.1f4 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1ab = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.1f4 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.1f4 = return_slot_pattern %return.param_patt, %B.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc16: Core.Form = init_form %B.ref [concrete = constants.%.7df] @@ -1049,9 +1049,9 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.142)] // CHECK:STDOUT: %Self: @Factory.WithSelf.Method.%Factory.type (%Factory.type.142) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.cc4)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc8_13: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc8_13 (constants.%pattern_type.077)] +// CHECK:STDOUT: %pattern_type.loc8_17: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc8_17 (constants.%pattern_type.077)] // CHECK:STDOUT: %.loc8_30.1: Core.Form = init_form %T [symbolic = %.loc8_30.1 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc8_27: type = pattern_type %T [symbolic = %pattern_type.loc8_27 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc8_30: type = pattern_type %T [symbolic = %pattern_type.loc8_30 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Factory.WithSelf.Method.%Self.binding.as_type (%Self.binding.as_type)) -> out %return.param: @Factory.WithSelf.Method.%T (%T); // CHECK:STDOUT: } @@ -1077,9 +1077,9 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.type => constants.%Factory.type.142 // CHECK:STDOUT: %Self => constants.%Self.cc4 // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc8_13 => constants.%pattern_type.077 +// CHECK:STDOUT: %pattern_type.loc8_17 => constants.%pattern_type.077 // CHECK:STDOUT: %.loc8_30.1 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc8_27 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Factory(constants.%B) { @@ -1129,9 +1129,9 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.type => constants.%Factory.type.5dd // CHECK:STDOUT: %Self => constants.%Factory.facet // CHECK:STDOUT: %Self.binding.as_type => constants.%A -// CHECK:STDOUT: %pattern_type.loc8_13 => constants.%pattern_type.1ab +// CHECK:STDOUT: %pattern_type.loc8_17 => constants.%pattern_type.1ab // CHECK:STDOUT: %.loc8_30.1 => constants.%.7df -// CHECK:STDOUT: %pattern_type.loc8_27 => constants.%pattern_type.1f4 +// CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.1f4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- factory.impl.carbon @@ -1236,8 +1236,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %default.import.loc2_23.2 = import // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %MakeB.decl: %MakeB.type = fn_decl @MakeB [concrete = constants.%MakeB] { -// CHECK:STDOUT: %return.patt: %pattern_type.1f4 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.1f4 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.1f4 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.1f4 = return_slot_pattern %return.param_patt, %B.ref.loc4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %B.ref.loc4: type = name_ref B, imports.%Main.B [concrete = constants.%B] // CHECK:STDOUT: %.loc4_15.2: Core.Form = init_form %B.ref.loc4 [concrete = constants.%.7df] @@ -1245,10 +1245,10 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %return: ref %B = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InstanceB.decl: %InstanceB.type = fn_decl @InstanceB [concrete = constants.%InstanceB] { -// CHECK:STDOUT: %a.patt: %pattern_type.1ab = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.1ab = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.1f4 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.1f4 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.1ab = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.1ab = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.1f4 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.1f4 = return_slot_pattern %return.param_patt, %B.ref.loc7 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %B.ref.loc7: type = name_ref B, imports.%Main.B [concrete = constants.%B] // CHECK:STDOUT: %.loc7_23.2: Core.Form = init_form %B.ref.loc7 [concrete = constants.%.7df] @@ -1505,8 +1505,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %MakeC.decl: %MakeC.type = fn_decl @MakeC [concrete = constants.%MakeC] { -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref.loc8 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc8: Core.Form = init_form %C.ref.loc8 [concrete = constants.%.a69] @@ -1514,10 +1514,10 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InstanceC.decl: %InstanceC.type = fn_decl @InstanceC [concrete = constants.%InstanceC] { -// CHECK:STDOUT: %a.patt: %pattern_type.1ab = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.1ab = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.1ab = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.1ab = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref.loc16 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc16: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc16: Core.Form = init_form %C.ref.loc16 [concrete = constants.%.a69] diff --git a/toolchain/check/testdata/impl/lookup/alias.carbon b/toolchain/check/testdata/impl/lookup/alias.carbon index 6c555cbbd148..54a5a3f367b1 100644 --- a/toolchain/check/testdata/impl/lookup/alias.carbon +++ b/toolchain/check/testdata/impl/lookup/alias.carbon @@ -67,8 +67,8 @@ fn G(c: C) { // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.type] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %c.patt: %pattern_type = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc27: type = name_ref C, file.%C.decl [concrete = constants.%C] diff --git a/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon b/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon index 80e065ef5552..0095cf6ce9fa 100644 --- a/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon +++ b/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon @@ -158,8 +158,8 @@ fn G() { // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.840 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.bd7) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.bd7) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.bd7) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.bd7) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc22_12.1: type = splice_block %.loc22_12.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -189,8 +189,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.II.decl: @I.WithSelf.%I.WithSelf.II.type (%I.WithSelf.II.type.7d3) = fn_decl @I.WithSelf.II [symbolic = @I.WithSelf.%I.WithSelf.II (constants.%I.WithSelf.II.54d)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.II.%pattern_type (%pattern_type.fa0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.II.%pattern_type (%pattern_type.fa0) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.II.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.II.%pattern_type (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.II.%Self.binding.as_type (%Self.binding.as_type.d31) = value_param call_param0 // CHECK:STDOUT: %.loc16_15.1: type = splice_block %.loc16_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] { @@ -218,8 +218,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %J.WithSelf.JJ.decl: @J.WithSelf.%J.WithSelf.JJ.type (%J.WithSelf.JJ.type.21e) = fn_decl @J.WithSelf.JJ [symbolic = @J.WithSelf.%J.WithSelf.JJ (constants.%J.WithSelf.JJ.473)] { -// CHECK:STDOUT: %self.patt: @J.WithSelf.JJ.%pattern_type (%pattern_type.832) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @J.WithSelf.JJ.%pattern_type (%pattern_type.832) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @J.WithSelf.JJ.%pattern_type (%pattern_type.832) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J.WithSelf.JJ.%pattern_type (%pattern_type.832) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @J.WithSelf.JJ.%Self.binding.as_type (%Self.binding.as_type.ed8) = value_param call_param0 // CHECK:STDOUT: %.loc19_15.1: type = splice_block %.loc19_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] { @@ -241,8 +241,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %Self.ref as %I.ref { // CHECK:STDOUT: %C.as.I.impl.II.decl: %C.as.I.impl.II.type = fn_decl @C.as.I.impl.II [concrete = constants.%C.as.I.impl.II] { -// CHECK:STDOUT: %self.patt: %pattern_type.893 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.893 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.893 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.893 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] @@ -258,8 +258,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.J.impl: %Self.ref as %J.ref { // CHECK:STDOUT: %C.as.J.impl.JJ.decl: %C.as.J.impl.JJ.type = fn_decl @C.as.J.impl.JJ [concrete = constants.%C.as.J.impl.JJ] { -// CHECK:STDOUT: %self.patt: %pattern_type.893 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.893 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.893 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.893 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] diff --git a/toolchain/check/testdata/impl/lookup/fail_alias_impl_not_found.carbon b/toolchain/check/testdata/impl/lookup/fail_alias_impl_not_found.carbon index 3e90acd2a7f1..77ea4ec49c36 100644 --- a/toolchain/check/testdata/impl/lookup/fail_alias_impl_not_found.carbon +++ b/toolchain/check/testdata/impl/lookup/fail_alias_impl_not_found.carbon @@ -59,8 +59,8 @@ fn F(c: C) { // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: %pattern_type = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc23: type = name_ref C, file.%C.decl [concrete = constants.%C] diff --git a/toolchain/check/testdata/impl/lookup/generic.carbon b/toolchain/check/testdata/impl/lookup/generic.carbon index 5438ce329c39..2a1fdb702294 100644 --- a/toolchain/check/testdata/impl/lookup/generic.carbon +++ b/toolchain/check/testdata/impl/lookup/generic.carbon @@ -194,8 +194,8 @@ fn G(x: A) { // CHECK:STDOUT: %T.loc8_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc8_14.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %x.patt: %pattern_type.a96 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_struct_type = value_param call_param0 // CHECK:STDOUT: %.loc12_10.1: type = splice_block %.loc12_10.3 [concrete = constants.%empty_struct_type] { @@ -212,8 +212,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.adc) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.faa)] { -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -243,8 +243,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %HasF.ref { // CHECK:STDOUT: %T.as.HasF.impl.F.decl: @T.as.HasF.impl.%T.as.HasF.impl.F.type (%T.as.HasF.impl.F.type.12d) = fn_decl @T.as.HasF.impl.F [symbolic = @T.as.HasF.impl.%T.as.HasF.impl.F (constants.%T.as.HasF.impl.F.4f8)] { -// CHECK:STDOUT: %self.patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @T.as.HasF.impl.F.%T (%T) = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @T.as.HasF.impl.%T.ref [symbolic = %T (constants.%T)] @@ -451,10 +451,10 @@ fn G(x: A) { // CHECK:STDOUT: %T.loc8_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc8_14.1 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %x.patt: %pattern_type.1cc = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.1cc = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.1cc = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.1cc = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.1cc = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.1cc = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.1cc = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.1cc = return_slot_pattern %return.param_patt, %ptr.loc12_19 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12_18: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc12_19.1: type = converted %.loc12_18, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -478,10 +478,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.adc) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.faa)] { -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = return_slot_pattern %return.param_patt, %.loc5_25.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc5_25: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self.f09)] // CHECK:STDOUT: %Self.as_type.loc5_25: type = facet_access_type %Self.ref.loc5_25 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.87c)] @@ -518,10 +518,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: impl: %ptr.loc8_25.2 as %HasF.ref { // CHECK:STDOUT: %ptr.as.HasF.impl.F.decl: @ptr.as.HasF.impl.%ptr.as.HasF.impl.F.type (%ptr.as.HasF.impl.F.type.672) = fn_decl @ptr.as.HasF.impl.F [symbolic = @ptr.as.HasF.impl.%ptr.as.HasF.impl.F (constants.%ptr.as.HasF.impl.F.dbd)] { -// CHECK:STDOUT: %self.patt: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = return_slot_pattern %return.param_patt, %ptr.loc9_26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @ptr.as.HasF.impl.%T.loc8_14.2 [symbolic = %T (constants.%T.67d)] // CHECK:STDOUT: %ptr.loc9_26: type = ptr_type %T.ref [symbolic = %ptr.loc9_14 (constants.%ptr.e8f)] @@ -754,8 +754,8 @@ fn G(x: A) { // CHECK:STDOUT: %T.loc10_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc10_14.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %x.patt: %pattern_type.526 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.526 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.526 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.526 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %C.850 = value_param call_param0 // CHECK:STDOUT: %.loc14_13.1: type = splice_block %C [concrete = constants.%C.850] { @@ -774,8 +774,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.adc) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.faa)] { -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -806,8 +806,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.loc10_27.2 as %HasF.ref { // CHECK:STDOUT: %C.as.HasF.impl.F.decl: @C.as.HasF.impl.%C.as.HasF.impl.F.type (%C.as.HasF.impl.F.type.fb0) = fn_decl @C.as.HasF.impl.F [symbolic = @C.as.HasF.impl.%C.as.HasF.impl.F (constants.%C.as.HasF.impl.F.f34)] { -// CHECK:STDOUT: %self.patt: @C.as.HasF.impl.F.%pattern_type (%pattern_type.3d5) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @C.as.HasF.impl.F.%pattern_type (%pattern_type.3d5) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @C.as.HasF.impl.F.%pattern_type (%pattern_type.3d5) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @C.as.HasF.impl.F.%pattern_type (%pattern_type.3d5) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @C.as.HasF.impl.F.%C (%C.5a3) = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.HasF.impl.%C.loc10_27.2 [symbolic = %C (constants.%C.5a3)] @@ -1036,8 +1036,8 @@ fn G(x: A) { // CHECK:STDOUT: %T.loc8_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc8_14.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %x.patt: %pattern_type.a96 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_struct_type = value_param call_param0 // CHECK:STDOUT: %.loc12_10.1: type = splice_block %.loc12_10.3 [concrete = constants.%empty_struct_type] { @@ -1061,8 +1061,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.246) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.58b)] { -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.969) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.969) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.969) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.969) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -1096,8 +1096,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc8_25.2 as %HasF.type.loc8_36.2 { // CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.decl: @empty_struct_type.as.HasF.impl.%empty_struct_type.as.HasF.impl.F.type (%empty_struct_type.as.HasF.impl.F.type.1d0) = fn_decl @empty_struct_type.as.HasF.impl.F [symbolic = @empty_struct_type.as.HasF.impl.%empty_struct_type.as.HasF.impl.F (constants.%empty_struct_type.as.HasF.impl.F.e82)] { -// CHECK:STDOUT: %self.patt: %pattern_type.a96 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.a96 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.a96 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.a96 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %empty_struct_type = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @empty_struct_type.as.HasF.impl.%.loc8_25.2 [concrete = constants.%empty_struct_type] @@ -1313,8 +1313,8 @@ fn G(x: A) { // CHECK:STDOUT: %U.loc12_24.2: type = symbolic_binding U, 1 [symbolic = %U.loc12_24.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %x.patt: %pattern_type.a96 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_struct_type = value_param call_param0 // CHECK:STDOUT: %.loc16_10.1: type = splice_block %.loc16_10.3 [concrete = constants.%empty_struct_type] { @@ -1331,8 +1331,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F)] { -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -1363,8 +1363,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %HasF.ref { // CHECK:STDOUT: %T.as.HasF.impl.F.decl: @T.as.HasF.impl.%T.as.HasF.impl.F.type (%T.as.HasF.impl.F.type) = fn_decl @T.as.HasF.impl.F [symbolic = @T.as.HasF.impl.%T.as.HasF.impl.F (constants.%T.as.HasF.impl.F)] { -// CHECK:STDOUT: %self.patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @T.as.HasF.impl.F.%T (%T) = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @T.as.HasF.impl.%T.ref [symbolic = %T (constants.%T)] @@ -1518,8 +1518,8 @@ fn G(x: A) { // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %x.patt: %pattern_type.1ab = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.1ab = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.1ab = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.1ab = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] @@ -1540,8 +1540,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.246) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.58b)] { -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.969) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.969) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.969) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.969) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -1575,8 +1575,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref.loc8_24 as %HasF.type.loc8_35.2 { // CHECK:STDOUT: %T.as.HasF.impl.F.decl: @T.as.HasF.impl.%T.as.HasF.impl.F.type (%T.as.HasF.impl.F.type) = fn_decl @T.as.HasF.impl.F [symbolic = @T.as.HasF.impl.%T.as.HasF.impl.F (constants.%T.as.HasF.impl.F)] { -// CHECK:STDOUT: %self.patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @T.as.HasF.impl.F.%T (%T) = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @T.as.HasF.impl.%T.ref.loc8_24 [symbolic = %T (constants.%T)] diff --git a/toolchain/check/testdata/impl/lookup/impl_forall.carbon b/toolchain/check/testdata/impl/lookup/impl_forall.carbon index 9a65e72514c6..5093f18db80e 100644 --- a/toolchain/check/testdata/impl/lookup/impl_forall.carbon +++ b/toolchain/check/testdata/impl/lookup/impl_forall.carbon @@ -167,10 +167,10 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: // CHECK:STDOUT: impl: %A.loc12_27.2 as %I.type.loc12_35.2 { // CHECK:STDOUT: %A.as.I.impl.F.decl: @A.as.I.impl.%A.as.I.impl.F.type (%A.as.I.impl.F.type.58747b.1) = fn_decl @A.as.I.impl.F [symbolic = @A.as.I.impl.%A.as.I.impl.F (constants.%A.as.I.impl.F.afeb91.1)] { -// CHECK:STDOUT: %self.patt: @A.as.I.impl.F.%pattern_type.loc13_12 (%pattern_type.2c404c.1) = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @A.as.I.impl.F.%pattern_type.loc13_12 (%pattern_type.2c404c.1) = ref_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @A.as.I.impl.F.%pattern_type.loc13_26 (%pattern_type.4f4b84.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @A.as.I.impl.F.%pattern_type.loc13_26 (%pattern_type.4f4b84.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @A.as.I.impl.F.%pattern_type.loc13_16 (%pattern_type.2c404c.1) = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @A.as.I.impl.F.%pattern_type.loc13_16 (%pattern_type.2c404c.1) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @A.as.I.impl.F.%pattern_type.loc13_30 (%pattern_type.4f4b84.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @A.as.I.impl.F.%pattern_type.loc13_30 (%pattern_type.4f4b84.2) = return_slot_pattern %return.param_patt, %ptr.loc13_30.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %V.ref: type = name_ref V, @A.as.I.impl.%V.loc12_14.2 [symbolic = %V (constants.%V.67d)] // CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type %V.ref [symbolic = %ptr.loc13_30.1 (constants.%ptr.e8f8f9.2)] @@ -194,10 +194,10 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: generic fn @A.as.I.impl.F(@A.as.I.impl.%V.loc12_14.2: type) { // CHECK:STDOUT: %V: type = symbolic_binding V, 0 [symbolic = %V (constants.%V.67d)] // CHECK:STDOUT: %A: type = class_type @A, @A(%V) [symbolic = %A (constants.%A.95c0c7.2)] -// CHECK:STDOUT: %pattern_type.loc13_12: type = pattern_type %A [symbolic = %pattern_type.loc13_12 (constants.%pattern_type.2c404c.1)] +// CHECK:STDOUT: %pattern_type.loc13_16: type = pattern_type %A [symbolic = %pattern_type.loc13_16 (constants.%pattern_type.2c404c.1)] // CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %V [symbolic = %ptr.loc13_30.1 (constants.%ptr.e8f8f9.2)] // CHECK:STDOUT: %.loc13_30.1: Core.Form = init_form %ptr.loc13_30.1 [symbolic = %.loc13_30.1 (constants.%.cb6cb9.2)] -// CHECK:STDOUT: %pattern_type.loc13_26: type = pattern_type %ptr.loc13_30.1 [symbolic = %pattern_type.loc13_26 (constants.%pattern_type.4f4b84.2)] +// CHECK:STDOUT: %pattern_type.loc13_30: type = pattern_type %ptr.loc13_30.1 [symbolic = %pattern_type.loc13_30 (constants.%pattern_type.4f4b84.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_16: = require_complete_type %A [symbolic = %require_complete.loc13_16 (constants.%require_complete.fd6)] @@ -294,20 +294,20 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: specific @A.as.I.impl.F(constants.%V.67d) { // CHECK:STDOUT: %V => constants.%V.67d // CHECK:STDOUT: %A => constants.%A.95c0c7.2 -// CHECK:STDOUT: %pattern_type.loc13_12 => constants.%pattern_type.2c404c.1 +// CHECK:STDOUT: %pattern_type.loc13_16 => constants.%pattern_type.2c404c.1 // CHECK:STDOUT: %ptr.loc13_30.1 => constants.%ptr.e8f8f9.2 // CHECK:STDOUT: %.loc13_30.1 => constants.%.cb6cb9.2 -// CHECK:STDOUT: %pattern_type.loc13_26 => constants.%pattern_type.4f4b84.2 +// CHECK:STDOUT: %pattern_type.loc13_30 => constants.%pattern_type.4f4b84.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TestGeneric(constants.%W) { // CHECK:STDOUT: %W.loc19_16.1 => constants.%W // CHECK:STDOUT: %A.loc19_32.1 => constants.%A.95c0c7.3 // CHECK:STDOUT: %ptr.loc19_33.1 => constants.%ptr.5da -// CHECK:STDOUT: %pattern_type.loc19_26 => constants.%pattern_type.605 +// CHECK:STDOUT: %pattern_type.loc19_27 => constants.%pattern_type.605 // CHECK:STDOUT: %ptr.loc19_40.1 => constants.%ptr.e8f8f9.4 // CHECK:STDOUT: %.loc19_40.1 => constants.%.cb6cb9.4 -// CHECK:STDOUT: %pattern_type.loc19_36 => constants.%pattern_type.4f4b84.4 +// CHECK:STDOUT: %pattern_type.loc19_40 => constants.%pattern_type.4f4b84.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.as.I.impl(constants.%W) { @@ -337,10 +337,10 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: specific @A.as.I.impl.F(constants.%empty_struct_type) { // CHECK:STDOUT: %V => constants.%empty_struct_type // CHECK:STDOUT: %A => constants.%A.ed7 -// CHECK:STDOUT: %pattern_type.loc13_12 => constants.%pattern_type.853 +// CHECK:STDOUT: %pattern_type.loc13_16 => constants.%pattern_type.853 // CHECK:STDOUT: %ptr.loc13_30.1 => constants.%ptr.c28 // CHECK:STDOUT: %.loc13_30.1 => constants.%.9ba -// CHECK:STDOUT: %pattern_type.loc13_26 => constants.%pattern_type.1cc +// CHECK:STDOUT: %pattern_type.loc13_30 => constants.%pattern_type.1cc // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_16 => constants.%complete_type.0a6 diff --git a/toolchain/check/testdata/impl/lookup/import.carbon b/toolchain/check/testdata/impl/lookup/import.carbon index 1a517c038558..a49afaf1aff0 100644 --- a/toolchain/check/testdata/impl/lookup/import.carbon +++ b/toolchain/check/testdata/impl/lookup/import.carbon @@ -274,8 +274,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.4d6) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.312)] { -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.92d) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.92d) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.92d) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.92d) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -297,8 +297,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.HasF.impl: %C.ref as %HasF.ref { // CHECK:STDOUT: %C.as.HasF.impl.F.decl: %C.as.HasF.impl.F.type = fn_decl @C.as.HasF.impl.F [concrete = constants.%C.as.HasF.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.039 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.039 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.039 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.039 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.HasF.impl.%C.ref [concrete = constants.%C] @@ -455,8 +455,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasG.WithSelf.G.decl: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.0fc) = fn_decl @HasG.WithSelf.G [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.8a1)] { -// CHECK:STDOUT: %self.patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.348) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.348) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.348) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.348) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasG.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type.ba6) = value_param call_param0 // CHECK:STDOUT: %.loc7_14.1: type = splice_block %.loc7_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ba6)] { @@ -487,8 +487,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.HasG.impl: %C.ref as %HasG.ref { // CHECK:STDOUT: %C.as.HasG.impl.G.decl: %C.as.HasG.impl.G.type = fn_decl @C.as.HasG.impl.G [concrete = constants.%C.as.HasG.impl.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.8e5 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.8e5 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.8e5 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.8e5 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.HasG.impl.%C.ref [concrete = constants.%C] @@ -504,8 +504,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @D.as.HasF.impl: %D.ref as %HasF.ref { // CHECK:STDOUT: %D.as.HasF.impl.F.decl: %D.as.HasF.impl.F.type = fn_decl @D.as.HasF.impl.F [concrete = constants.%D.as.HasF.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.189 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.189 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.189 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.189 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %D = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @D.as.HasF.impl.%D.ref [concrete = constants.%D] @@ -521,8 +521,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @D.as.HasG.impl: %D.ref as %HasG.ref { // CHECK:STDOUT: %D.as.HasG.impl.G.decl: %D.as.HasG.impl.G.type = fn_decl @D.as.HasG.impl.G [concrete = constants.%D.as.HasG.impl.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.189 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.189 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.189 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.189 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %D = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @D.as.HasG.impl.%D.ref [concrete = constants.%D] @@ -709,8 +709,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %PackageA.import = import PackageA // CHECK:STDOUT: %TestCF.decl: %TestCF.type = fn_decl @TestCF [concrete = constants.%TestCF] { -// CHECK:STDOUT: %c.patt: %pattern_type.8e5 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.8e5 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.8e5 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.8e5 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %.loc6: type = splice_block %C.ref [concrete = constants.%C] { @@ -857,8 +857,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageA.import = import PackageA // CHECK:STDOUT: %PackageB.import = import PackageB // CHECK:STDOUT: %TestDF.decl: %TestDF.type = fn_decl @TestDF [concrete = constants.%TestDF] { -// CHECK:STDOUT: %d.patt: %pattern_type.f09 = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.f09 = value_param_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.f09 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.f09 = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %d.param: %D = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %D.ref [concrete = constants.%D] { @@ -1017,8 +1017,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageA.import = import PackageA // CHECK:STDOUT: %PackageB.import = import PackageB // CHECK:STDOUT: %TestCG.decl: %TestCG.type = fn_decl @TestCG [concrete = constants.%TestCG] { -// CHECK:STDOUT: %c.patt: %pattern_type.8e5 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.8e5 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.8e5 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.8e5 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %C.ref [concrete = constants.%C] { @@ -1172,8 +1172,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %PackageB.import = import PackageB // CHECK:STDOUT: %TestDG.decl: %TestDG.type = fn_decl @TestDG [concrete = constants.%TestDG] { -// CHECK:STDOUT: %d.patt: %pattern_type.f09 = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.f09 = value_param_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.f09 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.f09 = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %d.param: %D = value_param call_param0 // CHECK:STDOUT: %.loc6: type = splice_block %D.ref [concrete = constants.%D] { @@ -1308,8 +1308,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Z.WithSelf.H.decl: @Z.WithSelf.%Z.WithSelf.H.type (%Z.WithSelf.H.type.2a4) = fn_decl @Z.WithSelf.H [symbolic = @Z.WithSelf.%Z.WithSelf.H (constants.%Z.WithSelf.H.514)] { -// CHECK:STDOUT: %self.patt: @Z.WithSelf.H.%pattern_type (%pattern_type.336) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.H.%pattern_type (%pattern_type.336) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.H.%pattern_type (%pattern_type.336) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Z.WithSelf.H.%pattern_type (%pattern_type.336) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Z.WithSelf.H.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -1331,8 +1331,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.Z.impl: %.loc8_7.2 as %Z.ref { // CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H.decl: %empty_tuple.type.as.Z.impl.H.type = fn_decl @empty_tuple.type.as.Z.impl.H [concrete = constants.%empty_tuple.type.as.Z.impl.H] { -// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @empty_tuple.type.as.Z.impl.%.loc8_7.2 [concrete = constants.%empty_tuple.type] @@ -1564,8 +1564,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Y.WithSelf.K.decl: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type) = fn_decl @Y.WithSelf.K [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K)] { -// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.880) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Y.WithSelf.K.%pattern_type (%pattern_type.880) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Y.WithSelf.K.%pattern_type (%pattern_type.880) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.880) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Y.WithSelf.K.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc7_21.1: type = splice_block %.loc7_21.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -1765,8 +1765,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @AnyParam.as.Y.impl: %AnyParam as %Y.ref { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.decl: %AnyParam.as.Y.impl.K.type = fn_decl @AnyParam.as.Y.impl.K [concrete = constants.%AnyParam.as.Y.impl.K] { -// CHECK:STDOUT: %self.patt: %pattern_type.a39 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.a39 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.a39 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.a39 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %AnyParam.33d = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @AnyParam.as.Y.impl.%AnyParam [concrete = constants.%AnyParam.33d] @@ -2227,8 +2227,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @AnyParam.as.Y.impl: %AnyParam as %Y.ref { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.decl: %AnyParam.as.Y.impl.K.type = fn_decl @AnyParam.as.Y.impl.K [concrete = constants.%AnyParam.as.Y.impl.K] { -// CHECK:STDOUT: %self.patt: %pattern_type.ff6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.ff6 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.ff6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.ff6 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %AnyParam.8e0 = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @AnyParam.as.Y.impl.%AnyParam [concrete = constants.%AnyParam.8e0] @@ -2784,8 +2784,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.fca) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.6d7)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.c3e) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.c3e) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.c3e) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.c3e) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc14_26.1: type = splice_block %.loc14_26.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -2807,8 +2807,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %C as %I.ref { // CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.e9e = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.e9e = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.e9e = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.e9e = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C.806 = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C [concrete = constants.%C.806] @@ -2983,8 +2983,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %HasExtraInterfaces.import = import HasExtraInterfaces // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { -// CHECK:STDOUT: %c.patt: %pattern_type.6e4 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.6e4 = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.6e4 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.6e4 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C.42e = value_param call_param0 // CHECK:STDOUT: %.loc5_37: type = splice_block %C [concrete = constants.%C.42e] { diff --git a/toolchain/check/testdata/impl/lookup/instance_method.carbon b/toolchain/check/testdata/impl/lookup/instance_method.carbon index bd2f57b5256a..273d6eba7a0b 100644 --- a/toolchain/check/testdata/impl/lookup/instance_method.carbon +++ b/toolchain/check/testdata/impl/lookup/instance_method.carbon @@ -85,10 +85,10 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %C.decl.loc21: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc27: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -106,10 +106,10 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.08c) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.705)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc18_25: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -135,10 +135,10 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %Self.ref as %I.ref { // CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc23: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon b/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon index 64d2b9497f1c..3fd60ed784f9 100644 --- a/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon +++ b/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon @@ -235,8 +235,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.53f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.bb9) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.bb9) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.bb9) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.bb9) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc13_13: type = splice_block %Z.type [concrete = constants.%Z.type.be4] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -632,8 +632,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.53f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc14 (%pattern_type.bb9) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc14 (%pattern_type.bb9) = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc14 (%pattern_type.bb9) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc14 (%pattern_type.bb9) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_13: type = splice_block %Z.type [concrete = constants.%Z.type.be4] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -968,9 +968,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_20 (%pattern_type.51d) = ref_binding_pattern t [concrete] // CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_20 (%pattern_type.51d) = var_param_pattern %t.patt [concrete] -// CHECK:STDOUT: %t.var_patt: @F.%pattern_type.loc9_20 (%pattern_type.51d) = var_pattern %t.param_patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_26 (%pattern_type.4f4) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_26 (%pattern_type.4f4) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_30 (%pattern_type.4f4) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_30 (%pattern_type.4f4) = return_slot_pattern %return.param_patt, %impl.elem0.loc9 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_29: type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.67d)] // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] @@ -1036,7 +1035,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.facet.loc9_30.1: %Ptr.type = facet_value %T.loc9_6.1, (%Ptr.impl_witness) [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet.5445c3.2)] // CHECK:STDOUT: %ptr: type = ptr_type %T.loc9_6.1 [symbolic = %ptr (constants.%ptr.e8f8f9.2)] // CHECK:STDOUT: %.loc9_30.2: Core.Form = init_form %ptr [symbolic = %.loc9_30.2 (constants.%.cb6)] -// CHECK:STDOUT: %pattern_type.loc9_26: type = pattern_type %ptr [symbolic = %pattern_type.loc9_26 (constants.%pattern_type.4f4)] +// CHECK:STDOUT: %pattern_type.loc9_30: type = pattern_type %ptr [symbolic = %pattern_type.loc9_30 (constants.%pattern_type.4f4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_16: = require_complete_type %T.loc9_6.1 [symbolic = %require_complete.loc9_16 (constants.%require_complete.944)] @@ -1103,7 +1102,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.facet.loc9_30.1 => constants.%Ptr.facet.5445c3.2 // CHECK:STDOUT: %ptr => constants.%ptr.e8f8f9.2 // CHECK:STDOUT: %.loc9_30.2 => constants.%.cb6 -// CHECK:STDOUT: %pattern_type.loc9_26 => constants.%pattern_type.4f4 +// CHECK:STDOUT: %pattern_type.loc9_30 => constants.%pattern_type.4f4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- final_impl_rewrite_of_symbolic_through_facet_access_type.carbon @@ -1195,9 +1194,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %T.patt: %pattern_type.6d2 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_19 (%pattern_type.82a) = ref_binding_pattern t [concrete] // CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_19 (%pattern_type.82a) = var_param_pattern %t.patt [concrete] -// CHECK:STDOUT: %t.var_patt: @F.%pattern_type.loc9_19 (%pattern_type.82a) = var_pattern %t.param_patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_25 (%pattern_type.804) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_25 (%pattern_type.804) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_29 (%pattern_type.804) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_29 (%pattern_type.804) = return_slot_pattern %return.param_patt, %impl.elem0.loc9 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.ffa)] // CHECK:STDOUT: %T.as_type.loc9_29: type = facet_access_type %T.ref.loc9_28 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3dc)] @@ -1266,7 +1264,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.impl_witness: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.binding.as_type) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.373)] // CHECK:STDOUT: %ptr: type = ptr_type %T.binding.as_type [symbolic = %ptr (constants.%ptr.a86)] // CHECK:STDOUT: %.loc9_29.2: Core.Form = init_form %ptr [symbolic = %.loc9_29.2 (constants.%.321)] -// CHECK:STDOUT: %pattern_type.loc9_25: type = pattern_type %ptr [symbolic = %pattern_type.loc9_25 (constants.%pattern_type.804)] +// CHECK:STDOUT: %pattern_type.loc9_29: type = pattern_type %ptr [symbolic = %pattern_type.loc9_29 (constants.%pattern_type.804)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_15 (constants.%require_complete.552)] @@ -1333,7 +1331,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.373 // CHECK:STDOUT: %ptr => constants.%ptr.a86 // CHECK:STDOUT: %.loc9_29.2 => constants.%.321 -// CHECK:STDOUT: %pattern_type.loc9_25 => constants.%pattern_type.804 +// CHECK:STDOUT: %pattern_type.loc9_29 => constants.%pattern_type.804 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- final_impl_rewrite_of_symbolic_through_facet_value.carbon @@ -1425,9 +1423,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %T.patt: %pattern_type.6d2 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_19 (%pattern_type.82a) = ref_binding_pattern t [concrete] // CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_19 (%pattern_type.82a) = var_param_pattern %t.patt [concrete] -// CHECK:STDOUT: %t.var_patt: @F.%pattern_type.loc9_19 (%pattern_type.82a) = var_pattern %t.param_patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_25 (%pattern_type.804) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_25 (%pattern_type.804) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_29 (%pattern_type.804) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_29 (%pattern_type.804) = return_slot_pattern %return.param_patt, %impl.elem0.loc9 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.ffa)] // CHECK:STDOUT: %Ptr.ref.loc9_31: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] @@ -1495,7 +1492,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.impl_witness: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.binding.as_type) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.373)] // CHECK:STDOUT: %ptr: type = ptr_type %T.binding.as_type [symbolic = %ptr (constants.%ptr.a86)] // CHECK:STDOUT: %.loc9_29.2: Core.Form = init_form %ptr [symbolic = %.loc9_29.2 (constants.%.321)] -// CHECK:STDOUT: %pattern_type.loc9_25: type = pattern_type %ptr [symbolic = %pattern_type.loc9_25 (constants.%pattern_type.804)] +// CHECK:STDOUT: %pattern_type.loc9_29: type = pattern_type %ptr [symbolic = %pattern_type.loc9_29 (constants.%pattern_type.804)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_15 (constants.%require_complete.552)] @@ -1562,6 +1559,6 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.373 // CHECK:STDOUT: %ptr => constants.%ptr.a86 // CHECK:STDOUT: %.loc9_29.2 => constants.%.321 -// CHECK:STDOUT: %pattern_type.loc9_25 => constants.%pattern_type.804 +// CHECK:STDOUT: %pattern_type.loc9_29 => constants.%pattern_type.804 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/specific_args.carbon b/toolchain/check/testdata/impl/lookup/specific_args.carbon index 8a5a8d287236..1e7cc3d3014c 100644 --- a/toolchain/check/testdata/impl/lookup/specific_args.carbon +++ b/toolchain/check/testdata/impl/lookup/specific_args.carbon @@ -120,8 +120,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.a8a) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.a8a) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.a8a) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.a8a) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc4_36.1: type = splice_block %.loc4_36.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -275,8 +275,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: // CHECK:STDOUT: impl @X.as.I.impl: %X.ref as %I.type { // CHECK:STDOUT: %X.as.I.impl.F.decl: %X.as.I.impl.F.type = fn_decl @X.as.I.impl.F [concrete = constants.%X.as.I.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.05f = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.05f = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.05f = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.05f = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %X = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @X.as.I.impl.%X.ref [concrete = constants.%X] @@ -443,8 +443,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %x.patt: %pattern_type.05f = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.05f = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.05f = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.05f = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %X = value_param call_param0 // CHECK:STDOUT: %X.ref: type = name_ref X, imports.%Main.X [concrete = constants.%X] @@ -648,8 +648,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %C as %I.type { // CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.65d = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.65d = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.65d = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.65d = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C.83f = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C [concrete = constants.%C.83f] @@ -845,8 +845,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { -// CHECK:STDOUT: %c.patt: %pattern_type.65d = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.65d = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.65d = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.65d = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C.83f = value_param call_param0 // CHECK:STDOUT: %.loc6_22: type = splice_block %C [concrete = constants.%C.83f] { diff --git a/toolchain/check/testdata/impl/lookup/transitive.carbon b/toolchain/check/testdata/impl/lookup/transitive.carbon index 064b1ae14fef..76e641b25a77 100644 --- a/toolchain/check/testdata/impl/lookup/transitive.carbon +++ b/toolchain/check/testdata/impl/lookup/transitive.carbon @@ -82,8 +82,8 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc4_26.1: type = splice_block %.loc4_26.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -178,8 +178,8 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %C.ref as %I.ref { // CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C.ref [concrete = constants.%C] @@ -271,8 +271,8 @@ fn Call() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %Get.decl: %Get.type = fn_decl @Get [concrete = constants.%Get] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %.loc6: Core.Form = init_form %C.ref [concrete = constants.%.a69] diff --git a/toolchain/check/testdata/impl/multiple_extend.carbon b/toolchain/check/testdata/impl/multiple_extend.carbon index 48a0e93918ae..8eb3a2df51c1 100644 --- a/toolchain/check/testdata/impl/multiple_extend.carbon +++ b/toolchain/check/testdata/impl/multiple_extend.carbon @@ -219,8 +219,8 @@ fn P(o: O) { // CHECK:STDOUT: %HasG.decl: type = interface_decl @HasG [concrete = constants.%HasG.type] {} {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { -// CHECK:STDOUT: %c.patt: %pattern_type = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc21: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -446,8 +446,8 @@ fn P(o: O) { // CHECK:STDOUT: %HasA2.decl: type = interface_decl @HasA2 [concrete = constants.%HasA2.type] {} {} // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %d.patt: %pattern_type = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type = value_param_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %d.param: %D = value_param call_param0 // CHECK:STDOUT: %D.ref.loc21: type = name_ref D, file.%D.decl [concrete = constants.%D] @@ -652,8 +652,8 @@ fn P(o: O) { // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: %E.decl: type = class_decl @E [concrete = constants.%E] {} {} // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { -// CHECK:STDOUT: %e.patt: %pattern_type = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: %pattern_type = value_param_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %E = value_param call_param0 // CHECK:STDOUT: %E.ref.loc19: type = name_ref E, file.%E.decl [concrete = constants.%E] @@ -823,8 +823,8 @@ fn P(o: O) { // CHECK:STDOUT: %HasK.decl: type = interface_decl @HasK [concrete = constants.%HasK.type] {} {} // CHECK:STDOUT: %L.decl: type = class_decl @L [concrete = constants.%L] {} {} // CHECK:STDOUT: %M.decl: %M.type = fn_decl @M [concrete = constants.%M] { -// CHECK:STDOUT: %l.patt: %pattern_type = value_binding_pattern l [concrete] -// CHECK:STDOUT: %l.param_patt: %pattern_type = value_param_pattern %l.patt [concrete] +// CHECK:STDOUT: %l.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %l.patt: %pattern_type = at_binding_pattern l, %l.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %l.param: %L = value_param call_param0 // CHECK:STDOUT: %L.ref.loc19: type = name_ref L, file.%L.decl [concrete = constants.%L] @@ -994,8 +994,8 @@ fn P(o: O) { // CHECK:STDOUT: %HasN2.decl: type = interface_decl @HasN2 [concrete = constants.%HasN2.type] {} {} // CHECK:STDOUT: %O.decl: type = class_decl @O [concrete = constants.%O] {} {} // CHECK:STDOUT: %P.decl: %P.type = fn_decl @P [concrete = constants.%P] { -// CHECK:STDOUT: %o.patt: %pattern_type = value_binding_pattern o [concrete] -// CHECK:STDOUT: %o.param_patt: %pattern_type = value_param_pattern %o.patt [concrete] +// CHECK:STDOUT: %o.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %o.patt: %pattern_type = at_binding_pattern o, %o.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %o.param: %O = value_param call_param0 // CHECK:STDOUT: %O.ref.loc27: type = name_ref O, file.%O.decl [concrete = constants.%O] diff --git a/toolchain/check/testdata/impl/self_in_class.carbon b/toolchain/check/testdata/impl/self_in_class.carbon index 0556783e05d4..b935895f2ec7 100644 --- a/toolchain/check/testdata/impl/self_in_class.carbon +++ b/toolchain/check/testdata/impl/self_in_class.carbon @@ -71,8 +71,8 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.decl: @DefaultConstructible.WithSelf.%DefaultConstructible.WithSelf.Make.type (%DefaultConstructible.WithSelf.Make.type.17e) = fn_decl @DefaultConstructible.WithSelf.Make [symbolic = @DefaultConstructible.WithSelf.%DefaultConstructible.WithSelf.Make (constants.%DefaultConstructible.WithSelf.Make.cfb)] { -// CHECK:STDOUT: %return.patt: @DefaultConstructible.WithSelf.Make.%pattern_type (%pattern_type.b09) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @DefaultConstructible.WithSelf.Make.%pattern_type (%pattern_type.b09) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @DefaultConstructible.WithSelf.Make.%pattern_type (%pattern_type.b09) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @DefaultConstructible.WithSelf.Make.%pattern_type (%pattern_type.b09) = return_slot_pattern %return.param_patt, %.loc16_16.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: %DefaultConstructible.type = name_ref Self, @DefaultConstructible.%Self [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] @@ -93,8 +93,8 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.DefaultConstructible.impl: %C.ref as %DefaultConstructible.ref { // CHECK:STDOUT: %C.as.DefaultConstructible.impl.Make.decl: %C.as.DefaultConstructible.impl.Make.type = fn_decl @C.as.DefaultConstructible.impl.Make [concrete = constants.%C.as.DefaultConstructible.impl.Make] { -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %Self.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.DefaultConstructible.impl.%C.ref [concrete = constants.%C] // CHECK:STDOUT: %.loc25_18: Core.Form = init_form %Self.ref [concrete = constants.%.a69] diff --git a/toolchain/check/testdata/impl/self_in_signature.carbon b/toolchain/check/testdata/impl/self_in_signature.carbon index aac69ffb3f72..2808abd9a1a8 100644 --- a/toolchain/check/testdata/impl/self_in_signature.carbon +++ b/toolchain/check/testdata/impl/self_in_signature.carbon @@ -149,12 +149,12 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %UseSelf.WithSelf.F.decl: @UseSelf.WithSelf.%UseSelf.WithSelf.F.type (%UseSelf.WithSelf.F.type.ad8) = fn_decl @UseSelf.WithSelf.F [symbolic = @UseSelf.WithSelf.%UseSelf.WithSelf.F (constants.%UseSelf.WithSelf.F.de0)] { -// CHECK:STDOUT: %self.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %x.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = return_slot_pattern %return.param_patt, %.loc16_32.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_32: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.f7b)] // CHECK:STDOUT: %Self.as_type.loc16_32: type = facet_access_type %Self.ref.loc16_32 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e3d)] @@ -193,8 +193,8 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %SelfNested.WithSelf.F.decl: @SelfNested.WithSelf.%SelfNested.WithSelf.F.type (%SelfNested.WithSelf.F.type.430) = fn_decl @SelfNested.WithSelf.F [symbolic = @SelfNested.WithSelf.%SelfNested.WithSelf.F (constants.%SelfNested.WithSelf.F.257)] { -// CHECK:STDOUT: %x.patt: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.fb7) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.fb7) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.fb7) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.fb7) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.cbf) = value_param call_param0 // CHECK:STDOUT: %.loc32_37.1: type = splice_block %.loc32_37.3 [symbolic = %tuple.type (constants.%tuple.type.cbf)] { @@ -225,12 +225,12 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.UseSelf.impl: %C.ref as %UseSelf.ref { // CHECK:STDOUT: %C.as.UseSelf.impl.F.decl: %C.as.UseSelf.impl.F.type = fn_decl @C.as.UseSelf.impl.F [concrete = constants.%C.as.UseSelf.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.7c7 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.7c7 = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.7c7 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref.loc24_40 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc24_40: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc24_40: Core.Form = init_form %C.ref.loc24_40 [concrete = constants.%.a69] @@ -254,12 +254,12 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: impl @D.as.UseSelf.impl: %D.ref as %UseSelf.ref { // CHECK:STDOUT: %D.as.UseSelf.impl.F.decl: %D.as.UseSelf.impl.F.type = fn_decl @D.as.UseSelf.impl.F [concrete = constants.%D.as.UseSelf.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.9c8 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9c8 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.9c8 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.9c8 = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9c8 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9c8 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.9c8 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.9c8 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern %return.param_patt, %Self.ref.loc28_46 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc28_46: type = name_ref Self, @D.as.UseSelf.impl.%D.ref [concrete = constants.%D] // CHECK:STDOUT: %.loc28_46: Core.Form = init_form %Self.ref.loc28_46 [concrete = constants.%.9a5] @@ -282,8 +282,8 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.SelfNested.impl: %C.ref as %SelfNested.ref { // CHECK:STDOUT: %C.as.SelfNested.impl.F.decl: %C.as.SelfNested.impl.F.type = fn_decl @C.as.SelfNested.impl.F [concrete = constants.%C.as.SelfNested.impl.F] { -// CHECK:STDOUT: %x.patt: %pattern_type.137 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.137 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.137 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.137 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %tuple.type.2f1 = value_param call_param0 // CHECK:STDOUT: %.loc36_31.1: type = splice_block %.loc36_31.3 [concrete = constants.%tuple.type.2f1] { @@ -309,8 +309,8 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: impl @D.as.SelfNested.impl: %D.ref as %SelfNested.ref { // CHECK:STDOUT: %D.as.SelfNested.impl.F.decl: %D.as.SelfNested.impl.F.type = fn_decl @D.as.SelfNested.impl.F [concrete = constants.%D.as.SelfNested.impl.F] { -// CHECK:STDOUT: %x.patt: %pattern_type.d05 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.d05 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.d05 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.d05 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %tuple.type.e0d = value_param call_param0 // CHECK:STDOUT: %.loc40_37.1: type = splice_block %.loc40_37.3 [concrete = constants.%tuple.type.e0d] { diff --git a/toolchain/check/testdata/impl/use_assoc_entity.carbon b/toolchain/check/testdata/impl/use_assoc_entity.carbon index e2ad79acc3e8..befac1a66abd 100644 --- a/toolchain/check/testdata/impl/use_assoc_entity.carbon +++ b/toolchain/check/testdata/impl/use_assoc_entity.carbon @@ -475,10 +475,10 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %CallMethod.decl: %CallMethod.type = fn_decl @CallMethod [concrete = constants.%CallMethod] { -// CHECK:STDOUT: %x.patt: %pattern_type.cb1 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.cb1 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc12_25: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -518,12 +518,12 @@ fn F() { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%U [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: } // CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.adb) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.569)] { -// CHECK:STDOUT: %self.patt: @J.WithSelf.F.%pattern_type.loc5_8 (%pattern_type.832) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @J.WithSelf.F.%pattern_type.loc5_8 (%pattern_type.832) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type.loc5_20 (%pattern_type.c1a) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type.loc5_20 (%pattern_type.c1a) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type.loc5_20 (%pattern_type.c1a) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type.loc5_20 (%pattern_type.c1a) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @J.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.832) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.832) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.c1a) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.c1a) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.c1a) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.c1a) = return_slot_pattern %return.param_patt, %U.ref.loc5_29 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %U.ref.loc5_29: type = name_ref U, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] @@ -557,12 +557,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.J.impl: %.loc8_7.2 as %.loc8_14 { // CHECK:STDOUT: %empty_tuple.type.as.J.impl.F.decl: %empty_tuple.type.as.J.impl.F.type = fn_decl @empty_tuple.type.as.J.impl.F [concrete = constants.%empty_tuple.type.as.J.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %u.patt: %pattern_type.7ce = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: %pattern_type.7ce = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %u.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: %pattern_type.7ce = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc9_38 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc9_38: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc9: Core.Form = init_form %i32.loc9_38 [concrete = constants.%.ff5] @@ -586,12 +586,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.J.impl: %C.ref.loc21_6 as %.loc21_13 { // CHECK:STDOUT: %C.as.J.impl.F.decl: %C.as.J.impl.F.type = fn_decl @C.as.J.impl.F [concrete = constants.%C.as.J.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %u.patt: %pattern_type.7c7 = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: %pattern_type.7c7 = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %u.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: %pattern_type.7c7 = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref.loc22_36 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc22_36: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc22_36: Core.Form = init_form %C.ref.loc22_36 [concrete = constants.%.a69] @@ -628,10 +628,10 @@ fn F() { // CHECK:STDOUT: generic fn @J.WithSelf.F(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.8a1)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] -// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.832)] +// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.832)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.89e)] // CHECK:STDOUT: %impl.elem0.loc5_23.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] -// CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %impl.elem0.loc5_23.1 [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.c1a)] +// CHECK:STDOUT: %pattern_type.loc5_21: type = pattern_type %impl.elem0.loc5_23.1 [symbolic = %pattern_type.loc5_21 (constants.%pattern_type.c1a)] // CHECK:STDOUT: %.loc5_29.1: Core.Form = init_form %impl.elem0.loc5_23.1 [symbolic = %.loc5_29.1 (constants.%.77f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @J.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.ed8), %u.param: @J.WithSelf.F.%impl.elem0.loc5_23.1 (%impl.elem0.335)) -> out %return.param: @J.WithSelf.F.%impl.elem0.loc5_23.1 (%impl.elem0.335); @@ -687,10 +687,10 @@ fn F() { // CHECK:STDOUT: specific @J.WithSelf.F(constants.%Self.8a1) { // CHECK:STDOUT: %Self => constants.%Self.8a1 // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.ed8 -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.832 +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.832 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.89e // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.335 -// CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.c1a +// CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.c1a // CHECK:STDOUT: %.loc5_29.1 => constants.%.77f // CHECK:STDOUT: } // CHECK:STDOUT: @@ -711,10 +711,10 @@ fn F() { // CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.a51) { // CHECK:STDOUT: %Self => constants.%J.facet.a51 // CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.cb1 +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.cb1 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.5bf // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.7ce +// CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.7ce // CHECK:STDOUT: %.loc5_29.1 => constants.%.ff5 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -728,10 +728,10 @@ fn F() { // CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.05d) { // CHECK:STDOUT: %Self => constants.%J.facet.05d // CHECK:STDOUT: %Self.binding.as_type => constants.%C -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.7c7 +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.7c7 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.00b // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%C -// CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.7c7 +// CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.7c7 // CHECK:STDOUT: %.loc5_29.1 => constants.%.a69 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -848,8 +848,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %CallFunction.decl: %CallFunction.type = fn_decl @CallFunction [concrete = constants.%CallFunction] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc14: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -867,10 +867,10 @@ fn F() { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%U [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: } // CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.adb) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.569)] { -// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = return_slot_pattern %return.param_patt, %U.ref.loc5_17 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc5_17: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %U.ref.loc5_17: type = name_ref U, %impl.elem0.loc5_17 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.335)] @@ -897,10 +897,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @D.as.J.impl: %D.ref as %.loc10_13 { // CHECK:STDOUT: %D.as.J.impl.F.decl: %D.as.J.impl.F.type = fn_decl @D.as.J.impl.F [concrete = constants.%D.as.J.impl.F] { -// CHECK:STDOUT: %u.patt: %pattern_type.7ce = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: %pattern_type.7ce = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: %pattern_type.7ce = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc11_19 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc11_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc11: Core.Form = init_form %i32.loc11_19 [concrete = constants.%.ff5] @@ -1165,8 +1165,8 @@ fn F() { // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %E.decl: type = class_decl @E [concrete = constants.%E] {} {} // CHECK:STDOUT: %CallBoth.decl: %CallBoth.type = fn_decl @CallBoth [concrete = constants.%CallBoth] { -// CHECK:STDOUT: %e.patt: %pattern_type.99f = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: %pattern_type.99f = value_param_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.param_patt: %pattern_type.99f = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.99f = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %E = value_param call_param0 // CHECK:STDOUT: %E.ref.loc20: type = name_ref E, file.%E.decl [concrete = constants.%E] @@ -1174,12 +1174,12 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %GenericCallF.decl: %GenericCallF.type = fn_decl @GenericCallF [concrete = constants.%GenericCallF] { // CHECK:STDOUT: %T.patt: %pattern_type.f76 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @GenericCallF.%pattern_type.loc28_24 (%pattern_type.14f) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @GenericCallF.%pattern_type.loc28_24 (%pattern_type.14f) = value_param_pattern %t.patt [concrete] -// CHECK:STDOUT: %u.patt: @GenericCallF.%pattern_type.loc28_30 (%pattern_type.ad6) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @GenericCallF.%pattern_type.loc28_30 (%pattern_type.ad6) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @GenericCallF.%pattern_type.loc28_30 (%pattern_type.ad6) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @GenericCallF.%pattern_type.loc28_30 (%pattern_type.ad6) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %t.param_patt: @GenericCallF.%pattern_type.loc28_25 (%pattern_type.14f) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @GenericCallF.%pattern_type.loc28_25 (%pattern_type.14f) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %u.param_patt: @GenericCallF.%pattern_type.loc28_31 (%pattern_type.ad6) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @GenericCallF.%pattern_type.loc28_31 (%pattern_type.ad6) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @GenericCallF.%pattern_type.loc28_31 (%pattern_type.ad6) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @GenericCallF.%pattern_type.loc28_31 (%pattern_type.ad6) = return_slot_pattern %return.param_patt, %impl.elem0.loc28_42 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc28_41: %J.type = name_ref T, %T.loc28_17.2 [symbolic = %T.loc28_17.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc28_42: type = facet_access_type %T.ref.loc28_41 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -1212,10 +1212,10 @@ fn F() { // CHECK:STDOUT: %return: ref @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.560) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGeneric.decl: %CallGeneric.type = fn_decl @CallGeneric [concrete = constants.%CallGeneric] { -// CHECK:STDOUT: %e.patt: %pattern_type.99f = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: %pattern_type.99f = value_param_pattern %e.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %e.param_patt: %pattern_type.99f = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.99f = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc32: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -1236,10 +1236,10 @@ fn F() { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%U [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: } // CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.adb) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.569)] { -// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = return_slot_pattern %return.param_patt, %U.ref.loc5_17 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc5_17: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %U.ref.loc5_17: type = name_ref U, %impl.elem0.loc5_17 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.335)] @@ -1255,12 +1255,12 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, %J.WithSelf.F.decl [concrete = constants.%assoc1.eeb] // CHECK:STDOUT: %J.WithSelf.G.decl: @J.WithSelf.%J.WithSelf.G.type (%J.WithSelf.G.type.ace) = fn_decl @J.WithSelf.G [symbolic = @J.WithSelf.%J.WithSelf.G (constants.%J.WithSelf.G.6e7)] { -// CHECK:STDOUT: %self.patt: @J.WithSelf.G.%pattern_type.loc6_8 (%pattern_type.832) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @J.WithSelf.G.%pattern_type.loc6_8 (%pattern_type.832) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %v.patt: @J.WithSelf.G.%pattern_type.loc6_20 (%pattern_type.c1a) = value_binding_pattern v [concrete] -// CHECK:STDOUT: %v.param_patt: @J.WithSelf.G.%pattern_type.loc6_20 (%pattern_type.c1a) = value_param_pattern %v.patt [concrete] -// CHECK:STDOUT: %return.patt: @J.WithSelf.G.%pattern_type.loc6_20 (%pattern_type.c1a) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @J.WithSelf.G.%pattern_type.loc6_20 (%pattern_type.c1a) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @J.WithSelf.G.%pattern_type.loc6_12 (%pattern_type.832) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J.WithSelf.G.%pattern_type.loc6_12 (%pattern_type.832) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %v.param_patt: @J.WithSelf.G.%pattern_type.loc6_21 (%pattern_type.c1a) = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: @J.WithSelf.G.%pattern_type.loc6_21 (%pattern_type.c1a) = at_binding_pattern v, %v.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @J.WithSelf.G.%pattern_type.loc6_21 (%pattern_type.c1a) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @J.WithSelf.G.%pattern_type.loc6_21 (%pattern_type.c1a) = return_slot_pattern %return.param_patt, %U.ref.loc6_29 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc6_29: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %U.ref.loc6_29: type = name_ref U, %impl.elem0.loc6_29 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.335)] @@ -1295,10 +1295,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @E.as.J.impl: %Self.ref as %.loc10_20 { // CHECK:STDOUT: %E.as.J.impl.F.decl: %E.as.J.impl.F.type = fn_decl @E.as.J.impl.F [concrete = constants.%E.as.J.impl.F] { -// CHECK:STDOUT: %u.patt: %pattern_type.7ce = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: %pattern_type.7ce = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: %pattern_type.7ce = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc11_21 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc11_21: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc11: Core.Form = init_form %i32.loc11_21 [concrete = constants.%.ff5] @@ -1309,12 +1309,12 @@ fn F() { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %E.as.J.impl.G.decl: %E.as.J.impl.G.type = fn_decl @E.as.J.impl.G [concrete = constants.%E.as.J.impl.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.99f = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.99f = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %v.patt: %pattern_type.7ce = value_binding_pattern v [concrete] -// CHECK:STDOUT: %v.param_patt: %pattern_type.7ce = value_param_pattern %v.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.99f = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.99f = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %v.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.7ce = at_binding_pattern v, %v.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc14_40 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc14_40: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc14: Core.Form = init_form %i32.loc14_40 [concrete = constants.%.ff5] @@ -1377,10 +1377,10 @@ fn F() { // CHECK:STDOUT: generic fn @J.WithSelf.G(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.8a1)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] -// CHECK:STDOUT: %pattern_type.loc6_8: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc6_8 (constants.%pattern_type.832)] +// CHECK:STDOUT: %pattern_type.loc6_12: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc6_12 (constants.%pattern_type.832)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.89e)] // CHECK:STDOUT: %impl.elem0.loc6_23.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.335)] -// CHECK:STDOUT: %pattern_type.loc6_20: type = pattern_type %impl.elem0.loc6_23.1 [symbolic = %pattern_type.loc6_20 (constants.%pattern_type.c1a)] +// CHECK:STDOUT: %pattern_type.loc6_21: type = pattern_type %impl.elem0.loc6_23.1 [symbolic = %pattern_type.loc6_21 (constants.%pattern_type.c1a)] // CHECK:STDOUT: %.loc6_29.1: Core.Form = init_form %impl.elem0.loc6_23.1 [symbolic = %.loc6_29.1 (constants.%.77f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @J.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type.ed8), %v.param: @J.WithSelf.G.%impl.elem0.loc6_23.1 (%impl.elem0.335)) -> out %return.param: @J.WithSelf.G.%impl.elem0.loc6_23.1 (%impl.elem0.335); @@ -1516,10 +1516,10 @@ fn F() { // CHECK:STDOUT: generic fn @GenericCallF(%T.loc28_17.2: %J.type) { // CHECK:STDOUT: %T.loc28_17.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc28_17.1 (constants.%T)] // CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc28_17.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc28_24: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc28_24 (constants.%pattern_type.14f)] +// CHECK:STDOUT: %pattern_type.loc28_25: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc28_25 (constants.%pattern_type.14f)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc28_17.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.264)] // CHECK:STDOUT: %impl.elem0.loc28_34.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_34.1 (constants.%impl.elem0.560)] -// CHECK:STDOUT: %pattern_type.loc28_30: type = pattern_type %impl.elem0.loc28_34.1 [symbolic = %pattern_type.loc28_30 (constants.%pattern_type.ad6)] +// CHECK:STDOUT: %pattern_type.loc28_31: type = pattern_type %impl.elem0.loc28_34.1 [symbolic = %pattern_type.loc28_31 (constants.%pattern_type.ad6)] // CHECK:STDOUT: %.loc28_42.2: Core.Form = init_form %impl.elem0.loc28_34.1 [symbolic = %.loc28_42.2 (constants.%.a8e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -1582,10 +1582,10 @@ fn F() { // CHECK:STDOUT: specific @J.WithSelf.G(constants.%Self.8a1) { // CHECK:STDOUT: %Self => constants.%Self.8a1 // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.ed8 -// CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.832 +// CHECK:STDOUT: %pattern_type.loc6_12 => constants.%pattern_type.832 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.89e // CHECK:STDOUT: %impl.elem0.loc6_23.1 => constants.%impl.elem0.335 -// CHECK:STDOUT: %pattern_type.loc6_20 => constants.%pattern_type.c1a +// CHECK:STDOUT: %pattern_type.loc6_21 => constants.%pattern_type.c1a // CHECK:STDOUT: %.loc6_29.1 => constants.%.77f // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1618,10 +1618,10 @@ fn F() { // CHECK:STDOUT: specific @J.WithSelf.G(constants.%J.facet) { // CHECK:STDOUT: %Self => constants.%J.facet // CHECK:STDOUT: %Self.binding.as_type => constants.%E -// CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.99f +// CHECK:STDOUT: %pattern_type.loc6_12 => constants.%pattern_type.99f // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness // CHECK:STDOUT: %impl.elem0.loc6_23.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type.loc6_20 => constants.%pattern_type.7ce +// CHECK:STDOUT: %pattern_type.loc6_21 => constants.%pattern_type.7ce // CHECK:STDOUT: %.loc6_29.1 => constants.%.ff5 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1646,10 +1646,10 @@ fn F() { // CHECK:STDOUT: specific @GenericCallF(constants.%T) { // CHECK:STDOUT: %T.loc28_17.1 => constants.%T // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc28_24 => constants.%pattern_type.14f +// CHECK:STDOUT: %pattern_type.loc28_25 => constants.%pattern_type.14f // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.264 // CHECK:STDOUT: %impl.elem0.loc28_34.1 => constants.%impl.elem0.560 -// CHECK:STDOUT: %pattern_type.loc28_30 => constants.%pattern_type.ad6 +// CHECK:STDOUT: %pattern_type.loc28_31 => constants.%pattern_type.ad6 // CHECK:STDOUT: %.loc28_42.2 => constants.%.a8e // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1664,10 +1664,10 @@ fn F() { // CHECK:STDOUT: specific @GenericCallF(constants.%J.facet) { // CHECK:STDOUT: %T.loc28_17.1 => constants.%J.facet // CHECK:STDOUT: %T.binding.as_type => constants.%E -// CHECK:STDOUT: %pattern_type.loc28_24 => constants.%pattern_type.99f +// CHECK:STDOUT: %pattern_type.loc28_25 => constants.%pattern_type.99f // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness // CHECK:STDOUT: %impl.elem0.loc28_34.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type.loc28_30 => constants.%pattern_type.7ce +// CHECK:STDOUT: %pattern_type.loc28_31 => constants.%pattern_type.7ce // CHECK:STDOUT: %.loc28_42.2 => constants.%.ff5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -1766,12 +1766,12 @@ fn F() { // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %GenericResult.decl: %GenericResult.type = fn_decl @GenericResult [concrete = constants.%GenericResult] { // CHECK:STDOUT: %T.patt: %pattern_type.f76 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @GenericResult.%pattern_type.loc12_25 (%pattern_type.14f) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @GenericResult.%pattern_type.loc12_25 (%pattern_type.14f) = value_param_pattern %t.patt [concrete] -// CHECK:STDOUT: %u.patt: @GenericResult.%pattern_type.loc12_31 (%pattern_type.bba) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @GenericResult.%pattern_type.loc12_31 (%pattern_type.bba) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @GenericResult.%pattern_type.loc12_31 (%pattern_type.bba) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @GenericResult.%pattern_type.loc12_31 (%pattern_type.bba) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %t.param_patt: @GenericResult.%pattern_type.loc12_26 (%pattern_type.14f) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @GenericResult.%pattern_type.loc12_26 (%pattern_type.14f) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %u.param_patt: @GenericResult.%pattern_type.loc12_32 (%pattern_type.bba) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @GenericResult.%pattern_type.loc12_32 (%pattern_type.bba) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @GenericResult.%pattern_type.loc12_32 (%pattern_type.bba) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @GenericResult.%pattern_type.loc12_32 (%pattern_type.bba) = return_slot_pattern %return.param_patt, %.loc12_43.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc12_42: %J.type = name_ref T, %T.loc12_18.2 [symbolic = %T.loc12_18.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc12_43: type = facet_access_type %T.ref.loc12_42 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -1815,12 +1815,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.Op.decl: @I.WithSelf.%I.WithSelf.Op.type (%I.WithSelf.Op.type.71c) = fn_decl @I.WithSelf.Op [symbolic = @I.WithSelf.%I.WithSelf.Op (constants.%I.WithSelf.Op.ae1)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %b.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = return_slot_pattern %return.param_patt, %.loc4_33.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc4_33: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.ab9)] // CHECK:STDOUT: %Self.as_type.loc4_33: type = facet_access_type %Self.ref.loc4_33 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] @@ -1862,10 +1862,10 @@ fn F() { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%U [concrete = constants.%assoc0.445] // CHECK:STDOUT: } // CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.adb) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.569)] { -// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type (%pattern_type.d76) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.d76) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type (%pattern_type.d76) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.d76) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.d76) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type (%pattern_type.d76) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.d76) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type (%pattern_type.d76) = return_slot_pattern %return.param_patt, %.loc9_17.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc9_17: %facet_type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc9_11.1 (constants.%impl.elem0.193)] // CHECK:STDOUT: %U.ref.loc9_17: %facet_type = name_ref U, %impl.elem0.loc9_17 [symbolic = %impl.elem0.loc9_11.1 (constants.%impl.elem0.193)] @@ -1919,11 +1919,11 @@ fn F() { // CHECK:STDOUT: generic fn @GenericResult(%T.loc12_18.2: %J.type) { // CHECK:STDOUT: %T.loc12_18.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc12_18.1 (constants.%T)] // CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc12_18.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc12_25: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc12_25 (constants.%pattern_type.14f)] +// CHECK:STDOUT: %pattern_type.loc12_26: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc12_26 (constants.%pattern_type.14f)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc12_18.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.264)] // CHECK:STDOUT: %impl.elem0.loc12_35.1: %facet_type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.397)] // CHECK:STDOUT: %as_type.loc12_35.1: type = facet_access_type %impl.elem0.loc12_35.1 [symbolic = %as_type.loc12_35.1 (constants.%as_type.baf)] -// CHECK:STDOUT: %pattern_type.loc12_31: type = pattern_type %as_type.loc12_35.1 [symbolic = %pattern_type.loc12_31 (constants.%pattern_type.bba)] +// CHECK:STDOUT: %pattern_type.loc12_32: type = pattern_type %as_type.loc12_35.1 [symbolic = %pattern_type.loc12_32 (constants.%pattern_type.bba)] // CHECK:STDOUT: %.loc12_43.2: Core.Form = init_form %as_type.loc12_35.1 [symbolic = %.loc12_43.2 (constants.%.076)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -2034,11 +2034,11 @@ fn F() { // CHECK:STDOUT: specific @GenericResult(constants.%T) { // CHECK:STDOUT: %T.loc12_18.1 => constants.%T // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc12_25 => constants.%pattern_type.14f +// CHECK:STDOUT: %pattern_type.loc12_26 => constants.%pattern_type.14f // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.264 // CHECK:STDOUT: %impl.elem0.loc12_35.1 => constants.%impl.elem0.397 // CHECK:STDOUT: %as_type.loc12_35.1 => constants.%as_type.baf -// CHECK:STDOUT: %pattern_type.loc12_31 => constants.%pattern_type.bba +// CHECK:STDOUT: %pattern_type.loc12_32 => constants.%pattern_type.bba // CHECK:STDOUT: %.loc12_43.2 => constants.%.076 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2119,12 +2119,12 @@ fn F() { // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %GenericCallInterfaceQualified.decl: %GenericCallInterfaceQualified.type = fn_decl @GenericCallInterfaceQualified [concrete = constants.%GenericCallInterfaceQualified] { // CHECK:STDOUT: %T.patt: %pattern_type.f76 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_41 (%pattern_type.14f) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_41 (%pattern_type.14f) = value_param_pattern %t.patt [concrete] -// CHECK:STDOUT: %u.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_47 (%pattern_type.ad6) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_47 (%pattern_type.ad6) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_47 (%pattern_type.ad6) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_47 (%pattern_type.ad6) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %t.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_42 (%pattern_type.14f) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_42 (%pattern_type.14f) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %u.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_48 (%pattern_type.ad6) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_48 (%pattern_type.ad6) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_48 (%pattern_type.ad6) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_48 (%pattern_type.ad6) = return_slot_pattern %return.param_patt, %impl.elem0.loc8_59 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc8_58: %J.type = name_ref T, %T.loc8_34.2 [symbolic = %T.loc8_34.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc8_59: type = facet_access_type %T.ref.loc8_58 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] @@ -2167,12 +2167,12 @@ fn F() { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%U [concrete = constants.%assoc0] // CHECK:STDOUT: } // CHECK:STDOUT: %J.WithSelf.G.decl: @J.WithSelf.%J.WithSelf.G.type (%J.WithSelf.G.type.ace) = fn_decl @J.WithSelf.G [symbolic = @J.WithSelf.%J.WithSelf.G (constants.%J.WithSelf.G.6e7)] { -// CHECK:STDOUT: %self.patt: @J.WithSelf.G.%pattern_type.loc5_8 (%pattern_type.832) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @J.WithSelf.G.%pattern_type.loc5_8 (%pattern_type.832) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %v.patt: @J.WithSelf.G.%pattern_type.loc5_20 (%pattern_type.c1a) = value_binding_pattern v [concrete] -// CHECK:STDOUT: %v.param_patt: @J.WithSelf.G.%pattern_type.loc5_20 (%pattern_type.c1a) = value_param_pattern %v.patt [concrete] -// CHECK:STDOUT: %return.patt: @J.WithSelf.G.%pattern_type.loc5_20 (%pattern_type.c1a) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @J.WithSelf.G.%pattern_type.loc5_20 (%pattern_type.c1a) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @J.WithSelf.G.%pattern_type.loc5_12 (%pattern_type.832) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J.WithSelf.G.%pattern_type.loc5_12 (%pattern_type.832) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %v.param_patt: @J.WithSelf.G.%pattern_type.loc5_21 (%pattern_type.c1a) = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: @J.WithSelf.G.%pattern_type.loc5_21 (%pattern_type.c1a) = at_binding_pattern v, %v.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @J.WithSelf.G.%pattern_type.loc5_21 (%pattern_type.c1a) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @J.WithSelf.G.%pattern_type.loc5_21 (%pattern_type.c1a) = return_slot_pattern %return.param_patt, %U.ref.loc5_29 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %U.ref.loc5_29: type = name_ref U, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] @@ -2207,10 +2207,10 @@ fn F() { // CHECK:STDOUT: generic fn @J.WithSelf.G(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.832)] +// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.832)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.89e)] // CHECK:STDOUT: %impl.elem0.loc5_23.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] -// CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %impl.elem0.loc5_23.1 [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.c1a)] +// CHECK:STDOUT: %pattern_type.loc5_21: type = pattern_type %impl.elem0.loc5_23.1 [symbolic = %pattern_type.loc5_21 (constants.%pattern_type.c1a)] // CHECK:STDOUT: %.loc5_29.1: Core.Form = init_form %impl.elem0.loc5_23.1 [symbolic = %.loc5_29.1 (constants.%.77f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @J.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type), %v.param: @J.WithSelf.G.%impl.elem0.loc5_23.1 (%impl.elem0.335)) -> out %return.param: @J.WithSelf.G.%impl.elem0.loc5_23.1 (%impl.elem0.335); @@ -2219,10 +2219,10 @@ fn F() { // CHECK:STDOUT: generic fn @GenericCallInterfaceQualified(%T.loc8_34.2: %J.type) { // CHECK:STDOUT: %T.loc8_34.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc8_34.1 (constants.%T)] // CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_34.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc8_41: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc8_41 (constants.%pattern_type.14f)] +// CHECK:STDOUT: %pattern_type.loc8_42: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc8_42 (constants.%pattern_type.14f)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_34.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.264)] // CHECK:STDOUT: %impl.elem0.loc8_51.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_51.1 (constants.%impl.elem0.560)] -// CHECK:STDOUT: %pattern_type.loc8_47: type = pattern_type %impl.elem0.loc8_51.1 [symbolic = %pattern_type.loc8_47 (constants.%pattern_type.ad6)] +// CHECK:STDOUT: %pattern_type.loc8_48: type = pattern_type %impl.elem0.loc8_51.1 [symbolic = %pattern_type.loc8_48 (constants.%pattern_type.ad6)] // CHECK:STDOUT: %.loc8_59.2: Core.Form = init_form %impl.elem0.loc8_51.1 [symbolic = %.loc8_59.2 (constants.%.a8e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -2259,10 +2259,10 @@ fn F() { // CHECK:STDOUT: specific @J.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.832 +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.832 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.89e // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.335 -// CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.c1a +// CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.c1a // CHECK:STDOUT: %.loc5_29.1 => constants.%.77f // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2276,20 +2276,20 @@ fn F() { // CHECK:STDOUT: specific @GenericCallInterfaceQualified(constants.%T) { // CHECK:STDOUT: %T.loc8_34.1 => constants.%T // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc8_41 => constants.%pattern_type.14f +// CHECK:STDOUT: %pattern_type.loc8_42 => constants.%pattern_type.14f // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.264 // CHECK:STDOUT: %impl.elem0.loc8_51.1 => constants.%impl.elem0.560 -// CHECK:STDOUT: %pattern_type.loc8_47 => constants.%pattern_type.ad6 +// CHECK:STDOUT: %pattern_type.loc8_48 => constants.%pattern_type.ad6 // CHECK:STDOUT: %.loc8_59.2 => constants.%.a8e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.G(constants.%T) { // CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.14f +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.14f // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.264 // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.560 -// CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.ad6 +// CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.ad6 // CHECK:STDOUT: %.loc5_29.1 => constants.%.a8e // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2380,10 +2380,10 @@ fn F() { // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %GenericCallFI32.decl: %GenericCallFI32.type = fn_decl @GenericCallFI32 [concrete = constants.%GenericCallFI32] { // CHECK:STDOUT: %T.patt: %pattern_type.6f0 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @GenericCallFI32.%pattern_type (%pattern_type.12a) = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @GenericCallFI32.%pattern_type (%pattern_type.12a) = value_param_pattern %t.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %t.param_patt: @GenericCallFI32.%pattern_type (%pattern_type.12a) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @GenericCallFI32.%pattern_type (%pattern_type.12a) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc8_51 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc8_51: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8_51: Core.Form = init_form %i32.loc8_51 [concrete = constants.%.ff5] @@ -2424,10 +2424,10 @@ fn F() { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%U [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: } // CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.adb) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.569)] { -// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = return_slot_pattern %return.param_patt, %U.ref.loc5_17 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc5_17: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %U.ref.loc5_17: type = name_ref U, %impl.elem0.loc5_17 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.335)] @@ -2618,10 +2618,10 @@ fn F() { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%U [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: } // CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.adb) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.569)] { -// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type (%pattern_type.c1a) = return_slot_pattern %return.param_patt, %U.ref.loc5_17 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc5_17: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %U.ref.loc5_17: type = name_ref U, %impl.elem0.loc5_17 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.335)] @@ -2648,8 +2648,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @E.as.J.impl: %Self.ref as %.loc9_20 { // CHECK:STDOUT: %E.as.J.impl.F.decl.loc27_21.1: %E.as.J.impl.F.type.4b5c2a.1 = fn_decl @E.as.J.impl.F.loc27_21.1 [concrete = constants.%E.as.J.impl.F.b4e6ab.1] { -// CHECK:STDOUT: %u.patt: = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: = value_param_pattern %u.patt [concrete] +// CHECK:STDOUT: %u.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: = at_binding_pattern u, %u.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc27_19: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: %.loc27_19: type = converted %U.ref.loc27_19, [concrete = ] @@ -2658,15 +2658,15 @@ fn F() { // CHECK:STDOUT: %U.ref.loc27_13: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: %.loc27_13: type = converted %U.ref.loc27_13, [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %u: = value_binding u, %u.param +// CHECK:STDOUT: %u: = value_binding u, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc5_17.1: type = specific_constant @J.WithSelf.F.%U.ref.loc5_17, @J.WithSelf.F(constants.%J.facet) [concrete = constants.%i32] // CHECK:STDOUT: %.loc5_17.2: type = specific_constant @J.WithSelf.F.%.loc5_17.2, @J.WithSelf.F(constants.%J.facet) [concrete = constants.%.ff5] // CHECK:STDOUT: %E.as.J.impl.F.decl.loc27_21.2: %E.as.J.impl.F.type.4b5c2a.2 = fn_decl @E.as.J.impl.F.loc27_21.2 [concrete = constants.%E.as.J.impl.F.b4e6ab.2] { -// CHECK:STDOUT: %u.patt: %pattern_type.7ce = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: %pattern_type.7ce = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: %pattern_type.7ce = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, invalid [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %u.param: %i32 = value_param call_param0 // CHECK:STDOUT: %u: %i32 = value_binding u, %u.param @@ -2721,7 +2721,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: fn @E.as.J.impl.F.loc27_21.1(%u.param: ) -> { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %u.ref: = name_ref u, %u +// CHECK:STDOUT: %u.ref: = name_ref u, %u [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2948,8 +2948,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.adb) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.569)] { -// CHECK:STDOUT: %self.patt: @J.WithSelf.F.%pattern_type (%pattern_type.832) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.832) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.832) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J.WithSelf.F.%pattern_type (%pattern_type.832) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @J.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc4_21.1: type = splice_block %.loc4_21.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -2971,8 +2971,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @E.as.J.impl: %Self.ref as %J.ref { // CHECK:STDOUT: %E.as.J.impl.F.decl: %E.as.J.impl.F.type = fn_decl @E.as.J.impl.F [concrete = constants.%E.as.J.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.99f = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.99f = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.99f = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.99f = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %E = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%E [concrete = constants.%E] @@ -2992,8 +2992,8 @@ fn F() { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } // CHECK:STDOUT: %E.G.decl: %E.G.type = fn_decl @E.G [concrete = constants.%E.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.99f = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.99f = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.99f = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.99f = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %E = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%E [concrete = constants.%E] @@ -3302,10 +3302,10 @@ fn F() { // CHECK:STDOUT: %assoc0: %J2.assoc_type = assoc_entity element0, @J2.WithSelf.%U2 [concrete = constants.%assoc0] // CHECK:STDOUT: } // CHECK:STDOUT: %J2.WithSelf.F.decl: @J2.WithSelf.%J2.WithSelf.F.type (%J2.WithSelf.F.type.68c) = fn_decl @J2.WithSelf.F [symbolic = @J2.WithSelf.%J2.WithSelf.F (constants.%J2.WithSelf.F.643)] { -// CHECK:STDOUT: %self.patt: @J2.WithSelf.F.%pattern_type (%pattern_type.21d) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @J2.WithSelf.F.%pattern_type (%pattern_type.21d) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %z.patt: = value_binding_pattern z [concrete] -// CHECK:STDOUT: %z.param_patt: = value_param_pattern %z.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @J2.WithSelf.F.%pattern_type (%pattern_type.21d) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J2.WithSelf.F.%pattern_type (%pattern_type.21d) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %z.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %z.patt: = at_binding_pattern z, %z.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc19_35: %J2.type = name_ref Self, @J2.%Self [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc19_39: type = facet_access_type %Self.ref.loc19_35 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] @@ -3325,7 +3325,7 @@ fn F() { // CHECK:STDOUT: %.loc19_27: type = converted %Self.ref.loc19_23, %Self.as_type.loc19_27 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] // CHECK:STDOUT: %U2.ref.loc19_27: = name_ref U2, [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %z: = value_binding z, %z.param +// CHECK:STDOUT: %z: = value_binding z, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %J2.assoc_type = assoc_entity element1, %J2.WithSelf.F.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -3340,12 +3340,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.J2.impl: %.loc22_7.2 as %.loc22_15 { // CHECK:STDOUT: %empty_tuple.type.as.J2.impl.F.decl.loc23_40.1: %empty_tuple.type.as.J2.impl.F.type.56bdaf.1 = fn_decl @empty_tuple.type.as.J2.impl.F.loc23_40.1 [concrete = constants.%empty_tuple.type.as.J2.impl.F.7b8679.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %z.patt: %pattern_type.a96 = value_binding_pattern z [concrete] -// CHECK:STDOUT: %z.param_patt: %pattern_type.a96 = value_param_pattern %z.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %z.param_patt: %pattern_type.a96 = value_param_pattern [concrete] +// CHECK:STDOUT: %z.patt: %pattern_type.a96 = at_binding_pattern z, %z.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern %return.param_patt, %.loc23_38.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc23_38.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc23_38.2: type = converted %.loc23_38.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -3365,8 +3365,8 @@ fn F() { // CHECK:STDOUT: %.1: type = specific_constant , @J2.WithSelf.F(constants.%J2.facet.6c9) [concrete = ] // CHECK:STDOUT: %.2: type = specific_constant , @J2.WithSelf.F(constants.%J2.facet.6c9) [concrete = ] // CHECK:STDOUT: %empty_tuple.type.as.J2.impl.F.decl.loc23_40.2: %empty_tuple.type.as.J2.impl.F.type.56bdaf.2 = fn_decl @empty_tuple.type.as.J2.impl.F.loc23_40.2 [concrete = constants.%empty_tuple.type.as.J2.impl.F.7b8679.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %self: %empty_tuple.type = value_binding self, %self.param @@ -3382,12 +3382,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @C2.as.J2.impl: %C2.ref.loc31_6 as %.loc31_15 { // CHECK:STDOUT: %C2.as.J2.impl.F.decl.loc32_40.1: %C2.as.J2.impl.F.type.d2a210.1 = fn_decl @C2.as.J2.impl.F.loc32_40.1 [concrete = constants.%C2.as.J2.impl.F.720bb2.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.8df = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.8df = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %z.patt: %pattern_type.8df = value_binding_pattern z [concrete] -// CHECK:STDOUT: %z.param_patt: %pattern_type.8df = value_param_pattern %z.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.8df = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.8df = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.8df = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.8df = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %z.param_patt: %pattern_type.8df = value_param_pattern [concrete] +// CHECK:STDOUT: %z.patt: %pattern_type.8df = at_binding_pattern z, %z.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.8df = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.8df = return_slot_pattern %return.param_patt, %C2.ref.loc32_37 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C2.ref.loc32_37: type = name_ref C2, file.%C2.decl [concrete = constants.%C2] // CHECK:STDOUT: %.loc32_37: Core.Form = init_form %C2.ref.loc32_37 [concrete = constants.%.d4c] @@ -3403,8 +3403,8 @@ fn F() { // CHECK:STDOUT: %.1: type = specific_constant , @J2.WithSelf.F(constants.%J2.facet.f19) [concrete = ] // CHECK:STDOUT: %.2: type = specific_constant , @J2.WithSelf.F(constants.%J2.facet.f19) [concrete = ] // CHECK:STDOUT: %C2.as.J2.impl.F.decl.loc32_40.2: %C2.as.J2.impl.F.type.d2a210.2 = fn_decl @C2.as.J2.impl.F.loc32_40.2 [concrete = constants.%C2.as.J2.impl.F.720bb2.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.8df = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.8df = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.8df = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.8df = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C2 = value_param call_param0 // CHECK:STDOUT: %self: %C2 = value_binding self, %self.param @@ -3611,12 +3611,12 @@ fn F() { // CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, @K.WithSelf.%V [concrete = constants.%assoc0.6cb] // CHECK:STDOUT: } // CHECK:STDOUT: %K.WithSelf.F.decl: @K.WithSelf.%K.WithSelf.F.type (%K.WithSelf.F.type.d74) = fn_decl @K.WithSelf.F [symbolic = @K.WithSelf.%K.WithSelf.F (constants.%K.WithSelf.F.f53)] { -// CHECK:STDOUT: %self.patt: @K.WithSelf.F.%pattern_type.loc8_8 (%pattern_type.bcd) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @K.WithSelf.F.%pattern_type.loc8_8 (%pattern_type.bcd) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %v.patt: @K.WithSelf.F.%pattern_type.loc8_20 (%pattern_type.9fa) = value_binding_pattern v [concrete] -// CHECK:STDOUT: %v.param_patt: @K.WithSelf.F.%pattern_type.loc8_20 (%pattern_type.9fa) = value_param_pattern %v.patt [concrete] -// CHECK:STDOUT: %return.patt: @K.WithSelf.F.%pattern_type.loc8_20 (%pattern_type.9fa) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @K.WithSelf.F.%pattern_type.loc8_20 (%pattern_type.9fa) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @K.WithSelf.F.%pattern_type.loc8_12 (%pattern_type.bcd) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @K.WithSelf.F.%pattern_type.loc8_12 (%pattern_type.bcd) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %v.param_patt: @K.WithSelf.F.%pattern_type.loc8_21 (%pattern_type.9fa) = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: @K.WithSelf.F.%pattern_type.loc8_21 (%pattern_type.9fa) = at_binding_pattern v, %v.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @K.WithSelf.F.%pattern_type.loc8_21 (%pattern_type.9fa) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @K.WithSelf.F.%pattern_type.loc8_21 (%pattern_type.9fa) = return_slot_pattern %return.param_patt, %V.ref.loc8_29 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc8_29: type = impl_witness_access constants.%K.lookup_impl_witness.a24, element0 [symbolic = %impl.elem0.loc8_23.1 (constants.%impl.elem0.c23)] // CHECK:STDOUT: %V.ref.loc8_29: type = name_ref V, %impl.elem0.loc8_29 [symbolic = %impl.elem0.loc8_23.1 (constants.%impl.elem0.c23)] @@ -3650,12 +3650,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.K.impl: %.loc11_7.2 as %.loc11_14 { // CHECK:STDOUT: %empty_tuple.type.as.K.impl.F.decl.loc26_52.1: %empty_tuple.type.as.K.impl.F.type.1710d5.1 = fn_decl @empty_tuple.type.as.K.impl.F.loc26_52.1 [concrete = constants.%empty_tuple.type.as.K.impl.F.907e52.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %v.patt: %pattern_type.414 = value_binding_pattern v [concrete] -// CHECK:STDOUT: %v.param_patt: %pattern_type.414 = value_param_pattern %v.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.414 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.414 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %v.param_patt: %pattern_type.414 = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.414 = at_binding_pattern v, %v.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.414 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.414 = return_slot_pattern %return.param_patt, %struct_type.x.loc26_50 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc26_49.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc26_49.2: type = converted %.loc26_49.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -3677,12 +3677,12 @@ fn F() { // CHECK:STDOUT: %.loc8_29.1: type = specific_constant @K.WithSelf.F.%V.ref.loc8_29, @K.WithSelf.F(constants.%K.facet) [concrete = constants.%struct_type.a] // CHECK:STDOUT: %.loc8_29.2: type = specific_constant @K.WithSelf.F.%.loc8_29.2, @K.WithSelf.F(constants.%K.facet) [concrete = constants.%.4f9] // CHECK:STDOUT: %empty_tuple.type.as.K.impl.F.decl.loc26_52.2: %empty_tuple.type.as.K.impl.F.type.1710d5.2 = fn_decl @empty_tuple.type.as.K.impl.F.loc26_52.2 [concrete = constants.%empty_tuple.type.as.K.impl.F.907e52.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %v.patt: %pattern_type.e85 = value_binding_pattern v [concrete] -// CHECK:STDOUT: %v.param_patt: %pattern_type.e85 = value_param_pattern %v.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.e85 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.e85 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %v.param_patt: %pattern_type.e85 = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.e85 = at_binding_pattern v, %v.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.e85 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.e85 = return_slot_pattern %return.param_patt, invalid [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %self: %empty_tuple.type = value_binding self, %self.param @@ -3703,10 +3703,10 @@ fn F() { // CHECK:STDOUT: generic fn @K.WithSelf.F(@K.%Self: %K.type) { // CHECK:STDOUT: %Self: %K.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.44d)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.87a)] -// CHECK:STDOUT: %pattern_type.loc8_8: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc8_8 (constants.%pattern_type.bcd)] +// CHECK:STDOUT: %pattern_type.loc8_12: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc8_12 (constants.%pattern_type.bcd)] // CHECK:STDOUT: %K.lookup_impl_witness: = lookup_impl_witness %Self, @K [symbolic = %K.lookup_impl_witness (constants.%K.lookup_impl_witness.a24)] // CHECK:STDOUT: %impl.elem0.loc8_23.1: type = impl_witness_access %K.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_23.1 (constants.%impl.elem0.c23)] -// CHECK:STDOUT: %pattern_type.loc8_20: type = pattern_type %impl.elem0.loc8_23.1 [symbolic = %pattern_type.loc8_20 (constants.%pattern_type.9fa)] +// CHECK:STDOUT: %pattern_type.loc8_21: type = pattern_type %impl.elem0.loc8_23.1 [symbolic = %pattern_type.loc8_21 (constants.%pattern_type.9fa)] // CHECK:STDOUT: %.loc8_29.1: Core.Form = init_form %impl.elem0.loc8_23.1 [symbolic = %.loc8_29.1 (constants.%.c1a)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @K.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.87a), %v.param: @K.WithSelf.F.%impl.elem0.loc8_23.1 (%impl.elem0.c23)) -> out %return.param: @K.WithSelf.F.%impl.elem0.loc8_23.1 (%impl.elem0.c23); @@ -3750,10 +3750,10 @@ fn F() { // CHECK:STDOUT: specific @K.WithSelf.F(constants.%Self.44d) { // CHECK:STDOUT: %Self => constants.%Self.44d // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.87a -// CHECK:STDOUT: %pattern_type.loc8_8 => constants.%pattern_type.bcd +// CHECK:STDOUT: %pattern_type.loc8_12 => constants.%pattern_type.bcd // CHECK:STDOUT: %K.lookup_impl_witness => constants.%K.lookup_impl_witness.a24 // CHECK:STDOUT: %impl.elem0.loc8_23.1 => constants.%impl.elem0.c23 -// CHECK:STDOUT: %pattern_type.loc8_20 => constants.%pattern_type.9fa +// CHECK:STDOUT: %pattern_type.loc8_21 => constants.%pattern_type.9fa // CHECK:STDOUT: %.loc8_29.1 => constants.%.c1a // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3774,10 +3774,10 @@ fn F() { // CHECK:STDOUT: specific @K.WithSelf.F(constants.%K.facet) { // CHECK:STDOUT: %Self => constants.%K.facet // CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type -// CHECK:STDOUT: %pattern_type.loc8_8 => constants.%pattern_type.cb1 +// CHECK:STDOUT: %pattern_type.loc8_12 => constants.%pattern_type.cb1 // CHECK:STDOUT: %K.lookup_impl_witness => constants.%K.impl_witness // CHECK:STDOUT: %impl.elem0.loc8_23.1 => constants.%struct_type.a -// CHECK:STDOUT: %pattern_type.loc8_20 => constants.%pattern_type.e85 +// CHECK:STDOUT: %pattern_type.loc8_21 => constants.%pattern_type.e85 // CHECK:STDOUT: %.loc8_29.1 => constants.%.4f9 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3860,8 +3860,8 @@ fn F() { // CHECK:STDOUT: %assoc0: %M.assoc_type = assoc_entity element0, @M.WithSelf.%Z [concrete = constants.%assoc0] // CHECK:STDOUT: } // CHECK:STDOUT: %M.WithSelf.G.decl: @M.WithSelf.%M.WithSelf.G.type (%M.WithSelf.G.type.e2f) = fn_decl @M.WithSelf.G [symbolic = @M.WithSelf.%M.WithSelf.G (constants.%M.WithSelf.G.020)] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc5_14.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_14.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc5_14.2: type = converted %.loc5_14.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -3882,8 +3882,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.M.impl: %.loc8_7.2 as %.loc8_14 { // CHECK:STDOUT: %empty_tuple.type.as.M.impl.G.decl: %empty_tuple.type.as.M.impl.G.type = fn_decl @empty_tuple.type.as.M.impl.G [concrete = constants.%empty_tuple.type.as.M.impl.G] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc9_14.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_14.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_14.2: type = converted %.loc9_14.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -4092,8 +4092,8 @@ fn F() { // CHECK:STDOUT: %assoc0: %M.assoc_type = assoc_entity element0, @M.WithSelf.%Z [concrete = constants.%assoc0.ed2] // CHECK:STDOUT: } // CHECK:STDOUT: %M.WithSelf.G.decl: @M.WithSelf.%M.WithSelf.G.type (%M.WithSelf.G.type.e2f) = fn_decl @M.WithSelf.G [symbolic = @M.WithSelf.%M.WithSelf.G (constants.%M.WithSelf.G.020)] { -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc7_13.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_13.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc7_13.2: Core.Form = init_form %.loc7_13.1 [concrete = constants.%.805] @@ -4113,8 +4113,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.M.impl.20d: %C as %.loc10_17 { // CHECK:STDOUT: %C.as.M.impl.G.decl: %C.as.M.impl.G.type.107 = fn_decl @C.as.M.impl.G.loc11 [concrete = constants.%C.as.M.impl.G.eb6] { -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc11_13.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_13.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc11_13.2: Core.Form = init_form %.loc11_13.1 [concrete = constants.%.805] @@ -4133,8 +4133,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.M.impl.243: %C as %.loc16_17 { // CHECK:STDOUT: %C.as.M.impl.G.decl: %C.as.M.impl.G.type.52d = fn_decl @C.as.M.impl.G.loc17 [concrete = constants.%C.as.M.impl.G.973] { -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc17_13.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_13.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc17_13.2: Core.Form = init_form %.loc17_13.1 [concrete = constants.%.805] @@ -4404,10 +4404,10 @@ fn F() { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%N [concrete = constants.%assoc0.d72] // CHECK:STDOUT: } // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.08c) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.705)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type.loc5_8 (%pattern_type.fa0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type.loc5_8 (%pattern_type.fa0) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type.loc5_22 (%pattern_type.3e2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type.loc5_22 (%pattern_type.3e2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.fa0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type.loc5_38 (%pattern_type.3e2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type.loc5_38 (%pattern_type.3e2) = return_slot_pattern %return.param_patt, %array_type.loc5_38.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_31: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %impl.elem0.loc5_37.2: %i32 = impl_witness_access constants.%I.lookup_impl_witness.3ae, element0 [symbolic = %impl.elem0.loc5_37.1 (constants.%impl.elem0.f83)] @@ -4444,10 +4444,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %.loc8_14 { // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl: %empty_tuple.type.as.I.impl.F.type = fn_decl @empty_tuple.type.as.I.impl.F [concrete = constants.%empty_tuple.type.as.I.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.5d5 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.5d5 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.5d5 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.5d5 = return_slot_pattern %return.param_patt, %array_type [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_38: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -4471,7 +4471,7 @@ fn F() { // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.ab9)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.fa0)] +// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.fa0)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness.3ae)] // CHECK:STDOUT: %impl.elem0.loc5_37.1: %i32 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_37.1 (constants.%impl.elem0.f83)] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %impl.elem0.loc5_37.1, constants.%Int.as.ImplicitAs.impl.Convert.dd4 [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound.0e7)] @@ -4479,7 +4479,7 @@ fn F() { // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc5_37.1: init Core.IntLiteral = call %bound_method.loc5_37.1(%impl.elem0.loc5_37.1) [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc5_37.1 (constants.%Int.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %array_type.loc5_38.1: type = array_type %Int.as.ImplicitAs.impl.Convert.call.loc5_37.1, bool [symbolic = %array_type.loc5_38.1 (constants.%array_type.d35)] // CHECK:STDOUT: %.loc5_38.1: Core.Form = init_form %array_type.loc5_38.1 [symbolic = %.loc5_38.1 (constants.%.c07)] -// CHECK:STDOUT: %pattern_type.loc5_22: type = pattern_type %array_type.loc5_38.1 [symbolic = %pattern_type.loc5_22 (constants.%pattern_type.3e2)] +// CHECK:STDOUT: %pattern_type.loc5_38: type = pattern_type %array_type.loc5_38.1 [symbolic = %pattern_type.loc5_38 (constants.%pattern_type.3e2)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31)) -> out %return.param: @I.WithSelf.F.%array_type.loc5_38.1 (%array_type.d35); // CHECK:STDOUT: } @@ -4516,7 +4516,7 @@ fn F() { // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.ab9) { // CHECK:STDOUT: %Self => constants.%Self.ab9 // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.d31 -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.fa0 +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.fa0 // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.lookup_impl_witness.3ae // CHECK:STDOUT: %impl.elem0.loc5_37.1 => constants.%impl.elem0.f83 // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound => constants.%Int.as.ImplicitAs.impl.Convert.bound.0e7 @@ -4524,7 +4524,7 @@ fn F() { // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc5_37.1 => constants.%Int.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %array_type.loc5_38.1 => constants.%array_type.d35 // CHECK:STDOUT: %.loc5_38.1 => constants.%.c07 -// CHECK:STDOUT: %pattern_type.loc5_22 => constants.%pattern_type.3e2 +// CHECK:STDOUT: %pattern_type.loc5_38 => constants.%pattern_type.3e2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%.Self) { @@ -4544,7 +4544,7 @@ fn F() { // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.cb1 +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.cb1 // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness // CHECK:STDOUT: %impl.elem0.loc5_37.1 => constants.%int_2.ef8 // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound => constants.%Int.as.ImplicitAs.impl.Convert.bound.075 @@ -4552,7 +4552,7 @@ fn F() { // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc5_37.1 => constants.%int_2.ecc // CHECK:STDOUT: %array_type.loc5_38.1 => constants.%array_type.c9b // CHECK:STDOUT: %.loc5_38.1 => constants.%.8b3 -// CHECK:STDOUT: %pattern_type.loc5_22 => constants.%pattern_type.5d5 +// CHECK:STDOUT: %pattern_type.loc5_38 => constants.%pattern_type.5d5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- symbolic_associated_type_in_concrete_context.carbon diff --git a/toolchain/check/testdata/index/expr_category.carbon b/toolchain/check/testdata/index/expr_category.carbon index 7bbb86034219..edf6e0500103 100644 --- a/toolchain/check/testdata/index/expr_category.carbon +++ b/toolchain/check/testdata/index/expr_category.carbon @@ -133,8 +133,8 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.5d8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.5d8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.5d8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.5d8 = return_slot_pattern %return.param_patt, %array_type [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] @@ -144,8 +144,8 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %return: ref %array_type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %b.patt: %pattern_type.5d8 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.5d8 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.5d8 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.5d8 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: %array_type = value_param call_param0 // CHECK:STDOUT: %.loc17: type = splice_block %array_type.loc17 [concrete = constants.%array_type] { @@ -156,8 +156,8 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %b: %array_type = value_binding b, %b.param // CHECK:STDOUT: } // CHECK:STDOUT: %ValueBinding.decl: %ValueBinding.type = fn_decl @ValueBinding [concrete = constants.%ValueBinding] { -// CHECK:STDOUT: %b.patt: %pattern_type.5d8 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.5d8 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.5d8 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.5d8 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: %array_type = value_param call_param0 // CHECK:STDOUT: %.loc25: type = splice_block %array_type.loc25 [concrete = constants.%array_type] { diff --git a/toolchain/check/testdata/index/fail_expr_category.carbon b/toolchain/check/testdata/index/fail_expr_category.carbon index 8a1d3efb89a0..22c8181be059 100644 --- a/toolchain/check/testdata/index/fail_expr_category.carbon +++ b/toolchain/check/testdata/index/fail_expr_category.carbon @@ -125,8 +125,8 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.5d8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.5d8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.5d8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.5d8 = return_slot_pattern %return.param_patt, %array_type [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] @@ -136,8 +136,8 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %return: ref %array_type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %b.patt: %pattern_type.5d8 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.5d8 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.5d8 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.5d8 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: %array_type = value_param call_param0 // CHECK:STDOUT: %.loc17: type = splice_block %array_type [concrete = constants.%array_type] { diff --git a/toolchain/check/testdata/interface/as_type.carbon b/toolchain/check/testdata/interface/as_type.carbon index 0115417ea4d0..1846ce460ce8 100644 --- a/toolchain/check/testdata/interface/as_type.carbon +++ b/toolchain/check/testdata/interface/as_type.carbon @@ -33,8 +33,8 @@ fn F(unused e: Empty) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Empty.decl: type = interface_decl @Empty [concrete = constants.%Empty.type] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %e.patt: %pattern_type = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: %pattern_type = value_param_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %Empty.type = value_param call_param0 // CHECK:STDOUT: %Empty.ref: type = name_ref Empty, file.%Empty.decl [concrete = constants.%Empty.type] diff --git a/toolchain/check/testdata/interface/assoc_const_in_generic.carbon b/toolchain/check/testdata/interface/assoc_const_in_generic.carbon index 4f63571e525d..a54859ecb4a5 100644 --- a/toolchain/check/testdata/interface/assoc_const_in_generic.carbon +++ b/toolchain/check/testdata/interface/assoc_const_in_generic.carbon @@ -104,8 +104,8 @@ fn H() { // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.1d6) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.cd4)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete] -// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.62e) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.62e) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.62e) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.62e) = return_slot_pattern %return.param_patt, %U.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc16_8.2 [symbolic = %U.loc16_8.1 (constants.%U)] // CHECK:STDOUT: %.loc16_21.2: Core.Form = init_form %U.ref [symbolic = %.loc16_21.1 (constants.%.a6b)] diff --git a/toolchain/check/testdata/interface/compound_member_access.carbon b/toolchain/check/testdata/interface/compound_member_access.carbon index 82b0cc100968..675b71cc027d 100644 --- a/toolchain/check/testdata/interface/compound_member_access.carbon +++ b/toolchain/check/testdata/interface/compound_member_access.carbon @@ -574,8 +574,8 @@ fn Works() { // CHECK:STDOUT: %K2.decl: type = interface_decl @K2 [concrete = constants.%K2.type] {} {} // CHECK:STDOUT: %Simple3.decl: %Simple3.type = fn_decl @Simple3 [concrete = constants.%Simple3] { // CHECK:STDOUT: %T.patt: %pattern_type.8cb = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @Simple3.%pattern_type (%pattern_type.6a7df6.1) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @Simple3.%pattern_type (%pattern_type.6a7df6.1) = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @Simple3.%pattern_type (%pattern_type.6a7df6.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Simple3.%pattern_type (%pattern_type.6a7df6.1) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_16: type = splice_block %K2.ref [concrete = constants.%K2.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -592,8 +592,8 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: %Compound3.decl: %Compound3.type = fn_decl @Compound3 [concrete = constants.%Compound3] { // CHECK:STDOUT: %V.patt: %pattern_type.8cb = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %y.patt: @Compound3.%pattern_type (%pattern_type.6a7df6.2) = value_binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: @Compound3.%pattern_type (%pattern_type.6a7df6.2) = value_param_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.param_patt: @Compound3.%pattern_type (%pattern_type.6a7df6.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @Compound3.%pattern_type (%pattern_type.6a7df6.2) = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_18: type = splice_block %K2.ref.loc14 [concrete = constants.%K2.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -780,10 +780,10 @@ fn Works() { // CHECK:STDOUT: %L1.decl: type = interface_decl @L1 [concrete = constants.%L1.type] {} {} // CHECK:STDOUT: %Simple4.decl: %Simple4.type = fn_decl @Simple4 [concrete = constants.%Simple4] { // CHECK:STDOUT: %T.patt: %pattern_type.a5c = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @Simple4.%pattern_type.loc9_20 (%pattern_type.352a62.1) = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @Simple4.%pattern_type.loc9_20 (%pattern_type.352a62.1) = value_param_pattern %x.patt [concrete] -// CHECK:STDOUT: %p.patt: @Simple4.%pattern_type.loc9_26 (%pattern_type.740d56.1) = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: @Simple4.%pattern_type.loc9_26 (%pattern_type.740d56.1) = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %x.param_patt: @Simple4.%pattern_type.loc9_21 (%pattern_type.352a62.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Simple4.%pattern_type.loc9_21 (%pattern_type.352a62.1) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: @Simple4.%pattern_type.loc9_27 (%pattern_type.740d56.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @Simple4.%pattern_type.loc9_27 (%pattern_type.740d56.1) = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_16: type = splice_block %L1.ref [concrete = constants.%L1.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -808,10 +808,10 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: %Compound4.decl: %Compound4.type = fn_decl @Compound4 [concrete = constants.%Compound4] { // CHECK:STDOUT: %V.patt: %pattern_type.a5c = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %y.patt: @Compound4.%pattern_type.loc15_22 (%pattern_type.352a62.2) = value_binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: @Compound4.%pattern_type.loc15_22 (%pattern_type.352a62.2) = value_param_pattern %y.patt [concrete] -// CHECK:STDOUT: %p.patt: @Compound4.%pattern_type.loc15_28 (%pattern_type.740d56.2) = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: @Compound4.%pattern_type.loc15_28 (%pattern_type.740d56.2) = value_param_pattern %p.patt [concrete] +// CHECK:STDOUT: %y.param_patt: @Compound4.%pattern_type.loc15_23 (%pattern_type.352a62.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @Compound4.%pattern_type.loc15_23 (%pattern_type.352a62.2) = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: @Compound4.%pattern_type.loc15_29 (%pattern_type.740d56.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @Compound4.%pattern_type.loc15_29 (%pattern_type.740d56.2) = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_18: type = splice_block %L1.ref.loc15 [concrete = constants.%L1.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -842,8 +842,8 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %L1.WithSelf.R1.decl: @L1.WithSelf.%L1.WithSelf.R1.type (%L1.WithSelf.R1.type.504) = fn_decl @L1.WithSelf.R1 [symbolic = @L1.WithSelf.%L1.WithSelf.R1 (constants.%L1.WithSelf.R1.aa4)] { -// CHECK:STDOUT: %self.patt: @L1.WithSelf.R1.%pattern_type (%pattern_type.9c1) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @L1.WithSelf.R1.%pattern_type (%pattern_type.9c1) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @L1.WithSelf.R1.%pattern_type (%pattern_type.9c1) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @L1.WithSelf.R1.%pattern_type (%pattern_type.9c1) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @L1.WithSelf.R1.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -855,8 +855,8 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %L1.assoc_type = assoc_entity element0, %L1.WithSelf.R1.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %L1.WithSelf.S1.decl: @L1.WithSelf.%L1.WithSelf.S1.type (%L1.WithSelf.S1.type.e03) = fn_decl @L1.WithSelf.S1 [symbolic = @L1.WithSelf.%L1.WithSelf.S1 (constants.%L1.WithSelf.S1.480)] { -// CHECK:STDOUT: %self.patt: @L1.WithSelf.S1.%pattern_type (%pattern_type.9c1) = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @L1.WithSelf.S1.%pattern_type (%pattern_type.9c1) = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @L1.WithSelf.S1.%pattern_type (%pattern_type.9c1) = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @L1.WithSelf.S1.%pattern_type (%pattern_type.9c1) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref @L1.WithSelf.S1.%Self.binding.as_type (%Self.binding.as_type) = ref_param call_param0 // CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -896,9 +896,9 @@ fn Works() { // CHECK:STDOUT: generic fn @Simple4(%T.loc9_12.2: %L1.type) { // CHECK:STDOUT: %T.loc9_12.1: %L1.type = symbolic_binding T, 0 [symbolic = %T.loc9_12.1 (constants.%T)] // CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_12.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.352a62.1)] +// CHECK:STDOUT: %pattern_type.loc9_21: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9_21 (constants.%pattern_type.352a62.1)] // CHECK:STDOUT: %ptr.loc9_30.1: type = ptr_type %T.binding.as_type [symbolic = %ptr.loc9_30.1 (constants.%ptr.6c1f8e.1)] -// CHECK:STDOUT: %pattern_type.loc9_26: type = pattern_type %ptr.loc9_30.1 [symbolic = %pattern_type.loc9_26 (constants.%pattern_type.740d56.1)] +// CHECK:STDOUT: %pattern_type.loc9_27: type = pattern_type %ptr.loc9_30.1 [symbolic = %pattern_type.loc9_27 (constants.%pattern_type.740d56.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_21: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_21 (constants.%require_complete.592d00.1)] @@ -937,9 +937,9 @@ fn Works() { // CHECK:STDOUT: generic fn @Compound4(%V.loc15_14.2: %L1.type) { // CHECK:STDOUT: %V.loc15_14.1: %L1.type = symbolic_binding V, 0 [symbolic = %V.loc15_14.1 (constants.%V)] // CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V.loc15_14.1 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc15_22: type = pattern_type %V.binding.as_type [symbolic = %pattern_type.loc15_22 (constants.%pattern_type.352a62.2)] +// CHECK:STDOUT: %pattern_type.loc15_23: type = pattern_type %V.binding.as_type [symbolic = %pattern_type.loc15_23 (constants.%pattern_type.352a62.2)] // CHECK:STDOUT: %ptr.loc15_32.1: type = ptr_type %V.binding.as_type [symbolic = %ptr.loc15_32.1 (constants.%ptr.6c1f8e.2)] -// CHECK:STDOUT: %pattern_type.loc15_28: type = pattern_type %ptr.loc15_32.1 [symbolic = %pattern_type.loc15_28 (constants.%pattern_type.740d56.2)] +// CHECK:STDOUT: %pattern_type.loc15_29: type = pattern_type %ptr.loc15_32.1 [symbolic = %pattern_type.loc15_29 (constants.%pattern_type.740d56.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc15_23: = require_complete_type %V.binding.as_type [symbolic = %require_complete.loc15_23 (constants.%require_complete.592d00.2)] @@ -1001,9 +1001,9 @@ fn Works() { // CHECK:STDOUT: specific @Simple4(constants.%T) { // CHECK:STDOUT: %T.loc9_12.1 => constants.%T // CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.352a62.1 +// CHECK:STDOUT: %pattern_type.loc9_21 => constants.%pattern_type.352a62.1 // CHECK:STDOUT: %ptr.loc9_30.1 => constants.%ptr.6c1f8e.1 -// CHECK:STDOUT: %pattern_type.loc9_26 => constants.%pattern_type.740d56.1 +// CHECK:STDOUT: %pattern_type.loc9_27 => constants.%pattern_type.740d56.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf(constants.%T) { @@ -1030,9 +1030,9 @@ fn Works() { // CHECK:STDOUT: specific @Compound4(constants.%V) { // CHECK:STDOUT: %V.loc15_14.1 => constants.%V // CHECK:STDOUT: %V.binding.as_type => constants.%V.binding.as_type -// CHECK:STDOUT: %pattern_type.loc15_22 => constants.%pattern_type.352a62.2 +// CHECK:STDOUT: %pattern_type.loc15_23 => constants.%pattern_type.352a62.2 // CHECK:STDOUT: %ptr.loc15_32.1 => constants.%ptr.6c1f8e.2 -// CHECK:STDOUT: %pattern_type.loc15_28 => constants.%pattern_type.740d56.2 +// CHECK:STDOUT: %pattern_type.loc15_29 => constants.%pattern_type.740d56.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf(constants.%V) { @@ -1137,8 +1137,8 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %L2.WithSelf.R2.decl: @L2.WithSelf.%L2.WithSelf.R2.type (%L2.WithSelf.R2.type.e38) = fn_decl @L2.WithSelf.R2 [symbolic = @L2.WithSelf.%L2.WithSelf.R2 (constants.%L2.WithSelf.R2.f23)] { -// CHECK:STDOUT: %self.patt: @L2.WithSelf.R2.%pattern_type (%pattern_type.73b) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @L2.WithSelf.R2.%pattern_type (%pattern_type.73b) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @L2.WithSelf.R2.%pattern_type (%pattern_type.73b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @L2.WithSelf.R2.%pattern_type (%pattern_type.73b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @L2.WithSelf.R2.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -1150,8 +1150,8 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %L2.assoc_type = assoc_entity element0, %L2.WithSelf.R2.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %L2.WithSelf.S2.decl: @L2.WithSelf.%L2.WithSelf.S2.type (%L2.WithSelf.S2.type.7f8) = fn_decl @L2.WithSelf.S2 [symbolic = @L2.WithSelf.%L2.WithSelf.S2 (constants.%L2.WithSelf.S2.827)] { -// CHECK:STDOUT: %self.patt: @L2.WithSelf.S2.%pattern_type (%pattern_type.73b) = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @L2.WithSelf.S2.%pattern_type (%pattern_type.73b) = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @L2.WithSelf.S2.%pattern_type (%pattern_type.73b) = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @L2.WithSelf.S2.%pattern_type (%pattern_type.73b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref @L2.WithSelf.S2.%Self.binding.as_type (%Self.binding.as_type) = ref_param call_param0 // CHECK:STDOUT: %.loc6_19.1: type = splice_block %.loc6_19.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { diff --git a/toolchain/check/testdata/interface/default_fn.carbon b/toolchain/check/testdata/interface/default_fn.carbon index 0c6139424bae..258dd6026e69 100644 --- a/toolchain/check/testdata/interface/default_fn.carbon +++ b/toolchain/check/testdata/interface/default_fn.carbon @@ -82,8 +82,8 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.b26) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.983)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.b59) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.b59) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.b59) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.b59) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.5c6) = value_param call_param0 // CHECK:STDOUT: %.loc18_23.1: type = splice_block %.loc18_23.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.5c6)] { @@ -109,8 +109,8 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %C.ref as %I.ref { // CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C.ref [concrete = constants.%C] diff --git a/toolchain/check/testdata/interface/export_name.carbon b/toolchain/check/testdata/interface/export_name.carbon index b101b581790c..453cca596f7a 100644 --- a/toolchain/check/testdata/interface/export_name.carbon +++ b/toolchain/check/testdata/interface/export_name.carbon @@ -121,8 +121,8 @@ fn UseEmpty(unused i: I) {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %UseEmpty.decl: %UseEmpty.type = fn_decl @UseEmpty [concrete = constants.%UseEmpty] { -// CHECK:STDOUT: %i.patt: %pattern_type = value_binding_pattern i [concrete] -// CHECK:STDOUT: %i.param_patt: %pattern_type = value_param_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type = at_binding_pattern i, %i.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: %I.type = value_param call_param0 // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] diff --git a/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon b/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon index 8ee2c1b37360..353666ab3c48 100644 --- a/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon @@ -107,8 +107,8 @@ interface C { // CHECK:STDOUT: %T2.ref: %I2.assoc_type = name_ref T2, @T2.%assoc0 [concrete = constants.%assoc0.7c1] // CHECK:STDOUT: %U2: %I2.assoc_type = alias_binding U2, @T2.%assoc0 [concrete = constants.%assoc0.7c1] // CHECK:STDOUT: %J2.WithSelf.F2.decl: @J2.WithSelf.%J2.WithSelf.F2.type (%J2.WithSelf.F2.type) = fn_decl @J2.WithSelf.F2 [symbolic = @J2.WithSelf.%J2.WithSelf.F2 (constants.%J2.WithSelf.F2)] { -// CHECK:STDOUT: %return.patt: @J2.WithSelf.F2.%pattern_type (%pattern_type.a14) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @J2.WithSelf.F2.%pattern_type (%pattern_type.a14) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @J2.WithSelf.F2.%pattern_type (%pattern_type.a14) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @J2.WithSelf.F2.%pattern_type (%pattern_type.a14) = return_slot_pattern %return.param_patt, %U2.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.as_type: type = facet_access_type @J2.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] // CHECK:STDOUT: %I2.facet.loc14_14.2: %I2.type = facet_value %Self.as_type, (constants.%I2.lookup_impl_witness.d97) [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.7a5)] diff --git a/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon b/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon index 633b4083bdb9..b673164be425 100644 --- a/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon @@ -77,8 +77,8 @@ fn Use(T:! I) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.08c) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.705)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { diff --git a/toolchain/check/testdata/interface/fail_duplicate.carbon b/toolchain/check/testdata/interface/fail_duplicate.carbon index 1916500d9c79..19cc014477b5 100644 --- a/toolchain/check/testdata/interface/fail_duplicate.carbon +++ b/toolchain/check/testdata/interface/fail_duplicate.carbon @@ -172,8 +172,8 @@ interface Class { } // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Interface.WithSelf.F.decl: @Interface.WithSelf.loc13.%Interface.WithSelf.F.type (%Interface.WithSelf.F.type) = fn_decl @Interface.WithSelf.F [symbolic = @Interface.WithSelf.loc13.%Interface.WithSelf.F (constants.%Interface.WithSelf.F)] { -// CHECK:STDOUT: %self.patt: @Interface.WithSelf.F.%pattern_type (%pattern_type) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Interface.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Interface.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Interface.WithSelf.F.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Interface.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc14_14.1: type = splice_block %.loc14_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { diff --git a/toolchain/check/testdata/interface/fail_modifiers.carbon b/toolchain/check/testdata/interface/fail_modifiers.carbon index 858906ba648e..affe9048c849 100644 --- a/toolchain/check/testdata/interface/fail_modifiers.carbon +++ b/toolchain/check/testdata/interface/fail_modifiers.carbon @@ -188,8 +188,8 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -251,8 +251,8 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { diff --git a/toolchain/check/testdata/interface/fail_todo_define_default_fn_inline.carbon b/toolchain/check/testdata/interface/fail_todo_define_default_fn_inline.carbon index a2feeec539ea..2f7dc50a558b 100644 --- a/toolchain/check/testdata/interface/fail_todo_define_default_fn_inline.carbon +++ b/toolchain/check/testdata/interface/fail_todo_define_default_fn_inline.carbon @@ -72,12 +72,12 @@ interface Interface { // CHECK:STDOUT: %Interface.WithSelf.F.decl: @Interface.WithSelf.%Interface.WithSelf.F.type (%Interface.WithSelf.F.type) = fn_decl @Interface.WithSelf.F [symbolic = @Interface.WithSelf.%Interface.WithSelf.F (constants.%Interface.WithSelf.F)] {} {} // CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %Interface.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %Interface.WithSelf.G.decl: @Interface.WithSelf.%Interface.WithSelf.G.type (%Interface.WithSelf.G.type) = fn_decl @Interface.WithSelf.G [symbolic = @Interface.WithSelf.%Interface.WithSelf.G (constants.%Interface.WithSelf.G)] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc26_35 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc26_35: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc26: Core.Form = init_form %i32.loc26_35 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon b/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon index b21d0e6e198f..26f25425b31f 100644 --- a/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon +++ b/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon @@ -92,12 +92,12 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %Interface.decl: type = interface_decl @Interface [concrete = constants.%Interface.type] {} {} // CHECK:STDOUT: %Interface.WithSelf.F.decl: %Interface.WithSelf.F.type = fn_decl @Interface.WithSelf.F [symbolic = constants.%Interface.WithSelf.F] {} {} // CHECK:STDOUT: %Interface.WithSelf.G.decl: %Interface.WithSelf.G.type = fn_decl @Interface.WithSelf.G [symbolic = constants.%Interface.WithSelf.G] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc18_35 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc18_35: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc18: Core.Form = init_form %i32.loc18_35 [concrete = constants.%.ff5] @@ -120,12 +120,12 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %Interface.WithSelf.F.decl: @Interface.WithSelf.%Interface.WithSelf.F.type (%Interface.WithSelf.F.type) = fn_decl @Interface.WithSelf.F [symbolic = @Interface.WithSelf.%Interface.WithSelf.F (constants.%Interface.WithSelf.F)] {} {} // CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %Interface.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %Interface.WithSelf.G.decl: @Interface.WithSelf.%Interface.WithSelf.G.type (%Interface.WithSelf.G.type) = fn_decl @Interface.WithSelf.G [symbolic = @Interface.WithSelf.%Interface.WithSelf.G (constants.%Interface.WithSelf.G)] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc18_35 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc13_35: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc13: Core.Form = init_form %i32.loc13_35 [concrete = constants.%.ff5] @@ -217,13 +217,13 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Interface.decl: type = interface_decl @Interface [concrete = constants.%Interface.type] {} {} // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [symbolic = constants.%C.F] { -// CHECK:STDOUT: %self.patt: @C.F.%pattern_type.loc14_10 (%pattern_type.968) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @C.F.%pattern_type.loc14_10 (%pattern_type.968) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @C.F.%pattern_type.loc14_14 (%pattern_type.968) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @C.F.%pattern_type.loc14_14 (%pattern_type.968) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %u.patt: @C.F.%pattern_type.loc14_32 (%pattern_type.423) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @C.F.%pattern_type.loc14_32 (%pattern_type.423) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @C.F.%pattern_type.loc14_32 (%pattern_type.423) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @C.F.%pattern_type.loc14_32 (%pattern_type.423) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @C.F.%pattern_type.loc14_33 (%pattern_type.423) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @C.F.%pattern_type.loc14_33 (%pattern_type.423) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @C.F.%pattern_type.loc14_33 (%pattern_type.423) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @C.F.%pattern_type.loc14_33 (%pattern_type.423) = return_slot_pattern %return.param_patt, %ptr.loc20_58 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc20_57: type = name_ref U, %U.loc20 [symbolic = %U.loc14_22.1 (constants.%U.091)] // CHECK:STDOUT: %ptr.loc20_58: type = ptr_type %U.ref.loc20_57 [symbolic = %ptr.loc14_36.1 (constants.%ptr.18e)] @@ -273,13 +273,13 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %C.F.decl: @C.%C.F.type (%C.F.type) = fn_decl @C.F [symbolic = @C.%C.F (constants.%C.F)] { -// CHECK:STDOUT: %self.patt: @C.F.%pattern_type.loc14_10 (%pattern_type.968) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @C.F.%pattern_type.loc14_10 (%pattern_type.968) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @C.F.%pattern_type.loc14_14 (%pattern_type.968) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @C.F.%pattern_type.loc14_14 (%pattern_type.968) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %u.patt: @C.F.%pattern_type.loc14_32 (%pattern_type.423) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @C.F.%pattern_type.loc14_32 (%pattern_type.423) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @C.F.%pattern_type.loc14_32 (%pattern_type.423) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @C.F.%pattern_type.loc14_32 (%pattern_type.423) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @C.F.%pattern_type.loc14_33 (%pattern_type.423) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @C.F.%pattern_type.loc14_33 (%pattern_type.423) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @C.F.%pattern_type.loc14_33 (%pattern_type.423) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @C.F.%pattern_type.loc14_33 (%pattern_type.423) = return_slot_pattern %return.param_patt, %ptr.loc20_58 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc14_42: type = name_ref U, %U.loc14_22.2 [symbolic = %U.loc14_22.1 (constants.%U.091)] // CHECK:STDOUT: %ptr.loc14_43: type = ptr_type %U.ref.loc14_42 [symbolic = %ptr.loc14_36.1 (constants.%ptr.18e)] @@ -316,10 +316,10 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: generic fn @C.F(@Interface.%Self: %Interface.type, %U.loc14_22.2: type) { // CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.887)] // CHECK:STDOUT: %C: type = class_type @C, @C(%Self) [symbolic = %C (constants.%C)] -// CHECK:STDOUT: %pattern_type.loc14_10: type = pattern_type %C [symbolic = %pattern_type.loc14_10 (constants.%pattern_type.968)] +// CHECK:STDOUT: %pattern_type.loc14_14: type = pattern_type %C [symbolic = %pattern_type.loc14_14 (constants.%pattern_type.968)] // CHECK:STDOUT: %U.loc14_22.1: type = symbolic_binding U, 1 [symbolic = %U.loc14_22.1 (constants.%U.091)] // CHECK:STDOUT: %ptr.loc14_36.1: type = ptr_type %U.loc14_22.1 [symbolic = %ptr.loc14_36.1 (constants.%ptr.18e)] -// CHECK:STDOUT: %pattern_type.loc14_32: type = pattern_type %ptr.loc14_36.1 [symbolic = %pattern_type.loc14_32 (constants.%pattern_type.423)] +// CHECK:STDOUT: %pattern_type.loc14_33: type = pattern_type %ptr.loc14_36.1 [symbolic = %pattern_type.loc14_33 (constants.%pattern_type.423)] // CHECK:STDOUT: %.loc14_43.1: Core.Form = init_form %ptr.loc14_36.1 [symbolic = %.loc14_43.1 (constants.%.6d8)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -357,10 +357,10 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: specific @C.F(constants.%Self.887, constants.%U.091) { // CHECK:STDOUT: %Self => constants.%Self.887 // CHECK:STDOUT: %C => constants.%C -// CHECK:STDOUT: %pattern_type.loc14_10 => constants.%pattern_type.968 +// CHECK:STDOUT: %pattern_type.loc14_14 => constants.%pattern_type.968 // CHECK:STDOUT: %U.loc14_22.1 => constants.%U.091 // CHECK:STDOUT: %ptr.loc14_36.1 => constants.%ptr.18e -// CHECK:STDOUT: %pattern_type.loc14_32 => constants.%pattern_type.423 +// CHECK:STDOUT: %pattern_type.loc14_33 => constants.%pattern_type.423 // CHECK:STDOUT: %.loc14_43.1 => constants.%.6d8 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/generic.carbon b/toolchain/check/testdata/interface/generic.carbon index 12615ccfbc42..327342ab8394 100644 --- a/toolchain/check/testdata/interface/generic.carbon +++ b/toolchain/check/testdata/interface/generic.carbon @@ -235,8 +235,8 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %WithAssocFn.WithSelf.F.decl: @WithAssocFn.WithSelf.%WithAssocFn.WithSelf.F.type (%WithAssocFn.WithSelf.F.type.6c9) = fn_decl @WithAssocFn.WithSelf.F [symbolic = @WithAssocFn.WithSelf.%WithAssocFn.WithSelf.F (constants.%WithAssocFn.WithSelf.F.6d9)] { -// CHECK:STDOUT: %return.patt: %pattern_type.05f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.05f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.05f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.05f = return_slot_pattern %return.param_patt, %X.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc10: Core.Form = init_form %X.ref [concrete = constants.%.a1b] @@ -274,8 +274,8 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.WithAssocFn.impl: %Self.ref as %WithAssocFn.type { // CHECK:STDOUT: %C.as.WithAssocFn.impl.F.decl: %C.as.WithAssocFn.impl.F.type = fn_decl @C.as.WithAssocFn.impl.F [concrete = constants.%C.as.WithAssocFn.impl.F] { -// CHECK:STDOUT: %return.patt: %pattern_type.05f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.05f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.05f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.05f = return_slot_pattern %return.param_patt, %X.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc16: Core.Form = init_form %X.ref [concrete = constants.%.a1b] diff --git a/toolchain/check/testdata/interface/generic_method.carbon b/toolchain/check/testdata/interface/generic_method.carbon index 13b98513e126..df60542811b2 100644 --- a/toolchain/check/testdata/interface/generic_method.carbon +++ b/toolchain/check/testdata/interface/generic_method.carbon @@ -294,10 +294,10 @@ fn CallIndirect() { // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %A.WithSelf.F.decl: @A.WithSelf.%A.WithSelf.F.type (%A.WithSelf.F.type.0ed) = fn_decl @A.WithSelf.F [symbolic = @A.WithSelf.%A.WithSelf.F (constants.%A.WithSelf.F.33a)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete] -// CHECK:STDOUT: %u.patt: @A.WithSelf.F.%pattern_type.loc6_18 (%pattern_type.986) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @A.WithSelf.F.%pattern_type.loc6_18 (%pattern_type.986) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @A.WithSelf.F.%pattern_type.loc6_25 (%pattern_type.f66) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @A.WithSelf.F.%pattern_type.loc6_25 (%pattern_type.f66) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @A.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.986) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @A.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.986) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @A.WithSelf.F.%pattern_type.loc6_40 (%pattern_type.f66) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @A.WithSelf.F.%pattern_type.loc6_40 (%pattern_type.f66) = return_slot_pattern %return.param_patt, %.loc6_40.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_13.2 [symbolic = %T (constants.%T.67d)] // CHECK:STDOUT: %.loc6_32: @A.WithSelf.F.%A.type (%A.type.ade) = specific_constant @A.%Self.loc5_23.1, @A(constants.%T.67d) [symbolic = %Self (constants.%Self.362)] @@ -339,10 +339,10 @@ fn CallIndirect() { // CHECK:STDOUT: impl @Y.as.A.impl: %Y.ref as %A.type { // CHECK:STDOUT: %Y.as.A.impl.F.decl: %Y.as.A.impl.F.type = fn_decl @Y.as.A.impl.F [concrete = constants.%Y.as.A.impl.F] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %u.patt: @Y.as.A.impl.F.%pattern_type.loc16_18 (%pattern_type.4f4b84.1) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @Y.as.A.impl.F.%pattern_type.loc16_18 (%pattern_type.4f4b84.1) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @Y.as.A.impl.F.%pattern_type.loc16_25 (%pattern_type.06d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Y.as.A.impl.F.%pattern_type.loc16_25 (%pattern_type.06d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @Y.as.A.impl.F.%pattern_type.loc16_19 (%pattern_type.4f4b84.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @Y.as.A.impl.F.%pattern_type.loc16_19 (%pattern_type.4f4b84.1) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Y.as.A.impl.F.%pattern_type.loc16_37 (%pattern_type.06d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Y.as.A.impl.F.%pattern_type.loc16_37 (%pattern_type.06d) = return_slot_pattern %return.param_patt, %.loc16_37.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y] @@ -402,7 +402,7 @@ fn CallIndirect() { // CHECK:STDOUT: generic fn @A.WithSelf.F(@A.%T.loc5_13.2: type, @A.%Self.loc5_23.1: @A.%A.type (%A.type.ade), %U.loc6_8.2: type) { // CHECK:STDOUT: %U.loc6_8.1: type = symbolic_binding U, 2 [symbolic = %U.loc6_8.1 (constants.%U.4e7)] // CHECK:STDOUT: %ptr.loc6_22.1: type = ptr_type %U.loc6_8.1 [symbolic = %ptr.loc6_22.1 (constants.%ptr.8f6)] -// CHECK:STDOUT: %pattern_type.loc6_18: type = pattern_type %ptr.loc6_22.1 [symbolic = %pattern_type.loc6_18 (constants.%pattern_type.986)] +// CHECK:STDOUT: %pattern_type.loc6_19: type = pattern_type %ptr.loc6_22.1 [symbolic = %pattern_type.loc6_19 (constants.%pattern_type.986)] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T.67d)] // CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T)> [symbolic = %A.type (constants.%A.type.ade)] // CHECK:STDOUT: %Self: @A.WithSelf.F.%A.type (%A.type.ade) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.362)] @@ -411,7 +411,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.7ec)] // CHECK:STDOUT: %tuple.type.loc6_40.2: type = tuple_type (%T, %Self.binding.as_type, %ptr.loc6_22.1) [symbolic = %tuple.type.loc6_40.2 (constants.%tuple.type.762)] // CHECK:STDOUT: %.loc6_40.1: Core.Form = init_form %tuple.type.loc6_40.2 [symbolic = %.loc6_40.1 (constants.%.54f)] -// CHECK:STDOUT: %pattern_type.loc6_25: type = pattern_type %tuple.type.loc6_40.2 [symbolic = %pattern_type.loc6_25 (constants.%pattern_type.f66)] +// CHECK:STDOUT: %pattern_type.loc6_40: type = pattern_type %tuple.type.loc6_40.2 [symbolic = %pattern_type.loc6_40 (constants.%pattern_type.f66)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%u.param: @A.WithSelf.F.%ptr.loc6_22.1 (%ptr.8f6)) -> out %return.param: @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.762); // CHECK:STDOUT: } @@ -419,11 +419,11 @@ fn CallIndirect() { // CHECK:STDOUT: generic fn @Y.as.A.impl.F(%U.loc16_8.2: type) { // CHECK:STDOUT: %U.loc16_8.1: type = symbolic_binding U, 0 [symbolic = %U.loc16_8.1 (constants.%U.67d)] // CHECK:STDOUT: %ptr.loc16_22.1: type = ptr_type %U.loc16_8.1 [symbolic = %ptr.loc16_22.1 (constants.%ptr.e8f8f9.1)] -// CHECK:STDOUT: %pattern_type.loc16_18: type = pattern_type %ptr.loc16_22.1 [symbolic = %pattern_type.loc16_18 (constants.%pattern_type.4f4b84.1)] +// CHECK:STDOUT: %pattern_type.loc16_19: type = pattern_type %ptr.loc16_22.1 [symbolic = %pattern_type.loc16_19 (constants.%pattern_type.4f4b84.1)] // CHECK:STDOUT: %tuple: %tuple.type.ff9 = tuple_value (constants.%X, constants.%Y, %ptr.loc16_22.1) [symbolic = %tuple (constants.%tuple.7ab)] // CHECK:STDOUT: %tuple.type.loc16: type = tuple_type (constants.%X, constants.%Y, %ptr.loc16_22.1) [symbolic = %tuple.type.loc16 (constants.%tuple.type.244)] // CHECK:STDOUT: %.loc16_37.1: Core.Form = init_form %tuple.type.loc16 [symbolic = %.loc16_37.1 (constants.%.0dc)] -// CHECK:STDOUT: %pattern_type.loc16_25: type = pattern_type %tuple.type.loc16 [symbolic = %pattern_type.loc16_25 (constants.%pattern_type.06d)] +// CHECK:STDOUT: %pattern_type.loc16_37: type = pattern_type %tuple.type.loc16 [symbolic = %pattern_type.loc16_37 (constants.%pattern_type.06d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc16_19: = require_complete_type %ptr.loc16_22.1 [symbolic = %require_complete.loc16_19 (constants.%require_complete.ef162c.1)] @@ -588,7 +588,7 @@ fn CallIndirect() { // CHECK:STDOUT: specific @A.WithSelf.F(constants.%T.67d, constants.%Self.362, constants.%U.4e7) { // CHECK:STDOUT: %U.loc6_8.1 => constants.%U.4e7 // CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.8f6 -// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.986 +// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.986 // CHECK:STDOUT: %T => constants.%T.67d // CHECK:STDOUT: %A.type => constants.%A.type.ade // CHECK:STDOUT: %Self => constants.%Self.362 @@ -597,7 +597,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.7ec // CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.762 // CHECK:STDOUT: %.loc6_40.1 => constants.%.54f -// CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.f66 +// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.f66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%X) { @@ -622,11 +622,11 @@ fn CallIndirect() { // CHECK:STDOUT: specific @Y.as.A.impl.F(constants.%U.67d) { // CHECK:STDOUT: %U.loc16_8.1 => constants.%U.67d // CHECK:STDOUT: %ptr.loc16_22.1 => constants.%ptr.e8f8f9.1 -// CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.4f4b84.1 +// CHECK:STDOUT: %pattern_type.loc16_19 => constants.%pattern_type.4f4b84.1 // CHECK:STDOUT: %tuple => constants.%tuple.7ab // CHECK:STDOUT: %tuple.type.loc16 => constants.%tuple.type.244 // CHECK:STDOUT: %.loc16_37.1 => constants.%.0dc -// CHECK:STDOUT: %pattern_type.loc16_25 => constants.%pattern_type.06d +// CHECK:STDOUT: %pattern_type.loc16_37 => constants.%pattern_type.06d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet) { @@ -643,7 +643,7 @@ fn CallIndirect() { // CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet, constants.%U.67d) { // CHECK:STDOUT: %U.loc6_8.1 => constants.%U.67d // CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.e8f8f9.1 -// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.4f4b84.1 +// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.4f4b84.1 // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.ab6 // CHECK:STDOUT: %Self => constants.%A.facet @@ -652,17 +652,17 @@ fn CallIndirect() { // CHECK:STDOUT: %Self.binding.as_type => constants.%Y // CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.244 // CHECK:STDOUT: %.loc6_40.1 => constants.%.0dc -// CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.06d +// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.06d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.as.A.impl.F(constants.%Z) { // CHECK:STDOUT: %U.loc16_8.1 => constants.%Z // CHECK:STDOUT: %ptr.loc16_22.1 => constants.%ptr.2a0 -// CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.771 +// CHECK:STDOUT: %pattern_type.loc16_19 => constants.%pattern_type.771 // CHECK:STDOUT: %tuple => constants.%tuple.84f // CHECK:STDOUT: %tuple.type.loc16 => constants.%tuple.type.847 // CHECK:STDOUT: %.loc16_37.1 => constants.%.88e -// CHECK:STDOUT: %pattern_type.loc16_25 => constants.%pattern_type.79c +// CHECK:STDOUT: %pattern_type.loc16_37 => constants.%pattern_type.79c // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc16_19 => constants.%complete_type.543 @@ -695,7 +695,7 @@ fn CallIndirect() { // CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%T.2bc, constants.%Z) { // CHECK:STDOUT: %U.loc6_8.1 => constants.%Z // CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.2a0 -// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.771 +// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.771 // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.ab6 // CHECK:STDOUT: %Self => constants.%T.2bc @@ -704,7 +704,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type.3d0 // CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.a50 // CHECK:STDOUT: %.loc6_40.1 => constants.%.69c -// CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.160 +// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.160 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%A.facet) { @@ -730,7 +730,7 @@ fn CallIndirect() { // CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet, constants.%Z) { // CHECK:STDOUT: %U.loc6_8.1 => constants.%Z // CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.2a0 -// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.771 +// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.771 // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.ab6 // CHECK:STDOUT: %Self => constants.%A.facet @@ -739,7 +739,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Self.binding.as_type => constants.%Y // CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.847 // CHECK:STDOUT: %.loc6_40.1 => constants.%.88e -// CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.79c +// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.79c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- generic_method_more_params.carbon @@ -960,10 +960,10 @@ fn CallIndirect() { // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %A.WithSelf.F.decl: @A.WithSelf.%A.WithSelf.F.type (%A.WithSelf.F.type.0ed) = fn_decl @A.WithSelf.F [symbolic = @A.WithSelf.%A.WithSelf.F (constants.%A.WithSelf.F.33a)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete] -// CHECK:STDOUT: %u.patt: @A.WithSelf.F.%pattern_type.loc6_18 (%pattern_type.62e) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @A.WithSelf.F.%pattern_type.loc6_18 (%pattern_type.62e) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @A.WithSelf.F.%pattern_type.loc6_24 (%pattern_type.22d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @A.WithSelf.F.%pattern_type.loc6_24 (%pattern_type.22d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @A.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.62e) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @A.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.62e) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @A.WithSelf.F.%pattern_type.loc6_38 (%pattern_type.22d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @A.WithSelf.F.%pattern_type.loc6_38 (%pattern_type.22d) = return_slot_pattern %return.param_patt, %.loc6_38.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_13.2 [symbolic = %T (constants.%T.67d)] // CHECK:STDOUT: %.loc6_31: @A.WithSelf.F.%A.type (%A.type.ade) = specific_constant @A.%Self.loc5_23.1, @A(constants.%T.67d) [symbolic = %Self (constants.%Self.362)] @@ -1015,10 +1015,10 @@ fn CallIndirect() { // CHECK:STDOUT: impl: %.loc14_53.2 as %A.type.loc14_61.2 { // CHECK:STDOUT: %tuple.type.as.A.impl.F.decl: @tuple.type.as.A.impl.%tuple.type.as.A.impl.F.type (%tuple.type.as.A.impl.F.type.ce6) = fn_decl @tuple.type.as.A.impl.F [symbolic = @tuple.type.as.A.impl.%tuple.type.as.A.impl.F (constants.%tuple.type.as.A.impl.F.74d)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 3 [concrete] -// CHECK:STDOUT: %u.patt: @tuple.type.as.A.impl.F.%pattern_type.loc17_18 (%pattern_type.e4a) = value_binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @tuple.type.as.A.impl.F.%pattern_type.loc17_18 (%pattern_type.e4a) = value_param_pattern %u.patt [concrete] -// CHECK:STDOUT: %return.patt: @tuple.type.as.A.impl.F.%pattern_type.loc17_24 (%pattern_type.5cc) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @tuple.type.as.A.impl.F.%pattern_type.loc17_24 (%pattern_type.5cc) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %u.param_patt: @tuple.type.as.A.impl.F.%pattern_type.loc17_19 (%pattern_type.e4a) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @tuple.type.as.A.impl.F.%pattern_type.loc17_19 (%pattern_type.e4a) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @tuple.type.as.A.impl.F.%pattern_type.loc17_42 (%pattern_type.5cc) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @tuple.type.as.A.impl.F.%pattern_type.loc17_42 (%pattern_type.5cc) = return_slot_pattern %return.param_patt, %.loc17_42.5 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %W.ref: type = name_ref W, @tuple.type.as.A.impl.%W.loc14_36.2 [symbolic = %W (constants.%W)] // CHECK:STDOUT: %V1.ref: type = name_ref V1, @tuple.type.as.A.impl.%V1.loc14_14.2 [symbolic = %V1 (constants.%V1)] @@ -1086,7 +1086,7 @@ fn CallIndirect() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A.WithSelf.F(@A.%T.loc5_13.2: type, @A.%Self.loc5_23.1: @A.%A.type (%A.type.ade), %U.loc6_8.2: type) { // CHECK:STDOUT: %U.loc6_8.1: type = symbolic_binding U, 2 [symbolic = %U.loc6_8.1 (constants.%U.4e7)] -// CHECK:STDOUT: %pattern_type.loc6_18: type = pattern_type %U.loc6_8.1 [symbolic = %pattern_type.loc6_18 (constants.%pattern_type.62e)] +// CHECK:STDOUT: %pattern_type.loc6_19: type = pattern_type %U.loc6_8.1 [symbolic = %pattern_type.loc6_19 (constants.%pattern_type.62e)] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T.67d)] // CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T)> [symbolic = %A.type (constants.%A.type.ade)] // CHECK:STDOUT: %Self: @A.WithSelf.F.%A.type (%A.type.ade) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.362)] @@ -1095,14 +1095,14 @@ fn CallIndirect() { // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.7ec)] // CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.binding.as_type, %U.loc6_8.1) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.7f3)] // CHECK:STDOUT: %.loc6_38.1: Core.Form = init_form %tuple.type.loc6_38.2 [symbolic = %.loc6_38.1 (constants.%.0ad)] -// CHECK:STDOUT: %pattern_type.loc6_24: type = pattern_type %tuple.type.loc6_38.2 [symbolic = %pattern_type.loc6_24 (constants.%pattern_type.22d)] +// CHECK:STDOUT: %pattern_type.loc6_38: type = pattern_type %tuple.type.loc6_38.2 [symbolic = %pattern_type.loc6_38 (constants.%pattern_type.22d)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%u.param: @A.WithSelf.F.%U.loc6_8.1 (%U.4e7)) -> out %return.param: @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.7f3); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @tuple.type.as.A.impl.F(@tuple.type.as.A.impl.%V1.loc14_14.2: type, @tuple.type.as.A.impl.%V2.loc14_25.2: type, @tuple.type.as.A.impl.%W.loc14_36.2: type, %U.loc17_8.2: type) { // CHECK:STDOUT: %U.loc17_8.1: type = symbolic_binding U, 3 [symbolic = %U.loc17_8.1 (constants.%U.ce4)] -// CHECK:STDOUT: %pattern_type.loc17_18: type = pattern_type %U.loc17_8.1 [symbolic = %pattern_type.loc17_18 (constants.%pattern_type.e4a)] +// CHECK:STDOUT: %pattern_type.loc17_19: type = pattern_type %U.loc17_8.1 [symbolic = %pattern_type.loc17_19 (constants.%pattern_type.e4a)] // CHECK:STDOUT: %W: type = symbolic_binding W, 2 [symbolic = %W (constants.%W)] // CHECK:STDOUT: %V1: type = symbolic_binding V1, 0 [symbolic = %V1 (constants.%V1)] // CHECK:STDOUT: %V2: type = symbolic_binding V2, 1 [symbolic = %V2 (constants.%V2)] @@ -1111,7 +1111,7 @@ fn CallIndirect() { // CHECK:STDOUT: %tuple.type.loc17_42.1: type = tuple_type (%V1, %V2) [symbolic = %tuple.type.loc17_42.1 (constants.%tuple.type.a5e)] // CHECK:STDOUT: %tuple.type.loc17_42.2: type = tuple_type (%W, %tuple.type.loc17_42.1, %U.loc17_8.1) [symbolic = %tuple.type.loc17_42.2 (constants.%tuple.type.897)] // CHECK:STDOUT: %.loc17_42.2: Core.Form = init_form %tuple.type.loc17_42.2 [symbolic = %.loc17_42.2 (constants.%.f8e)] -// CHECK:STDOUT: %pattern_type.loc17_24: type = pattern_type %tuple.type.loc17_42.2 [symbolic = %pattern_type.loc17_24 (constants.%pattern_type.5cc)] +// CHECK:STDOUT: %pattern_type.loc17_42: type = pattern_type %tuple.type.loc17_42.2 [symbolic = %pattern_type.loc17_42 (constants.%pattern_type.5cc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc17_19: = require_complete_type %U.loc17_8.1 [symbolic = %require_complete.loc17_19 (constants.%require_complete.5a4)] @@ -1244,7 +1244,7 @@ fn CallIndirect() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf.F(constants.%T.67d, constants.%Self.362, constants.%U.4e7) { // CHECK:STDOUT: %U.loc6_8.1 => constants.%U.4e7 -// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.62e +// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.62e // CHECK:STDOUT: %T => constants.%T.67d // CHECK:STDOUT: %A.type => constants.%A.type.ade // CHECK:STDOUT: %Self => constants.%Self.362 @@ -1253,7 +1253,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.7ec // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.7f3 // CHECK:STDOUT: %.loc6_38.1 => constants.%.0ad -// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.22d +// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.22d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%W) { @@ -1292,7 +1292,7 @@ fn CallIndirect() { // CHECK:STDOUT: // CHECK:STDOUT: specific @tuple.type.as.A.impl.F(constants.%V1, constants.%V2, constants.%W, constants.%U.ce4) { // CHECK:STDOUT: %U.loc17_8.1 => constants.%U.ce4 -// CHECK:STDOUT: %pattern_type.loc17_18 => constants.%pattern_type.e4a +// CHECK:STDOUT: %pattern_type.loc17_19 => constants.%pattern_type.e4a // CHECK:STDOUT: %W => constants.%W // CHECK:STDOUT: %V1 => constants.%V1 // CHECK:STDOUT: %V2 => constants.%V2 @@ -1301,7 +1301,7 @@ fn CallIndirect() { // CHECK:STDOUT: %tuple.type.loc17_42.1 => constants.%tuple.type.a5e // CHECK:STDOUT: %tuple.type.loc17_42.2 => constants.%tuple.type.897 // CHECK:STDOUT: %.loc17_42.2 => constants.%.f8e -// CHECK:STDOUT: %pattern_type.loc17_24 => constants.%pattern_type.5cc +// CHECK:STDOUT: %pattern_type.loc17_42 => constants.%pattern_type.5cc // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc17_19 => constants.%require_complete.5a4 @@ -1324,7 +1324,7 @@ fn CallIndirect() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf.F(constants.%W, constants.%A.facet.56b, constants.%U.ce4) { // CHECK:STDOUT: %U.loc6_8.1 => constants.%U.ce4 -// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.e4a +// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.e4a // CHECK:STDOUT: %T => constants.%W // CHECK:STDOUT: %A.type => constants.%A.type.fe7 // CHECK:STDOUT: %Self => constants.%A.facet.56b @@ -1333,7 +1333,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Self.binding.as_type => constants.%tuple.type.a5e // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.897 // CHECK:STDOUT: %.loc6_38.1 => constants.%.f8e -// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.5cc +// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.5cc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%X) { @@ -1383,7 +1383,7 @@ fn CallIndirect() { // CHECK:STDOUT: // CHECK:STDOUT: specific @tuple.type.as.A.impl.F(constants.%Y1, constants.%Y2, constants.%X, constants.%Z) { // CHECK:STDOUT: %U.loc17_8.1 => constants.%Z -// CHECK:STDOUT: %pattern_type.loc17_18 => constants.%pattern_type.bdb +// CHECK:STDOUT: %pattern_type.loc17_19 => constants.%pattern_type.bdb // CHECK:STDOUT: %W => constants.%X // CHECK:STDOUT: %V1 => constants.%Y1 // CHECK:STDOUT: %V2 => constants.%Y2 @@ -1392,7 +1392,7 @@ fn CallIndirect() { // CHECK:STDOUT: %tuple.type.loc17_42.1 => constants.%tuple.type.ab2 // CHECK:STDOUT: %tuple.type.loc17_42.2 => constants.%tuple.type.65a // CHECK:STDOUT: %.loc17_42.2 => constants.%.241 -// CHECK:STDOUT: %pattern_type.loc17_24 => constants.%pattern_type.30b +// CHECK:STDOUT: %pattern_type.loc17_42 => constants.%pattern_type.30b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc17_19 => constants.%complete_type.357 @@ -1419,7 +1419,7 @@ fn CallIndirect() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%T.2bc, constants.%Z) { // CHECK:STDOUT: %U.loc6_8.1 => constants.%Z -// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.bdb +// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.bdb // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.ab6 // CHECK:STDOUT: %Self => constants.%T.2bc @@ -1428,7 +1428,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.856 // CHECK:STDOUT: %.loc6_38.1 => constants.%.5b0 -// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.4b2 +// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.4b2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%A.facet.906) { @@ -1453,7 +1453,7 @@ fn CallIndirect() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.906, constants.%Z) { // CHECK:STDOUT: %U.loc6_8.1 => constants.%Z -// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.bdb +// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.bdb // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.ab6 // CHECK:STDOUT: %Self => constants.%A.facet.906 @@ -1462,6 +1462,6 @@ fn CallIndirect() { // CHECK:STDOUT: %Self.binding.as_type => constants.%tuple.type.ab2 // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.65a // CHECK:STDOUT: %.loc6_38.1 => constants.%.241 -// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.30b +// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.30b // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/import.carbon b/toolchain/check/testdata/interface/import.carbon index 57087110cc88..fcdb9961bded 100644 --- a/toolchain/check/testdata/interface/import.carbon +++ b/toolchain/check/testdata/interface/import.carbon @@ -308,24 +308,24 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %UseEmpty.decl: %UseEmpty.type = fn_decl @UseEmpty [concrete = constants.%UseEmpty] { -// CHECK:STDOUT: %e.patt: %pattern_type.7d1 = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: %pattern_type.7d1 = value_param_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.param_patt: %pattern_type.7d1 = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.7d1 = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %Empty.type = value_param call_param0 // CHECK:STDOUT: %Empty.ref: type = name_ref Empty, imports.%Main.Empty [concrete = constants.%Empty.type] // CHECK:STDOUT: %e: %Empty.type = value_binding e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %UseBasic.decl: %UseBasic.type = fn_decl @UseBasic [concrete = constants.%UseBasic] { -// CHECK:STDOUT: %e.patt: %pattern_type.185 = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: %pattern_type.185 = value_param_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.param_patt: %pattern_type.185 = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.185 = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %Basic.type = value_param call_param0 // CHECK:STDOUT: %Basic.ref: type = name_ref Basic, imports.%Main.Basic [concrete = constants.%Basic.type] // CHECK:STDOUT: %e: %Basic.type = value_binding e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %UseForwardDeclared.decl: %UseForwardDeclared.type = fn_decl @UseForwardDeclared [concrete = constants.%UseForwardDeclared] { -// CHECK:STDOUT: %f.patt: %pattern_type.0a0 = value_binding_pattern f [concrete] -// CHECK:STDOUT: %f.param_patt: %pattern_type.0a0 = value_param_pattern %f.patt [concrete] +// CHECK:STDOUT: %f.param_patt: %pattern_type.0a0 = value_param_pattern [concrete] +// CHECK:STDOUT: %f.patt: %pattern_type.0a0 = at_binding_pattern f, %f.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %f.param: %ForwardDeclared.type = value_param call_param0 // CHECK:STDOUT: %ForwardDeclared.ref: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [concrete = constants.%ForwardDeclared.type] diff --git a/toolchain/check/testdata/interface/import_access.carbon b/toolchain/check/testdata/interface/import_access.carbon index 3058e11763a8..86dbf9a09636 100644 --- a/toolchain/check/testdata/interface/import_access.carbon +++ b/toolchain/check/testdata/interface/import_access.carbon @@ -236,8 +236,8 @@ private interface Redecl {} // CHECK:STDOUT: %Test.import = import Test // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %i.patt: %pattern_type = value_binding_pattern i [concrete] -// CHECK:STDOUT: %i.param_patt: %pattern_type = value_param_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type = at_binding_pattern i, %i.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: %Def.type = value_param call_param0 // CHECK:STDOUT: %Def.ref: type = name_ref Def, imports.%Test.Def [concrete = constants.%Def.type] @@ -276,12 +276,12 @@ private interface Redecl {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %i.patt: = value_binding_pattern i [concrete] -// CHECK:STDOUT: %i.param_patt: = value_param_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %i.patt: = at_binding_pattern i, %i.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: = value_param call_param0 // CHECK:STDOUT: %Def.ref: = name_ref Def, [concrete = ] -// CHECK:STDOUT: %i: = value_binding i, %i.param +// CHECK:STDOUT: %i: = value_binding i, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -311,15 +311,15 @@ private interface Redecl {} // CHECK:STDOUT: } // CHECK:STDOUT: %Test.import = import Test // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %i.patt: = value_binding_pattern i [concrete] -// CHECK:STDOUT: %i.param_patt: = value_param_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %i.patt: = at_binding_pattern i, %i.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: = value_param call_param0 // CHECK:STDOUT: %.1: = splice_block [concrete = ] { // CHECK:STDOUT: %Test.ref: = name_ref Test, imports.%Test [concrete = imports.%Test] // CHECK:STDOUT: %Def.ref: = name_ref Def, [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %i: = value_binding i, %i.param +// CHECK:STDOUT: %i: = value_binding i, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -351,8 +351,8 @@ private interface Redecl {} // CHECK:STDOUT: %Test.import = import Test // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %i.patt: %pattern_type = value_binding_pattern i [concrete] -// CHECK:STDOUT: %i.param_patt: %pattern_type = value_param_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type = at_binding_pattern i, %i.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: %ForwardWithDef.type = value_param call_param0 // CHECK:STDOUT: %ForwardWithDef.ref: type = name_ref ForwardWithDef, imports.%Test.ForwardWithDef [concrete = constants.%ForwardWithDef.type] @@ -391,12 +391,12 @@ private interface Redecl {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %i.patt: = value_binding_pattern i [concrete] -// CHECK:STDOUT: %i.param_patt: = value_param_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %i.patt: = at_binding_pattern i, %i.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: = value_param call_param0 // CHECK:STDOUT: %ForwardWithDef.ref: = name_ref ForwardWithDef, [concrete = ] -// CHECK:STDOUT: %i: = value_binding i, %i.param +// CHECK:STDOUT: %i: = value_binding i, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -426,15 +426,15 @@ private interface Redecl {} // CHECK:STDOUT: } // CHECK:STDOUT: %Test.import = import Test // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %i.patt: = value_binding_pattern i [concrete] -// CHECK:STDOUT: %i.param_patt: = value_param_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %i.patt: = at_binding_pattern i, %i.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: = value_param call_param0 // CHECK:STDOUT: %.1: = splice_block [concrete = ] { // CHECK:STDOUT: %Test.ref: = name_ref Test, imports.%Test [concrete = imports.%Test] // CHECK:STDOUT: %ForwardWithDef.ref: = name_ref ForwardWithDef, [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %i: = value_binding i, %i.param +// CHECK:STDOUT: %i: = value_binding i, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -460,15 +460,15 @@ private interface Redecl {} // CHECK:STDOUT: %Test.import = import Test // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %i.patt: = value_binding_pattern i [concrete] -// CHECK:STDOUT: %i.param_patt: = value_param_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %i.patt: = at_binding_pattern i, %i.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: = value_param call_param0 // CHECK:STDOUT: %.loc11: type = splice_block %ptr [concrete = ] { // CHECK:STDOUT: %Forward.ref: = name_ref Forward, [concrete = ] // CHECK:STDOUT: %ptr: type = ptr_type [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %i: = value_binding i, %i.param +// CHECK:STDOUT: %i: = value_binding i, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: %Forward.decl: type = interface_decl @Forward [concrete = constants.%Forward.type] {} {} // CHECK:STDOUT: } @@ -505,15 +505,15 @@ private interface Redecl {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %i.patt: = value_binding_pattern i [concrete] -// CHECK:STDOUT: %i.param_patt: = value_param_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %i.patt: = at_binding_pattern i, %i.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: = value_param call_param0 // CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = ] { // CHECK:STDOUT: %Forward.ref: = name_ref Forward, [concrete = ] // CHECK:STDOUT: %ptr: type = ptr_type [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %i: = value_binding i, %i.param +// CHECK:STDOUT: %i: = value_binding i, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -543,15 +543,15 @@ private interface Redecl {} // CHECK:STDOUT: } // CHECK:STDOUT: %Test.import = import Test // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %i.patt: = value_binding_pattern i [concrete] -// CHECK:STDOUT: %i.param_patt: = value_param_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.param_patt: = value_param_pattern [concrete] +// CHECK:STDOUT: %i.patt: = at_binding_pattern i, %i.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i.param: = value_param call_param0 // CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = ] { // CHECK:STDOUT: %Forward.ref: = name_ref Forward, [concrete = ] // CHECK:STDOUT: %ptr: type = ptr_type [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %i: = value_binding i, %i.param +// CHECK:STDOUT: %i: = value_binding i, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/incomplete.carbon b/toolchain/check/testdata/interface/incomplete.carbon index 4ccc723913e1..e06283d7a5a2 100644 --- a/toolchain/check/testdata/interface/incomplete.carbon +++ b/toolchain/check/testdata/interface/incomplete.carbon @@ -246,8 +246,8 @@ interface A(T:! type) { // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %U.patt: %pattern_type.9d9 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.422) = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.422) = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.422) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.422) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_10: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/interface/local.carbon b/toolchain/check/testdata/interface/local.carbon index e51d314a16b2..414b97a3180f 100644 --- a/toolchain/check/testdata/interface/local.carbon +++ b/toolchain/check/testdata/interface/local.carbon @@ -61,8 +61,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.G.decl: @I.WithSelf.%I.WithSelf.G.type (%I.WithSelf.G.type.488) = fn_decl @I.WithSelf.G [symbolic = @I.WithSelf.%I.WithSelf.G (constants.%I.WithSelf.G.6c4)] { -// CHECK:STDOUT: %self.patt: @I.WithSelf.G.%pattern_type (%pattern_type.2ec) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.G.%pattern_type (%pattern_type.2ec) = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.G.%pattern_type (%pattern_type.2ec) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.G.%pattern_type (%pattern_type.2ec) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc17_16.1: type = splice_block %.loc17_16.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { @@ -84,8 +84,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc19_9.2 as %I.ref { // CHECK:STDOUT: %empty_tuple.type.as.I.impl.G.decl: %empty_tuple.type.as.I.impl.G.type = fn_decl @empty_tuple.type.as.I.impl.G [concrete = constants.%empty_tuple.type.as.I.impl.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @empty_tuple.type.as.I.impl.%.loc19_9.2 [concrete = constants.%empty_tuple.type] diff --git a/toolchain/check/testdata/interface/member_lookup.carbon b/toolchain/check/testdata/interface/member_lookup.carbon index c610fb29133d..2974597f2125 100644 --- a/toolchain/check/testdata/interface/member_lookup.carbon +++ b/toolchain/check/testdata/interface/member_lookup.carbon @@ -151,8 +151,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %AccessGeneric.decl: %AccessGeneric.type = fn_decl @AccessGeneric [concrete = constants.%AccessGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %I.patt: @AccessGeneric.%pattern_type.loc8_28 (%pattern_type.cbe) = symbolic_binding_pattern I, 1 [concrete] -// CHECK:STDOUT: %return.patt: @AccessGeneric.%pattern_type.loc8_46 (%pattern_type.4f4) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @AccessGeneric.%pattern_type.loc8_46 (%pattern_type.4f4) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @AccessGeneric.%pattern_type.loc8_50 (%pattern_type.4f4) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @AccessGeneric.%pattern_type.loc8_50 (%pattern_type.4f4) = return_slot_pattern %return.param_patt, %ptr.loc8_50.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc8_49: type = name_ref T, %T.loc8_18.2 [symbolic = %T.loc8_18.1 (constants.%T.67d)] // CHECK:STDOUT: %ptr.loc8_50.2: type = ptr_type %T.ref.loc8_49 [symbolic = %ptr.loc8_50.1 (constants.%ptr.e8f)] @@ -174,8 +174,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %AccessConcrete.decl: %AccessConcrete.type = fn_decl @AccessConcrete [concrete = constants.%AccessConcrete] { // CHECK:STDOUT: %I.patt: %pattern_type.e2d = symbolic_binding_pattern I, 0 [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern %return.param_patt, %ptr [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc12_42: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %ptr: type = ptr_type %i32.loc12_42 [concrete = constants.%ptr.235] @@ -226,7 +226,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %pattern_type.loc8_28: type = pattern_type %Interface.type.loc8_43.1 [symbolic = %pattern_type.loc8_28 (constants.%pattern_type.cbe)] // CHECK:STDOUT: %ptr.loc8_50.1: type = ptr_type %T.loc8_18.1 [symbolic = %ptr.loc8_50.1 (constants.%ptr.e8f)] // CHECK:STDOUT: %.loc8_50.1: Core.Form = init_form %ptr.loc8_50.1 [symbolic = %.loc8_50.1 (constants.%.cb6)] -// CHECK:STDOUT: %pattern_type.loc8_46: type = pattern_type %ptr.loc8_50.1 [symbolic = %pattern_type.loc8_46 (constants.%pattern_type.4f4)] +// CHECK:STDOUT: %pattern_type.loc8_50: type = pattern_type %ptr.loc8_50.1 [symbolic = %pattern_type.loc8_50 (constants.%pattern_type.4f4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8: = require_complete_type %ptr.loc8_50.1 [symbolic = %require_complete.loc8 (constants.%require_complete.ef1)] @@ -313,7 +313,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %pattern_type.loc8_28 => constants.%pattern_type.cbe // CHECK:STDOUT: %ptr.loc8_50.1 => constants.%ptr.e8f // CHECK:STDOUT: %.loc8_50.1 => constants.%.cb6 -// CHECK:STDOUT: %pattern_type.loc8_46 => constants.%pattern_type.4f4 +// CHECK:STDOUT: %pattern_type.loc8_50 => constants.%pattern_type.4f4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface.WithSelf(constants.%T.67d, constants.%I.682) { @@ -422,8 +422,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %AccessMissingGeneric.decl: %AccessMissingGeneric.type = fn_decl @AccessMissingGeneric [concrete = constants.%AccessMissingGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %I.patt: @AccessMissingGeneric.%pattern_type.loc8_35 (%pattern_type.cbe) = symbolic_binding_pattern I, 1 [concrete] -// CHECK:STDOUT: %return.patt: @AccessMissingGeneric.%pattern_type.loc8_53 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @AccessMissingGeneric.%pattern_type.loc8_53 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @AccessMissingGeneric.%pattern_type.loc8_56 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @AccessMissingGeneric.%pattern_type.loc8_56 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref.loc8_56 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc8_56: type = name_ref T, %T.loc8_25.2 [symbolic = %T.loc8_25.1 (constants.%T)] // CHECK:STDOUT: %.loc8_56.2: Core.Form = init_form %T.ref.loc8_56 [symbolic = %.loc8_56.1 (constants.%.184)] @@ -444,8 +444,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMissingConcrete.decl: %AccessMissingConcrete.type = fn_decl @AccessMissingConcrete [concrete = constants.%AccessMissingConcrete] { // CHECK:STDOUT: %I.patt: %pattern_type.e2d = symbolic_binding_pattern I, 0 [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc16_49 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16_49: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc16_49: Core.Form = init_form %i32.loc16_49 [concrete = constants.%.ff5] @@ -495,7 +495,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %I.loc8_35.1: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.442) = symbolic_binding I, 1 [symbolic = %I.loc8_35.1 (constants.%I.682)] // CHECK:STDOUT: %pattern_type.loc8_35: type = pattern_type %Interface.type.loc8_50.1 [symbolic = %pattern_type.loc8_35 (constants.%pattern_type.cbe)] // CHECK:STDOUT: %.loc8_56.1: Core.Form = init_form %T.loc8_25.1 [symbolic = %.loc8_56.1 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc8_53: type = pattern_type %T.loc8_25.1 [symbolic = %pattern_type.loc8_53 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc8_56: type = pattern_type %T.loc8_25.1 [symbolic = %pattern_type.loc8_56 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8: = require_complete_type %T.loc8_25.1 [symbolic = %require_complete.loc8 (constants.%require_complete.944)] @@ -550,7 +550,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %I.loc8_35.1 => constants.%I.682 // CHECK:STDOUT: %pattern_type.loc8_35 => constants.%pattern_type.cbe // CHECK:STDOUT: %.loc8_56.1 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc8_53 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc8_56 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface.WithSelf(constants.%T, constants.%I.682) { diff --git a/toolchain/check/testdata/interface/self.carbon b/toolchain/check/testdata/interface/self.carbon index 2ecb309eecfd..6d1f401626d3 100644 --- a/toolchain/check/testdata/interface/self.carbon +++ b/toolchain/check/testdata/interface/self.carbon @@ -43,10 +43,10 @@ interface UseSelf { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %UseSelf.WithSelf.F.decl: @UseSelf.WithSelf.%UseSelf.WithSelf.F.type (%UseSelf.WithSelf.F.type) = fn_decl @UseSelf.WithSelf.F [symbolic = @UseSelf.WithSelf.%UseSelf.WithSelf.F (constants.%UseSelf.WithSelf.F)] { -// CHECK:STDOUT: %self.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type) = return_slot_pattern %return.param_patt, %.loc16_25.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_25: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc16_25: type = facet_access_type %Self.ref.loc16_25 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] diff --git a/toolchain/check/testdata/interface/todo_define_not_default.carbon b/toolchain/check/testdata/interface/todo_define_not_default.carbon index d3b16240b4fc..62d96faf59dc 100644 --- a/toolchain/check/testdata/interface/todo_define_not_default.carbon +++ b/toolchain/check/testdata/interface/todo_define_not_default.carbon @@ -95,12 +95,12 @@ interface I { // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] {} {} // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.18e] // CHECK:STDOUT: %I.WithSelf.G.decl: @I.WithSelf.%I.WithSelf.G.type (%I.WithSelf.G.type) = fn_decl @I.WithSelf.G [symbolic = @I.WithSelf.%I.WithSelf.G (constants.%I.WithSelf.G)] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc18_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc18_27: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc18: Core.Form = init_form %i32.loc18_27 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/interop/cpp/builtins.carbon b/toolchain/check/testdata/interop/cpp/builtins.carbon index 3f042f0544ba..c28ed638aa72 100644 --- a/toolchain/check/testdata/interop/cpp/builtins.carbon +++ b/toolchain/check/testdata/interop/cpp/builtins.carbon @@ -537,8 +537,8 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table = impl_witness_table (%Core.import_ref.01d), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %unsigned_int.foo.cpp_overload_set.value: %unsigned_int.foo.cpp_overload_set.type = cpp_overload_set_value @unsigned_int.foo.cpp_overload_set [concrete = constants.%unsigned_int.foo.cpp_overload_set.value] // CHECK:STDOUT: %unsigned_int.foo.decl: %unsigned_int.foo.type = fn_decl @unsigned_int.foo [concrete = constants.%unsigned_int.foo] { -// CHECK:STDOUT: %self.patt: %pattern_type.5ec = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.5ec = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.5ec = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.5ec = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/abstract.carbon b/toolchain/check/testdata/interop/cpp/class/abstract.carbon index ebb3d4b9999f..971c8733768b 100644 --- a/toolchain/check/testdata/interop/cpp/class/abstract.carbon +++ b/toolchain/check/testdata/interop/cpp/class/abstract.carbon @@ -110,8 +110,8 @@ fn F() -> Cpp.AbstractFinal { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %AbstractFinal.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %AbstractFinal.ref: type = name_ref AbstractFinal, imports.%AbstractFinal.decl [concrete = constants.%AbstractFinal] diff --git a/toolchain/check/testdata/interop/cpp/class/access.carbon b/toolchain/check/testdata/interop/cpp/class/access.carbon index 69c7f044d425..4ffac43a3b8b 100644 --- a/toolchain/check/testdata/interop/cpp/class/access.carbon +++ b/toolchain/check/testdata/interop/cpp/class/access.carbon @@ -1804,8 +1804,8 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} // CHECK:STDOUT: %S.instance_fn.cpp_overload_set.value: %S.instance_fn.cpp_overload_set.type = cpp_overload_set_value @S.instance_fn.cpp_overload_set [concrete = constants.%S.instance_fn.cpp_overload_set.value] // CHECK:STDOUT: %S.instance_fn.decl: %S.instance_fn.type = fn_decl @S.instance_fn [concrete = constants.%S.instance_fn] { -// CHECK:STDOUT: %self.patt: %pattern_type.7da = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7da = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7da = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7da = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %S = ref_param call_param0 // CHECK:STDOUT: %self: ref %S = ref_binding self, %self.param @@ -2533,16 +2533,16 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %Base.ProtectedStatic.decl: %Base.ProtectedStatic.type = fn_decl @Base.ProtectedStatic [concrete = constants.%Base.ProtectedStatic] {} {} // CHECK:STDOUT: %Public.PublicInstance.cpp_overload_set.value: %Public.PublicInstance.cpp_overload_set.type = cpp_overload_set_value @Public.PublicInstance.cpp_overload_set [concrete = constants.%Public.PublicInstance.cpp_overload_set.value] // CHECK:STDOUT: %Base.PublicInstance.decl: %Base.PublicInstance.type = fn_decl @Base.PublicInstance [concrete = constants.%Base.PublicInstance] { -// CHECK:STDOUT: %self.patt: %pattern_type.a3a = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.a3a = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.a3a = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.a3a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0 // CHECK:STDOUT: %self: ref %Base = ref_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %Public.ProtectedInstance.cpp_overload_set.value: %Public.ProtectedInstance.cpp_overload_set.type = cpp_overload_set_value @Public.ProtectedInstance.cpp_overload_set [concrete = constants.%Public.ProtectedInstance.cpp_overload_set.value] // CHECK:STDOUT: %Base.ProtectedInstance.decl: %Base.ProtectedInstance.type = fn_decl @Base.ProtectedInstance [concrete = constants.%Base.ProtectedInstance] { -// CHECK:STDOUT: %self.patt: %pattern_type.a3a = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.a3a = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.a3a = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.a3a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0 // CHECK:STDOUT: %self: ref %Base = ref_binding self, %self.param @@ -2689,16 +2689,16 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %Base.ProtectedStatic.decl: %Base.ProtectedStatic.type = fn_decl @Base.ProtectedStatic [concrete = constants.%Base.ProtectedStatic] {} {} // CHECK:STDOUT: %Protected.PublicInstance.cpp_overload_set.value: %Protected.PublicInstance.cpp_overload_set.type = cpp_overload_set_value @Protected.PublicInstance.cpp_overload_set [concrete = constants.%Protected.PublicInstance.cpp_overload_set.value] // CHECK:STDOUT: %Base.PublicInstance.decl: %Base.PublicInstance.type = fn_decl @Base.PublicInstance [concrete = constants.%Base.PublicInstance] { -// CHECK:STDOUT: %self.patt: %pattern_type.a3a = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.a3a = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.a3a = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.a3a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0 // CHECK:STDOUT: %self: ref %Base = ref_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %Protected.ProtectedInstance.cpp_overload_set.value: %Protected.ProtectedInstance.cpp_overload_set.type = cpp_overload_set_value @Protected.ProtectedInstance.cpp_overload_set [concrete = constants.%Protected.ProtectedInstance.cpp_overload_set.value] // CHECK:STDOUT: %Base.ProtectedInstance.decl: %Base.ProtectedInstance.type = fn_decl @Base.ProtectedInstance [concrete = constants.%Base.ProtectedInstance] { -// CHECK:STDOUT: %self.patt: %pattern_type.a3a = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.a3a = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.a3a = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.a3a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0 // CHECK:STDOUT: %self: ref %Base = ref_binding self, %self.param @@ -2794,16 +2794,16 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %Base.ProtectedStatic.decl: %Base.ProtectedStatic.type = fn_decl @Base.ProtectedStatic [concrete = constants.%Base.ProtectedStatic] {} {} // CHECK:STDOUT: %PublicProtected.PublicInstance.cpp_overload_set.value: %PublicProtected.PublicInstance.cpp_overload_set.type = cpp_overload_set_value @PublicProtected.PublicInstance.cpp_overload_set [concrete = constants.%PublicProtected.PublicInstance.cpp_overload_set.value] // CHECK:STDOUT: %Base.PublicInstance.decl: %Base.PublicInstance.type = fn_decl @Base.PublicInstance [concrete = constants.%Base.PublicInstance] { -// CHECK:STDOUT: %self.patt: %pattern_type.a3a = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.a3a = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.a3a = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.a3a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0 // CHECK:STDOUT: %self: ref %Base = ref_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %PublicProtected.ProtectedInstance.cpp_overload_set.value: %PublicProtected.ProtectedInstance.cpp_overload_set.type = cpp_overload_set_value @PublicProtected.ProtectedInstance.cpp_overload_set [concrete = constants.%PublicProtected.ProtectedInstance.cpp_overload_set.value] // CHECK:STDOUT: %Base.ProtectedInstance.decl: %Base.ProtectedInstance.type = fn_decl @Base.ProtectedInstance [concrete = constants.%Base.ProtectedInstance] { -// CHECK:STDOUT: %self.patt: %pattern_type.a3a = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.a3a = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.a3a = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.a3a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0 // CHECK:STDOUT: %self: ref %Base = ref_binding self, %self.param diff --git a/toolchain/check/testdata/interop/cpp/class/base.carbon b/toolchain/check/testdata/interop/cpp/class/base.carbon index f7bfa7f1a596..db49f24cbdaf 100644 --- a/toolchain/check/testdata/interop/cpp/class/base.carbon +++ b/toolchain/check/testdata/interop/cpp/class/base.carbon @@ -511,10 +511,10 @@ class V { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %ConvertPtr.decl: %ConvertPtr.type = fn_decl @ConvertPtr [concrete = constants.%ConvertPtr] { -// CHECK:STDOUT: %d.patt: %pattern_type.5c86 = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.5c86 = value_param_pattern %d.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.72a = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.72a = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.5c86 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.5c86 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.72a = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.72a = return_slot_pattern %return.param_patt, %ptr.loc7_43 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Cpp.ref.loc7_35: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Base.ref: type = name_ref Base, imports.%Base.decl [concrete = constants.%Base] @@ -531,8 +531,8 @@ class V { // CHECK:STDOUT: %return: ref %ptr.fb2 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConvertVal.decl: %ConvertVal.type = fn_decl @ConvertVal [concrete = constants.%ConvertVal] { -// CHECK:STDOUT: %d.patt: %pattern_type.5de = value_binding_pattern d [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.5de = value_param_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.5de = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.5de = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %d.param: %Derived = value_param call_param0 // CHECK:STDOUT: %.loc15: type = splice_block %Derived.ref [concrete = constants.%Derived] { diff --git a/toolchain/check/testdata/interop/cpp/class/class.carbon b/toolchain/check/testdata/interop/cpp/class/class.carbon index 59e33ffacbcd..6806db54922d 100644 --- a/toolchain/check/testdata/interop/cpp/class/class.carbon +++ b/toolchain/check/testdata/interop/cpp/class/class.carbon @@ -244,8 +244,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.patt: %pattern_type = value_binding_pattern bar [concrete] -// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern %bar.patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bar.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr] { @@ -279,8 +279,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.patt: %pattern_type = value_binding_pattern bar [concrete] -// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern %bar.patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bar.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr] { @@ -314,8 +314,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.patt: %pattern_type = value_binding_pattern bar [concrete] -// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern %bar.patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bar.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr] { @@ -417,8 +417,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.patt: %pattern_type = value_binding_pattern bar [concrete] -// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern %bar.patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bar.param: %ptr.f68 = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.f68] { @@ -473,8 +473,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: %Bar.decl: type = class_decl @Bar [concrete = constants.%Bar] {} {} // CHECK:STDOUT: %Bar.f.cpp_overload_set.value: %Bar.f.cpp_overload_set.type = cpp_overload_set_value @Bar.f.cpp_overload_set [concrete = constants.%Bar.f.cpp_overload_set.value] // CHECK:STDOUT: %Bar.f.decl: %Bar.f.type = fn_decl @Bar.f [concrete = constants.%Bar.f] { -// CHECK:STDOUT: %self.patt: %pattern_type.07b = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.07b = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.07b = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.07b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Bar = ref_param call_param0 // CHECK:STDOUT: %self: ref %Bar = ref_binding self, %self.param @@ -483,8 +483,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.patt: %pattern_type.146 = value_binding_pattern bar [concrete] -// CHECK:STDOUT: %bar.param_patt: %pattern_type.146 = value_param_pattern %bar.patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type.146 = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type.146 = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bar.param: %ptr.f68 = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr.f68] { @@ -586,8 +586,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.patt: %pattern_type = value_binding_pattern bar [concrete] -// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern %bar.patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bar.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr] { diff --git a/toolchain/check/testdata/interop/cpp/class/method.carbon b/toolchain/check/testdata/interop/cpp/class/method.carbon index 7aa4c5e2ac04..29981c4384c0 100644 --- a/toolchain/check/testdata/interop/cpp/class/method.carbon +++ b/toolchain/check/testdata/interop/cpp/class/method.carbon @@ -289,16 +289,16 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: } // CHECK:STDOUT: %HasQualifiers.plain.cpp_overload_set.value: %HasQualifiers.plain.cpp_overload_set.type = cpp_overload_set_value @HasQualifiers.plain.cpp_overload_set [concrete = constants.%HasQualifiers.plain.cpp_overload_set.value] // CHECK:STDOUT: %HasQualifiers.plain.decl: %HasQualifiers.plain.type = fn_decl @HasQualifiers.plain [concrete = constants.%HasQualifiers.plain] { -// CHECK:STDOUT: %self.patt: %pattern_type.e15 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.e15 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.e15 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.e15 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %HasQualifiers = ref_param call_param0 // CHECK:STDOUT: %self: ref %HasQualifiers = ref_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %HasQualifiers.ref_this.cpp_overload_set.value: %HasQualifiers.ref_this.cpp_overload_set.type = cpp_overload_set_value @HasQualifiers.ref_this.cpp_overload_set [concrete = constants.%HasQualifiers.ref_this.cpp_overload_set.value] // CHECK:STDOUT: %HasQualifiers.ref_this.decl: %HasQualifiers.ref_this.type = fn_decl @HasQualifiers.ref_this [concrete = constants.%HasQualifiers.ref_this] { -// CHECK:STDOUT: %self.patt: %pattern_type.e15 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.e15 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.e15 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.e15 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %HasQualifiers = ref_param call_param0 // CHECK:STDOUT: %self: ref %HasQualifiers = ref_binding self, %self.param @@ -387,8 +387,8 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %NoRefQualifier.F.decl.3dba03.2: %NoRefQualifier.F.type.b65611.2 = fn_decl @NoRefQualifier.F.2 [concrete = constants.%NoRefQualifier.F.d50a5a.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.a91 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.a91 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.a91 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.a91 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -403,8 +403,8 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %WithRefQualifier.F.decl.e3f32b.2: %WithRefQualifier.F.type.7c19e2.2 = fn_decl @WithRefQualifier.F.2 [concrete = constants.%WithRefQualifier.F.d90b51.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.4ed = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.4ed = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.4ed = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.4ed = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -533,8 +533,8 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: } // CHECK:STDOUT: %ExplicitObjectParam.G.cpp_overload_set.value: %ExplicitObjectParam.G.cpp_overload_set.type = cpp_overload_set_value @ExplicitObjectParam.G.cpp_overload_set [concrete = constants.%ExplicitObjectParam.G.cpp_overload_set.value] // CHECK:STDOUT: %ExplicitObjectParam.G.decl: %ExplicitObjectParam.G.type = fn_decl @ExplicitObjectParam.G [concrete = constants.%ExplicitObjectParam.G] { -// CHECK:STDOUT: %self.patt: %pattern_type.7ce = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7ce = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7ce = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %i32 = value_param call_param0 // CHECK:STDOUT: @@ -609,8 +609,8 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %ExplicitObjectParam.F.decl.28f5af.2: %ExplicitObjectParam.F.type.5d25a8.2 = fn_decl @ExplicitObjectParam.F.2 [concrete = constants.%ExplicitObjectParam.F.28cf2e.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.7ce = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7ce = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7ce = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %i32 = value_param call_param0 // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/struct.carbon b/toolchain/check/testdata/interop/cpp/class/struct.carbon index 1c0461c2ff62..7a36a643c535 100644 --- a/toolchain/check/testdata/interop/cpp/class/struct.carbon +++ b/toolchain/check/testdata/interop/cpp/class/struct.carbon @@ -48,8 +48,8 @@ fn MyF(bar: Cpp.Bar*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.patt: %pattern_type = value_binding_pattern bar [concrete] -// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern %bar.patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bar.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr] { diff --git a/toolchain/check/testdata/interop/cpp/class/union.carbon b/toolchain/check/testdata/interop/cpp/class/union.carbon index e75f9425cf29..f069f97efda7 100644 --- a/toolchain/check/testdata/interop/cpp/class/union.carbon +++ b/toolchain/check/testdata/interop/cpp/class/union.carbon @@ -193,8 +193,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.patt: %pattern_type = value_binding_pattern bar [concrete] -// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern %bar.patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bar.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr] { @@ -228,8 +228,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.patt: %pattern_type = value_binding_pattern bar [concrete] -// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern %bar.patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bar.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr] { @@ -263,8 +263,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.patt: %pattern_type = value_binding_pattern bar [concrete] -// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern %bar.patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bar.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr] { @@ -366,8 +366,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.patt: %pattern_type = value_binding_pattern bar [concrete] -// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern %bar.patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bar.param: %ptr.f68 = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.f68] { @@ -424,8 +424,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.patt: %pattern_type = value_binding_pattern bar [concrete] -// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern %bar.patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bar.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr] { diff --git a/toolchain/check/testdata/interop/cpp/deref.carbon b/toolchain/check/testdata/interop/cpp/deref.carbon index c56dac7b5376..1b316d1826d5 100644 --- a/toolchain/check/testdata/interop/cpp/deref.carbon +++ b/toolchain/check/testdata/interop/cpp/deref.carbon @@ -153,8 +153,8 @@ fn TestDerefFail(not_ptr: Cpp.NotAPtr) { // CHECK:STDOUT: %Core.import_ref.83d: %CppUnsafeDeref.assoc_type = import_ref Core//prelude/operators/deref, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc1] // CHECK:STDOUT: %Core.import_ref.ad7: @CppUnsafeDeref.WithSelf.%CppUnsafeDeref.WithSelf.Op.type (%CppUnsafeDeref.WithSelf.Op.type.792) = import_ref Core//prelude/operators/deref, loc{{\d+_\d+}}, loaded [symbolic = @CppUnsafeDeref.WithSelf.%CppUnsafeDeref.WithSelf.Op (constants.%CppUnsafeDeref.WithSelf.Op.a80)] // CHECK:STDOUT: %ConstDeref.cpp_operator.decl: %ConstDeref.cpp_operator.type = fn_decl @ConstDeref.cpp_operator [concrete = constants.%ConstDeref.cpp_operator] { -// CHECK:STDOUT: %self.patt: %pattern_type.3fb = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.3fb = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.3fb = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.3fb = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: %self.param: %ConstDeref = value_param call_param0 diff --git a/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon b/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon index ea2c7c5474e5..f230d2b42ea8 100644 --- a/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon @@ -90,8 +90,8 @@ fn G() { // CHECK:STDOUT: %C.F.cpp_overload_set.value: %C.F.cpp_overload_set.type = cpp_overload_set_value @C.F.cpp_overload_set [concrete = constants.%C.F.cpp_overload_set.value] // CHECK:STDOUT: %int_1.1d6: %.bb7 = int_value 1 [concrete = constants.%int_1.1d6] // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { -// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.217 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 diff --git a/toolchain/check/testdata/interop/cpp/enum/incomplete.carbon b/toolchain/check/testdata/interop/cpp/enum/incomplete.carbon index 93505ac95cd0..a3fde2d218db 100644 --- a/toolchain/check/testdata/interop/cpp/enum/incomplete.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/incomplete.carbon @@ -76,8 +76,8 @@ fn MyF() { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %e.patt: %pattern_type = value_binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: %pattern_type = value_param_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %UnsizedEnum = value_param call_param0 // CHECK:STDOUT: %.loc12: type = splice_block %UnsizedEnum.ref [concrete = constants.%UnsizedEnum] { diff --git a/toolchain/check/testdata/interop/cpp/function/default_arg.carbon b/toolchain/check/testdata/interop/cpp/function/default_arg.carbon index ea0780a431ca..2e456f8a6ab6 100644 --- a/toolchain/check/testdata/interop/cpp/function/default_arg.carbon +++ b/toolchain/check/testdata/interop/cpp/function/default_arg.carbon @@ -225,8 +225,8 @@ fn Call() { // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: %X.B.cpp_overload_set.value: %X.B.cpp_overload_set.type = cpp_overload_set_value @X.B.cpp_overload_set [concrete = constants.%X.B.cpp_overload_set.value] // CHECK:STDOUT: %X.B.decl: %X.B.type = fn_decl @X.B [concrete = constants.%X.B] { -// CHECK:STDOUT: %self.patt: %pattern_type.46b = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.46b = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.46b = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.46b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %X = ref_param call_param0 @@ -246,8 +246,8 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %X.cpp_destructor.decl: %X.cpp_destructor.type = fn_decl @X.cpp_destructor [concrete = constants.%X.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.46b = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.46b = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.46b = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.46b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %X = ref_param call_param0 // CHECK:STDOUT: %self: ref %X = ref_binding self, %self.param @@ -510,10 +510,10 @@ fn Call() { // CHECK:STDOUT: %GlobalNoReturn.cpp_overload_set.value: %GlobalNoReturn.cpp_overload_set.type = cpp_overload_set_value @GlobalNoReturn.cpp_overload_set [concrete = constants.%GlobalNoReturn.cpp_overload_set.value] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.decl.305fd1.1: %GlobalNoReturn__carbon_thunk.type.f197cb.1 = fn_decl @GlobalNoReturn__carbon_thunk.1 [concrete = constants.%GlobalNoReturn__carbon_thunk.ea1e66.1] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.4 [concrete = constants.%i32] { @@ -535,12 +535,12 @@ fn Call() { // CHECK:STDOUT: %ImplicitAs.impl_witness_table.74f = impl_witness_table (%Core.import_ref.42d), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %GlobalReturnInt.cpp_overload_set.value: %GlobalReturnInt.cpp_overload_set.type = cpp_overload_set_value @GlobalReturnInt.cpp_overload_set [concrete = constants.%GlobalReturnInt.cpp_overload_set.value] // CHECK:STDOUT: %GlobalReturnInt__carbon_thunk.decl: %GlobalReturnInt__carbon_thunk.type = fn_decl @GlobalReturnInt__carbon_thunk [concrete = constants.%GlobalReturnInt__carbon_thunk] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.1: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.1: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -563,12 +563,12 @@ fn Call() { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.decl.305fd1.2: %GlobalNoReturn__carbon_thunk.type.f197cb.2 = fn_decl @GlobalNoReturn__carbon_thunk.2 [concrete = constants.%GlobalNoReturn__carbon_thunk.ea1e66.2] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.7ce = value_binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.7ce = value_param_pattern %c.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7ce = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.7ce = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.6 [concrete = constants.%i32] { @@ -595,10 +595,10 @@ fn Call() { // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: %X.B.cpp_overload_set.value: %X.B.cpp_overload_set.type = cpp_overload_set_value @X.B.cpp_overload_set [concrete = constants.%X.B.cpp_overload_set.value] // CHECK:STDOUT: %B__carbon_thunk.decl: %B__carbon_thunk.type = fn_decl @B__carbon_thunk [concrete = constants.%B__carbon_thunk] { -// CHECK:STDOUT: %this.patt: %pattern_type.46b = ref_binding_pattern this [concrete] -// CHECK:STDOUT: %this.param_patt: %pattern_type.46b = ref_param_pattern %this.patt [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %this.param_patt: %pattern_type.46b = ref_param_pattern [concrete] +// CHECK:STDOUT: %this.patt: %pattern_type.46b = at_binding_pattern this, %this.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %this.param: ref %X = ref_param call_param0 // CHECK:STDOUT: %this: ref %X = ref_binding this, %this.param @@ -612,8 +612,8 @@ fn Call() { // CHECK:STDOUT: } // CHECK:STDOUT: %X.C.cpp_overload_set.value: %X.C.cpp_overload_set.type = cpp_overload_set_value @X.C.cpp_overload_set [concrete = constants.%X.C.cpp_overload_set.value] // CHECK:STDOUT: %C__carbon_thunk.decl: %C__carbon_thunk.type = fn_decl @C__carbon_thunk [concrete = constants.%C__carbon_thunk] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -625,10 +625,10 @@ fn Call() { // CHECK:STDOUT: } // CHECK:STDOUT: %X.D.cpp_overload_set.value: %X.D.cpp_overload_set.type = cpp_overload_set_value @X.D.cpp_overload_set [concrete = constants.%X.D.cpp_overload_set.value] // CHECK:STDOUT: %D__carbon_thunk.decl: %D__carbon_thunk.type = fn_decl @D__carbon_thunk [concrete = constants.%D__carbon_thunk] { -// CHECK:STDOUT: %_.patt: %pattern_type.45c = value_binding_pattern _ [concrete] -// CHECK:STDOUT: %_.param_patt: %pattern_type.45c = value_param_pattern %_.patt [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %_.param_patt: %pattern_type.45c = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.45c = at_binding_pattern _, %_.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %_.param: %ptr.1f9 = value_param call_param0 // CHECK:STDOUT: %_: %ptr.1f9 = value_binding _, %_.param @@ -642,8 +642,8 @@ fn Call() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %X.cpp_destructor.decl: %X.cpp_destructor.type = fn_decl @X.cpp_destructor [concrete = constants.%X.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.46b = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.46b = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.46b = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.46b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %X = ref_param call_param0 // CHECK:STDOUT: %self: ref %X = ref_binding self, %self.param @@ -801,8 +801,8 @@ fn Call() { // CHECK:STDOUT: %addr: %ptr.1f9 = addr_of %.loc13_7.4 // CHECK:STDOUT: %D__carbon_thunk.call: init %empty_tuple.type = call imports.%D__carbon_thunk.decl(%addr, %.loc13_19.2) // CHECK:STDOUT: %X.Op.decl: %X.Op.type = fn_decl @X.Op [concrete = constants.%X.Op] { -// CHECK:STDOUT: %self.patt: %pattern_type.46b = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.46b = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.46b = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.46b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %X = ref_param call_param0 // CHECK:STDOUT: %self: ref %X = ref_binding self, %self.param @@ -893,8 +893,8 @@ fn Call() { // CHECK:STDOUT: %X.C.cpp_overload_set.value: %X.C.cpp_overload_set.type = cpp_overload_set_value @X.C.cpp_overload_set [concrete = constants.%X.C.cpp_overload_set.value] // CHECK:STDOUT: %X.D.cpp_overload_set.value: %X.D.cpp_overload_set.type = cpp_overload_set_value @X.D.cpp_overload_set [concrete = constants.%X.D.cpp_overload_set.value] // CHECK:STDOUT: %X.cpp_destructor.decl: %X.cpp_destructor.type = fn_decl @X.cpp_destructor [concrete = constants.%X.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.46b = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.46b = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.46b = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.46b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %X = ref_param call_param0 // CHECK:STDOUT: %self: ref %X = ref_binding self, %self.param diff --git a/toolchain/check/testdata/interop/cpp/function/full_semir.carbon b/toolchain/check/testdata/interop/cpp/function/full_semir.carbon index 431203997bd9..04f32f238934 100644 --- a/toolchain/check/testdata/interop/cpp/function/full_semir.carbon +++ b/toolchain/check/testdata/interop/cpp/function/full_semir.carbon @@ -135,8 +135,8 @@ fn F() { // CHECK:STDOUT: %Core.import_ref.ca0: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.09e) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.dbe)] // CHECK:STDOUT: %As.impl_witness_table.9fc = impl_witness_table (%Core.import_ref.ca0), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { -// CHECK:STDOUT: %a.patt: %pattern_type.54c = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.54c = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54c = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54c = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %ptr.251 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block constants.%ptr.251 [concrete = constants.%ptr.251] { @@ -246,8 +246,8 @@ fn F() { // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -329,8 +329,8 @@ fn F() { // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %foo_short.cpp_overload_set.value: %foo_short.cpp_overload_set.type = cpp_overload_set_value @foo_short.cpp_overload_set [concrete = constants.%foo_short.cpp_overload_set.value] // CHECK:STDOUT: %foo_short__carbon_thunk.decl: %foo_short__carbon_thunk.type = fn_decl @foo_short__carbon_thunk [concrete = constants.%foo_short__carbon_thunk] { -// CHECK:STDOUT: %return.patt: %pattern_type.54c = value_binding_pattern r#return [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.54c = value_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.54c = value_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.54c = at_binding_pattern r#return, %return.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %return.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block constants.%ptr [concrete = constants.%ptr] { diff --git a/toolchain/check/testdata/interop/cpp/function/operators.carbon b/toolchain/check/testdata/interop/cpp/function/operators.carbon index 48d37a085d29..26827d29686f 100644 --- a/toolchain/check/testdata/interop/cpp/function/operators.carbon +++ b/toolchain/check/testdata/interop/cpp/function/operators.carbon @@ -1106,8 +1106,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.217 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param @@ -1436,8 +1436,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_operator.decl: %C.cpp_operator.type = fn_decl @C.cpp_operator [concrete = constants.%C.cpp_operator] { -// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.217 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -1446,8 +1446,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.217 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param @@ -2023,8 +2023,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.217 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param @@ -2199,8 +2199,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.217 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param @@ -2356,8 +2356,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.217 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param @@ -2485,8 +2485,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.69f = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.69f = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.69f = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.69f = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param @@ -2641,15 +2641,15 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C2.cpp_destructor.decl: %C2.cpp_destructor.type = fn_decl @C2.cpp_destructor [concrete = constants.%C2.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.846 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.846 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.846 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.846 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C2 = ref_param call_param0 // CHECK:STDOUT: %self: ref %C2 = ref_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %C1.cpp_destructor.decl: %C1.cpp_destructor.type = fn_decl @C1.cpp_destructor [concrete = constants.%C1.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.20f = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.20f = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.20f = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.20f = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C1 = ref_param call_param0 // CHECK:STDOUT: %self: ref %C1 = ref_binding self, %self.param @@ -2793,8 +2793,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.69f = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.69f = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.69f = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.69f = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param @@ -2903,8 +2903,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.b28 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.b28 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.b28 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.b28 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param @@ -3031,8 +3031,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.84b = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.84b = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.84b = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.84b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param @@ -3159,8 +3159,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_operator.decl.828f43.1: %C.cpp_operator.type.dab96a.1 = fn_decl @C.cpp_operator.1 [concrete = constants.%C.cpp_operator.d21c75.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.217 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 @@ -3173,8 +3173,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_operator.decl.828f43.2: %C.cpp_operator.type.dab96a.2 = fn_decl @C.cpp_operator.2 [concrete = constants.%C.cpp_operator.d21c75.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.217 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 @@ -3187,8 +3187,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.217 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param @@ -3327,8 +3327,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.217 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param diff --git a/toolchain/check/testdata/interop/cpp/function/overloads.carbon b/toolchain/check/testdata/interop/cpp/function/overloads.carbon index 02e04c6342c5..049f79fb31de 100644 --- a/toolchain/check/testdata/interop/cpp/function/overloads.carbon +++ b/toolchain/check/testdata/interop/cpp/function/overloads.carbon @@ -860,8 +860,8 @@ fn F() { // CHECK:STDOUT: %Core.import_ref.ca0: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.09e) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.dbe)] // CHECK:STDOUT: %As.impl_witness_table.9fc = impl_witness_table (%Core.import_ref.ca0), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %bar__carbon_thunk.decl: %bar__carbon_thunk.type = fn_decl @bar__carbon_thunk [concrete = constants.%bar__carbon_thunk] { -// CHECK:STDOUT: %a.patt: %pattern_type.54c = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.54c = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54c = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54c = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %ptr.251 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block constants.%ptr.251 [concrete = constants.%ptr.251] { @@ -974,8 +974,8 @@ fn F() { // CHECK:STDOUT: %Core.import_ref.ca0: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.09e) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.dbe)] // CHECK:STDOUT: %As.impl_witness_table.9fc = impl_witness_table (%Core.import_ref.ca0), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -1105,8 +1105,8 @@ fn F() { // CHECK:STDOUT: %Core.import_ref.ca0: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.09e) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.dbe)] // CHECK:STDOUT: %As.impl_witness_table.9fc = impl_witness_table (%Core.import_ref.ca0), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo.decl.bd967b.1: %foo.type.a5abd1.1 = fn_decl @foo.1 [concrete = constants.%foo.23ea43.1] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -1117,8 +1117,8 @@ fn F() { // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { -// CHECK:STDOUT: %a.patt: %pattern_type.54c = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.54c = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54c = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54c = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %ptr.251 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block constants.%ptr.251 [concrete = constants.%ptr.251] { @@ -1250,8 +1250,8 @@ fn F() { // CHECK:STDOUT: %Core.import_ref.ca0: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.09e) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.dbe)] // CHECK:STDOUT: %As.impl_witness_table.9fc = impl_witness_table (%Core.import_ref.ca0), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -1263,8 +1263,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %bar.cpp_overload_set.value: %bar.cpp_overload_set.type = cpp_overload_set_value @bar.cpp_overload_set [concrete = constants.%bar.cpp_overload_set.value] // CHECK:STDOUT: %bar.decl: %bar.type = fn_decl @bar [concrete = constants.%bar] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -1446,10 +1446,10 @@ fn F() { // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %foo.decl.bd967b.1: %foo.type.a5abd1.1 = fn_decl @foo.1 [concrete = constants.%foo.23ea43.1] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.1: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.1: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -1468,10 +1468,10 @@ fn F() { // CHECK:STDOUT: %Core.import_ref.42d: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.4e6) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3c2)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.74f = impl_witness_table (%Core.import_ref.42d), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %foo.decl.bd967b.2: %foo.type.a5abd1.2 = fn_decl @foo.2 [concrete = constants.%foo.23ea43.2] { -// CHECK:STDOUT: %a.patt: %pattern_type.95b = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.95b = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.95b = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.95b = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.95b = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.95b = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.95b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.95b = return_slot_pattern %return.param_patt, %i64.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %int_64.1: Core.IntLiteral = int_value 64 [concrete = constants.%int_64] // CHECK:STDOUT: %i64.1: type = class_type @Int, @Int(constants.%int_64) [concrete = constants.%i64] @@ -1487,10 +1487,10 @@ fn F() { // CHECK:STDOUT: %return: ref %i64 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { -// CHECK:STDOUT: %a.patt: %pattern_type.662 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.662 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.662 = value_binding_pattern r#return [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.662 = value_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.662 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.662 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.662 = value_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.662 = at_binding_pattern r#return, %return.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %ptr.974 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block constants.%ptr.974 [concrete = constants.%ptr.974] { @@ -1880,8 +1880,8 @@ fn F() { // CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.82e), @Core.IntLiteral.as.Negate.impl [concrete] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -1994,8 +1994,8 @@ fn F() { // CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.82e), @Core.IntLiteral.as.Negate.impl [concrete] // CHECK:STDOUT: %Core.UInt: %UInt.type = import_ref Core//prelude/parts/uint, UInt, loaded [concrete = constants.%UInt.generic] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.4a9 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.4a9 = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.4a9 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4a9 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %u32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %u32.2 [concrete = constants.%u32] { @@ -2114,10 +2114,10 @@ fn F() { // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/parts/float, Float, loaded [concrete = constants.%Float.generic] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { -// CHECK:STDOUT: %a.patt: %pattern_type.0ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.0ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0ce = value_binding_pattern r#return [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0ce = value_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.0ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.0ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.0ce = value_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.0ce = at_binding_pattern r#return, %return.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %ptr.bcc = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block constants.%ptr.bcc [concrete = constants.%ptr.bcc] { @@ -2264,10 +2264,10 @@ fn F() { // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/parts/float, Float, loaded [concrete = constants.%Float.generic] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { -// CHECK:STDOUT: %a.patt: %pattern_type.0ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.0ce = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0ce = value_binding_pattern r#return [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0ce = value_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.0ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.0ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.0ce = value_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.0ce = at_binding_pattern r#return, %return.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %ptr.bcc = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block constants.%ptr.bcc [concrete = constants.%ptr.bcc] { @@ -2384,8 +2384,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %PassNoFields.cpp_overload_set.value: %PassNoFields.cpp_overload_set.type = cpp_overload_set_value @PassNoFields.cpp_overload_set [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %PassNoFields__carbon_thunk.decl: %PassNoFields__carbon_thunk.type = fn_decl @PassNoFields__carbon_thunk [concrete = constants.%PassNoFields__carbon_thunk] { -// CHECK:STDOUT: %s.patt: %pattern_type.a92 = value_binding_pattern s [concrete] -// CHECK:STDOUT: %s.param_patt: %pattern_type.a92 = value_param_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.param_patt: %pattern_type.a92 = value_param_pattern [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.a92 = at_binding_pattern s, %s.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %s.param: %ptr.dd0 = value_param call_param0 // CHECK:STDOUT: %s: %ptr.dd0 = value_binding s, %s.param @@ -2405,8 +2405,8 @@ fn F() { // CHECK:STDOUT: import Cpp "struct_init.h" // CHECK:STDOUT: } // CHECK:STDOUT: %MakeEmpty.decl: %MakeEmpty.type = fn_decl @MakeEmpty [concrete = constants.%MakeEmpty] { -// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern %return.param_patt, %.loc6_20.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_20.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc6_20.2: type = converted %.loc6_20.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -2415,10 +2415,10 @@ fn F() { // CHECK:STDOUT: %return: ref %empty_struct_type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Empty.decl: %Empty.type = fn_decl @Empty [concrete = constants.%Empty] { -// CHECK:STDOUT: %value.patt: %pattern_type.a96 = value_binding_pattern value [concrete] -// CHECK:STDOUT: %value.param_patt: %pattern_type.a96 = value_param_pattern %value.patt [concrete] -// CHECK:STDOUT: %reference.patt: %pattern_type.a96 = ref_binding_pattern reference [concrete] -// CHECK:STDOUT: %reference.param_patt: %pattern_type.a96 = ref_param_pattern %reference.patt [concrete] +// CHECK:STDOUT: %value.param_patt: %pattern_type.a96 = value_param_pattern [concrete] +// CHECK:STDOUT: %value.patt: %pattern_type.a96 = at_binding_pattern value, %value.param_patt [concrete] +// CHECK:STDOUT: %reference.param_patt: %pattern_type.a96 = ref_param_pattern [concrete] +// CHECK:STDOUT: %reference.patt: %pattern_type.a96 = at_binding_pattern reference, %reference.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %value.param: %empty_struct_type = value_param call_param0 // CHECK:STDOUT: %.loc8_18.1: type = splice_block %.loc8_18.3 [concrete = constants.%empty_struct_type] { @@ -2566,8 +2566,8 @@ fn F() { // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %PassThreeFields.cpp_overload_set.value: %PassThreeFields.cpp_overload_set.type = cpp_overload_set_value @PassThreeFields.cpp_overload_set [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.decl: %PassThreeFields__carbon_thunk.type = fn_decl @PassThreeFields__carbon_thunk [concrete = constants.%PassThreeFields__carbon_thunk] { -// CHECK:STDOUT: %t.patt: %pattern_type.7bb = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: %pattern_type.7bb = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.7bb = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.7bb = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %t.param: %ptr.f81 = value_param call_param0 // CHECK:STDOUT: %t: %ptr.f81 = value_binding t, %t.param @@ -2587,8 +2587,8 @@ fn F() { // CHECK:STDOUT: import Cpp "struct_init.h" // CHECK:STDOUT: } // CHECK:STDOUT: %MakeThreeFields.decl: %MakeThreeFields.type = fn_decl @MakeThreeFields [concrete = constants.%MakeThreeFields] { -// CHECK:STDOUT: %return.patt: %pattern_type.8ae = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.8ae = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.8ae = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.8ae = return_slot_pattern %return.param_patt, %struct_type.a.b.c [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_30: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc6_39: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -2599,10 +2599,10 @@ fn F() { // CHECK:STDOUT: %return: ref %struct_type.a.b.c.0b6 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ThreeFields.decl: %ThreeFields.type = fn_decl @ThreeFields.loc8 [concrete = constants.%ThreeFields.c3a] { -// CHECK:STDOUT: %value.patt: %pattern_type.8ae = value_binding_pattern value [concrete] -// CHECK:STDOUT: %value.param_patt: %pattern_type.8ae = value_param_pattern %value.patt [concrete] -// CHECK:STDOUT: %reference.patt: %pattern_type.8ae = ref_binding_pattern reference [concrete] -// CHECK:STDOUT: %reference.param_patt: %pattern_type.8ae = ref_param_pattern %reference.patt [concrete] +// CHECK:STDOUT: %value.param_patt: %pattern_type.8ae = value_param_pattern [concrete] +// CHECK:STDOUT: %value.patt: %pattern_type.8ae = at_binding_pattern value, %value.param_patt [concrete] +// CHECK:STDOUT: %reference.param_patt: %pattern_type.8ae = ref_param_pattern [concrete] +// CHECK:STDOUT: %reference.patt: %pattern_type.8ae = at_binding_pattern reference, %reference.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %value.param: %struct_type.a.b.c.0b6 = value_param call_param0 // CHECK:STDOUT: %.loc8_49: type = splice_block %struct_type.a.b.c.loc8_49 [concrete = constants.%struct_type.a.b.c.0b6] { @@ -2865,8 +2865,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %PassNoFields.cpp_overload_set.value: %PassNoFields.cpp_overload_set.type = cpp_overload_set_value @PassNoFields.cpp_overload_set [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %PassNoFields__carbon_thunk.decl: %PassNoFields__carbon_thunk.type = fn_decl @PassNoFields__carbon_thunk [concrete = constants.%PassNoFields__carbon_thunk] { -// CHECK:STDOUT: %s.patt: %pattern_type.a92 = value_binding_pattern s [concrete] -// CHECK:STDOUT: %s.param_patt: %pattern_type.a92 = value_param_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.param_patt: %pattern_type.a92 = value_param_pattern [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.a92 = at_binding_pattern s, %s.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %s.param: %ptr.dd0 = value_param call_param0 // CHECK:STDOUT: %s: %ptr.dd0 = value_binding s, %s.param @@ -2875,8 +2875,8 @@ fn F() { // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %PassThreeFields.cpp_overload_set.value: %PassThreeFields.cpp_overload_set.type = cpp_overload_set_value @PassThreeFields.cpp_overload_set [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.decl: %PassThreeFields__carbon_thunk.type = fn_decl @PassThreeFields__carbon_thunk [concrete = constants.%PassThreeFields__carbon_thunk] { -// CHECK:STDOUT: %t.patt: %pattern_type.7bb = value_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: %pattern_type.7bb = value_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.7bb = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.7bb = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %t.param: %ptr.f81 = value_param call_param0 // CHECK:STDOUT: %t: %ptr.f81 = value_binding t, %t.param @@ -2897,8 +2897,8 @@ fn F() { // CHECK:STDOUT: import Cpp "struct_init.h" // CHECK:STDOUT: } // CHECK:STDOUT: %MakeEmpty.decl: %MakeEmpty.type = fn_decl @MakeEmpty [concrete = constants.%MakeEmpty] { -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %.loc9_20.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_20.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_20.2: type = converted %.loc9_20.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -2907,10 +2907,10 @@ fn F() { // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Empty.decl: %Empty.type = fn_decl @Empty [concrete = constants.%Empty] { -// CHECK:STDOUT: %value.patt: %pattern_type.cb1 = value_binding_pattern value [concrete] -// CHECK:STDOUT: %value.param_patt: %pattern_type.cb1 = value_param_pattern %value.patt [concrete] -// CHECK:STDOUT: %reference.patt: %pattern_type.cb1 = ref_binding_pattern reference [concrete] -// CHECK:STDOUT: %reference.param_patt: %pattern_type.cb1 = ref_param_pattern %reference.patt [concrete] +// CHECK:STDOUT: %value.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %value.patt: %pattern_type.cb1 = at_binding_pattern value, %value.param_patt [concrete] +// CHECK:STDOUT: %reference.param_patt: %pattern_type.cb1 = ref_param_pattern [concrete] +// CHECK:STDOUT: %reference.patt: %pattern_type.cb1 = at_binding_pattern reference, %reference.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %value.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc11_18.1: type = splice_block %.loc11_18.3 [concrete = constants.%empty_tuple.type] { @@ -2926,8 +2926,8 @@ fn F() { // CHECK:STDOUT: %reference: ref %empty_tuple.type = ref_binding reference, %reference.param // CHECK:STDOUT: } // CHECK:STDOUT: %MakeThreeFields.decl: %MakeThreeFields.type = fn_decl @MakeThreeFields [concrete = constants.%MakeThreeFields] { -// CHECK:STDOUT: %return.patt: %pattern_type.b5a = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.b5a = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b5a = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b5a = return_slot_pattern %return.param_patt, %.loc65_39.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc65_26: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc65_31: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -2939,10 +2939,10 @@ fn F() { // CHECK:STDOUT: %return: ref %tuple.type.189 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ThreeFields.decl: %ThreeFields.type = fn_decl @ThreeFields.loc67 [concrete = constants.%ThreeFields.c3a] { -// CHECK:STDOUT: %value.patt: %pattern_type.b5a = value_binding_pattern value [concrete] -// CHECK:STDOUT: %value.param_patt: %pattern_type.b5a = value_param_pattern %value.patt [concrete] -// CHECK:STDOUT: %reference.patt: %pattern_type.b5a = ref_binding_pattern reference [concrete] -// CHECK:STDOUT: %reference.param_patt: %pattern_type.b5a = ref_param_pattern %reference.patt [concrete] +// CHECK:STDOUT: %value.param_patt: %pattern_type.b5a = value_param_pattern [concrete] +// CHECK:STDOUT: %value.patt: %pattern_type.b5a = at_binding_pattern value, %value.param_patt [concrete] +// CHECK:STDOUT: %reference.param_patt: %pattern_type.b5a = ref_param_pattern [concrete] +// CHECK:STDOUT: %reference.patt: %pattern_type.b5a = at_binding_pattern reference, %reference.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %value.param: %tuple.type.189 = value_param call_param0 // CHECK:STDOUT: %.loc67_37.1: type = splice_block %.loc67_37.3 [concrete = constants.%tuple.type.189] { @@ -3107,8 +3107,8 @@ fn F() { // CHECK:STDOUT: %PassInt.cpp_overload_set.value: %PassInt.cpp_overload_set.type = cpp_overload_set_value @PassInt.cpp_overload_set [concrete = constants.%PassInt.cpp_overload_set.value] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %PassInt.decl: %PassInt.type = fn_decl @PassInt [concrete = constants.%PassInt] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -3187,8 +3187,8 @@ fn F() { // CHECK:STDOUT: %PassOverloaded.cpp_overload_set.value: %PassOverloaded.cpp_overload_set.type = cpp_overload_set_value @PassOverloaded.cpp_overload_set [concrete = constants.%PassOverloaded.cpp_overload_set.value] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %PassOverloaded.decl: %PassOverloaded.type = fn_decl @PassOverloaded [concrete = constants.%PassOverloaded] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -3333,8 +3333,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %TakeB.cpp_overload_set.value: %TakeB.cpp_overload_set.type = cpp_overload_set_value @TakeB.cpp_overload_set [concrete = constants.%TakeB.cpp_overload_set.value] // CHECK:STDOUT: %TakeB__carbon_thunk.decl: %TakeB__carbon_thunk.type = fn_decl @TakeB__carbon_thunk [concrete = constants.%TakeB__carbon_thunk] { -// CHECK:STDOUT: %_.patt: %pattern_type.837 = value_binding_pattern _ [concrete] -// CHECK:STDOUT: %_.param_patt: %pattern_type.837 = value_param_pattern %_.patt [concrete] +// CHECK:STDOUT: %_.param_patt: %pattern_type.837 = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.837 = at_binding_pattern _, %_.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %_.param: %ptr.a04 = value_param call_param0 // CHECK:STDOUT: %_: %ptr.a04 = value_binding _, %_.param @@ -3462,8 +3462,8 @@ fn F() { // CHECK:STDOUT: %Core.import_ref.ca0: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.09e) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.dbe)] // CHECK:STDOUT: %As.impl_witness_table.9fc = impl_witness_table (%Core.import_ref.ca0), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { -// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -3566,8 +3566,8 @@ fn F() { // CHECK:STDOUT: %Core.import_ref.ca0: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.09e) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.dbe)] // CHECK:STDOUT: %As.impl_witness_table.9fc = impl_witness_table (%Core.import_ref.ca0), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { -// CHECK:STDOUT: %a.patt: %pattern_type.54c = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.54c = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54c = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54c = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block constants.%ptr [concrete = constants.%ptr] { diff --git a/toolchain/check/testdata/interop/cpp/function/return.carbon b/toolchain/check/testdata/interop/cpp/function/return.carbon index a25378d9ad91..831e50aa324d 100644 --- a/toolchain/check/testdata/interop/cpp/function/return.carbon +++ b/toolchain/check/testdata/interop/cpp/function/return.carbon @@ -263,8 +263,8 @@ fn Var() { // CHECK:STDOUT: %Core.UInt: %UInt.type = import_ref Core//prelude/types/uint, UInt, loaded [concrete = constants.%UInt.generic] // CHECK:STDOUT: %ReturnU8.cpp_overload_set.value: %ReturnU8.cpp_overload_set.type = cpp_overload_set_value @ReturnU8.cpp_overload_set [concrete = constants.%ReturnU8.cpp_overload_set.value] // CHECK:STDOUT: %ReturnU8__carbon_thunk.decl: %ReturnU8__carbon_thunk.type = fn_decl @ReturnU8__carbon_thunk [concrete = constants.%ReturnU8__carbon_thunk] { -// CHECK:STDOUT: %return.patt: %pattern_type.a66 = value_binding_pattern r#return [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.a66 = value_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.a66 = value_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.a66 = at_binding_pattern r#return, %return.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %return.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block constants.%ptr [concrete = constants.%ptr] { @@ -287,8 +287,8 @@ fn Var() { // CHECK:STDOUT: import Cpp inline // CHECK:STDOUT: } // CHECK:STDOUT: %GetU8.decl: %GetU8.type = fn_decl @GetU8 [concrete = constants.%GetU8] { -// CHECK:STDOUT: %return.patt: %pattern_type.8f3 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.8f3 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.8f3 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.8f3 = return_slot_pattern %return.param_patt, %u8 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %u8: type = type_literal constants.%u8 [concrete = constants.%u8] // CHECK:STDOUT: %.loc8_15: Core.Form = init_form %u8 [concrete = constants.%.471] @@ -346,8 +346,8 @@ fn Var() { // CHECK:STDOUT: %Core.UInt: %UInt.type = import_ref Core//prelude/types/uint, UInt, loaded [concrete = constants.%UInt.generic] // CHECK:STDOUT: %ReturnU32.cpp_overload_set.value: %ReturnU32.cpp_overload_set.type = cpp_overload_set_value @ReturnU32.cpp_overload_set [concrete = constants.%ReturnU32.cpp_overload_set.value] // CHECK:STDOUT: %ReturnU32.decl: %ReturnU32.type = fn_decl @ReturnU32 [concrete = constants.%ReturnU32] { -// CHECK:STDOUT: %return.patt: %pattern_type.4a9 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.4a9 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.4a9 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.4a9 = return_slot_pattern %return.param_patt, %u32.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %u32.1: type = class_type @UInt, @UInt(constants.%int_32) [concrete = constants.%u32] diff --git a/toolchain/check/testdata/interop/cpp/impls/as.carbon b/toolchain/check/testdata/interop/cpp/impls/as.carbon index 62fe2d707e0a..ca1a534e41c2 100644 --- a/toolchain/check/testdata/interop/cpp/impls/as.carbon +++ b/toolchain/check/testdata/interop/cpp/impls/as.carbon @@ -188,8 +188,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %Source.decl: type = class_decl @Source [concrete = constants.%Source] {} {} // CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest] {} {} // CHECK:STDOUT: %Source.cpp_operator.decl: %Source.cpp_operator.type = fn_decl @Source.cpp_operator [concrete = constants.%Source.cpp_operator] { -// CHECK:STDOUT: %self.patt: %pattern_type.78c = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.78c = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.78c = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.78c = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Source = value_param call_param0 @@ -202,8 +202,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Dest.cpp_destructor.decl: %Dest.cpp_destructor.type = fn_decl @Dest.cpp_destructor [concrete = constants.%Dest.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.69a = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.69a = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.69a = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.69a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Dest = ref_param call_param0 // CHECK:STDOUT: %self: ref %Dest = ref_binding self, %self.param @@ -216,8 +216,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Dest2.cpp_destructor.decl: %Dest2.cpp_destructor.type = fn_decl @Dest2.cpp_destructor [concrete = constants.%Dest2.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.39d = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.39d = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.39d = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.39d = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Dest2 = ref_param call_param0 // CHECK:STDOUT: %self: ref %Dest2 = ref_binding self, %self.param @@ -229,16 +229,16 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %ExplicitConstructor.cpp_destructor.decl: %ExplicitConstructor.cpp_destructor.type = fn_decl @ExplicitConstructor.cpp_destructor [concrete = constants.%ExplicitConstructor.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.1eb = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1eb = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1eb = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1eb = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %ExplicitConstructor = ref_param call_param0 // CHECK:STDOUT: %self: ref %ExplicitConstructor = ref_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %ExplicitConversion.decl: type = class_decl @ExplicitConversion [concrete = constants.%ExplicitConversion] {} {} // CHECK:STDOUT: %ExplicitConversion.cpp_operator.decl: %ExplicitConversion.cpp_operator.type = fn_decl @ExplicitConversion.cpp_operator [concrete = constants.%ExplicitConversion.cpp_operator] { -// CHECK:STDOUT: %self.patt: %pattern_type.a70 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.a70 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.a70 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.a70 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %ExplicitConversion = value_param call_param0 @@ -386,8 +386,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.decl.a8c6bd.1: %ConditionallyExplicit.cpp_destructor.type.a865b6.1 = fn_decl @ConditionallyExplicit.cpp_destructor.1 [concrete = constants.%ConditionallyExplicit.cpp_destructor.1ba031.1] { -// CHECK:STDOUT: %self.patt: %pattern_type.285f84.1 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.285f84.1 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.285f84.1 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.285f84.1 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %ConditionallyExplicit.c52b91.1 = ref_param call_param0 // CHECK:STDOUT: %self: ref %ConditionallyExplicit.c52b91.1 = ref_binding self, %self.param @@ -399,16 +399,16 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.decl.a8c6bd.2: %ConditionallyExplicit.cpp_destructor.type.a865b6.2 = fn_decl @ConditionallyExplicit.cpp_destructor.2 [concrete = constants.%ConditionallyExplicit.cpp_destructor.1ba031.2] { -// CHECK:STDOUT: %self.patt: %pattern_type.285f84.2 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.285f84.2 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.285f84.2 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.285f84.2 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %ConditionallyExplicit.c52b91.2 = ref_param call_param0 // CHECK:STDOUT: %self: ref %ConditionallyExplicit.c52b91.2 = ref_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest] {} {} // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.decl: %ConditionallyExplicit.cpp_operator.type = fn_decl @ConditionallyExplicit.cpp_operator [concrete = constants.%ConditionallyExplicit.cpp_operator] { -// CHECK:STDOUT: %self.patt: %pattern_type.285f84.1 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.285f84.1 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.285f84.1 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.285f84.1 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %ConditionallyExplicit.c52b91.1 = value_param call_param0 @@ -421,8 +421,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Dest.cpp_destructor.decl: %Dest.cpp_destructor.type = fn_decl @Dest.cpp_destructor [concrete = constants.%Dest.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.69a = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.69a = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.69a = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.69a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Dest = ref_param call_param0 // CHECK:STDOUT: %self: ref %Dest = ref_binding self, %self.param @@ -588,8 +588,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %ConditionallyExplicit.decl.7acffe.2: type = class_decl @ConditionallyExplicit.2 [concrete = constants.%ConditionallyExplicit.c52b91.2] {} {} // CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.5e7] {} {} // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.decl: %ConditionallyExplicit.cpp_operator.type = fn_decl @ConditionallyExplicit.cpp_operator [concrete = constants.%ConditionallyExplicit.cpp_operator] { -// CHECK:STDOUT: %self.patt: %pattern_type.285f84.2 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.285f84.2 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.285f84.2 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.285f84.2 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %ConditionallyExplicit.c52b91.2 = value_param call_param0 @@ -602,8 +602,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Dest.cpp_destructor.decl: %Dest.cpp_destructor.type = fn_decl @Dest.cpp_destructor [concrete = constants.%Dest.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.69a = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.69a = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.69a = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.69a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Dest.5e7 = ref_param call_param0 // CHECK:STDOUT: %self: ref %Dest.5e7 = ref_binding self, %self.param diff --git a/toolchain/check/testdata/interop/cpp/impls/destroy.carbon b/toolchain/check/testdata/interop/cpp/impls/destroy.carbon index 2e53ced8c80b..661cecc07709 100644 --- a/toolchain/check/testdata/interop/cpp/impls/destroy.carbon +++ b/toolchain/check/testdata/interop/cpp/impls/destroy.carbon @@ -225,8 +225,8 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %TrivialDestructor.decl: type = class_decl @TrivialDestructor [concrete = constants.%TrivialDestructor] {} {} // CHECK:STDOUT: %TrivialDestructor.cpp_destructor.decl: %TrivialDestructor.cpp_destructor.type = fn_decl @TrivialDestructor.cpp_destructor [concrete = constants.%TrivialDestructor.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.1b8 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1b8 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1b8 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1b8 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %TrivialDestructor = ref_param call_param0 // CHECK:STDOUT: %self: ref %TrivialDestructor = ref_binding self, %self.param @@ -306,8 +306,8 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %TrivialDestructor = ref_binding a, %a.var // CHECK:STDOUT: %TrivialDestructor.Op.decl: %TrivialDestructor.Op.type = fn_decl @TrivialDestructor.Op [concrete = constants.%TrivialDestructor.Op] { -// CHECK:STDOUT: %self.patt: %pattern_type.1b8 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.1b8 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1b8 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1b8 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %TrivialDestructor = ref_param call_param0 // CHECK:STDOUT: %self: ref %TrivialDestructor = ref_binding self, %self.param diff --git a/toolchain/check/testdata/interop/cpp/impls/implicit_as.carbon b/toolchain/check/testdata/interop/cpp/impls/implicit_as.carbon index 7cbe0938405e..99a449bf8d05 100644 --- a/toolchain/check/testdata/interop/cpp/impls/implicit_as.carbon +++ b/toolchain/check/testdata/interop/cpp/impls/implicit_as.carbon @@ -459,8 +459,8 @@ fn InitFromStruct() { // CHECK:STDOUT: %Source.decl: type = class_decl @Source [concrete = constants.%Source] {} {} // CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest] {} {} // CHECK:STDOUT: %Source.cpp_operator.decl: %Source.cpp_operator.type = fn_decl @Source.cpp_operator [concrete = constants.%Source.cpp_operator] { -// CHECK:STDOUT: %self.patt: %pattern_type.78c = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.78c = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.78c = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.78c = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Source = value_param call_param0 @@ -473,16 +473,16 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Dest.cpp_destructor.decl: %Dest.cpp_destructor.type = fn_decl @Dest.cpp_destructor [concrete = constants.%Dest.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.69a = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.69a = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.69a = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.69a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Dest = ref_param call_param0 // CHECK:STDOUT: %self: ref %Dest = ref_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %NonConstConversion.decl: type = class_decl @NonConstConversion.1 [concrete = constants.%NonConstConversion.480] {} {} // CHECK:STDOUT: %NonConstConversion.cpp_operator.decl: %NonConstConversion.cpp_operator.type = fn_decl @NonConstConversion.cpp_operator [concrete = constants.%NonConstConversion.cpp_operator] { -// CHECK:STDOUT: %self.patt: %pattern_type.b08 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.b08 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.b08 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.b08 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %NonConstConversion.480 = ref_param call_param0 @@ -502,8 +502,8 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Dest2.cpp_destructor.decl: %Dest2.cpp_destructor.type = fn_decl @Dest2.cpp_destructor [concrete = constants.%Dest2.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.39d = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.39d = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.39d = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.39d = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Dest2 = ref_param call_param0 // CHECK:STDOUT: %self: ref %Dest2 = ref_binding self, %self.param @@ -670,8 +670,8 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %InaccessibleConstructor.cpp_destructor.decl: %InaccessibleConstructor.cpp_destructor.type = fn_decl @InaccessibleConstructor.cpp_destructor [concrete = constants.%InaccessibleConstructor.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.b73 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.b73 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.b73 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.b73 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %InaccessibleConstructor = ref_param call_param0 // CHECK:STDOUT: %self: ref %InaccessibleConstructor = ref_binding self, %self.param @@ -679,8 +679,8 @@ fn InitFromStruct() { // CHECK:STDOUT: %InaccessibleConversion.decl: type = class_decl @InaccessibleConversion [concrete = constants.%InaccessibleConversion] {} {} // CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest] {} {} // CHECK:STDOUT: %InaccessibleConversion.cpp_operator.decl: %InaccessibleConversion.cpp_operator.type = fn_decl @InaccessibleConversion.cpp_operator [concrete = constants.%InaccessibleConversion.cpp_operator] { -// CHECK:STDOUT: %self.patt: %pattern_type.510 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.510 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.510 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.510 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %InaccessibleConversion = value_param call_param0 @@ -693,8 +693,8 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Dest.cpp_destructor.decl: %Dest.cpp_destructor.type = fn_decl @Dest.cpp_destructor [concrete = constants.%Dest.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.69a = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.69a = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.69a = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.69a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Dest = ref_param call_param0 // CHECK:STDOUT: %self: ref %Dest = ref_binding self, %self.param @@ -895,8 +895,8 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %IntConstructor.cpp_destructor.decl: %IntConstructor.cpp_destructor.type = fn_decl @IntConstructor.cpp_destructor [concrete = constants.%IntConstructor.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.3c3 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.3c3 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.3c3 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.3c3 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %IntConstructor.f49 = ref_param call_param0 // CHECK:STDOUT: %self: ref %IntConstructor.f49 = ref_binding self, %self.param @@ -959,8 +959,8 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %IntConstructor.cpp_destructor.decl: %IntConstructor.cpp_destructor.type = fn_decl @IntConstructor.cpp_destructor [concrete = constants.%IntConstructor.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.3c3 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.3c3 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.3c3 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.3c3 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %IntConstructor = ref_param call_param0 // CHECK:STDOUT: %self: ref %IntConstructor = ref_binding self, %self.param @@ -1022,8 +1022,8 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %DefaultConstructor.cpp_destructor.decl: %DefaultConstructor.cpp_destructor.type = fn_decl @DefaultConstructor.cpp_destructor [concrete = constants.%DefaultConstructor.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.b66 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.b66 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.b66 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.b66 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %DefaultConstructor = ref_param call_param0 // CHECK:STDOUT: %self: ref %DefaultConstructor = ref_binding self, %self.param @@ -1137,15 +1137,15 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %ThreeWithDefault.cpp_destructor.decl: %ThreeWithDefault.cpp_destructor.type = fn_decl @ThreeWithDefault.cpp_destructor [concrete = constants.%ThreeWithDefault.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.ca7 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.ca7 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.ca7 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.ca7 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %ThreeWithDefault = ref_param call_param0 // CHECK:STDOUT: %self: ref %ThreeWithDefault = ref_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %Two.cpp_destructor.decl: %Two.cpp_destructor.type = fn_decl @Two.cpp_destructor [concrete = constants.%Two.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.4c2 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.4c2 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.4c2 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.4c2 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Two = ref_param call_param0 // CHECK:STDOUT: %self: ref %Two = ref_binding self, %self.param @@ -1466,8 +1466,8 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %NonAggregate.cpp_destructor.decl: %NonAggregate.cpp_destructor.type = fn_decl @NonAggregate.cpp_destructor [concrete = constants.%NonAggregate.cpp_destructor] { -// CHECK:STDOUT: %self.patt: %pattern_type.eac = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.eac = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.eac = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.eac = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %NonAggregate = ref_param call_param0 // CHECK:STDOUT: %self: ref %NonAggregate = ref_binding self, %self.param diff --git a/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon b/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon index b5722e959a83..114747005992 100644 --- a/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon +++ b/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon @@ -146,10 +146,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generated { // CHECK:STDOUT: %initializer_list.initializer_list.decl.2bdc3e.1: %initializer_list.initializer_list.type.9fcb7f.1 = fn_decl @initializer_list.initializer_list.loc8 [concrete = constants.%initializer_list.initializer_list.643507.1] { -// CHECK:STDOUT: %_.patt: %pattern_type.5d8 = value_binding_pattern _ [concrete] -// CHECK:STDOUT: %_.param_patt: %pattern_type.5d8 = value_param_pattern %_.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.22f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.22f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %_.param_patt: %pattern_type.5d8 = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.5d8 = at_binding_pattern _, %_.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.22f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.22f = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8: Core.Form = init_form constants.%initializer_list [concrete = constants.%.b61] // CHECK:STDOUT: %_.param: %array_type = value_param call_param0 @@ -158,10 +158,10 @@ fn F() { // CHECK:STDOUT: %return: ref %initializer_list = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %initializer_list.initializer_list.decl.2bdc3e.2: %initializer_list.initializer_list.type.9fcb7f.2 = fn_decl @initializer_list.initializer_list.loc10 [concrete = constants.%initializer_list.initializer_list.643507.2] { -// CHECK:STDOUT: %_.patt: %pattern_type.5d8 = value_binding_pattern _ [concrete] -// CHECK:STDOUT: %_.param_patt: %pattern_type.5d8 = value_param_pattern %_.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.22f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.22f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %_.param_patt: %pattern_type.5d8 = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.5d8 = at_binding_pattern _, %_.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.22f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.22f = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10: Core.Form = init_form constants.%initializer_list [concrete = constants.%.b61] // CHECK:STDOUT: %_.param: %array_type = value_param call_param0 @@ -170,10 +170,10 @@ fn F() { // CHECK:STDOUT: %return: ref %initializer_list = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %initializer_list.initializer_list.decl.2bdc3e.3: %initializer_list.initializer_list.type.9fcb7f.3 = fn_decl @initializer_list.initializer_list.loc12 [concrete = constants.%initializer_list.initializer_list.643507.3] { -// CHECK:STDOUT: %_.patt: %pattern_type.5d8 = value_binding_pattern _ [concrete] -// CHECK:STDOUT: %_.param_patt: %pattern_type.5d8 = value_param_pattern %_.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.22f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.22f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %_.param_patt: %pattern_type.5d8 = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.5d8 = at_binding_pattern _, %_.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.22f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.22f = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12: Core.Form = init_form constants.%initializer_list [concrete = constants.%.b61] // CHECK:STDOUT: %_.param: %array_type = value_param call_param0 diff --git a/toolchain/check/testdata/interop/cpp/stdlib/string_view.carbon b/toolchain/check/testdata/interop/cpp/stdlib/string_view.carbon index 71f94f97508a..e37f15b14a5d 100644 --- a/toolchain/check/testdata/interop/cpp/stdlib/string_view.carbon +++ b/toolchain/check/testdata/interop/cpp/stdlib/string_view.carbon @@ -125,8 +125,8 @@ fn StarstWith(a: str, b: str) -> bool { // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.461 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.461 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.461 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.461 = return_slot_pattern %return.param_patt, %str [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %str: type = type_literal constants.%str.ee0 [concrete = constants.%str.ee0] // CHECK:STDOUT: %.loc13_11.2: Core.Form = init_form %str [concrete = constants.%.b6b] @@ -194,12 +194,12 @@ fn StarstWith(a: str, b: str) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %StarstWith.decl: %StarstWith.type = fn_decl @StarstWith [concrete = constants.%StarstWith] { -// CHECK:STDOUT: %a.patt: %pattern_type.461 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.461 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.461 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.461 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.461 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.461 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.461 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.461 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc7_34.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_34.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc7_34.2: Core.Form = init_form %.loc7_34.1 [concrete = constants.%.f34] diff --git a/toolchain/check/testdata/let/compile_time_bindings.carbon b/toolchain/check/testdata/let/compile_time_bindings.carbon index 0c5ac6a4d93e..60b0ed7547b4 100644 --- a/toolchain/check/testdata/let/compile_time_bindings.carbon +++ b/toolchain/check/testdata/let/compile_time_bindings.carbon @@ -206,8 +206,8 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc5_14.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_14.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc5_14.2: type = converted %.loc5_14.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -290,8 +290,8 @@ impl i32 as Empty { // CHECK:STDOUT: %.loc9_17.2: %empty_tuple.type = converted %.loc9_17.1, %empty_tuple [concrete = constants.%empty_tuple] // CHECK:STDOUT: %x: %empty_tuple.type = value_binding x, %.loc9_17.2 // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc10_14.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_14.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc10_14.2: type = converted %.loc10_14.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -442,8 +442,8 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc5_14.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_14.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc5_14.2: type = converted %.loc5_14.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -537,8 +537,8 @@ impl i32 as Empty { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] { -// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.92d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.92d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.92d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.92d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc6_13.2: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_13.1 (constants.%impl.elem0)] // CHECK:STDOUT: %T.ref: type = name_ref T, %impl.elem0.loc6_13.2 [symbolic = %impl.elem0.loc6_13.1 (constants.%impl.elem0)] diff --git a/toolchain/check/testdata/let/global.carbon b/toolchain/check/testdata/let/global.carbon index 0b81f7d58519..cb1c9d4a5d2a 100644 --- a/toolchain/check/testdata/let/global.carbon +++ b/toolchain/check/testdata/let/global.carbon @@ -94,8 +94,8 @@ fn F() -> i32 { return n; } // CHECK:STDOUT: %.loc15_14.2: %i32 = converted @__global_init.%int_1, %.loc15_14.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %n: %i32 = value_binding n, %.loc15_14.2 // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc17: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/let/shadowed_decl.carbon b/toolchain/check/testdata/let/shadowed_decl.carbon index ce388afa7d48..c320c5d79d46 100644 --- a/toolchain/check/testdata/let/shadowed_decl.carbon +++ b/toolchain/check/testdata/let/shadowed_decl.carbon @@ -83,10 +83,10 @@ fn F(unused a: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.patt.loc15: %pattern_type.7ce = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt.loc15 [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt.loc15: %pattern_type.7ce = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15_24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_24: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_24 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/main_run/no_return.carbon b/toolchain/check/testdata/main_run/no_return.carbon index 999e851e63bc..45a841414b04 100644 --- a/toolchain/check/testdata/main_run/no_return.carbon +++ b/toolchain/check/testdata/main_run/no_return.carbon @@ -82,10 +82,10 @@ fn Run(unused argc: i32, unused argv: i32*) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] { -// CHECK:STDOUT: %argc.patt: %pattern_type.7ce = value_binding_pattern argc [concrete] -// CHECK:STDOUT: %argc.param_patt: %pattern_type.7ce = value_param_pattern %argc.patt [concrete] -// CHECK:STDOUT: %argv.patt: %pattern_type.fe8 = value_binding_pattern argv [concrete] -// CHECK:STDOUT: %argv.param_patt: %pattern_type.fe8 = value_param_pattern %argv.patt [concrete] +// CHECK:STDOUT: %argc.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %argc.patt: %pattern_type.7ce = at_binding_pattern argc, %argc.param_patt [concrete] +// CHECK:STDOUT: %argv.param_patt: %pattern_type.fe8 = value_param_pattern [concrete] +// CHECK:STDOUT: %argv.patt: %pattern_type.fe8 = at_binding_pattern argv, %argv.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %argc.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc5_21: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/main_run/return_i32.carbon b/toolchain/check/testdata/main_run/return_i32.carbon index 498e6dca1b09..4a40b72ec34d 100644 --- a/toolchain/check/testdata/main_run/return_i32.carbon +++ b/toolchain/check/testdata/main_run/return_i32.carbon @@ -74,8 +74,8 @@ fn Run(unused argc: i32, unused argv: i32*) -> i32 { return 0; } // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc4_13: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -148,12 +148,12 @@ fn Run(unused argc: i32, unused argv: i32*) -> i32 { return 0; } // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] { -// CHECK:STDOUT: %argc.patt: %pattern_type.7ce = value_binding_pattern argc [concrete] -// CHECK:STDOUT: %argc.param_patt: %pattern_type.7ce = value_param_pattern %argc.patt [concrete] -// CHECK:STDOUT: %argv.patt: %pattern_type.fe8 = value_binding_pattern argv [concrete] -// CHECK:STDOUT: %argv.param_patt: %pattern_type.fe8 = value_param_pattern %argv.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %argc.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %argc.patt: %pattern_type.7ce = at_binding_pattern argc, %argc.param_patt [concrete] +// CHECK:STDOUT: %argv.param_patt: %pattern_type.fe8 = value_param_pattern [concrete] +// CHECK:STDOUT: %argv.patt: %pattern_type.fe8 = at_binding_pattern argv, %argv.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc5_48 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5_48: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc5_48: Core.Form = init_form %i32.loc5_48 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/namespace/add_to_import.carbon b/toolchain/check/testdata/namespace/add_to_import.carbon index 2135ea50644f..b5efd8e9d780 100644 --- a/toolchain/check/testdata/namespace/add_to_import.carbon +++ b/toolchain/check/testdata/namespace/add_to_import.carbon @@ -101,8 +101,8 @@ var a: i32 = NS.A(); // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc4_14: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/namespace/alias.carbon b/toolchain/check/testdata/namespace/alias.carbon index 73d775fbbbb3..e7338922a29c 100644 --- a/toolchain/check/testdata/namespace/alias.carbon +++ b/toolchain/check/testdata/namespace/alias.carbon @@ -87,8 +87,8 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: %NS.ref.loc17: = name_ref NS, %NS [concrete = %NS] // CHECK:STDOUT: %ns: = alias_binding ns, %NS [concrete = %NS] // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc19_14: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -96,8 +96,8 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc21: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -108,8 +108,8 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: %A.ref: %A.type = name_ref A, %A.decl [concrete = constants.%A] // CHECK:STDOUT: %C: %A.type = alias_binding C, %A.decl [concrete = constants.%A] // CHECK:STDOUT: %D.decl: %D.type = fn_decl @D [concrete = constants.%D] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc25: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon b/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon index 433217d8f835..910dfc6eed33 100644 --- a/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon +++ b/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon @@ -80,8 +80,8 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: %NS.ref: = name_ref NS, %NS [concrete = %NS] // CHECK:STDOUT: %ns: = alias_binding ns, %NS [concrete = %NS] // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc27_14: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/namespace/fail_params.carbon b/toolchain/check/testdata/namespace/fail_params.carbon index 96216c512e91..224800e6a9ec 100644 --- a/toolchain/check/testdata/namespace/fail_params.carbon +++ b/toolchain/check/testdata/namespace/fail_params.carbon @@ -83,7 +83,7 @@ fn D(unused T:! type).F() {} // CHECK:STDOUT: %F.decl.loc22: %F.type.6d5 = fn_decl @F.loc22 [concrete = constants.%F.e11] {} {} // CHECK:STDOUT: %n.param: = value_param call_param0 // CHECK:STDOUT: %.loc32: type = type_literal [concrete = ] -// CHECK:STDOUT: %n: = value_binding n, %n.param +// CHECK:STDOUT: %n: = value_binding n, [concrete = ] // CHECK:STDOUT: %B: = namespace [concrete] {} // CHECK:STDOUT: %.loc38_17.1: type = splice_block %.loc38_17.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/namespace/imported_indirect.carbon b/toolchain/check/testdata/namespace/imported_indirect.carbon index 4925fed81f3d..801142bb4dfb 100644 --- a/toolchain/check/testdata/namespace/imported_indirect.carbon +++ b/toolchain/check/testdata/namespace/imported_indirect.carbon @@ -152,8 +152,8 @@ fn G() { Same.F(); } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %B: = namespace [concrete] {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: = name_ref A, imports.%A [concrete = imports.%A] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Same.C [concrete = constants.%C] diff --git a/toolchain/check/testdata/namespace/merging_with_indirections.carbon b/toolchain/check/testdata/namespace/merging_with_indirections.carbon index 89bfc6e08a97..c1d01a072247 100644 --- a/toolchain/check/testdata/namespace/merging_with_indirections.carbon +++ b/toolchain/check/testdata/namespace/merging_with_indirections.carbon @@ -124,8 +124,8 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %A.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %NS1.ref: = name_ref NS1, imports.%NS1 [concrete = imports.%NS1] // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Other.A [concrete = constants.%A] diff --git a/toolchain/check/testdata/namespace/shadow.carbon b/toolchain/check/testdata/namespace/shadow.carbon index 921b9cce33e0..b321c21ecac6 100644 --- a/toolchain/check/testdata/namespace/shadow.carbon +++ b/toolchain/check/testdata/namespace/shadow.carbon @@ -118,8 +118,8 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: .A = // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc22 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc22: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc22: Core.Form = init_form %i32.loc22 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/operators/builtin/and.carbon b/toolchain/check/testdata/operators/builtin/and.carbon index 290ad81a0bb6..d66998f70827 100644 --- a/toolchain/check/testdata/operators/builtin/and.carbon +++ b/toolchain/check/testdata/operators/builtin/and.carbon @@ -93,8 +93,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc15_11.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_11.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc15_11.2: Core.Form = init_form %.loc15_11.1 [concrete = constants.%.f34] @@ -102,8 +102,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc16_11.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc16_11.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc16_11.2: Core.Form = init_form %.loc16_11.1 [concrete = constants.%.f34] @@ -111,8 +111,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %And.decl: %And.type = fn_decl @And [concrete = constants.%And] { -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc18_13.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18_13.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc18_13.2: Core.Form = init_form %.loc18_13.1 [concrete = constants.%.f34] @@ -121,8 +121,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %Constant.decl: %Constant.type = fn_decl @Constant [concrete = constants.%Constant] {} {} // CHECK:STDOUT: %PartialConstant.decl: %PartialConstant.type = fn_decl @PartialConstant [concrete = constants.%PartialConstant] { -// CHECK:STDOUT: %x.patt: %pattern_type.831 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.831 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.831 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc29: type = type_literal bool [concrete = bool] diff --git a/toolchain/check/testdata/operators/builtin/fail_and_or_partial_constant.carbon b/toolchain/check/testdata/operators/builtin/fail_and_or_partial_constant.carbon index 970385dbfa46..e01e4c100436 100644 --- a/toolchain/check/testdata/operators/builtin/fail_and_or_partial_constant.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_and_or_partial_constant.carbon @@ -81,8 +81,8 @@ fn KnownValueButNonConstantCondition(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %PartialConstant.decl: %PartialConstant.type = fn_decl @PartialConstant [concrete = constants.%PartialConstant] { -// CHECK:STDOUT: %x.patt: %pattern_type.831 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.831 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.831 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc4: type = type_literal bool [concrete = bool] @@ -201,8 +201,8 @@ fn KnownValueButNonConstantCondition(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %KnownValueButNonConstantCondition.decl: %KnownValueButNonConstantCondition.type = fn_decl @KnownValueButNonConstantCondition [concrete = constants.%KnownValueButNonConstantCondition] { -// CHECK:STDOUT: %x.patt: %pattern_type.831 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.831 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.831 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc4: type = type_literal bool [concrete = bool] diff --git a/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon b/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon index 208debc41ac4..7b70aa755a29 100644 --- a/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon @@ -183,8 +183,8 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon index 075d7202f3e4..dbfa65adafae 100644 --- a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon @@ -106,8 +106,8 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15_11: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon index f9d62cc25666..93b20182116a 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon @@ -59,8 +59,8 @@ fn Main() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon b/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon index 837657f3c2ba..090069bcb454 100644 --- a/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon @@ -56,8 +56,8 @@ fn Main() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/operators/builtin/or.carbon b/toolchain/check/testdata/operators/builtin/or.carbon index a262fba85a93..b88c4c53203b 100644 --- a/toolchain/check/testdata/operators/builtin/or.carbon +++ b/toolchain/check/testdata/operators/builtin/or.carbon @@ -93,8 +93,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc15_11.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_11.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc15_11.2: Core.Form = init_form %.loc15_11.1 [concrete = constants.%.f34] @@ -102,8 +102,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc16_11.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc16_11.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc16_11.2: Core.Form = init_form %.loc16_11.1 [concrete = constants.%.f34] @@ -111,8 +111,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Or.decl: %Or.type = fn_decl @Or [concrete = constants.%Or] { -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc18_12.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18_12.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc18_12.2: Core.Form = init_form %.loc18_12.1 [concrete = constants.%.f34] @@ -121,8 +121,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %Constant.decl: %Constant.type = fn_decl @Constant [concrete = constants.%Constant] {} {} // CHECK:STDOUT: %PartialConstant.decl: %PartialConstant.type = fn_decl @PartialConstant [concrete = constants.%PartialConstant] { -// CHECK:STDOUT: %x.patt: %pattern_type.831 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.831 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.831 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc29: type = type_literal bool [concrete = bool] diff --git a/toolchain/check/testdata/operators/builtin/unary_op.carbon b/toolchain/check/testdata/operators/builtin/unary_op.carbon index 0ec15306cf1f..9874e4a07a15 100644 --- a/toolchain/check/testdata/operators/builtin/unary_op.carbon +++ b/toolchain/check/testdata/operators/builtin/unary_op.carbon @@ -80,10 +80,10 @@ fn Constant() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Not.decl: %Not.type = fn_decl @Not [concrete = constants.%Not] { -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc15_20.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_20.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc15_20.2: Core.Form = init_form %.loc15_20.1 [concrete = constants.%.f34] diff --git a/toolchain/check/testdata/operators/overloaded/eq.carbon b/toolchain/check/testdata/operators/overloaded/eq.carbon index d395e1739c25..cea33e264bcf 100644 --- a/toolchain/check/testdata/operators/overloaded/eq.carbon +++ b/toolchain/check/testdata/operators/overloaded/eq.carbon @@ -139,12 +139,12 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %EqWith.type: type = facet_type <@EqWith, @EqWith(constants.%C)> [concrete = constants.%EqWith.type.ae7] // CHECK:STDOUT: } // CHECK:STDOUT: %TestEqual.decl: %TestEqual.type = fn_decl @TestEqual [concrete = constants.%TestEqual] { -// CHECK:STDOUT: %a.patt: %pattern_type.476 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.476 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.476 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.476 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc11_29.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_29.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc11_29.2: Core.Form = init_form %.loc11_29.1 [concrete = constants.%.f34] @@ -158,12 +158,12 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestNotEqual.decl: %TestNotEqual.type = fn_decl @TestNotEqual [concrete = constants.%TestNotEqual] { -// CHECK:STDOUT: %a.patt: %pattern_type.476 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.476 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.476 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.476 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc15_32.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_32.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc15_32.2: Core.Form = init_form %.loc15_32.1 [concrete = constants.%.f34] @@ -180,12 +180,12 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.EqWith.impl: %C.ref.loc6_6 as %EqWith.type { // CHECK:STDOUT: %C.as.EqWith.impl.Equal.decl: %C.as.EqWith.impl.Equal.type = fn_decl @C.as.EqWith.impl.Equal [concrete = constants.%C.as.EqWith.impl.Equal] { -// CHECK:STDOUT: %self.patt: %pattern_type.476 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.476 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.476 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.476 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc7_34.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_34.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc7_34.2: Core.Form = init_form %.loc7_34.1 [concrete = constants.%.f34] @@ -199,12 +199,12 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.as.EqWith.impl.NotEqual.decl: %C.as.EqWith.impl.NotEqual.type = fn_decl @C.as.EqWith.impl.NotEqual [concrete = constants.%C.as.EqWith.impl.NotEqual] { -// CHECK:STDOUT: %self.patt: %pattern_type.476 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.476 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.476 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.476 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc8_37.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_37.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc8_37.2: Core.Form = init_form %.loc8_37.1 [concrete = constants.%.f34] @@ -299,12 +299,12 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %TestEqual.decl: %TestEqual.type = fn_decl @TestEqual [concrete = constants.%TestEqual] { -// CHECK:STDOUT: %a.patt: %pattern_type.54d = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.54d = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.54d = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.54d = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54d = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.54d = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc6_29.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_29.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc6_29.2: Core.Form = init_form %.loc6_29.1 [concrete = constants.%.f34] @@ -318,12 +318,12 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestNotEqual.decl: %TestNotEqual.type = fn_decl @TestNotEqual [concrete = constants.%TestNotEqual] { -// CHECK:STDOUT: %a.patt: %pattern_type.54d = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.54d = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.54d = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.54d = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54d = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.54d = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc14_32.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_32.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc14_32.2: Core.Form = init_form %.loc14_32.1 [concrete = constants.%.f34] @@ -417,12 +417,12 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %EqWith.type: type = facet_type <@EqWith, @EqWith(constants.%C)> [concrete = constants.%EqWith.type.470] // CHECK:STDOUT: } // CHECK:STDOUT: %TestRhsBad.decl: %TestRhsBad.type = fn_decl @TestRhsBad [concrete = constants.%TestRhsBad] { -// CHECK:STDOUT: %a.patt: %pattern_type.224 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.224 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.07d = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.07d = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.224 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.224 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.07d = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.07d = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc12_30.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12_30.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc12_30.2: Core.Form = init_form %.loc12_30.1 [concrete = constants.%.f34] @@ -436,12 +436,12 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestLhsBad.decl: %TestLhsBad.type = fn_decl @TestLhsBad [concrete = constants.%TestLhsBad] { -// CHECK:STDOUT: %a.patt: %pattern_type.07d = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.07d = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.224 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.224 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.07d = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.07d = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.224 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.224 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc20_30.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc20_30.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc20_30.2: Core.Form = init_form %.loc20_30.1 [concrete = constants.%.f34] @@ -458,12 +458,12 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.EqWith.impl: %C.ref.loc7_6 as %EqWith.type { // CHECK:STDOUT: %C.as.EqWith.impl.Equal.decl: %C.as.EqWith.impl.Equal.type = fn_decl @C.as.EqWith.impl.Equal [concrete = constants.%C.as.EqWith.impl.Equal] { -// CHECK:STDOUT: %self.patt: %pattern_type.224 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.224 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.224 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.224 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.224 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.224 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.224 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.224 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc8_34.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_34.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc8_34.2: Core.Form = init_form %.loc8_34.1 [concrete = constants.%.f34] @@ -477,12 +477,12 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.as.EqWith.impl.NotEqual.decl: %C.as.EqWith.impl.NotEqual.type = fn_decl @C.as.EqWith.impl.NotEqual [concrete = constants.%C.as.EqWith.impl.NotEqual] { -// CHECK:STDOUT: %self.patt: %pattern_type.224 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.224 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.224 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.224 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.224 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.224 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.224 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.224 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc9_37.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_37.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc9_37.2: Core.Form = init_form %.loc9_37.1 [concrete = constants.%.f34] diff --git a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon index 85e9aead31bb..b9e468501f62 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon @@ -108,18 +108,18 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: %AddAssignWith.type: type = facet_type <@AddAssignWith, @AddAssignWith(constants.%C)> [concrete = constants.%AddAssignWith.type.16b] // CHECK:STDOUT: } // CHECK:STDOUT: %TestIncNonRef.decl: %TestIncNonRef.type = fn_decl @TestIncNonRef [concrete = constants.%TestIncNonRef] { -// CHECK:STDOUT: %a.patt: %pattern_type.476 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.476 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestAddAssignNonRef.decl: %TestAddAssignNonRef.type = fn_decl @TestAddAssignNonRef [concrete = constants.%TestAddAssignNonRef] { -// CHECK:STDOUT: %a.patt: %pattern_type.476 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.476 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.476 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.476 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc37_27: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -132,8 +132,8 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.Inc.impl: %C.ref as %Inc.ref { // CHECK:STDOUT: %C.as.Inc.impl.Op.decl: %C.as.Inc.impl.Op.type = fn_decl @C.as.Inc.impl.Op [concrete = constants.%C.as.Inc.impl.Op] { -// CHECK:STDOUT: %self.patt: %pattern_type.476 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = ref_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.476 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -150,10 +150,10 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.AddAssignWith.impl: %C.ref.loc22_6 as %AddAssignWith.type { // CHECK:STDOUT: %C.as.AddAssignWith.impl.Op.decl: %C.as.AddAssignWith.impl.Op.type = fn_decl @C.as.AddAssignWith.impl.Op [concrete = constants.%C.as.AddAssignWith.impl.Op] { -// CHECK:STDOUT: %self.patt: %pattern_type.476 = ref_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = ref_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.476 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern %other.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.476 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.476 = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %C.ref.loc23_19: type = name_ref C, file.%C.decl [concrete = constants.%C] diff --git a/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon b/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon index d71b44c01b67..caabb3d66d79 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon @@ -69,8 +69,8 @@ fn G(n: i32) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon index ad26437f6b01..d05722094a2c 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon @@ -102,10 +102,10 @@ fn TestRef(b: C) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %TestUnary.decl: %TestUnary.type = fn_decl @TestUnary [concrete = constants.%TestUnary] { -// CHECK:STDOUT: %a.patt: %pattern_type.476 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.476 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.476 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.476 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.476 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.476 = return_slot_pattern %return.param_patt, %C.ref.loc19_23 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc19_23: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc19: Core.Form = init_form %C.ref.loc19_23 [concrete = constants.%.bdd] @@ -116,12 +116,12 @@ fn TestRef(b: C) { // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestBinary.decl: %TestBinary.type = fn_decl @TestBinary [concrete = constants.%TestBinary] { -// CHECK:STDOUT: %a.patt: %pattern_type.476 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.476 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.476 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.476 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.476 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.476 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.476 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.476 = return_slot_pattern %return.param_patt, %C.ref.loc27_30 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc27_30: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc27: Core.Form = init_form %C.ref.loc27_30 [concrete = constants.%.bdd] @@ -135,8 +135,8 @@ fn TestRef(b: C) { // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestRef.decl: %TestRef.type = fn_decl @TestRef [concrete = constants.%TestRef] { -// CHECK:STDOUT: %b.patt: %pattern_type.476 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.476 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc35: type = name_ref C, file.%C.decl [concrete = constants.%C] diff --git a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon index 2d818ba337e0..e78960f38008 100644 --- a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon +++ b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon @@ -146,16 +146,16 @@ fn Test() { // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32)> [concrete = constants.%ImplicitAs.type.e8c] // CHECK:STDOUT: } // CHECK:STDOUT: %Sink_i32.decl: %Sink_i32.type = fn_decl @Sink_i32 [concrete = constants.%Sink_i32] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param // CHECK:STDOUT: } // CHECK:STDOUT: %Sink_X.decl: %Sink_X.type = fn_decl @Sink_X [concrete = constants.%Sink_X] { -// CHECK:STDOUT: %x.patt: %pattern_type.05f = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.05f = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.05f = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.05f = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %X = value_param call_param0 // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] @@ -163,8 +163,8 @@ fn Test() { // CHECK:STDOUT: } // CHECK:STDOUT: %Source.decl: %Source.type = fn_decl @Source [concrete = constants.%Source] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %return.patt: @Source.%pattern_type (%pattern_type.51d1c4.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Source.%pattern_type (%pattern_type.51d1c4.2) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Source.%pattern_type (%pattern_type.51d1c4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Source.%pattern_type (%pattern_type.51d1c4.2) = return_slot_pattern %return.param_patt, %T.ref.loc31_24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc31_24: type = name_ref T, %T.loc31_11.2 [symbolic = %T.loc31_11.1 (constants.%T.67d)] // CHECK:STDOUT: %.loc31_24.3: Core.Form = init_form %T.ref.loc31_24 [symbolic = %.loc31_24.2 (constants.%.184347.2)] @@ -181,10 +181,10 @@ fn Test() { // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.as.ImplicitAs.impl: %i32 as %ImplicitAs.type { // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.decl: %i32.as.ImplicitAs.impl.Convert.type = fn_decl @i32.as.ImplicitAs.impl.Convert [concrete = constants.%i32.as.ImplicitAs.impl.Convert] { -// CHECK:STDOUT: %self.patt: %pattern_type.7ce = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7ce = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.05f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.05f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7ce = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.05f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.05f = return_slot_pattern %return.param_patt, %X.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc20_30: Core.Form = init_form %X.ref [concrete = constants.%.a1b] @@ -205,10 +205,10 @@ fn Test() { // CHECK:STDOUT: // CHECK:STDOUT: impl @X.as.ImplicitAs.impl: %X.ref as %ImplicitAs.type { // CHECK:STDOUT: %X.as.ImplicitAs.impl.Convert.decl: %X.as.ImplicitAs.impl.Convert.type = fn_decl @X.as.ImplicitAs.impl.Convert [concrete = constants.%X.as.ImplicitAs.impl.Convert] { -// CHECK:STDOUT: %self.patt: %pattern_type.05f = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.05f = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.05f = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.05f = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc24_28: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/operators/overloaded/index.carbon b/toolchain/check/testdata/operators/overloaded/index.carbon index 3b3d33c30076..cce565008e72 100644 --- a/toolchain/check/testdata/operators/overloaded/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/index.carbon @@ -236,12 +236,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %IndexWith.WithSelf.At.decl: @IndexWith.WithSelf.%IndexWith.WithSelf.At.type (%IndexWith.WithSelf.At.type) = fn_decl @IndexWith.WithSelf.At [symbolic = @IndexWith.WithSelf.%IndexWith.WithSelf.At (constants.%IndexWith.WithSelf.At)] { -// CHECK:STDOUT: %self.patt: @IndexWith.WithSelf.At.%pattern_type.loc5_9 (%pattern_type.5ae) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_9 (%pattern_type.5ae) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %subscript.patt: @IndexWith.WithSelf.At.%pattern_type.loc5_21 (%pattern_type.51d) = value_binding_pattern subscript [concrete] -// CHECK:STDOUT: %subscript.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_21 (%pattern_type.51d) = value_param_pattern %subscript.patt [concrete] -// CHECK:STDOUT: %return.patt: @IndexWith.WithSelf.At.%pattern_type.loc5_47 (%pattern_type.946) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_47 (%pattern_type.946) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_13 (%pattern_type.5ae) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @IndexWith.WithSelf.At.%pattern_type.loc5_13 (%pattern_type.5ae) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %subscript.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_30 (%pattern_type.51d) = value_param_pattern [concrete] +// CHECK:STDOUT: %subscript.patt: @IndexWith.WithSelf.At.%pattern_type.loc5_30 (%pattern_type.51d) = at_binding_pattern subscript, %subscript.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_50 (%pattern_type.946) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @IndexWith.WithSelf.At.%pattern_type.loc5_50 (%pattern_type.946) = return_slot_pattern %return.param_patt, %ElementType.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %ElementType.ref: type = name_ref ElementType, @IndexWith.%ElementType.loc4_43.2 [symbolic = %ElementType (constants.%ElementType)] // CHECK:STDOUT: %.loc5_50.2: Core.Form = init_form %ElementType.ref [symbolic = %.loc5_50.1 (constants.%.822)] @@ -280,10 +280,10 @@ fn F() { // CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.2c3)] // CHECK:STDOUT: %Self: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.2c3) = symbolic_binding Self, 2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 2, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc5_9: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_9 (constants.%pattern_type.5ae)] -// CHECK:STDOUT: %pattern_type.loc5_21: type = pattern_type %SubscriptType [symbolic = %pattern_type.loc5_21 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc5_13: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_13 (constants.%pattern_type.5ae)] +// CHECK:STDOUT: %pattern_type.loc5_30: type = pattern_type %SubscriptType [symbolic = %pattern_type.loc5_30 (constants.%pattern_type.51d)] // CHECK:STDOUT: %.loc5_50.1: Core.Form = init_form %ElementType [symbolic = %.loc5_50.1 (constants.%.822)] -// CHECK:STDOUT: %pattern_type.loc5_47: type = pattern_type %ElementType [symbolic = %pattern_type.loc5_47 (constants.%pattern_type.946)] +// CHECK:STDOUT: %pattern_type.loc5_50: type = pattern_type %ElementType [symbolic = %pattern_type.loc5_50 (constants.%pattern_type.946)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @IndexWith.WithSelf.At.%Self.binding.as_type (%Self.binding.as_type), %subscript.param: @IndexWith.WithSelf.At.%SubscriptType (%SubscriptType)) -> out %return.param: @IndexWith.WithSelf.At.%ElementType (%ElementType); // CHECK:STDOUT: } @@ -301,10 +301,10 @@ fn F() { // CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.2c3 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc5_9 => constants.%pattern_type.5ae -// CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc5_13 => constants.%pattern_type.5ae +// CHECK:STDOUT: %pattern_type.loc5_30 => constants.%pattern_type.51d // CHECK:STDOUT: %.loc5_50.1 => constants.%.822 -// CHECK:STDOUT: %pattern_type.loc5_47 => constants.%pattern_type.946 +// CHECK:STDOUT: %pattern_type.loc5_50 => constants.%pattern_type.946 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_wrong_arg_count.carbon @@ -414,12 +414,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.IndexWith.impl: %C.ref as %IndexWith.type { // CHECK:STDOUT: %C.as.IndexWith.impl.At.decl: %C.as.IndexWith.impl.At.type = fn_decl @C.as.IndexWith.impl.At [concrete = constants.%C.as.IndexWith.impl.At] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %subscript.patt: %pattern_type.cb1 = value_binding_pattern subscript [concrete] -// CHECK:STDOUT: %subscript.param_patt: %pattern_type.cb1 = value_param_pattern %subscript.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %subscript.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %subscript.patt: %pattern_type.cb1 = at_binding_pattern subscript, %subscript.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %.loc9_54.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_54.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_54.2: type = converted %.loc9_54.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] diff --git a/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon b/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon index 246c6cfdfebc..795d29ef8cd0 100644 --- a/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon +++ b/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon @@ -196,12 +196,12 @@ let x: i32 = c[0]; // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.IndexWith.impl: %C.ref as %.loc8_41 { // CHECK:STDOUT: %C.as.IndexWith.impl.At.decl: %C.as.IndexWith.impl.At.type = fn_decl @C.as.IndexWith.impl.At [concrete = constants.%C.as.IndexWith.impl.At] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %subscript.patt: %pattern_type.541 = value_binding_pattern subscript [concrete] -// CHECK:STDOUT: %subscript.param_patt: %pattern_type.541 = value_param_pattern %subscript.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.fde = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.fde = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %subscript.param_patt: %pattern_type.541 = value_param_pattern [concrete] +// CHECK:STDOUT: %subscript.patt: %pattern_type.541 = at_binding_pattern subscript, %subscript.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fde = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fde = return_slot_pattern %return.param_patt, %ElementType.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %ElementType.ref: type = name_ref ElementType, file.%ElementType.decl [concrete = constants.%ElementType] // CHECK:STDOUT: %.loc9: Core.Form = init_form %ElementType.ref [concrete = constants.%.312] @@ -387,12 +387,12 @@ let x: i32 = c[0]; // CHECK:STDOUT: // CHECK:STDOUT: impl @tuple.type.as.IndexWith.impl: %.loc8_11.2 as %.loc8_50 { // CHECK:STDOUT: %tuple.type.as.IndexWith.impl.At.decl: %tuple.type.as.IndexWith.impl.At.type = fn_decl @tuple.type.as.IndexWith.impl.At [concrete = constants.%tuple.type.as.IndexWith.impl.At] { -// CHECK:STDOUT: %self.patt: %pattern_type.c3b = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.c3b = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %subscript.patt: %pattern_type.dc0 = value_binding_pattern subscript [concrete] -// CHECK:STDOUT: %subscript.param_patt: %pattern_type.dc0 = value_param_pattern %subscript.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.c3b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.c3b = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %subscript.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] +// CHECK:STDOUT: %subscript.patt: %pattern_type.dc0 = at_binding_pattern subscript, %subscript.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc9_61: Core.Form = init_form %C.ref [concrete = constants.%.a69] @@ -563,12 +563,12 @@ let x: i32 = c[0]; // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.IndexWith.impl: %C.ref as %.loc8_41 { // CHECK:STDOUT: %C.as.IndexWith.impl.At.decl: %C.as.IndexWith.impl.At.type = fn_decl @C.as.IndexWith.impl.At [concrete = constants.%C.as.IndexWith.impl.At] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %subscript.patt: %pattern_type.541 = value_binding_pattern subscript [concrete] -// CHECK:STDOUT: %subscript.param_patt: %pattern_type.541 = value_param_pattern %subscript.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.fde = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.fde = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %subscript.param_patt: %pattern_type.541 = value_param_pattern [concrete] +// CHECK:STDOUT: %subscript.patt: %pattern_type.541 = at_binding_pattern subscript, %subscript.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fde = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fde = return_slot_pattern %return.param_patt, %ElementType.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %ElementType.ref: type = name_ref ElementType, file.%ElementType.decl [concrete = constants.%ElementType] // CHECK:STDOUT: %.loc9: Core.Form = init_form %ElementType.ref [concrete = constants.%.312] diff --git a/toolchain/check/testdata/operators/overloaded/ordered.carbon b/toolchain/check/testdata/operators/overloaded/ordered.carbon index 5ed408942f04..7e5f689c3144 100644 --- a/toolchain/check/testdata/operators/overloaded/ordered.carbon +++ b/toolchain/check/testdata/operators/overloaded/ordered.carbon @@ -151,12 +151,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %OrderedWith.type: type = facet_type <@OrderedWith, @OrderedWith(constants.%C)> [concrete = constants.%OrderedWith.type.c3d] // CHECK:STDOUT: } // CHECK:STDOUT: %TestLess.decl: %TestLess.type = fn_decl @TestLess [concrete = constants.%TestLess] { -// CHECK:STDOUT: %a.patt: %pattern_type.476 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.476 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.476 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.476 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc13_28.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc13_28.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc13_28.2: Core.Form = init_form %.loc13_28.1 [concrete = constants.%.f34] @@ -170,12 +170,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestLessEqual.decl: %TestLessEqual.type = fn_decl @TestLessEqual [concrete = constants.%TestLessEqual] { -// CHECK:STDOUT: %a.patt: %pattern_type.476 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.476 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.476 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.476 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc17_33.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_33.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc17_33.2: Core.Form = init_form %.loc17_33.1 [concrete = constants.%.f34] @@ -189,12 +189,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestGreater.decl: %TestGreater.type = fn_decl @TestGreater [concrete = constants.%TestGreater] { -// CHECK:STDOUT: %a.patt: %pattern_type.476 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.476 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.476 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.476 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc21_31.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc21_31.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc21_31.2: Core.Form = init_form %.loc21_31.1 [concrete = constants.%.f34] @@ -208,12 +208,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestGreaterEqual.decl: %TestGreaterEqual.type = fn_decl @TestGreaterEqual [concrete = constants.%TestGreaterEqual] { -// CHECK:STDOUT: %a.patt: %pattern_type.476 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.476 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.476 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.476 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc25_36.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc25_36.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc25_36.2: Core.Form = init_form %.loc25_36.1 [concrete = constants.%.f34] @@ -230,12 +230,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.OrderedWith.impl: %C.ref.loc6_6 as %OrderedWith.type { // CHECK:STDOUT: %C.as.OrderedWith.impl.Less.decl: %C.as.OrderedWith.impl.Less.type = fn_decl @C.as.OrderedWith.impl.Less [concrete = constants.%C.as.OrderedWith.impl.Less] { -// CHECK:STDOUT: %self.patt: %pattern_type.476 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.476 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.476 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.476 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc7_33.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_33.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc7_33.2: Core.Form = init_form %.loc7_33.1 [concrete = constants.%.f34] @@ -249,12 +249,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.as.OrderedWith.impl.LessOrEquivalent.decl: %C.as.OrderedWith.impl.LessOrEquivalent.type = fn_decl @C.as.OrderedWith.impl.LessOrEquivalent [concrete = constants.%C.as.OrderedWith.impl.LessOrEquivalent] { -// CHECK:STDOUT: %self.patt: %pattern_type.476 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.476 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.476 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.476 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc8_45.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_45.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc8_45.2: Core.Form = init_form %.loc8_45.1 [concrete = constants.%.f34] @@ -268,12 +268,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.as.OrderedWith.impl.Greater.decl: %C.as.OrderedWith.impl.Greater.type = fn_decl @C.as.OrderedWith.impl.Greater [concrete = constants.%C.as.OrderedWith.impl.Greater] { -// CHECK:STDOUT: %self.patt: %pattern_type.476 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.476 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.476 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.476 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc9_36.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_36.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc9_36.2: Core.Form = init_form %.loc9_36.1 [concrete = constants.%.f34] @@ -287,12 +287,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.as.OrderedWith.impl.GreaterOrEquivalent.decl: %C.as.OrderedWith.impl.GreaterOrEquivalent.type = fn_decl @C.as.OrderedWith.impl.GreaterOrEquivalent [concrete = constants.%C.as.OrderedWith.impl.GreaterOrEquivalent] { -// CHECK:STDOUT: %self.patt: %pattern_type.476 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.476 = value_binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern %other.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.476 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.476 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.476 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc10_48.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_48.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc10_48.2: Core.Form = init_form %.loc10_48.1 [concrete = constants.%.f34] @@ -419,12 +419,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %TestLess.decl: %TestLess.type = fn_decl @TestLess [concrete = constants.%TestLess] { -// CHECK:STDOUT: %a.patt: %pattern_type.54d = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.54d = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.54d = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.54d = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54d = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.54d = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc6_28.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_28.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc6_28.2: Core.Form = init_form %.loc6_28.1 [concrete = constants.%.f34] @@ -438,12 +438,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestLessEqual.decl: %TestLessEqual.type = fn_decl @TestLessEqual [concrete = constants.%TestLessEqual] { -// CHECK:STDOUT: %a.patt: %pattern_type.54d = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.54d = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.54d = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.54d = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54d = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.54d = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc14_33.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_33.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc14_33.2: Core.Form = init_form %.loc14_33.1 [concrete = constants.%.f34] @@ -457,12 +457,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestGreater.decl: %TestGreater.type = fn_decl @TestGreater [concrete = constants.%TestGreater] { -// CHECK:STDOUT: %a.patt: %pattern_type.54d = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.54d = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.54d = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.54d = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54d = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.54d = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc22_31.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc22_31.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc22_31.2: Core.Form = init_form %.loc22_31.1 [concrete = constants.%.f34] @@ -476,12 +476,12 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestGreaterEqual.decl: %TestGreaterEqual.type = fn_decl @TestGreaterEqual [concrete = constants.%TestGreaterEqual] { -// CHECK:STDOUT: %a.patt: %pattern_type.54d = value_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.54d = value_param_pattern %a.patt [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.54d = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.54d = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54d = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.54d = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc30_36.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc30_36.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc30_36.2: Core.Form = init_form %.loc30_36.1 [concrete = constants.%.f34] diff --git a/toolchain/check/testdata/packages/cross_package_import.carbon b/toolchain/check/testdata/packages/cross_package_import.carbon index 784dd1304318..1ab1c6d7cde6 100644 --- a/toolchain/check/testdata/packages/cross_package_import.carbon +++ b/toolchain/check/testdata/packages/cross_package_import.carbon @@ -261,8 +261,8 @@ fn UseF() { Other.F(); } // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc4_17.1: type = splice_block %.loc4_17.3 [concrete = constants.%empty_tuple.type] { diff --git a/toolchain/check/testdata/packages/missing_prelude.carbon b/toolchain/check/testdata/packages/missing_prelude.carbon index 69479fc8b931..46294b394316 100644 --- a/toolchain/check/testdata/packages/missing_prelude.carbon +++ b/toolchain/check/testdata/packages/missing_prelude.carbon @@ -222,8 +222,8 @@ let n: type = i32; // CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %N.patt: @Int.%pattern_type (%pattern_type.51d) = symbolic_binding_pattern N, 1 [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.1f7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.1f7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.1f7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.1f7 = return_slot_pattern %return.param_patt, %X.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc6_35: Core.Form = init_form %X.ref [concrete = constants.%.054] @@ -264,10 +264,10 @@ let n: type = i32; // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert)] { -// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_14 (%pattern_type.8de) = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_14 (%pattern_type.8de) = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_28 (%pattern_type.51d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_28 (%pattern_type.51d) = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_18 (%pattern_type.8de) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_18 (%pattern_type.8de) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_31 (%pattern_type.51d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @ImplicitAs.%T.loc8_22.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc9_31.2: Core.Form = init_form %T.ref [symbolic = %.loc9_31.1 (constants.%.184)] @@ -324,9 +324,9 @@ let n: type = i32; // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.9fe)] // CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc9_14: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc9_14 (constants.%pattern_type.8de)] +// CHECK:STDOUT: %pattern_type.loc9_18: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc9_18 (constants.%pattern_type.8de)] // CHECK:STDOUT: %.loc9_31.1: Core.Form = init_form %T [symbolic = %.loc9_31.1 (constants.%.184)] -// CHECK:STDOUT: %pattern_type.loc9_28: type = pattern_type %T [symbolic = %pattern_type.loc9_28 (constants.%pattern_type.51d)] +// CHECK:STDOUT: %pattern_type.loc9_31: type = pattern_type %T [symbolic = %pattern_type.loc9_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%T (%T); // CHECK:STDOUT: } @@ -348,9 +348,9 @@ let n: type = i32; // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fe // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc9_14 => constants.%pattern_type.8de +// CHECK:STDOUT: %pattern_type.loc9_18 => constants.%pattern_type.8de // CHECK:STDOUT: %.loc9_31.1 => constants.%.184 -// CHECK:STDOUT: %pattern_type.loc9_28 => constants.%pattern_type.51d +// CHECK:STDOUT: %pattern_type.loc9_31 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_use_fake_int.carbon diff --git a/toolchain/check/testdata/patterns/underscore.carbon b/toolchain/check/testdata/patterns/underscore.carbon index b4665717204f..38e99ff4e7f2 100644 --- a/toolchain/check/testdata/patterns/underscore.carbon +++ b/toolchain/check/testdata/patterns/underscore.carbon @@ -236,8 +236,8 @@ fn F() -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %_.patt: %pattern_type = value_binding_pattern _ [concrete] -// CHECK:STDOUT: %_.param_patt: %pattern_type = value_param_pattern %_.patt [concrete] +// CHECK:STDOUT: %_.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type = at_binding_pattern _, %_.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %_.param: %empty_struct_type = value_param call_param0 // CHECK:STDOUT: %.loc4_10.1: type = splice_block %.loc4_10.3 [concrete = constants.%empty_struct_type] { @@ -247,8 +247,8 @@ fn F() -> {} { // CHECK:STDOUT: %_: %empty_struct_type = value_binding _, %_.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %_.patt: %pattern_type = value_binding_pattern _ [concrete] -// CHECK:STDOUT: %_.param_patt: %pattern_type = value_param_pattern %_.patt [concrete] +// CHECK:STDOUT: %_.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type = at_binding_pattern _, %_.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %_.param: %empty_struct_type = value_param call_param0 // CHECK:STDOUT: %.loc6_10.1: type = splice_block %.loc6_10.3 [concrete = constants.%empty_struct_type] { diff --git a/toolchain/check/testdata/patterns/unused.carbon b/toolchain/check/testdata/patterns/unused.carbon index 620f13ea0c12..f5b13fba143b 100644 --- a/toolchain/check/testdata/patterns/unused.carbon +++ b/toolchain/check/testdata/patterns/unused.carbon @@ -206,10 +206,10 @@ library "[[@TEST_NAME]]"; fn F(x: i32); // CHECK:STDERR: fail_unused_does_not_affect_redeclaration.carbon:[[@LINE+7]]:13: error: redeclaration differs at parameter 1 [RedeclParamDiffers] // CHECK:STDERR: fn F(unused y: i32) {} -// CHECK:STDERR: ^~~~~~ +// CHECK:STDERR: ^ // CHECK:STDERR: fail_unused_does_not_affect_redeclaration.carbon:[[@LINE-4]]:6: note: previous declaration's corresponding parameter here [RedeclParamPrevious] // CHECK:STDERR: fn F(x: i32); -// CHECK:STDERR: ^~~~~~ +// CHECK:STDERR: ^ // CHECK:STDERR: fn F(unused y: i32) {} diff --git a/toolchain/check/testdata/pointer/address_of_deref.carbon b/toolchain/check/testdata/pointer/address_of_deref.carbon index 64d7b5004544..1edced71572e 100644 --- a/toolchain/check/testdata/pointer/address_of_deref.carbon +++ b/toolchain/check/testdata/pointer/address_of_deref.carbon @@ -89,8 +89,8 @@ fn F() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/pointer/arrow.carbon b/toolchain/check/testdata/pointer/arrow.carbon index d1e1be3c1c5a..cdd1730d7b5f 100644 --- a/toolchain/check/testdata/pointer/arrow.carbon +++ b/toolchain/check/testdata/pointer/arrow.carbon @@ -60,8 +60,8 @@ fn Foo(ptr: C*) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %ptr.patt: %pattern_type.506 = value_binding_pattern ptr [concrete] -// CHECK:STDOUT: %ptr.param_patt: %pattern_type.506 = value_param_pattern %ptr.patt [concrete] +// CHECK:STDOUT: %ptr.param_patt: %pattern_type.506 = value_param_pattern [concrete] +// CHECK:STDOUT: %ptr.patt: %pattern_type.506 = at_binding_pattern ptr, %ptr.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %ptr.param: %ptr.31e = value_param call_param0 // CHECK:STDOUT: %.loc20: type = splice_block %ptr.loc20_14 [concrete = constants.%ptr.31e] { @@ -74,8 +74,8 @@ fn Foo(ptr: C*) { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %C.Member.decl: %C.Member.type = fn_decl @C.Member [concrete = constants.%C.Member] { -// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] diff --git a/toolchain/check/testdata/pointer/basic.carbon b/toolchain/check/testdata/pointer/basic.carbon index 00767daff03f..b085453a5600 100644 --- a/toolchain/check/testdata/pointer/basic.carbon +++ b/toolchain/check/testdata/pointer/basic.carbon @@ -106,8 +106,8 @@ fn F() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/pointer/fail_deref_not_pointer.carbon b/toolchain/check/testdata/pointer/fail_deref_not_pointer.carbon index 41e2b022a7cc..ad8b7fdbc644 100644 --- a/toolchain/check/testdata/pointer/fail_deref_not_pointer.carbon +++ b/toolchain/check/testdata/pointer/fail_deref_not_pointer.carbon @@ -77,8 +77,8 @@ fn Deref(n: i32) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Deref.decl: %Deref.type = fn_decl @Deref [concrete = constants.%Deref] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/pointer/fail_type_mismatch.carbon b/toolchain/check/testdata/pointer/fail_type_mismatch.carbon index 30a77f79f766..613c44a9b273 100644 --- a/toolchain/check/testdata/pointer/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/pointer/fail_type_mismatch.carbon @@ -57,10 +57,10 @@ fn ConstMismatch(p: const {}*) -> const ({}*) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %ConstMismatch.decl: %ConstMismatch.type = fn_decl @ConstMismatch [concrete = constants.%ConstMismatch] { -// CHECK:STDOUT: %p.patt: %pattern_type.db0 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.db0 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.3c6 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.3c6 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.db0 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.db0 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.3c6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.3c6 = return_slot_pattern %return.param_patt, %const.loc15_35 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_43: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc15_44: type = converted %.loc15_43, constants.%empty_struct_type [concrete = constants.%empty_struct_type] diff --git a/toolchain/check/testdata/pointer/nested_const.carbon b/toolchain/check/testdata/pointer/nested_const.carbon index 4ed42b1fb576..cbb28c8bd23b 100644 --- a/toolchain/check/testdata/pointer/nested_const.carbon +++ b/toolchain/check/testdata/pointer/nested_const.carbon @@ -74,10 +74,10 @@ fn F(p: const (const (const i32*)*)) -> const i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %p.patt: %pattern_type.800 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.800 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.a65 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.a65 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.800 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.800 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.a65 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.a65 = return_slot_pattern %return.param_patt, %const.loc16_41 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16_47: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %const.loc16_41: type = const_type %i32.loc16_47 [concrete = constants.%const.20a] diff --git a/toolchain/check/testdata/pointer/types.carbon b/toolchain/check/testdata/pointer/types.carbon index 5b006db15bca..be3c2c0c5322 100644 --- a/toolchain/check/testdata/pointer/types.carbon +++ b/toolchain/check/testdata/pointer/types.carbon @@ -79,10 +79,10 @@ fn ConstPtr(p: const i32*) -> (const i32)* { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Ptr.decl: %Ptr.type = fn_decl @Ptr [concrete = constants.%Ptr] { -// CHECK:STDOUT: %p.patt: %pattern_type.fe8 = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.fe8 = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.fe8 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.fe8 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern %return.param_patt, %ptr.loc15_23 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_20: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %ptr.loc15_23: type = ptr_type %i32.loc15_20 [concrete = constants.%ptr.235] @@ -97,10 +97,10 @@ fn ConstPtr(p: const i32*) -> (const i32)* { // CHECK:STDOUT: %return: ref %ptr.235 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConstPtr.decl: %ConstPtr.type = fn_decl @ConstPtr [concrete = constants.%ConstPtr] { -// CHECK:STDOUT: %p.patt: %pattern_type.bff = value_binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.bff = value_param_pattern %p.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.bff = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.bff = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.bff = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.bff = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.bff = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.bff = return_slot_pattern %return.param_patt, %ptr.loc19_42 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc19_38: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %const.loc19_32: type = const_type %i32.loc19_38 [concrete = constants.%const.20a] diff --git a/toolchain/check/testdata/return/code_after_return_value.carbon b/toolchain/check/testdata/return/code_after_return_value.carbon index 1b7716569192..33121f0dd113 100644 --- a/toolchain/check/testdata/return/code_after_return_value.carbon +++ b/toolchain/check/testdata/return/code_after_return_value.carbon @@ -82,10 +82,10 @@ fn F(unused b: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15_25: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/return/fail_call_in_type.carbon b/toolchain/check/testdata/return/fail_call_in_type.carbon index 2b6d06c9e5d6..27d23226c0f5 100644 --- a/toolchain/check/testdata/return/fail_call_in_type.carbon +++ b/toolchain/check/testdata/return/fail_call_in_type.carbon @@ -66,8 +66,8 @@ fn Six() -> ReturnType() { return 6; } // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %ReturnType.decl: %ReturnType.type = fn_decl @ReturnType [concrete = constants.%ReturnType] { -// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc17_20.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_20.1: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc17_20.2: Core.Form = init_form %.loc17_20.1 [concrete = constants.%.805] diff --git a/toolchain/check/testdata/return/fail_missing_return.carbon b/toolchain/check/testdata/return/fail_missing_return.carbon index 87b829fb2775..54d833729909 100644 --- a/toolchain/check/testdata/return/fail_missing_return.carbon +++ b/toolchain/check/testdata/return/fail_missing_return.carbon @@ -48,8 +48,8 @@ fn Main() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/return/fail_missing_return_empty_tuple.carbon b/toolchain/check/testdata/return/fail_missing_return_empty_tuple.carbon index dca3b7698f4b..5122d4028814 100644 --- a/toolchain/check/testdata/return/fail_missing_return_empty_tuple.carbon +++ b/toolchain/check/testdata/return/fail_missing_return_empty_tuple.carbon @@ -35,8 +35,8 @@ fn F() -> () { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc15_12.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_12.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_12.2: type = converted %.loc15_12.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] diff --git a/toolchain/check/testdata/return/fail_return_var_no_returned_var.carbon b/toolchain/check/testdata/return/fail_return_var_no_returned_var.carbon index 86169e0cb913..4aaac0b72fc3 100644 --- a/toolchain/check/testdata/return/fail_return_var_no_returned_var.carbon +++ b/toolchain/check/testdata/return/fail_return_var_no_returned_var.carbon @@ -36,8 +36,8 @@ fn Procedure() -> {} { // CHECK:STDOUT: .Procedure = %Procedure.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Procedure.decl: %Procedure.type = fn_decl @Procedure [concrete = constants.%Procedure] { -// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc15_20.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_20.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc15_20.2: type = converted %.loc15_20.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] diff --git a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon index 90f115826de6..894105ea0d7f 100644 --- a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon +++ b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon @@ -114,8 +114,8 @@ fn G() -> C { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.ff5] @@ -124,8 +124,8 @@ fn G() -> C { // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref.loc28 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc28: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc28: Core.Form = init_form %C.ref.loc28 [concrete = constants.%.a69] diff --git a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon index 065eae430d8f..c8ef1979f601 100644 --- a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon @@ -108,8 +108,8 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %SameScope.decl: %SameScope.type = fn_decl @SameScope [concrete = constants.%SameScope] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.ff5] @@ -117,8 +117,8 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %DifferentScopes.decl: %DifferentScopes.type = fn_decl @DifferentScopes [concrete = constants.%DifferentScopes] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc30 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc30: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc30: Core.Form = init_form %i32.loc30 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/return/fail_returned_var_type.carbon b/toolchain/check/testdata/return/fail_returned_var_type.carbon index 65643809b274..7c4cda9bc74c 100644 --- a/toolchain/check/testdata/return/fail_returned_var_type.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_type.carbon @@ -87,8 +87,8 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Mismatch.decl: %Mismatch.type = fn_decl @Mismatch [concrete = constants.%Mismatch] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/return/fail_type_mismatch.carbon b/toolchain/check/testdata/return/fail_type_mismatch.carbon index bc1cfcde528a..e084c282a053 100644 --- a/toolchain/check/testdata/return/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/return/fail_type_mismatch.carbon @@ -57,8 +57,8 @@ fn Main() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/return/fail_value_missing.carbon b/toolchain/check/testdata/return/fail_value_missing.carbon index 533e5ba38d6b..3639ee9f8dbd 100644 --- a/toolchain/check/testdata/return/fail_value_missing.carbon +++ b/toolchain/check/testdata/return/fail_value_missing.carbon @@ -52,8 +52,8 @@ fn Main() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/return/import_convert_function.carbon b/toolchain/check/testdata/return/import_convert_function.carbon index 6ecb7d34e68d..71c3032bffbc 100644 --- a/toolchain/check/testdata/return/import_convert_function.carbon +++ b/toolchain/check/testdata/return/import_convert_function.carbon @@ -194,8 +194,8 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %.loc6_14: Core.Form = init_form %D.ref [concrete = constants.%.b76] @@ -334,10 +334,10 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.ImplicitAs.impl.c43: %C as %ImplicitAs.type { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.f45 = fn_decl @C.as.ImplicitAs.impl.Convert.loc8 [concrete = constants.%C.as.ImplicitAs.impl.Convert.72e] { -// CHECK:STDOUT: %self.patt: %pattern_type.2de = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.2de = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.2de = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.2de = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %.loc8_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b76] @@ -359,10 +359,10 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.ImplicitAs.impl.7c3: %C as %ImplicitAs.type { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.30c = fn_decl @C.as.ImplicitAs.impl.Convert.loc9 [concrete = constants.%C.as.ImplicitAs.impl.Convert.330] { -// CHECK:STDOUT: %self.patt: %pattern_type.4f8 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.4f8 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.4f8 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.4f8 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %.loc9_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b76] @@ -384,10 +384,10 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.ImplicitAs.impl.fa3: %C as %ImplicitAs.type { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.9c9 = fn_decl @C.as.ImplicitAs.impl.Convert.loc10 [concrete = constants.%C.as.ImplicitAs.impl.Convert.4d5] { -// CHECK:STDOUT: %self.patt: %pattern_type.97c = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.97c = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.97c = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.97c = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %.loc10_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b76] @@ -409,10 +409,10 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.ImplicitAs.impl.158: %C as %ImplicitAs.type { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.a26 = fn_decl @C.as.ImplicitAs.impl.Convert.loc11 [concrete = constants.%C.as.ImplicitAs.impl.Convert.85c] { -// CHECK:STDOUT: %self.patt: %pattern_type.00b = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.00b = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.00b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.00b = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %.loc11_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b76] @@ -434,10 +434,10 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.ImplicitAs.impl.f64: %C as %ImplicitAs.type { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.6b2 = fn_decl @C.as.ImplicitAs.impl.Convert.loc12 [concrete = constants.%C.as.ImplicitAs.impl.Convert.97b] { -// CHECK:STDOUT: %self.patt: %pattern_type.9d7 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.9d7 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9d7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9d7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %.loc12_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b76] @@ -459,10 +459,10 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.ImplicitAs.impl.d86: %C as %ImplicitAs.type { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.6ff = fn_decl @C.as.ImplicitAs.impl.Convert.loc13 [concrete = constants.%C.as.ImplicitAs.impl.Convert.d99] { -// CHECK:STDOUT: %self.patt: %pattern_type.ed0 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.ed0 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.ed0 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.ed0 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %.loc13_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b76] @@ -484,10 +484,10 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.ImplicitAs.impl.f13: %C as %ImplicitAs.type { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.969 = fn_decl @C.as.ImplicitAs.impl.Convert.loc14 [concrete = constants.%C.as.ImplicitAs.impl.Convert.b4c] { -// CHECK:STDOUT: %self.patt: %pattern_type.6f3 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.6f3 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.6f3 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.6f3 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %.loc14_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b76] @@ -509,10 +509,10 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.ImplicitAs.impl.83b: %C as %ImplicitAs.type { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.bb0 = fn_decl @C.as.ImplicitAs.impl.Convert.loc15 [concrete = constants.%C.as.ImplicitAs.impl.Convert.aa7] { -// CHECK:STDOUT: %self.patt: %pattern_type.aa6 = value_binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.aa6 = value_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.aa6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.aa6 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c49 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c49 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %.loc15_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b76] @@ -944,10 +944,10 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %P.import = import P // CHECK:STDOUT: %F0.decl: %F0.type = fn_decl @F0 [concrete = constants.%F0] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f8a = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.f8a = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f8a = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f8a = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %P.ref.loc6: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%P.D [concrete = constants.%D] diff --git a/toolchain/check/testdata/return/returned_var.carbon b/toolchain/check/testdata/return/returned_var.carbon index 1747566dfb7b..4c851f5b6df1 100644 --- a/toolchain/check/testdata/return/returned_var.carbon +++ b/toolchain/check/testdata/return/returned_var.carbon @@ -105,8 +105,8 @@ fn G() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern %return.param_patt, %C.ref.loc20 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc20: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc20: Core.Form = init_form %C.ref.loc20 [concrete = constants.%.a69] @@ -114,8 +114,8 @@ fn G() -> i32 { // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/return/returned_var_scope.carbon b/toolchain/check/testdata/return/returned_var_scope.carbon index 78a24753babf..081678e930a1 100644 --- a/toolchain/check/testdata/return/returned_var_scope.carbon +++ b/toolchain/check/testdata/return/returned_var_scope.carbon @@ -100,8 +100,8 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %UnrelatedScopes.decl: %UnrelatedScopes.type = fn_decl @UnrelatedScopes [concrete = constants.%UnrelatedScopes] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.ff5] @@ -109,10 +109,10 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %EnclosingButAfter.decl: %EnclosingButAfter.type = fn_decl @EnclosingButAfter [concrete = constants.%EnclosingButAfter] { -// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern %b.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc25_34: Core.Form = init_form %i32.loc25 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/return/struct.carbon b/toolchain/check/testdata/return/struct.carbon index 80cf79b0f6de..6d26c7a79ee3 100644 --- a/toolchain/check/testdata/return/struct.carbon +++ b/toolchain/check/testdata/return/struct.carbon @@ -70,8 +70,8 @@ fn Main() -> {.a: i32} { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.patt: %pattern_type.268 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.268 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.268 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.268 = return_slot_pattern %return.param_patt, %struct_type.a [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.ba9] diff --git a/toolchain/check/testdata/return/tuple.carbon b/toolchain/check/testdata/return/tuple.carbon index 7910ce97ae85..a00852a8c889 100644 --- a/toolchain/check/testdata/return/tuple.carbon +++ b/toolchain/check/testdata/return/tuple.carbon @@ -77,8 +77,8 @@ fn Main() -> (i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern %return.param_patt, %.loc16_23.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16_15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc16_20: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/return/value.carbon b/toolchain/check/testdata/return/value.carbon index 16976a9e1c26..72edfcda965e 100644 --- a/toolchain/check/testdata/return/value.carbon +++ b/toolchain/check/testdata/return/value.carbon @@ -66,8 +66,8 @@ fn Main() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/struct/literal_member_access.carbon b/toolchain/check/testdata/struct/literal_member_access.carbon index 519ee2d84e2a..f3f210e4db4b 100644 --- a/toolchain/check/testdata/struct/literal_member_access.carbon +++ b/toolchain/check/testdata/struct/literal_member_access.carbon @@ -77,8 +77,8 @@ fn F() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.patt: %pattern_type.c6b = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c6b = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c6b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c6b = return_slot_pattern %return.param_patt, %struct_type.x.y.z [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc15_25: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -89,8 +89,8 @@ fn F() -> i32 { // CHECK:STDOUT: %return: ref %struct_type.x.y.z = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc17: Core.Form = init_form %i32 [concrete = constants.%.ff5] diff --git a/toolchain/check/testdata/struct/nested_struct_in_place.carbon b/toolchain/check/testdata/struct/nested_struct_in_place.carbon index 8093e7b924ca..47e159aea87b 100644 --- a/toolchain/check/testdata/struct/nested_struct_in_place.carbon +++ b/toolchain/check/testdata/struct/nested_struct_in_place.carbon @@ -61,8 +61,8 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.b5a = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.b5a = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b5a = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b5a = return_slot_pattern %return.param_patt, %.loc15_25.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_12: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc15_17: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/struct/partially_const.carbon b/toolchain/check/testdata/struct/partially_const.carbon index 8a57709d0e94..80c49a283a96 100644 --- a/toolchain/check/testdata/struct/partially_const.carbon +++ b/toolchain/check/testdata/struct/partially_const.carbon @@ -84,10 +84,10 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.8ae = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.8ae = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ce = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.8ae = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.8ae = return_slot_pattern %return.param_patt, %struct_type.a.b.c [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc15_34: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/struct/reorder_fields.carbon b/toolchain/check/testdata/struct/reorder_fields.carbon index 4565f8ec0304..6b03592c53a1 100644 --- a/toolchain/check/testdata/struct/reorder_fields.carbon +++ b/toolchain/check/testdata/struct/reorder_fields.carbon @@ -95,8 +95,8 @@ fn F() -> {.a: i32, .b: f64} { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %MakeI32.decl: %MakeI32.type = fn_decl @MakeI32 [concrete = constants.%MakeI32] { -// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.ff5] @@ -104,8 +104,8 @@ fn F() -> {.a: i32, .b: f64} { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %MakeF64.decl: %MakeF64.type = fn_decl @MakeF64 [concrete = constants.%MakeF64] { -// CHECK:STDOUT: %return.patt: %pattern_type.0ae = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0ae = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.0ae = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.0ae = return_slot_pattern %return.param_patt, %f64 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %f64: type = type_literal constants.%f64.d77 [concrete = constants.%f64.d77] // CHECK:STDOUT: %.loc16: Core.Form = init_form %f64 [concrete = constants.%.49c] @@ -113,8 +113,8 @@ fn F() -> {.a: i32, .b: f64} { // CHECK:STDOUT: %return: ref %f64.d77 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.a5c = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.a5c = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.a5c = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.a5c = return_slot_pattern %return.param_patt, %struct_type.a.b.loc18 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc18: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %f64.loc18: type = type_literal constants.%f64.d77 [concrete = constants.%f64.d77] diff --git a/toolchain/check/testdata/var/var_pattern.carbon b/toolchain/check/testdata/var/var_pattern.carbon index 2d4a23c7dea1..627f6b54c067 100644 --- a/toolchain/check/testdata/var/var_pattern.carbon +++ b/toolchain/check/testdata/var/var_pattern.carbon @@ -447,11 +447,10 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type.cb1 = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.cb1 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: %y.patt: %pattern_type.cb1 = ref_binding_pattern y [concrete] // CHECK:STDOUT: %y.param_patt: %pattern_type.cb1 = var_param_pattern %y.patt [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.cb1 = var_pattern %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc4_10.1: type = splice_block %.loc4_10.3 [concrete = constants.%empty_tuple.type] { @@ -530,11 +529,10 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: %y.patt: %pattern_type = ref_binding_pattern y [concrete] // CHECK:STDOUT: %y.param_patt: %pattern_type = var_param_pattern %y.patt [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type = var_pattern %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc4_10.1: type = splice_block %.loc4_10.3 [concrete = constants.%empty_tuple.type] { @@ -579,11 +577,10 @@ fn G() { // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.patt: %pattern_type = value_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: %y.patt: %pattern_type = ref_binding_pattern y [concrete] // CHECK:STDOUT: %y.param_patt: %pattern_type = var_param_pattern %y.patt [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type = var_pattern %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc4_17.1: type = splice_block %.loc4_17.3 [concrete = constants.%empty_tuple.type] { @@ -817,7 +814,6 @@ fn G() { // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { // CHECK:STDOUT: %self.patt: %pattern_type = ref_binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type = var_param_pattern %self.patt [concrete] -// CHECK:STDOUT: %self.var_patt: %pattern_type = var_pattern %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] @@ -868,8 +864,8 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %.loc4_12.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_12.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_12.2: type = converted %.loc4_12.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] diff --git a/toolchain/check/testdata/where_expr/dot_self_index.carbon b/toolchain/check/testdata/where_expr/dot_self_index.carbon index eb1c8d0fc0b0..04b566c140bd 100644 --- a/toolchain/check/testdata/where_expr/dot_self_index.carbon +++ b/toolchain/check/testdata/where_expr/dot_self_index.carbon @@ -66,8 +66,8 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: file { // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %U.patt: @H.%pattern_type (%pattern_type.bb3) = value_binding_pattern U [concrete] -// CHECK:STDOUT: %U.param_patt: @H.%pattern_type (%pattern_type.bb3) = value_param_pattern %U.patt [concrete] +// CHECK:STDOUT: %U.param_patt: @H.%pattern_type (%pattern_type.bb3) = value_param_pattern [concrete] +// CHECK:STDOUT: %U.patt: @H.%pattern_type (%pattern_type.bb3) = at_binding_pattern U, %U.param_patt [concrete] // CHECK:STDOUT: %V.patt: %pattern_type.98f = symbolic_binding_pattern V, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc21_10.1: type = splice_block %.loc21_10.2 [concrete = type] { diff --git a/toolchain/check/testdata/where_expr/non_generic.carbon b/toolchain/check/testdata/where_expr/non_generic.carbon index 380bb79dd29f..7a77f02e830a 100644 --- a/toolchain/check/testdata/where_expr/non_generic.carbon +++ b/toolchain/check/testdata/where_expr/non_generic.carbon @@ -37,8 +37,8 @@ fn NotGenericF(unused U: I where .T == i32) {} // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %NotGenericF.decl: %NotGenericF.type = fn_decl @NotGenericF [concrete = constants.%NotGenericF] { -// CHECK:STDOUT: %U.patt: %pattern_type.092 = value_binding_pattern U [concrete] -// CHECK:STDOUT: %U.param_patt: %pattern_type.092 = value_param_pattern %U.patt [concrete] +// CHECK:STDOUT: %U.param_patt: %pattern_type.092 = value_param_pattern [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.092 = at_binding_pattern U, %U.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: %I_where.type = value_param call_param0 // CHECK:STDOUT: %.loc17_28.1: type = splice_block %.loc17_28.2 [concrete = constants.%I_where.type] { diff --git a/toolchain/check/thunk.cpp b/toolchain/check/thunk.cpp index 84ef63a1a123..8b86e1166df7 100644 --- a/toolchain/check/thunk.cpp +++ b/toolchain/check/thunk.cpp @@ -62,12 +62,7 @@ static auto CloneBindingPattern(Context& context, SemIR::InstId pattern_id, auto entity_name = context.entity_names().Get(pattern.entity_name_id); CARBON_CHECK((pattern.kind == SemIR::SymbolicBindingPattern::Kind) == entity_name.bind_index().has_value()); - CARBON_CHECK((pattern.kind == SemIR::FormBindingPattern::Kind) == - entity_name.form_id.has_value()); - if (pattern.kind == SemIR::FormBindingPattern::Kind) { - context.TODO(pattern_id, "Support for cloning form bindings"); - return SemIR::ErrorInst::InstId; - } + CARBON_CHECK(pattern.kind != SemIR::FormBindingPattern::Kind); // Get the transformed type of the binding. if (new_pattern_type_id == SemIR::ErrorInst::TypeId) { return SemIR::ErrorInst::InstId; @@ -81,6 +76,19 @@ static auto CloneBindingPattern(Context& context, SemIR::InstId pattern_id, pattern.entity_name_id = AddBindingEntityName( context, entity_name.name_id, /*form_id=*/SemIR::ConstantId::None, entity_name.is_unused, phase); + if (pattern.kind == SemIR::WrapperBindingPattern::Kind) { + auto subpattern = context.insts().GetAs( + pattern.subpattern_id); + if (subpattern.kind == SemIR::FormParamPattern::Kind) { + context.TODO(pattern_id, "Support for cloning form bindings"); + return SemIR::ErrorInst::InstId; + } + pattern.subpattern_id = RebuildPatternInst( + context, pattern.subpattern_id, + {.kind = subpattern.kind, + .type_id = new_pattern_type_id, + .pretty_name_id = entity_name.name_id}); + } // Rebuild the binding pattern. return AddBindingPattern(context, SemIR::LocId(pattern_id), SemIR::ExprRegionId::None, pattern) @@ -106,9 +114,9 @@ static auto ClonePattern(Context& context, SemIR::SpecificId specific_id, // Decompose the pattern. The forms we allow for patterns in a function // parameter list are currently fairly restrictive. - // Optional parameter pattern. - auto [param, param_id] = context.insts().TryUnwrap( - pattern, pattern_id, &SemIR::AnyParamPattern::subpattern_id); + // Optional var parameter pattern. + auto [var_param, var_param_id] = context.insts().TryUnwrap( + pattern, pattern_id, &SemIR::VarParamPattern::subpattern_id); // Finally, either a binding pattern or a return slot pattern. auto new_pattern_id = SemIR::InstId::None; @@ -116,9 +124,14 @@ static auto ClonePattern(Context& context, SemIR::SpecificId specific_id, new_pattern_id = CloneBindingPattern(context, pattern_id, *binding, get_type(pattern_id)); } else if (auto return_slot = pattern.TryAs()) { + auto new_subpattern_id = RebuildPatternInst( + context, return_slot->subpattern_id, + {.type_id = get_type(return_slot->subpattern_id), + .pretty_name_id = SemIR::NameId::ReturnSlot}); new_pattern_id = RebuildPatternInst( context, pattern_id, {.type_id = get_type(pattern_id), + .subpattern_id = new_subpattern_id, .type_inst_id = SemIR::TypeInstId::None}); } else { CARBON_CHECK(pattern.Is(), @@ -127,13 +140,10 @@ static auto ClonePattern(Context& context, SemIR::SpecificId specific_id, } // Rebuild parameter. - if (param && new_pattern_id != SemIR::ErrorInst::InstId) { - new_pattern_id = RebuildPatternInst( - context, param_id, - {.kind = param->kind, - .type_id = get_type(param_id), - .subpattern_id = new_pattern_id, - .form_id = SemIR::ConstantId::None}); + if (var_param && new_pattern_id != SemIR::ErrorInst::InstId) { + new_pattern_id = RebuildPatternInst( + context, var_param_id, + {.type_id = get_type(var_param_id), .subpattern_id = new_pattern_id}); } return new_pattern_id; @@ -280,6 +290,11 @@ auto PerformThunkCall(Context& context, SemIR::LocId loc_id, // `function_id`, this returns the _syntactic_ argument that was passed for // param_pattern_id in that call. auto build_syntactic_arg = [&](SemIR::InstId param_pattern_id) { + if (auto at_binding_pattern = + context.insts().TryGetAs( + param_pattern_id)) { + param_pattern_id = at_binding_pattern->subpattern_id; + } // NOLINTNEXTLINE(readability-qualified-auto) auto result = llvm::lower_bound(param_to_index, InstWithIndex{param_pattern_id, -1}); diff --git a/toolchain/docs/check/pattern_matching.md b/toolchain/docs/check/pattern_matching.md index 64b92c57621f..7ea209aa204a 100644 --- a/toolchain/docs/check/pattern_matching.md +++ b/toolchain/docs/check/pattern_matching.md @@ -241,10 +241,10 @@ the names `y` and `z` to its elements. In SemIR we represent this situation with special `ParamPattern` instructions, which mark the boundary: there is exactly one `ParamPattern` instruction for each `Call` parameter, which matches the entire corresponding `Call` argument. -The subpatterns of the `ParamPattern`s are matched on the callee side, and -everything above them is matched on the caller side. There are multiple kinds of -`ParamPattern` instruction, which correspond to different ways of passing a -parameter (such as by reference or by value). +If a `ParamPattern` has a subpattern, it is matched on the callee side, and +everything above it is matched primarily on the caller side. There are multiple +kinds of `ParamPattern` instruction, which correspond to different ways of +passing a parameter (such as by reference or by value). When performing callee-side pattern matching, we do not have an actual scrutinee expression. Instead, for each `ParamPattern` instruction we generate a @@ -256,18 +256,18 @@ the `Call` argument list, and we use that as the scrutinee of the If a function has a declared return type, the function takes an additional `Call` parameter, which points to the storage that should be initialized with -the return value. This `Call` parameter is represented as an `OutParamPattern` -instruction with a `ReturnSlotPattern` instruction as a subpattern. The +the return value. This `Call` parameter is represented as `ReturnSlotPattern` +instruction with an `OutParamPattern` instruction as a subpattern. The `ReturnSlotPattern` also represents the return type declaration itself, such as in `FunctionFields`. The SemIR that matches these patterns consists of a `ReturnSlot` instruction, which binds the special name `NameId::ReturnSlot` to the `OutParam` instruction representing the storage passed by the caller. This structure is analogous to the handling of an ordinary by-value parameter, -which is represented in the `Call` parameters as a `ValueParamPattern` -instruction with a `ValueBindingPattern`, and in the pattern-matching SemIR as a -`ValueBinding` instruction that binds the parameter name to the `ValueParam` -instruction representing the argument passed by the caller. +which is represented in the `Call` parameters as an `WrapperBindingPattern` +instruction with a `ValueParamPattern` subpattern, and in the pattern-matching +SemIR as a `ValueBinding` instruction that binds the parameter name to the +`ValueParam` instruction representing the argument passed by the caller. Note that if the return type does not have an in-place value representation (meaning that the return value should not be passed in memory), these diff --git a/toolchain/lower/testdata/interop/cpp/nullptr.carbon b/toolchain/lower/testdata/interop/cpp/nullptr.carbon index 89d8cf5d86e5..a61bc45f2f23 100644 --- a/toolchain/lower/testdata/interop/cpp/nullptr.carbon +++ b/toolchain/lower/testdata/interop/cpp/nullptr.carbon @@ -96,7 +96,7 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.6f07019e2bbdfcc4:core.Destroy.Core"(ptr) +// CHECK:STDOUT: declare void @"_COp.1608e268d71809e4:core.Destroy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z7TakePtrPi(ptr noundef) #1 // CHECK:STDOUT: diff --git a/toolchain/sem_ir/formatter.cpp b/toolchain/sem_ir/formatter.cpp index f34accf8f5d5..db741bfd946b 100644 --- a/toolchain/sem_ir/formatter.cpp +++ b/toolchain/sem_ir/formatter.cpp @@ -1066,6 +1066,19 @@ auto Formatter::FormatInstRhs(Inst inst) -> void { return; } + case CARBON_KIND_ANY(AnyLeafParamPattern, _): { + // Omit pretty_name because it's an implementation detail of + // pretty-printing. + return; + } + + case CARBON_KIND(VarParamPattern param): { + FormatArgs(param.subpattern_id); + // Omit pretty_name because it's an implementation detail of + // pretty-printing. + return; + } + case CARBON_KIND(AssociatedConstantDecl decl): { FormatArgs(decl.assoc_const_id); llvm::SaveAndRestore scope(scope_, @@ -1230,11 +1243,6 @@ auto Formatter::FormatInstRhs(Inst inst) -> void { return; } - case ReturnSlotPattern::Kind: - // No-op because type_id is the only semantically significant field, - // and it's handled separately. - return; - case CARBON_KIND(SpliceBlock splice): { FormatArgs(splice.result_id); FormatTrailingBlock(splice.block_id); diff --git a/toolchain/sem_ir/inst_categories.h b/toolchain/sem_ir/inst_categories.h index bd4229277e30..fbcd30dc78cd 100644 --- a/toolchain/sem_ir/inst_categories.h +++ b/toolchain/sem_ir/inst_categories.h @@ -112,7 +112,8 @@ struct AnyAggregateValue { X(::Carbon::SemIR::FormBindingPattern) Sep() \ X(::Carbon::SemIR::RefBindingPattern) Sep() \ X(::Carbon::SemIR::SymbolicBindingPattern) Sep() \ - X(::Carbon::SemIR::ValueBindingPattern) + X(::Carbon::SemIR::ValueBindingPattern) Sep() \ + X(::Carbon::SemIR::WrapperBindingPattern) // clang-format on #define AnyBindingPattern_CARBON_KIND_ANY_EXPAND \ @@ -133,6 +134,9 @@ struct AnyBindingPattern { // pattern has `_` in the name position, and so does not truly declare // a name. EntityNameId entity_name_id; + + // None unless this is an WrapperBindingPattern. + InstId subpattern_id; }; // clang-format off @@ -269,31 +273,53 @@ struct AnyParam { }; // clang-format off -#define AnyParamPattern_CARBON_INST_CATEGORY(X, Sep) \ - X(::Carbon::SemIR::FormParamPattern) Sep() \ - X(::Carbon::SemIR::OutParamPattern) Sep() \ - X(::Carbon::SemIR::RefParamPattern) Sep() \ - X(::Carbon::SemIR::ValueParamPattern) Sep() \ +#define AnyLeafParamPattern_CARBON_INST_CATEGORY(X, Sep) \ + X(::Carbon::SemIR::FormParamPattern) Sep() \ + X(::Carbon::SemIR::OutParamPattern) Sep() \ + X(::Carbon::SemIR::RefParamPattern) Sep() \ + X(::Carbon::SemIR::ValueParamPattern) +// clang-format on + +#define AnyLeafParamPattern_CARBON_KIND_ANY_EXPAND \ + CARBON_INST_CATEGORY_ANY_EXPAND(AnyLeafParamPattern) + +// A pattern that represents a `Call` parameter. +struct AnyLeafParamPattern { + using CategoryInfo = CARBON_INST_CATEGORY_INFO(AnyLeafParamPattern); + + InstKind kind; + + // Always a PatternType. + TypeId type_id; + + // A name to associate with this parameter in pretty-printed IR. This is not + // necessarily unique, and can even be `None`; it has no semantic + // significance. + NameId pretty_name_id; + + AnyRawId arg1 = AnyRawId(AnyIdBase::NoneIndex); +}; + +// clang-format off +#define AnyParamPattern_CARBON_INST_CATEGORY(X, Sep) \ + AnyLeafParamPattern_CARBON_INST_CATEGORY(X, Sep) Sep() \ X(::Carbon::SemIR::VarParamPattern) // clang-format on #define AnyParamPattern_CARBON_KIND_ANY_EXPAND \ CARBON_INST_CATEGORY_ANY_EXPAND(AnyParamPattern) -// A pattern that represents a `Call` parameter. It delegates to subpattern_id -// in pattern matching. +// A pattern that represents a `Call` parameter. struct AnyParamPattern { using CategoryInfo = CARBON_INST_CATEGORY_INFO(AnyParamPattern); InstKind kind; - // Always a PatternType that represents the same type as the type of - // `subpattern_id`. + // Always a PatternType. TypeId type_id; - InstId subpattern_id; - // None unless this is a FormParamPattern. - ConstantId form_id; + AnyRawId arg0; + AnyRawId arg1; }; // clang-format off @@ -361,6 +387,28 @@ struct AnyStructType { AnyRawId arg1; }; +// clang-format off +#define AnyVarPattern_CARBON_INST_CATEGORY(X, Sep) \ + X(::Carbon::SemIR::VarParamPattern) Sep() \ + X(::Carbon::SemIR::VarPattern) +// clang-format on + +#define AnyVarPattern_CARBON_KIND_ANY_EXPAND \ + CARBON_INST_CATEGORY_ANY_EXPAND(AnyVarPattern) + +// A `var` pattern. +struct AnyVarPattern { + using CategoryInfo = CARBON_INST_CATEGORY_INFO(AnyVarPattern); + + InstKind kind; + + // Always a PatternType. + TypeId type_id; + + // The pattern nested inside the `var`. + InstId subpattern_id; +}; + } // namespace Carbon::SemIR #endif // CARBON_TOOLCHAIN_SEM_IR_INST_CATEGORIES_H_ diff --git a/toolchain/sem_ir/inst_kind.def b/toolchain/sem_ir/inst_kind.def index 86fe742ad6c5..86b05d2dd359 100644 --- a/toolchain/sem_ir/inst_kind.def +++ b/toolchain/sem_ir/inst_kind.def @@ -177,6 +177,7 @@ CARBON_SEM_IR_INST_KIND(VtableType) CARBON_SEM_IR_INST_KIND(VtablePtr) CARBON_SEM_IR_INST_KIND(WhereExpr) CARBON_SEM_IR_INST_KIND(WitnessType) +CARBON_SEM_IR_INST_KIND(WrapperBindingPattern) #undef CARBON_SEM_IR_INST_KIND #undef CARBON_SEM_IR_BUILTIN_INST_KIND diff --git a/toolchain/sem_ir/pattern.cpp b/toolchain/sem_ir/pattern.cpp index 8571eb631043..c598d70dcf0d 100644 --- a/toolchain/sem_ir/pattern.cpp +++ b/toolchain/sem_ir/pattern.cpp @@ -4,6 +4,7 @@ #include "toolchain/sem_ir/pattern.h" +#include "toolchain/base/kind_switch.h" #include "toolchain/sem_ir/ids.h" #include "toolchain/sem_ir/typed_insts.h" @@ -16,16 +17,11 @@ static auto GetUnwrapped(const File& sem_ir, InstId pattern_id) auto inst_id = pattern_id; auto inst = sem_ir.insts().Get(inst_id); - if (auto var_pattern = inst.TryAs()) { + if (auto var_pattern = inst.TryAs()) { inst_id = var_pattern->subpattern_id; inst = sem_ir.insts().Get(inst_id); } - if (auto param_pattern_inst = inst.TryAs()) { - inst_id = param_pattern_inst->subpattern_id; - inst = sem_ir.insts().Get(inst_id); - } - return {inst_id, inst}; } @@ -74,17 +70,16 @@ auto GetFirstBindingNameFromPatternId(const File& sem_ir, InstId pattern_id) auto GetPrettyNameFromPatternId(const File& sem_ir, InstId pattern_id) -> NameId { auto [inst_id, inst] = GetUnwrapped(sem_ir, pattern_id); - - if (auto [name_id, entity_name_id] = GetBoundEntityName(sem_ir, inst); - entity_name_id.has_value()) { - return name_id; + CARBON_KIND_SWITCH(inst) { + case CARBON_KIND_ANY(SemIR::AnyLeafParamPattern, param_pattern): { + return param_pattern.pretty_name_id; + } + case CARBON_KIND_ANY(SemIR::AnyBindingPattern, _): { + return GetBoundEntityName(sem_ir, inst).first; + } + default: + return NameId::None; } - - if (inst.Is()) { - return NameId::ReturnSlot; - } - - return NameId::None; } } // namespace Carbon::SemIR diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index c90258298f1a..72570bbe50a2 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -760,8 +760,8 @@ struct FormBinding { InstId value_id; }; -// A form binding pattern, such as `x:? F`. See `AnyBindingPattern` for member -// documentation. +// A form binding pattern, such as `x:? F`, that is not a parameter. See +// `AnyBindingPattern` for member documentation. struct FormBindingPattern { static constexpr auto Kind = InstKind::FormBindingPattern.Define( @@ -787,7 +787,7 @@ struct FormParamPattern { .is_lowered = false}); TypeId type_id; - InstId subpattern_id; + NameId pretty_name_id; ConstantId form_id; }; @@ -1350,7 +1350,7 @@ struct OutParamPattern { .is_lowered = false}); TypeId type_id; - InstId subpattern_id; + NameId pretty_name_id; }; // Indicates `partial` on a type, such as `partial MyClass`. @@ -1420,8 +1420,8 @@ struct RefineTypeAction { TypeInstId inst_type_inst_id; }; -// Represents a reference binding pattern. See `AnyBindingPattern` for member -// documentation. +// Represents a reference binding pattern that is not a parameter. See +// `AnyBindingPattern` for member documentation. struct RefBindingPattern { static constexpr auto Kind = InstKind::RefBindingPattern.Define( @@ -1460,7 +1460,7 @@ struct RefParam { NameId pretty_name_id; }; -// A pattern that represents a `ref`-qualified `Call` parameter. See +// A pattern that represents a by-reference `Call` parameter. See // `AnyParamPattern` for member documentation. struct RefParamPattern { // TODO: Make Parse::NodeId more specific. @@ -1471,7 +1471,7 @@ struct RefParamPattern { .is_lowered = false}); TypeId type_id; - InstId subpattern_id; + NameId pretty_name_id; }; // A `ref x` expression. The semantics of this instruction depend on the usage @@ -1671,6 +1671,8 @@ struct ReturnSlotPattern { // function. TypeId type_id; + InstId subpattern_id; + // The function return type as originally written by the user. For diagnostics // only; this has no semantic significance, and is not preserved across // imports. @@ -2128,8 +2130,8 @@ struct ValueBinding { InstId value_id; }; -// Represents a value binding pattern. See `AnyBindingPattern` for member -// documentation. +// Represents a value binding pattern that is not a parameter. See +// `AnyBindingPattern` for member documentation. struct ValueBindingPattern { static constexpr auto Kind = InstKind::ValueBindingPattern.Define( @@ -2190,12 +2192,12 @@ struct ValueParamPattern { .is_lowered = false}); TypeId type_id; - InstId subpattern_id; + NameId pretty_name_id; }; -// A pattern that represents a `Call` parameter corresponding to a `var` -// pattern. See `AnyParamPattern` for member documentation. Note that there is -// no `VarParam` -- a `VarParamPattern` corresponds to a `RefParam`. +// A `var` pattern that is a `Call` parameter. See `AnyVarPattern` for member +// documentation. Note that there is no `VarParam` -- a `VarParamPattern` +// corresponds to a `RefParam`. struct VarParamPattern { static constexpr auto Kind = InstKind::VarParamPattern.Define( @@ -2208,7 +2210,7 @@ struct VarParamPattern { InstId subpattern_id; }; -// A `var` pattern. +// A `var` pattern that is not a `Call` parameter. struct VarPattern { static constexpr auto Kind = InstKind::VarPattern.Define( @@ -2292,6 +2294,23 @@ struct WhereExpr { // standard type and be removed. using WitnessType = SingletonTypeInst">; +// A binding pattern that binds a name to the result of matching +// `subpattern_id` against this pattern's scrutinee. Currently there is no +// explicit syntax for such a pattern, but it arises implicitly when handling +// function parameters, and particularly `:?` form bindings. +struct WrapperBindingPattern { + static constexpr auto Kind = + InstKind::WrapperBindingPattern.Define( + {.ir_name = "at_binding_pattern", + .expr_category = ExprCategory::Pattern, + .constant_kind = InstConstantKind::AlwaysUnique, + .is_lowered = false}); + + TypeId type_id; + EntityNameId entity_name_id; + InstId subpattern_id; +}; + // These concepts are an implementation detail of the library, not public API. namespace Internal {