diff --git a/toolchain/check/convert.cpp b/toolchain/check/convert.cpp index afe74afb659af..20a16bb034125 100644 --- a/toolchain/check/convert.cpp +++ b/toolchain/check/convert.cpp @@ -1211,11 +1211,17 @@ static auto PerformBuiltinConversion( if (auto facet_access_type_inst = sem_ir.insts().TryGetAs(const_value_id)) { - // Conversion from a `FacetAccessType` to a `FacetValue` of the target - // `FacetType` if the instruction in the `FacetAccessType` is of a - // `FacetType` that satisfies the requirements of the target `FacetType`. - // If the `FacetType` exactly matches the target `FacetType` then we can - // shortcut and use that value, and avoid impl lookup. + // Shortcut for lossless round trips through a FacetAccessType when + // converting back to the type of its original facet value. + // + // In the case where the FacetAccessType wraps a BindSymbolicName with the + // exact facet type that we are converting to, the resulting FacetValue + // would evaluate back to the original BindSymbolicName as its canonical + // form. We can skip past the whole impl lookup step then and do that + // here. + // + // See also test: + // facet_access_type_converts_back_to_original_facet_value.carbon auto facet_value_inst_id = facet_access_type_inst->facet_value_inst_id; if (sem_ir.insts().Get(facet_value_inst_id).type_id() == target.type_id) { return facet_value_inst_id; diff --git a/toolchain/check/eval_inst.cpp b/toolchain/check/eval_inst.cpp index f7259acab91ff..062654f841c8f 100644 --- a/toolchain/check/eval_inst.cpp +++ b/toolchain/check/eval_inst.cpp @@ -180,6 +180,14 @@ auto EvalConstantInst(Context& context, SemIR::Converted inst) context.constant_values().Get(inst.result_id)); } +// TODO: This should not be necessary since the constant kind is +// WheneverPossible. +auto EvalConstantInst(Context& /*context*/, SemIR::CppOverloadSetValue inst) + -> ConstantEvalResult { + return ConstantEvalResult::NewSamePhase(SemIR::StructValue{ + .type_id = inst.type_id, .elements_id = SemIR::InstBlockId::Empty}); +} + auto EvalConstantInst(Context& /*context*/, SemIR::Deref /*inst*/) -> ConstantEvalResult { // TODO: Handle this. @@ -203,6 +211,27 @@ auto EvalConstantInst(Context& context, SemIR::FacetAccessType inst) return ConstantEvalResult::NewSamePhase(inst); } +auto EvalConstantInst(Context& context, SemIR::FacetValue inst) + -> ConstantEvalResult { + // A FacetValue that just wraps a BindSymbolicName without adding/removing any + // witnesses is evaluated back to the BindSymbolicName itself. + if (auto access = + context.insts().TryGetAs(inst.type_inst_id)) { + auto bind_id = access->facet_value_inst_id; + auto bind = context.insts().Get(bind_id); + if (bind.Is()) { + // If the FacetTypes are the same, then the FacetValue didn't add/remove + // any witnesses. + if (bind.type_id() == inst.type_id) { + return ConstantEvalResult::Existing( + context.constant_values().Get(bind_id)); + } + } + } + + return ConstantEvalResult::NewSamePhase(inst); +} + auto EvalConstantInst(Context& context, SemIR::InstId inst_id, SemIR::FloatType inst) -> ConstantEvalResult { return ValidateFloatTypeAndSetKind(context, SemIR::LocId(inst_id), inst) @@ -210,14 +239,6 @@ auto EvalConstantInst(Context& context, SemIR::InstId inst_id, : ConstantEvalResult::Error; } -// TODO: This should not be necessary since the constant kind is -// WheneverPossible. -auto EvalConstantInst(Context& /*context*/, SemIR::CppOverloadSetValue inst) - -> ConstantEvalResult { - return ConstantEvalResult::NewSamePhase(SemIR::StructValue{ - .type_id = inst.type_id, .elements_id = SemIR::InstBlockId::Empty}); -} - auto EvalConstantInst(Context& /*context*/, SemIR::FunctionDecl inst) -> ConstantEvalResult { // A function declaration evaluates to a function object, which is an empty diff --git a/toolchain/check/testdata/alias/export_name.carbon b/toolchain/check/testdata/alias/export_name.carbon index 74c81f6830407..a09d2897b10ec 100644 --- a/toolchain/check/testdata/alias/export_name.carbon +++ b/toolchain/check/testdata/alias/export_name.carbon @@ -323,8 +323,8 @@ var d: D* = &c; // CHECK:STDOUT: %Copy.impl_witness.999: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c3f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.fb8: %ptr.as.Copy.impl.Op.type.c3f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.9e3: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] -// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9e3 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] +// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.fb8 [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.fb8, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/array/import.carbon b/toolchain/check/testdata/array/import.carbon index 2db02bcf6eccd..3c522019da36c 100644 --- a/toolchain/check/testdata/array/import.carbon +++ b/toolchain/check/testdata/array/import.carbon @@ -76,8 +76,8 @@ fn F() -> array(i32, 1) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] diff --git a/toolchain/check/testdata/array/index_not_literal.carbon b/toolchain/check/testdata/array/index_not_literal.carbon index a3299ae1ff88e..f55d3ddde86cd 100644 --- a/toolchain/check/testdata/array/index_not_literal.carbon +++ b/toolchain/check/testdata/array/index_not_literal.carbon @@ -65,8 +65,8 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] 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 c856eb767f958..82e0a1fdaf363 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon @@ -70,172 +70,166 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_inst39: {ir_id: ir4, inst_id: inst124} // CHECK:STDOUT: import_ir_inst40: {ir_id: ir4, inst_id: inst132} // CHECK:STDOUT: import_ir_inst41: {ir_id: ir4, inst_id: inst139} -// CHECK:STDOUT: import_ir_inst42: {ir_id: ir4, inst_id: inst144} -// CHECK:STDOUT: import_ir_inst43: {ir_id: ir4, inst_id: inst145} -// CHECK:STDOUT: import_ir_inst44: {ir_id: ir4, inst_id: inst146} -// CHECK:STDOUT: import_ir_inst45: {ir_id: ir4, inst_id: inst151} -// CHECK:STDOUT: import_ir_inst46: {ir_id: ir4, inst_id: inst172} -// CHECK:STDOUT: import_ir_inst47: {ir_id: ir4, inst_id: inst170} -// CHECK:STDOUT: import_ir_inst48: {ir_id: ir4, inst_id: inst168} -// CHECK:STDOUT: import_ir_inst49: {ir_id: ir4, inst_id: inst169} -// CHECK:STDOUT: import_ir_inst50: {ir_id: ir4, inst_id: inst196} -// CHECK:STDOUT: import_ir_inst51: {ir_id: ir4, inst_id: inst194} -// CHECK:STDOUT: import_ir_inst52: {ir_id: ir4, inst_id: inst192} -// CHECK:STDOUT: import_ir_inst53: {ir_id: ir4, inst_id: inst193} -// CHECK:STDOUT: import_ir_inst54: {ir_id: ir4, inst_id: inst220} -// CHECK:STDOUT: import_ir_inst55: {ir_id: ir4, inst_id: inst218} -// CHECK:STDOUT: import_ir_inst56: {ir_id: ir4, inst_id: inst216} -// CHECK:STDOUT: import_ir_inst57: {ir_id: ir4, inst_id: inst217} -// CHECK:STDOUT: import_ir_inst58: {ir_id: ir4, inst_id: inst244} -// CHECK:STDOUT: import_ir_inst59: {ir_id: ir4, inst_id: inst242} -// CHECK:STDOUT: import_ir_inst60: {ir_id: ir4, inst_id: inst240} -// CHECK:STDOUT: import_ir_inst61: {ir_id: ir4, inst_id: inst241} -// CHECK:STDOUT: import_ir_inst62: {ir_id: ir4, inst_id: inst273} -// CHECK:STDOUT: import_ir_inst63: {ir_id: ir4, inst_id: inst271} -// CHECK:STDOUT: import_ir_inst64: {ir_id: ir4, inst_id: inst265} -// CHECK:STDOUT: import_ir_inst65: {ir_id: ir4, inst_id: inst262} -// CHECK:STDOUT: import_ir_inst66: {ir_id: ir4, inst_id: inst267} -// CHECK:STDOUT: import_ir_inst67: {ir_id: ir4, inst_id: inst270} -// CHECK:STDOUT: import_ir_inst68: {ir_id: ir4, inst_id: inst290} -// CHECK:STDOUT: import_ir_inst69: {ir_id: ir4, inst_id: inst272} -// CHECK:STDOUT: import_ir_inst70: {ir_id: ir4, inst_id: inst264} -// CHECK:STDOUT: import_ir_inst71: {ir_id: ir4, inst_id: inst269} -// CHECK:STDOUT: import_ir_inst72: {ir_id: ir4, inst_id: inst275} -// CHECK:STDOUT: import_ir_inst73: {ir_id: ir4, inst_id: inst290} -// CHECK:STDOUT: import_ir_inst74: {ir_id: ir4, inst_id: inst285} -// CHECK:STDOUT: import_ir_inst75: {ir_id: ir4, inst_id: inst286} +// CHECK:STDOUT: import_ir_inst42: {ir_id: ir4, inst_id: inst143} +// CHECK:STDOUT: import_ir_inst43: {ir_id: ir4, inst_id: inst144} +// CHECK:STDOUT: import_ir_inst44: {ir_id: ir4, inst_id: inst149} +// CHECK:STDOUT: import_ir_inst45: {ir_id: ir4, inst_id: inst170} +// CHECK:STDOUT: import_ir_inst46: {ir_id: ir4, inst_id: inst168} +// CHECK:STDOUT: import_ir_inst47: {ir_id: ir4, inst_id: inst166} +// CHECK:STDOUT: import_ir_inst48: {ir_id: ir4, inst_id: inst167} +// CHECK:STDOUT: import_ir_inst49: {ir_id: ir4, inst_id: inst194} +// CHECK:STDOUT: import_ir_inst50: {ir_id: ir4, inst_id: inst192} +// CHECK:STDOUT: import_ir_inst51: {ir_id: ir4, inst_id: inst190} +// CHECK:STDOUT: import_ir_inst52: {ir_id: ir4, inst_id: inst191} +// CHECK:STDOUT: import_ir_inst53: {ir_id: ir4, inst_id: inst218} +// CHECK:STDOUT: import_ir_inst54: {ir_id: ir4, inst_id: inst216} +// CHECK:STDOUT: import_ir_inst55: {ir_id: ir4, inst_id: inst214} +// CHECK:STDOUT: import_ir_inst56: {ir_id: ir4, inst_id: inst215} +// CHECK:STDOUT: import_ir_inst57: {ir_id: ir4, inst_id: inst242} +// CHECK:STDOUT: import_ir_inst58: {ir_id: ir4, inst_id: inst240} +// CHECK:STDOUT: import_ir_inst59: {ir_id: ir4, inst_id: inst238} +// CHECK:STDOUT: import_ir_inst60: {ir_id: ir4, inst_id: inst239} +// CHECK:STDOUT: import_ir_inst61: {ir_id: ir4, inst_id: inst271} +// CHECK:STDOUT: import_ir_inst62: {ir_id: ir4, inst_id: inst269} +// CHECK:STDOUT: import_ir_inst63: {ir_id: ir4, inst_id: inst263} +// CHECK:STDOUT: import_ir_inst64: {ir_id: ir4, inst_id: inst260} +// CHECK:STDOUT: import_ir_inst65: {ir_id: ir4, inst_id: inst265} +// CHECK:STDOUT: import_ir_inst66: {ir_id: ir4, inst_id: inst268} +// CHECK:STDOUT: import_ir_inst67: {ir_id: ir4, inst_id: inst288} +// CHECK:STDOUT: import_ir_inst68: {ir_id: ir4, inst_id: inst270} +// CHECK:STDOUT: import_ir_inst69: {ir_id: ir4, inst_id: inst262} +// CHECK:STDOUT: import_ir_inst70: {ir_id: ir4, inst_id: inst267} +// CHECK:STDOUT: import_ir_inst71: {ir_id: ir4, inst_id: inst273} +// CHECK:STDOUT: import_ir_inst72: {ir_id: ir4, inst_id: inst288} +// CHECK:STDOUT: import_ir_inst73: {ir_id: ir4, inst_id: inst283} +// CHECK:STDOUT: import_ir_inst74: {ir_id: ir4, inst_id: inst284} +// CHECK:STDOUT: import_ir_inst75: {ir_id: ir4, inst_id: inst279} // CHECK:STDOUT: import_ir_inst76: {ir_id: ir4, inst_id: inst281} -// CHECK:STDOUT: import_ir_inst77: {ir_id: ir4, inst_id: inst283} -// CHECK:STDOUT: import_ir_inst78: {ir_id: ir4, inst_id: inst262} -// CHECK:STDOUT: import_ir_inst79: {ir_id: ir4, inst_id: inst293} -// CHECK:STDOUT: import_ir_inst80: {ir_id: ir4, inst_id: inst294} -// CHECK:STDOUT: import_ir_inst81: {ir_id: ir4, inst_id: inst297} -// CHECK:STDOUT: import_ir_inst82: {ir_id: ir4, inst_id: inst277} -// CHECK:STDOUT: import_ir_inst83: {ir_id: ir4, inst_id: inst278} -// CHECK:STDOUT: import_ir_inst84: {ir_id: ir4, inst_id: inst282} -// CHECK:STDOUT: import_ir_inst85: {ir_id: ir4, inst_id: inst303} -// CHECK:STDOUT: import_ir_inst86: {ir_id: ir4, inst_id: inst301} -// CHECK:STDOUT: import_ir_inst87: {ir_id: ir4, inst_id: inst(TypeType)} -// CHECK:STDOUT: import_ir_inst88: {ir_id: ir4, inst_id: inst300} -// CHECK:STDOUT: import_ir_inst89: {ir_id: ir4, inst_id: inst324} -// CHECK:STDOUT: import_ir_inst90: {ir_id: ir4, inst_id: inst322} -// CHECK:STDOUT: import_ir_inst91: {ir_id: ir4, inst_id: inst320} -// CHECK:STDOUT: import_ir_inst92: {ir_id: ir4, inst_id: inst321} -// CHECK:STDOUT: import_ir_inst93: {ir_id: ir4, inst_id: inst372} -// CHECK:STDOUT: import_ir_inst94: {ir_id: ir4, inst_id: inst370} -// CHECK:STDOUT: import_ir_inst95: {ir_id: ir4, inst_id: inst351} -// CHECK:STDOUT: import_ir_inst96: {ir_id: ir4, inst_id: inst345} -// CHECK:STDOUT: import_ir_inst97: {ir_id: ir4, inst_id: inst343} -// CHECK:STDOUT: import_ir_inst98: {ir_id: ir4, inst_id: inst348} +// CHECK:STDOUT: import_ir_inst77: {ir_id: ir4, inst_id: inst260} +// CHECK:STDOUT: import_ir_inst78: {ir_id: ir4, inst_id: inst291} +// CHECK:STDOUT: import_ir_inst79: {ir_id: ir4, inst_id: inst292} +// CHECK:STDOUT: import_ir_inst80: {ir_id: ir4, inst_id: inst295} +// CHECK:STDOUT: import_ir_inst81: {ir_id: ir4, inst_id: inst275} +// CHECK:STDOUT: import_ir_inst82: {ir_id: ir4, inst_id: inst276} +// CHECK:STDOUT: import_ir_inst83: {ir_id: ir4, inst_id: inst280} +// CHECK:STDOUT: import_ir_inst84: {ir_id: ir4, inst_id: inst301} +// CHECK:STDOUT: import_ir_inst85: {ir_id: ir4, inst_id: inst299} +// CHECK:STDOUT: import_ir_inst86: {ir_id: ir4, inst_id: inst(TypeType)} +// CHECK:STDOUT: import_ir_inst87: {ir_id: ir4, inst_id: inst298} +// CHECK:STDOUT: import_ir_inst88: {ir_id: ir4, inst_id: inst322} +// CHECK:STDOUT: import_ir_inst89: {ir_id: ir4, inst_id: inst320} +// CHECK:STDOUT: import_ir_inst90: {ir_id: ir4, inst_id: inst318} +// CHECK:STDOUT: import_ir_inst91: {ir_id: ir4, inst_id: inst319} +// CHECK:STDOUT: import_ir_inst92: {ir_id: ir4, inst_id: inst370} +// CHECK:STDOUT: import_ir_inst93: {ir_id: ir4, inst_id: inst368} +// CHECK:STDOUT: import_ir_inst94: {ir_id: ir4, inst_id: inst349} +// CHECK:STDOUT: import_ir_inst95: {ir_id: ir4, inst_id: inst343} +// CHECK:STDOUT: import_ir_inst96: {ir_id: ir4, inst_id: inst341} +// CHECK:STDOUT: import_ir_inst97: {ir_id: ir4, inst_id: inst346} +// CHECK:STDOUT: import_ir_inst98: {ir_id: ir4, inst_id: inst363} // CHECK:STDOUT: import_ir_inst99: {ir_id: ir4, inst_id: inst365} -// CHECK:STDOUT: import_ir_inst100: {ir_id: ir4, inst_id: inst367} -// CHECK:STDOUT: import_ir_inst101: {ir_id: ir4, inst_id: inst394} -// CHECK:STDOUT: import_ir_inst102: {ir_id: ir4, inst_id: inst371} -// CHECK:STDOUT: import_ir_inst103: {ir_id: ir4, inst_id: inst344} -// CHECK:STDOUT: import_ir_inst104: {ir_id: ir4, inst_id: inst350} -// CHECK:STDOUT: import_ir_inst105: {ir_id: ir4, inst_id: inst358} -// CHECK:STDOUT: import_ir_inst106: {ir_id: ir4, inst_id: inst362} -// CHECK:STDOUT: import_ir_inst107: {ir_id: ir4, inst_id: inst366} -// CHECK:STDOUT: import_ir_inst108: {ir_id: ir4, inst_id: inst374} -// CHECK:STDOUT: import_ir_inst109: {ir_id: ir4, inst_id: inst394} -// CHECK:STDOUT: import_ir_inst110: {ir_id: ir4, inst_id: inst389} -// CHECK:STDOUT: import_ir_inst111: {ir_id: ir4, inst_id: inst390} +// CHECK:STDOUT: import_ir_inst100: {ir_id: ir4, inst_id: inst392} +// CHECK:STDOUT: import_ir_inst101: {ir_id: ir4, inst_id: inst369} +// CHECK:STDOUT: import_ir_inst102: {ir_id: ir4, inst_id: inst342} +// CHECK:STDOUT: import_ir_inst103: {ir_id: ir4, inst_id: inst348} +// CHECK:STDOUT: import_ir_inst104: {ir_id: ir4, inst_id: inst356} +// CHECK:STDOUT: import_ir_inst105: {ir_id: ir4, inst_id: inst360} +// CHECK:STDOUT: import_ir_inst106: {ir_id: ir4, inst_id: inst364} +// CHECK:STDOUT: import_ir_inst107: {ir_id: ir4, inst_id: inst372} +// CHECK:STDOUT: import_ir_inst108: {ir_id: ir4, inst_id: inst392} +// CHECK:STDOUT: import_ir_inst109: {ir_id: ir4, inst_id: inst387} +// CHECK:STDOUT: import_ir_inst110: {ir_id: ir4, inst_id: inst388} +// CHECK:STDOUT: import_ir_inst111: {ir_id: ir4, inst_id: inst383} // CHECK:STDOUT: import_ir_inst112: {ir_id: ir4, inst_id: inst385} -// CHECK:STDOUT: import_ir_inst113: {ir_id: ir4, inst_id: inst387} -// CHECK:STDOUT: import_ir_inst114: {ir_id: ir4, inst_id: inst343} -// CHECK:STDOUT: import_ir_inst115: {ir_id: ir4, inst_id: inst348} -// CHECK:STDOUT: import_ir_inst116: {ir_id: ir4, inst_id: inst397} -// CHECK:STDOUT: import_ir_inst117: {ir_id: ir4, inst_id: inst398} -// CHECK:STDOUT: import_ir_inst118: {ir_id: ir4, inst_id: inst378} -// CHECK:STDOUT: import_ir_inst119: {ir_id: ir4, inst_id: inst379} -// CHECK:STDOUT: import_ir_inst120: {ir_id: ir4, inst_id: inst380} -// CHECK:STDOUT: import_ir_inst121: {ir_id: ir4, inst_id: inst381} -// CHECK:STDOUT: import_ir_inst122: {ir_id: ir4, inst_id: inst382} -// CHECK:STDOUT: import_ir_inst123: {ir_id: ir4, inst_id: inst386} -// CHECK:STDOUT: import_ir_inst124: {ir_id: ir4, inst_id: inst403} -// CHECK:STDOUT: import_ir_inst125: {ir_id: ir4, inst_id: inst411} +// CHECK:STDOUT: import_ir_inst113: {ir_id: ir4, inst_id: inst341} +// CHECK:STDOUT: import_ir_inst114: {ir_id: ir4, inst_id: inst346} +// CHECK:STDOUT: import_ir_inst115: {ir_id: ir4, inst_id: inst395} +// CHECK:STDOUT: import_ir_inst116: {ir_id: ir4, inst_id: inst396} +// CHECK:STDOUT: import_ir_inst117: {ir_id: ir4, inst_id: inst376} +// CHECK:STDOUT: import_ir_inst118: {ir_id: ir4, inst_id: inst377} +// CHECK:STDOUT: import_ir_inst119: {ir_id: ir4, inst_id: inst378} +// CHECK:STDOUT: import_ir_inst120: {ir_id: ir4, inst_id: inst379} +// CHECK:STDOUT: import_ir_inst121: {ir_id: ir4, inst_id: inst380} +// CHECK:STDOUT: import_ir_inst122: {ir_id: ir4, inst_id: inst384} +// CHECK:STDOUT: import_ir_inst123: {ir_id: ir4, inst_id: inst401} +// CHECK:STDOUT: import_ir_inst124: {ir_id: ir4, inst_id: inst409} +// CHECK:STDOUT: import_ir_inst125: {ir_id: ir4, inst_id: inst415} // CHECK:STDOUT: import_ir_inst126: {ir_id: ir4, inst_id: inst417} -// CHECK:STDOUT: import_ir_inst127: {ir_id: ir4, inst_id: inst419} -// CHECK:STDOUT: import_ir_inst128: {ir_id: ir4, inst_id: inst420} -// CHECK:STDOUT: import_ir_inst129: {ir_id: ir4, inst_id: inst421} -// CHECK:STDOUT: import_ir_inst130: {ir_id: ir4, inst_id: inst424} -// CHECK:STDOUT: import_ir_inst131: {ir_id: ir4, inst_id: inst436} -// CHECK:STDOUT: import_ir_inst132: {ir_id: ir4, inst_id: inst443} -// CHECK:STDOUT: import_ir_inst133: {ir_id: ir4, inst_id: inst448} -// CHECK:STDOUT: import_ir_inst134: {ir_id: ir4, inst_id: inst449} -// CHECK:STDOUT: import_ir_inst135: {ir_id: ir4, inst_id: inst450} -// CHECK:STDOUT: import_ir_inst136: {ir_id: ir4, inst_id: inst455} -// CHECK:STDOUT: import_ir_inst137: {ir_id: ir4, inst_id: inst512} -// CHECK:STDOUT: import_ir_inst138: {ir_id: ir4, inst_id: inst510} -// CHECK:STDOUT: import_ir_inst139: {ir_id: ir4, inst_id: inst486} -// CHECK:STDOUT: import_ir_inst140: {ir_id: ir4, inst_id: inst480} -// CHECK:STDOUT: import_ir_inst141: {ir_id: ir4, inst_id: inst475} -// CHECK:STDOUT: import_ir_inst142: {ir_id: ir4, inst_id: inst473} -// CHECK:STDOUT: import_ir_inst143: {ir_id: ir4, inst_id: inst478} -// CHECK:STDOUT: import_ir_inst144: {ir_id: ir4, inst_id: inst483} -// CHECK:STDOUT: import_ir_inst145: {ir_id: ir4, inst_id: inst504} -// CHECK:STDOUT: import_ir_inst146: {ir_id: ir4, inst_id: inst506} -// CHECK:STDOUT: import_ir_inst147: {ir_id: ir4, inst_id: inst537} -// CHECK:STDOUT: import_ir_inst148: {ir_id: ir4, inst_id: inst511} -// CHECK:STDOUT: import_ir_inst149: {ir_id: ir4, inst_id: inst474} -// CHECK:STDOUT: import_ir_inst150: {ir_id: ir4, inst_id: inst479} -// CHECK:STDOUT: import_ir_inst151: {ir_id: ir4, inst_id: inst485} -// CHECK:STDOUT: import_ir_inst152: {ir_id: ir4, inst_id: inst494} -// CHECK:STDOUT: import_ir_inst153: {ir_id: ir4, inst_id: inst497} -// CHECK:STDOUT: import_ir_inst154: {ir_id: ir4, inst_id: inst501} -// CHECK:STDOUT: import_ir_inst155: {ir_id: ir4, inst_id: inst505} -// CHECK:STDOUT: import_ir_inst156: {ir_id: ir4, inst_id: inst514} -// CHECK:STDOUT: import_ir_inst157: {ir_id: ir4, inst_id: inst537} -// CHECK:STDOUT: import_ir_inst158: {ir_id: ir4, inst_id: inst532} -// CHECK:STDOUT: import_ir_inst159: {ir_id: ir4, inst_id: inst533} -// CHECK:STDOUT: import_ir_inst160: {ir_id: ir4, inst_id: inst528} -// CHECK:STDOUT: import_ir_inst161: {ir_id: ir4, inst_id: inst530} -// CHECK:STDOUT: import_ir_inst162: {ir_id: ir4, inst_id: inst473} -// CHECK:STDOUT: import_ir_inst163: {ir_id: ir4, inst_id: inst478} -// CHECK:STDOUT: import_ir_inst164: {ir_id: ir4, inst_id: inst483} -// CHECK:STDOUT: import_ir_inst165: {ir_id: ir4, inst_id: inst540} -// CHECK:STDOUT: import_ir_inst166: {ir_id: ir4, inst_id: inst541} -// CHECK:STDOUT: import_ir_inst167: {ir_id: ir4, inst_id: inst519} -// CHECK:STDOUT: import_ir_inst168: {ir_id: ir4, inst_id: inst520} -// CHECK:STDOUT: import_ir_inst169: {ir_id: ir4, inst_id: inst521} -// CHECK:STDOUT: import_ir_inst170: {ir_id: ir4, inst_id: inst522} -// CHECK:STDOUT: import_ir_inst171: {ir_id: ir4, inst_id: inst523} -// CHECK:STDOUT: import_ir_inst172: {ir_id: ir4, inst_id: inst524} -// CHECK:STDOUT: import_ir_inst173: {ir_id: ir4, inst_id: inst525} -// CHECK:STDOUT: import_ir_inst174: {ir_id: ir4, inst_id: inst529} -// CHECK:STDOUT: import_ir_inst175: {ir_id: ir4, inst_id: inst546} -// CHECK:STDOUT: import_ir_inst176: {ir_id: ir4, inst_id: inst553} -// CHECK:STDOUT: import_ir_inst177: {ir_id: ir4, inst_id: inst559} -// CHECK:STDOUT: import_ir_inst178: {ir_id: ir4, inst_id: inst561} -// CHECK:STDOUT: import_ir_inst179: {ir_id: ir4, inst_id: inst562} -// CHECK:STDOUT: import_ir_inst180: {ir_id: ir4, inst_id: inst563} -// CHECK:STDOUT: import_ir_inst181: {ir_id: ir4, inst_id: inst566} -// CHECK:STDOUT: import_ir_inst182: {ir_id: ir4, inst_id: inst576} -// CHECK:STDOUT: import_ir_inst183: {ir_id: ir4, inst_id: inst582} -// CHECK:STDOUT: import_ir_inst184: {ir_id: ir4, inst_id: inst584} -// CHECK:STDOUT: import_ir_inst185: {ir_id: ir4, inst_id: inst585} -// CHECK:STDOUT: import_ir_inst186: {ir_id: ir4, inst_id: inst586} -// CHECK:STDOUT: import_ir_inst187: {ir_id: ir4, inst_id: inst589} -// CHECK:STDOUT: import_ir_inst188: {ir_id: ir4, inst_id: inst601} -// CHECK:STDOUT: import_ir_inst189: {ir_id: ir4, inst_id: inst608} -// CHECK:STDOUT: import_ir_inst190: {ir_id: ir4, inst_id: inst613} -// CHECK:STDOUT: import_ir_inst191: {ir_id: ir4, inst_id: inst614} -// CHECK:STDOUT: import_ir_inst192: {ir_id: ir4, inst_id: inst615} -// CHECK:STDOUT: import_ir_inst193: {ir_id: ir4, inst_id: inst620} +// CHECK:STDOUT: import_ir_inst127: {ir_id: ir4, inst_id: inst418} +// CHECK:STDOUT: import_ir_inst128: {ir_id: ir4, inst_id: inst421} +// CHECK:STDOUT: import_ir_inst129: {ir_id: ir4, inst_id: inst433} +// CHECK:STDOUT: import_ir_inst130: {ir_id: ir4, inst_id: inst440} +// CHECK:STDOUT: import_ir_inst131: {ir_id: ir4, inst_id: inst444} +// CHECK:STDOUT: import_ir_inst132: {ir_id: ir4, inst_id: inst445} +// CHECK:STDOUT: import_ir_inst133: {ir_id: ir4, inst_id: inst450} +// CHECK:STDOUT: import_ir_inst134: {ir_id: ir4, inst_id: inst507} +// CHECK:STDOUT: import_ir_inst135: {ir_id: ir4, inst_id: inst505} +// CHECK:STDOUT: import_ir_inst136: {ir_id: ir4, inst_id: inst481} +// CHECK:STDOUT: import_ir_inst137: {ir_id: ir4, inst_id: inst475} +// CHECK:STDOUT: import_ir_inst138: {ir_id: ir4, inst_id: inst470} +// CHECK:STDOUT: import_ir_inst139: {ir_id: ir4, inst_id: inst468} +// CHECK:STDOUT: import_ir_inst140: {ir_id: ir4, inst_id: inst473} +// CHECK:STDOUT: import_ir_inst141: {ir_id: ir4, inst_id: inst478} +// CHECK:STDOUT: import_ir_inst142: {ir_id: ir4, inst_id: inst499} +// CHECK:STDOUT: import_ir_inst143: {ir_id: ir4, inst_id: inst501} +// CHECK:STDOUT: import_ir_inst144: {ir_id: ir4, inst_id: inst532} +// CHECK:STDOUT: import_ir_inst145: {ir_id: ir4, inst_id: inst506} +// CHECK:STDOUT: import_ir_inst146: {ir_id: ir4, inst_id: inst469} +// CHECK:STDOUT: import_ir_inst147: {ir_id: ir4, inst_id: inst474} +// CHECK:STDOUT: import_ir_inst148: {ir_id: ir4, inst_id: inst480} +// CHECK:STDOUT: import_ir_inst149: {ir_id: ir4, inst_id: inst489} +// CHECK:STDOUT: import_ir_inst150: {ir_id: ir4, inst_id: inst492} +// CHECK:STDOUT: import_ir_inst151: {ir_id: ir4, inst_id: inst496} +// CHECK:STDOUT: import_ir_inst152: {ir_id: ir4, inst_id: inst500} +// CHECK:STDOUT: import_ir_inst153: {ir_id: ir4, inst_id: inst509} +// CHECK:STDOUT: import_ir_inst154: {ir_id: ir4, inst_id: inst532} +// CHECK:STDOUT: import_ir_inst155: {ir_id: ir4, inst_id: inst527} +// CHECK:STDOUT: import_ir_inst156: {ir_id: ir4, inst_id: inst528} +// CHECK:STDOUT: import_ir_inst157: {ir_id: ir4, inst_id: inst523} +// CHECK:STDOUT: import_ir_inst158: {ir_id: ir4, inst_id: inst525} +// CHECK:STDOUT: import_ir_inst159: {ir_id: ir4, inst_id: inst468} +// CHECK:STDOUT: import_ir_inst160: {ir_id: ir4, inst_id: inst473} +// CHECK:STDOUT: import_ir_inst161: {ir_id: ir4, inst_id: inst478} +// CHECK:STDOUT: import_ir_inst162: {ir_id: ir4, inst_id: inst535} +// CHECK:STDOUT: import_ir_inst163: {ir_id: ir4, inst_id: inst536} +// CHECK:STDOUT: import_ir_inst164: {ir_id: ir4, inst_id: inst514} +// CHECK:STDOUT: import_ir_inst165: {ir_id: ir4, inst_id: inst515} +// CHECK:STDOUT: import_ir_inst166: {ir_id: ir4, inst_id: inst516} +// CHECK:STDOUT: import_ir_inst167: {ir_id: ir4, inst_id: inst517} +// CHECK:STDOUT: import_ir_inst168: {ir_id: ir4, inst_id: inst518} +// CHECK:STDOUT: import_ir_inst169: {ir_id: ir4, inst_id: inst519} +// CHECK:STDOUT: import_ir_inst170: {ir_id: ir4, inst_id: inst520} +// CHECK:STDOUT: import_ir_inst171: {ir_id: ir4, inst_id: inst524} +// CHECK:STDOUT: import_ir_inst172: {ir_id: ir4, inst_id: inst541} +// CHECK:STDOUT: import_ir_inst173: {ir_id: ir4, inst_id: inst548} +// CHECK:STDOUT: import_ir_inst174: {ir_id: ir4, inst_id: inst554} +// CHECK:STDOUT: import_ir_inst175: {ir_id: ir4, inst_id: inst556} +// CHECK:STDOUT: import_ir_inst176: {ir_id: ir4, inst_id: inst557} +// CHECK:STDOUT: import_ir_inst177: {ir_id: ir4, inst_id: inst560} +// CHECK:STDOUT: import_ir_inst178: {ir_id: ir4, inst_id: inst570} +// CHECK:STDOUT: import_ir_inst179: {ir_id: ir4, inst_id: inst576} +// CHECK:STDOUT: import_ir_inst180: {ir_id: ir4, inst_id: inst578} +// CHECK:STDOUT: import_ir_inst181: {ir_id: ir4, inst_id: inst579} +// CHECK:STDOUT: import_ir_inst182: {ir_id: ir4, inst_id: inst582} +// CHECK:STDOUT: import_ir_inst183: {ir_id: ir4, inst_id: inst594} +// CHECK:STDOUT: import_ir_inst184: {ir_id: ir4, inst_id: inst601} +// CHECK:STDOUT: import_ir_inst185: {ir_id: ir4, inst_id: inst605} +// CHECK:STDOUT: import_ir_inst186: {ir_id: ir4, inst_id: inst606} +// CHECK:STDOUT: import_ir_inst187: {ir_id: ir4, inst_id: inst611} // CHECK:STDOUT: name_scopes: // CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name(Core): inst16, name0: inst53}} // CHECK:STDOUT: name_scope1: {inst: inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name3: inst69}} // CHECK:STDOUT: name_scope2: {inst: inst70, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {name(SelfType): inst73, name4: inst74}} // CHECK:STDOUT: name_scope3: {inst: inst94, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope4: {inst: inst141, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope5: {inst: inst145, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope6: {inst: inst149, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope7: {inst: inst153, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope8: {inst: inst157, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope9: {inst: inst183, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope10: {inst: inst187, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope11: {inst: inst191, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope12: {inst: inst250, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope4: {inst: inst139, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope5: {inst: inst143, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope6: {inst: inst147, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope7: {inst: inst151, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope8: {inst: inst155, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope9: {inst: inst181, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope10: {inst: inst185, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope11: {inst: inst189, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope12: {inst: inst245, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name0: {name: name(PeriodSelf), parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name1: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} @@ -286,47 +280,47 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block13, return_slot_pattern: inst48, body: [inst_block20]} // CHECK:STDOUT: function1: {name: name4, parent_scope: name_scope2, return_slot_pattern: inst85} // CHECK:STDOUT: function2: {name: name4, parent_scope: name_scope3, return_slot_pattern: inst115} -// CHECK:STDOUT: function3: {name: name4, parent_scope: name_scope8, return_slot_pattern: inst172} -// CHECK:STDOUT: function4: {name: name4, parent_scope: name_scope11, return_slot_pattern: inst215} -// CHECK:STDOUT: function5: {name: name4, parent_scope: name_scope12, return_slot_pattern: inst278} +// CHECK:STDOUT: function3: {name: name4, parent_scope: name_scope8, return_slot_pattern: inst170} +// CHECK:STDOUT: function4: {name: name4, parent_scope: name_scope11, return_slot_pattern: inst213} +// CHECK:STDOUT: function5: {name: name4, parent_scope: name_scope12, return_slot_pattern: inst273} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: // CHECK:STDOUT: generic0: {decl: inst53, bindings: inst_block16} // CHECK:STDOUT: generic1: {decl: inst79, bindings: inst_block24} // CHECK:STDOUT: generic2: {decl: inst94, bindings: inst_block29} // CHECK:STDOUT: generic3: {decl: inst110, bindings: inst_block36} -// CHECK:STDOUT: generic4: {decl: inst157, bindings: inst_block49} -// CHECK:STDOUT: generic5: {decl: inst168, bindings: inst_block55} -// CHECK:STDOUT: generic6: {decl: inst191, bindings: inst_block62} -// CHECK:STDOUT: generic7: {decl: inst210, bindings: inst_block70} -// CHECK:STDOUT: generic8: {decl: inst250, bindings: inst_block87} -// CHECK:STDOUT: generic9: {decl: inst273, bindings: inst_block95} +// CHECK:STDOUT: generic4: {decl: inst155, bindings: inst_block46} +// CHECK:STDOUT: generic5: {decl: inst166, bindings: inst_block52} +// CHECK:STDOUT: generic6: {decl: inst189, bindings: inst_block59} +// CHECK:STDOUT: generic7: {decl: inst208, bindings: inst_block67} +// CHECK:STDOUT: generic8: {decl: inst245, bindings: inst_block81} +// CHECK:STDOUT: generic9: {decl: inst268, bindings: inst_block89} // CHECK:STDOUT: specifics: // CHECK:STDOUT: specific0: {generic: generic0, args: inst_block17} // CHECK:STDOUT: specific1: {generic: generic1, args: inst_block26} // CHECK:STDOUT: specific2: {generic: generic2, args: inst_block31} // CHECK:STDOUT: specific3: {generic: generic2, args: inst_block32} // CHECK:STDOUT: specific4: {generic: generic3, args: inst_block31} -// CHECK:STDOUT: specific5: {generic: generic1, args: inst_block42} -// CHECK:STDOUT: specific6: {generic: generic1, args: inst_block44} +// CHECK:STDOUT: specific5: {generic: generic1, args: inst_block31} +// CHECK:STDOUT: specific6: {generic: generic1, args: inst_block41} // CHECK:STDOUT: specific7: {generic: generic4, args: inst_block17} -// CHECK:STDOUT: specific8: {generic: generic4, args: inst_block51} +// CHECK:STDOUT: specific8: {generic: generic4, args: inst_block48} // CHECK:STDOUT: specific9: {generic: generic5, args: inst_block17} -// CHECK:STDOUT: specific10: {generic: generic6, args: inst_block64} -// CHECK:STDOUT: specific11: {generic: generic6, args: inst_block66} -// CHECK:STDOUT: specific12: {generic: generic7, args: inst_block64} -// CHECK:STDOUT: specific13: {generic: generic1, args: inst_block77} -// CHECK:STDOUT: specific14: {generic: generic1, args: inst_block79} -// CHECK:STDOUT: specific15: {generic: generic1, args: inst_block81} -// CHECK:STDOUT: specific16: {generic: generic8, args: inst_block89} -// CHECK:STDOUT: specific17: {generic: generic8, args: inst_block91} -// CHECK:STDOUT: specific18: {generic: generic9, args: inst_block89} -// CHECK:STDOUT: specific19: {generic: generic1, args: inst_block102} -// CHECK:STDOUT: specific20: {generic: generic1, args: inst_block104} -// CHECK:STDOUT: specific21: {generic: generic1, args: inst_block106} -// CHECK:STDOUT: specific22: {generic: generic1, args: inst_block108} -// CHECK:STDOUT: specific23: {generic: generic1, args: inst_block115} -// CHECK:STDOUT: specific24: {generic: generic1, args: inst_block117} +// CHECK:STDOUT: specific10: {generic: generic6, args: inst_block61} +// CHECK:STDOUT: specific11: {generic: generic6, args: inst_block63} +// CHECK:STDOUT: specific12: {generic: generic7, args: inst_block61} +// CHECK:STDOUT: specific13: {generic: generic1, args: inst_block73} +// CHECK:STDOUT: specific14: {generic: generic1, args: inst_block74} +// CHECK:STDOUT: specific15: {generic: generic1, args: inst_block75} +// CHECK:STDOUT: specific16: {generic: generic8, args: inst_block83} +// CHECK:STDOUT: specific17: {generic: generic8, args: inst_block85} +// CHECK:STDOUT: specific18: {generic: generic9, args: inst_block83} +// CHECK:STDOUT: specific19: {generic: generic1, args: inst_block95} +// CHECK:STDOUT: specific20: {generic: generic1, args: inst_block96} +// CHECK:STDOUT: specific21: {generic: generic1, args: inst_block97} +// CHECK:STDOUT: specific22: {generic: generic1, args: inst_block98} +// CHECK:STDOUT: specific23: {generic: generic1, args: inst_block105} +// CHECK:STDOUT: specific24: {generic: generic1, args: inst_block107} // CHECK:STDOUT: struct_type_fields: // CHECK:STDOUT: struct_type_fields0: {} // CHECK:STDOUT: types: @@ -360,9 +354,9 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst71)} // CHECK:STDOUT: 'type(inst(SpecificFunctionType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: 'type(symbolic_constant268)': +// CHECK:STDOUT: 'type(symbolic_constant253)': // CHECK:STDOUT: value_repr: {kind: none, type: type(inst36)} -// CHECK:STDOUT: 'type(symbolic_constant271)': +// CHECK:STDOUT: 'type(symbolic_constant256)': // CHECK:STDOUT: value_repr: {kind: none, type: type(inst36)} // CHECK:STDOUT: 'type(inst(BoundMethodType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(BoundMethodType))} @@ -481,223 +475,214 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst125: {kind: RequireCompleteType, arg0: inst97, type: type(inst(WitnessType))} // CHECK:STDOUT: inst126: {kind: RequireCompleteType, arg0: inst96, type: type(inst(WitnessType))} // CHECK:STDOUT: inst127: {kind: LookupImplWitness, arg0: inst95, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst128: {kind: FacetValue, arg0: inst96, arg1: inst_block41, type: type(inst71)} -// CHECK:STDOUT: inst129: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst128, type: type(TypeType)} -// CHECK:STDOUT: inst130: {kind: ImplWitnessAccess, arg0: inst127, arg1: element0, type: type(symbolic_constant62)} -// CHECK:STDOUT: inst131: {kind: SpecificImplFunction, arg0: inst130, arg1: specific5, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst132: {kind: RequireCompleteType, arg0: inst123, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst133: {kind: RequireCompleteType, arg0: inst122, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst134: {kind: LookupImplWitness, arg0: inst121, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst135: {kind: FacetValue, arg0: inst122, arg1: inst_block43, type: type(inst71)} -// CHECK:STDOUT: inst136: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst135, type: type(TypeType)} -// CHECK:STDOUT: inst137: {kind: ImplWitnessAccess, arg0: inst134, arg1: element0, type: type(symbolic_constant72)} -// CHECK:STDOUT: inst138: {kind: SpecificImplFunction, arg0: inst137, arg1: specific6, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst139: {kind: PatternType, arg0: inst96, type: type(TypeType)} -// CHECK:STDOUT: inst140: {kind: ImportRefUnloaded, arg0: import_ir_inst46, arg1: entity_name} -// CHECK:STDOUT: inst141: {kind: ImplDecl, arg0: impl1, arg1: inst_block_empty} -// CHECK:STDOUT: inst142: {kind: ImportRefLoaded, arg0: import_ir_inst48, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst143: {kind: ImportRefLoaded, arg0: import_ir_inst49, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst144: {kind: ImportRefUnloaded, arg0: import_ir_inst50, arg1: entity_name} -// CHECK:STDOUT: inst145: {kind: ImplDecl, arg0: impl2, arg1: inst_block_empty} -// CHECK:STDOUT: inst146: {kind: ImportRefLoaded, arg0: import_ir_inst52, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst147: {kind: ImportRefLoaded, arg0: import_ir_inst53, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst148: {kind: ImportRefUnloaded, arg0: import_ir_inst54, arg1: entity_name} -// CHECK:STDOUT: inst149: {kind: ImplDecl, arg0: impl3, arg1: inst_block_empty} -// CHECK:STDOUT: inst150: {kind: ImportRefLoaded, arg0: import_ir_inst56, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst151: {kind: ImportRefLoaded, arg0: import_ir_inst57, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst152: {kind: ImportRefUnloaded, arg0: import_ir_inst58, arg1: entity_name} -// CHECK:STDOUT: inst153: {kind: ImplDecl, arg0: impl4, arg1: inst_block_empty} -// CHECK:STDOUT: inst154: {kind: ImportRefLoaded, arg0: import_ir_inst60, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst155: {kind: ImportRefLoaded, arg0: import_ir_inst61, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst156: {kind: ImportRefLoaded, arg0: import_ir_inst62, arg1: entity_name, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst157: {kind: ImplDecl, arg0: impl5, arg1: inst_block_empty} -// CHECK:STDOUT: inst158: {kind: SymbolicBindingPattern, arg0: entity_name16, type: type(inst23)} -// CHECK:STDOUT: inst159: {kind: ImportRefLoaded, arg0: import_ir_inst65, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst160: {kind: ImportRefLoaded, arg0: import_ir_inst66, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst161: {kind: ImportRefLoaded, arg0: import_ir_inst67, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst162: {kind: ImportRefUnloaded, arg0: import_ir_inst68, arg1: entity_name} -// CHECK:STDOUT: inst163: {kind: ImplWitnessTable, arg0: inst_block50, arg1: impl5} -// CHECK:STDOUT: inst164: {kind: ImplWitness, arg0: inst163, arg1: specific7, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst165: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst166: {kind: PointerType, arg0: inst165, type: type(TypeType)} -// CHECK:STDOUT: inst167: {kind: ImplWitness, arg0: inst163, arg1: specific8, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst168: {kind: FunctionDecl, arg0: function3, arg1: inst_block_empty, type: type(symbolic_constant84)} -// CHECK:STDOUT: inst169: {kind: FunctionType, arg0: function3, arg1: specific7, type: type(TypeType)} -// CHECK:STDOUT: inst170: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant84)} -// CHECK:STDOUT: inst171: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant88)} -// CHECK:STDOUT: inst172: {kind: OutParamPattern, arg0: inst171, arg1: call_param1, type: type(symbolic_constant88)} -// CHECK:STDOUT: inst173: {kind: BindingPattern, arg0: entity_name19, type: type(symbolic_constant88)} -// CHECK:STDOUT: inst174: {kind: ValueParamPattern, arg0: inst173, arg1: call_param0, type: type(symbolic_constant88)} -// CHECK:STDOUT: inst175: {kind: ImportRefLoaded, arg0: import_ir_inst78, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst176: {kind: FunctionType, arg0: function3, arg1: specific8, type: type(TypeType)} -// CHECK:STDOUT: inst177: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant91)} -// CHECK:STDOUT: inst178: {kind: RequireCompleteType, arg0: inst166, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst179: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst180: {kind: PointerType, arg0: inst179, type: type(TypeType)} -// CHECK:STDOUT: inst181: {kind: PatternType, arg0: inst180, type: type(TypeType)} -// CHECK:STDOUT: inst182: {kind: ImportRefUnloaded, arg0: import_ir_inst85, arg1: entity_name} -// CHECK:STDOUT: inst183: {kind: ImplDecl, arg0: impl6, arg1: inst_block_empty} -// CHECK:STDOUT: inst184: {kind: ImportRefLoaded, arg0: import_ir_inst87, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst185: {kind: ImportRefLoaded, arg0: import_ir_inst88, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst186: {kind: ImportRefUnloaded, arg0: import_ir_inst89, arg1: entity_name} -// CHECK:STDOUT: inst187: {kind: ImplDecl, arg0: impl7, arg1: inst_block_empty} -// CHECK:STDOUT: inst188: {kind: ImportRefLoaded, arg0: import_ir_inst91, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst189: {kind: ImportRefLoaded, arg0: import_ir_inst92, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst190: {kind: ImportRefUnloaded, arg0: import_ir_inst93, arg1: entity_name} -// CHECK:STDOUT: inst191: {kind: ImplDecl, arg0: impl8, arg1: inst_block_empty} -// CHECK:STDOUT: inst192: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst193: {kind: FacetAccessType, arg0: inst192, type: type(TypeType)} -// CHECK:STDOUT: inst194: {kind: TupleType, arg0: inst_block60, type: type(TypeType)} -// CHECK:STDOUT: inst195: {kind: SymbolicBindingPattern, arg0: entity_name22, type: type(inst98)} -// CHECK:STDOUT: inst196: {kind: SymbolicBindingPattern, arg0: entity_name23, type: type(inst98)} -// CHECK:STDOUT: inst197: {kind: ImportRefLoaded, arg0: import_ir_inst97, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst198: {kind: ImportRefLoaded, arg0: import_ir_inst98, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst199: {kind: ImportRefLoaded, arg0: import_ir_inst99, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst200: {kind: ImportRefLoaded, arg0: import_ir_inst100, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst201: {kind: ImportRefUnloaded, arg0: import_ir_inst101, arg1: entity_name} -// CHECK:STDOUT: inst202: {kind: ImplWitnessTable, arg0: inst_block63, arg1: impl8} -// CHECK:STDOUT: inst203: {kind: ImplWitness, arg0: inst202, arg1: specific10, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst204: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst205: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst206: {kind: FacetAccessType, arg0: inst204, type: type(TypeType)} -// CHECK:STDOUT: inst207: {kind: FacetAccessType, arg0: inst205, type: type(TypeType)} -// CHECK:STDOUT: inst208: {kind: TupleType, arg0: inst_block65, type: type(TypeType)} -// CHECK:STDOUT: inst209: {kind: ImplWitness, arg0: inst202, arg1: specific11, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst210: {kind: FunctionDecl, arg0: function4, arg1: inst_block_empty, type: type(symbolic_constant117)} -// CHECK:STDOUT: inst211: {kind: FunctionType, arg0: function4, arg1: specific10, type: type(TypeType)} -// CHECK:STDOUT: inst212: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant117)} -// CHECK:STDOUT: inst213: {kind: PatternType, arg0: inst194, type: type(TypeType)} -// CHECK:STDOUT: inst214: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant122)} -// CHECK:STDOUT: inst215: {kind: OutParamPattern, arg0: inst214, arg1: call_param1, type: type(symbolic_constant122)} -// CHECK:STDOUT: inst216: {kind: BindingPattern, arg0: entity_name28, type: type(symbolic_constant122)} -// CHECK:STDOUT: inst217: {kind: ValueParamPattern, arg0: inst216, arg1: call_param0, type: type(symbolic_constant122)} -// CHECK:STDOUT: inst218: {kind: ImportRefLoaded, arg0: import_ir_inst114, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst219: {kind: ImportRefLoaded, arg0: import_ir_inst115, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst220: {kind: FunctionType, arg0: function4, arg1: specific11, type: type(TypeType)} -// CHECK:STDOUT: inst221: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant124)} -// CHECK:STDOUT: inst222: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} +// CHECK:STDOUT: inst128: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst95, type: type(TypeType)} +// CHECK:STDOUT: inst129: {kind: ImplWitnessAccess, arg0: inst127, arg1: element0, type: type(symbolic_constant60)} +// CHECK:STDOUT: inst130: {kind: SpecificImplFunction, arg0: inst129, arg1: specific5, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst131: {kind: RequireCompleteType, arg0: inst123, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst132: {kind: RequireCompleteType, arg0: inst122, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst133: {kind: LookupImplWitness, arg0: inst121, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst134: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst121, type: type(TypeType)} +// CHECK:STDOUT: inst135: {kind: ImplWitnessAccess, arg0: inst133, arg1: element0, type: type(symbolic_constant69)} +// CHECK:STDOUT: inst136: {kind: SpecificImplFunction, arg0: inst135, arg1: specific6, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst137: {kind: PatternType, arg0: inst96, type: type(TypeType)} +// CHECK:STDOUT: inst138: {kind: ImportRefUnloaded, arg0: import_ir_inst45, arg1: entity_name} +// CHECK:STDOUT: inst139: {kind: ImplDecl, arg0: impl1, arg1: inst_block_empty} +// CHECK:STDOUT: inst140: {kind: ImportRefLoaded, arg0: import_ir_inst47, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst141: {kind: ImportRefLoaded, arg0: import_ir_inst48, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst142: {kind: ImportRefUnloaded, arg0: import_ir_inst49, arg1: entity_name} +// CHECK:STDOUT: inst143: {kind: ImplDecl, arg0: impl2, arg1: inst_block_empty} +// CHECK:STDOUT: inst144: {kind: ImportRefLoaded, arg0: import_ir_inst51, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst145: {kind: ImportRefLoaded, arg0: import_ir_inst52, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst146: {kind: ImportRefUnloaded, arg0: import_ir_inst53, arg1: entity_name} +// CHECK:STDOUT: inst147: {kind: ImplDecl, arg0: impl3, arg1: inst_block_empty} +// CHECK:STDOUT: inst148: {kind: ImportRefLoaded, arg0: import_ir_inst55, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst149: {kind: ImportRefLoaded, arg0: import_ir_inst56, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst150: {kind: ImportRefUnloaded, arg0: import_ir_inst57, arg1: entity_name} +// CHECK:STDOUT: inst151: {kind: ImplDecl, arg0: impl4, arg1: inst_block_empty} +// CHECK:STDOUT: inst152: {kind: ImportRefLoaded, arg0: import_ir_inst59, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst153: {kind: ImportRefLoaded, arg0: import_ir_inst60, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst154: {kind: ImportRefLoaded, arg0: import_ir_inst61, arg1: entity_name, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst155: {kind: ImplDecl, arg0: impl5, arg1: inst_block_empty} +// CHECK:STDOUT: inst156: {kind: SymbolicBindingPattern, arg0: entity_name16, type: type(inst23)} +// CHECK:STDOUT: inst157: {kind: ImportRefLoaded, arg0: import_ir_inst64, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst158: {kind: ImportRefLoaded, arg0: import_ir_inst65, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst159: {kind: ImportRefLoaded, arg0: import_ir_inst66, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst160: {kind: ImportRefUnloaded, arg0: import_ir_inst67, arg1: entity_name} +// CHECK:STDOUT: inst161: {kind: ImplWitnessTable, arg0: inst_block47, arg1: impl5} +// CHECK:STDOUT: inst162: {kind: ImplWitness, arg0: inst161, arg1: specific7, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst163: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: inst164: {kind: PointerType, arg0: inst163, type: type(TypeType)} +// CHECK:STDOUT: inst165: {kind: ImplWitness, arg0: inst161, arg1: specific8, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst166: {kind: FunctionDecl, arg0: function3, arg1: inst_block_empty, type: type(symbolic_constant81)} +// CHECK:STDOUT: inst167: {kind: FunctionType, arg0: function3, arg1: specific7, type: type(TypeType)} +// CHECK:STDOUT: inst168: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant81)} +// CHECK:STDOUT: inst169: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant85)} +// CHECK:STDOUT: inst170: {kind: OutParamPattern, arg0: inst169, arg1: call_param1, type: type(symbolic_constant85)} +// CHECK:STDOUT: inst171: {kind: BindingPattern, arg0: entity_name19, type: type(symbolic_constant85)} +// CHECK:STDOUT: inst172: {kind: ValueParamPattern, arg0: inst171, arg1: call_param0, type: type(symbolic_constant85)} +// CHECK:STDOUT: inst173: {kind: ImportRefLoaded, arg0: import_ir_inst77, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst174: {kind: FunctionType, arg0: function3, arg1: specific8, type: type(TypeType)} +// CHECK:STDOUT: inst175: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant88)} +// CHECK:STDOUT: inst176: {kind: RequireCompleteType, arg0: inst164, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst177: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: inst178: {kind: PointerType, arg0: inst177, type: type(TypeType)} +// CHECK:STDOUT: inst179: {kind: PatternType, arg0: inst178, type: type(TypeType)} +// CHECK:STDOUT: inst180: {kind: ImportRefUnloaded, arg0: import_ir_inst84, arg1: entity_name} +// CHECK:STDOUT: inst181: {kind: ImplDecl, arg0: impl6, arg1: inst_block_empty} +// CHECK:STDOUT: inst182: {kind: ImportRefLoaded, arg0: import_ir_inst86, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst183: {kind: ImportRefLoaded, arg0: import_ir_inst87, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst184: {kind: ImportRefUnloaded, arg0: import_ir_inst88, arg1: entity_name} +// CHECK:STDOUT: inst185: {kind: ImplDecl, arg0: impl7, arg1: inst_block_empty} +// CHECK:STDOUT: inst186: {kind: ImportRefLoaded, arg0: import_ir_inst90, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst187: {kind: ImportRefLoaded, arg0: import_ir_inst91, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst188: {kind: ImportRefUnloaded, arg0: import_ir_inst92, arg1: entity_name} +// CHECK:STDOUT: inst189: {kind: ImplDecl, arg0: impl8, arg1: inst_block_empty} +// CHECK:STDOUT: inst190: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} +// CHECK:STDOUT: inst191: {kind: FacetAccessType, arg0: inst190, type: type(TypeType)} +// CHECK:STDOUT: inst192: {kind: TupleType, arg0: inst_block57, type: type(TypeType)} +// CHECK:STDOUT: inst193: {kind: SymbolicBindingPattern, arg0: entity_name22, type: type(inst98)} +// CHECK:STDOUT: inst194: {kind: SymbolicBindingPattern, arg0: entity_name23, type: type(inst98)} +// CHECK:STDOUT: inst195: {kind: ImportRefLoaded, arg0: import_ir_inst96, arg1: entity_name, type: type(inst71)} +// CHECK:STDOUT: inst196: {kind: ImportRefLoaded, arg0: import_ir_inst97, arg1: entity_name, type: type(inst71)} +// CHECK:STDOUT: inst197: {kind: ImportRefLoaded, arg0: import_ir_inst98, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst198: {kind: ImportRefLoaded, arg0: import_ir_inst99, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst199: {kind: ImportRefUnloaded, arg0: import_ir_inst100, arg1: entity_name} +// CHECK:STDOUT: inst200: {kind: ImplWitnessTable, arg0: inst_block60, arg1: impl8} +// CHECK:STDOUT: inst201: {kind: ImplWitness, arg0: inst200, arg1: specific10, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst202: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} +// CHECK:STDOUT: inst203: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} +// CHECK:STDOUT: inst204: {kind: FacetAccessType, arg0: inst202, type: type(TypeType)} +// CHECK:STDOUT: inst205: {kind: FacetAccessType, arg0: inst203, type: type(TypeType)} +// CHECK:STDOUT: inst206: {kind: TupleType, arg0: inst_block62, type: type(TypeType)} +// CHECK:STDOUT: inst207: {kind: ImplWitness, arg0: inst200, arg1: specific11, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst208: {kind: FunctionDecl, arg0: function4, arg1: inst_block_empty, type: type(symbolic_constant114)} +// CHECK:STDOUT: inst209: {kind: FunctionType, arg0: function4, arg1: specific10, type: type(TypeType)} +// CHECK:STDOUT: inst210: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant114)} +// CHECK:STDOUT: inst211: {kind: PatternType, arg0: inst192, type: type(TypeType)} +// CHECK:STDOUT: inst212: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant119)} +// CHECK:STDOUT: inst213: {kind: OutParamPattern, arg0: inst212, arg1: call_param1, type: type(symbolic_constant119)} +// CHECK:STDOUT: inst214: {kind: BindingPattern, arg0: entity_name28, type: type(symbolic_constant119)} +// CHECK:STDOUT: inst215: {kind: ValueParamPattern, arg0: inst214, arg1: call_param0, type: type(symbolic_constant119)} +// CHECK:STDOUT: inst216: {kind: ImportRefLoaded, arg0: import_ir_inst113, arg1: entity_name, type: type(inst71)} +// CHECK:STDOUT: inst217: {kind: ImportRefLoaded, arg0: import_ir_inst114, arg1: entity_name, type: type(inst71)} +// CHECK:STDOUT: inst218: {kind: FunctionType, arg0: function4, arg1: specific11, type: type(TypeType)} +// CHECK:STDOUT: inst219: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant121)} +// CHECK:STDOUT: inst220: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} +// CHECK:STDOUT: inst221: {kind: FacetAccessType, arg0: inst220, type: type(TypeType)} +// CHECK:STDOUT: inst222: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} // CHECK:STDOUT: inst223: {kind: FacetAccessType, arg0: inst222, type: type(TypeType)} -// CHECK:STDOUT: inst224: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst225: {kind: FacetAccessType, arg0: inst224, type: type(TypeType)} -// CHECK:STDOUT: inst226: {kind: TupleType, arg0: inst_block73, type: type(TypeType)} -// CHECK:STDOUT: inst227: {kind: PatternType, arg0: inst226, type: type(TypeType)} -// CHECK:STDOUT: inst228: {kind: RequireCompleteType, arg0: inst194, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst229: {kind: RequireCompleteType, arg0: inst193, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst230: {kind: LookupImplWitness, arg0: inst192, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst231: {kind: FacetValue, arg0: inst193, arg1: inst_block76, type: type(inst71)} -// CHECK:STDOUT: inst232: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst231, type: type(TypeType)} -// CHECK:STDOUT: inst233: {kind: ImplWitnessAccess, arg0: inst230, arg1: element0, type: type(symbolic_constant151)} -// CHECK:STDOUT: inst234: {kind: SpecificImplFunction, arg0: inst233, arg1: specific13, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst235: {kind: RequireCompleteType, arg0: inst226, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst236: {kind: RequireCompleteType, arg0: inst223, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst237: {kind: LookupImplWitness, arg0: inst222, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst238: {kind: FacetValue, arg0: inst223, arg1: inst_block78, type: type(inst71)} -// CHECK:STDOUT: inst239: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst238, type: type(TypeType)} -// CHECK:STDOUT: inst240: {kind: ImplWitnessAccess, arg0: inst237, arg1: element0, type: type(symbolic_constant161)} -// CHECK:STDOUT: inst241: {kind: SpecificImplFunction, arg0: inst240, arg1: specific14, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst242: {kind: RequireCompleteType, arg0: inst225, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst243: {kind: LookupImplWitness, arg0: inst224, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst244: {kind: FacetValue, arg0: inst225, arg1: inst_block80, type: type(inst71)} -// CHECK:STDOUT: inst245: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst244, type: type(TypeType)} -// CHECK:STDOUT: inst246: {kind: ImplWitnessAccess, arg0: inst243, arg1: element0, type: type(symbolic_constant167)} -// CHECK:STDOUT: inst247: {kind: SpecificImplFunction, arg0: inst246, arg1: specific15, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst248: {kind: PatternType, arg0: inst193, type: type(TypeType)} -// CHECK:STDOUT: inst249: {kind: ImportRefUnloaded, arg0: import_ir_inst137, arg1: entity_name} -// CHECK:STDOUT: inst250: {kind: ImplDecl, arg0: impl9, arg1: inst_block_empty} -// CHECK:STDOUT: inst251: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst252: {kind: FacetAccessType, arg0: inst251, type: type(TypeType)} -// CHECK:STDOUT: inst253: {kind: TupleType, arg0: inst_block85, type: type(TypeType)} -// CHECK:STDOUT: inst254: {kind: SymbolicBindingPattern, arg0: entity_name32, type: type(inst98)} -// CHECK:STDOUT: inst255: {kind: SymbolicBindingPattern, arg0: entity_name33, type: type(inst98)} -// CHECK:STDOUT: inst256: {kind: SymbolicBindingPattern, arg0: entity_name34, type: type(inst98)} -// CHECK:STDOUT: inst257: {kind: ImportRefLoaded, arg0: import_ir_inst142, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst258: {kind: ImportRefLoaded, arg0: import_ir_inst143, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst259: {kind: ImportRefLoaded, arg0: import_ir_inst144, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst260: {kind: ImportRefLoaded, arg0: import_ir_inst145, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst261: {kind: ImportRefLoaded, arg0: import_ir_inst146, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst262: {kind: ImportRefUnloaded, arg0: import_ir_inst147, arg1: entity_name} -// CHECK:STDOUT: inst263: {kind: ImplWitnessTable, arg0: inst_block88, arg1: impl9} -// CHECK:STDOUT: inst264: {kind: ImplWitness, arg0: inst263, arg1: specific16, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst265: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst266: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst267: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst268: {kind: FacetAccessType, arg0: inst265, type: type(TypeType)} -// CHECK:STDOUT: inst269: {kind: FacetAccessType, arg0: inst266, type: type(TypeType)} -// CHECK:STDOUT: inst270: {kind: FacetAccessType, arg0: inst267, type: type(TypeType)} -// CHECK:STDOUT: inst271: {kind: TupleType, arg0: inst_block90, type: type(TypeType)} -// CHECK:STDOUT: inst272: {kind: ImplWitness, arg0: inst263, arg1: specific17, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst273: {kind: FunctionDecl, arg0: function5, arg1: inst_block_empty, type: type(symbolic_constant194)} -// CHECK:STDOUT: inst274: {kind: FunctionType, arg0: function5, arg1: specific16, type: type(TypeType)} -// CHECK:STDOUT: inst275: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant194)} -// CHECK:STDOUT: inst276: {kind: PatternType, arg0: inst253, type: type(TypeType)} -// CHECK:STDOUT: inst277: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant199)} -// CHECK:STDOUT: inst278: {kind: OutParamPattern, arg0: inst277, arg1: call_param1, type: type(symbolic_constant199)} -// CHECK:STDOUT: inst279: {kind: BindingPattern, arg0: entity_name41, type: type(symbolic_constant199)} -// CHECK:STDOUT: inst280: {kind: ValueParamPattern, arg0: inst279, arg1: call_param0, type: type(symbolic_constant199)} -// CHECK:STDOUT: inst281: {kind: ImportRefLoaded, arg0: import_ir_inst162, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst282: {kind: ImportRefLoaded, arg0: import_ir_inst163, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst283: {kind: ImportRefLoaded, arg0: import_ir_inst164, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst284: {kind: FunctionType, arg0: function5, arg1: specific17, type: type(TypeType)} -// CHECK:STDOUT: inst285: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant201)} -// CHECK:STDOUT: inst286: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst287: {kind: FacetAccessType, arg0: inst286, type: type(TypeType)} -// CHECK:STDOUT: inst288: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst289: {kind: FacetAccessType, arg0: inst288, type: type(TypeType)} -// CHECK:STDOUT: inst290: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst291: {kind: FacetAccessType, arg0: inst290, type: type(TypeType)} -// CHECK:STDOUT: inst292: {kind: TupleType, arg0: inst_block98, type: type(TypeType)} -// CHECK:STDOUT: inst293: {kind: PatternType, arg0: inst292, type: type(TypeType)} -// CHECK:STDOUT: inst294: {kind: RequireCompleteType, arg0: inst253, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst295: {kind: RequireCompleteType, arg0: inst252, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst296: {kind: LookupImplWitness, arg0: inst251, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst297: {kind: FacetValue, arg0: inst252, arg1: inst_block101, type: type(inst71)} -// CHECK:STDOUT: inst298: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst297, type: type(TypeType)} -// CHECK:STDOUT: inst299: {kind: ImplWitnessAccess, arg0: inst296, arg1: element0, type: type(symbolic_constant238)} -// CHECK:STDOUT: inst300: {kind: SpecificImplFunction, arg0: inst299, arg1: specific19, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst301: {kind: RequireCompleteType, arg0: inst292, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst302: {kind: RequireCompleteType, arg0: inst287, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst303: {kind: LookupImplWitness, arg0: inst286, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst304: {kind: FacetValue, arg0: inst287, arg1: inst_block103, type: type(inst71)} -// CHECK:STDOUT: inst305: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst304, type: type(TypeType)} -// CHECK:STDOUT: inst306: {kind: ImplWitnessAccess, arg0: inst303, arg1: element0, type: type(symbolic_constant248)} -// CHECK:STDOUT: inst307: {kind: SpecificImplFunction, arg0: inst306, arg1: specific20, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst308: {kind: RequireCompleteType, arg0: inst289, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst309: {kind: LookupImplWitness, arg0: inst288, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst310: {kind: FacetValue, arg0: inst289, arg1: inst_block105, type: type(inst71)} -// CHECK:STDOUT: inst311: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst310, type: type(TypeType)} -// CHECK:STDOUT: inst312: {kind: ImplWitnessAccess, arg0: inst309, arg1: element0, type: type(symbolic_constant254)} -// CHECK:STDOUT: inst313: {kind: SpecificImplFunction, arg0: inst312, arg1: specific21, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst314: {kind: RequireCompleteType, arg0: inst291, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst315: {kind: LookupImplWitness, arg0: inst290, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst316: {kind: FacetValue, arg0: inst291, arg1: inst_block107, type: type(inst71)} -// CHECK:STDOUT: inst317: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst316, type: type(TypeType)} -// CHECK:STDOUT: inst318: {kind: ImplWitnessAccess, arg0: inst315, arg1: element0, type: type(symbolic_constant260)} -// CHECK:STDOUT: inst319: {kind: SpecificImplFunction, arg0: inst318, arg1: specific22, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst320: {kind: PatternType, arg0: inst252, type: type(TypeType)} -// CHECK:STDOUT: inst321: {kind: LookupImplWitness, arg0: inst27, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst322: {kind: LookupImplWitness, arg0: inst28, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst323: {kind: FacetValue, arg0: inst27, arg1: inst_block113, type: type(inst71)} -// CHECK:STDOUT: inst324: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst323, type: type(TypeType)} -// CHECK:STDOUT: inst325: {kind: ImplWitnessAccess, arg0: inst321, arg1: element0, type: type(symbolic_constant271)} -// CHECK:STDOUT: inst326: {kind: ImplWitnessAccess, arg0: inst321, arg1: element0, type: type(symbolic_constant268)} -// CHECK:STDOUT: inst327: {kind: FacetValue, arg0: inst28, arg1: inst_block114, type: type(inst71)} -// CHECK:STDOUT: inst328: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst327, type: type(TypeType)} -// CHECK:STDOUT: inst329: {kind: ImplWitnessAccess, arg0: inst322, arg1: element0, type: type(symbolic_constant271)} -// CHECK:STDOUT: inst330: {kind: BoundMethod, arg0: inst63, arg1: inst325, type: type(inst(BoundMethodType))} -// CHECK:STDOUT: inst331: {kind: SpecificImplFunction, arg0: inst325, arg1: specific23, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst332: {kind: SpecificImplFunction, arg0: inst326, arg1: specific23, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst333: {kind: SpecificImplFunction, arg0: inst329, arg1: specific24, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst334: {kind: BoundMethod, arg0: inst63, arg1: inst331, type: type(inst(BoundMethodType))} -// CHECK:STDOUT: inst335: {kind: RequireCompleteType, arg0: inst27, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst336: {kind: Call, arg0: inst334, arg1: inst_block118, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst337: {kind: InitializeFrom, arg0: inst336, arg1: inst67, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst338: {kind: TupleAccess, arg0: inst52, arg1: element1, type: type(inst36)} -// CHECK:STDOUT: inst339: {kind: TupleInit, arg0: inst_block_empty, arg1: inst338, type: type(inst36)} -// CHECK:STDOUT: inst340: {kind: TupleValue, arg0: inst_block_empty, type: type(inst36)} -// CHECK:STDOUT: inst341: {kind: Converted, arg0: inst64, arg1: inst339, type: type(inst36)} -// CHECK:STDOUT: inst342: {kind: TupleInit, arg0: inst_block119, arg1: inst52, type: type(symbolic_constant8)} -// CHECK:STDOUT: inst343: {kind: Converted, arg0: inst65, arg1: inst342, type: type(symbolic_constant8)} -// CHECK:STDOUT: inst344: {kind: ReturnExpr, arg0: inst343, arg1: inst52} +// CHECK:STDOUT: inst224: {kind: TupleType, arg0: inst_block70, type: type(TypeType)} +// CHECK:STDOUT: inst225: {kind: PatternType, arg0: inst224, type: type(TypeType)} +// CHECK:STDOUT: inst226: {kind: RequireCompleteType, arg0: inst192, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst227: {kind: RequireCompleteType, arg0: inst191, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst228: {kind: LookupImplWitness, arg0: inst190, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst229: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst190, type: type(TypeType)} +// CHECK:STDOUT: inst230: {kind: ImplWitnessAccess, arg0: inst228, arg1: element0, type: type(symbolic_constant145)} +// CHECK:STDOUT: inst231: {kind: SpecificImplFunction, arg0: inst230, arg1: specific13, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst232: {kind: RequireCompleteType, arg0: inst224, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst233: {kind: RequireCompleteType, arg0: inst221, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst234: {kind: LookupImplWitness, arg0: inst220, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst235: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst220, type: type(TypeType)} +// CHECK:STDOUT: inst236: {kind: ImplWitnessAccess, arg0: inst234, arg1: element0, type: type(symbolic_constant154)} +// CHECK:STDOUT: inst237: {kind: SpecificImplFunction, arg0: inst236, arg1: specific14, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst238: {kind: RequireCompleteType, arg0: inst223, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst239: {kind: LookupImplWitness, arg0: inst222, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst240: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst222, type: type(TypeType)} +// CHECK:STDOUT: inst241: {kind: ImplWitnessAccess, arg0: inst239, arg1: element0, type: type(symbolic_constant159)} +// CHECK:STDOUT: inst242: {kind: SpecificImplFunction, arg0: inst241, arg1: specific15, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst243: {kind: PatternType, arg0: inst191, type: type(TypeType)} +// CHECK:STDOUT: inst244: {kind: ImportRefUnloaded, arg0: import_ir_inst134, arg1: entity_name} +// CHECK:STDOUT: inst245: {kind: ImplDecl, arg0: impl9, arg1: inst_block_empty} +// CHECK:STDOUT: inst246: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(inst71)} +// CHECK:STDOUT: inst247: {kind: FacetAccessType, arg0: inst246, type: type(TypeType)} +// CHECK:STDOUT: inst248: {kind: TupleType, arg0: inst_block79, type: type(TypeType)} +// CHECK:STDOUT: inst249: {kind: SymbolicBindingPattern, arg0: entity_name32, type: type(inst98)} +// CHECK:STDOUT: inst250: {kind: SymbolicBindingPattern, arg0: entity_name33, type: type(inst98)} +// CHECK:STDOUT: inst251: {kind: SymbolicBindingPattern, arg0: entity_name34, type: type(inst98)} +// CHECK:STDOUT: inst252: {kind: ImportRefLoaded, arg0: import_ir_inst139, arg1: entity_name, type: type(inst71)} +// CHECK:STDOUT: inst253: {kind: ImportRefLoaded, arg0: import_ir_inst140, arg1: entity_name, type: type(inst71)} +// CHECK:STDOUT: inst254: {kind: ImportRefLoaded, arg0: import_ir_inst141, arg1: entity_name, type: type(inst71)} +// CHECK:STDOUT: inst255: {kind: ImportRefLoaded, arg0: import_ir_inst142, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst256: {kind: ImportRefLoaded, arg0: import_ir_inst143, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst257: {kind: ImportRefUnloaded, arg0: import_ir_inst144, arg1: entity_name} +// CHECK:STDOUT: inst258: {kind: ImplWitnessTable, arg0: inst_block82, arg1: impl9} +// CHECK:STDOUT: inst259: {kind: ImplWitness, arg0: inst258, arg1: specific16, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst260: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} +// CHECK:STDOUT: inst261: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} +// CHECK:STDOUT: inst262: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(inst71)} +// CHECK:STDOUT: inst263: {kind: FacetAccessType, arg0: inst260, type: type(TypeType)} +// CHECK:STDOUT: inst264: {kind: FacetAccessType, arg0: inst261, type: type(TypeType)} +// CHECK:STDOUT: inst265: {kind: FacetAccessType, arg0: inst262, type: type(TypeType)} +// CHECK:STDOUT: inst266: {kind: TupleType, arg0: inst_block84, type: type(TypeType)} +// CHECK:STDOUT: inst267: {kind: ImplWitness, arg0: inst258, arg1: specific17, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst268: {kind: FunctionDecl, arg0: function5, arg1: inst_block_empty, type: type(symbolic_constant186)} +// CHECK:STDOUT: inst269: {kind: FunctionType, arg0: function5, arg1: specific16, type: type(TypeType)} +// CHECK:STDOUT: inst270: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant186)} +// CHECK:STDOUT: inst271: {kind: PatternType, arg0: inst248, type: type(TypeType)} +// CHECK:STDOUT: inst272: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant191)} +// CHECK:STDOUT: inst273: {kind: OutParamPattern, arg0: inst272, arg1: call_param1, type: type(symbolic_constant191)} +// CHECK:STDOUT: inst274: {kind: BindingPattern, arg0: entity_name41, type: type(symbolic_constant191)} +// CHECK:STDOUT: inst275: {kind: ValueParamPattern, arg0: inst274, arg1: call_param0, type: type(symbolic_constant191)} +// CHECK:STDOUT: inst276: {kind: ImportRefLoaded, arg0: import_ir_inst159, arg1: entity_name, type: type(inst71)} +// CHECK:STDOUT: inst277: {kind: ImportRefLoaded, arg0: import_ir_inst160, arg1: entity_name, type: type(inst71)} +// CHECK:STDOUT: inst278: {kind: ImportRefLoaded, arg0: import_ir_inst161, arg1: entity_name, type: type(inst71)} +// CHECK:STDOUT: inst279: {kind: FunctionType, arg0: function5, arg1: specific17, type: type(TypeType)} +// CHECK:STDOUT: inst280: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant193)} +// CHECK:STDOUT: inst281: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} +// CHECK:STDOUT: inst282: {kind: FacetAccessType, arg0: inst281, type: type(TypeType)} +// CHECK:STDOUT: inst283: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} +// CHECK:STDOUT: inst284: {kind: FacetAccessType, arg0: inst283, type: type(TypeType)} +// CHECK:STDOUT: inst285: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(inst71)} +// CHECK:STDOUT: inst286: {kind: FacetAccessType, arg0: inst285, type: type(TypeType)} +// CHECK:STDOUT: inst287: {kind: TupleType, arg0: inst_block92, type: type(TypeType)} +// CHECK:STDOUT: inst288: {kind: PatternType, arg0: inst287, type: type(TypeType)} +// CHECK:STDOUT: inst289: {kind: RequireCompleteType, arg0: inst248, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst290: {kind: RequireCompleteType, arg0: inst247, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst291: {kind: LookupImplWitness, arg0: inst246, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst292: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst246, type: type(TypeType)} +// CHECK:STDOUT: inst293: {kind: ImplWitnessAccess, arg0: inst291, arg1: element0, type: type(symbolic_constant226)} +// CHECK:STDOUT: inst294: {kind: SpecificImplFunction, arg0: inst293, arg1: specific19, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst295: {kind: RequireCompleteType, arg0: inst287, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst296: {kind: RequireCompleteType, arg0: inst282, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst297: {kind: LookupImplWitness, arg0: inst281, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst298: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst281, type: type(TypeType)} +// CHECK:STDOUT: inst299: {kind: ImplWitnessAccess, arg0: inst297, arg1: element0, type: type(symbolic_constant235)} +// CHECK:STDOUT: inst300: {kind: SpecificImplFunction, arg0: inst299, arg1: specific20, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst301: {kind: RequireCompleteType, arg0: inst284, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst302: {kind: LookupImplWitness, arg0: inst283, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst303: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst283, type: type(TypeType)} +// CHECK:STDOUT: inst304: {kind: ImplWitnessAccess, arg0: inst302, arg1: element0, type: type(symbolic_constant240)} +// CHECK:STDOUT: inst305: {kind: SpecificImplFunction, arg0: inst304, arg1: specific21, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst306: {kind: RequireCompleteType, arg0: inst286, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst307: {kind: LookupImplWitness, arg0: inst285, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst308: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst285, type: type(TypeType)} +// CHECK:STDOUT: inst309: {kind: ImplWitnessAccess, arg0: inst307, arg1: element0, type: type(symbolic_constant245)} +// CHECK:STDOUT: inst310: {kind: SpecificImplFunction, arg0: inst309, arg1: specific22, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst311: {kind: PatternType, arg0: inst247, type: type(TypeType)} +// CHECK:STDOUT: inst312: {kind: LookupImplWitness, arg0: inst27, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst313: {kind: LookupImplWitness, arg0: inst28, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst314: {kind: FacetValue, arg0: inst27, arg1: inst_block103, type: type(inst71)} +// CHECK:STDOUT: inst315: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst314, type: type(TypeType)} +// CHECK:STDOUT: inst316: {kind: ImplWitnessAccess, arg0: inst312, arg1: element0, type: type(symbolic_constant256)} +// CHECK:STDOUT: inst317: {kind: ImplWitnessAccess, arg0: inst312, arg1: element0, type: type(symbolic_constant253)} +// CHECK:STDOUT: inst318: {kind: FacetValue, arg0: inst28, arg1: inst_block104, type: type(inst71)} +// CHECK:STDOUT: inst319: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst318, type: type(TypeType)} +// CHECK:STDOUT: inst320: {kind: ImplWitnessAccess, arg0: inst313, arg1: element0, type: type(symbolic_constant256)} +// CHECK:STDOUT: inst321: {kind: BoundMethod, arg0: inst63, arg1: inst316, type: type(inst(BoundMethodType))} +// CHECK:STDOUT: inst322: {kind: SpecificImplFunction, arg0: inst316, arg1: specific23, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst323: {kind: SpecificImplFunction, arg0: inst317, arg1: specific23, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst324: {kind: SpecificImplFunction, arg0: inst320, arg1: specific24, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst325: {kind: BoundMethod, arg0: inst63, arg1: inst322, type: type(inst(BoundMethodType))} +// CHECK:STDOUT: inst326: {kind: RequireCompleteType, arg0: inst27, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst327: {kind: Call, arg0: inst325, arg1: inst_block108, type: type(symbolic_constant4)} +// CHECK:STDOUT: inst328: {kind: InitializeFrom, arg0: inst327, arg1: inst67, type: type(symbolic_constant4)} +// CHECK:STDOUT: inst329: {kind: TupleAccess, arg0: inst52, arg1: element1, type: type(inst36)} +// CHECK:STDOUT: inst330: {kind: TupleInit, arg0: inst_block_empty, arg1: inst329, type: type(inst36)} +// CHECK:STDOUT: inst331: {kind: TupleValue, arg0: inst_block_empty, type: type(inst36)} +// CHECK:STDOUT: inst332: {kind: Converted, arg0: inst64, arg1: inst330, type: type(inst36)} +// CHECK:STDOUT: inst333: {kind: TupleInit, arg0: inst_block109, arg1: inst52, type: type(symbolic_constant8)} +// CHECK:STDOUT: inst334: {kind: Converted, arg0: inst65, arg1: inst333, type: type(symbolic_constant8)} +// CHECK:STDOUT: inst335: {kind: ReturnExpr, arg0: inst334, arg1: inst52} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: // CHECK:STDOUT: inst14: concrete_constant(inst14) @@ -767,7 +752,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst89: symbolic_constant22 // CHECK:STDOUT: inst90: symbolic_constant23 // CHECK:STDOUT: inst91: symbolic_constant24 -// CHECK:STDOUT: inst92: symbolic_constant266 +// CHECK:STDOUT: inst92: symbolic_constant251 // CHECK:STDOUT: inst93: constant // CHECK:STDOUT: inst94: concrete_constant(inst94) // CHECK:STDOUT: inst95: symbolic_constant25 @@ -807,211 +792,202 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst129: symbolic_constant62 // CHECK:STDOUT: inst130: symbolic_constant64 // CHECK:STDOUT: inst131: symbolic_constant66 -// CHECK:STDOUT: inst132: symbolic_constant68 -// CHECK:STDOUT: inst133: symbolic_constant69 -// CHECK:STDOUT: inst134: symbolic_constant70 -// CHECK:STDOUT: inst135: symbolic_constant71 -// CHECK:STDOUT: inst136: symbolic_constant72 -// CHECK:STDOUT: inst137: symbolic_constant73 -// CHECK:STDOUT: inst138: symbolic_constant74 -// CHECK:STDOUT: inst139: symbolic_constant75 -// CHECK:STDOUT: inst140: constant -// CHECK:STDOUT: inst141: concrete_constant(inst141) -// CHECK:STDOUT: inst142: concrete_constant(inst(BoolType)) -// CHECK:STDOUT: inst143: concrete_constant(inst71) -// CHECK:STDOUT: inst144: constant -// CHECK:STDOUT: inst145: concrete_constant(inst145) -// CHECK:STDOUT: inst146: concrete_constant(inst(CharLiteralType)) -// CHECK:STDOUT: inst147: concrete_constant(inst71) -// CHECK:STDOUT: inst148: constant -// CHECK:STDOUT: inst149: concrete_constant(inst149) -// CHECK:STDOUT: inst150: concrete_constant(inst(FloatLiteralType)) -// CHECK:STDOUT: inst151: concrete_constant(inst71) -// CHECK:STDOUT: inst152: constant -// CHECK:STDOUT: inst153: concrete_constant(inst153) -// CHECK:STDOUT: inst154: concrete_constant(inst(IntLiteralType)) -// CHECK:STDOUT: inst155: concrete_constant(inst71) -// CHECK:STDOUT: inst156: symbolic_constant264 -// CHECK:STDOUT: inst157: concrete_constant(inst157) -// CHECK:STDOUT: inst158: concrete_constant(inst158) -// CHECK:STDOUT: inst159: symbolic_constant77 -// CHECK:STDOUT: inst160: symbolic_constant76 -// CHECK:STDOUT: inst161: concrete_constant(inst71) -// CHECK:STDOUT: inst162: constant -// CHECK:STDOUT: inst163: concrete_constant(inst163) +// CHECK:STDOUT: inst132: symbolic_constant67 +// CHECK:STDOUT: inst133: symbolic_constant68 +// CHECK:STDOUT: inst134: symbolic_constant69 +// CHECK:STDOUT: inst135: symbolic_constant70 +// CHECK:STDOUT: inst136: symbolic_constant71 +// CHECK:STDOUT: inst137: symbolic_constant72 +// CHECK:STDOUT: inst138: constant +// CHECK:STDOUT: inst139: concrete_constant(inst139) +// CHECK:STDOUT: inst140: concrete_constant(inst(BoolType)) +// CHECK:STDOUT: inst141: concrete_constant(inst71) +// CHECK:STDOUT: inst142: constant +// CHECK:STDOUT: inst143: concrete_constant(inst143) +// CHECK:STDOUT: inst144: concrete_constant(inst(CharLiteralType)) +// CHECK:STDOUT: inst145: concrete_constant(inst71) +// CHECK:STDOUT: inst146: constant +// CHECK:STDOUT: inst147: concrete_constant(inst147) +// CHECK:STDOUT: inst148: concrete_constant(inst(FloatLiteralType)) +// CHECK:STDOUT: inst149: concrete_constant(inst71) +// CHECK:STDOUT: inst150: constant +// CHECK:STDOUT: inst151: concrete_constant(inst151) +// CHECK:STDOUT: inst152: concrete_constant(inst(IntLiteralType)) +// CHECK:STDOUT: inst153: concrete_constant(inst71) +// CHECK:STDOUT: inst154: symbolic_constant249 +// CHECK:STDOUT: inst155: concrete_constant(inst155) +// CHECK:STDOUT: inst156: concrete_constant(inst156) +// CHECK:STDOUT: inst157: symbolic_constant74 +// CHECK:STDOUT: inst158: symbolic_constant73 +// CHECK:STDOUT: inst159: concrete_constant(inst71) +// CHECK:STDOUT: inst160: constant +// CHECK:STDOUT: inst161: concrete_constant(inst161) +// CHECK:STDOUT: inst162: symbolic_constant76 +// CHECK:STDOUT: inst163: symbolic_constant78 // CHECK:STDOUT: inst164: symbolic_constant79 -// CHECK:STDOUT: inst165: symbolic_constant81 -// CHECK:STDOUT: inst166: symbolic_constant82 -// CHECK:STDOUT: inst167: symbolic_constant83 -// CHECK:STDOUT: inst168: symbolic_constant86 -// CHECK:STDOUT: inst169: symbolic_constant84 -// CHECK:STDOUT: inst170: symbolic_constant85 +// CHECK:STDOUT: inst165: symbolic_constant80 +// CHECK:STDOUT: inst166: symbolic_constant83 +// CHECK:STDOUT: inst167: symbolic_constant81 +// CHECK:STDOUT: inst168: symbolic_constant82 +// CHECK:STDOUT: inst169: concrete_constant(inst169) +// CHECK:STDOUT: inst170: concrete_constant(inst170) // CHECK:STDOUT: inst171: concrete_constant(inst171) // CHECK:STDOUT: inst172: concrete_constant(inst172) -// CHECK:STDOUT: inst173: concrete_constant(inst173) -// CHECK:STDOUT: inst174: concrete_constant(inst174) -// CHECK:STDOUT: inst175: symbolic_constant77 -// CHECK:STDOUT: inst176: symbolic_constant91 -// CHECK:STDOUT: inst177: symbolic_constant92 -// CHECK:STDOUT: inst178: symbolic_constant93 -// CHECK:STDOUT: inst179: symbolic_constant96 -// CHECK:STDOUT: inst180: symbolic_constant97 -// CHECK:STDOUT: inst181: symbolic_constant98 -// CHECK:STDOUT: inst182: constant -// CHECK:STDOUT: inst183: concrete_constant(inst183) -// CHECK:STDOUT: inst184: concrete_constant(inst(TypeType)) -// CHECK:STDOUT: inst185: concrete_constant(inst71) -// CHECK:STDOUT: inst186: constant -// CHECK:STDOUT: inst187: concrete_constant(inst187) -// CHECK:STDOUT: inst188: concrete_constant(inst36) -// CHECK:STDOUT: inst189: concrete_constant(inst71) -// CHECK:STDOUT: inst190: constant -// CHECK:STDOUT: inst191: concrete_constant(inst191) -// CHECK:STDOUT: inst192: symbolic_constant99 -// CHECK:STDOUT: inst193: symbolic_constant100 -// CHECK:STDOUT: inst194: symbolic_constant101 -// CHECK:STDOUT: inst195: concrete_constant(inst195) -// CHECK:STDOUT: inst196: concrete_constant(inst196) -// CHECK:STDOUT: inst197: symbolic_constant103 -// CHECK:STDOUT: inst198: symbolic_constant104 -// CHECK:STDOUT: inst199: symbolic_constant102 -// CHECK:STDOUT: inst200: concrete_constant(inst71) -// CHECK:STDOUT: inst201: constant -// CHECK:STDOUT: inst202: concrete_constant(inst202) +// CHECK:STDOUT: inst173: symbolic_constant74 +// CHECK:STDOUT: inst174: symbolic_constant88 +// CHECK:STDOUT: inst175: symbolic_constant89 +// CHECK:STDOUT: inst176: symbolic_constant90 +// CHECK:STDOUT: inst177: symbolic_constant93 +// CHECK:STDOUT: inst178: symbolic_constant94 +// CHECK:STDOUT: inst179: symbolic_constant95 +// CHECK:STDOUT: inst180: constant +// CHECK:STDOUT: inst181: concrete_constant(inst181) +// CHECK:STDOUT: inst182: concrete_constant(inst(TypeType)) +// CHECK:STDOUT: inst183: concrete_constant(inst71) +// CHECK:STDOUT: inst184: constant +// CHECK:STDOUT: inst185: concrete_constant(inst185) +// CHECK:STDOUT: inst186: concrete_constant(inst36) +// CHECK:STDOUT: inst187: concrete_constant(inst71) +// CHECK:STDOUT: inst188: constant +// CHECK:STDOUT: inst189: concrete_constant(inst189) +// CHECK:STDOUT: inst190: symbolic_constant96 +// CHECK:STDOUT: inst191: symbolic_constant97 +// CHECK:STDOUT: inst192: symbolic_constant98 +// CHECK:STDOUT: inst193: concrete_constant(inst193) +// CHECK:STDOUT: inst194: concrete_constant(inst194) +// CHECK:STDOUT: inst195: symbolic_constant100 +// CHECK:STDOUT: inst196: symbolic_constant101 +// CHECK:STDOUT: inst197: symbolic_constant99 +// CHECK:STDOUT: inst198: concrete_constant(inst71) +// CHECK:STDOUT: inst199: constant +// CHECK:STDOUT: inst200: concrete_constant(inst200) +// CHECK:STDOUT: inst201: symbolic_constant106 +// CHECK:STDOUT: inst202: symbolic_constant108 // CHECK:STDOUT: inst203: symbolic_constant109 -// CHECK:STDOUT: inst204: symbolic_constant111 -// CHECK:STDOUT: inst205: symbolic_constant112 -// CHECK:STDOUT: inst206: symbolic_constant113 -// CHECK:STDOUT: inst207: symbolic_constant114 -// CHECK:STDOUT: inst208: symbolic_constant115 -// CHECK:STDOUT: inst209: symbolic_constant116 -// CHECK:STDOUT: inst210: symbolic_constant119 -// CHECK:STDOUT: inst211: symbolic_constant117 -// CHECK:STDOUT: inst212: symbolic_constant118 -// CHECK:STDOUT: inst213: symbolic_constant121 +// CHECK:STDOUT: inst204: symbolic_constant110 +// CHECK:STDOUT: inst205: symbolic_constant111 +// CHECK:STDOUT: inst206: symbolic_constant112 +// CHECK:STDOUT: inst207: symbolic_constant113 +// CHECK:STDOUT: inst208: symbolic_constant116 +// CHECK:STDOUT: inst209: symbolic_constant114 +// CHECK:STDOUT: inst210: symbolic_constant115 +// CHECK:STDOUT: inst211: symbolic_constant118 +// CHECK:STDOUT: inst212: concrete_constant(inst212) +// CHECK:STDOUT: inst213: concrete_constant(inst213) // CHECK:STDOUT: inst214: concrete_constant(inst214) // CHECK:STDOUT: inst215: concrete_constant(inst215) -// CHECK:STDOUT: inst216: concrete_constant(inst216) -// CHECK:STDOUT: inst217: concrete_constant(inst217) -// CHECK:STDOUT: inst218: symbolic_constant103 -// CHECK:STDOUT: inst219: symbolic_constant104 -// CHECK:STDOUT: inst220: symbolic_constant124 -// CHECK:STDOUT: inst221: symbolic_constant125 -// CHECK:STDOUT: inst222: symbolic_constant131 -// CHECK:STDOUT: inst223: symbolic_constant132 -// CHECK:STDOUT: inst224: symbolic_constant133 -// CHECK:STDOUT: inst225: symbolic_constant134 -// CHECK:STDOUT: inst226: symbolic_constant135 -// CHECK:STDOUT: inst227: symbolic_constant136 -// CHECK:STDOUT: inst228: symbolic_constant137 +// CHECK:STDOUT: inst216: symbolic_constant100 +// CHECK:STDOUT: inst217: symbolic_constant101 +// CHECK:STDOUT: inst218: symbolic_constant121 +// CHECK:STDOUT: inst219: symbolic_constant122 +// CHECK:STDOUT: inst220: symbolic_constant128 +// CHECK:STDOUT: inst221: symbolic_constant129 +// CHECK:STDOUT: inst222: symbolic_constant130 +// CHECK:STDOUT: inst223: symbolic_constant131 +// CHECK:STDOUT: inst224: symbolic_constant132 +// CHECK:STDOUT: inst225: symbolic_constant133 +// CHECK:STDOUT: inst226: symbolic_constant134 +// CHECK:STDOUT: inst227: symbolic_constant141 +// CHECK:STDOUT: inst228: symbolic_constant143 // CHECK:STDOUT: inst229: symbolic_constant145 // CHECK:STDOUT: inst230: symbolic_constant147 // CHECK:STDOUT: inst231: symbolic_constant149 // CHECK:STDOUT: inst232: symbolic_constant151 -// CHECK:STDOUT: inst233: symbolic_constant153 -// CHECK:STDOUT: inst234: symbolic_constant155 -// CHECK:STDOUT: inst235: symbolic_constant157 -// CHECK:STDOUT: inst236: symbolic_constant158 -// CHECK:STDOUT: inst237: symbolic_constant159 -// CHECK:STDOUT: inst238: symbolic_constant160 -// CHECK:STDOUT: inst239: symbolic_constant161 -// CHECK:STDOUT: inst240: symbolic_constant162 -// CHECK:STDOUT: inst241: symbolic_constant163 -// CHECK:STDOUT: inst242: symbolic_constant164 -// CHECK:STDOUT: inst243: symbolic_constant165 -// CHECK:STDOUT: inst244: symbolic_constant166 -// CHECK:STDOUT: inst245: symbolic_constant167 -// CHECK:STDOUT: inst246: symbolic_constant168 -// CHECK:STDOUT: inst247: symbolic_constant169 -// CHECK:STDOUT: inst248: symbolic_constant170 -// CHECK:STDOUT: inst249: constant +// CHECK:STDOUT: inst233: symbolic_constant152 +// CHECK:STDOUT: inst234: symbolic_constant153 +// CHECK:STDOUT: inst235: symbolic_constant154 +// CHECK:STDOUT: inst236: symbolic_constant155 +// CHECK:STDOUT: inst237: symbolic_constant156 +// CHECK:STDOUT: inst238: symbolic_constant157 +// CHECK:STDOUT: inst239: symbolic_constant158 +// CHECK:STDOUT: inst240: symbolic_constant159 +// CHECK:STDOUT: inst241: symbolic_constant160 +// CHECK:STDOUT: inst242: symbolic_constant161 +// CHECK:STDOUT: inst243: symbolic_constant162 +// CHECK:STDOUT: inst244: constant +// CHECK:STDOUT: inst245: concrete_constant(inst245) +// CHECK:STDOUT: inst246: symbolic_constant163 +// CHECK:STDOUT: inst247: symbolic_constant164 +// CHECK:STDOUT: inst248: symbolic_constant165 +// CHECK:STDOUT: inst249: concrete_constant(inst249) // CHECK:STDOUT: inst250: concrete_constant(inst250) -// CHECK:STDOUT: inst251: symbolic_constant171 -// CHECK:STDOUT: inst252: symbolic_constant172 -// CHECK:STDOUT: inst253: symbolic_constant173 -// CHECK:STDOUT: inst254: concrete_constant(inst254) -// CHECK:STDOUT: inst255: concrete_constant(inst255) -// CHECK:STDOUT: inst256: concrete_constant(inst256) -// CHECK:STDOUT: inst257: symbolic_constant175 -// CHECK:STDOUT: inst258: symbolic_constant176 -// CHECK:STDOUT: inst259: symbolic_constant177 -// CHECK:STDOUT: inst260: symbolic_constant174 -// CHECK:STDOUT: inst261: concrete_constant(inst71) -// CHECK:STDOUT: inst262: constant -// CHECK:STDOUT: inst263: concrete_constant(inst263) -// CHECK:STDOUT: inst264: symbolic_constant184 -// CHECK:STDOUT: inst265: symbolic_constant186 -// CHECK:STDOUT: inst266: symbolic_constant187 -// CHECK:STDOUT: inst267: symbolic_constant188 -// CHECK:STDOUT: inst268: symbolic_constant189 -// CHECK:STDOUT: inst269: symbolic_constant190 -// CHECK:STDOUT: inst270: symbolic_constant191 -// CHECK:STDOUT: inst271: symbolic_constant192 -// CHECK:STDOUT: inst272: symbolic_constant193 -// CHECK:STDOUT: inst273: symbolic_constant196 -// CHECK:STDOUT: inst274: symbolic_constant194 -// CHECK:STDOUT: inst275: symbolic_constant195 -// CHECK:STDOUT: inst276: symbolic_constant198 -// CHECK:STDOUT: inst277: concrete_constant(inst277) -// CHECK:STDOUT: inst278: concrete_constant(inst278) -// CHECK:STDOUT: inst279: concrete_constant(inst279) -// CHECK:STDOUT: inst280: concrete_constant(inst280) -// CHECK:STDOUT: inst281: symbolic_constant175 -// CHECK:STDOUT: inst282: symbolic_constant176 -// CHECK:STDOUT: inst283: symbolic_constant177 -// CHECK:STDOUT: inst284: symbolic_constant201 -// CHECK:STDOUT: inst285: symbolic_constant202 -// CHECK:STDOUT: inst286: symbolic_constant210 -// CHECK:STDOUT: inst287: symbolic_constant211 -// CHECK:STDOUT: inst288: symbolic_constant212 -// CHECK:STDOUT: inst289: symbolic_constant213 -// CHECK:STDOUT: inst290: symbolic_constant214 -// CHECK:STDOUT: inst291: symbolic_constant215 -// CHECK:STDOUT: inst292: symbolic_constant216 -// CHECK:STDOUT: inst293: symbolic_constant217 -// CHECK:STDOUT: inst294: symbolic_constant218 +// CHECK:STDOUT: inst251: concrete_constant(inst251) +// CHECK:STDOUT: inst252: symbolic_constant167 +// CHECK:STDOUT: inst253: symbolic_constant168 +// CHECK:STDOUT: inst254: symbolic_constant169 +// CHECK:STDOUT: inst255: symbolic_constant166 +// CHECK:STDOUT: inst256: concrete_constant(inst71) +// CHECK:STDOUT: inst257: constant +// CHECK:STDOUT: inst258: concrete_constant(inst258) +// CHECK:STDOUT: inst259: symbolic_constant176 +// CHECK:STDOUT: inst260: symbolic_constant178 +// CHECK:STDOUT: inst261: symbolic_constant179 +// CHECK:STDOUT: inst262: symbolic_constant180 +// CHECK:STDOUT: inst263: symbolic_constant181 +// CHECK:STDOUT: inst264: symbolic_constant182 +// CHECK:STDOUT: inst265: symbolic_constant183 +// CHECK:STDOUT: inst266: symbolic_constant184 +// CHECK:STDOUT: inst267: symbolic_constant185 +// CHECK:STDOUT: inst268: symbolic_constant188 +// CHECK:STDOUT: inst269: symbolic_constant186 +// CHECK:STDOUT: inst270: symbolic_constant187 +// CHECK:STDOUT: inst271: symbolic_constant190 +// CHECK:STDOUT: inst272: concrete_constant(inst272) +// CHECK:STDOUT: inst273: concrete_constant(inst273) +// CHECK:STDOUT: inst274: concrete_constant(inst274) +// CHECK:STDOUT: inst275: concrete_constant(inst275) +// CHECK:STDOUT: inst276: symbolic_constant167 +// CHECK:STDOUT: inst277: symbolic_constant168 +// CHECK:STDOUT: inst278: symbolic_constant169 +// CHECK:STDOUT: inst279: symbolic_constant193 +// CHECK:STDOUT: inst280: symbolic_constant194 +// CHECK:STDOUT: inst281: symbolic_constant202 +// CHECK:STDOUT: inst282: symbolic_constant203 +// CHECK:STDOUT: inst283: symbolic_constant204 +// CHECK:STDOUT: inst284: symbolic_constant205 +// CHECK:STDOUT: inst285: symbolic_constant206 +// CHECK:STDOUT: inst286: symbolic_constant207 +// CHECK:STDOUT: inst287: symbolic_constant208 +// CHECK:STDOUT: inst288: symbolic_constant209 +// CHECK:STDOUT: inst289: symbolic_constant210 +// CHECK:STDOUT: inst290: symbolic_constant222 +// CHECK:STDOUT: inst291: symbolic_constant224 +// CHECK:STDOUT: inst292: symbolic_constant226 +// CHECK:STDOUT: inst293: symbolic_constant228 +// CHECK:STDOUT: inst294: symbolic_constant230 // CHECK:STDOUT: inst295: symbolic_constant232 -// CHECK:STDOUT: inst296: symbolic_constant234 -// CHECK:STDOUT: inst297: symbolic_constant236 -// CHECK:STDOUT: inst298: symbolic_constant238 -// CHECK:STDOUT: inst299: symbolic_constant240 -// CHECK:STDOUT: inst300: symbolic_constant242 -// CHECK:STDOUT: inst301: symbolic_constant244 -// CHECK:STDOUT: inst302: symbolic_constant245 -// CHECK:STDOUT: inst303: symbolic_constant246 -// CHECK:STDOUT: inst304: symbolic_constant247 -// CHECK:STDOUT: inst305: symbolic_constant248 -// CHECK:STDOUT: inst306: symbolic_constant249 -// CHECK:STDOUT: inst307: symbolic_constant250 -// CHECK:STDOUT: inst308: symbolic_constant251 -// CHECK:STDOUT: inst309: symbolic_constant252 -// CHECK:STDOUT: inst310: symbolic_constant253 -// CHECK:STDOUT: inst311: symbolic_constant254 -// CHECK:STDOUT: inst312: symbolic_constant255 -// CHECK:STDOUT: inst313: symbolic_constant256 -// CHECK:STDOUT: inst314: symbolic_constant257 -// CHECK:STDOUT: inst315: symbolic_constant258 -// CHECK:STDOUT: inst316: symbolic_constant259 -// CHECK:STDOUT: inst317: symbolic_constant260 -// CHECK:STDOUT: inst318: symbolic_constant261 -// CHECK:STDOUT: inst319: symbolic_constant262 -// CHECK:STDOUT: inst320: symbolic_constant263 -// CHECK:STDOUT: inst321: symbolic_constant265 -// CHECK:STDOUT: inst322: symbolic_constant266 -// CHECK:STDOUT: inst323: symbolic_constant267 -// CHECK:STDOUT: inst324: symbolic_constant268 -// CHECK:STDOUT: inst325: symbolic_constant272 -// CHECK:STDOUT: inst326: symbolic_constant269 -// CHECK:STDOUT: inst327: symbolic_constant270 -// CHECK:STDOUT: inst328: symbolic_constant271 -// CHECK:STDOUT: inst329: symbolic_constant272 -// CHECK:STDOUT: inst331: symbolic_constant274 -// CHECK:STDOUT: inst332: symbolic_constant273 -// CHECK:STDOUT: inst333: symbolic_constant274 -// CHECK:STDOUT: inst335: symbolic_constant15 -// CHECK:STDOUT: inst339: concrete_constant(inst340) -// CHECK:STDOUT: inst340: concrete_constant(inst340) -// CHECK:STDOUT: inst341: concrete_constant(inst340) +// CHECK:STDOUT: inst296: symbolic_constant233 +// CHECK:STDOUT: inst297: symbolic_constant234 +// CHECK:STDOUT: inst298: symbolic_constant235 +// CHECK:STDOUT: inst299: symbolic_constant236 +// CHECK:STDOUT: inst300: symbolic_constant237 +// CHECK:STDOUT: inst301: symbolic_constant238 +// CHECK:STDOUT: inst302: symbolic_constant239 +// CHECK:STDOUT: inst303: symbolic_constant240 +// CHECK:STDOUT: inst304: symbolic_constant241 +// CHECK:STDOUT: inst305: symbolic_constant242 +// CHECK:STDOUT: inst306: symbolic_constant243 +// CHECK:STDOUT: inst307: symbolic_constant244 +// CHECK:STDOUT: inst308: symbolic_constant245 +// CHECK:STDOUT: inst309: symbolic_constant246 +// CHECK:STDOUT: inst310: symbolic_constant247 +// CHECK:STDOUT: inst311: symbolic_constant248 +// CHECK:STDOUT: inst312: symbolic_constant250 +// CHECK:STDOUT: inst313: symbolic_constant251 +// CHECK:STDOUT: inst314: symbolic_constant252 +// CHECK:STDOUT: inst315: symbolic_constant253 +// CHECK:STDOUT: inst316: symbolic_constant257 +// CHECK:STDOUT: inst317: symbolic_constant254 +// CHECK:STDOUT: inst318: symbolic_constant255 +// CHECK:STDOUT: inst319: symbolic_constant256 +// CHECK:STDOUT: inst320: symbolic_constant257 +// CHECK:STDOUT: inst322: symbolic_constant259 +// CHECK:STDOUT: inst323: symbolic_constant258 +// CHECK:STDOUT: inst324: symbolic_constant259 +// CHECK:STDOUT: inst326: symbolic_constant15 +// CHECK:STDOUT: inst330: concrete_constant(inst331) +// CHECK:STDOUT: inst331: concrete_constant(inst331) +// CHECK:STDOUT: inst332: concrete_constant(inst331) // CHECK:STDOUT: symbolic_constants: // CHECK:STDOUT: symbolic_constant0: {inst: inst19, generic: generic, index: generic_inst, kind: self} // CHECK:STDOUT: symbolic_constant1: {inst: inst21, generic: generic, index: generic_inst, kind: checked} @@ -1079,215 +1055,200 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: symbolic_constant63: {inst: inst129, generic: generic3, index: generic_inst_in_def4, kind: checked} // CHECK:STDOUT: symbolic_constant64: {inst: inst130, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant65: {inst: inst130, generic: generic3, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant66: {inst: inst131, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant67: {inst: inst131, generic: generic3, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant68: {inst: inst125, generic: generic3, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant69: {inst: inst126, generic: generic3, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant70: {inst: inst127, generic: generic3, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant71: {inst: inst128, generic: generic3, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant72: {inst: inst129, generic: generic3, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant73: {inst: inst130, generic: generic3, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant74: {inst: inst131, generic: generic3, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant75: {inst: inst139, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant76: {inst: inst27, generic: generic4, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant77: {inst: inst21, generic: generic4, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant66: {inst: inst125, generic: generic3, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant67: {inst: inst126, generic: generic3, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant68: {inst: inst127, generic: generic3, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant69: {inst: inst128, generic: generic3, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant70: {inst: inst129, generic: generic3, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant71: {inst: inst130, generic: generic3, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant72: {inst: inst137, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant73: {inst: inst27, generic: generic4, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant74: {inst: inst21, generic: generic4, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant75: {inst: inst21, generic: generic4, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant76: {inst: inst162, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant77: {inst: inst162, generic: generic4, index: generic_inst_in_decl2, kind: checked} // CHECK:STDOUT: symbolic_constant78: {inst: inst21, generic: generic4, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant79: {inst: inst164, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant80: {inst: inst164, generic: generic4, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant81: {inst: inst21, generic: generic4, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant82: {inst: inst27, generic: generic4, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant83: {inst: inst164, generic: generic4, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant84: {inst: inst169, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant85: {inst: inst170, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant86: {inst: inst170, generic: generic4, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant87: {inst: inst169, generic: generic4, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant88: {inst: inst30, generic: generic5, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant89: {inst: inst170, generic: generic4, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant79: {inst: inst27, generic: generic4, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant80: {inst: inst162, generic: generic4, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant81: {inst: inst167, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant82: {inst: inst168, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant83: {inst: inst168, generic: generic4, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant84: {inst: inst167, generic: generic4, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant85: {inst: inst30, generic: generic5, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant86: {inst: inst168, generic: generic4, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant87: {inst: inst61, generic: generic4, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant88: {inst: inst167, generic: generic4, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant89: {inst: inst168, generic: generic4, index: generic_inst_in_def1, kind: checked} // CHECK:STDOUT: symbolic_constant90: {inst: inst61, generic: generic4, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant91: {inst: inst169, generic: generic4, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant92: {inst: inst170, generic: generic4, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant93: {inst: inst61, generic: generic4, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant94: {inst: inst21, generic: generic5, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant95: {inst: inst27, generic: generic5, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant96: {inst: inst21, generic: generic5, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant97: {inst: inst27, generic: generic5, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant98: {inst: inst30, generic: generic5, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant99: {inst: inst192, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant100: {inst: inst193, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant101: {inst: inst194, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant102: {inst: inst194, generic: generic6, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant103: {inst: inst95, generic: generic6, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant104: {inst: inst192, generic: generic6, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant105: {inst: inst95, generic: generic6, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant106: {inst: inst192, generic: generic6, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant107: {inst: inst96, generic: generic6, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant108: {inst: inst193, generic: generic6, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant109: {inst: inst203, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant110: {inst: inst203, generic: generic6, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant111: {inst: inst95, generic: generic6, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant112: {inst: inst192, generic: generic6, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant113: {inst: inst96, generic: generic6, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant114: {inst: inst193, generic: generic6, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant115: {inst: inst194, generic: generic6, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant116: {inst: inst203, generic: generic6, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant117: {inst: inst211, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant118: {inst: inst212, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant119: {inst: inst212, generic: generic6, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant120: {inst: inst211, generic: generic6, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant121: {inst: inst213, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant122: {inst: inst213, generic: generic7, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant123: {inst: inst212, generic: generic6, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant124: {inst: inst211, generic: generic6, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant125: {inst: inst212, generic: generic6, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant126: {inst: inst95, generic: generic7, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant127: {inst: inst96, generic: generic7, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant128: {inst: inst192, generic: generic7, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant129: {inst: inst193, generic: generic7, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant130: {inst: inst194, generic: generic7, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant131: {inst: inst95, generic: generic7, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant132: {inst: inst96, generic: generic7, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant133: {inst: inst192, generic: generic7, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant134: {inst: inst193, generic: generic7, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant135: {inst: inst194, generic: generic7, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant136: {inst: inst213, generic: generic7, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant137: {inst: inst228, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant138: {inst: inst228, generic: generic7, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant139: {inst: inst126, generic: generic7, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant140: {inst: inst127, generic: generic7, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant141: {inst: inst128, generic: generic7, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant142: {inst: inst129, generic: generic7, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant143: {inst: inst130, generic: generic7, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant144: {inst: inst131, generic: generic7, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant91: {inst: inst21, generic: generic5, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant92: {inst: inst27, generic: generic5, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant93: {inst: inst21, generic: generic5, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant94: {inst: inst27, generic: generic5, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant95: {inst: inst30, generic: generic5, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant96: {inst: inst190, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant97: {inst: inst191, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant98: {inst: inst192, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant99: {inst: inst192, generic: generic6, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant100: {inst: inst95, generic: generic6, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant101: {inst: inst190, generic: generic6, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant102: {inst: inst95, generic: generic6, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant103: {inst: inst190, generic: generic6, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant104: {inst: inst96, generic: generic6, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant105: {inst: inst191, generic: generic6, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant106: {inst: inst201, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant107: {inst: inst201, generic: generic6, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant108: {inst: inst95, generic: generic6, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant109: {inst: inst190, generic: generic6, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant110: {inst: inst96, generic: generic6, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant111: {inst: inst191, generic: generic6, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant112: {inst: inst192, generic: generic6, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant113: {inst: inst201, generic: generic6, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant114: {inst: inst209, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant115: {inst: inst210, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant116: {inst: inst210, generic: generic6, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant117: {inst: inst209, generic: generic6, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant118: {inst: inst211, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant119: {inst: inst211, generic: generic7, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant120: {inst: inst210, generic: generic6, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant121: {inst: inst209, generic: generic6, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant122: {inst: inst210, generic: generic6, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant123: {inst: inst95, generic: generic7, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant124: {inst: inst96, generic: generic7, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant125: {inst: inst190, generic: generic7, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant126: {inst: inst191, generic: generic7, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant127: {inst: inst192, generic: generic7, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant128: {inst: inst95, generic: generic7, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant129: {inst: inst96, generic: generic7, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant130: {inst: inst190, generic: generic7, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant131: {inst: inst191, generic: generic7, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant132: {inst: inst192, generic: generic7, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant133: {inst: inst211, generic: generic7, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant134: {inst: inst226, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant135: {inst: inst226, generic: generic7, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant136: {inst: inst126, generic: generic7, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant137: {inst: inst127, generic: generic7, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant138: {inst: inst128, generic: generic7, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant139: {inst: inst129, generic: generic7, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant140: {inst: inst130, generic: generic7, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant141: {inst: inst227, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant142: {inst: inst227, generic: generic7, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant143: {inst: inst228, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant144: {inst: inst228, generic: generic7, index: generic_inst_in_def7, kind: checked} // CHECK:STDOUT: symbolic_constant145: {inst: inst229, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant146: {inst: inst229, generic: generic7, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant146: {inst: inst229, generic: generic7, index: generic_inst_in_def8, kind: checked} // CHECK:STDOUT: symbolic_constant147: {inst: inst230, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant148: {inst: inst230, generic: generic7, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant148: {inst: inst230, generic: generic7, index: generic_inst_in_def9, kind: checked} // CHECK:STDOUT: symbolic_constant149: {inst: inst231, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant150: {inst: inst231, generic: generic7, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant151: {inst: inst232, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant152: {inst: inst232, generic: generic7, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant153: {inst: inst233, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant154: {inst: inst233, generic: generic7, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant155: {inst: inst234, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant156: {inst: inst234, generic: generic7, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant157: {inst: inst228, generic: generic7, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant158: {inst: inst126, generic: generic7, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant159: {inst: inst127, generic: generic7, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant160: {inst: inst128, generic: generic7, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant161: {inst: inst129, generic: generic7, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant162: {inst: inst130, generic: generic7, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant163: {inst: inst131, generic: generic7, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant164: {inst: inst229, generic: generic7, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant165: {inst: inst230, generic: generic7, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant166: {inst: inst231, generic: generic7, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant167: {inst: inst232, generic: generic7, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant168: {inst: inst233, generic: generic7, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant169: {inst: inst234, generic: generic7, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant170: {inst: inst248, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant171: {inst: inst251, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant172: {inst: inst252, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant173: {inst: inst253, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant174: {inst: inst253, generic: generic8, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant175: {inst: inst95, generic: generic8, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant176: {inst: inst192, generic: generic8, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant177: {inst: inst251, generic: generic8, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant150: {inst: inst231, generic: generic7, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant151: {inst: inst226, generic: generic7, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant152: {inst: inst126, generic: generic7, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant153: {inst: inst127, generic: generic7, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant154: {inst: inst128, generic: generic7, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant155: {inst: inst129, generic: generic7, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant156: {inst: inst130, generic: generic7, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant157: {inst: inst227, generic: generic7, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant158: {inst: inst228, generic: generic7, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant159: {inst: inst229, generic: generic7, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant160: {inst: inst230, generic: generic7, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant161: {inst: inst231, generic: generic7, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant162: {inst: inst243, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant163: {inst: inst246, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant164: {inst: inst247, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant165: {inst: inst248, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant166: {inst: inst248, generic: generic8, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant167: {inst: inst95, generic: generic8, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant168: {inst: inst190, generic: generic8, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant169: {inst: inst246, generic: generic8, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant170: {inst: inst95, generic: generic8, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant171: {inst: inst190, generic: generic8, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant172: {inst: inst246, generic: generic8, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant173: {inst: inst96, generic: generic8, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant174: {inst: inst191, generic: generic8, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant175: {inst: inst247, generic: generic8, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant176: {inst: inst259, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant177: {inst: inst259, generic: generic8, index: generic_inst_in_decl7, kind: checked} // CHECK:STDOUT: symbolic_constant178: {inst: inst95, generic: generic8, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant179: {inst: inst192, generic: generic8, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant180: {inst: inst251, generic: generic8, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant179: {inst: inst190, generic: generic8, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant180: {inst: inst246, generic: generic8, index: generic_inst_in_decl2, kind: checked} // CHECK:STDOUT: symbolic_constant181: {inst: inst96, generic: generic8, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant182: {inst: inst193, generic: generic8, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant183: {inst: inst252, generic: generic8, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant184: {inst: inst264, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant185: {inst: inst264, generic: generic8, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant186: {inst: inst95, generic: generic8, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant187: {inst: inst192, generic: generic8, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant188: {inst: inst251, generic: generic8, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant189: {inst: inst96, generic: generic8, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant190: {inst: inst193, generic: generic8, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant191: {inst: inst252, generic: generic8, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant192: {inst: inst253, generic: generic8, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant193: {inst: inst264, generic: generic8, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant194: {inst: inst274, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant195: {inst: inst275, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant196: {inst: inst275, generic: generic8, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant197: {inst: inst274, generic: generic8, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant198: {inst: inst276, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant199: {inst: inst276, generic: generic9, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant200: {inst: inst275, generic: generic8, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant201: {inst: inst274, generic: generic8, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant202: {inst: inst275, generic: generic8, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant203: {inst: inst95, generic: generic9, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant204: {inst: inst96, generic: generic9, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant205: {inst: inst192, generic: generic9, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant206: {inst: inst193, generic: generic9, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant207: {inst: inst251, generic: generic9, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant208: {inst: inst252, generic: generic9, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant209: {inst: inst253, generic: generic9, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant210: {inst: inst95, generic: generic9, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant211: {inst: inst96, generic: generic9, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant212: {inst: inst192, generic: generic9, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant213: {inst: inst193, generic: generic9, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant214: {inst: inst251, generic: generic9, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant215: {inst: inst252, generic: generic9, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant216: {inst: inst253, generic: generic9, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant217: {inst: inst276, generic: generic9, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant218: {inst: inst294, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant219: {inst: inst294, generic: generic9, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant220: {inst: inst126, generic: generic9, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant221: {inst: inst127, generic: generic9, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant222: {inst: inst128, generic: generic9, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant223: {inst: inst129, generic: generic9, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant224: {inst: inst130, generic: generic9, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant225: {inst: inst131, generic: generic9, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant226: {inst: inst229, generic: generic9, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant227: {inst: inst230, generic: generic9, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant228: {inst: inst231, generic: generic9, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant229: {inst: inst232, generic: generic9, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant230: {inst: inst233, generic: generic9, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant231: {inst: inst234, generic: generic9, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant232: {inst: inst295, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant233: {inst: inst295, generic: generic9, index: generic_inst_in_def13, kind: checked} -// CHECK:STDOUT: symbolic_constant234: {inst: inst296, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant235: {inst: inst296, generic: generic9, index: generic_inst_in_def14, kind: checked} -// CHECK:STDOUT: symbolic_constant236: {inst: inst297, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant237: {inst: inst297, generic: generic9, index: generic_inst_in_def15, kind: checked} -// CHECK:STDOUT: symbolic_constant238: {inst: inst298, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant239: {inst: inst298, generic: generic9, index: generic_inst_in_def16, kind: checked} -// CHECK:STDOUT: symbolic_constant240: {inst: inst299, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant241: {inst: inst299, generic: generic9, index: generic_inst_in_def17, kind: checked} -// CHECK:STDOUT: symbolic_constant242: {inst: inst300, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant243: {inst: inst300, generic: generic9, index: generic_inst_in_def18, kind: checked} -// CHECK:STDOUT: symbolic_constant244: {inst: inst294, generic: generic9, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant245: {inst: inst126, generic: generic9, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant246: {inst: inst127, generic: generic9, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant247: {inst: inst128, generic: generic9, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant248: {inst: inst129, generic: generic9, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant249: {inst: inst130, generic: generic9, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant250: {inst: inst131, generic: generic9, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant251: {inst: inst229, generic: generic9, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant252: {inst: inst230, generic: generic9, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant253: {inst: inst231, generic: generic9, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant254: {inst: inst232, generic: generic9, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant255: {inst: inst233, generic: generic9, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant256: {inst: inst234, generic: generic9, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant257: {inst: inst295, generic: generic9, index: generic_inst_in_def13, kind: checked} -// CHECK:STDOUT: symbolic_constant258: {inst: inst296, generic: generic9, index: generic_inst_in_def14, kind: checked} -// CHECK:STDOUT: symbolic_constant259: {inst: inst297, generic: generic9, index: generic_inst_in_def15, kind: checked} -// CHECK:STDOUT: symbolic_constant260: {inst: inst298, generic: generic9, index: generic_inst_in_def16, kind: checked} -// CHECK:STDOUT: symbolic_constant261: {inst: inst299, generic: generic9, index: generic_inst_in_def17, kind: checked} -// CHECK:STDOUT: symbolic_constant262: {inst: inst300, generic: generic9, index: generic_inst_in_def18, kind: checked} -// CHECK:STDOUT: symbolic_constant263: {inst: inst320, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant264: {inst: inst164, generic: generic4, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant265: {inst: inst321, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant266: {inst: inst321, generic: generic0, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant267: {inst: inst323, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant268: {inst: inst324, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant269: {inst: inst326, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant270: {inst: inst323, generic: generic0, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant271: {inst: inst324, generic: generic0, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant272: {inst: inst326, generic: generic0, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant273: {inst: inst332, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant274: {inst: inst332, generic: generic0, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant182: {inst: inst191, generic: generic8, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant183: {inst: inst247, generic: generic8, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant184: {inst: inst248, generic: generic8, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant185: {inst: inst259, generic: generic8, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant186: {inst: inst269, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant187: {inst: inst270, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant188: {inst: inst270, generic: generic8, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant189: {inst: inst269, generic: generic8, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant190: {inst: inst271, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant191: {inst: inst271, generic: generic9, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant192: {inst: inst270, generic: generic8, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant193: {inst: inst269, generic: generic8, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant194: {inst: inst270, generic: generic8, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant195: {inst: inst95, generic: generic9, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant196: {inst: inst96, generic: generic9, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant197: {inst: inst190, generic: generic9, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant198: {inst: inst191, generic: generic9, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant199: {inst: inst246, generic: generic9, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant200: {inst: inst247, generic: generic9, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant201: {inst: inst248, generic: generic9, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant202: {inst: inst95, generic: generic9, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant203: {inst: inst96, generic: generic9, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant204: {inst: inst190, generic: generic9, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant205: {inst: inst191, generic: generic9, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant206: {inst: inst246, generic: generic9, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant207: {inst: inst247, generic: generic9, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant208: {inst: inst248, generic: generic9, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant209: {inst: inst271, generic: generic9, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant210: {inst: inst289, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant211: {inst: inst289, generic: generic9, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant212: {inst: inst126, generic: generic9, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant213: {inst: inst127, generic: generic9, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant214: {inst: inst128, generic: generic9, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant215: {inst: inst129, generic: generic9, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant216: {inst: inst130, generic: generic9, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant217: {inst: inst227, generic: generic9, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant218: {inst: inst228, generic: generic9, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant219: {inst: inst229, generic: generic9, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant220: {inst: inst230, generic: generic9, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant221: {inst: inst231, generic: generic9, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant222: {inst: inst290, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant223: {inst: inst290, generic: generic9, index: generic_inst_in_def11, kind: checked} +// CHECK:STDOUT: symbolic_constant224: {inst: inst291, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant225: {inst: inst291, generic: generic9, index: generic_inst_in_def12, kind: checked} +// CHECK:STDOUT: symbolic_constant226: {inst: inst292, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant227: {inst: inst292, generic: generic9, index: generic_inst_in_def13, kind: checked} +// CHECK:STDOUT: symbolic_constant228: {inst: inst293, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant229: {inst: inst293, generic: generic9, index: generic_inst_in_def14, kind: checked} +// CHECK:STDOUT: symbolic_constant230: {inst: inst294, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant231: {inst: inst294, generic: generic9, index: generic_inst_in_def15, kind: checked} +// CHECK:STDOUT: symbolic_constant232: {inst: inst289, generic: generic9, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant233: {inst: inst126, generic: generic9, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant234: {inst: inst127, generic: generic9, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant235: {inst: inst128, generic: generic9, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant236: {inst: inst129, generic: generic9, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant237: {inst: inst130, generic: generic9, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant238: {inst: inst227, generic: generic9, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant239: {inst: inst228, generic: generic9, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant240: {inst: inst229, generic: generic9, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant241: {inst: inst230, generic: generic9, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant242: {inst: inst231, generic: generic9, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant243: {inst: inst290, generic: generic9, index: generic_inst_in_def11, kind: checked} +// CHECK:STDOUT: symbolic_constant244: {inst: inst291, generic: generic9, index: generic_inst_in_def12, kind: checked} +// CHECK:STDOUT: symbolic_constant245: {inst: inst292, generic: generic9, index: generic_inst_in_def13, kind: checked} +// CHECK:STDOUT: symbolic_constant246: {inst: inst293, generic: generic9, index: generic_inst_in_def14, kind: checked} +// CHECK:STDOUT: symbolic_constant247: {inst: inst294, generic: generic9, index: generic_inst_in_def15, kind: checked} +// CHECK:STDOUT: symbolic_constant248: {inst: inst311, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant249: {inst: inst162, generic: generic4, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant250: {inst: inst312, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant251: {inst: inst312, generic: generic0, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant252: {inst: inst314, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant253: {inst: inst315, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant254: {inst: inst317, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant255: {inst: inst314, generic: generic0, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant256: {inst: inst315, generic: generic0, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant257: {inst: inst317, generic: generic0, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant258: {inst: inst323, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant259: {inst: inst323, generic: generic0, index: generic_inst_in_def6, kind: checked} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: @@ -1320,81 +1281,81 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 24: inst116 // CHECK:STDOUT: 25: inst117 // CHECK:STDOUT: 26: inst118 -// CHECK:STDOUT: 27: inst140 -// CHECK:STDOUT: 28: inst141 -// CHECK:STDOUT: 29: inst142 -// CHECK:STDOUT: 30: inst143 -// CHECK:STDOUT: 31: inst144 -// CHECK:STDOUT: 32: inst145 -// CHECK:STDOUT: 33: inst146 -// CHECK:STDOUT: 34: inst147 -// CHECK:STDOUT: 35: inst148 -// CHECK:STDOUT: 36: inst149 -// CHECK:STDOUT: 37: inst150 -// CHECK:STDOUT: 38: inst151 -// CHECK:STDOUT: 39: inst152 -// CHECK:STDOUT: 40: inst153 -// CHECK:STDOUT: 41: inst154 -// CHECK:STDOUT: 42: inst155 -// CHECK:STDOUT: 43: inst156 -// CHECK:STDOUT: 44: inst157 -// CHECK:STDOUT: 45: inst158 -// CHECK:STDOUT: 46: inst159 -// CHECK:STDOUT: 47: inst160 -// CHECK:STDOUT: 48: inst161 -// CHECK:STDOUT: 49: inst162 -// CHECK:STDOUT: 50: inst163 -// CHECK:STDOUT: 51: inst168 -// CHECK:STDOUT: 52: inst171 -// CHECK:STDOUT: 53: inst172 -// CHECK:STDOUT: 54: inst173 -// CHECK:STDOUT: 55: inst174 -// CHECK:STDOUT: 56: inst175 -// CHECK:STDOUT: 57: inst182 -// CHECK:STDOUT: 58: inst183 -// CHECK:STDOUT: 59: inst184 -// CHECK:STDOUT: 60: inst185 -// CHECK:STDOUT: 61: inst186 -// CHECK:STDOUT: 62: inst187 -// CHECK:STDOUT: 63: inst188 -// CHECK:STDOUT: 64: inst189 -// CHECK:STDOUT: 65: inst190 -// CHECK:STDOUT: 66: inst191 -// CHECK:STDOUT: 67: inst195 -// CHECK:STDOUT: 68: inst196 -// CHECK:STDOUT: 69: inst197 -// CHECK:STDOUT: 70: inst198 -// CHECK:STDOUT: 71: inst199 -// CHECK:STDOUT: 72: inst200 -// CHECK:STDOUT: 73: inst201 -// CHECK:STDOUT: 74: inst202 -// CHECK:STDOUT: 75: inst210 -// CHECK:STDOUT: 76: inst214 -// CHECK:STDOUT: 77: inst215 -// CHECK:STDOUT: 78: inst216 -// CHECK:STDOUT: 79: inst217 -// CHECK:STDOUT: 80: inst218 -// CHECK:STDOUT: 81: inst219 -// CHECK:STDOUT: 82: inst249 -// CHECK:STDOUT: 83: inst250 -// CHECK:STDOUT: 84: inst254 -// CHECK:STDOUT: 85: inst255 -// CHECK:STDOUT: 86: inst256 -// CHECK:STDOUT: 87: inst257 -// CHECK:STDOUT: 88: inst258 -// CHECK:STDOUT: 89: inst259 -// CHECK:STDOUT: 90: inst260 -// CHECK:STDOUT: 91: inst261 -// CHECK:STDOUT: 92: inst262 -// CHECK:STDOUT: 93: inst263 -// CHECK:STDOUT: 94: inst273 -// CHECK:STDOUT: 95: inst277 -// CHECK:STDOUT: 96: inst278 -// CHECK:STDOUT: 97: inst279 -// CHECK:STDOUT: 98: inst280 -// CHECK:STDOUT: 99: inst281 -// CHECK:STDOUT: 100: inst282 -// CHECK:STDOUT: 101: inst283 +// CHECK:STDOUT: 27: inst138 +// CHECK:STDOUT: 28: inst139 +// CHECK:STDOUT: 29: inst140 +// CHECK:STDOUT: 30: inst141 +// CHECK:STDOUT: 31: inst142 +// CHECK:STDOUT: 32: inst143 +// CHECK:STDOUT: 33: inst144 +// CHECK:STDOUT: 34: inst145 +// CHECK:STDOUT: 35: inst146 +// CHECK:STDOUT: 36: inst147 +// CHECK:STDOUT: 37: inst148 +// CHECK:STDOUT: 38: inst149 +// CHECK:STDOUT: 39: inst150 +// CHECK:STDOUT: 40: inst151 +// CHECK:STDOUT: 41: inst152 +// CHECK:STDOUT: 42: inst153 +// CHECK:STDOUT: 43: inst154 +// CHECK:STDOUT: 44: inst155 +// CHECK:STDOUT: 45: inst156 +// CHECK:STDOUT: 46: inst157 +// CHECK:STDOUT: 47: inst158 +// CHECK:STDOUT: 48: inst159 +// CHECK:STDOUT: 49: inst160 +// CHECK:STDOUT: 50: inst161 +// CHECK:STDOUT: 51: inst166 +// CHECK:STDOUT: 52: inst169 +// CHECK:STDOUT: 53: inst170 +// CHECK:STDOUT: 54: inst171 +// CHECK:STDOUT: 55: inst172 +// CHECK:STDOUT: 56: inst173 +// CHECK:STDOUT: 57: inst180 +// CHECK:STDOUT: 58: inst181 +// CHECK:STDOUT: 59: inst182 +// CHECK:STDOUT: 60: inst183 +// CHECK:STDOUT: 61: inst184 +// CHECK:STDOUT: 62: inst185 +// CHECK:STDOUT: 63: inst186 +// CHECK:STDOUT: 64: inst187 +// CHECK:STDOUT: 65: inst188 +// CHECK:STDOUT: 66: inst189 +// CHECK:STDOUT: 67: inst193 +// CHECK:STDOUT: 68: inst194 +// CHECK:STDOUT: 69: inst195 +// CHECK:STDOUT: 70: inst196 +// CHECK:STDOUT: 71: inst197 +// CHECK:STDOUT: 72: inst198 +// CHECK:STDOUT: 73: inst199 +// CHECK:STDOUT: 74: inst200 +// CHECK:STDOUT: 75: inst208 +// CHECK:STDOUT: 76: inst212 +// CHECK:STDOUT: 77: inst213 +// CHECK:STDOUT: 78: inst214 +// CHECK:STDOUT: 79: inst215 +// CHECK:STDOUT: 80: inst216 +// CHECK:STDOUT: 81: inst217 +// CHECK:STDOUT: 82: inst244 +// CHECK:STDOUT: 83: inst245 +// CHECK:STDOUT: 84: inst249 +// CHECK:STDOUT: 85: inst250 +// CHECK:STDOUT: 86: inst251 +// CHECK:STDOUT: 87: inst252 +// CHECK:STDOUT: 88: inst253 +// CHECK:STDOUT: 89: inst254 +// CHECK:STDOUT: 90: inst255 +// CHECK:STDOUT: 91: inst256 +// CHECK:STDOUT: 92: inst257 +// CHECK:STDOUT: 93: inst258 +// CHECK:STDOUT: 94: inst268 +// CHECK:STDOUT: 95: inst272 +// CHECK:STDOUT: 96: inst273 +// CHECK:STDOUT: 97: inst274 +// CHECK:STDOUT: 98: inst275 +// CHECK:STDOUT: 99: inst276 +// CHECK:STDOUT: 100: inst277 +// CHECK:STDOUT: 101: inst278 // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: // CHECK:STDOUT: 0: inst18 @@ -1463,19 +1424,19 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 0: inst63 // CHECK:STDOUT: 1: inst64 // CHECK:STDOUT: 2: inst65 -// CHECK:STDOUT: 3: inst325 -// CHECK:STDOUT: 4: inst330 -// CHECK:STDOUT: 5: inst331 -// CHECK:STDOUT: 6: inst334 -// CHECK:STDOUT: 7: inst336 +// CHECK:STDOUT: 3: inst316 +// CHECK:STDOUT: 4: inst321 +// CHECK:STDOUT: 5: inst322 +// CHECK:STDOUT: 6: inst325 +// CHECK:STDOUT: 7: inst327 // CHECK:STDOUT: 8: inst67 -// CHECK:STDOUT: 9: inst337 -// CHECK:STDOUT: 10: inst338 -// CHECK:STDOUT: 11: inst339 -// CHECK:STDOUT: 12: inst341 -// CHECK:STDOUT: 13: inst342 -// CHECK:STDOUT: 14: inst343 -// CHECK:STDOUT: 15: inst344 +// CHECK:STDOUT: 9: inst328 +// CHECK:STDOUT: 10: inst329 +// CHECK:STDOUT: 11: inst330 +// CHECK:STDOUT: 12: inst332 +// CHECK:STDOUT: 13: inst333 +// CHECK:STDOUT: 14: inst334 +// CHECK:STDOUT: 15: inst335 // CHECK:STDOUT: inst_block21: // CHECK:STDOUT: 0: inst63 // CHECK:STDOUT: 1: inst64 @@ -1535,309 +1496,283 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 2: inst97 // CHECK:STDOUT: 3: inst113 // CHECK:STDOUT: inst_block41: -// CHECK:STDOUT: 0: inst127 +// CHECK:STDOUT: 0: inst121 // CHECK:STDOUT: inst_block42: -// CHECK:STDOUT: 0: inst128 +// CHECK:STDOUT: 0: inst131 +// CHECK:STDOUT: 1: inst132 +// CHECK:STDOUT: 2: inst133 +// CHECK:STDOUT: 3: inst134 +// CHECK:STDOUT: 4: inst135 +// CHECK:STDOUT: 5: inst136 // CHECK:STDOUT: inst_block43: -// CHECK:STDOUT: 0: inst134 +// CHECK:STDOUT: 0: inst95 +// CHECK:STDOUT: 1: inst96 +// CHECK:STDOUT: 2: inst137 // CHECK:STDOUT: inst_block44: -// CHECK:STDOUT: 0: inst135 +// CHECK:STDOUT: 0: inst111 +// CHECK:STDOUT: 1: inst112 // CHECK:STDOUT: inst_block45: -// CHECK:STDOUT: 0: inst132 -// CHECK:STDOUT: 1: inst133 -// CHECK:STDOUT: 2: inst134 -// CHECK:STDOUT: 3: inst135 -// CHECK:STDOUT: 4: inst136 -// CHECK:STDOUT: 5: inst137 -// CHECK:STDOUT: 6: inst138 +// CHECK:STDOUT: 0: inst156 // CHECK:STDOUT: inst_block46: -// CHECK:STDOUT: 0: inst128 -// CHECK:STDOUT: 1: inst96 -// CHECK:STDOUT: 2: inst139 +// CHECK:STDOUT: 0: inst157 // CHECK:STDOUT: inst_block47: -// CHECK:STDOUT: 0: inst111 -// CHECK:STDOUT: 1: inst112 +// CHECK:STDOUT: 0: inst160 // CHECK:STDOUT: inst_block48: -// CHECK:STDOUT: 0: inst158 +// CHECK:STDOUT: 0: inst163 // CHECK:STDOUT: inst_block49: -// CHECK:STDOUT: 0: inst159 +// CHECK:STDOUT: 0: inst163 +// CHECK:STDOUT: 1: inst164 +// CHECK:STDOUT: 2: inst165 // CHECK:STDOUT: inst_block50: -// CHECK:STDOUT: 0: inst162 +// CHECK:STDOUT: 0: inst21 +// CHECK:STDOUT: 1: inst27 +// CHECK:STDOUT: 2: inst162 // CHECK:STDOUT: inst_block51: -// CHECK:STDOUT: 0: inst165 +// CHECK:STDOUT: 0: inst172 // CHECK:STDOUT: inst_block52: -// CHECK:STDOUT: 0: inst165 -// CHECK:STDOUT: 1: inst166 -// CHECK:STDOUT: 2: inst167 +// CHECK:STDOUT: 0: inst173 // CHECK:STDOUT: inst_block53: -// CHECK:STDOUT: 0: inst21 -// CHECK:STDOUT: 1: inst27 -// CHECK:STDOUT: 2: inst164 +// CHECK:STDOUT: 0: inst163 // CHECK:STDOUT: inst_block54: // CHECK:STDOUT: 0: inst174 +// CHECK:STDOUT: 1: inst175 +// CHECK:STDOUT: 2: inst176 // CHECK:STDOUT: inst_block55: -// CHECK:STDOUT: 0: inst175 +// CHECK:STDOUT: 0: inst177 +// CHECK:STDOUT: 1: inst178 +// CHECK:STDOUT: 2: inst179 // CHECK:STDOUT: inst_block56: -// CHECK:STDOUT: 0: inst165 -// CHECK:STDOUT: inst_block57: -// CHECK:STDOUT: 0: inst176 -// CHECK:STDOUT: 1: inst177 -// CHECK:STDOUT: 2: inst178 -// CHECK:STDOUT: inst_block58: -// CHECK:STDOUT: 0: inst179 -// CHECK:STDOUT: 1: inst180 -// CHECK:STDOUT: 2: inst181 -// CHECK:STDOUT: inst_block59: // CHECK:STDOUT: 0: inst21 // CHECK:STDOUT: 1: inst27 // CHECK:STDOUT: 2: inst30 -// CHECK:STDOUT: inst_block60: +// CHECK:STDOUT: inst_block57: // CHECK:STDOUT: 0: inst96 +// CHECK:STDOUT: 1: inst191 +// CHECK:STDOUT: inst_block58: +// CHECK:STDOUT: 0: inst194 // CHECK:STDOUT: 1: inst193 +// CHECK:STDOUT: inst_block59: +// CHECK:STDOUT: 0: inst195 +// CHECK:STDOUT: 1: inst196 +// CHECK:STDOUT: inst_block60: +// CHECK:STDOUT: 0: inst199 // CHECK:STDOUT: inst_block61: -// CHECK:STDOUT: 0: inst196 -// CHECK:STDOUT: 1: inst195 +// CHECK:STDOUT: 0: inst95 +// CHECK:STDOUT: 1: inst190 // CHECK:STDOUT: inst_block62: -// CHECK:STDOUT: 0: inst197 -// CHECK:STDOUT: 1: inst198 +// CHECK:STDOUT: 0: inst204 +// CHECK:STDOUT: 1: inst205 // CHECK:STDOUT: inst_block63: -// CHECK:STDOUT: 0: inst201 +// CHECK:STDOUT: 0: inst202 +// CHECK:STDOUT: 1: inst203 // CHECK:STDOUT: inst_block64: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst192 +// CHECK:STDOUT: 0: inst202 +// CHECK:STDOUT: 1: inst203 +// CHECK:STDOUT: 2: inst204 +// CHECK:STDOUT: 3: inst205 +// CHECK:STDOUT: 4: inst206 +// CHECK:STDOUT: 5: inst207 // CHECK:STDOUT: inst_block65: -// CHECK:STDOUT: 0: inst206 -// CHECK:STDOUT: 1: inst207 +// CHECK:STDOUT: 0: inst95 +// CHECK:STDOUT: 1: inst190 +// CHECK:STDOUT: 2: inst96 +// CHECK:STDOUT: 3: inst191 +// CHECK:STDOUT: 4: inst192 +// CHECK:STDOUT: 5: inst201 // CHECK:STDOUT: inst_block66: -// CHECK:STDOUT: 0: inst204 -// CHECK:STDOUT: 1: inst205 +// CHECK:STDOUT: 0: inst215 // CHECK:STDOUT: inst_block67: -// CHECK:STDOUT: 0: inst204 -// CHECK:STDOUT: 1: inst205 -// CHECK:STDOUT: 2: inst206 -// CHECK:STDOUT: 3: inst207 -// CHECK:STDOUT: 4: inst208 -// CHECK:STDOUT: 5: inst209 +// CHECK:STDOUT: 0: inst216 +// CHECK:STDOUT: 1: inst217 // CHECK:STDOUT: inst_block68: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst192 -// CHECK:STDOUT: 2: inst96 -// CHECK:STDOUT: 3: inst193 -// CHECK:STDOUT: 4: inst194 -// CHECK:STDOUT: 5: inst203 +// CHECK:STDOUT: 0: inst202 +// CHECK:STDOUT: 1: inst203 // CHECK:STDOUT: inst_block69: -// CHECK:STDOUT: 0: inst217 -// CHECK:STDOUT: inst_block70: // CHECK:STDOUT: 0: inst218 // CHECK:STDOUT: 1: inst219 +// CHECK:STDOUT: inst_block70: +// CHECK:STDOUT: 0: inst221 +// CHECK:STDOUT: 1: inst223 // CHECK:STDOUT: inst_block71: -// CHECK:STDOUT: 0: inst204 -// CHECK:STDOUT: 1: inst205 -// CHECK:STDOUT: inst_block72: // CHECK:STDOUT: 0: inst220 // CHECK:STDOUT: 1: inst221 +// CHECK:STDOUT: 2: inst222 +// CHECK:STDOUT: 3: inst223 +// CHECK:STDOUT: 4: inst224 +// CHECK:STDOUT: 5: inst225 +// CHECK:STDOUT: inst_block72: +// CHECK:STDOUT: 0: inst95 +// CHECK:STDOUT: 1: inst96 +// CHECK:STDOUT: 2: inst190 +// CHECK:STDOUT: 3: inst191 +// CHECK:STDOUT: 4: inst192 +// CHECK:STDOUT: 5: inst211 // CHECK:STDOUT: inst_block73: -// CHECK:STDOUT: 0: inst223 -// CHECK:STDOUT: 1: inst225 +// CHECK:STDOUT: 0: inst190 // CHECK:STDOUT: inst_block74: -// CHECK:STDOUT: 0: inst222 -// CHECK:STDOUT: 1: inst223 -// CHECK:STDOUT: 2: inst224 -// CHECK:STDOUT: 3: inst225 -// CHECK:STDOUT: 4: inst226 -// CHECK:STDOUT: 5: inst227 +// CHECK:STDOUT: 0: inst220 // CHECK:STDOUT: inst_block75: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst96 -// CHECK:STDOUT: 2: inst192 -// CHECK:STDOUT: 3: inst193 -// CHECK:STDOUT: 4: inst194 -// CHECK:STDOUT: 5: inst213 +// CHECK:STDOUT: 0: inst222 // CHECK:STDOUT: inst_block76: -// CHECK:STDOUT: 0: inst230 +// CHECK:STDOUT: 0: inst232 +// CHECK:STDOUT: 1: inst233 +// CHECK:STDOUT: 2: inst234 +// CHECK:STDOUT: 3: inst235 +// CHECK:STDOUT: 4: inst236 +// CHECK:STDOUT: 5: inst237 +// CHECK:STDOUT: 6: inst238 +// CHECK:STDOUT: 7: inst239 +// CHECK:STDOUT: 8: inst240 +// CHECK:STDOUT: 9: inst241 +// CHECK:STDOUT: 10: inst242 // CHECK:STDOUT: inst_block77: -// CHECK:STDOUT: 0: inst231 +// CHECK:STDOUT: 0: inst190 +// CHECK:STDOUT: 1: inst191 +// CHECK:STDOUT: 2: inst243 // CHECK:STDOUT: inst_block78: -// CHECK:STDOUT: 0: inst237 +// CHECK:STDOUT: 0: inst209 +// CHECK:STDOUT: 1: inst210 // CHECK:STDOUT: inst_block79: -// CHECK:STDOUT: 0: inst238 +// CHECK:STDOUT: 0: inst96 +// CHECK:STDOUT: 1: inst191 +// CHECK:STDOUT: 2: inst247 // CHECK:STDOUT: inst_block80: -// CHECK:STDOUT: 0: inst243 +// CHECK:STDOUT: 0: inst251 +// CHECK:STDOUT: 1: inst250 +// CHECK:STDOUT: 2: inst249 // CHECK:STDOUT: inst_block81: -// CHECK:STDOUT: 0: inst244 +// CHECK:STDOUT: 0: inst252 +// CHECK:STDOUT: 1: inst253 +// CHECK:STDOUT: 2: inst254 // CHECK:STDOUT: inst_block82: -// CHECK:STDOUT: 0: inst235 -// CHECK:STDOUT: 1: inst236 -// CHECK:STDOUT: 2: inst237 -// CHECK:STDOUT: 3: inst238 -// CHECK:STDOUT: 4: inst239 -// CHECK:STDOUT: 5: inst240 -// CHECK:STDOUT: 6: inst241 -// CHECK:STDOUT: 7: inst242 -// CHECK:STDOUT: 8: inst243 -// CHECK:STDOUT: 9: inst244 -// CHECK:STDOUT: 10: inst245 -// CHECK:STDOUT: 11: inst246 -// CHECK:STDOUT: 12: inst247 +// CHECK:STDOUT: 0: inst257 // CHECK:STDOUT: inst_block83: -// CHECK:STDOUT: 0: inst231 -// CHECK:STDOUT: 1: inst193 -// CHECK:STDOUT: 2: inst248 +// CHECK:STDOUT: 0: inst95 +// CHECK:STDOUT: 1: inst190 +// CHECK:STDOUT: 2: inst246 // CHECK:STDOUT: inst_block84: -// CHECK:STDOUT: 0: inst211 -// CHECK:STDOUT: 1: inst212 +// CHECK:STDOUT: 0: inst263 +// CHECK:STDOUT: 1: inst264 +// CHECK:STDOUT: 2: inst265 // CHECK:STDOUT: inst_block85: -// CHECK:STDOUT: 0: inst96 -// CHECK:STDOUT: 1: inst193 -// CHECK:STDOUT: 2: inst252 +// CHECK:STDOUT: 0: inst260 +// CHECK:STDOUT: 1: inst261 +// CHECK:STDOUT: 2: inst262 // CHECK:STDOUT: inst_block86: -// CHECK:STDOUT: 0: inst256 -// CHECK:STDOUT: 1: inst255 -// CHECK:STDOUT: 2: inst254 +// CHECK:STDOUT: 0: inst260 +// CHECK:STDOUT: 1: inst261 +// CHECK:STDOUT: 2: inst262 +// CHECK:STDOUT: 3: inst263 +// CHECK:STDOUT: 4: inst264 +// CHECK:STDOUT: 5: inst265 +// CHECK:STDOUT: 6: inst266 +// CHECK:STDOUT: 7: inst267 // CHECK:STDOUT: inst_block87: -// CHECK:STDOUT: 0: inst257 -// CHECK:STDOUT: 1: inst258 -// CHECK:STDOUT: 2: inst259 +// CHECK:STDOUT: 0: inst95 +// CHECK:STDOUT: 1: inst190 +// CHECK:STDOUT: 2: inst246 +// CHECK:STDOUT: 3: inst96 +// CHECK:STDOUT: 4: inst191 +// CHECK:STDOUT: 5: inst247 +// CHECK:STDOUT: 6: inst248 +// CHECK:STDOUT: 7: inst259 // CHECK:STDOUT: inst_block88: -// CHECK:STDOUT: 0: inst262 +// CHECK:STDOUT: 0: inst275 // CHECK:STDOUT: inst_block89: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst192 -// CHECK:STDOUT: 2: inst251 +// CHECK:STDOUT: 0: inst276 +// CHECK:STDOUT: 1: inst277 +// CHECK:STDOUT: 2: inst278 // CHECK:STDOUT: inst_block90: -// CHECK:STDOUT: 0: inst268 -// CHECK:STDOUT: 1: inst269 -// CHECK:STDOUT: 2: inst270 +// CHECK:STDOUT: 0: inst260 +// CHECK:STDOUT: 1: inst261 +// CHECK:STDOUT: 2: inst262 // CHECK:STDOUT: inst_block91: -// CHECK:STDOUT: 0: inst265 -// CHECK:STDOUT: 1: inst266 -// CHECK:STDOUT: 2: inst267 +// CHECK:STDOUT: 0: inst279 +// CHECK:STDOUT: 1: inst280 // CHECK:STDOUT: inst_block92: -// CHECK:STDOUT: 0: inst265 -// CHECK:STDOUT: 1: inst266 -// CHECK:STDOUT: 2: inst267 -// CHECK:STDOUT: 3: inst268 -// CHECK:STDOUT: 4: inst269 -// CHECK:STDOUT: 5: inst270 -// CHECK:STDOUT: 6: inst271 -// CHECK:STDOUT: 7: inst272 +// CHECK:STDOUT: 0: inst282 +// CHECK:STDOUT: 1: inst284 +// CHECK:STDOUT: 2: inst286 // CHECK:STDOUT: inst_block93: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst192 -// CHECK:STDOUT: 2: inst251 -// CHECK:STDOUT: 3: inst96 -// CHECK:STDOUT: 4: inst193 -// CHECK:STDOUT: 5: inst252 -// CHECK:STDOUT: 6: inst253 -// CHECK:STDOUT: 7: inst264 -// CHECK:STDOUT: inst_block94: -// CHECK:STDOUT: 0: inst280 -// CHECK:STDOUT: inst_block95: // CHECK:STDOUT: 0: inst281 // CHECK:STDOUT: 1: inst282 // CHECK:STDOUT: 2: inst283 +// CHECK:STDOUT: 3: inst284 +// CHECK:STDOUT: 4: inst285 +// CHECK:STDOUT: 5: inst286 +// CHECK:STDOUT: 6: inst287 +// CHECK:STDOUT: 7: inst288 +// CHECK:STDOUT: inst_block94: +// CHECK:STDOUT: 0: inst95 +// CHECK:STDOUT: 1: inst96 +// CHECK:STDOUT: 2: inst190 +// CHECK:STDOUT: 3: inst191 +// CHECK:STDOUT: 4: inst246 +// CHECK:STDOUT: 5: inst247 +// CHECK:STDOUT: 6: inst248 +// CHECK:STDOUT: 7: inst271 +// CHECK:STDOUT: inst_block95: +// CHECK:STDOUT: 0: inst246 // CHECK:STDOUT: inst_block96: -// CHECK:STDOUT: 0: inst265 -// CHECK:STDOUT: 1: inst266 -// CHECK:STDOUT: 2: inst267 +// CHECK:STDOUT: 0: inst281 // CHECK:STDOUT: inst_block97: -// CHECK:STDOUT: 0: inst284 -// CHECK:STDOUT: 1: inst285 +// CHECK:STDOUT: 0: inst283 // CHECK:STDOUT: inst_block98: -// CHECK:STDOUT: 0: inst287 -// CHECK:STDOUT: 1: inst289 -// CHECK:STDOUT: 2: inst291 +// CHECK:STDOUT: 0: inst285 // CHECK:STDOUT: inst_block99: -// CHECK:STDOUT: 0: inst286 -// CHECK:STDOUT: 1: inst287 -// CHECK:STDOUT: 2: inst288 -// CHECK:STDOUT: 3: inst289 -// CHECK:STDOUT: 4: inst290 -// CHECK:STDOUT: 5: inst291 -// CHECK:STDOUT: 6: inst292 -// CHECK:STDOUT: 7: inst293 +// CHECK:STDOUT: 0: inst295 +// CHECK:STDOUT: 1: inst296 +// CHECK:STDOUT: 2: inst297 +// CHECK:STDOUT: 3: inst298 +// CHECK:STDOUT: 4: inst299 +// CHECK:STDOUT: 5: inst300 +// CHECK:STDOUT: 6: inst301 +// CHECK:STDOUT: 7: inst302 +// CHECK:STDOUT: 8: inst303 +// CHECK:STDOUT: 9: inst304 +// CHECK:STDOUT: 10: inst305 +// CHECK:STDOUT: 11: inst306 +// CHECK:STDOUT: 12: inst307 +// CHECK:STDOUT: 13: inst308 +// CHECK:STDOUT: 14: inst309 +// CHECK:STDOUT: 15: inst310 // CHECK:STDOUT: inst_block100: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst96 -// CHECK:STDOUT: 2: inst192 -// CHECK:STDOUT: 3: inst193 -// CHECK:STDOUT: 4: inst251 -// CHECK:STDOUT: 5: inst252 -// CHECK:STDOUT: 6: inst253 -// CHECK:STDOUT: 7: inst276 +// CHECK:STDOUT: 0: inst246 +// CHECK:STDOUT: 1: inst247 +// CHECK:STDOUT: 2: inst311 // CHECK:STDOUT: inst_block101: -// CHECK:STDOUT: 0: inst296 +// CHECK:STDOUT: 0: inst269 +// CHECK:STDOUT: 1: inst270 // CHECK:STDOUT: inst_block102: -// CHECK:STDOUT: 0: inst297 +// CHECK:STDOUT: 0: inst167 +// CHECK:STDOUT: 1: inst168 +// CHECK:STDOUT: 2: inst61 // CHECK:STDOUT: inst_block103: -// CHECK:STDOUT: 0: inst303 +// CHECK:STDOUT: 0: inst312 // CHECK:STDOUT: inst_block104: -// CHECK:STDOUT: 0: inst304 +// CHECK:STDOUT: 0: inst313 // CHECK:STDOUT: inst_block105: -// CHECK:STDOUT: 0: inst309 +// CHECK:STDOUT: 0: inst314 // CHECK:STDOUT: inst_block106: -// CHECK:STDOUT: 0: inst310 +// CHECK:STDOUT: 0: inst314 +// CHECK:STDOUT: 1: inst27 +// CHECK:STDOUT: 2: inst30 // CHECK:STDOUT: inst_block107: -// CHECK:STDOUT: 0: inst315 +// CHECK:STDOUT: 0: inst318 // CHECK:STDOUT: inst_block108: -// CHECK:STDOUT: 0: inst316 +// CHECK:STDOUT: 0: inst63 // CHECK:STDOUT: inst_block109: -// CHECK:STDOUT: 0: inst301 -// CHECK:STDOUT: 1: inst302 -// CHECK:STDOUT: 2: inst303 -// CHECK:STDOUT: 3: inst304 -// CHECK:STDOUT: 4: inst305 -// CHECK:STDOUT: 5: inst306 -// CHECK:STDOUT: 6: inst307 -// CHECK:STDOUT: 7: inst308 -// CHECK:STDOUT: 8: inst309 -// CHECK:STDOUT: 9: inst310 -// CHECK:STDOUT: 10: inst311 -// CHECK:STDOUT: 11: inst312 -// CHECK:STDOUT: 12: inst313 -// CHECK:STDOUT: 13: inst314 -// CHECK:STDOUT: 14: inst315 -// CHECK:STDOUT: 15: inst316 -// CHECK:STDOUT: 16: inst317 -// CHECK:STDOUT: 17: inst318 -// CHECK:STDOUT: 18: inst319 +// CHECK:STDOUT: 0: inst328 +// CHECK:STDOUT: 1: inst332 // CHECK:STDOUT: inst_block110: -// CHECK:STDOUT: 0: inst297 -// CHECK:STDOUT: 1: inst252 -// CHECK:STDOUT: 2: inst320 -// CHECK:STDOUT: inst_block111: -// CHECK:STDOUT: 0: inst274 -// CHECK:STDOUT: 1: inst275 -// CHECK:STDOUT: inst_block112: -// CHECK:STDOUT: 0: inst169 -// CHECK:STDOUT: 1: inst170 -// CHECK:STDOUT: 2: inst61 -// CHECK:STDOUT: inst_block113: -// CHECK:STDOUT: 0: inst321 -// CHECK:STDOUT: inst_block114: -// CHECK:STDOUT: 0: inst322 -// CHECK:STDOUT: inst_block115: -// CHECK:STDOUT: 0: inst323 -// CHECK:STDOUT: inst_block116: -// CHECK:STDOUT: 0: inst323 -// CHECK:STDOUT: 1: inst27 -// CHECK:STDOUT: 2: inst30 -// CHECK:STDOUT: inst_block117: -// CHECK:STDOUT: 0: inst327 -// CHECK:STDOUT: inst_block118: -// CHECK:STDOUT: 0: inst63 -// CHECK:STDOUT: inst_block119: -// CHECK:STDOUT: 0: inst337 -// CHECK:STDOUT: 1: inst341 -// CHECK:STDOUT: inst_block120: // CHECK:STDOUT: 0: inst59 // CHECK:STDOUT: 1: inst62 -// CHECK:STDOUT: 2: inst322 -// CHECK:STDOUT: 3: inst327 -// CHECK:STDOUT: 4: inst328 -// CHECK:STDOUT: 5: inst329 -// CHECK:STDOUT: 6: inst333 -// CHECK:STDOUT: inst_block121: +// CHECK:STDOUT: 2: inst313 +// CHECK:STDOUT: 3: inst318 +// CHECK:STDOUT: 4: inst319 +// CHECK:STDOUT: 5: inst320 +// CHECK:STDOUT: 6: inst324 +// CHECK:STDOUT: inst_block111: // CHECK:STDOUT: 0: inst14 // CHECK:STDOUT: 1: inst15 // CHECK:STDOUT: 2: inst53 diff --git a/toolchain/check/testdata/choice/basic.carbon b/toolchain/check/testdata/choice/basic.carbon index f536cfa33e7eb..ad5a48b9730b8 100644 --- a/toolchain/check/testdata/choice/basic.carbon +++ b/toolchain/check/testdata/choice/basic.carbon @@ -165,8 +165,8 @@ let never: Never = {}; // CHECK:STDOUT: %Copy.impl_witness.870: = impl_witness imports.%Copy.impl_witness_table.46a, @UInt.as.Copy.impl(%int_2.ecc) [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.7f7: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_2.ecc) [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.7d8: %UInt.as.Copy.impl.Op.type.7f7 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.ca3: %Copy.type = facet_value %u2, (%Copy.impl_witness.870) [concrete] -// CHECK:STDOUT: %.8ec: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.ca3 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %u2, (%Copy.impl_witness.870) [concrete] +// CHECK:STDOUT: %.8ec: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound.f1f: = bound_method %int_0.9fd, %UInt.as.Copy.impl.Op.7d8 [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.7d8, @UInt.as.Copy.impl.Op(%int_2.ecc) [concrete] // CHECK:STDOUT: %bound_method.f74: = bound_method %int_0.9fd, %UInt.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/class/access_modifers.carbon b/toolchain/check/testdata/class/access_modifers.carbon index 6d966aab7bc82..2867959486a6d 100644 --- a/toolchain/check/testdata/class/access_modifers.carbon +++ b/toolchain/check/testdata/class/access_modifers.carbon @@ -492,8 +492,8 @@ class A { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] diff --git a/toolchain/check/testdata/class/adapter/adapt_copy.carbon b/toolchain/check/testdata/class/adapter/adapt_copy.carbon index 9f9d5f8ac2c31..3d54a5d539864 100644 --- a/toolchain/check/testdata/class/adapter/adapt_copy.carbon +++ b/toolchain/check/testdata/class/adapter/adapt_copy.carbon @@ -204,8 +204,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Copy.impl_witness.61c: = impl_witness imports.%Copy.impl_witness_table.46a, @UInt.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.31e: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.1bb: %UInt.as.Copy.impl.Op.type.31e = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.9a3: %Copy.type = facet_value %u32, (%Copy.impl_witness.61c) [concrete] -// CHECK:STDOUT: %.fbf: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9a3 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %u32, (%Copy.impl_witness.61c) [concrete] +// CHECK:STDOUT: %.fbf: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.1bb, @UInt.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type.2a3, () [concrete] // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.285: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] @@ -885,8 +885,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/base.carbon b/toolchain/check/testdata/class/base.carbon index 7e41046f9b8f6..70dd862862fca 100644 --- a/toolchain/check/testdata/class/base.carbon +++ b/toolchain/check/testdata/class/base.carbon @@ -118,8 +118,8 @@ class Derived { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/base_field.carbon b/toolchain/check/testdata/class/base_field.carbon index 75adb2bef6775..e2492d94b594e 100644 --- a/toolchain/check/testdata/class/base_field.carbon +++ b/toolchain/check/testdata/class/base_field.carbon @@ -69,8 +69,8 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: %Copy.impl_witness.a93: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b57: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.9fb: %ptr.as.Copy.impl.Op.type.b57 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.7d5: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] -// CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.7d5 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] +// CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.9fb, @ptr.as.Copy.impl.Op(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/basic.carbon b/toolchain/check/testdata/class/basic.carbon index a527c0ae5a806..c1fc171ffebc4 100644 --- a/toolchain/check/testdata/class/basic.carbon +++ b/toolchain/check/testdata/class/basic.carbon @@ -61,8 +61,8 @@ fn Run() -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] diff --git a/toolchain/check/testdata/class/complete_in_member_fn.carbon b/toolchain/check/testdata/class/complete_in_member_fn.carbon index 4c85bf47d2b0b..81c627edd7895 100644 --- a/toolchain/check/testdata/class/complete_in_member_fn.carbon +++ b/toolchain/check/testdata/class/complete_in_member_fn.carbon @@ -48,8 +48,8 @@ class C { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/field_access.carbon b/toolchain/check/testdata/class/field_access.carbon index c49dd94c34e8a..0617194b9d53e 100644 --- a/toolchain/check/testdata/class/field_access.carbon +++ b/toolchain/check/testdata/class/field_access.carbon @@ -77,8 +77,8 @@ fn Run() { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.type.4f9: type = fn_type @Int.as.Destroy.impl.Op, @Int.as.Destroy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.796: %Int.as.Destroy.impl.Op.type.4f9 = struct_value () [concrete] diff --git a/toolchain/check/testdata/class/field_access_in_value.carbon b/toolchain/check/testdata/class/field_access_in_value.carbon index 48b2c548eeaa2..6a06bf589a3f5 100644 --- a/toolchain/check/testdata/class/field_access_in_value.carbon +++ b/toolchain/check/testdata/class/field_access_in_value.carbon @@ -78,8 +78,8 @@ fn Test() { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.type.4f9: type = fn_type @Int.as.Destroy.impl.Op, @Int.as.Destroy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.796: %Int.as.Destroy.impl.Op.type.4f9 = struct_value () [concrete] diff --git a/toolchain/check/testdata/class/forward_declared.carbon b/toolchain/check/testdata/class/forward_declared.carbon index 0c2add9f902e4..f0955b2a49c26 100644 --- a/toolchain/check/testdata/class/forward_declared.carbon +++ b/toolchain/check/testdata/class/forward_declared.carbon @@ -32,8 +32,8 @@ fn F(p: Class*) -> Class* { return p; } // CHECK:STDOUT: %Copy.impl_witness.929: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%Class) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.039: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Class) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.275: %ptr.as.Copy.impl.Op.type.039 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.a65: %Copy.type = facet_value %ptr.e71, (%Copy.impl_witness.929) [concrete] -// CHECK:STDOUT: %.93e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.a65 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e71, (%Copy.impl_witness.929) [concrete] +// CHECK:STDOUT: %.93e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.275, @ptr.as.Copy.impl.Op(%Class) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/adapt.carbon b/toolchain/check/testdata/class/generic/adapt.carbon index 03166a2aea2e9..7f96d6bfc5fbc 100644 --- a/toolchain/check/testdata/class/generic/adapt.carbon +++ b/toolchain/check/testdata/class/generic/adapt.carbon @@ -174,8 +174,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -410,8 +410,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.d0b: = impl_witness imports.%Copy.impl_witness_table.608, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.edd: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.99d: %Int.as.Copy.impl.Op.type.edd = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.574: %Copy.type = facet_value %i32, (%Copy.impl_witness.d0b) [concrete] -// CHECK:STDOUT: %.0ec: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.574 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.d0b) [concrete] +// CHECK:STDOUT: %.0ec: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.99d, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1119,8 +1119,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1304,8 +1304,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] diff --git a/toolchain/check/testdata/class/generic/base_is_generic.carbon b/toolchain/check/testdata/class/generic/base_is_generic.carbon index ff557fa905d18..1ad5cd1421af5 100644 --- a/toolchain/check/testdata/class/generic/base_is_generic.carbon +++ b/toolchain/check/testdata/class/generic/base_is_generic.carbon @@ -148,8 +148,8 @@ fn H() { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -423,8 +423,8 @@ fn H() { // CHECK:STDOUT: %Copy.impl_witness.d0b: = impl_witness imports.%Copy.impl_witness_table.608, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.edd: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.99d: %Int.as.Copy.impl.Op.type.edd = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.574: %Copy.type = facet_value %i32, (%Copy.impl_witness.d0b) [concrete] -// CHECK:STDOUT: %.0ec: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.574 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.d0b) [concrete] +// CHECK:STDOUT: %.0ec: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.99d, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/basic.carbon b/toolchain/check/testdata/class/generic/basic.carbon index 4ef687c71ab14..9580da8ed8453 100644 --- a/toolchain/check/testdata/class/generic/basic.carbon +++ b/toolchain/check/testdata/class/generic/basic.carbon @@ -64,17 +64,16 @@ class Declaration(T:! type); // CHECK:STDOUT: %require_complete.3e3: = require_complete_type %Class [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021: %Copy.type = facet_value %T.as_type, (%Copy.lookup_impl_witness.e15) [symbolic] -// CHECK:STDOUT: %.c50: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021 [symbolic] -// CHECK:STDOUT: %impl.elem0.792: %.c50 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547: = specific_impl_function %impl.elem0.792, @Copy.Op(%Copy.facet.021) [symbolic] +// CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168: %.427 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.046: = lookup_impl_witness %ptr.f3f, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.c30: %Copy.type = facet_value %ptr.f3f, (%Copy.lookup_impl_witness.046) [symbolic] -// CHECK:STDOUT: %.10a: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c30 [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.f3f, (%Copy.lookup_impl_witness.046) [symbolic] +// CHECK:STDOUT: %.10a: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] // CHECK:STDOUT: %impl.elem0.823: %.10a = impl_witness_access %Copy.lookup_impl_witness.046, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.831: = specific_impl_function %impl.elem0.823, @Copy.Op(%Copy.facet.c30) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.831: = specific_impl_function %impl.elem0.823, @Copy.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: %Declaration.type: type = generic_class_type @Declaration [concrete] // CHECK:STDOUT: %Declaration.generic: %Declaration.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -234,7 +233,7 @@ class Declaration(T:! type); // CHECK:STDOUT: %require_complete.loc7: = require_complete_type %Class [symbolic = %require_complete.loc7 (constants.%require_complete.3e3)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc6_38.1 [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc6_38.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.046)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc6_38.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.c30)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc6_38.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] // CHECK:STDOUT: %.loc7_12.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc7_12.2 (constants.%.10a)] // CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.GetAddr.%.loc7_12.2 (%.10a) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.823)] // CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.831)] @@ -248,7 +247,7 @@ class Declaration(T:! type); // CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc6_38.1 (%ptr.f3f) = addr_of %.loc7_17.2 // CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.GetAddr.%.loc7_12.2 (%.10a) = impl_witness_access constants.%Copy.lookup_impl_witness.046, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.823)] // CHECK:STDOUT: %bound_method.loc7_12.1: = bound_method %addr, %impl.elem0.loc7_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_12.1: = specific_impl_function %impl.elem0.loc7_12.1, @Copy.Op(constants.%Copy.facet.c30) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.831)] +// CHECK:STDOUT: %specific_impl_fn.loc7_12.1: = specific_impl_function %impl.elem0.loc7_12.1, @Copy.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.831)] // CHECK:STDOUT: %bound_method.loc7_12.2: = bound_method %addr, %specific_impl_fn.loc7_12.1 // CHECK:STDOUT: %.loc7_12.1: init @Class.GetAddr.%ptr.loc6_38.1 (%ptr.f3f) = call %bound_method.loc7_12.2(%addr) // CHECK:STDOUT: return %.loc7_12.1 to %return @@ -267,10 +266,9 @@ class Declaration(T:! type); // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc10_32.1 [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %require_complete.loc11: = require_complete_type %T.as_type.loc10_32.1 [symbolic = %require_complete.loc11 (constants.%require_complete.07c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc10_32.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc11_16.4: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc11_16.4 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc11_16.2: @Class.GetValue.%.loc11_16.4 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc11_16.2: = specific_impl_function %impl.elem0.loc11_16.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc11_16.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T [symbolic = %.loc11_16.4 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc11_16.2: @Class.GetValue.%.loc11_16.4 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc11_16.2: = specific_impl_function %impl.elem0.loc11_16.2, @Copy.Op(%T) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Class.GetValue.%Class (%Class)) -> %return.param: @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -278,9 +276,9 @@ class Declaration(T:! type); // CHECK:STDOUT: %k.ref: @Class.GetValue.%Class.elem (%Class.elem) = name_ref k, @Class.%.loc14_8 [concrete = @Class.%.loc14_8] // CHECK:STDOUT: %.loc11_16.1: ref @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc11_16.2: @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = bind_value %.loc11_16.1 -// CHECK:STDOUT: %impl.elem0.loc11_16.1: @Class.GetValue.%.loc11_16.4 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc11_16.1: @Class.GetValue.%.loc11_16.4 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc11_16.1: = bound_method %.loc11_16.2, %impl.elem0.loc11_16.1 -// CHECK:STDOUT: %specific_impl_fn.loc11_16.1: = specific_impl_function %impl.elem0.loc11_16.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc11_16.1: = specific_impl_function %impl.elem0.loc11_16.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc11_16.2: = bound_method %.loc11_16.2, %specific_impl_fn.loc11_16.1 // CHECK:STDOUT: %.loc10_29: ref @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = splice_block %return {} // CHECK:STDOUT: %.loc11_16.3: init @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = call %bound_method.loc11_16.2(%.loc11_16.2) to %.loc10_29 diff --git a/toolchain/check/testdata/class/generic/field.carbon b/toolchain/check/testdata/class/generic/field.carbon index d3e35e038e73d..d4525b40f36c1 100644 --- a/toolchain/check/testdata/class/generic/field.carbon +++ b/toolchain/check/testdata/class/generic/field.carbon @@ -75,16 +75,15 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %pattern_type.322: type = pattern_type %Copy.type [concrete] // CHECK:STDOUT: %require_complete.07c867.1: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15cec.1: = lookup_impl_witness %T.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021101.1: %Copy.type = facet_value %T.as_type, (%Copy.lookup_impl_witness.e15cec.1) [symbolic] -// CHECK:STDOUT: %.c500ab.1: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021101.1 [symbolic] -// CHECK:STDOUT: %impl.elem0.792e99.1: %.c500ab.1 = impl_witness_access %Copy.lookup_impl_witness.e15cec.1, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547931.1: = specific_impl_function %impl.elem0.792e99.1, @Copy.Op(%Copy.facet.021101.1) [symbolic] +// CHECK:STDOUT: %.427cc3.1: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168dc4.1: %.427cc3.1 = impl_witness_access %Copy.lookup_impl_witness.e15cec.1, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2cedd6.1: = specific_impl_function %impl.elem0.168dc4.1, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: %pattern_type.965801.2: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Class.a5ccb5.1: type = class_type @Class, @Class(%T.as_type) [symbolic] // CHECK:STDOUT: %pattern_type.0a354e.1: type = pattern_type %Class.a5ccb5.1 [symbolic] @@ -107,10 +106,9 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %complete_type.1d8a5e.2: = complete_type_witness %struct_type.x.4196c2.2 [symbolic] // CHECK:STDOUT: %require_complete.92d706.2: = require_complete_type %Class.a5ccb5.2 [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15cec.2: = lookup_impl_witness %U.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021101.2: %Copy.type = facet_value %U.as_type.870, (%Copy.lookup_impl_witness.e15cec.2) [symbolic] -// CHECK:STDOUT: %.c500ab.2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021101.2 [symbolic] -// CHECK:STDOUT: %impl.elem0.792e99.2: %.c500ab.2 = impl_witness_access %Copy.lookup_impl_witness.e15cec.2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547931.2: = specific_impl_function %impl.elem0.792e99.2, @Copy.Op(%Copy.facet.021101.2) [symbolic] +// CHECK:STDOUT: %.427cc3.2: type = fn_type_with_self_type %Copy.Op.type, %U.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168dc4.2: %.427cc3.2 = impl_witness_access %Copy.lookup_impl_witness.e15cec.2, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2cedd6.2: = specific_impl_function %impl.elem0.168dc4.2, @Copy.Op(%U.be8) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -305,10 +303,9 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %require_complete.loc13_22: = require_complete_type %Class.loc13_31.1 [symbolic = %require_complete.loc13_22 (constants.%require_complete.92d706.1)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc13_31.1, %T.as_type.loc13_31.1 [symbolic = %Class.elem (constants.%Class.elem.14abad.1)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc13_6.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15cec.1)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc13_31.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021101.1)] -// CHECK:STDOUT: %.loc14_11.4: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc14_11.4 (constants.%.c500ab.1)] -// CHECK:STDOUT: %impl.elem0.loc14_11.2: @G.%.loc14_11.4 (%.c500ab.1) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.792e99.1)] -// CHECK:STDOUT: %specific_impl_fn.loc14_11.2: = specific_impl_function %impl.elem0.loc14_11.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.547931.1)] +// CHECK:STDOUT: %.loc14_11.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc13_6.1 [symbolic = %.loc14_11.4 (constants.%.427cc3.1)] +// CHECK:STDOUT: %impl.elem0.loc14_11.2: @G.%.loc14_11.4 (%.427cc3.1) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.168dc4.1)] +// CHECK:STDOUT: %specific_impl_fn.loc14_11.2: = specific_impl_function %impl.elem0.loc14_11.2, @Copy.Op(%T.loc13_6.1) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.2cedd6.1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%c.param: @G.%Class.loc13_31.1 (%Class.a5ccb5.1)) -> %return.param: @G.%T.as_type.loc13_31.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -316,9 +313,9 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %x.ref: @G.%Class.elem (%Class.elem.14abad.1) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] // CHECK:STDOUT: %.loc14_11.1: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = class_element_access %c.ref, element0 // CHECK:STDOUT: %.loc14_11.2: @G.%T.as_type.loc13_31.1 (%T.as_type) = bind_value %.loc14_11.1 -// CHECK:STDOUT: %impl.elem0.loc14_11.1: @G.%.loc14_11.4 (%.c500ab.1) = impl_witness_access constants.%Copy.lookup_impl_witness.e15cec.1, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.792e99.1)] +// CHECK:STDOUT: %impl.elem0.loc14_11.1: @G.%.loc14_11.4 (%.427cc3.1) = impl_witness_access constants.%Copy.lookup_impl_witness.e15cec.1, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.168dc4.1)] // CHECK:STDOUT: %bound_method.loc14_11.1: = bound_method %.loc14_11.2, %impl.elem0.loc14_11.1 -// CHECK:STDOUT: %specific_impl_fn.loc14_11.1: = specific_impl_function %impl.elem0.loc14_11.1, @Copy.Op(constants.%Copy.facet.021101.1) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.547931.1)] +// CHECK:STDOUT: %specific_impl_fn.loc14_11.1: = specific_impl_function %impl.elem0.loc14_11.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.2cedd6.1)] // CHECK:STDOUT: %bound_method.loc14_11.2: = bound_method %.loc14_11.2, %specific_impl_fn.loc14_11.1 // CHECK:STDOUT: %.loc13_34: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = splice_block %return {} // CHECK:STDOUT: %.loc14_11.3: init @G.%T.as_type.loc13_31.1 (%T.as_type) = call %bound_method.loc14_11.2(%.loc14_11.2) to %.loc13_34 @@ -338,10 +335,9 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %require_complete.loc17_22: = require_complete_type %Class.loc17_31.1 [symbolic = %require_complete.loc17_22 (constants.%require_complete.92d706.2)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc17_31.1, %U.as_type.loc17_31.1 [symbolic = %Class.elem (constants.%Class.elem.14abad.2)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc17_6.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15cec.2)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %U.as_type.loc17_31.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021101.2)] -// CHECK:STDOUT: %.loc18_11.4: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc18_11.4 (constants.%.c500ab.2)] -// CHECK:STDOUT: %impl.elem0.loc18_11.2: @H.%.loc18_11.4 (%.c500ab.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.792e99.2)] -// CHECK:STDOUT: %specific_impl_fn.loc18_11.2: = specific_impl_function %impl.elem0.loc18_11.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.547931.2)] +// CHECK:STDOUT: %.loc18_11.4: type = fn_type_with_self_type constants.%Copy.Op.type, %U.loc17_6.1 [symbolic = %.loc18_11.4 (constants.%.427cc3.2)] +// CHECK:STDOUT: %impl.elem0.loc18_11.2: @H.%.loc18_11.4 (%.427cc3.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.168dc4.2)] +// CHECK:STDOUT: %specific_impl_fn.loc18_11.2: = specific_impl_function %impl.elem0.loc18_11.2, @Copy.Op(%U.loc17_6.1) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.2cedd6.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%c.param: @H.%Class.loc17_31.1 (%Class.a5ccb5.2)) -> %return.param: @H.%U.as_type.loc17_31.1 (%U.as_type.870) { // CHECK:STDOUT: !entry: @@ -349,9 +345,9 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %x.ref: @H.%Class.elem (%Class.elem.14abad.2) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] // CHECK:STDOUT: %.loc18_11.1: ref @H.%U.as_type.loc17_31.1 (%U.as_type.870) = class_element_access %c.ref, element0 // CHECK:STDOUT: %.loc18_11.2: @H.%U.as_type.loc17_31.1 (%U.as_type.870) = bind_value %.loc18_11.1 -// CHECK:STDOUT: %impl.elem0.loc18_11.1: @H.%.loc18_11.4 (%.c500ab.2) = impl_witness_access constants.%Copy.lookup_impl_witness.e15cec.2, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.792e99.2)] +// CHECK:STDOUT: %impl.elem0.loc18_11.1: @H.%.loc18_11.4 (%.427cc3.2) = impl_witness_access constants.%Copy.lookup_impl_witness.e15cec.2, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.168dc4.2)] // CHECK:STDOUT: %bound_method.loc18_11.1: = bound_method %.loc18_11.2, %impl.elem0.loc18_11.1 -// CHECK:STDOUT: %specific_impl_fn.loc18_11.1: = specific_impl_function %impl.elem0.loc18_11.1, @Copy.Op(constants.%Copy.facet.021101.2) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.547931.2)] +// CHECK:STDOUT: %specific_impl_fn.loc18_11.1: = specific_impl_function %impl.elem0.loc18_11.1, @Copy.Op(constants.%U.be8) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.2cedd6.2)] // CHECK:STDOUT: %bound_method.loc18_11.2: = bound_method %.loc18_11.2, %specific_impl_fn.loc18_11.1 // CHECK:STDOUT: %.loc17_34: ref @H.%U.as_type.loc17_31.1 (%U.as_type.870) = splice_block %return {} // CHECK:STDOUT: %.loc18_11.3: init @H.%U.as_type.loc17_31.1 (%U.as_type.870) = call %bound_method.loc18_11.2(%.loc18_11.2) to %.loc17_34 diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index 3730a4d98ac8c..fb0229fd3aab1 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -686,8 +686,8 @@ class Class(U:! type) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/init.carbon b/toolchain/check/testdata/class/generic/init.carbon index c72b1c4d3d85a..a27cf9bf227e7 100644 --- a/toolchain/check/testdata/class/generic/init.carbon +++ b/toolchain/check/testdata/class/generic/init.carbon @@ -71,10 +71,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %pattern_type.0a3: type = pattern_type %Class.a5c [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021: %Copy.type = facet_value %T.as_type, (%Copy.lookup_impl_witness.e15) [symbolic] -// CHECK:STDOUT: %.c50: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021 [symbolic] -// CHECK:STDOUT: %impl.elem0.792: %.c50 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547: = specific_impl_function %impl.elem0.792, @Copy.Op(%Copy.facet.021) [symbolic] +// CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168: %.427 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: %Destroy.impl_witness.a5d: = impl_witness @Class.%Destroy.impl_witness_table, @Class.as.Destroy.impl(%T.as_type) [symbolic] // CHECK:STDOUT: %Class.as.Destroy.impl.Op.type.f04: type = fn_type @Class.as.Destroy.impl.Op, @Class.as.Destroy.impl(%T.as_type) [symbolic] // CHECK:STDOUT: %Class.as.Destroy.impl.Op.d2f: %Class.as.Destroy.impl.Op.type.f04 = struct_value () [symbolic] @@ -100,8 +99,8 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Class.as.Destroy.impl.Op.type.637: type = fn_type @Class.as.Destroy.impl.Op, @Class.as.Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Class.as.Destroy.impl.Op.5bc: %Class.as.Destroy.impl.Op.type.637 = struct_value () [concrete] @@ -181,10 +180,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %pattern_type.loc10: type = pattern_type %Class.loc10_17.2 [symbolic = %pattern_type.loc10 (constants.%pattern_type.0a3)] // CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type)} [symbolic = %struct_type.k (constants.%struct_type.k.202)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc9_26.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc9_44.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc10_27.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc10_27.2 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc10_27.2: @InitFromStructGeneric.%.loc10_27.2 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc10_27.2: = specific_impl_function %impl.elem0.loc10_27.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc10_27.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc9_26.1 [symbolic = %.loc10_27.2 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc10_27.2: @InitFromStructGeneric.%.loc10_27.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc10_27.2: = specific_impl_function %impl.elem0.loc10_27.2, @Copy.Op(%T.loc9_26.1) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc10_17.2, %T.as_type.loc9_44.1 [symbolic = %Class.elem (constants.%Class.elem.14a)] // CHECK:STDOUT: %Destroy.impl_witness: = impl_witness @Class.%Destroy.impl_witness_table, @Class.as.Destroy.impl(%T.as_type.loc9_44.1) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.a5d)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc10_17.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.90a)] @@ -204,9 +202,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.a5c) = var %v.var_patt // CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %.loc10_28.1: @InitFromStructGeneric.%struct_type.k (%struct_type.k.202) = struct_literal (%x.ref) -// CHECK:STDOUT: %impl.elem0.loc10_27.1: @InitFromStructGeneric.%.loc10_27.2 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc10_27.1: @InitFromStructGeneric.%.loc10_27.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc10_27.1: = bound_method %x.ref, %impl.elem0.loc10_27.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_27.1: = specific_impl_function %impl.elem0.loc10_27.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc10_27.1: = specific_impl_function %impl.elem0.loc10_27.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc10_27.2: = bound_method %x.ref, %specific_impl_fn.loc10_27.1 // CHECK:STDOUT: %.loc10_28.2: ref @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = class_element_access %v.var, element0 // CHECK:STDOUT: %.loc10_27.1: init @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = call %bound_method.loc10_27.2(%x.ref) to %.loc10_28.2 @@ -226,9 +224,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%Class.elem (%Class.elem.14a) = name_ref k, @Class.%.loc5 [concrete = @Class.%.loc5] // CHECK:STDOUT: %.loc11_11.1: ref @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = class_element_access %v.ref, element0 // CHECK:STDOUT: %.loc11_11.2: @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = bind_value %.loc11_11.1 -// CHECK:STDOUT: %impl.elem0.loc11: @InitFromStructGeneric.%.loc10_27.2 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc11: @InitFromStructGeneric.%.loc10_27.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc11_11.1: = bound_method %.loc11_11.2, %impl.elem0.loc11 -// CHECK:STDOUT: %specific_impl_fn.loc11: = specific_impl_function %impl.elem0.loc11, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc11: = specific_impl_function %impl.elem0.loc11, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc11_11.2: = bound_method %.loc11_11.2, %specific_impl_fn.loc11 // CHECK:STDOUT: %.loc9_47: ref @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = splice_block %return {} // CHECK:STDOUT: %.loc11_11.3: init @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = call %bound_method.loc11_11.2(%.loc11_11.2) to %.loc9_47 @@ -309,10 +307,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %require_complete.d89: = require_complete_type %Adapt.c71 [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021: %Copy.type = facet_value %T.as_type, (%Copy.lookup_impl_witness.e15) [symbolic] -// CHECK:STDOUT: %.c50: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021 [symbolic] -// CHECK:STDOUT: %impl.elem0.792: %.c50 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547: = specific_impl_function %impl.elem0.792, @Copy.Op(%Copy.facet.021) [symbolic] +// CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168: %.427 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] @@ -327,8 +324,8 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -403,10 +400,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Adapt.loc10_23.2: type = class_type @Adapt, @Adapt(%T.as_type.loc9_45.1) [symbolic = %Adapt.loc10_23.2 (constants.%Adapt.c71)] // CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Adapt.loc10_23.2 [symbolic = %require_complete.loc10 (constants.%require_complete.d89)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc9_27.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc9_45.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc10_26.4: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc10_26.4 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc10_26.2: @InitFromAdaptedGeneric.%.loc10_26.4 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_26.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc10_26.2: = specific_impl_function %impl.elem0.loc10_26.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_26.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc10_26.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc9_27.1 [symbolic = %.loc10_26.4 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc10_26.2: @InitFromAdaptedGeneric.%.loc10_26.4 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_26.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc10_26.2: = specific_impl_function %impl.elem0.loc10_26.2, @Copy.Op(%T.loc9_27.1) [symbolic = %specific_impl_fn.loc10_26.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type)) -> %return.param: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -423,9 +419,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %.loc10_29: type = converted %T.ref.loc10_29, %T.as_type.loc10_29 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_26.1: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = as_compatible %.loc10_13.2 // CHECK:STDOUT: %.loc10_26.2: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = converted %.loc10_13.2, %.loc10_26.1 -// CHECK:STDOUT: %impl.elem0.loc10_26.1: @InitFromAdaptedGeneric.%.loc10_26.4 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc10_26.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc10_26.1: @InitFromAdaptedGeneric.%.loc10_26.4 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc10_26.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc10_26.1: = bound_method %.loc10_26.2, %impl.elem0.loc10_26.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_26.1: = specific_impl_function %impl.elem0.loc10_26.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc10_26.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc10_26.1: = specific_impl_function %impl.elem0.loc10_26.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc10_26.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc10_26.2: = bound_method %.loc10_26.2, %specific_impl_fn.loc10_26.1 // CHECK:STDOUT: %.loc9_48: ref @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = splice_block %return {} // CHECK:STDOUT: %.loc10_26.3: init @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = call %bound_method.loc10_26.2(%.loc10_26.2) to %.loc9_48 diff --git a/toolchain/check/testdata/class/generic/member_access.carbon b/toolchain/check/testdata/class/generic/member_access.carbon index 06c72764be388..5843f21135cf5 100644 --- a/toolchain/check/testdata/class/generic/member_access.carbon +++ b/toolchain/check/testdata/class/generic/member_access.carbon @@ -88,10 +88,9 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %require_complete.3e3: = require_complete_type %Class.2c5 [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021: %Copy.type = facet_value %T.as_type, (%Copy.lookup_impl_witness.e15) [symbolic] -// CHECK:STDOUT: %.c50: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021 [symbolic] -// CHECK:STDOUT: %impl.elem0.792: %.c50 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547: = specific_impl_function %impl.elem0.792, @Copy.Op(%Copy.facet.021) [symbolic] +// CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168: %.427 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.31f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.8b3) [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.8a8: %ptr.as.Copy.impl.Op.type.31f = struct_value () [symbolic] @@ -188,10 +187,9 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc7_27.1 [symbolic = %Class.elem (constants.%Class.elem.3a8)] // CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc7_27.1 [symbolic = %require_complete.loc9 (constants.%require_complete.07c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc7_27.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc9_16.4: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc9_16.4 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc9_16.2: @Class.Get.%.loc9_16.4 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_16.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc9_16.2: = specific_impl_function %impl.elem0.loc9_16.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc9_16.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc9_16.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T [symbolic = %.loc9_16.4 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc9_16.2: @Class.Get.%.loc9_16.4 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_16.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc9_16.2: = specific_impl_function %impl.elem0.loc9_16.2, @Copy.Op(%T) [symbolic = %specific_impl_fn.loc9_16.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Class.Get.%Class (%Class.2c5)) -> %return.param: @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -199,9 +197,9 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %x.ref: @Class.Get.%Class.elem (%Class.elem.3a8) = name_ref x, @Class.%.loc5_8 [concrete = @Class.%.loc5_8] // CHECK:STDOUT: %.loc9_16.1: ref @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc9_16.2: @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) = bind_value %.loc9_16.1 -// CHECK:STDOUT: %impl.elem0.loc9_16.1: @Class.Get.%.loc9_16.4 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc9_16.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc9_16.1: @Class.Get.%.loc9_16.4 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc9_16.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc9_16.1: = bound_method %.loc9_16.2, %impl.elem0.loc9_16.1 -// CHECK:STDOUT: %specific_impl_fn.loc9_16.1: = specific_impl_function %impl.elem0.loc9_16.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc9_16.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc9_16.1: = specific_impl_function %impl.elem0.loc9_16.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc9_16.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc9_16.2: = bound_method %.loc9_16.2, %specific_impl_fn.loc9_16.1 // CHECK:STDOUT: // CHECK:STDOUT: %.loc9_16.3: init @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) = call %bound_method.loc9_16.2(%.loc9_16.2) to %.loc7_24 @@ -370,7 +368,6 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Class.elem => constants.%Class.elem.6e5 // CHECK:STDOUT: %require_complete.loc9 => constants.%complete_type.f8a // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.a32 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.c49 // CHECK:STDOUT: %.loc9_16.4 => constants.%.7fa // CHECK:STDOUT: %impl.elem0.loc9_16.2 => constants.%Int.as.Copy.impl.Op.f59 // CHECK:STDOUT: %specific_impl_fn.loc9_16.2 => constants.%Int.as.Copy.impl.Op.specific_fn diff --git a/toolchain/check/testdata/class/generic/member_inline.carbon b/toolchain/check/testdata/class/generic/member_inline.carbon index 336a982983799..f4d655bd17bbf 100644 --- a/toolchain/check/testdata/class/generic/member_inline.carbon +++ b/toolchain/check/testdata/class/generic/member_inline.carbon @@ -74,10 +74,9 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021: %Copy.type = facet_value %T.as_type, (%Copy.lookup_impl_witness.e15) [symbolic] -// CHECK:STDOUT: %.c50: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021 [symbolic] -// CHECK:STDOUT: %impl.elem0.792: %.c50 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547: = specific_impl_function %impl.elem0.792, @Copy.Op(%Copy.facet.021) [symbolic] +// CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168: %.427 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: %require_complete.3e3: = require_complete_type %Class [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -215,17 +214,16 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_11.1 [symbolic = %require_complete (constants.%require_complete.07c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc6_11.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc7_12.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc7_12.2 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.F.%.loc7_12.2 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc7_12.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T [symbolic = %.loc7_12.2 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.F.%.loc7_12.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.Op(%T) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%n.param: @Class.F.%T.as_type.loc6_11.1 (%T.as_type)) -> %return.param: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = name_ref n, %n -// CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.F.%.loc7_12.2 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.F.%.loc7_12.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc7_12.1: = bound_method %n.ref, %impl.elem0.loc7_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_12.1: = specific_impl_function %impl.elem0.loc7_12.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc7_12.1: = specific_impl_function %impl.elem0.loc7_12.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc7_12.2: = bound_method %n.ref, %specific_impl_fn.loc7_12.1 // CHECK:STDOUT: %.loc6_14: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = splice_block %return {} // CHECK:STDOUT: %.loc7_12.1: init @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = call %bound_method.loc7_12.2(%n.ref) to %.loc6_14 @@ -245,10 +243,9 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc10_25.1 [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %require_complete.loc11: = require_complete_type %T.as_type.loc10_25.1 [symbolic = %require_complete.loc11 (constants.%require_complete.07c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc10_25.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc11_16.4: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc11_16.4 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc11_16.2: @Class.G.%.loc11_16.4 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc11_16.2: = specific_impl_function %impl.elem0.loc11_16.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc11_16.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T [symbolic = %.loc11_16.4 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc11_16.2: @Class.G.%.loc11_16.4 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc11_16.2: = specific_impl_function %impl.elem0.loc11_16.2, @Copy.Op(%T) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Class.G.%Class (%Class)) -> %return.param: @Class.G.%T.as_type.loc10_25.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -256,9 +253,9 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %n.ref: @Class.G.%Class.elem (%Class.elem) = name_ref n, @Class.%.loc14_8 [concrete = @Class.%.loc14_8] // CHECK:STDOUT: %.loc11_16.1: ref @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc11_16.2: @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = bind_value %.loc11_16.1 -// CHECK:STDOUT: %impl.elem0.loc11_16.1: @Class.G.%.loc11_16.4 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc11_16.1: @Class.G.%.loc11_16.4 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc11_16.1: = bound_method %.loc11_16.2, %impl.elem0.loc11_16.1 -// CHECK:STDOUT: %specific_impl_fn.loc11_16.1: = specific_impl_function %impl.elem0.loc11_16.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc11_16.1: = specific_impl_function %impl.elem0.loc11_16.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc11_16.2: = bound_method %.loc11_16.2, %specific_impl_fn.loc11_16.1 // CHECK:STDOUT: %.loc10_22: ref @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = splice_block %return {} // CHECK:STDOUT: %.loc11_16.3: init @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = call %bound_method.loc11_16.2(%.loc11_16.2) to %.loc10_22 diff --git a/toolchain/check/testdata/class/generic/member_lookup.carbon b/toolchain/check/testdata/class/generic/member_lookup.carbon index 51ff07f10c63a..094d1742ef654 100644 --- a/toolchain/check/testdata/class/generic/member_lookup.carbon +++ b/toolchain/check/testdata/class/generic/member_lookup.carbon @@ -92,10 +92,9 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %Base.elem.58f: type = unbound_element_type %Base.e03, %T.as_type [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021: %Copy.type = facet_value %T.as_type, (%Copy.lookup_impl_witness.e15) [symbolic] -// CHECK:STDOUT: %.c50: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021 [symbolic] -// CHECK:STDOUT: %impl.elem0.792: %.c50 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547: = specific_impl_function %impl.elem0.792, @Copy.Op(%Copy.facet.021) [symbolic] +// CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168: %.427 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -108,10 +107,9 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived.loc13_45.1, %T.as_type.loc13_45.1 [symbolic = %Derived.elem (constants.%Derived.elem.1c7)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc13_18.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc13_45.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc15_11.4: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc15_11.4 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc15_11.2: @AccessDerived.%.loc15_11.4 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_11.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc15_11.2: = specific_impl_function %impl.elem0.loc15_11.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc15_11.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc15_11.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc13_18.1 [symbolic = %.loc15_11.4 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc15_11.2: @AccessDerived.%.loc15_11.4 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_11.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc15_11.2: = specific_impl_function %impl.elem0.loc15_11.2, @Copy.Op(%T.loc13_18.1) [symbolic = %specific_impl_fn.loc15_11.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @AccessDerived.%Derived.loc13_45.1 (%Derived.3ba)) -> %return.param: @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -119,9 +117,9 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %d.ref: @AccessDerived.%Derived.elem (%Derived.elem.1c7) = name_ref d, @Derived.%.loc10 [concrete = @Derived.%.loc10] // CHECK:STDOUT: %.loc15_11.1: ref @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) = class_element_access %x.ref, element1 // CHECK:STDOUT: %.loc15_11.2: @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) = bind_value %.loc15_11.1 -// CHECK:STDOUT: %impl.elem0.loc15_11.1: @AccessDerived.%.loc15_11.4 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc15_11.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc15_11.1: @AccessDerived.%.loc15_11.4 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc15_11.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc15_11.1: = bound_method %.loc15_11.2, %impl.elem0.loc15_11.1 -// CHECK:STDOUT: %specific_impl_fn.loc15_11.1: = specific_impl_function %impl.elem0.loc15_11.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc15_11.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc15_11.1: = specific_impl_function %impl.elem0.loc15_11.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc15_11.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc15_11.2: = bound_method %.loc15_11.2, %specific_impl_fn.loc15_11.1 // CHECK:STDOUT: // CHECK:STDOUT: %.loc15_11.3: init @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) = call %bound_method.loc15_11.2(%.loc15_11.2) to %.loc13_48 @@ -139,10 +137,9 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.as_type.loc19_42.1 [symbolic = %Base.elem (constants.%Base.elem.58f)] // CHECK:STDOUT: %require_complete.loc21_13: = require_complete_type %T.as_type.loc19_42.1 [symbolic = %require_complete.loc21_13 (constants.%require_complete.07c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc19_15.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc19_42.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc21_11.6: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc21_11.6 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc21_11.2: @AccessBase.%.loc21_11.6 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc21_11.2: = specific_impl_function %impl.elem0.loc21_11.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc21_11.6: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc19_15.1 [symbolic = %.loc21_11.6 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc21_11.2: @AccessBase.%.loc21_11.6 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc21_11.2: = specific_impl_function %impl.elem0.loc21_11.2, @Copy.Op(%T.loc19_15.1) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @AccessBase.%Derived.loc19_42.1 (%Derived.3ba)) -> %return.param: @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -152,9 +149,9 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %.loc21_11.2: ref @AccessBase.%Base (%Base.e03) = converted %x.ref, %.loc21_11.1 // CHECK:STDOUT: %.loc21_11.3: ref @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) = class_element_access %.loc21_11.2, element0 // CHECK:STDOUT: %.loc21_11.4: @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) = bind_value %.loc21_11.3 -// CHECK:STDOUT: %impl.elem0.loc21_11.1: @AccessBase.%.loc21_11.6 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc21_11.1: @AccessBase.%.loc21_11.6 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc21_11.1: = bound_method %.loc21_11.4, %impl.elem0.loc21_11.1 -// CHECK:STDOUT: %specific_impl_fn.loc21_11.1: = specific_impl_function %impl.elem0.loc21_11.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc21_11.1: = specific_impl_function %impl.elem0.loc21_11.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc21_11.2: = bound_method %.loc21_11.4, %specific_impl_fn.loc21_11.1 // CHECK:STDOUT: // CHECK:STDOUT: %.loc21_11.5: init @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) = call %bound_method.loc21_11.2(%.loc21_11.4) to %.loc19_45 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 1bf57c1239682..fa3b7cb5392bf 100644 --- a/toolchain/check/testdata/class/generic/member_out_of_line.carbon +++ b/toolchain/check/testdata/class/generic/member_out_of_line.carbon @@ -141,10 +141,9 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021: %Copy.type = facet_value %T.as_type, (%Copy.lookup_impl_witness.e15) [symbolic] -// CHECK:STDOUT: %.c50: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021 [symbolic] -// CHECK:STDOUT: %impl.elem0.792: %.c50 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547: = specific_impl_function %impl.elem0.792, @Copy.Op(%Copy.facet.021) [symbolic] +// CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168: %.427 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: %require_complete.3e3: = require_complete_type %Class [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -331,17 +330,16 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_11.1 [symbolic = %require_complete (constants.%require_complete.07c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc6, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc6_11.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc12_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc12_10.2 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc12_10.2: @Class.F.%.loc12_10.2 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_10.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc12_10.2: = specific_impl_function %impl.elem0.loc12_10.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc12_10.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc12_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc6 [symbolic = %.loc12_10.2 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc12_10.2: @Class.F.%.loc12_10.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_10.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc12_10.2: = specific_impl_function %impl.elem0.loc12_10.2, @Copy.Op(%T.loc6) [symbolic = %specific_impl_fn.loc12_10.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%n.param.loc11: @Class.F.%T.as_type.loc6_11.1 (%T.as_type)) -> %return.param.loc11: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = name_ref n, %n.loc11 -// CHECK:STDOUT: %impl.elem0.loc12_10.1: @Class.F.%.loc12_10.2 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc12_10.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc12_10.1: @Class.F.%.loc12_10.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc12_10.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc12_10.1: = bound_method %n.ref, %impl.elem0.loc12_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc12_10.1: = specific_impl_function %impl.elem0.loc12_10.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc12_10.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc12_10.1: = specific_impl_function %impl.elem0.loc12_10.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc12_10.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc12_10.2: = bound_method %n.ref, %specific_impl_fn.loc12_10.1 // CHECK:STDOUT: %.loc11_33: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = splice_block %return.loc11 {} // CHECK:STDOUT: %.loc12_10.1: init @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = call %bound_method.loc12_10.2(%n.ref) to %.loc11_33 @@ -361,10 +359,9 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc7_25.1 [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %require_complete.loc16: = require_complete_type %T.as_type.loc7_25.1 [symbolic = %require_complete.loc16 (constants.%require_complete.07c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc7, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc7_25.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc16_14.4: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc16_14.4 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc16_14.2: @Class.G.%.loc16_14.4 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_14.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc16_14.2: = specific_impl_function %impl.elem0.loc16_14.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc16_14.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc16_14.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc7 [symbolic = %.loc16_14.4 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc16_14.2: @Class.G.%.loc16_14.4 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_14.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc16_14.2: = specific_impl_function %impl.elem0.loc16_14.2, @Copy.Op(%T.loc7) [symbolic = %specific_impl_fn.loc16_14.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param.loc15: @Class.G.%Class (%Class)) -> %return.param.loc15: @Class.G.%T.as_type.loc7_25.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -372,9 +369,9 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %n.ref: @Class.G.%Class.elem (%Class.elem) = name_ref n, @Class.%.loc8_8 [concrete = @Class.%.loc8_8] // CHECK:STDOUT: %.loc16_14.1: ref @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc16_14.2: @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = bind_value %.loc16_14.1 -// CHECK:STDOUT: %impl.elem0.loc16_14.1: @Class.G.%.loc16_14.4 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc16_14.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc16_14.1: @Class.G.%.loc16_14.4 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc16_14.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc16_14.1: = bound_method %.loc16_14.2, %impl.elem0.loc16_14.1 -// CHECK:STDOUT: %specific_impl_fn.loc16_14.1: = specific_impl_function %impl.elem0.loc16_14.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc16_14.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc16_14.1: = specific_impl_function %impl.elem0.loc16_14.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc16_14.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc16_14.2: = bound_method %.loc16_14.2, %specific_impl_fn.loc16_14.1 // CHECK:STDOUT: %.loc15_41: ref @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = splice_block %return.loc15 {} // CHECK:STDOUT: %.loc16_14.3: init @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = call %bound_method.loc16_14.2(%.loc16_14.2) to %.loc15_41 diff --git a/toolchain/check/testdata/class/generic/member_type.carbon b/toolchain/check/testdata/class/generic/member_type.carbon index 1aa4fe5be5057..7713d99a2c352 100644 --- a/toolchain/check/testdata/class/generic/member_type.carbon +++ b/toolchain/check/testdata/class/generic/member_type.carbon @@ -95,10 +95,9 @@ fn Test() -> i32 { // CHECK:STDOUT: %require_complete.f2b: = require_complete_type %Inner.6ee [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021: %Copy.type = facet_value %T.as_type, (%Copy.lookup_impl_witness.e15) [symbolic] -// CHECK:STDOUT: %.c50: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021 [symbolic] -// CHECK:STDOUT: %impl.elem0.792: %.c50 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547: = specific_impl_function %impl.elem0.792, @Copy.Op(%Copy.facet.021) [symbolic] +// CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168: %.427 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] @@ -355,18 +354,17 @@ fn Test() -> i32 { // CHECK:STDOUT: %require_complete.loc9_9: = require_complete_type %T.as_type.loc9_11.1 [symbolic = %require_complete.loc9_9 (constants.%require_complete.07c)] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n.d5b)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc9_11.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc9_38.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc9_38.2 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc9_38.2: @Outer.F.%.loc9_38.2 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_38.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc9_38.2: = specific_impl_function %impl.elem0.loc9_38.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc9_38.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc9_38.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T [symbolic = %.loc9_38.2 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc9_38.2: @Outer.F.%.loc9_38.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_38.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc9_38.2: = specific_impl_function %impl.elem0.loc9_38.2, @Copy.Op(%T) [symbolic = %specific_impl_fn.loc9_38.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%n.param: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type)) -> %return.param: @Outer.F.%Inner (%Inner.6ee) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = name_ref n, %n // CHECK:STDOUT: %.loc9_39.1: @Outer.F.%struct_type.n (%struct_type.n.d5b) = struct_literal (%n.ref) -// CHECK:STDOUT: %impl.elem0.loc9_38.1: @Outer.F.%.loc9_38.2 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc9_38.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc9_38.1: @Outer.F.%.loc9_38.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc9_38.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc9_38.1: = bound_method %n.ref, %impl.elem0.loc9_38.1 -// CHECK:STDOUT: %specific_impl_fn.loc9_38.1: = specific_impl_function %impl.elem0.loc9_38.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc9_38.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc9_38.1: = specific_impl_function %impl.elem0.loc9_38.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc9_38.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc9_38.2: = bound_method %n.ref, %specific_impl_fn.loc9_38.1 // CHECK:STDOUT: %.loc9_39.2: ref @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = class_element_access %return, element0 // CHECK:STDOUT: %.loc9_38.1: init @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = call %bound_method.loc9_38.2(%n.ref) to %.loc9_39.2 @@ -533,7 +531,6 @@ fn Test() -> i32 { // CHECK:STDOUT: %require_complete.loc9_9 => constants.%complete_type.f8a // CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.033 // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.a32 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.c49 // CHECK:STDOUT: %.loc9_38.2 => constants.%.7fa // CHECK:STDOUT: %impl.elem0.loc9_38.2 => constants.%Int.as.Copy.impl.Op.f59 // CHECK:STDOUT: %specific_impl_fn.loc9_38.2 => constants.%Int.as.Copy.impl.Op.specific_fn diff --git a/toolchain/check/testdata/class/generic/self.carbon b/toolchain/check/testdata/class/generic/self.carbon index d2180b9e44655..594d43f77b120 100644 --- a/toolchain/check/testdata/class/generic/self.carbon +++ b/toolchain/check/testdata/class/generic/self.carbon @@ -49,14 +49,14 @@ class Class(T:! type) { // CHECK:STDOUT: %pattern_type.9e0: type = pattern_type %ptr.955 [symbolic] // CHECK:STDOUT: %Class.as.Destroy.impl.Op.type: type = fn_type @Class.as.Destroy.impl.Op, @Class.as.Destroy.impl(%T) [symbolic] // CHECK:STDOUT: %Class.as.Destroy.impl.Op: %Class.as.Destroy.impl.Op.type = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.facet.489: %Destroy.type = facet_value %Class, (%Destroy.impl_witness.8cc) [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class, (%Destroy.impl_witness.8cc) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %require_complete.4f8: = require_complete_type %Class [symbolic] // CHECK:STDOUT: %Class.val: %Class = struct_value () [symbolic] // CHECK:STDOUT: %Class.MakeSelf.specific_fn: = specific_function %Class.MakeSelf, @Class.MakeSelf(%T) [symbolic] // CHECK:STDOUT: %Class.MakeClass.specific_fn: = specific_function %Class.MakeClass, @Class.MakeClass(%T) [symbolic] -// CHECK:STDOUT: %.856: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.489 [symbolic] +// CHECK:STDOUT: %.856: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] // CHECK:STDOUT: %Class.as.Destroy.impl.Op.specific_fn: = specific_function %Class.as.Destroy.impl.Op, @Class.as.Destroy.impl.Op(%T) [symbolic] // CHECK:STDOUT: %require_complete.2ae: = require_complete_type %ptr.955 [symbolic] // CHECK:STDOUT: } @@ -211,7 +211,7 @@ class Class(T:! type) { // CHECK:STDOUT: %Class.MakeClass: @Class.F.%Class.MakeClass.type (%Class.MakeClass.type) = struct_value () [symbolic = %Class.MakeClass (constants.%Class.MakeClass)] // CHECK:STDOUT: %Class.MakeClass.specific_fn.loc22_19.2: = specific_function %Class.MakeClass, @Class.MakeClass(%T) [symbolic = %Class.MakeClass.specific_fn.loc22_19.2 (constants.%Class.MakeClass.specific_fn)] // CHECK:STDOUT: %Destroy.impl_witness: = impl_witness @Class.%Destroy.impl_witness_table, @Class.as.Destroy.impl(%T) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.8cc)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc21_19.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.489)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc21_19.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] // CHECK:STDOUT: %.loc22_5.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc22_5.2 (constants.%.856)] // CHECK:STDOUT: %Class.as.Destroy.impl.Op.type: type = fn_type @Class.as.Destroy.impl.Op, @Class.as.Destroy.impl(%T) [symbolic = %Class.as.Destroy.impl.Op.type (constants.%Class.as.Destroy.impl.Op.type)] // CHECK:STDOUT: %Class.as.Destroy.impl.Op: @Class.F.%Class.as.Destroy.impl.Op.type (%Class.as.Destroy.impl.Op.type) = struct_value () [symbolic = %Class.as.Destroy.impl.Op (constants.%Class.as.Destroy.impl.Op)] diff --git a/toolchain/check/testdata/class/import.carbon b/toolchain/check/testdata/class/import.carbon index c85097f544dff..2b7f58a934b47 100644 --- a/toolchain/check/testdata/class/import.carbon +++ b/toolchain/check/testdata/class/import.carbon @@ -300,8 +300,8 @@ fn Run() { // CHECK:STDOUT: %Copy.impl_witness.307: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%ForwardDeclared.7b34f2.1) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.5fc: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%ForwardDeclared.7b34f2.1) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.011: %ptr.as.Copy.impl.Op.type.5fc = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.f03: %Copy.type = facet_value %ptr.6cf, (%Copy.impl_witness.307) [concrete] -// CHECK:STDOUT: %.610: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.f03 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6cf, (%Copy.impl_witness.307) [concrete] +// CHECK:STDOUT: %.610: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.011, @ptr.as.Copy.impl.Op(%ForwardDeclared.7b34f2.1) [concrete] // CHECK:STDOUT: %Incomplete: type = class_type @Incomplete [concrete] // CHECK:STDOUT: %ptr.c62: type = ptr_type %Incomplete [concrete] diff --git a/toolchain/check/testdata/class/import_indirect.carbon b/toolchain/check/testdata/class/import_indirect.carbon index 5c628242132e9..57292da599d5a 100644 --- a/toolchain/check/testdata/class/import_indirect.carbon +++ b/toolchain/check/testdata/class/import_indirect.carbon @@ -186,8 +186,8 @@ var ptr: E* = &val; // CHECK:STDOUT: %Copy.impl_witness.999: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c3f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.fb8: %ptr.as.Copy.impl.Op.type.c3f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.9e3: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] -// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9e3 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] +// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.fb8 [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.fb8, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] @@ -281,8 +281,8 @@ var ptr: E* = &val; // CHECK:STDOUT: %Copy.impl_witness.999: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c3f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.fb8: %ptr.as.Copy.impl.Op.type.c3f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.9e3: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] -// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9e3 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] +// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.fb8 [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.fb8, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] @@ -376,8 +376,8 @@ var ptr: E* = &val; // CHECK:STDOUT: %Copy.impl_witness.999: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c3f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.fb8: %ptr.as.Copy.impl.Op.type.c3f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.9e3: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] -// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9e3 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] +// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.fb8 [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.fb8, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] @@ -474,8 +474,8 @@ var ptr: E* = &val; // CHECK:STDOUT: %Copy.impl_witness.999: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c3f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.fb8: %ptr.as.Copy.impl.Op.type.c3f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.9e3: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] -// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9e3 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] +// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.fb8 [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.fb8, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] @@ -572,8 +572,8 @@ var ptr: E* = &val; // CHECK:STDOUT: %Copy.impl_witness.999: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c3f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.fb8: %ptr.as.Copy.impl.Op.type.c3f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.9e3: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] -// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9e3 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] +// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.fb8 [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.fb8, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] @@ -674,8 +674,8 @@ var ptr: E* = &val; // CHECK:STDOUT: %Copy.impl_witness.999: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c3f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.fb8: %ptr.as.Copy.impl.Op.type.c3f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.9e3: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] -// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9e3 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] +// CHECK:STDOUT: %.7e9: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.fb8 [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.fb8, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/class/import_struct_cyle.carbon b/toolchain/check/testdata/class/import_struct_cyle.carbon index ab48ab75137f3..2fa8fab850eb9 100644 --- a/toolchain/check/testdata/class/import_struct_cyle.carbon +++ b/toolchain/check/testdata/class/import_struct_cyle.carbon @@ -141,8 +141,8 @@ fn Run() { // CHECK:STDOUT: %Copy.impl_witness.d0a: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%Cycle) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.55f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Cycle) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.c22: %ptr.as.Copy.impl.Op.type.55f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.2d4: %Copy.type = facet_value %ptr.257, (%Copy.impl_witness.d0a) [concrete] -// CHECK:STDOUT: %.e8f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.2d4 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.257, (%Copy.impl_witness.d0a) [concrete] +// CHECK:STDOUT: %.e8f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.c22, @ptr.as.Copy.impl.Op(%Cycle) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/inheritance_access.carbon b/toolchain/check/testdata/class/inheritance_access.carbon index b545d84047a20..8d3345ddada67 100644 --- a/toolchain/check/testdata/class/inheritance_access.carbon +++ b/toolchain/check/testdata/class/inheritance_access.carbon @@ -272,8 +272,8 @@ class B { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -700,8 +700,8 @@ class B { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/init_as.carbon b/toolchain/check/testdata/class/init_as.carbon index ca7697dc9ce46..e7b7b3a766e6f 100644 --- a/toolchain/check/testdata/class/init_as.carbon +++ b/toolchain/check/testdata/class/init_as.carbon @@ -74,8 +74,8 @@ fn F() -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/local.carbon b/toolchain/check/testdata/class/local.carbon index 02da044a36584..6bb23bb3929e3 100644 --- a/toolchain/check/testdata/class/local.carbon +++ b/toolchain/check/testdata/class/local.carbon @@ -87,8 +87,8 @@ class A { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/method.carbon b/toolchain/check/testdata/class/method.carbon index 42beb544bb3f8..581b6f63af98a 100644 --- a/toolchain/check/testdata/class/method.carbon +++ b/toolchain/check/testdata/class/method.carbon @@ -95,8 +95,8 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete] // CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete] diff --git a/toolchain/check/testdata/class/nested_name.carbon b/toolchain/check/testdata/class/nested_name.carbon index 38778f9301400..a1449f8b8a9e7 100644 --- a/toolchain/check/testdata/class/nested_name.carbon +++ b/toolchain/check/testdata/class/nested_name.carbon @@ -65,8 +65,8 @@ fn G(o: Outer) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %pattern_type.e74: type = pattern_type %Outer [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] diff --git a/toolchain/check/testdata/class/raw_self.carbon b/toolchain/check/testdata/class/raw_self.carbon index 74c522ce71f09..329e26c2e2d3c 100644 --- a/toolchain/check/testdata/class/raw_self.carbon +++ b/toolchain/check/testdata/class/raw_self.carbon @@ -61,8 +61,8 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/raw_self_type.carbon b/toolchain/check/testdata/class/raw_self_type.carbon index e83ef591c8539..96ff3f464a725 100644 --- a/toolchain/check/testdata/class/raw_self_type.carbon +++ b/toolchain/check/testdata/class/raw_self_type.carbon @@ -51,8 +51,8 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: %Copy.impl_witness.929: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%Class) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.039: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Class) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.275: %ptr.as.Copy.impl.Op.type.039 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.a65: %Copy.type = facet_value %ptr.e71, (%Copy.impl_witness.929) [concrete] -// CHECK:STDOUT: %.93e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.a65 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e71, (%Copy.impl_witness.929) [concrete] +// CHECK:STDOUT: %.93e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.275, @ptr.as.Copy.impl.Op(%Class) [concrete] // CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.302: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%Class) [concrete] // CHECK:STDOUT: %ptr.as.Destroy.impl.Op.e41: %ptr.as.Destroy.impl.Op.type.302 = struct_value () [concrete] diff --git a/toolchain/check/testdata/class/self.carbon b/toolchain/check/testdata/class/self.carbon index 2507a44d4bfc6..edcd8abfa2108 100644 --- a/toolchain/check/testdata/class/self.carbon +++ b/toolchain/check/testdata/class/self.carbon @@ -78,8 +78,8 @@ class Class { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/self_conversion.carbon b/toolchain/check/testdata/class/self_conversion.carbon index 3b25b958bc234..6e52194ad6607 100644 --- a/toolchain/check/testdata/class/self_conversion.carbon +++ b/toolchain/check/testdata/class/self_conversion.carbon @@ -78,8 +78,8 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] diff --git a/toolchain/check/testdata/class/self_type.carbon b/toolchain/check/testdata/class/self_type.carbon index da85c7f9cd272..e67c6da852ff7 100644 --- a/toolchain/check/testdata/class/self_type.carbon +++ b/toolchain/check/testdata/class/self_type.carbon @@ -58,8 +58,8 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: %Copy.impl_witness.929: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%Class) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.039: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Class) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.275: %ptr.as.Copy.impl.Op.type.039 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.a65: %Copy.type = facet_value %ptr.e71, (%Copy.impl_witness.929) [concrete] -// CHECK:STDOUT: %.93e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.a65 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e71, (%Copy.impl_witness.929) [concrete] +// CHECK:STDOUT: %.93e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.275, @ptr.as.Copy.impl.Op(%Class) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/virtual_modifiers.carbon b/toolchain/check/testdata/class/virtual_modifiers.carbon index f4d517b7c9b0f..b0e0ef3c93969 100644 --- a/toolchain/check/testdata/class/virtual_modifiers.carbon +++ b/toolchain/check/testdata/class/virtual_modifiers.carbon @@ -1675,8 +1675,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] // CHECK:STDOUT: %struct_type.m2.m1.5f2: type = struct_type {.m2: Core.IntLiteral, .m1: Core.IntLiteral} [concrete] diff --git a/toolchain/check/testdata/const/basics.carbon b/toolchain/check/testdata/const/basics.carbon index 3b916d31340df..8c50b5cfbdc9e 100644 --- a/toolchain/check/testdata/const/basics.carbon +++ b/toolchain/check/testdata/const/basics.carbon @@ -192,8 +192,8 @@ fn G(p: const (const C)**) -> C** { // CHECK:STDOUT: %Copy.impl_witness.415: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%ptr.801) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.244: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%ptr.801) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.b61: %ptr.as.Copy.impl.Op.type.244 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.6dc: %Copy.type = facet_value %ptr.564, (%Copy.impl_witness.415) [concrete] -// CHECK:STDOUT: %.49d: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.6dc [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.564, (%Copy.impl_witness.415) [concrete] +// CHECK:STDOUT: %.49d: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.b61, @ptr.as.Copy.impl.Op(%ptr.801) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/const/import.carbon b/toolchain/check/testdata/const/import.carbon index a60f65811ea66..92abbc23f61a4 100644 --- a/toolchain/check/testdata/const/import.carbon +++ b/toolchain/check/testdata/const/import.carbon @@ -47,8 +47,8 @@ var a_ptr: const C* = a_ptr_ref; // CHECK:STDOUT: %Copy.impl_witness.fc3: = impl_witness imports.%Copy.impl_witness_table.573, @ptr.as.Copy.impl(%const.668) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.906: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%const.668) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.ae9: %ptr.as.Copy.impl.Op.type.906 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c03: %Copy.type = facet_value %ptr.801, (%Copy.impl_witness.fc3) [concrete] -// CHECK:STDOUT: %.26e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c03 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.801, (%Copy.impl_witness.fc3) [concrete] +// CHECK:STDOUT: %.26e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.ae9 [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.ae9, @ptr.as.Copy.impl.Op(%const.668) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] @@ -58,7 +58,7 @@ var a_ptr: const C* = a_ptr_ref; // CHECK:STDOUT: %Main.C: type = import_ref Main//implicit, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.a_ref: ref %const.668 = import_ref Main//implicit, a_ref, loaded [concrete = %a_ref.var] // CHECK:STDOUT: %Main.a_ptr_ref: ref %ptr.801 = import_ref Main//implicit, a_ptr_ref, loaded [concrete = %a_ptr_ref.var] -// CHECK:STDOUT: %Main.import_ref.790: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.222) = import_ref Main//implicit, inst195 [indirect], loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.3ef)] +// CHECK:STDOUT: %Main.import_ref.790: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.222) = import_ref Main//implicit, inst193 [indirect], loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.3ef)] // CHECK:STDOUT: %Copy.impl_witness_table.573 = impl_witness_table (%Main.import_ref.790), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %a_ref.patt: %pattern_type.6af = binding_pattern a_ref [concrete] // CHECK:STDOUT: %a_ref.var_patt: %pattern_type.6af = var_pattern %a_ref.patt [concrete] diff --git a/toolchain/check/testdata/deduce/array.carbon b/toolchain/check/testdata/deduce/array.carbon index cd54a8158350d..16685a4634c51 100644 --- a/toolchain/check/testdata/deduce/array.carbon +++ b/toolchain/check/testdata/deduce/array.carbon @@ -1375,8 +1375,8 @@ fn G() -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %N.51e, %Int.as.Copy.impl.Op.f59 [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method.8cf: = bound_method %N.51e, %Int.as.Copy.impl.Op.specific_fn [symbolic] diff --git a/toolchain/check/testdata/deduce/generic_type.carbon b/toolchain/check/testdata/deduce/generic_type.carbon index b916d6c0e8bef..90ef651cd2726 100644 --- a/toolchain/check/testdata/deduce/generic_type.carbon +++ b/toolchain/check/testdata/deduce/generic_type.carbon @@ -1106,8 +1106,8 @@ fn G() -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.229: = bound_method %N.51e, %Int.as.Copy.impl.Op.f59 [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method.8cf: = bound_method %N.51e, %Int.as.Copy.impl.Op.specific_fn [symbolic] diff --git a/toolchain/check/testdata/deduce/int_float.carbon b/toolchain/check/testdata/deduce/int_float.carbon index f5190966fed49..79c968dce664c 100644 --- a/toolchain/check/testdata/deduce/int_float.carbon +++ b/toolchain/check/testdata/deduce/int_float.carbon @@ -55,8 +55,8 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.104: = impl_witness imports.%Copy.impl_witness_table.954 [concrete] -// CHECK:STDOUT: %Copy.facet.9ec: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.104) [concrete] -// CHECK:STDOUT: %.7f1: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9ec [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.104) [concrete] +// CHECK:STDOUT: %.7f1: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.type: type = fn_type @Core.IntLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op: %Core.IntLiteral.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound.21a: = bound_method %N, %Core.IntLiteral.as.Copy.impl.Op [symbolic] @@ -210,8 +210,8 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.104: = impl_witness imports.%Copy.impl_witness_table.954 [concrete] -// CHECK:STDOUT: %Copy.facet.9ec: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.104) [concrete] -// CHECK:STDOUT: %.7f1: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9ec [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.104) [concrete] +// CHECK:STDOUT: %.7f1: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.type: type = fn_type @Core.IntLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op: %Core.IntLiteral.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound.21a: = bound_method %N, %Core.IntLiteral.as.Copy.impl.Op [symbolic] diff --git a/toolchain/check/testdata/deduce/tuple.carbon b/toolchain/check/testdata/deduce/tuple.carbon index 8fcf95f7cbbda..27eeac9d26fb2 100644 --- a/toolchain/check/testdata/deduce/tuple.carbon +++ b/toolchain/check/testdata/deduce/tuple.carbon @@ -324,8 +324,8 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.fd9: = bound_method %B, %Int.as.Copy.impl.Op.f59 [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method.fe0: = bound_method %B, %Int.as.Copy.impl.Op.specific_fn [symbolic] 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 a5207a7a1f3d6..4aa15c185a31b 100644 --- a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon +++ b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon @@ -771,8 +771,8 @@ fn G() { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness imports.%Copy.impl_witness_table.40f [concrete] -// CHECK:STDOUT: %Copy.facet.c80: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] -// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c80 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] +// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %C, %type.as.Copy.impl.Op [concrete] @@ -1143,8 +1143,8 @@ fn G() { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness imports.%Copy.impl_witness_table.40f [concrete] -// CHECK:STDOUT: %Copy.facet.c80: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] -// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c80 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] +// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %C, %type.as.Copy.impl.Op [concrete] diff --git a/toolchain/check/testdata/eval/aggregates.carbon b/toolchain/check/testdata/eval/aggregates.carbon index 92f94eb7472c0..1cf2621154d90 100644 --- a/toolchain/check/testdata/eval/aggregates.carbon +++ b/toolchain/check/testdata/eval/aggregates.carbon @@ -91,8 +91,8 @@ fn G(N:! i32) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.e95: = bound_method %int_1.5d2, %Int.as.Copy.impl.Op.f59 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method.dd6: = bound_method %int_1.5d2, %Int.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/facet/access.carbon b/toolchain/check/testdata/facet/access.carbon index 0ee0bb11854ad..5cec1d0bb4c86 100644 --- a/toolchain/check/testdata/facet/access.carbon +++ b/toolchain/check/testdata/facet/access.carbon @@ -197,10 +197,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %T: %I.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, (%I.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.531: type = fn_type_with_self_type %I.DoIt.type, %I.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.531 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.DoIt(%I.facet) [symbolic] +// CHECK:STDOUT: %.edc: type = fn_type_with_self_type %I.DoIt.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.edc = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.DoIt(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -212,10 +211,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc10_4.2: type = facet_access_type %T.loc8_8.1 [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc10_4.2, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] -// CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type constants.%I.DoIt.type, %I.facet [symbolic = %.loc10_4.2 (constants.%.531)] -// CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10_4.2 (%.531) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @I.DoIt(%I.facet) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type constants.%I.DoIt.type, %T.loc8_8.1 [symbolic = %.loc10_4.2 (constants.%.edc)] +// CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10_4.2 (%.edc) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @I.DoIt(%T.loc8_8.1) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -223,8 +221,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %DoIt.ref: %I.assoc_type = name_ref DoIt, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc10_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_4.1: type = converted %T.ref, %T.as_type.loc10_4.1 [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc10_4.1: @Use.%.loc10_4.2 (%.531) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @I.DoIt(constants.%I.facet) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %impl.elem0.loc10_4.1: @Use.%.loc10_4.2 (%.edc) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @I.DoIt(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %.loc10_10: init %empty_tuple.type = call %specific_impl_fn.loc10_4.1() // CHECK:STDOUT: // CHECK:STDOUT: } @@ -245,10 +243,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %pattern_type.d22d6c.2: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, (%I.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.7cf: type = fn_type_with_self_type %I.Make.type, %I.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.7cf = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.Make(%I.facet) [symbolic] +// CHECK:STDOUT: %.07c: type = fn_type_with_self_type %I.Make.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.07c = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.Make(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -260,10 +257,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_18.1, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] -// CHECK:STDOUT: %.loc10_11.2: type = fn_type_with_self_type constants.%I.Make.type, %I.facet [symbolic = %.loc10_11.2 (constants.%.7cf)] -// CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10_11.2 (%.7cf) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc10_11.2: = specific_impl_function %impl.elem0.loc10_11.2, @I.Make(%I.facet) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %.loc10_11.2: type = fn_type_with_self_type constants.%I.Make.type, %T.loc8_8.1 [symbolic = %.loc10_11.2 (constants.%.07c)] +// CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10_11.2 (%.07c) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc10_11.2: = specific_impl_function %impl.elem0.loc10_11.2, @I.Make(%T.loc8_8.1) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> %return.param: @Use.%T.as_type.loc8_18.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -271,8 +267,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %Make.ref: %I.assoc_type = name_ref Make, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc8_18.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_11.1: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.as_type.loc8_18.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10_11.2 (%.7cf) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc10_11.1: = specific_impl_function %impl.elem0.loc10_11.1, @I.Make(constants.%I.facet) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10_11.2 (%.07c) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc10_11.1: = specific_impl_function %impl.elem0.loc10_11.1, @I.Make(constants.%T) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: %.loc10_17: init @Use.%T.as_type.loc8_18.1 (%T.as_type) = call %specific_impl_fn.loc10_11.1() to %.loc8_15 // CHECK:STDOUT: return %.loc10_17 to %return @@ -300,10 +296,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %Use: %Use.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, (%I.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.ee3: type = fn_type_with_self_type %I.Copy.type, %I.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.ee3 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.Copy(%I.facet) [symbolic] +// CHECK:STDOUT: %.6f7: type = fn_type_with_self_type %I.Copy.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.6f7 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.Copy(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -345,10 +340,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_18.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc9_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc9_18.1, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] -// CHECK:STDOUT: %.loc10_11.2: type = fn_type_with_self_type constants.%I.Copy.type, %I.facet [symbolic = %.loc10_11.2 (constants.%.ee3)] -// CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10_11.2 (%.ee3) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc10_11.2: = specific_impl_function %impl.elem0.loc10_11.2, @I.Copy(%I.facet) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %.loc10_11.2: type = fn_type_with_self_type constants.%I.Copy.type, %T.loc9_8.1 [symbolic = %.loc10_11.2 (constants.%.6f7)] +// CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10_11.2 (%.6f7) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc10_11.2: = specific_impl_function %impl.elem0.loc10_11.2, @I.Copy(%T.loc9_8.1) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Use.%T.as_type.loc9_18.1 (%T.as_type)) -> %return.param: @Use.%T.as_type.loc9_18.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -356,9 +350,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %Copy.ref: %I.assoc_type = name_ref Copy, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type constants.%T [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_11.1: type = converted constants.%T, %T.as_type.loc10 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10_11.2 (%.ee3) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10_11.2 (%.6f7) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc10_11: = bound_method %x.ref, %impl.elem0.loc10_11.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_11.1: = specific_impl_function %impl.elem0.loc10_11.1, @I.Copy(constants.%I.facet) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc10_11.1: = specific_impl_function %impl.elem0.loc10_11.1, @I.Copy(constants.%T) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc10_17: = bound_method %x.ref, %specific_impl_fn.loc10_11.1 // CHECK:STDOUT: %.loc9_21: ref @Use.%T.as_type.loc9_18.1 (%T.as_type) = splice_block %return {} // CHECK:STDOUT: %.loc10_17: init @Use.%T.as_type.loc9_18.1 (%T.as_type) = call %bound_method.loc10_17(%x.ref) to %.loc9_21 @@ -384,10 +378,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %pattern_type.d22: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, (%I.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.234: type = fn_type_with_self_type %I.Hello.type, %I.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.234 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.Hello(%I.facet) [symbolic] +// CHECK:STDOUT: %.b73: type = fn_type_with_self_type %I.Hello.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.b73 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.Hello(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -399,10 +392,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_18.1, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] -// CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type constants.%I.Hello.type, %I.facet [symbolic = %.loc10_4.2 (constants.%.234)] -// CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10_4.2 (%.234) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @I.Hello(%I.facet) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type constants.%I.Hello.type, %T.loc8_8.1 [symbolic = %.loc10_4.2 (constants.%.b73)] +// CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10_4.2 (%.b73) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @I.Hello(%T.loc8_8.1) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Use.%T.as_type.loc8_18.1 (%T.as_type)) { // CHECK:STDOUT: !entry: @@ -410,8 +402,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %Hello.ref: %I.assoc_type = name_ref Hello, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type constants.%T [symbolic = %T.as_type.loc8_18.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_4.1: type = converted constants.%T, %T.as_type.loc10 [symbolic = %T.as_type.loc8_18.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc10_4.1: @Use.%.loc10_4.2 (%.234) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @I.Hello(constants.%I.facet) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %impl.elem0.loc10_4.1: @Use.%.loc10_4.2 (%.b73) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @I.Hello(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %.loc10_11: init %empty_tuple.type = call %specific_impl_fn.loc10_4.1() // CHECK:STDOUT: // CHECK:STDOUT: } @@ -434,10 +426,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %pattern_type.d22d6c.2: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, (%I.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.ee3: type = fn_type_with_self_type %I.Copy.type, %I.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.ee3 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.Copy(%I.facet) [symbolic] +// CHECK:STDOUT: %.6f7: type = fn_type_with_self_type %I.Copy.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.6f7 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.Copy(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -449,10 +440,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_16.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_26.1, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] -// CHECK:STDOUT: %.loc10_14.2: type = fn_type_with_self_type constants.%I.Copy.type, %I.facet [symbolic = %.loc10_14.2 (constants.%.ee3)] -// CHECK:STDOUT: %impl.elem0.loc10_14.2: @UseIndirect.%.loc10_14.2 (%.ee3) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_14.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc10_14.2: = specific_impl_function %impl.elem0.loc10_14.2, @I.Copy(%I.facet) [symbolic = %specific_impl_fn.loc10_14.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %.loc10_14.2: type = fn_type_with_self_type constants.%I.Copy.type, %T.loc8_16.1 [symbolic = %.loc10_14.2 (constants.%.6f7)] +// CHECK:STDOUT: %impl.elem0.loc10_14.2: @UseIndirect.%.loc10_14.2 (%.6f7) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_14.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc10_14.2: = specific_impl_function %impl.elem0.loc10_14.2, @I.Copy(%T.loc8_16.1) [symbolic = %specific_impl_fn.loc10_14.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type)) -> %return.param: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -461,9 +451,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %Copy.ref: %I.assoc_type = name_ref Copy, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc8_26.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_14.1: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.as_type.loc8_26.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc10_14.1: @UseIndirect.%.loc10_14.2 (%.ee3) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_14.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10_14.1: @UseIndirect.%.loc10_14.2 (%.6f7) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_14.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc10_11: = bound_method %x.ref, %impl.elem0.loc10_14.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_14.1: = specific_impl_function %impl.elem0.loc10_14.1, @I.Copy(constants.%I.facet) [symbolic = %specific_impl_fn.loc10_14.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc10_14.1: = specific_impl_function %impl.elem0.loc10_14.1, @I.Copy(constants.%T) [symbolic = %specific_impl_fn.loc10_14.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc10_21: = bound_method %x.ref, %specific_impl_fn.loc10_14.1 // CHECK:STDOUT: // CHECK:STDOUT: %.loc10_21: init @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) = call %bound_method.loc10_21(%x.ref) to %.loc8_29 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 70b2cc42d82fd..a14c3a966c2d1 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 @@ -135,7 +135,7 @@ fn B() { // CHECK:STDOUT: %Generic.impl_witness: = impl_witness file.%Generic.impl_witness_table [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F.type: type = fn_type @ImplsGeneric.as.Generic.impl.F [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F: %ImplsGeneric.as.Generic.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Generic.facet.fcf: %Generic.type.621 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] +// CHECK:STDOUT: %Generic.facet: %Generic.type.621 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %Generic.type.2db63e.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] // CHECK:STDOUT: %U: %Generic.type.2db63e.2 = bind_symbolic_name U, 1 [symbolic] @@ -154,10 +154,9 @@ fn B() { // CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %require_complete.9a6: = require_complete_type %Generic.type.2db63e.2 [symbolic] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U, @Generic, @Generic(%T) [symbolic] -// CHECK:STDOUT: %Generic.facet.57d: %Generic.type.2db63e.2 = facet_value %U.as_type, (%Generic.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.e73: type = fn_type_with_self_type %Generic.F.type.f439a9.2, %Generic.facet.57d [symbolic] -// CHECK:STDOUT: %impl.elem0.fcf: %.e73 = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.707: = specific_impl_function %impl.elem0.fcf, @Generic.F(%T, %Generic.facet.57d) [symbolic] +// CHECK:STDOUT: %.468: type = fn_type_with_self_type %Generic.F.type.f439a9.2, %U [symbolic] +// CHECK:STDOUT: %impl.elem0.31b: %.468 = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.6af: = specific_impl_function %impl.elem0.31b, @Generic.F(%T, %U) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %ImplsGeneric.val: %ImplsGeneric = struct_value () [concrete] @@ -165,9 +164,9 @@ fn B() { // CHECK:STDOUT: %pattern_type.c4b: type = pattern_type %Generic.type.621 [concrete] // CHECK:STDOUT: %pattern_type.c8d: type = pattern_type %ImplsGeneric [concrete] // CHECK:STDOUT: %pattern_type.589: type = pattern_type %GenericParam [concrete] -// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet.fcf) [concrete] +// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete] // CHECK:STDOUT: %complete_type.ca2: = complete_type_witness %Generic.type.621 [concrete] -// CHECK:STDOUT: %.573: type = fn_type_with_self_type %Generic.F.type.4cf, %Generic.facet.fcf [concrete] +// CHECK:STDOUT: %.573: type = fn_type_with_self_type %Generic.F.type.4cf, %Generic.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -353,10 +352,9 @@ fn B() { // CHECK:STDOUT: %assoc0: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = assoc_entity element0, @Generic.%Generic.F.decl [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U.loc15_32.1, @Generic, @Generic(%T.loc15_22.1) [symbolic = %Generic.lookup_impl_witness (constants.%Generic.lookup_impl_witness)] // CHECK:STDOUT: %Generic.F.type: type = fn_type @Generic.F, @Generic(%T.loc15_22.1) [symbolic = %Generic.F.type (constants.%Generic.F.type.f439a9.2)] -// CHECK:STDOUT: %Generic.facet: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.2db63e.2) = facet_value %U.as_type.loc15_51.1, (%Generic.lookup_impl_witness) [symbolic = %Generic.facet (constants.%Generic.facet.57d)] -// CHECK:STDOUT: %.loc16_4.3: type = fn_type_with_self_type %Generic.F.type, %Generic.facet [symbolic = %.loc16_4.3 (constants.%.e73)] -// CHECK:STDOUT: %impl.elem0.loc16_4.2: @CallGenericMethod.%.loc16_4.3 (%.e73) = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.fcf)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Generic.F(%T.loc15_22.1, %Generic.facet) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.707)] +// CHECK:STDOUT: %.loc16_4.3: type = fn_type_with_self_type %Generic.F.type, %U.loc15_32.1 [symbolic = %.loc16_4.3 (constants.%.468)] +// CHECK:STDOUT: %impl.elem0.loc16_4.2: @CallGenericMethod.%.loc16_4.3 (%.468) = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.31b)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Generic.F(%T.loc15_22.1, %U.loc15_32.1) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.6af)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%a.param: @CallGenericMethod.%U.as_type.loc15_51.1 (%U.as_type), %s.param: @CallGenericMethod.%T.loc15_22.1 (%T)) { // CHECK:STDOUT: !entry: @@ -365,8 +363,8 @@ fn B() { // CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = name_ref F, %.loc16_4.1 [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] // CHECK:STDOUT: %U.as_type.loc16: type = facet_access_type %U.ref.loc16 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] // CHECK:STDOUT: %.loc16_4.2: type = converted %U.ref.loc16, %U.as_type.loc16 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] -// CHECK:STDOUT: %impl.elem0.loc16_4.1: @CallGenericMethod.%.loc16_4.3 (%.e73) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.fcf)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Generic.F(constants.%T, constants.%Generic.facet.57d) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.707)] +// CHECK:STDOUT: %impl.elem0.loc16_4.1: @CallGenericMethod.%.loc16_4.3 (%.468) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.31b)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Generic.F(constants.%T, constants.%U) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.6af)] // CHECK:STDOUT: %.loc16_7: init %empty_tuple.type = call %specific_impl_fn.loc16_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -387,9 +385,9 @@ fn B() { // CHECK:STDOUT: %.loc20_42.3: init %GenericParam = class_init (), %.loc20_42.2 [concrete = constants.%GenericParam.val] // CHECK:STDOUT: %.loc20_42.4: ref %GenericParam = temporary %.loc20_42.2, %.loc20_42.3 // CHECK:STDOUT: %.loc20_44.1: ref %GenericParam = converted %.loc20_42.1, %.loc20_42.4 -// CHECK:STDOUT: %Generic.facet: %Generic.type.621 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet.fcf] -// CHECK:STDOUT: %.loc20_59: %Generic.type.621 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet.fcf] -// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet.fcf) [concrete = constants.%CallGenericMethod.specific_fn] +// CHECK:STDOUT: %Generic.facet: %Generic.type.621 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %.loc20_59: %Generic.type.621 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) [concrete = constants.%CallGenericMethod.specific_fn] // CHECK:STDOUT: %.loc20_24.2: %ImplsGeneric = bind_value %.loc20_24.1 // CHECK:STDOUT: %.loc20_44.2: %GenericParam = bind_value %.loc20_44.1 // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn(%.loc20_24.2, %.loc20_44.2) @@ -420,7 +418,7 @@ fn B() { // CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.9b7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.F(constants.%GenericParam, constants.%Generic.facet.fcf) {} +// CHECK:STDOUT: specific @Generic.F(constants.%GenericParam, constants.%Generic.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { // CHECK:STDOUT: %Scalar.loc4_19.1 => constants.%T @@ -444,12 +442,12 @@ fn B() { // CHECK:STDOUT: %pattern_type.loc15_54 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.F(constants.%T, constants.%Generic.facet.57d) {} +// CHECK:STDOUT: specific @Generic.F(constants.%T, constants.%U) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet.fcf) { +// CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) { // CHECK:STDOUT: %T.loc15_22.1 => constants.%GenericParam // CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.621 -// CHECK:STDOUT: %U.loc15_32.1 => constants.%Generic.facet.fcf +// CHECK:STDOUT: %U.loc15_32.1 => constants.%Generic.facet // CHECK:STDOUT: %pattern_type.loc15_32 => constants.%pattern_type.c4b // CHECK:STDOUT: %U.as_type.loc15_51.1 => constants.%ImplsGeneric // CHECK:STDOUT: %pattern_type.loc15_48 => constants.%pattern_type.c8d @@ -463,7 +461,6 @@ fn B() { // CHECK:STDOUT: %assoc0 => constants.%assoc0.9b7 // CHECK:STDOUT: %Generic.lookup_impl_witness => constants.%Generic.impl_witness // CHECK:STDOUT: %Generic.F.type => constants.%Generic.F.type.4cf -// CHECK:STDOUT: %Generic.facet => constants.%Generic.facet.fcf // CHECK:STDOUT: %.loc16_4.3 => constants.%.573 // CHECK:STDOUT: %impl.elem0.loc16_4.2 => constants.%ImplsGeneric.as.Generic.impl.F // CHECK:STDOUT: %specific_impl_fn.loc16_4.2 => constants.%ImplsGeneric.as.Generic.impl.F 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 d36066c2942bc..c8754674f085c 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 @@ -3,7 +3,6 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". -// EXTRA-ARGS: --dump-sem-ir-ranges=if-present // INCLUDE-FILE: toolchain/testing/testdata/min_prelude/convert.carbon // // AUTOUPDATE @@ -13,7 +12,6 @@ // TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon // --- explicit_as_type.carbon - library "[[@TEST_NAME]]"; interface Eats {} @@ -26,11 +24,12 @@ impl Goat as Eats {} fn Feed(e:! Eats) {} fn F() { + //@dump-sem-ir-begin Feed((Goat as Animal) as type); + //@dump-sem-ir-end } // --- facet_type_in_type_position.carbon - library "[[@TEST_NAME]]"; interface Eats { @@ -51,158 +50,64 @@ fn F() { // `Goat as Animal` in the type position retains/recovers the original type // Goat, so member lookup can see more than just `Animal`. + //@dump-sem-ir-begin let x: Goat as Animal = {} as Goat; x.Bleet(); x.Eat(); (({} as Goat) as (Goat as Animal)).Bleet(); (({} as Goat) as (Goat as Animal)).Eat(); + //@dump-sem-ir-end +} + +// --- facet_access_type_converts_back_to_original_facet_value.carbon +library "[[@TEST_NAME]]"; + +interface J {} + +class C(A:! J, B:! A) {} + +// The class C is holding a specific with a 2 BindSymbolicNames where one is a +// *symbolic* type of the other. +// +// This means deduce will determine the argument type for `A`, then `B`. Then it +// will traverse into deducing the type of `B` with the type of the parameter +// `B`, which are both `FacetAccessType(A)`. This ultimately tries to deduce the +// value for `A` again, so it needs to match, even though the argument is now +// `FacetAccessType(A)`. +// +// This depends on unwrapping the `FacetAccessType(A)` when converting it to the +// type of `A`, instead of evaluating to a `FacetValue` holding the +// `FacetAccessType(A)` with a witness from the type of `A`. This preserves the +// original facet value instead of constructing a different facet value +// referring to the same symbolic type and with the same facet type. +// Essentially, it allows lossless round trips through a FacetAccessType when +// converting back to the type of its original facet value. +fn G[A:! J, B:! A](x: C(A, B)) {} + +fn F[A:! J, B:! A](x: C(A, B)) { + //@dump-sem-ir-begin + G(x); + //@dump-sem-ir-end } // CHECK:STDOUT: --- explicit_as_type.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Eats.type: type = facet_type <@Eats> [concrete] -// CHECK:STDOUT: %Self.9e6: %Eats.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Animal.type: type = facet_type <@Animal> [concrete] -// CHECK:STDOUT: %Self.611: %Animal.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Goat: type = class_type @Goat [concrete] -// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %pattern_type.f6d: type = pattern_type auto [concrete] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness @Goat.%Destroy.impl_witness_table [concrete] -// CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] -// CHECK:STDOUT: %pattern_type.396: type = pattern_type %ptr.940 [concrete] -// CHECK:STDOUT: %Goat.as.Destroy.impl.Op.type: type = fn_type @Goat.as.Destroy.impl.Op [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Goat.as.Destroy.impl.Op: %Goat.as.Destroy.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Animal.impl_witness: = impl_witness file.%Animal.impl_witness_table [concrete] // CHECK:STDOUT: %Eats.impl_witness: = impl_witness file.%Eats.impl_witness_table [concrete] -// CHECK:STDOUT: %type: type = facet_type [concrete] -// CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %e: %Eats.type = bind_symbolic_name e, 0 [symbolic] -// CHECK:STDOUT: %pattern_type.384: type = pattern_type %Eats.type [concrete] // CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete] // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] -// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%Animal.impl_witness) [concrete] // CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Goat, (%Eats.impl_witness) [concrete] // CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed, @Feed(%Eats.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: .Destroy = %Core.Destroy -// CHECK:STDOUT: import Core//prelude -// CHECK:STDOUT: import Core//prelude/... -// CHECK:STDOUT: } -// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: file { -// CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .Eats = %Eats.decl -// CHECK:STDOUT: .Animal = %Animal.decl -// CHECK:STDOUT: .Goat = %Goat.decl -// CHECK:STDOUT: .Feed = %Feed.decl -// CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Eats.decl: type = interface_decl @Eats [concrete = constants.%Eats.type] {} {} -// CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} -// CHECK:STDOUT: %Goat.decl: type = class_decl @Goat [concrete = constants.%Goat] {} {} -// CHECK:STDOUT: impl_decl @Goat.as.Animal.impl [concrete] {} { -// CHECK:STDOUT: %Goat.ref: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] -// CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: } -// CHECK:STDOUT: %Animal.impl_witness_table = impl_witness_table (), @Goat.as.Animal.impl [concrete] -// CHECK:STDOUT: %Animal.impl_witness: = impl_witness %Animal.impl_witness_table [concrete = constants.%Animal.impl_witness] -// CHECK:STDOUT: impl_decl @Goat.as.Eats.impl [concrete] {} { -// CHECK:STDOUT: %Goat.ref: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] -// CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: } -// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @Goat.as.Eats.impl [concrete] -// CHECK:STDOUT: %Eats.impl_witness: = impl_witness %Eats.impl_witness_table [concrete = constants.%Eats.impl_witness] -// CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { -// CHECK:STDOUT: %e.patt: %pattern_type.384 = symbolic_binding_pattern e, 0 [concrete] -// CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc11: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { -// CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: } -// CHECK:STDOUT: %e.loc11_9.2: %Eats.type = bind_symbolic_name e, 0 [symbolic = %e.loc11_9.1 (constants.%e)] -// CHECK:STDOUT: } -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: interface @Eats { -// CHECK:STDOUT: %Self: %Eats.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.9e6] -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = %Self -// CHECK:STDOUT: witness = () -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: interface @Animal { -// CHECK:STDOUT: %Self: %Animal.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.611] -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = %Self -// CHECK:STDOUT: witness = () -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: impl @Goat.as.Destroy.impl: @Goat.%Self.ref as constants.%Destroy.type { -// CHECK:STDOUT: %Goat.as.Destroy.impl.Op.decl: %Goat.as.Destroy.impl.Op.type = fn_decl @Goat.as.Destroy.impl.Op [concrete = constants.%Goat.as.Destroy.impl.Op] { -// CHECK:STDOUT: %self.patt: %pattern_type.396 = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.396 = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %.loc7: %pattern_type.f6d = addr_pattern %self.param_patt [concrete] -// CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: %ptr.940 = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Goat [concrete = constants.%Goat] -// CHECK:STDOUT: %self: %ptr.940 = bind_name self, %self.param -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .Op = %Goat.as.Destroy.impl.Op.decl -// CHECK:STDOUT: witness = @Goat.%Destroy.impl_witness -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: impl @Goat.as.Animal.impl: %Goat.ref as %Animal.ref { -// CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = file.%Animal.impl_witness -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: impl @Goat.as.Eats.impl: %Goat.ref as %Eats.ref { -// CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = file.%Eats.impl_witness -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: class @Goat { -// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Goat [concrete = constants.%Goat] -// CHECK:STDOUT: impl_decl @Goat.as.Destroy.impl [concrete] {} {} -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (@Goat.as.Destroy.impl.%Goat.as.Destroy.impl.Op.decl), @Goat.as.Destroy.impl [concrete] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness %Destroy.impl_witness_table [concrete = constants.%Destroy.impl_witness] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type] -// CHECK:STDOUT: complete_type_witness = %complete_type -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Goat -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: fn @Goat.as.Destroy.impl.Op(%self.param: %ptr.940) = "no_op"; -// CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Feed(%e.loc11_9.2: %Eats.type) { -// CHECK:STDOUT: %e.loc11_9.1: %Eats.type = bind_symbolic_name e, 0 [symbolic = %e.loc11_9.1 (constants.%e)] -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: -// CHECK:STDOUT: fn() { -// CHECK:STDOUT: !entry: -// CHECK:STDOUT: return -// CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -218,31 +123,18 @@ fn F() { // CHECK:STDOUT: %.loc14_32: %Eats.type = converted %.loc14_25, %Eats.facet [concrete = constants.%Eats.facet] // CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed.ref, @Feed(constants.%Eats.facet) [concrete = constants.%Feed.specific_fn] // CHECK:STDOUT: %Feed.call: init %empty_tuple.type = call %Feed.specific_fn() -// CHECK:STDOUT: return -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%e) { -// CHECK:STDOUT: %e.loc11_9.1 => constants.%e -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Eats.facet) { -// CHECK:STDOUT: %e.loc11_9.1 => constants.%Eats.facet -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: +// CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- facet_type_in_type_position.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Eats.type: type = facet_type <@Eats> [concrete] -// CHECK:STDOUT: %Self.9e6: %Eats.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Eats.Eat.type: type = fn_type @Eats.Eat [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Eats.Eat: %Eats.Eat.type = struct_value () [concrete] // CHECK:STDOUT: %Eats.assoc_type: type = assoc_entity_type @Eats [concrete] // CHECK:STDOUT: %assoc0.e43: %Eats.assoc_type = assoc_entity element0, @Eats.%Eats.Eat.decl [concrete] // CHECK:STDOUT: %Animal.type: type = facet_type <@Animal> [concrete] -// CHECK:STDOUT: %Self.611: %Animal.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Goat: type = class_type @Goat [concrete] // CHECK:STDOUT: %Goat.Bleet.type: type = fn_type @Goat.Bleet [concrete] // CHECK:STDOUT: %Goat.Bleet: %Goat.Bleet.type = struct_value () [concrete] @@ -251,17 +143,10 @@ fn F() { // CHECK:STDOUT: %Goat.as.Eats.impl.Eat.type: type = fn_type @Goat.as.Eats.impl.Eat [concrete] // CHECK:STDOUT: %Goat.as.Eats.impl.Eat: %Goat.as.Eats.impl.Eat.type = struct_value () [concrete] // CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Goat, (%Eats.impl_witness) [concrete] -// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %pattern_type.f6d: type = pattern_type auto [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.06d: = impl_witness @Goat.%Destroy.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] -// CHECK:STDOUT: %pattern_type.396: type = pattern_type %ptr.940 [concrete] // CHECK:STDOUT: %Goat.as.Destroy.impl.Op.type: type = fn_type @Goat.as.Destroy.impl.Op [concrete] // CHECK:STDOUT: %Goat.as.Destroy.impl.Op: %Goat.as.Destroy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] -// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%Animal.impl_witness) [concrete] // CHECK:STDOUT: %pattern_type.ab7: type = pattern_type %Goat [concrete] // CHECK:STDOUT: %Goat.val: %Goat = struct_value () [concrete] @@ -269,123 +154,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: .Destroy = %Core.Destroy -// CHECK:STDOUT: import Core//prelude -// CHECK:STDOUT: import Core//prelude/... -// CHECK:STDOUT: } -// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: file { -// CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .Eats = %Eats.decl -// CHECK:STDOUT: .Animal = %Animal.decl -// CHECK:STDOUT: .Goat = %Goat.decl -// CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Eats.decl: type = interface_decl @Eats [concrete = constants.%Eats.type] {} {} -// CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} -// CHECK:STDOUT: %Goat.decl: type = class_decl @Goat [concrete = constants.%Goat] {} {} -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: interface @Eats { -// CHECK:STDOUT: %Self: %Eats.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.9e6] -// CHECK:STDOUT: %Eats.Eat.decl: %Eats.Eat.type = fn_decl @Eats.Eat [concrete = constants.%Eats.Eat] {} {} -// CHECK:STDOUT: %assoc0: %Eats.assoc_type = assoc_entity element0, %Eats.Eat.decl [concrete = constants.%assoc0.e43] -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = %Self -// CHECK:STDOUT: .Eat = %assoc0 -// CHECK:STDOUT: witness = (%Eats.Eat.decl) -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: interface @Animal { -// CHECK:STDOUT: %Self: %Animal.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.611] -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = %Self -// CHECK:STDOUT: witness = () -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: impl @Goat.as.Animal.impl: %Self.ref as %Animal.ref { -// CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = @Goat.%Animal.impl_witness -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: impl @Goat.as.Eats.impl: %Self.ref as %Eats.ref { -// CHECK:STDOUT: %Goat.as.Eats.impl.Eat.decl: %Goat.as.Eats.impl.Eat.type = fn_decl @Goat.as.Eats.impl.Eat [concrete = constants.%Goat.as.Eats.impl.Eat] {} {} -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .Eat = %Goat.as.Eats.impl.Eat.decl -// CHECK:STDOUT: witness = @Goat.%Eats.impl_witness -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: impl @Goat.as.Destroy.impl: @Goat.%Self.ref as constants.%Destroy.type { -// CHECK:STDOUT: %Goat.as.Destroy.impl.Op.decl: %Goat.as.Destroy.impl.Op.type = fn_decl @Goat.as.Destroy.impl.Op [concrete = constants.%Goat.as.Destroy.impl.Op] { -// CHECK:STDOUT: %self.patt: %pattern_type.396 = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: %pattern_type.396 = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %.loc9: %pattern_type.f6d = addr_pattern %self.param_patt [concrete] -// CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: %ptr.940 = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Goat [concrete = constants.%Goat] -// CHECK:STDOUT: %self: %ptr.940 = bind_name self, %self.param -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .Op = %Goat.as.Destroy.impl.Op.decl -// CHECK:STDOUT: witness = @Goat.%Destroy.impl_witness -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: class @Goat { -// CHECK:STDOUT: %Goat.Bleet.decl: %Goat.Bleet.type = fn_decl @Goat.Bleet [concrete = constants.%Goat.Bleet] {} {} -// CHECK:STDOUT: impl_decl @Goat.as.Animal.impl [concrete] {} { -// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Goat [concrete = constants.%Goat] -// CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: } -// CHECK:STDOUT: %Animal.impl_witness_table = impl_witness_table (), @Goat.as.Animal.impl [concrete] -// CHECK:STDOUT: %Animal.impl_witness: = impl_witness %Animal.impl_witness_table [concrete = constants.%Animal.impl_witness] -// CHECK:STDOUT: impl_decl @Goat.as.Eats.impl [concrete] {} { -// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Goat [concrete = constants.%Goat] -// CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: } -// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (@Goat.as.Eats.impl.%Goat.as.Eats.impl.Eat.decl), @Goat.as.Eats.impl [concrete] -// CHECK:STDOUT: %Eats.impl_witness: = impl_witness %Eats.impl_witness_table [concrete = constants.%Eats.impl_witness] -// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Goat [concrete = constants.%Goat] -// CHECK:STDOUT: impl_decl @Goat.as.Destroy.impl [concrete] {} {} -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (@Goat.as.Destroy.impl.%Goat.as.Destroy.impl.Op.decl), @Goat.as.Destroy.impl [concrete] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness %Destroy.impl_witness_table [concrete = constants.%Destroy.impl_witness.06d] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type] -// CHECK:STDOUT: complete_type_witness = %complete_type -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Goat -// CHECK:STDOUT: .Bleet = %Goat.Bleet.decl -// CHECK:STDOUT: .Animal = -// CHECK:STDOUT: .Eats = -// CHECK:STDOUT: .Eat = -// CHECK:STDOUT: extend @Goat.as.Eats.impl.%Eats.ref -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Eats.Eat(@Eats.%Self: %Eats.type) { -// CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Goat.Bleet() { -// CHECK:STDOUT: !entry: -// CHECK:STDOUT: return -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: fn @Goat.as.Eats.impl.Eat() { -// CHECK:STDOUT: !entry: -// CHECK:STDOUT: return -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: fn @Goat.as.Destroy.impl.Op(%self.param: %ptr.940) = "no_op"; -// CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { @@ -452,10 +222,55 @@ fn F() { // CHECK:STDOUT: %Goat.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_28.4, constants.%Goat.as.Destroy.impl.Op // CHECK:STDOUT: %addr.loc22: %ptr.940 = addr_of %.loc22_28.4 // CHECK:STDOUT: %Goat.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %Goat.as.Destroy.impl.Op.bound.loc22(%addr.loc22) -// CHECK:STDOUT: return +// CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.Eat(constants.%Self.9e6) {} +// CHECK:STDOUT: --- facet_access_type_converts_back_to_original_facet_value.carbon // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.Eat(constants.%Eats.facet) {} +// CHECK:STDOUT: constants { +// CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] +// CHECK:STDOUT: %A: %J.type = bind_symbolic_name A, 0 [symbolic] +// CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] +// CHECK:STDOUT: %B: %A.as_type = bind_symbolic_name B, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.8ba: type = pattern_type %A.as_type [symbolic] +// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] +// CHECK:STDOUT: %C: type = class_type @C, @C(%A, %B) [symbolic] +// CHECK:STDOUT: %require_complete.8dd: = require_complete_type %A.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.f19: type = pattern_type %C [symbolic] +// CHECK:STDOUT: %G.type: type = fn_type @G [concrete] +// CHECK:STDOUT: %G: %G.type = struct_value () [concrete] +// CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%A, %B) [symbolic] +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: imports { +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: generic fn @F(%A.loc25_6.2: %J.type, %B.loc25_13.2: @F.%A.as_type.loc25_17.1 (%A.as_type)) { +// CHECK:STDOUT: +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: +// CHECK:STDOUT: %G.specific_fn.loc27_3.2: = specific_function constants.%G, @G(%A.loc25_6.1, %B.loc25_13.1) [symbolic = %G.specific_fn.loc27_3.2 (constants.%G.specific_fn)] +// CHECK:STDOUT: +// CHECK:STDOUT: fn(%x.param: @F.%C.loc25_29.1 (%C)) { +// CHECK:STDOUT: !entry: +// CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] +// CHECK:STDOUT: %x.ref: @F.%C.loc25_29.1 (%C) = name_ref x, %x +// CHECK:STDOUT: %.loc27_6.1: %J.type = converted constants.%A.as_type, constants.%A [symbolic = %A.loc25_6.1 (constants.%A)] +// CHECK:STDOUT: %.loc27_6.2: %J.type = converted constants.%A.as_type, constants.%A [symbolic = %A.loc25_6.1 (constants.%A)] +// CHECK:STDOUT: %G.specific_fn.loc27_3.1: = specific_function %G.ref, @G(constants.%A, constants.%B) [symbolic = %G.specific_fn.loc27_3.2 (constants.%G.specific_fn)] +// CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.specific_fn.loc27_3.1(%x.ref) +// CHECK:STDOUT: +// CHECK:STDOUT: } +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @F(constants.%A, constants.%B) { +// CHECK:STDOUT: %A.loc25_6.1 => constants.%A +// CHECK:STDOUT: %A.as_type.loc25_17.1 => constants.%A.as_type +// CHECK:STDOUT: %B.loc25_13.1 => constants.%B +// CHECK:STDOUT: %pattern_type.loc25_13 => constants.%pattern_type.8ba +// CHECK:STDOUT: %require_complete.loc25_29 => constants.%require_complete.8dd +// CHECK:STDOUT: %C.loc25_29.1 => constants.%C +// CHECK:STDOUT: %pattern_type.loc25_20 => constants.%pattern_type.f19 +// CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/for/actual.carbon b/toolchain/check/testdata/for/actual.carbon index f514e39bab7fd..667cc45518582 100644 --- a/toolchain/check/testdata/for/actual.carbon +++ b/toolchain/check/testdata/for/actual.carbon @@ -226,8 +226,8 @@ fn Read() { // CHECK:STDOUT: %ElementType: %Copy.type = assoc_const_decl @ElementType [concrete] {} // CHECK:STDOUT: %Core.import_ref.d0f6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.afd) = import_ref Core//prelude/types/int, loc21_31, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.6cd)] // CHECK:STDOUT: %Copy.impl_witness_table.1ed = impl_witness_table (%Core.import_ref.d0f6), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.725b: @Optional.%Optional.None.type (%Optional.None.type.3df) = import_ref Core//prelude/iterate, inst146 [indirect], loaded [symbolic = @Optional.%Optional.None (constants.%Optional.None.321)] -// CHECK:STDOUT: %Core.import_ref.9103: @Optional.%Optional.Some.type (%Optional.Some.type.48a) = import_ref Core//prelude/iterate, inst147 [indirect], loaded [symbolic = @Optional.%Optional.Some (constants.%Optional.Some.a29)] +// CHECK:STDOUT: %Core.import_ref.725b: @Optional.%Optional.None.type (%Optional.None.type.3df) = import_ref Core//prelude/iterate, inst145 [indirect], loaded [symbolic = @Optional.%Optional.None (constants.%Optional.None.321)] +// CHECK:STDOUT: %Core.import_ref.9103: @Optional.%Optional.Some.type (%Optional.Some.type.48a) = import_ref Core//prelude/iterate, inst146 [indirect], loaded [symbolic = @Optional.%Optional.Some (constants.%Optional.Some.a29)] // CHECK:STDOUT: %Core.Optional: %Optional.type = import_ref Core//prelude/types/optional, Optional, loaded [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/copy, Copy, loaded [concrete = constants.%Copy.type] @@ -896,11 +896,11 @@ fn Read() { // CHECK:STDOUT: %require_complete.524: = require_complete_type %IntRange.349 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.cb9: = lookup_impl_witness %Int.7ff11f.1, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.a66: %Copy.type = facet_value %Int.7ff11f.1, (%Copy.lookup_impl_witness.cb9) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int.7ff11f.1, (%Copy.lookup_impl_witness.cb9) [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] -// CHECK:STDOUT: %.126: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.a66 [symbolic] +// CHECK:STDOUT: %.126: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] // CHECK:STDOUT: %impl.elem0.9e7: %.126 = impl_witness_access %Copy.lookup_impl_witness.cb9, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.225: = specific_impl_function %impl.elem0.9e7, @Copy.Op(%Copy.facet.a66) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.225: = specific_impl_function %impl.elem0.9e7, @Copy.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %IntRange.365: type = class_type @IntRange, @IntRange(%int_32) [concrete] // CHECK:STDOUT: %IntRange.Make.type.cef: type = fn_type @IntRange.Make, @IntRange(%int_32) [concrete] @@ -969,7 +969,7 @@ fn Read() { // CHECK:STDOUT: %Main.import_ref.c10: = import_ref Main//lib, loc4_39, loaded [symbolic = @IntRange.as.Destroy.impl.%Destroy.impl_witness (constants.%Destroy.impl_witness.224)] // CHECK:STDOUT: %Main.import_ref.f1e294.3: Core.IntLiteral = import_ref Main//lib, loc4_16, loaded [symbolic = @IntRange.%N (constants.%N)] // CHECK:STDOUT: %Main.import_ref.dae: type = import_ref Main//lib, loc4_39, loaded [symbolic = @IntRange.as.Destroy.impl.%IntRange (constants.%IntRange.349)] -// CHECK:STDOUT: %Main.import_ref.e45: type = import_ref Main//lib, inst733 [no loc], loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Main.import_ref.e45: type = import_ref Main//lib, inst720 [no loc], loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Main.import_ref.d62: @IntRange.as.Destroy.impl.%IntRange.as.Destroy.impl.Op.type (%IntRange.as.Destroy.impl.Op.type.c84) = import_ref Main//lib, loc4_39, loaded [symbolic = @IntRange.as.Destroy.impl.%IntRange.as.Destroy.impl.Op (constants.%IntRange.as.Destroy.impl.Op.1ba)] // CHECK:STDOUT: %Destroy.impl_witness_table.b26 = impl_witness_table (%Main.import_ref.d62), @IntRange.as.Destroy.impl [concrete] // CHECK:STDOUT: %Main.import_ref.f1e294.4: Core.IntLiteral = import_ref Main//lib, loc4_16, loaded [symbolic = @IntRange.%N (constants.%N)] @@ -1084,7 +1084,7 @@ fn Read() { // CHECK:STDOUT: %require_complete.2: = require_complete_type %Int [symbolic = %require_complete.2 (constants.%require_complete.ffde5f.1)] // CHECK:STDOUT: %struct_type.start.end: type = struct_type {.start: @IntRange.Make.%Int (%Int.7ff11f.1), .end: @IntRange.Make.%Int (%Int.7ff11f.1)} [symbolic = %struct_type.start.end (constants.%struct_type.start.end.434)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.cb9)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.a66)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] // CHECK:STDOUT: %.1: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.1 (constants.%.126)] // CHECK:STDOUT: %impl.elem0: @IntRange.Make.%.1 (%.126) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0 (constants.%impl.elem0.9e7)] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn (constants.%specific_impl_fn.225)] diff --git a/toolchain/check/testdata/for/basic.carbon b/toolchain/check/testdata/for/basic.carbon index 6c0c5443f4d5d..4d41d9dd41f3c 100644 --- a/toolchain/check/testdata/for/basic.carbon +++ b/toolchain/check/testdata/for/basic.carbon @@ -62,7 +62,7 @@ fn Run() { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.be8: %Copy.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %Copy.impl_witness.c9a: = impl_witness imports.%Copy.impl_witness_table.955 [concrete] -// CHECK:STDOUT: %Copy.facet.d65: %Copy.type = facet_value %empty_tuple.type, (%Copy.impl_witness.c9a) [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %empty_tuple.type, (%Copy.impl_witness.c9a) [concrete] // CHECK:STDOUT: %Iterate.NewCursor.type: type = fn_type @Iterate.NewCursor [concrete] // CHECK:STDOUT: %Iterate.Next.type: type = fn_type @Iterate.Next [concrete] // CHECK:STDOUT: %Optional.HasValue.type.b77: type = fn_type @Optional.HasValue, @Optional(%T.be8) [symbolic] @@ -73,10 +73,10 @@ fn Run() { // CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.type.81eeda.1: type = fn_type @TrivialRange.as.Iterate.impl.NewCursor.loc6_32.1 [concrete] // CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.d4796b.1: %TrivialRange.as.Iterate.impl.NewCursor.type.81eeda.1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Optional.68c: type = class_type @Optional, @Optional(%Copy.facet.d65) [concrete] +// CHECK:STDOUT: %Optional.68c: type = class_type @Optional, @Optional(%Copy.facet) [concrete] // CHECK:STDOUT: %TrivialRange.as.Iterate.impl.Next.type: type = fn_type @TrivialRange.as.Iterate.impl.Next [concrete] // CHECK:STDOUT: %TrivialRange.as.Iterate.impl.Next: %TrivialRange.as.Iterate.impl.Next.type = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.d07: %Iterate.type = facet_value %TrivialRange, (%Iterate.impl_witness) [concrete] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %TrivialRange, (%Iterate.impl_witness) [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.type.81eeda.2: type = fn_type @TrivialRange.as.Iterate.impl.NewCursor.loc6_32.2 [concrete] // CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.d4796b.2: %TrivialRange.as.Iterate.impl.NewCursor.type.81eeda.2 = struct_value () [concrete] @@ -84,25 +84,25 @@ fn Run() { // CHECK:STDOUT: %TrivialRange.as.Destroy.impl.Op.type: type = fn_type @TrivialRange.as.Destroy.impl.Op [concrete] // CHECK:STDOUT: %TrivialRange.as.Destroy.impl.Op: %TrivialRange.as.Destroy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %Optional.HasValue.type.cac: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.d65) [concrete] +// CHECK:STDOUT: %Optional.HasValue.type.cac: type = fn_type @Optional.HasValue, @Optional(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.HasValue.5e3: %Optional.HasValue.type.cac = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.a4e: type = fn_type @Optional.Get, @Optional(%Copy.facet.d65) [concrete] +// CHECK:STDOUT: %Optional.Get.type.a4e: type = fn_type @Optional.Get, @Optional(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.Get.1d7: %Optional.Get.type.a4e = struct_value () [concrete] // CHECK:STDOUT: %Body.type: type = fn_type @Body [concrete] // CHECK:STDOUT: %Body: %Body.type = struct_value () [concrete] // CHECK:STDOUT: %AfterLoop.type: type = fn_type @AfterLoop [concrete] // CHECK:STDOUT: %AfterLoop: %AfterLoop.type = struct_value () [concrete] // CHECK:STDOUT: %TrivialRange.val: %TrivialRange = struct_value () [concrete] -// CHECK:STDOUT: %.298: type = fn_type_with_self_type %Iterate.NewCursor.type, %Iterate.facet.d07 [concrete] -// CHECK:STDOUT: %.b35: type = fn_type_with_self_type %Iterate.Next.type, %Iterate.facet.d07 [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.5e3, @Optional.HasValue(%Copy.facet.d65) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.1d7, @Optional.Get(%Copy.facet.d65) [concrete] +// CHECK:STDOUT: %.298: type = fn_type_with_self_type %Iterate.NewCursor.type, %Iterate.facet [concrete] +// CHECK:STDOUT: %.b35: type = fn_type_with_self_type %Iterate.Next.type, %Iterate.facet [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.5e3, @Optional.HasValue(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.1d7, @Optional.Get(%Copy.facet) [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.as.Destroy.impl.Op.type.6cb: type = fn_type @Optional.as.Destroy.impl.Op, @Optional.as.Destroy.impl(%Copy.facet.d65) [concrete] +// CHECK:STDOUT: %Optional.as.Destroy.impl.Op.type.6cb: type = fn_type @Optional.as.Destroy.impl.Op, @Optional.as.Destroy.impl(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.as.Destroy.impl.Op.30f: %Optional.as.Destroy.impl.Op.type.6cb = struct_value () [concrete] // CHECK:STDOUT: %ptr.17e: type = ptr_type %Optional.68c [concrete] // CHECK:STDOUT: %empty_tuple.type.as.Copy.impl.Op.type: type = fn_type @empty_tuple.type.as.Copy.impl.Op [concrete] @@ -112,8 +112,8 @@ fn Run() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core.import_ref.1a3: %empty_tuple.type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc44_31, loaded [concrete = constants.%empty_tuple.type.as.Copy.impl.Op] // CHECK:STDOUT: %Copy.impl_witness_table.955 = impl_witness_table (%Core.import_ref.1a3), @empty_tuple.type.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.b87: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.b77) = import_ref Core//prelude/parts/iterate, inst107 [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.110)] -// CHECK:STDOUT: %Core.import_ref.d08: @Optional.%Optional.Get.type (%Optional.Get.type.81f) = import_ref Core//prelude/parts/iterate, inst108 [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.546)] +// CHECK:STDOUT: %Core.import_ref.b87: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.b77) = import_ref Core//prelude/parts/iterate, inst106 [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.110)] +// CHECK:STDOUT: %Core.import_ref.d08: @Optional.%Optional.Get.type (%Optional.Get.type.81f) = import_ref Core//prelude/parts/iterate, inst107 [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.546)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { @@ -145,10 +145,10 @@ fn Run() { // CHECK:STDOUT: %.loc18_20.3: %TrivialRange = bind_value %.loc18_20.1 // CHECK:STDOUT: %TrivialRange.as.Iterate.impl.Next.call: init %Optional.68c = call %bound_method.loc18_35.2(%.loc18_20.3, %addr.loc18_35.1) to %.loc18_35.1 // CHECK:STDOUT: %.loc18_35.2: ref %Optional.68c = temporary %.loc18_35.1, %TrivialRange.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc18_35.3: %Optional.HasValue.type.cac = specific_constant imports.%Core.import_ref.b87, @Optional(constants.%Copy.facet.d65) [concrete = constants.%Optional.HasValue.5e3] +// CHECK:STDOUT: %.loc18_35.3: %Optional.HasValue.type.cac = specific_constant imports.%Core.import_ref.b87, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.5e3] // CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.cac = name_ref HasValue, %.loc18_35.3 [concrete = constants.%Optional.HasValue.5e3] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc18_35.2, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.d65) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc18_35.3: = bound_method %.loc18_35.2, %Optional.HasValue.specific_fn // CHECK:STDOUT: %.loc18_35.4: %Optional.68c = bind_value %.loc18_35.2 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc18_35.3(%.loc18_35.4) @@ -157,10 +157,10 @@ fn Run() { // CHECK:STDOUT: if %.loc18_35.6 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc18_35.7: %Optional.Get.type.a4e = specific_constant imports.%Core.import_ref.d08, @Optional(constants.%Copy.facet.d65) [concrete = constants.%Optional.Get.1d7] +// CHECK:STDOUT: %.loc18_35.7: %Optional.Get.type.a4e = specific_constant imports.%Core.import_ref.d08, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.Get.1d7] // CHECK:STDOUT: %Get.ref: %Optional.Get.type.a4e = name_ref Get, %.loc18_35.7 [concrete = constants.%Optional.Get.1d7] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc18_35.2, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.d65) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc18_35.4: = bound_method %.loc18_35.2, %Optional.Get.specific_fn // CHECK:STDOUT: %.loc18_35.8: %Optional.68c = bind_value %.loc18_35.2 // CHECK:STDOUT: %Optional.Get.call: init %empty_tuple.type = call %bound_method.loc18_35.4(%.loc18_35.8) diff --git a/toolchain/check/testdata/for/pattern.carbon b/toolchain/check/testdata/for/pattern.carbon index d6cef6cccc64d..226c3c31e595a 100644 --- a/toolchain/check/testdata/for/pattern.carbon +++ b/toolchain/check/testdata/for/pattern.carbon @@ -134,11 +134,11 @@ fn Run() { // CHECK:STDOUT: %EmptyRange.Make.type.838: type = fn_type @EmptyRange.Make, @EmptyRange(%T.7dd) [symbolic] // CHECK:STDOUT: %EmptyRange.Make.b34: %EmptyRange.Make.type.838 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.1de: = impl_witness imports.%Copy.impl_witness_table.2c6 [concrete] -// CHECK:STDOUT: %Copy.facet.762: %Copy.type = facet_value %C, (%Copy.impl_witness.1de) [concrete] -// CHECK:STDOUT: %EmptyRange.ab3: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.762) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.type.f28: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %C, (%Copy.impl_witness.1de) [concrete] +// CHECK:STDOUT: %EmptyRange.ab3: type = class_type @EmptyRange, @EmptyRange(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.type.f28: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet) [concrete] // CHECK:STDOUT: %EmptyRange.Make.203: %EmptyRange.Make.type.f28 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.203, @EmptyRange.Make(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.203, @EmptyRange.Make(%Copy.facet) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] // CHECK:STDOUT: %Iterate.NewCursor.type: type = fn_type @Iterate.NewCursor [concrete] // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.22a: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.7dd) [symbolic] @@ -149,35 +149,35 @@ fn Run() { // CHECK:STDOUT: %Optional.HasValue.d64: %Optional.HasValue.type.5d5 = struct_value () [symbolic] // CHECK:STDOUT: %Optional.Get.type.91e: type = fn_type @Optional.Get, @Optional(%T.7dd) [symbolic] // CHECK:STDOUT: %Optional.Get.4d9: %Optional.Get.type.91e = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.impl_witness.9b1: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.762) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.b3a: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.9b1: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.b3a: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.680: %EmptyRange.as.Iterate.impl.NewCursor.type.b3a = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.7e7: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.7e7: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.02b: %EmptyRange.as.Iterate.impl.Next.type.7e7 = struct_value () [concrete] // CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.ab3, (%Iterate.impl_witness.9b1) [concrete] // CHECK:STDOUT: %.740: type = fn_type_with_self_type %Iterate.NewCursor.type, %Iterate.facet [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.680, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.680, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet) [concrete] // CHECK:STDOUT: %Iterate.Next.type: type = fn_type @Iterate.Next [concrete] // CHECK:STDOUT: %.dc5: type = fn_type_with_self_type %Iterate.Next.type, %Iterate.facet [concrete] -// CHECK:STDOUT: %Optional.47f: type = class_type @Optional, @Optional(%Copy.facet.762) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.02b, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.762) [concrete] -// CHECK:STDOUT: %Optional.HasValue.type.970: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %Optional.47f: type = class_type @Optional, @Optional(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.02b, @EmptyRange.as.Iterate.impl.Next(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.HasValue.type.970: type = fn_type @Optional.HasValue, @Optional(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.HasValue.ac0: %Optional.HasValue.type.970 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.f65: type = fn_type @Optional.Get, @Optional(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %Optional.Get.type.f65: type = fn_type @Optional.Get, @Optional(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.Get.71a: %Optional.Get.type.f65 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.ac0, @Optional.HasValue(%Copy.facet.762) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.71a, @Optional.Get(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.ac0, @Optional.HasValue(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.71a, @Optional.Get(%Copy.facet) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %C.as.Destroy.impl.Op.type: type = fn_type @C.as.Destroy.impl.Op [concrete] // CHECK:STDOUT: %C.as.Destroy.impl.Op: %C.as.Destroy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Optional.as.Destroy.impl.Op.type.524: type = fn_type @Optional.as.Destroy.impl.Op, @Optional.as.Destroy.impl(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %Optional.as.Destroy.impl.Op.type.524: type = fn_type @Optional.as.Destroy.impl.Op, @Optional.as.Destroy.impl(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.as.Destroy.impl.Op.28c: %Optional.as.Destroy.impl.Op.type.524 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c56: type = ptr_type %Optional.47f [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_struct_type, () [concrete] // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bf3: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.as.Destroy.impl.Op.type.3bb: type = fn_type @EmptyRange.as.Destroy.impl.Op, @EmptyRange.as.Destroy.impl(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Destroy.impl.Op.type.3bb: type = fn_type @EmptyRange.as.Destroy.impl.Op, @EmptyRange.as.Destroy.impl(%Copy.facet) [concrete] // CHECK:STDOUT: %EmptyRange.as.Destroy.impl.Op.2df: %EmptyRange.as.Destroy.impl.Op.type.3bb = struct_value () [concrete] // CHECK:STDOUT: %ptr.43f: type = ptr_type %EmptyRange.ab3 [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op.type: type = fn_type @C.as.Copy.impl.Op [concrete] @@ -195,8 +195,8 @@ fn Run() { // CHECK:STDOUT: %Main.import_ref.85e: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor.type (%EmptyRange.as.Iterate.impl.NewCursor.type.22a) = import_ref Main//empty_range, loc8_38, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor (constants.%EmptyRange.as.Iterate.impl.NewCursor.28c)] // CHECK:STDOUT: %Main.import_ref.782: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next.type (%EmptyRange.as.Iterate.impl.Next.type.e5a) = import_ref Main//empty_range, loc11_58, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next (constants.%EmptyRange.as.Iterate.impl.Next.185)] // CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.4d9, %Main.import_ref.999, %Main.import_ref.85e, %Main.import_ref.782), @EmptyRange.as.Iterate.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.cfa: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.5d5) = import_ref Main//empty_range, inst151 [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.d64)] -// CHECK:STDOUT: %Main.import_ref.01a: @Optional.%Optional.Get.type (%Optional.Get.type.91e) = import_ref Main//empty_range, inst152 [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.4d9)] +// CHECK:STDOUT: %Main.import_ref.cfa: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.5d5) = import_ref Main//empty_range, inst150 [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.d64)] +// CHECK:STDOUT: %Main.import_ref.01a: @Optional.%Optional.Get.type (%Optional.Get.type.91e) = import_ref Main//empty_range, inst151 [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.4d9)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { @@ -206,18 +206,18 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %EmptyRange.ref: %EmptyRange.type = name_ref EmptyRange, imports.%Main.EmptyRange [concrete = constants.%EmptyRange.generic] // CHECK:STDOUT: %C.ref.loc10_27: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%C, (constants.%Copy.impl_witness.1de) [concrete = constants.%Copy.facet.762] -// CHECK:STDOUT: %.loc10_28: %Copy.type = converted %C.ref.loc10_27, %Copy.facet [concrete = constants.%Copy.facet.762] -// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.762) [concrete = constants.%EmptyRange.ab3] -// CHECK:STDOUT: %.loc10_29: %EmptyRange.Make.type.f28 = specific_constant imports.%Main.import_ref.8f2f, @EmptyRange(constants.%Copy.facet.762) [concrete = constants.%EmptyRange.Make.203] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%C, (constants.%Copy.impl_witness.1de) [concrete = constants.%Copy.facet] +// CHECK:STDOUT: %.loc10_28: %Copy.type = converted %C.ref.loc10_27, %Copy.facet [concrete = constants.%Copy.facet] +// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet) [concrete = constants.%EmptyRange.ab3] +// CHECK:STDOUT: %.loc10_29: %EmptyRange.Make.type.f28 = specific_constant imports.%Main.import_ref.8f2f, @EmptyRange(constants.%Copy.facet) [concrete = constants.%EmptyRange.Make.203] // CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.f28 = name_ref Make, %.loc10_29 [concrete = constants.%EmptyRange.Make.203] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.762) [concrete = constants.%EmptyRange.Make.specific_fn] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet) [concrete = constants.%EmptyRange.Make.specific_fn] // CHECK:STDOUT: %.loc10_35.1: ref %EmptyRange.ab3 = temporary_storage // CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.ab3 = call %EmptyRange.Make.specific_fn() to %.loc10_35.1 // CHECK:STDOUT: %.loc10_35.2: ref %EmptyRange.ab3 = temporary %.loc10_35.1, %EmptyRange.Make.call // CHECK:STDOUT: %impl.elem2: %.740 = impl_witness_access constants.%Iterate.impl_witness.9b1, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.680] // CHECK:STDOUT: %bound_method.loc10_36.1: = bound_method %.loc10_35.2, %impl.elem2 -// CHECK:STDOUT: %specific_fn.loc10_36.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet.762) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_36.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc10_36.2: = bound_method %.loc10_35.2, %specific_fn.loc10_36.1 // CHECK:STDOUT: %.loc10_35.3: %EmptyRange.ab3 = bind_value %.loc10_35.2 // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.call: init %empty_struct_type = call %bound_method.loc10_36.2(%.loc10_35.3) @@ -229,16 +229,16 @@ fn Run() { // CHECK:STDOUT: %addr.loc10_36.1: %ptr.c28 = addr_of %var // CHECK:STDOUT: %impl.elem3: %.dc5 = impl_witness_access constants.%Iterate.impl_witness.9b1, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.02b] // CHECK:STDOUT: %bound_method.loc10_36.3: = bound_method %.loc10_35.2, %impl.elem3 -// CHECK:STDOUT: %specific_fn.loc10_36.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet.762) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_36.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] // CHECK:STDOUT: %bound_method.loc10_36.4: = bound_method %.loc10_35.2, %specific_fn.loc10_36.2 // CHECK:STDOUT: %.loc10_36.1: ref %Optional.47f = temporary_storage // CHECK:STDOUT: %.loc10_35.4: %EmptyRange.ab3 = bind_value %.loc10_35.2 // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.47f = call %bound_method.loc10_36.4(%.loc10_35.4, %addr.loc10_36.1) to %.loc10_36.1 // CHECK:STDOUT: %.loc10_36.2: ref %Optional.47f = temporary %.loc10_36.1, %EmptyRange.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc10_36.3: %Optional.HasValue.type.970 = specific_constant imports.%Main.import_ref.cfa, @Optional(constants.%Copy.facet.762) [concrete = constants.%Optional.HasValue.ac0] +// CHECK:STDOUT: %.loc10_36.3: %Optional.HasValue.type.970 = specific_constant imports.%Main.import_ref.cfa, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.ac0] // CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.970 = name_ref HasValue, %.loc10_36.3 [concrete = constants.%Optional.HasValue.ac0] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc10_36.2, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.762) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc10_36.5: = bound_method %.loc10_36.2, %Optional.HasValue.specific_fn // CHECK:STDOUT: %.loc10_36.4: %Optional.47f = bind_value %.loc10_36.2 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc10_36.5(%.loc10_36.4) @@ -247,10 +247,10 @@ fn Run() { // CHECK:STDOUT: if %.loc10_36.6 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc10_36.7: %Optional.Get.type.f65 = specific_constant imports.%Main.import_ref.01a, @Optional(constants.%Copy.facet.762) [concrete = constants.%Optional.Get.71a] +// CHECK:STDOUT: %.loc10_36.7: %Optional.Get.type.f65 = specific_constant imports.%Main.import_ref.01a, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.Get.71a] // CHECK:STDOUT: %Get.ref: %Optional.Get.type.f65 = name_ref Get, %.loc10_36.7 [concrete = constants.%Optional.Get.71a] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc10_36.2, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.762) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc10_36.6: = bound_method %.loc10_36.2, %Optional.Get.specific_fn // CHECK:STDOUT: %.loc10_36.8: ref %C = temporary_storage // CHECK:STDOUT: %.loc10_36.9: %Optional.47f = bind_value %.loc10_36.2 @@ -306,11 +306,11 @@ fn Run() { // CHECK:STDOUT: %EmptyRange.Make.type.838: type = fn_type @EmptyRange.Make, @EmptyRange(%T.7dd) [symbolic] // CHECK:STDOUT: %EmptyRange.Make.b34: %EmptyRange.Make.type.838 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.1de: = impl_witness imports.%Copy.impl_witness_table.2c6 [concrete] -// CHECK:STDOUT: %Copy.facet.762: %Copy.type = facet_value %C, (%Copy.impl_witness.1de) [concrete] -// CHECK:STDOUT: %EmptyRange.ab3: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.762) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.type.f28: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %C, (%Copy.impl_witness.1de) [concrete] +// CHECK:STDOUT: %EmptyRange.ab3: type = class_type @EmptyRange, @EmptyRange(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.type.f28: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet) [concrete] // CHECK:STDOUT: %EmptyRange.Make.203: %EmptyRange.Make.type.f28 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.203, @EmptyRange.Make(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.203, @EmptyRange.Make(%Copy.facet) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] // CHECK:STDOUT: %Iterate.NewCursor.type: type = fn_type @Iterate.NewCursor [concrete] // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.22a: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.7dd) [symbolic] @@ -321,34 +321,34 @@ fn Run() { // CHECK:STDOUT: %Optional.HasValue.d64: %Optional.HasValue.type.5d5 = struct_value () [symbolic] // CHECK:STDOUT: %Optional.Get.type.91e: type = fn_type @Optional.Get, @Optional(%T.7dd) [symbolic] // CHECK:STDOUT: %Optional.Get.4d9: %Optional.Get.type.91e = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.impl_witness.9b1: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.762) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.b3a: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.9b1: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.b3a: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.680: %EmptyRange.as.Iterate.impl.NewCursor.type.b3a = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.7e7: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.7e7: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.02b: %EmptyRange.as.Iterate.impl.Next.type.7e7 = struct_value () [concrete] // CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.ab3, (%Iterate.impl_witness.9b1) [concrete] // CHECK:STDOUT: %.740: type = fn_type_with_self_type %Iterate.NewCursor.type, %Iterate.facet [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.680, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.680, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet) [concrete] // CHECK:STDOUT: %Iterate.Next.type: type = fn_type @Iterate.Next [concrete] // CHECK:STDOUT: %.dc5: type = fn_type_with_self_type %Iterate.Next.type, %Iterate.facet [concrete] -// CHECK:STDOUT: %Optional.47f: type = class_type @Optional, @Optional(%Copy.facet.762) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.02b, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.762) [concrete] -// CHECK:STDOUT: %Optional.HasValue.type.970: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %Optional.47f: type = class_type @Optional, @Optional(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.02b, @EmptyRange.as.Iterate.impl.Next(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.HasValue.type.970: type = fn_type @Optional.HasValue, @Optional(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.HasValue.ac0: %Optional.HasValue.type.970 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.f65: type = fn_type @Optional.Get, @Optional(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %Optional.Get.type.f65: type = fn_type @Optional.Get, @Optional(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.Get.71a: %Optional.Get.type.f65 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.ac0, @Optional.HasValue(%Copy.facet.762) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.71a, @Optional.Get(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.ac0, @Optional.HasValue(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.71a, @Optional.Get(%Copy.facet) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %C.as.Destroy.impl.Op.type: type = fn_type @C.as.Destroy.impl.Op [concrete] // CHECK:STDOUT: %C.as.Destroy.impl.Op: %C.as.Destroy.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Optional.as.Destroy.impl.Op.type.524: type = fn_type @Optional.as.Destroy.impl.Op, @Optional.as.Destroy.impl(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %Optional.as.Destroy.impl.Op.type.524: type = fn_type @Optional.as.Destroy.impl.Op, @Optional.as.Destroy.impl(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.as.Destroy.impl.Op.28c: %Optional.as.Destroy.impl.Op.type.524 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c56: type = ptr_type %Optional.47f [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_struct_type, () [concrete] // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bf3: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.as.Destroy.impl.Op.type.3bb: type = fn_type @EmptyRange.as.Destroy.impl.Op, @EmptyRange.as.Destroy.impl(%Copy.facet.762) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Destroy.impl.Op.type.3bb: type = fn_type @EmptyRange.as.Destroy.impl.Op, @EmptyRange.as.Destroy.impl(%Copy.facet) [concrete] // CHECK:STDOUT: %EmptyRange.as.Destroy.impl.Op.2df: %EmptyRange.as.Destroy.impl.Op.type.3bb = struct_value () [concrete] // CHECK:STDOUT: %ptr.43f: type = ptr_type %EmptyRange.ab3 [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op.type: type = fn_type @C.as.Copy.impl.Op [concrete] @@ -366,8 +366,8 @@ fn Run() { // CHECK:STDOUT: %Main.import_ref.85e: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor.type (%EmptyRange.as.Iterate.impl.NewCursor.type.22a) = import_ref Main//empty_range, loc8_38, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor (constants.%EmptyRange.as.Iterate.impl.NewCursor.28c)] // CHECK:STDOUT: %Main.import_ref.782: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next.type (%EmptyRange.as.Iterate.impl.Next.type.e5a) = import_ref Main//empty_range, loc11_58, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next (constants.%EmptyRange.as.Iterate.impl.Next.185)] // CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.4d9, %Main.import_ref.999, %Main.import_ref.85e, %Main.import_ref.782), @EmptyRange.as.Iterate.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.cfa: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.5d5) = import_ref Main//empty_range, inst151 [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.d64)] -// CHECK:STDOUT: %Main.import_ref.01a: @Optional.%Optional.Get.type (%Optional.Get.type.91e) = import_ref Main//empty_range, inst152 [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.4d9)] +// CHECK:STDOUT: %Main.import_ref.cfa: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.5d5) = import_ref Main//empty_range, inst150 [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.d64)] +// CHECK:STDOUT: %Main.import_ref.01a: @Optional.%Optional.Get.type (%Optional.Get.type.91e) = import_ref Main//empty_range, inst151 [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.4d9)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { @@ -378,18 +378,18 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %EmptyRange.ref: %EmptyRange.type = name_ref EmptyRange, imports.%Main.EmptyRange [concrete = constants.%EmptyRange.generic] // CHECK:STDOUT: %C.ref.loc10_31: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%C, (constants.%Copy.impl_witness.1de) [concrete = constants.%Copy.facet.762] -// CHECK:STDOUT: %.loc10_32: %Copy.type = converted %C.ref.loc10_31, %Copy.facet [concrete = constants.%Copy.facet.762] -// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.762) [concrete = constants.%EmptyRange.ab3] -// CHECK:STDOUT: %.loc10_33: %EmptyRange.Make.type.f28 = specific_constant imports.%Main.import_ref.8f2f, @EmptyRange(constants.%Copy.facet.762) [concrete = constants.%EmptyRange.Make.203] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%C, (constants.%Copy.impl_witness.1de) [concrete = constants.%Copy.facet] +// CHECK:STDOUT: %.loc10_32: %Copy.type = converted %C.ref.loc10_31, %Copy.facet [concrete = constants.%Copy.facet] +// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet) [concrete = constants.%EmptyRange.ab3] +// CHECK:STDOUT: %.loc10_33: %EmptyRange.Make.type.f28 = specific_constant imports.%Main.import_ref.8f2f, @EmptyRange(constants.%Copy.facet) [concrete = constants.%EmptyRange.Make.203] // CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.f28 = name_ref Make, %.loc10_33 [concrete = constants.%EmptyRange.Make.203] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.762) [concrete = constants.%EmptyRange.Make.specific_fn] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet) [concrete = constants.%EmptyRange.Make.specific_fn] // CHECK:STDOUT: %.loc10_39.1: ref %EmptyRange.ab3 = temporary_storage // CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.ab3 = call %EmptyRange.Make.specific_fn() to %.loc10_39.1 // CHECK:STDOUT: %.loc10_39.2: ref %EmptyRange.ab3 = temporary %.loc10_39.1, %EmptyRange.Make.call // CHECK:STDOUT: %impl.elem2: %.740 = impl_witness_access constants.%Iterate.impl_witness.9b1, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.680] // CHECK:STDOUT: %bound_method.loc10_40.1: = bound_method %.loc10_39.2, %impl.elem2 -// CHECK:STDOUT: %specific_fn.loc10_40.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet.762) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_40.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc10_40.2: = bound_method %.loc10_39.2, %specific_fn.loc10_40.1 // CHECK:STDOUT: %.loc10_39.3: %EmptyRange.ab3 = bind_value %.loc10_39.2 // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.call: init %empty_struct_type = call %bound_method.loc10_40.2(%.loc10_39.3) @@ -401,16 +401,16 @@ fn Run() { // CHECK:STDOUT: %addr.loc10_40.1: %ptr.c28 = addr_of %var // CHECK:STDOUT: %impl.elem3: %.dc5 = impl_witness_access constants.%Iterate.impl_witness.9b1, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.02b] // CHECK:STDOUT: %bound_method.loc10_40.3: = bound_method %.loc10_39.2, %impl.elem3 -// CHECK:STDOUT: %specific_fn.loc10_40.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet.762) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_40.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] // CHECK:STDOUT: %bound_method.loc10_40.4: = bound_method %.loc10_39.2, %specific_fn.loc10_40.2 // CHECK:STDOUT: %.loc10_40.1: ref %Optional.47f = temporary_storage // CHECK:STDOUT: %.loc10_39.4: %EmptyRange.ab3 = bind_value %.loc10_39.2 // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.47f = call %bound_method.loc10_40.4(%.loc10_39.4, %addr.loc10_40.1) to %.loc10_40.1 // CHECK:STDOUT: %.loc10_40.2: ref %Optional.47f = temporary %.loc10_40.1, %EmptyRange.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc10_40.3: %Optional.HasValue.type.970 = specific_constant imports.%Main.import_ref.cfa, @Optional(constants.%Copy.facet.762) [concrete = constants.%Optional.HasValue.ac0] +// CHECK:STDOUT: %.loc10_40.3: %Optional.HasValue.type.970 = specific_constant imports.%Main.import_ref.cfa, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.ac0] // CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.970 = name_ref HasValue, %.loc10_40.3 [concrete = constants.%Optional.HasValue.ac0] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc10_40.2, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.762) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc10_40.5: = bound_method %.loc10_40.2, %Optional.HasValue.specific_fn // CHECK:STDOUT: %.loc10_40.4: %Optional.47f = bind_value %.loc10_40.2 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc10_40.5(%.loc10_40.4) @@ -420,10 +420,10 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: !for.body: // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt -// CHECK:STDOUT: %.loc10_40.7: %Optional.Get.type.f65 = specific_constant imports.%Main.import_ref.01a, @Optional(constants.%Copy.facet.762) [concrete = constants.%Optional.Get.71a] +// CHECK:STDOUT: %.loc10_40.7: %Optional.Get.type.f65 = specific_constant imports.%Main.import_ref.01a, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.Get.71a] // CHECK:STDOUT: %Get.ref: %Optional.Get.type.f65 = name_ref Get, %.loc10_40.7 [concrete = constants.%Optional.Get.71a] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc10_40.2, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.762) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc10_40.6: = bound_method %.loc10_40.2, %Optional.Get.specific_fn // CHECK:STDOUT: %.loc10_8: ref %C = splice_block %c.var {} // CHECK:STDOUT: %.loc10_40.8: %Optional.47f = bind_value %.loc10_40.2 @@ -550,8 +550,8 @@ fn Run() { // CHECK:STDOUT: %Main.import_ref.85e: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor.type (%EmptyRange.as.Iterate.impl.NewCursor.type.22a) = import_ref Main//empty_range, loc8_38, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor (constants.%EmptyRange.as.Iterate.impl.NewCursor.28c)] // CHECK:STDOUT: %Main.import_ref.782: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next.type (%EmptyRange.as.Iterate.impl.Next.type.e5a) = import_ref Main//empty_range, loc11_58, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next (constants.%EmptyRange.as.Iterate.impl.Next.185)] // CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.4d9, %Main.import_ref.999, %Main.import_ref.85e, %Main.import_ref.782), @EmptyRange.as.Iterate.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.cfa: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.5d5) = import_ref Main//empty_range, inst151 [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.d64)] -// CHECK:STDOUT: %Main.import_ref.01a: @Optional.%Optional.Get.type (%Optional.Get.type.91e) = import_ref Main//empty_range, inst152 [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.4d9)] +// CHECK:STDOUT: %Main.import_ref.cfa: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.5d5) = import_ref Main//empty_range, inst150 [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.d64)] +// CHECK:STDOUT: %Main.import_ref.01a: @Optional.%Optional.Get.type (%Optional.Get.type.91e) = import_ref Main//empty_range, inst151 [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.4d9)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { @@ -762,8 +762,8 @@ fn Run() { // CHECK:STDOUT: %Main.import_ref.85e: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor.type (%EmptyRange.as.Iterate.impl.NewCursor.type.22a) = import_ref Main//empty_range, loc8_38, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor (constants.%EmptyRange.as.Iterate.impl.NewCursor.28c)] // CHECK:STDOUT: %Main.import_ref.782: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next.type (%EmptyRange.as.Iterate.impl.Next.type.e5a) = import_ref Main//empty_range, loc11_58, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next (constants.%EmptyRange.as.Iterate.impl.Next.185)] // CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.4d9, %Main.import_ref.999, %Main.import_ref.85e, %Main.import_ref.782), @EmptyRange.as.Iterate.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.cfa: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.5d5) = import_ref Main//empty_range, inst151 [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.d64)] -// CHECK:STDOUT: %Main.import_ref.01a: @Optional.%Optional.Get.type (%Optional.Get.type.91e) = import_ref Main//empty_range, inst152 [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.4d9)] +// CHECK:STDOUT: %Main.import_ref.cfa: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.5d5) = import_ref Main//empty_range, inst150 [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.d64)] +// CHECK:STDOUT: %Main.import_ref.01a: @Optional.%Optional.Get.type (%Optional.Get.type.91e) = import_ref Main//empty_range, inst151 [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.4d9)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { diff --git a/toolchain/check/testdata/function/builtin/fail_redefined.carbon b/toolchain/check/testdata/function/builtin/fail_redefined.carbon index cec5dfd15a9fc..fd249028586f3 100644 --- a/toolchain/check/testdata/function/builtin/fail_redefined.carbon +++ b/toolchain/check/testdata/function/builtin/fail_redefined.carbon @@ -62,8 +62,8 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %B.type.e168e5.1: type = fn_type @B.loc25 [concrete] // CHECK:STDOUT: %B.d1e2df.1: %B.type.e168e5.1 = struct_value () [concrete] diff --git a/toolchain/check/testdata/function/call/i32.carbon b/toolchain/check/testdata/function/call/i32.carbon index 0b74859d3d4e4..4043fc83636f2 100644 --- a/toolchain/check/testdata/function/call/i32.carbon +++ b/toolchain/check/testdata/function/call/i32.carbon @@ -39,8 +39,8 @@ fn Main() { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] diff --git a/toolchain/check/testdata/function/definition/import.carbon b/toolchain/check/testdata/function/definition/import.carbon index aee67bba78f3e..5ad7630a9ac25 100644 --- a/toolchain/check/testdata/function/definition/import.carbon +++ b/toolchain/check/testdata/function/definition/import.carbon @@ -134,8 +134,8 @@ fn D() {} // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] // CHECK:STDOUT: %tuple.type.a1c: type = tuple_type (%i32) [concrete] diff --git a/toolchain/check/testdata/function/generic/call.carbon b/toolchain/check/testdata/function/generic/call.carbon index 4fb0f7025d603..d5585967e3b11 100644 --- a/toolchain/check/testdata/function/generic/call.carbon +++ b/toolchain/check/testdata/function/generic/call.carbon @@ -83,10 +83,9 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: %require_complete.07c: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021: %Copy.type = facet_value %T.as_type, (%Copy.lookup_impl_witness.e15) [symbolic] -// CHECK:STDOUT: %.c50: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021 [symbolic] -// CHECK:STDOUT: %impl.elem0.792: %.c50 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547: = specific_impl_function %impl.elem0.792, @Copy.Op(%Copy.facet.021) [symbolic] +// CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168: %.427 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %ptr.79f: type = ptr_type %T.8b3 [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.31f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.8b3) [symbolic] @@ -164,17 +163,16 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc5_31.1 [symbolic = %require_complete (constants.%require_complete.07c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc5_13.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc5_31.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc6_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc6_10.2 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc6_10.2: @Function.%.loc6_10.2 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc6_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc5_13.1 [symbolic = %.loc6_10.2 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc6_10.2: @Function.%.loc6_10.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.Op(%T.loc5_13.1) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Function.%T.as_type.loc5_31.1 (%T.as_type)) -> %return.param: @Function.%T.as_type.loc5_31.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @Function.%T.as_type.loc5_31.1 (%T.as_type) = name_ref x, %x -// CHECK:STDOUT: %impl.elem0.loc6_10.1: @Function.%.loc6_10.2 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc6_10.1: @Function.%.loc6_10.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %x.ref, %impl.elem0.loc6_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %x.ref, %specific_impl_fn.loc6_10.1 // CHECK:STDOUT: %.loc5_34: ref @Function.%T.as_type.loc5_31.1 (%T.as_type) = splice_block %return {} // CHECK:STDOUT: %.loc6_10.1: init @Function.%T.as_type.loc5_31.1 (%T.as_type) = call %bound_method.loc6_10.2(%x.ref) to %.loc5_34 @@ -255,10 +253,9 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.07c // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.e15 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.021 -// CHECK:STDOUT: %.loc6_10.2 => constants.%.c50 -// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.792 -// CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.547 +// CHECK:STDOUT: %.loc6_10.2 => constants.%.427 +// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.168 +// CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.2ce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T.be8) { @@ -281,7 +278,6 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.6e5 // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.cb2 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.2d1 // CHECK:STDOUT: %.loc6_10.2 => constants.%.1cc // CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.751 // CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.f44 @@ -295,7 +291,6 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.d05 // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.999 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.9e3 // CHECK:STDOUT: %.loc6_10.2 => constants.%.7e9 // CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%ptr.as.Copy.impl.Op.fb8 // CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%ptr.as.Copy.impl.Op.specific_fn @@ -314,10 +309,9 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: %require_complete.07c: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021: %Copy.type = facet_value %T.as_type, (%Copy.lookup_impl_witness.e15) [symbolic] -// CHECK:STDOUT: %.c50: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021 [symbolic] -// CHECK:STDOUT: %impl.elem0.792: %.c50 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547: = specific_impl_function %impl.elem0.792, @Copy.Op(%Copy.facet.021) [symbolic] +// CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168: %.427 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %ptr.79f: type = ptr_type %T.8b3 [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.31f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.8b3) [symbolic] @@ -395,17 +389,16 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc5_31.1 [symbolic = %require_complete (constants.%require_complete.07c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc5_13.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc5_31.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc6_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc6_10.2 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc6_10.2: @Function.%.loc6_10.2 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %.loc6_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc5_13.1 [symbolic = %.loc6_10.2 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc6_10.2: @Function.%.loc6_10.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.Op(%T.loc5_13.1) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Function.%T.as_type.loc5_31.1 (%T.as_type)) -> %return.param: @Function.%T.as_type.loc5_31.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @Function.%T.as_type.loc5_31.1 (%T.as_type) = name_ref x, %x -// CHECK:STDOUT: %impl.elem0.loc6_10.1: @Function.%.loc6_10.2 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.792)] +// CHECK:STDOUT: %impl.elem0.loc6_10.1: @Function.%.loc6_10.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %x.ref, %impl.elem0.loc6_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.547)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %x.ref, %specific_impl_fn.loc6_10.1 // CHECK:STDOUT: %.loc5_34: ref @Function.%T.as_type.loc5_31.1 (%T.as_type) = splice_block %return {} // CHECK:STDOUT: %.loc6_10.1: init @Function.%T.as_type.loc5_31.1 (%T.as_type) = call %bound_method.loc6_10.2(%x.ref) to %.loc5_34 @@ -477,10 +470,9 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.07c // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.e15 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.021 -// CHECK:STDOUT: %.loc6_10.2 => constants.%.c50 -// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.792 -// CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.547 +// CHECK:STDOUT: %.loc6_10.2 => constants.%.427 +// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.168 +// CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.2ce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T.be8) { @@ -503,7 +495,6 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.6e5 // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.cb2 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.2d1 // CHECK:STDOUT: %.loc6_10.2 => constants.%.1cc // CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.751 // CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.f44 @@ -517,7 +508,6 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.d05 // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.999 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.9e3 // CHECK:STDOUT: %.loc6_10.2 => constants.%.7e9 // CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%ptr.as.Copy.impl.Op.fb8 // CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%ptr.as.Copy.impl.Op.specific_fn diff --git a/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon b/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon index e44ffd9f1f17e..023e2c1aaa8f3 100644 --- a/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon +++ b/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon @@ -79,7 +79,7 @@ fn G() { // CHECK:STDOUT: %Generic.impl_witness: = impl_witness file.%Generic.impl_witness_table [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F.type: type = fn_type @ImplsGeneric.as.Generic.impl.F [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F: %ImplsGeneric.as.Generic.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Generic.facet.fcf: %Generic.type.621 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] +// CHECK:STDOUT: %Generic.facet: %Generic.type.621 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] // CHECK:STDOUT: %Other.type: type = facet_type <@Other> [concrete] // CHECK:STDOUT: %Self.e77: %Other.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Other.G.type: type = fn_type @Other.G [concrete] @@ -104,16 +104,15 @@ fn G() { // CHECK:STDOUT: %require_complete: = require_complete_type %Generic.type.2db63e.2 [symbolic] // CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U, @Generic, @Generic(%T) [symbolic] -// CHECK:STDOUT: %Generic.facet.57d: %Generic.type.2db63e.2 = facet_value %U.as_type, (%Generic.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.e73: type = fn_type_with_self_type %Generic.F.type.f439a9.2, %Generic.facet.57d [symbolic] -// CHECK:STDOUT: %impl.elem0: %.e73 = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Generic.F(%T, %Generic.facet.57d) [symbolic] +// CHECK:STDOUT: %.468: type = fn_type_with_self_type %Generic.F.type.f439a9.2, %U [symbolic] +// CHECK:STDOUT: %impl.elem0: %.468 = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Generic.F(%T, %U) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.c4b: type = pattern_type %Generic.type.621 [concrete] -// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet.fcf) [concrete] +// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete] // CHECK:STDOUT: %complete_type.ca2: = complete_type_witness %Generic.type.621 [concrete] -// CHECK:STDOUT: %.573: type = fn_type_with_self_type %Generic.F.type.4cf, %Generic.facet.fcf [concrete] +// CHECK:STDOUT: %.573: type = fn_type_with_self_type %Generic.F.type.4cf, %Generic.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -314,10 +313,9 @@ fn G() { // CHECK:STDOUT: %U.as_type.loc34_4.2: type = facet_access_type %U.loc33_32.1 [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U.loc33_32.1, @Generic, @Generic(%T.loc33_22.1) [symbolic = %Generic.lookup_impl_witness (constants.%Generic.lookup_impl_witness)] // CHECK:STDOUT: %Generic.F.type: type = fn_type @Generic.F, @Generic(%T.loc33_22.1) [symbolic = %Generic.F.type (constants.%Generic.F.type.f439a9.2)] -// CHECK:STDOUT: %Generic.facet: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.2db63e.2) = facet_value %U.as_type.loc34_4.2, (%Generic.lookup_impl_witness) [symbolic = %Generic.facet (constants.%Generic.facet.57d)] -// CHECK:STDOUT: %.loc34_4.3: type = fn_type_with_self_type %Generic.F.type, %Generic.facet [symbolic = %.loc34_4.3 (constants.%.e73)] -// CHECK:STDOUT: %impl.elem0.loc34_4.2: @CallGenericMethod.%.loc34_4.3 (%.e73) = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc34_4.2: = specific_impl_function %impl.elem0.loc34_4.2, @Generic.F(%T.loc33_22.1, %Generic.facet) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %.loc34_4.3: type = fn_type_with_self_type %Generic.F.type, %U.loc33_32.1 [symbolic = %.loc34_4.3 (constants.%.468)] +// CHECK:STDOUT: %impl.elem0.loc34_4.2: @CallGenericMethod.%.loc34_4.3 (%.468) = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc34_4.2: = specific_impl_function %impl.elem0.loc34_4.2, @Generic.F(%T.loc33_22.1, %U.loc33_32.1) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -326,8 +324,8 @@ fn G() { // CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = name_ref F, %.loc34_4.1 [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] // CHECK:STDOUT: %U.as_type.loc34_4.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] // CHECK:STDOUT: %.loc34_4.2: type = converted %U.ref, %U.as_type.loc34_4.1 [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] -// CHECK:STDOUT: %impl.elem0.loc34_4.1: @CallGenericMethod.%.loc34_4.3 (%.e73) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc34_4.1: = specific_impl_function %impl.elem0.loc34_4.1, @Generic.F(constants.%T, constants.%Generic.facet.57d) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %impl.elem0.loc34_4.1: @CallGenericMethod.%.loc34_4.3 (%.468) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc34_4.1: = specific_impl_function %impl.elem0.loc34_4.1, @Generic.F(constants.%T, constants.%U) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %.loc34_7: init %empty_tuple.type = call %specific_impl_fn.loc34_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -338,9 +336,9 @@ fn G() { // CHECK:STDOUT: %CallGenericMethod.ref: %CallGenericMethod.type = name_ref CallGenericMethod, file.%CallGenericMethod.decl [concrete = constants.%CallGenericMethod] // CHECK:STDOUT: %GenericParam.ref: type = name_ref GenericParam, file.%GenericParam.decl [concrete = constants.%GenericParam] // CHECK:STDOUT: %ImplsGeneric.ref: type = name_ref ImplsGeneric, file.%ImplsGeneric.decl [concrete = constants.%ImplsGeneric] -// CHECK:STDOUT: %Generic.facet: %Generic.type.621 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet.fcf] -// CHECK:STDOUT: %.loc38: %Generic.type.621 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet.fcf] -// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet.fcf) [concrete = constants.%CallGenericMethod.specific_fn] +// CHECK:STDOUT: %Generic.facet: %Generic.type.621 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %.loc38: %Generic.type.621 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) [concrete = constants.%CallGenericMethod.specific_fn] // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -363,7 +361,7 @@ fn G() { // CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.9b7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.F(constants.%GenericParam, constants.%Generic.facet.fcf) {} +// CHECK:STDOUT: specific @Generic.F(constants.%GenericParam, constants.%Generic.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Other.G(constants.%Self.e77) {} // CHECK:STDOUT: @@ -388,12 +386,12 @@ fn G() { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e93 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.F(constants.%T, constants.%Generic.facet.57d) {} +// CHECK:STDOUT: specific @Generic.F(constants.%T, constants.%U) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet.fcf) { +// CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) { // CHECK:STDOUT: %T.loc33_22.1 => constants.%GenericParam // CHECK:STDOUT: %Generic.type.loc33_45.1 => constants.%Generic.type.621 -// CHECK:STDOUT: %U.loc33_32.1 => constants.%Generic.facet.fcf +// CHECK:STDOUT: %U.loc33_32.1 => constants.%Generic.facet // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c4b // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -403,7 +401,6 @@ fn G() { // CHECK:STDOUT: %U.as_type.loc34_4.2 => constants.%ImplsGeneric // CHECK:STDOUT: %Generic.lookup_impl_witness => constants.%Generic.impl_witness // CHECK:STDOUT: %Generic.F.type => constants.%Generic.F.type.4cf -// CHECK:STDOUT: %Generic.facet => constants.%Generic.facet.fcf // CHECK:STDOUT: %.loc34_4.3 => constants.%.573 // CHECK:STDOUT: %impl.elem0.loc34_4.2 => constants.%ImplsGeneric.as.Generic.impl.F // CHECK:STDOUT: %specific_impl_fn.loc34_4.2 => constants.%ImplsGeneric.as.Generic.impl.F diff --git a/toolchain/check/testdata/function/generic/indirect_generic_type.carbon b/toolchain/check/testdata/function/generic/indirect_generic_type.carbon index 804c324fb1280..2174f16ed3e5d 100644 --- a/toolchain/check/testdata/function/generic/indirect_generic_type.carbon +++ b/toolchain/check/testdata/function/generic/indirect_generic_type.carbon @@ -31,10 +31,10 @@ fn F(T:! type, p: T**) -> T* { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.cb2: = lookup_impl_witness %ptr.79f, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.2d1: %Copy.type = facet_value %ptr.79f, (%Copy.lookup_impl_witness.cb2) [symbolic] -// CHECK:STDOUT: %.1cc: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.2d1 [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.79f, (%Copy.lookup_impl_witness.cb2) [symbolic] +// CHECK:STDOUT: %.1cc: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] // CHECK:STDOUT: %impl.elem0.751: %.1cc = impl_witness_access %Copy.lookup_impl_witness.cb2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.f44: = specific_impl_function %impl.elem0.751, @Copy.Op(%Copy.facet.2d1) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.f44: = specific_impl_function %impl.elem0.751, @Copy.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -46,7 +46,7 @@ fn F(T:! type, p: T**) -> T* { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc4_20.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.cb2)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc4_20.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.2d1)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc4_20.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] // CHECK:STDOUT: %.loc6_10.4: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc6_10.4 (constants.%.1cc)] // CHECK:STDOUT: %impl.elem0.loc6_10.2: @F.%.loc6_10.4 (%.1cc) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.751)] // CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.f44)] @@ -58,7 +58,7 @@ fn F(T:! type, p: T**) -> T* { // CHECK:STDOUT: %.loc6_10.2: @F.%ptr.loc4_20.1 (%ptr.79f) = bind_value %.loc6_10.1 // CHECK:STDOUT: %impl.elem0.loc6_10.1: @F.%.loc6_10.4 (%.1cc) = impl_witness_access constants.%Copy.lookup_impl_witness.cb2, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.751)] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %.loc6_10.2, %impl.elem0.loc6_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.Op(constants.%Copy.facet.2d1) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.f44)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.f44)] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %.loc6_10.2, %specific_impl_fn.loc6_10.1 // CHECK:STDOUT: %.loc6_10.3: init @F.%ptr.loc4_20.1 (%ptr.79f) = call %bound_method.loc6_10.2(%.loc6_10.2) // CHECK:STDOUT: return %.loc6_10.3 to %return diff --git a/toolchain/check/testdata/function/generic/type_param.carbon b/toolchain/check/testdata/function/generic/type_param.carbon index 83dcbd6b19cb2..803871d04afa9 100644 --- a/toolchain/check/testdata/function/generic/type_param.carbon +++ b/toolchain/check/testdata/function/generic/type_param.carbon @@ -37,10 +37,10 @@ fn F(T:! type) { // CHECK:STDOUT: %ptr.a13abe.2: type = ptr_type %ptr.79f131.1 [symbolic] // CHECK:STDOUT: %require_complete.1328e0.2: = require_complete_type %ptr.a13abe.2 [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness.3af: = lookup_impl_witness %ptr.79f131.1, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.64e: %Destroy.type = facet_value %ptr.79f131.1, (%Destroy.lookup_impl_witness.3af) [symbolic] -// CHECK:STDOUT: %.fc8: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.64e [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.79f131.1, (%Destroy.lookup_impl_witness.3af) [symbolic] +// CHECK:STDOUT: %.fc8: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] // CHECK:STDOUT: %impl.elem0.108: %.fc8 = impl_witness_access %Destroy.lookup_impl_witness.3af, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a84: = specific_impl_function %impl.elem0.108, @Destroy.Op(%Destroy.facet.64e) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a84: = specific_impl_function %impl.elem0.108, @Destroy.Op(%Destroy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -76,7 +76,7 @@ fn F(T:! type) { // CHECK:STDOUT: %require_complete.loc17: = require_complete_type %T.loc15_6.1 [symbolic = %require_complete.loc17 (constants.%require_complete.4ae)] // CHECK:STDOUT: %pattern_type.loc17: type = pattern_type %T.loc15_6.1 [symbolic = %pattern_type.loc17 (constants.%pattern_type.7dc)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %ptr.loc16_11.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.3af)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc16_11.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.64e)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc16_11.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] // CHECK:STDOUT: %.loc16_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc16_3.2 (constants.%.fc8)] // CHECK:STDOUT: %impl.elem0.loc16_3.2: @F.%.loc16_3.2 (%.fc8) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_3.2 (constants.%impl.elem0.108)] // CHECK:STDOUT: %specific_impl_fn.loc16_3.2: = specific_impl_function %impl.elem0.loc16_3.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc16_3.2 (constants.%specific_impl_fn.a84)] @@ -106,7 +106,7 @@ fn F(T:! type) { // CHECK:STDOUT: %n: @F.%T.loc15_6.1 (%T) = bind_name n, %.loc17_14.2 // CHECK:STDOUT: %impl.elem0.loc16_3.1: @F.%.loc16_3.2 (%.fc8) = impl_witness_access constants.%Destroy.lookup_impl_witness.3af, element0 [symbolic = %impl.elem0.loc16_3.2 (constants.%impl.elem0.108)] // CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %p.var, %impl.elem0.loc16_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc16_3.1: = specific_impl_function %impl.elem0.loc16_3.1, @Destroy.Op(constants.%Destroy.facet.64e) [symbolic = %specific_impl_fn.loc16_3.2 (constants.%specific_impl_fn.a84)] +// CHECK:STDOUT: %specific_impl_fn.loc16_3.1: = specific_impl_function %impl.elem0.loc16_3.1, @Destroy.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc16_3.2 (constants.%specific_impl_fn.a84)] // CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %p.var, %specific_impl_fn.loc16_3.1 // CHECK:STDOUT: %addr: @F.%ptr.loc16_3 (%ptr.a13abe.2) = addr_of %p.var // CHECK:STDOUT: %.loc16_3.1: init %empty_tuple.type = call %bound_method.loc16_3.2(%addr) diff --git a/toolchain/check/testdata/function/generic/type_param_scope.carbon b/toolchain/check/testdata/function/generic/type_param_scope.carbon index 4ea4599ffd4bb..052df00fa3a37 100644 --- a/toolchain/check/testdata/function/generic/type_param_scope.carbon +++ b/toolchain/check/testdata/function/generic/type_param_scope.carbon @@ -30,10 +30,10 @@ fn F(T:! type, n: T*) -> T* { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.cb2: = lookup_impl_witness %ptr, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.2d1: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness.cb2) [symbolic] -// CHECK:STDOUT: %.1cc: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.2d1 [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness.cb2) [symbolic] +// CHECK:STDOUT: %.1cc: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] // CHECK:STDOUT: %impl.elem0.751: %.1cc = impl_witness_access %Copy.lookup_impl_witness.cb2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.f44: = specific_impl_function %impl.elem0.751, @Copy.Op(%Copy.facet.2d1) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.f44: = specific_impl_function %impl.elem0.751, @Copy.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -45,7 +45,7 @@ fn F(T:! type, n: T*) -> T* { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc4_20.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.cb2)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc4_20.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.2d1)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc4_20.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] // CHECK:STDOUT: %.loc7_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc7_10.2 (constants.%.1cc)] // CHECK:STDOUT: %impl.elem0.loc7_10.2: @F.%.loc7_10.2 (%.1cc) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_10.2 (constants.%impl.elem0.751)] // CHECK:STDOUT: %specific_impl_fn.loc7_10.2: = specific_impl_function %impl.elem0.loc7_10.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc7_10.2 (constants.%specific_impl_fn.f44)] @@ -64,7 +64,7 @@ fn F(T:! type, n: T*) -> T* { // CHECK:STDOUT: %m.ref: @F.%ptr.loc4_20.1 (%ptr) = name_ref m, %m // CHECK:STDOUT: %impl.elem0.loc7_10.1: @F.%.loc7_10.2 (%.1cc) = impl_witness_access constants.%Copy.lookup_impl_witness.cb2, element0 [symbolic = %impl.elem0.loc7_10.2 (constants.%impl.elem0.751)] // CHECK:STDOUT: %bound_method.loc7_10.1: = bound_method %m.ref, %impl.elem0.loc7_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_10.1: = specific_impl_function %impl.elem0.loc7_10.1, @Copy.Op(constants.%Copy.facet.2d1) [symbolic = %specific_impl_fn.loc7_10.2 (constants.%specific_impl_fn.f44)] +// CHECK:STDOUT: %specific_impl_fn.loc7_10.1: = specific_impl_function %impl.elem0.loc7_10.1, @Copy.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc7_10.2 (constants.%specific_impl_fn.f44)] // CHECK:STDOUT: %bound_method.loc7_10.2: = bound_method %m.ref, %specific_impl_fn.loc7_10.1 // CHECK:STDOUT: %.loc7_10.1: init @F.%ptr.loc4_20.1 (%ptr) = call %bound_method.loc7_10.2(%m.ref) // CHECK:STDOUT: return %.loc7_10.1 to %return diff --git a/toolchain/check/testdata/generic/dependent_param.carbon b/toolchain/check/testdata/generic/dependent_param.carbon index fa71757b31ef5..389155376aa17 100644 --- a/toolchain/check/testdata/generic/dependent_param.carbon +++ b/toolchain/check/testdata/generic/dependent_param.carbon @@ -52,12 +52,11 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: %pattern_type.0fd: type = pattern_type %ptr.942 [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021: %Copy.type = facet_value %T.as_type, (%Copy.lookup_impl_witness.e15) [symbolic] -// CHECK:STDOUT: %.c50: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021 [symbolic] -// CHECK:STDOUT: %impl.elem0.792: %.c50 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547: = specific_impl_function %impl.elem0.792, @Copy.Op(%Copy.facet.021) [symbolic] -// CHECK:STDOUT: %bound_method.ba2: = bound_method %U.afe, %impl.elem0.792 [symbolic] -// CHECK:STDOUT: %bound_method.088: = bound_method %U.afe, %specific_impl_fn.547 [symbolic] +// CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168: %.427 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] +// CHECK:STDOUT: %bound_method.67a: = bound_method %U.afe, %impl.elem0.168 [symbolic] +// CHECK:STDOUT: %bound_method.e09: = bound_method %U.afe, %specific_impl_fn.2ce [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] @@ -208,20 +207,19 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: %U: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = bind_symbolic_name U, 1 [symbolic = %U (constants.%U.afe)] // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc7_17.1 [symbolic = %require_complete (constants.%require_complete.07c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc7_17.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021)] -// CHECK:STDOUT: %.loc7_28.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc7_28.2 (constants.%.c50)] -// CHECK:STDOUT: %impl.elem0.loc7_28.2: @Inner.Get.%.loc7_28.2 (%.c50) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_28.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %bound_method.loc7_28.3: = bound_method %U, %impl.elem0.loc7_28.2 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.ba2)] -// CHECK:STDOUT: %specific_impl_fn.loc7_28.2: = specific_impl_function %impl.elem0.loc7_28.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc7_28.2 (constants.%specific_impl_fn.547)] -// CHECK:STDOUT: %bound_method.loc7_28.4: = bound_method %U, %specific_impl_fn.loc7_28.2 [symbolic = %bound_method.loc7_28.4 (constants.%bound_method.088)] +// CHECK:STDOUT: %.loc7_28.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T [symbolic = %.loc7_28.2 (constants.%.427)] +// CHECK:STDOUT: %impl.elem0.loc7_28.2: @Inner.Get.%.loc7_28.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_28.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %bound_method.loc7_28.3: = bound_method %U, %impl.elem0.loc7_28.2 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.67a)] +// CHECK:STDOUT: %specific_impl_fn.loc7_28.2: = specific_impl_function %impl.elem0.loc7_28.2, @Copy.Op(%T) [symbolic = %specific_impl_fn.loc7_28.2 (constants.%specific_impl_fn.2ce)] +// CHECK:STDOUT: %bound_method.loc7_28.4: = bound_method %U, %specific_impl_fn.loc7_28.2 [symbolic = %bound_method.loc7_28.4 (constants.%bound_method.e09)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> %return.param: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %U.ref: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = name_ref U, @Inner.%U.loc5_15.2 [symbolic = %U (constants.%U.afe)] -// CHECK:STDOUT: %impl.elem0.loc7_28.1: @Inner.Get.%.loc7_28.2 (%.c50) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc7_28.2 (constants.%impl.elem0.792)] -// CHECK:STDOUT: %bound_method.loc7_28.1: = bound_method %U.ref, %impl.elem0.loc7_28.1 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.ba2)] -// CHECK:STDOUT: %specific_impl_fn.loc7_28.1: = specific_impl_function %impl.elem0.loc7_28.1, @Copy.Op(constants.%Copy.facet.021) [symbolic = %specific_impl_fn.loc7_28.2 (constants.%specific_impl_fn.547)] -// CHECK:STDOUT: %bound_method.loc7_28.2: = bound_method %U.ref, %specific_impl_fn.loc7_28.1 [symbolic = %bound_method.loc7_28.4 (constants.%bound_method.088)] +// CHECK:STDOUT: %impl.elem0.loc7_28.1: @Inner.Get.%.loc7_28.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc7_28.2 (constants.%impl.elem0.168)] +// CHECK:STDOUT: %bound_method.loc7_28.1: = bound_method %U.ref, %impl.elem0.loc7_28.1 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.67a)] +// CHECK:STDOUT: %specific_impl_fn.loc7_28.1: = specific_impl_function %impl.elem0.loc7_28.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc7_28.2 (constants.%specific_impl_fn.2ce)] +// CHECK:STDOUT: %bound_method.loc7_28.2: = bound_method %U.ref, %specific_impl_fn.loc7_28.1 [symbolic = %bound_method.loc7_28.4 (constants.%bound_method.e09)] // CHECK:STDOUT: %.loc7_14: ref @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = splice_block %return {} // CHECK:STDOUT: %.loc7_28.1: init @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = call %bound_method.loc7_28.2(%U.ref) to %.loc7_14 // CHECK:STDOUT: return %.loc7_28.1 to %return @@ -358,7 +356,6 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: %U => constants.%int_42.c68 // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.a32 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.c49 // CHECK:STDOUT: %.loc7_28.2 => constants.%.7fa // CHECK:STDOUT: %impl.elem0.loc7_28.2 => constants.%Int.as.Copy.impl.Op.f59 // CHECK:STDOUT: %bound_method.loc7_28.3 => constants.%Int.as.Copy.impl.Op.bound diff --git a/toolchain/check/testdata/generic/template/convert.carbon b/toolchain/check/testdata/generic/template/convert.carbon index 901623a5d9eee..0e269d8edd63e 100644 --- a/toolchain/check/testdata/generic/template/convert.carbon +++ b/toolchain/check/testdata/generic/template/convert.carbon @@ -87,8 +87,8 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Test1.type: type = fn_type @Test1 [concrete] // CHECK:STDOUT: %Test1: %Test1.type = struct_value () [concrete] @@ -392,8 +392,8 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] diff --git a/toolchain/check/testdata/generic/template/member_access.carbon b/toolchain/check/testdata/generic/template/member_access.carbon index 252c1bf2d95ae..9a25abe40ab43 100644 --- a/toolchain/check/testdata/generic/template/member_access.carbon +++ b/toolchain/check/testdata/generic/template/member_access.carbon @@ -109,8 +109,8 @@ fn Test(e: E) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] @@ -363,8 +363,8 @@ fn Test(e: E) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %D.elem: type = unbound_element_type %D, %i32 [concrete] @@ -563,8 +563,8 @@ fn Test(e: E) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %E: type = class_type @E [concrete] // CHECK:STDOUT: %F.a8a: type = class_type @F.loc16 [concrete] diff --git a/toolchain/check/testdata/generic/template/unimplemented.carbon b/toolchain/check/testdata/generic/template/unimplemented.carbon index b78736955f088..141ace05fe0ff 100644 --- a/toolchain/check/testdata/generic/template/unimplemented.carbon +++ b/toolchain/check/testdata/generic/template/unimplemented.carbon @@ -299,18 +299,17 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.impl_witness.dc4: = impl_witness imports.%Copy.impl_witness_table.965, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Copy.facet.eff: %Copy.type = facet_value %i32, (%Copy.impl_witness.dc4) [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.dc4) [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.type.4f9: type = fn_type @Int.as.Destroy.impl.Op, @Int.as.Destroy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.796: %Int.as.Destroy.impl.Op.type.4f9 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.specific_fn: = specific_function %Int.as.Destroy.impl.Op.796, @Int.as.Destroy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness.a2f397.2: = lookup_impl_witness %T.9ff, @Destroy [template] -// CHECK:STDOUT: %Destroy.facet.8dd648.2: %Destroy.type = facet_value %T.as_type.a11, (%Destroy.lookup_impl_witness.a2f397.2) [template] -// CHECK:STDOUT: %.7dc997.2: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.8dd648.2 [template] -// CHECK:STDOUT: %impl.elem0.253469.2: %.7dc997.2 = impl_witness_access %Destroy.lookup_impl_witness.a2f397.2, element0 [template] +// CHECK:STDOUT: %.8eb584.2: type = fn_type_with_self_type %Destroy.Op.type, %T.9ff [template] +// CHECK:STDOUT: %impl.elem0.b2e868.2: %.8eb584.2 = impl_witness_access %Destroy.lookup_impl_witness.a2f397.2, element0 [template] // CHECK:STDOUT: %ptr.983a2f.3: type = ptr_type %T.as_type.a11 [template] -// CHECK:STDOUT: %specific_impl_fn.35f40a.2: = specific_impl_function %impl.elem0.253469.2, @Destroy.Op(%Destroy.facet.8dd648.2) [template] +// CHECK:STDOUT: %specific_impl_fn.b6bc42.2: = specific_impl_function %impl.elem0.b2e868.2, @Destroy.Op(%T.9ff) [template] // CHECK:STDOUT: %require_complete.a61215.2: = require_complete_type %ptr.983a2f.3 [template] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -367,10 +366,9 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %.loc14_3.4: = access_member_action %ImplicitAs.type.loc14_3.1, Convert [template] // CHECK:STDOUT: %.loc14_3.5: type = type_of_inst %.loc14_3.4 [template] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc4_15.1, @Destroy [template = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.a2f397.2)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %T.as_type.loc4_36.1, (%Destroy.lookup_impl_witness) [template = %Destroy.facet (constants.%Destroy.facet.8dd648.2)] -// CHECK:STDOUT: %.loc14_3.6: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [template = %.loc14_3.6 (constants.%.7dc997.2)] -// CHECK:STDOUT: %impl.elem0.loc14_3.2: @F.%.loc14_3.6 (%.7dc997.2) = impl_witness_access %Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.253469.2)] -// CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Destroy.Op(%Destroy.facet) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.35f40a.2)] +// CHECK:STDOUT: %.loc14_3.6: type = fn_type_with_self_type constants.%Destroy.Op.type, %T.loc4_15.1 [template = %.loc14_3.6 (constants.%.8eb584.2)] +// CHECK:STDOUT: %impl.elem0.loc14_3.2: @F.%.loc14_3.6 (%.8eb584.2) = impl_witness_access %Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.b2e868.2)] +// CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Destroy.Op(%T.loc4_15.1) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.b6bc42.2)] // CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc4_36.1 [template = %ptr (constants.%ptr.983a2f.3)] // CHECK:STDOUT: %require_complete.loc14: = require_complete_type %ptr [template = %require_complete.loc14 (constants.%require_complete.a61215.2)] // CHECK:STDOUT: @@ -398,8 +396,8 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: } // CHECK:STDOUT: %w.var: ref %i32 = var %w.var_patt // CHECK:STDOUT: %x.ref: @F.%T.as_type.loc4_36.1 (%T.as_type.a11) = name_ref x, %x -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%i32, (constants.%Copy.impl_witness.dc4) [concrete = constants.%Copy.facet.eff] -// CHECK:STDOUT: %.loc22_3.1: %Copy.type = converted constants.%i32, %Copy.facet [concrete = constants.%Copy.facet.eff] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%i32, (constants.%Copy.impl_witness.dc4) [concrete = constants.%Copy.facet] +// CHECK:STDOUT: %.loc22_3.1: %Copy.type = converted constants.%i32, %Copy.facet [concrete = constants.%Copy.facet] // CHECK:STDOUT: %T.as_type.loc22: type = facet_access_type constants.%T.9ff [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] // CHECK:STDOUT: %.loc22_3.2: type = converted constants.%T.9ff, %T.as_type.loc22 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] // CHECK:STDOUT: %.loc22_3.3: %i32 = converted %x.ref, [concrete = ] @@ -414,9 +412,9 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %bound_method.loc22: = bound_method %w.var, %Int.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc22: %ptr.235 = addr_of %w.var // CHECK:STDOUT: %Int.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) -// CHECK:STDOUT: %impl.elem0.loc14_3.1: @F.%.loc14_3.6 (%.7dc997.2) = impl_witness_access constants.%Destroy.lookup_impl_witness.a2f397.2, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.253469.2)] +// CHECK:STDOUT: %impl.elem0.loc14_3.1: @F.%.loc14_3.6 (%.8eb584.2) = impl_witness_access constants.%Destroy.lookup_impl_witness.a2f397.2, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.b2e868.2)] // CHECK:STDOUT: %bound_method.loc14_3.1: = bound_method %v.var, %impl.elem0.loc14_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc14_3.1: = specific_impl_function %impl.elem0.loc14_3.1, @Destroy.Op(constants.%Destroy.facet.8dd648.2) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.35f40a.2)] +// CHECK:STDOUT: %specific_impl_fn.loc14_3.1: = specific_impl_function %impl.elem0.loc14_3.1, @Destroy.Op(constants.%T.9ff) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.b6bc42.2)] // CHECK:STDOUT: %bound_method.loc14_3.2: = bound_method %v.var, %specific_impl_fn.loc14_3.1 // CHECK:STDOUT: %addr.loc14: @F.%ptr (%ptr.983a2f.3) = addr_of %v.var // CHECK:STDOUT: %.loc14_3.3: init %empty_tuple.type = call %bound_method.loc14_3.2(%addr.loc14) diff --git a/toolchain/check/testdata/generic/template_dependence.carbon b/toolchain/check/testdata/generic/template_dependence.carbon index e79efc0f75247..df69921dd335f 100644 --- a/toolchain/check/testdata/generic/template_dependence.carbon +++ b/toolchain/check/testdata/generic/template_dependence.carbon @@ -46,10 +46,10 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.cb2: = lookup_impl_witness %ptr.79f131.1, @Copy [template] -// CHECK:STDOUT: %Copy.facet.2d1: %Copy.type = facet_value %ptr.79f131.1, (%Copy.lookup_impl_witness.cb2) [template] -// CHECK:STDOUT: %.1cc: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.2d1 [template] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.79f131.1, (%Copy.lookup_impl_witness.cb2) [template] +// CHECK:STDOUT: %.1cc: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [template] // CHECK:STDOUT: %impl.elem0.751: %.1cc = impl_witness_access %Copy.lookup_impl_witness.cb2, element0 [template] -// CHECK:STDOUT: %specific_impl_fn.f44: = specific_impl_function %impl.elem0.751, @Copy.Op(%Copy.facet.2d1) [template] +// CHECK:STDOUT: %specific_impl_fn.f44: = specific_impl_function %impl.elem0.751, @Copy.Op(%Copy.facet) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -90,7 +90,7 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: %require_complete.loc5_33: = require_complete_type %ptr.loc5_29.1 [template = %require_complete.loc5_33 (constants.%require_complete.6e5e64.1)] // CHECK:STDOUT: %require_complete.loc5_26: = require_complete_type %ptr.loc5_30.1 [template = %require_complete.loc5_26 (constants.%require_complete.132)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc5_29.1, @Copy [template = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.cb2)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc5_29.1, (%Copy.lookup_impl_witness) [template = %Copy.facet (constants.%Copy.facet.2d1)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc5_29.1, (%Copy.lookup_impl_witness) [template = %Copy.facet (constants.%Copy.facet)] // CHECK:STDOUT: %.loc6_10.4: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [template = %.loc6_10.4 (constants.%.1cc)] // CHECK:STDOUT: %impl.elem0.loc6_10.2: @F.%.loc6_10.4 (%.1cc) = impl_witness_access %Copy.lookup_impl_witness, element0 [template = %impl.elem0.loc6_10.2 (constants.%impl.elem0.751)] // CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.Op(%Copy.facet) [template = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.f44)] @@ -102,7 +102,7 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: %.loc6_10.2: @F.%ptr.loc5_29.1 (%ptr.79f131.1) = bind_value %.loc6_10.1 // CHECK:STDOUT: %impl.elem0.loc6_10.1: @F.%.loc6_10.4 (%.1cc) = impl_witness_access constants.%Copy.lookup_impl_witness.cb2, element0 [template = %impl.elem0.loc6_10.2 (constants.%impl.elem0.751)] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %.loc6_10.2, %impl.elem0.loc6_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.Op(constants.%Copy.facet.2d1) [template = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.f44)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.Op(constants.%Copy.facet) [template = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.f44)] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %.loc6_10.2, %specific_impl_fn.loc6_10.1 // CHECK:STDOUT: %.loc6_10.3: init @F.%ptr.loc5_29.1 (%ptr.79f131.1) = call %bound_method.loc6_10.2(%.loc6_10.2) // CHECK:STDOUT: return %.loc6_10.3 to %return diff --git a/toolchain/check/testdata/if/basics.carbon b/toolchain/check/testdata/if/basics.carbon index ab7ff4cff58c6..f9c0cc478b619 100644 --- a/toolchain/check/testdata/if/basics.carbon +++ b/toolchain/check/testdata/if/basics.carbon @@ -224,8 +224,8 @@ fn VarScope(b: bool) -> bool { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.a56: = impl_witness imports.%Copy.impl_witness_table.189 [concrete] -// CHECK:STDOUT: %Copy.facet.253: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] -// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.253 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] +// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound.4eb: = bound_method %false, %bool.as.Copy.impl.Op [concrete] diff --git a/toolchain/check/testdata/if_expr/basic.carbon b/toolchain/check/testdata/if_expr/basic.carbon index dd69ae2ecb9d9..92b3170253b7b 100644 --- a/toolchain/check/testdata/if_expr/basic.carbon +++ b/toolchain/check/testdata/if_expr/basic.carbon @@ -62,8 +62,8 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] diff --git a/toolchain/check/testdata/if_expr/control_flow.carbon b/toolchain/check/testdata/if_expr/control_flow.carbon index 2884b66f3804a..4e8238fc09631 100644 --- a/toolchain/check/testdata/if_expr/control_flow.carbon +++ b/toolchain/check/testdata/if_expr/control_flow.carbon @@ -65,8 +65,8 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if_expr/nested.carbon b/toolchain/check/testdata/if_expr/nested.carbon index af1135d309858..9c1483532a3f2 100644 --- a/toolchain/check/testdata/if_expr/nested.carbon +++ b/toolchain/check/testdata/if_expr/nested.carbon @@ -66,8 +66,8 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/assoc_const_self.carbon b/toolchain/check/testdata/impl/assoc_const_self.carbon index b666d3d33a748..01c7e4f078263 100644 --- a/toolchain/check/testdata/impl/assoc_const_self.carbon +++ b/toolchain/check/testdata/impl/assoc_const_self.carbon @@ -113,7 +113,6 @@ fn CallF() { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet.f22: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %require_complete.bdd: = require_complete_type %.Self.as_type [symbolic_self] // CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -254,8 +253,8 @@ fn CallF() { // CHECK:STDOUT: %require_complete => constants.%require_complete.742 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.f22) { -// CHECK:STDOUT: %Self => constants.%I.facet.f22 +// CHECK:STDOUT: specific @V(constants.%.Self) { +// CHECK:STDOUT: %Self => constants.%.Self // CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: %require_complete => constants.%require_complete.bdd // CHECK:STDOUT: } @@ -285,13 +284,12 @@ fn CallF() { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet.f22: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %require_complete.bdd: = require_complete_type %.Self.as_type [symbolic_self] // CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %int_0> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet.96d: %I.type = facet_value %empty_struct_type, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_struct_type, (%I.impl_witness) [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] @@ -366,14 +364,14 @@ fn CallF() { // CHECK:STDOUT: %require_complete => constants.%require_complete.742 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.f22) { -// CHECK:STDOUT: %Self => constants.%I.facet.f22 +// CHECK:STDOUT: specific @V(constants.%.Self) { +// CHECK:STDOUT: %Self => constants.%.Self // CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: %require_complete => constants.%require_complete.bdd // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.96d) { -// CHECK:STDOUT: %Self => constants.%I.facet.96d +// CHECK:STDOUT: specific @V(constants.%I.facet) { +// CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.as_type => constants.%empty_struct_type // CHECK:STDOUT: %require_complete => constants.%complete_type // CHECK:STDOUT: } @@ -412,13 +410,12 @@ fn CallF() { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet.f22: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %require_complete.bdd: = require_complete_type %.Self.as_type [symbolic_self] // CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_tuple> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet.013: %I.type = facet_value %C, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %.77a: type = fn_type_with_self_type %ImplicitAs.Convert.type.56d, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert.bound: = bound_method %empty_tuple, %empty_tuple.type.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: } @@ -575,14 +572,14 @@ fn CallF() { // CHECK:STDOUT: %require_complete => constants.%require_complete.742 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.f22) { -// CHECK:STDOUT: %Self => constants.%I.facet.f22 +// CHECK:STDOUT: specific @V(constants.%.Self) { +// CHECK:STDOUT: %Self => constants.%.Self // CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: %require_complete => constants.%require_complete.bdd // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.013) { -// CHECK:STDOUT: %Self => constants.%I.facet.013 +// CHECK:STDOUT: specific @V(constants.%I.facet) { +// CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.as_type => constants.%C // CHECK:STDOUT: %require_complete => constants.%complete_type // CHECK:STDOUT: } @@ -624,7 +621,6 @@ fn CallF() { // CHECK:STDOUT: %assoc0.77f: %I.assoc_type.247 = assoc_entity element0, @I.%V [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.61b [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.61b, @I, @I(%int_-1) [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type.f11 = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -748,10 +744,10 @@ fn CallF() { // CHECK:STDOUT: %assoc0 => constants.%assoc0.77f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%int_-1, constants.%I.facet) { +// CHECK:STDOUT: specific @V(constants.%int_-1, constants.%.Self.61b) { // CHECK:STDOUT: %N => constants.%int_-1 // CHECK:STDOUT: %I.type => constants.%I.type.f11 -// CHECK:STDOUT: %Self => constants.%I.facet +// CHECK:STDOUT: %Self => constants.%.Self.61b // CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: %array_type => // CHECK:STDOUT: %require_complete => @@ -775,7 +771,6 @@ fn CallF() { // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.364 [symbolic_self] // CHECK:STDOUT: %ImplicitAs.type.61f: type = facet_type <@ImplicitAs, @ImplicitAs(%.Self.as_type)> [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.364, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %require_complete.bdd: = require_complete_type %.Self.as_type [symbolic_self] // CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -879,8 +874,8 @@ fn CallF() { // CHECK:STDOUT: %require_complete => constants.%require_complete.742 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet) { -// CHECK:STDOUT: %Self => constants.%I.facet +// CHECK:STDOUT: specific @V(constants.%.Self.364) { +// CHECK:STDOUT: %Self => constants.%.Self.364 // CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: %require_complete => constants.%require_complete.bdd // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/extend_impl_generic.carbon b/toolchain/check/testdata/impl/extend_impl_generic.carbon index f628b826985fe..003f0904f2f5e 100644 --- a/toolchain/check/testdata/impl/extend_impl_generic.carbon +++ b/toolchain/check/testdata/impl/extend_impl_generic.carbon @@ -134,8 +134,8 @@ class X(U:! type) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.type.4f9: type = fn_type @Int.as.Destroy.impl.Op, @Int.as.Destroy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.796: %Int.as.Destroy.impl.Op.type.4f9 = struct_value () [concrete] diff --git a/toolchain/check/testdata/impl/fail_undefined_interface.carbon b/toolchain/check/testdata/impl/fail_undefined_interface.carbon index 6ef1adfba6d96..a6180eec6bfb5 100644 --- a/toolchain/check/testdata/impl/fail_undefined_interface.carbon +++ b/toolchain/check/testdata/impl/fail_undefined_interface.carbon @@ -213,7 +213,6 @@ impl C as J where .Self impls Incomplete and .T = (); // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %.Self, @J [symbolic_self] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %.Self.as_type, (%J.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %J_where.type: type = facet_type <@J where .Self impls @Incomplete and %impl.elem0 = %empty_tuple.type> [concrete] @@ -281,5 +280,5 @@ impl C as J where .Self impls Incomplete and .T = (); // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%J.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/forward_decls.carbon b/toolchain/check/testdata/impl/forward_decls.carbon index 4696504c1f7da..95c0db5e02790 100644 --- a/toolchain/check/testdata/impl/forward_decls.carbon +++ b/toolchain/check/testdata/impl/forward_decls.carbon @@ -496,7 +496,6 @@ interface I { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_tuple.type> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table [concrete] @@ -578,7 +577,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- associated_const_compound_member_access.carbon // CHECK:STDOUT: @@ -601,11 +600,10 @@ interface I { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet.f22: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_tuple.type> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet.744: %I.type = facet_value %C, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: } @@ -655,8 +653,8 @@ interface I { // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %I.ref: type = name_ref I, %I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %I.facet: %I.type = facet_value constants.%C, (constants.%I.impl_witness) [concrete = constants.%I.facet.744] -// CHECK:STDOUT: %.loc9_9.2: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet.744] +// CHECK:STDOUT: %I.facet: %I.type = facet_value constants.%C, (constants.%I.impl_witness) [concrete = constants.%I.facet] +// CHECK:STDOUT: %.loc9_9.2: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: } // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] @@ -739,9 +737,9 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self.7ee) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet.f22) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet.744) {} +// CHECK:STDOUT: specific @T(constants.%I.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: --- associated_const_of_facet.carbon // CHECK:STDOUT: @@ -764,11 +762,10 @@ interface I { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet.f22: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_tuple.type> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet.744: %I.type = facet_value %C, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: } @@ -817,8 +814,8 @@ interface I { // CHECK:STDOUT: %.loc9_16.1: type = splice_block %impl.elem0 [concrete = constants.%empty_tuple.type] { // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %I.ref: type = name_ref I, %I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %I.facet: %I.type = facet_value constants.%C, (constants.%I.impl_witness) [concrete = constants.%I.facet.744] -// CHECK:STDOUT: %.loc9_11: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet.744] +// CHECK:STDOUT: %I.facet: %I.type = facet_value constants.%C, (constants.%I.impl_witness) [concrete = constants.%I.facet] +// CHECK:STDOUT: %.loc9_11: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_11 [concrete = constants.%C] // CHECK:STDOUT: %.loc9_16.2: type = converted %.loc9_11, %as_type [concrete = constants.%C] @@ -904,9 +901,9 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self.7ee) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet.f22) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet.744) {} +// CHECK:STDOUT: specific @T(constants.%I.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_unset_associated_const.carbon // CHECK:STDOUT: @@ -1212,7 +1209,6 @@ interface I { // CHECK:STDOUT: %assoc0.3e4: %I.assoc_type.b3c = assoc_entity element0, @I.%T [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.d7f [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.d7f, @I, @I(%C) [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type.fc3 = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I, @I(%C) where %impl.elem0 = %C> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table [concrete] @@ -1397,7 +1393,7 @@ interface I { // CHECK:STDOUT: %assoc0 => constants.%assoc0.3e4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%C, constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%C, constants.%.Self.d7f) {} // CHECK:STDOUT: // CHECK:STDOUT: --- find_incomplete_impl.carbon // CHECK:STDOUT: @@ -1738,7 +1734,6 @@ interface I { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_tuple.type> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table [concrete] @@ -1862,7 +1857,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%Self.7ee) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- example_from_proposal_5168.carbon // CHECK:STDOUT: @@ -2328,7 +2323,6 @@ interface I { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %C> [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %I_where.type [symbolic] @@ -2509,7 +2503,7 @@ interface I { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.d53 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%I.facet) {} +// CHECK:STDOUT: specific @U(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%Self.7ee) { // CHECK:STDOUT: %Self => constants.%Self.7ee diff --git a/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon b/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon index 97c9e7d8fe3c4..c618a04d28d8a 100644 --- a/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon +++ b/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon @@ -51,7 +51,6 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %.Self.364: %I.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.364 [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.364, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0.805: %struct_type.a.b.fe2 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] @@ -247,7 +246,7 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%Self.7ee) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%I.facet) {} +// CHECK:STDOUT: specific @X(constants.%.Self.364) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_two_different_non_type.carbon // CHECK:STDOUT: @@ -268,7 +267,6 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0.805: %struct_type.a.b.fe2 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] @@ -424,5 +422,5 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%Self.7ee) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%I.facet) {} +// CHECK:STDOUT: specific @X(constants.%.Self) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/impl_thunk.carbon b/toolchain/check/testdata/impl/impl_thunk.carbon index 3d5da70150c59..fdf3cf2104184 100644 --- a/toolchain/check/testdata/impl/impl_thunk.carbon +++ b/toolchain/check/testdata/impl/impl_thunk.carbon @@ -431,8 +431,8 @@ impl () as I({}) { // CHECK:STDOUT: %Copy.impl_witness.e33: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%B) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.662: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.057: %ptr.as.Copy.impl.Op.type.662 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.654: %Copy.type = facet_value %ptr.e79, (%Copy.impl_witness.e33) [concrete] -// CHECK:STDOUT: %.56e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.654 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e79, (%Copy.impl_witness.e33) [concrete] +// CHECK:STDOUT: %.56e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.057, @ptr.as.Copy.impl.Op(%B) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -582,8 +582,8 @@ impl () as I({}) { // CHECK:STDOUT: %Copy.impl_witness.e33: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%B) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.662: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.057: %ptr.as.Copy.impl.Op.type.662 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.654: %Copy.type = facet_value %ptr.e79, (%Copy.impl_witness.e33) [concrete] -// CHECK:STDOUT: %.56e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.654 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e79, (%Copy.impl_witness.e33) [concrete] +// CHECK:STDOUT: %.56e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.057, @ptr.as.Copy.impl.Op(%B) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -732,16 +732,15 @@ impl () as I({}) { // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15cec.2: = lookup_impl_witness %U.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021101.2: %Copy.type = facet_value %U.as_type.870, (%Copy.lookup_impl_witness.e15cec.2) [symbolic] -// CHECK:STDOUT: %.c500ab.2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021101.2 [symbolic] -// CHECK:STDOUT: %impl.elem0.792e99.2: %.c500ab.2 = impl_witness_access %Copy.lookup_impl_witness.e15cec.2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547931.2: = specific_impl_function %impl.elem0.792e99.2, @Copy.Op(%Copy.facet.021101.2) [symbolic] +// CHECK:STDOUT: %.427cc3.2: type = fn_type_with_self_type %Copy.Op.type, %U.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168dc4.2: %.427cc3.2 = impl_witness_access %Copy.lookup_impl_witness.e15cec.2, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2cedd6.2: = specific_impl_function %impl.elem0.168dc4.2, @Copy.Op(%U.be8) [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.cb2: = lookup_impl_witness %ptr.79f, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.2d1: %Copy.type = facet_value %ptr.79f, (%Copy.lookup_impl_witness.cb2) [symbolic] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn: = specific_function %empty_tuple.type.as.I.impl.F.f1aebb.1, @empty_tuple.type.as.I.impl.F.loc10_34.1(%Copy.facet.2d1) [symbolic] -// CHECK:STDOUT: %.1cc: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.2d1 [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.79f, (%Copy.lookup_impl_witness.cb2) [symbolic] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn: = specific_function %empty_tuple.type.as.I.impl.F.f1aebb.1, @empty_tuple.type.as.I.impl.F.loc10_34.1(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.1cc: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] // CHECK:STDOUT: %impl.elem0.751: %.1cc = impl_witness_access %Copy.lookup_impl_witness.cb2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.f44: = specific_impl_function %impl.elem0.751, @Copy.Op(%Copy.facet.2d1) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.f44: = specific_impl_function %impl.elem0.751, @Copy.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -799,17 +798,16 @@ impl () as I({}) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc10_26.1 [symbolic = %require_complete (constants.%require_complete.07c867.1)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc10_8.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15cec.2)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %U.as_type.loc10_26.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021101.2)] -// CHECK:STDOUT: %.loc10_43.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc10_43.2 (constants.%.c500ab.2)] -// CHECK:STDOUT: %impl.elem0.loc10_43.2: @empty_tuple.type.as.I.impl.F.loc10_34.1.%.loc10_43.2 (%.c500ab.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_43.2 (constants.%impl.elem0.792e99.2)] -// CHECK:STDOUT: %specific_impl_fn.loc10_43.2: = specific_impl_function %impl.elem0.loc10_43.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_43.2 (constants.%specific_impl_fn.547931.2)] +// CHECK:STDOUT: %.loc10_43.2: type = fn_type_with_self_type constants.%Copy.Op.type, %U.loc10_8.1 [symbolic = %.loc10_43.2 (constants.%.427cc3.2)] +// CHECK:STDOUT: %impl.elem0.loc10_43.2: @empty_tuple.type.as.I.impl.F.loc10_34.1.%.loc10_43.2 (%.427cc3.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_43.2 (constants.%impl.elem0.168dc4.2)] +// CHECK:STDOUT: %specific_impl_fn.loc10_43.2: = specific_impl_function %impl.elem0.loc10_43.2, @Copy.Op(%U.loc10_8.1) [symbolic = %specific_impl_fn.loc10_43.2 (constants.%specific_impl_fn.2cedd6.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.870)) -> %return.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.870) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.870) = name_ref x, %x -// CHECK:STDOUT: %impl.elem0.loc10_43.1: @empty_tuple.type.as.I.impl.F.loc10_34.1.%.loc10_43.2 (%.c500ab.2) = impl_witness_access constants.%Copy.lookup_impl_witness.e15cec.2, element0 [symbolic = %impl.elem0.loc10_43.2 (constants.%impl.elem0.792e99.2)] +// CHECK:STDOUT: %impl.elem0.loc10_43.1: @empty_tuple.type.as.I.impl.F.loc10_34.1.%.loc10_43.2 (%.427cc3.2) = impl_witness_access constants.%Copy.lookup_impl_witness.e15cec.2, element0 [symbolic = %impl.elem0.loc10_43.2 (constants.%impl.elem0.168dc4.2)] // CHECK:STDOUT: %bound_method.loc10_43.1: = bound_method %x.ref, %impl.elem0.loc10_43.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_43.1: = specific_impl_function %impl.elem0.loc10_43.1, @Copy.Op(constants.%Copy.facet.021101.2) [symbolic = %specific_impl_fn.loc10_43.2 (constants.%specific_impl_fn.547931.2)] +// CHECK:STDOUT: %specific_impl_fn.loc10_43.1: = specific_impl_function %impl.elem0.loc10_43.1, @Copy.Op(constants.%U.be8) [symbolic = %specific_impl_fn.loc10_43.2 (constants.%specific_impl_fn.2cedd6.2)] // CHECK:STDOUT: %bound_method.loc10_43.2: = bound_method %x.ref, %specific_impl_fn.loc10_43.1 // CHECK:STDOUT: %.loc10_29: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.870) = splice_block %return {} // CHECK:STDOUT: %.loc10_43.1: init @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.870) = call %bound_method.loc10_43.2(%x.ref) to %.loc10_29 @@ -822,7 +820,7 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.cb2)] -// CHECK:STDOUT: %Copy.facet.loc10_34.3: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet.loc10_34.3 (constants.%Copy.facet.2d1)] +// CHECK:STDOUT: %Copy.facet.loc10_34.3: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet.loc10_34.3 (constants.%Copy.facet)] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.2: = specific_function constants.%empty_tuple.type.as.I.impl.F.f1aebb.1, @empty_tuple.type.as.I.impl.F.loc10_34.1(%Copy.facet.loc10_34.3) [symbolic = %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.2 (constants.%empty_tuple.type.as.I.impl.F.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: @@ -830,11 +828,11 @@ impl () as I({}) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %empty_tuple.type.as.I.impl.F.type.e6fdf8.1 = name_ref F, @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_34.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.f1aebb.1] // CHECK:STDOUT: -// CHECK:STDOUT: %Copy.facet.loc10_34.1: %Copy.type = facet_value constants.%ptr.79f, (constants.%Copy.lookup_impl_witness.cb2) [symbolic = %Copy.facet.loc10_34.3 (constants.%Copy.facet.2d1)] -// CHECK:STDOUT: %.loc10_34.1: %Copy.type = converted constants.%ptr.79f, %Copy.facet.loc10_34.1 [symbolic = %Copy.facet.loc10_34.3 (constants.%Copy.facet.2d1)] -// CHECK:STDOUT: %Copy.facet.loc10_34.2: %Copy.type = facet_value constants.%ptr.79f, (constants.%Copy.lookup_impl_witness.cb2) [symbolic = %Copy.facet.loc10_34.3 (constants.%Copy.facet.2d1)] -// CHECK:STDOUT: %.loc10_34.2: %Copy.type = converted constants.%ptr.79f, %Copy.facet.loc10_34.2 [symbolic = %Copy.facet.loc10_34.3 (constants.%Copy.facet.2d1)] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.1: = specific_function %F.ref, @empty_tuple.type.as.I.impl.F.loc10_34.1(constants.%Copy.facet.2d1) [symbolic = %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.2 (constants.%empty_tuple.type.as.I.impl.F.specific_fn)] +// CHECK:STDOUT: %Copy.facet.loc10_34.1: %Copy.type = facet_value constants.%ptr.79f, (constants.%Copy.lookup_impl_witness.cb2) [symbolic = %Copy.facet.loc10_34.3 (constants.%Copy.facet)] +// CHECK:STDOUT: %.loc10_34.1: %Copy.type = converted constants.%ptr.79f, %Copy.facet.loc10_34.1 [symbolic = %Copy.facet.loc10_34.3 (constants.%Copy.facet)] +// CHECK:STDOUT: %Copy.facet.loc10_34.2: %Copy.type = facet_value constants.%ptr.79f, (constants.%Copy.lookup_impl_witness.cb2) [symbolic = %Copy.facet.loc10_34.3 (constants.%Copy.facet)] +// CHECK:STDOUT: %.loc10_34.2: %Copy.type = converted constants.%ptr.79f, %Copy.facet.loc10_34.2 [symbolic = %Copy.facet.loc10_34.3 (constants.%Copy.facet)] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.1: = specific_function %F.ref, @empty_tuple.type.as.I.impl.F.loc10_34.1(constants.%Copy.facet) [symbolic = %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.2 (constants.%empty_tuple.type.as.I.impl.F.specific_fn)] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.call: init @empty_tuple.type.as.I.impl.F.loc10_34.2.%ptr (%ptr.79f) = call %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.1(%x.ref) // CHECK:STDOUT: return %empty_tuple.type.as.I.impl.F.call to %return // CHECK:STDOUT: } @@ -852,15 +850,14 @@ impl () as I({}) { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_34.1(constants.%Copy.facet.2d1) { -// CHECK:STDOUT: %U.loc10_8.1 => constants.%Copy.facet.2d1 +// CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_34.1(constants.%Copy.facet) { +// CHECK:STDOUT: %U.loc10_8.1 => constants.%Copy.facet // CHECK:STDOUT: %U.as_type.loc10_26.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.6e5 // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.cb2 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.2d1 // CHECK:STDOUT: %.loc10_43.2 => constants.%.1cc // CHECK:STDOUT: %impl.elem0.loc10_43.2 => constants.%impl.elem0.751 // CHECK:STDOUT: %specific_impl_fn.loc10_43.2 => constants.%specific_impl_fn.f44 @@ -886,10 +883,9 @@ impl () as I({}) { // CHECK:STDOUT: %require_complete.07c867.1: = require_complete_type %U.as_type.870 [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15cec.2: = lookup_impl_witness %U.be8, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.021101.2: %Copy.type = facet_value %U.as_type.870, (%Copy.lookup_impl_witness.e15cec.2) [symbolic] -// CHECK:STDOUT: %.c500ab.2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.021101.2 [symbolic] -// CHECK:STDOUT: %impl.elem0.792e99.2: %.c500ab.2 = impl_witness_access %Copy.lookup_impl_witness.e15cec.2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.547931.2: = specific_impl_function %impl.elem0.792e99.2, @Copy.Op(%Copy.facet.021101.2) [symbolic] +// CHECK:STDOUT: %.427cc3.2: type = fn_type_with_self_type %Copy.Op.type, %U.be8 [symbolic] +// CHECK:STDOUT: %impl.elem0.168dc4.2: %.427cc3.2 = impl_witness_access %Copy.lookup_impl_witness.e15cec.2, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2cedd6.2: = specific_impl_function %impl.elem0.168dc4.2, @Copy.Op(%U.be8) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -955,17 +951,16 @@ impl () as I({}) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc19_36.1 [symbolic = %require_complete (constants.%require_complete.07c867.1)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc19_18.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15cec.2)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %U.as_type.loc19_36.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.021101.2)] -// CHECK:STDOUT: %.loc19_53.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc19_53.2 (constants.%.c500ab.2)] -// CHECK:STDOUT: %impl.elem0.loc19_53.2: @empty_tuple.type.as.I.impl.F.loc19_44.1.%.loc19_53.2 (%.c500ab.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc19_53.2 (constants.%impl.elem0.792e99.2)] -// CHECK:STDOUT: %specific_impl_fn.loc19_53.2: = specific_impl_function %impl.elem0.loc19_53.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc19_53.2 (constants.%specific_impl_fn.547931.2)] +// CHECK:STDOUT: %.loc19_53.2: type = fn_type_with_self_type constants.%Copy.Op.type, %U.loc19_18.1 [symbolic = %.loc19_53.2 (constants.%.427cc3.2)] +// CHECK:STDOUT: %impl.elem0.loc19_53.2: @empty_tuple.type.as.I.impl.F.loc19_44.1.%.loc19_53.2 (%.427cc3.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc19_53.2 (constants.%impl.elem0.168dc4.2)] +// CHECK:STDOUT: %specific_impl_fn.loc19_53.2: = specific_impl_function %impl.elem0.loc19_53.2, @Copy.Op(%U.loc19_18.1) [symbolic = %specific_impl_fn.loc19_53.2 (constants.%specific_impl_fn.2cedd6.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: %empty_tuple.type, %x.param: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870)) -> %return.param: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870) = name_ref x, %x -// CHECK:STDOUT: %impl.elem0.loc19_53.1: @empty_tuple.type.as.I.impl.F.loc19_44.1.%.loc19_53.2 (%.c500ab.2) = impl_witness_access constants.%Copy.lookup_impl_witness.e15cec.2, element0 [symbolic = %impl.elem0.loc19_53.2 (constants.%impl.elem0.792e99.2)] +// CHECK:STDOUT: %impl.elem0.loc19_53.1: @empty_tuple.type.as.I.impl.F.loc19_44.1.%.loc19_53.2 (%.427cc3.2) = impl_witness_access constants.%Copy.lookup_impl_witness.e15cec.2, element0 [symbolic = %impl.elem0.loc19_53.2 (constants.%impl.elem0.168dc4.2)] // CHECK:STDOUT: %bound_method.loc19_53.1: = bound_method %x.ref, %impl.elem0.loc19_53.1 -// CHECK:STDOUT: %specific_impl_fn.loc19_53.1: = specific_impl_function %impl.elem0.loc19_53.1, @Copy.Op(constants.%Copy.facet.021101.2) [symbolic = %specific_impl_fn.loc19_53.2 (constants.%specific_impl_fn.547931.2)] +// CHECK:STDOUT: %specific_impl_fn.loc19_53.1: = specific_impl_function %impl.elem0.loc19_53.1, @Copy.Op(constants.%U.be8) [symbolic = %specific_impl_fn.loc19_53.2 (constants.%specific_impl_fn.2cedd6.2)] // CHECK:STDOUT: %bound_method.loc19_53.2: = bound_method %x.ref, %specific_impl_fn.loc19_53.1 // CHECK:STDOUT: %.loc19_39: ref @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870) = splice_block %return {} // CHECK:STDOUT: %.loc19_53.1: init @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870) = call %bound_method.loc19_53.2(%x.ref) to %.loc19_39 diff --git a/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon b/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon index 4ad50f3d01265..526dbb6a5a321 100644 --- a/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon +++ b/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon @@ -119,14 +119,14 @@ fn Call() -> Int(32) { // CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness file.%ImplicitAs.impl_witness_table [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.695: %ImplicitAs.type.873 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness) [concrete] -// CHECK:STDOUT: %.0f5: type = fn_type_with_self_type %ImplicitAs.Convert.type.059, %ImplicitAs.facet.695 [concrete] -// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.type.65a5a3.1: type = fn_type @i32.builtin.as.Add.impl.Op.loc15_35.1, @i32.builtin.as.Add.impl(%ImplicitAs.facet.695) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.873 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness) [concrete] +// CHECK:STDOUT: %.0f5: type = fn_type_with_self_type %ImplicitAs.Convert.type.059, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.type.65a5a3.1: type = fn_type @i32.builtin.as.Add.impl.Op.loc15_35.1, @i32.builtin.as.Add.impl(%ImplicitAs.facet) [concrete] // CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.59c0f1.1: %i32.builtin.as.Add.impl.Op.type.65a5a3.1 = struct_value () [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.e54: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %int_2.5a1: %i32.builtin = int_value 2 [concrete] -// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.specific_fn.ffbee8.2: = specific_function %i32.builtin.as.Add.impl.Op.59c0f1.1, @i32.builtin.as.Add.impl.Op.loc15_35.1(%ImplicitAs.facet.695) [concrete] +// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.specific_fn.ffbee8.2: = specific_function %i32.builtin.as.Add.impl.Op.59c0f1.1, @i32.builtin.as.Add.impl.Op.loc15_35.1(%ImplicitAs.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -137,19 +137,19 @@ fn Call() -> Int(32) { // CHECK:STDOUT: // CHECK:STDOUT: %a.ref: %i32.builtin = name_ref a, %a // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %ImplicitAs.facet.loc25_14.1: %ImplicitAs.type.873 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness) [concrete = constants.%ImplicitAs.facet.695] -// CHECK:STDOUT: %.loc25_14.1: %ImplicitAs.type.873 = converted Core.IntLiteral, %ImplicitAs.facet.loc25_14.1 [concrete = constants.%ImplicitAs.facet.695] -// CHECK:STDOUT: %ImplicitAs.facet.loc25_14.2: %ImplicitAs.type.873 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness) [concrete = constants.%ImplicitAs.facet.695] -// CHECK:STDOUT: %.loc25_14.2: %ImplicitAs.type.873 = converted Core.IntLiteral, %ImplicitAs.facet.loc25_14.2 [concrete = constants.%ImplicitAs.facet.695] +// CHECK:STDOUT: %ImplicitAs.facet.loc25_14.1: %ImplicitAs.type.873 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness) [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %.loc25_14.1: %ImplicitAs.type.873 = converted Core.IntLiteral, %ImplicitAs.facet.loc25_14.1 [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %ImplicitAs.facet.loc25_14.2: %ImplicitAs.type.873 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness) [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %.loc25_14.2: %ImplicitAs.type.873 = converted Core.IntLiteral, %ImplicitAs.facet.loc25_14.2 [concrete = constants.%ImplicitAs.facet] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc25_14.3: %i32.builtin.as.Add.impl.Op.type.65a5a3.1 = specific_constant @i32.builtin.as.Add.impl.%i32.builtin.as.Add.impl.Op.decl.loc15_35.1, @i32.builtin.as.Add.impl(constants.%ImplicitAs.facet.695) [concrete = constants.%i32.builtin.as.Add.impl.Op.59c0f1.1] +// CHECK:STDOUT: %.loc25_14.3: %i32.builtin.as.Add.impl.Op.type.65a5a3.1 = specific_constant @i32.builtin.as.Add.impl.%i32.builtin.as.Add.impl.Op.decl.loc15_35.1, @i32.builtin.as.Add.impl(constants.%ImplicitAs.facet) [concrete = constants.%i32.builtin.as.Add.impl.Op.59c0f1.1] // CHECK:STDOUT: %Op.ref.loc25: %i32.builtin.as.Add.impl.Op.type.65a5a3.1 = name_ref Op, %.loc25_14.3 [concrete = constants.%i32.builtin.as.Add.impl.Op.59c0f1.1] // CHECK:STDOUT: %impl.elem0.loc25_14: %.0f5 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc25_14: = bound_method %int_2, %impl.elem0.loc25_14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.e54] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25_14: init %i32.builtin = call %bound_method.loc25_14(%int_2) [concrete = constants.%int_2.5a1] // CHECK:STDOUT: %.loc25_14.4: %i32.builtin = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25_14 [concrete = constants.%int_2.5a1] // CHECK:STDOUT: %.loc25_14.5: %i32.builtin = converted %int_2, %.loc25_14.4 [concrete = constants.%int_2.5a1] -// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.specific_fn: = specific_function %Op.ref.loc25, @i32.builtin.as.Add.impl.Op.loc15_35.1(constants.%ImplicitAs.facet.695) [concrete = constants.%i32.builtin.as.Add.impl.Op.specific_fn.ffbee8.2] +// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.specific_fn: = specific_function %Op.ref.loc25, @i32.builtin.as.Add.impl.Op.loc15_35.1(constants.%ImplicitAs.facet) [concrete = constants.%i32.builtin.as.Add.impl.Op.specific_fn.ffbee8.2] // CHECK:STDOUT: %impl.elem0.loc25_13: %.0f5 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc25_13: = bound_method %int_2, %impl.elem0.loc25_13 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.e54] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25_13: init %i32.builtin = call %bound_method.loc25_13(%int_2) [concrete = constants.%int_2.5a1] diff --git a/toolchain/check/testdata/impl/import_interface_assoc_const.carbon b/toolchain/check/testdata/impl/import_interface_assoc_const.carbon index e1896a6de20c2..3262df2f388d9 100644 --- a/toolchain/check/testdata/impl/import_interface_assoc_const.carbon +++ b/toolchain/check/testdata/impl/import_interface_assoc_const.carbon @@ -321,7 +321,6 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.652 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table [concrete] @@ -395,7 +394,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- redecl.carbon // CHECK:STDOUT: @@ -410,7 +409,6 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.652 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table [concrete] @@ -500,7 +498,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_redecl_adds_rewrites.carbon // CHECK:STDOUT: @@ -516,7 +514,6 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.652 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %I.impl_witness.877: = impl_witness file.%I.impl_witness_table.loc10 [concrete] @@ -598,7 +595,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch.carbon // CHECK:STDOUT: @@ -613,7 +610,6 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.652 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %I_where.type.aa0: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] @@ -711,7 +707,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_bad_value.carbon // CHECK:STDOUT: @@ -726,7 +722,6 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %assoc0: %I3.assoc_type = assoc_entity element0, imports.%Main.import_ref.5fb [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I3.lookup_impl_witness: = lookup_impl_witness %.Self, @I3 [symbolic_self] -// CHECK:STDOUT: %I3.facet: %I3.type = facet_value %.Self.as_type, (%I3.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I3.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %assoc1: %I3.assoc_type = assoc_entity element1, imports.%Main.import_ref.e26 [concrete] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access %I3.lookup_impl_witness, element1 [symbolic_self] @@ -873,15 +868,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @T1(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T1(constants.%I3.facet) {} +// CHECK:STDOUT: specific @T1(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @T2(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T2(constants.%I3.facet) {} +// CHECK:STDOUT: specific @T2(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @T3(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T3(constants.%I3.facet) {} +// CHECK:STDOUT: specific @T3(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_missing_on_definition.carbon // CHECK:STDOUT: @@ -896,7 +891,6 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.652 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %I.impl_witness.255: = impl_witness file.%I.impl_witness_table.loc5 [concrete] @@ -979,7 +973,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_two_different.carbon // CHECK:STDOUT: @@ -994,7 +988,6 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.652 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: } @@ -1073,7 +1066,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_two_different_first_bad.carbon // CHECK:STDOUT: @@ -1088,7 +1081,6 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.652 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: } @@ -1167,7 +1159,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_two_different_second_bad.carbon // CHECK:STDOUT: @@ -1182,7 +1174,6 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.652 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1260,7 +1251,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_two_different_both_bad.carbon // CHECK:STDOUT: @@ -1275,7 +1266,6 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.652 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1353,7 +1343,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- repeated.carbon // CHECK:STDOUT: @@ -1368,7 +1358,6 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.652 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table [concrete] @@ -1451,7 +1440,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} +// CHECK:STDOUT: specific @T(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- non-type.carbon // CHECK:STDOUT: @@ -1467,7 +1456,6 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %NonType.lookup_impl_witness: = lookup_impl_witness %.Self, @NonType [symbolic_self] // CHECK:STDOUT: %struct_type.a.225: type = struct_type {.a: %empty_struct_type} [concrete] -// CHECK:STDOUT: %NonType.facet: %NonType.type = facet_value %.Self.as_type, (%NonType.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access %NonType.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.a.225 = struct_value (%empty_struct) [concrete] @@ -1547,7 +1535,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y(constants.%NonType.facet) {} +// CHECK:STDOUT: specific @Y(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: --- interface_with_function.carbon // CHECK:STDOUT: @@ -1599,15 +1587,14 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %IF.lookup_impl_witness: = lookup_impl_witness %.Self, @IF [symbolic_self] // CHECK:STDOUT: %IF.F.type: type = fn_type @IF.F [concrete] // CHECK:STDOUT: %IF.F: %IF.F.type = struct_value () [concrete] -// CHECK:STDOUT: %IF.facet.e57: %IF.type = facet_value %.Self.as_type, (%IF.lookup_impl_witness) [symbolic_self] -// CHECK:STDOUT: %.641: type = fn_type_with_self_type %IF.F.type, %IF.facet.e57 [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.641 = impl_witness_access %IF.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %.ed4: type = fn_type_with_self_type %IF.F.type, %.Self [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.ed4 = impl_witness_access %IF.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %IF_where.type: type = facet_type <@IF where %impl.elem0 = %int_0> [concrete] // CHECK:STDOUT: %IF.impl_witness: = impl_witness file.%IF.impl_witness_table [concrete] // CHECK:STDOUT: %CD.as.IF.impl.F.type: type = fn_type @CD.as.IF.impl.F [concrete] // CHECK:STDOUT: %CD.as.IF.impl.F: %CD.as.IF.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %IF.facet.864: %IF.type = facet_value %CD, (%IF.impl_witness) [concrete] +// CHECK:STDOUT: %IF.facet: %IF.type = facet_value %CD, (%IF.impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1634,7 +1621,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %F.ref: %IF.assoc_type = name_ref F, imports.%Main.import_ref.f22 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %impl.elem0: %.641 = impl_witness_access constants.%IF.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %impl.elem0: %.ed4 = impl_witness_access constants.%IF.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc10_15: type = where_expr %.Self [concrete = constants.%IF_where.type] { // CHECK:STDOUT: requirement_base_facet_type constants.%IF.type @@ -1679,5 +1666,5 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @IF.F(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @IF.F(constants.%IF.facet.864) {} +// CHECK:STDOUT: specific @IF.F(constants.%IF.facet) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon b/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon index 780bc875cbe23..8e23a27f8e42a 100644 --- a/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon +++ b/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon @@ -119,7 +119,6 @@ fn F() { // CHECK:STDOUT: %require_complete: = require_complete_type %Y.type.420 [symbolic] // CHECK:STDOUT: %.Self.as_type.667: type = facet_access_type %.Self.5c8 [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness.a57: = lookup_impl_witness %.Self.5c8, @Y, @Y(%OuterParam) [symbolic] -// CHECK:STDOUT: %Y.facet.2f0: %Y.type.420 = facet_value %.Self.as_type.667, (%Y.lookup_impl_witness.a57) [symbolic] // CHECK:STDOUT: %impl.elem0.a37: type = impl_witness_access %Y.lookup_impl_witness.a57, element0 [symbolic] // CHECK:STDOUT: %Y_where.type.197: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.a37 = %empty_tuple.type> [symbolic] // CHECK:STDOUT: %H: %Y_where.type.197 = bind_symbolic_name H, 1 [symbolic] @@ -146,7 +145,6 @@ fn F() { // CHECK:STDOUT: %assoc0.0a6: %Y.assoc_type.06e = assoc_entity element0, @Y.%T [concrete] // CHECK:STDOUT: %.Self.as_type.2b9: type = facet_access_type %.Self.0fc [symbolic_self] // CHECK:STDOUT: %Y.lookup_impl_witness.1fc: = lookup_impl_witness %.Self.0fc, @Y, @Y(%empty_tuple.type) [symbolic_self] -// CHECK:STDOUT: %Y.facet.18f: %Y.type.c91 = facet_value %.Self.as_type.2b9, (%Y.lookup_impl_witness.1fc) [symbolic_self] // CHECK:STDOUT: %impl.elem0.f73: type = impl_witness_access %Y.lookup_impl_witness.1fc, element0 [symbolic_self] // CHECK:STDOUT: %Y_where.type.145: type = facet_type <@Y, @Y(%empty_tuple.type) where %impl.elem0.f73 = %empty_tuple.type> [concrete] // CHECK:STDOUT: %Y.impl_witness: = impl_witness file.%Y.impl_witness_table [concrete] @@ -387,7 +385,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%OuterParam, constants.%Self.42a) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%OuterParam, constants.%Y.facet.2f0) {} +// CHECK:STDOUT: specific @T(constants.%OuterParam, constants.%.Self.5c8) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer.G(constants.%OuterParam, constants.%H) { // CHECK:STDOUT: %OuterParam => constants.%OuterParam @@ -435,7 +433,7 @@ fn F() { // CHECK:STDOUT: %assoc0 => constants.%assoc0.0a6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%empty_tuple.type, constants.%Y.facet.18f) {} +// CHECK:STDOUT: specific @T(constants.%empty_tuple.type, constants.%.Self.0fc) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer.G(constants.%empty_tuple.type, constants.%facet_value) { // CHECK:STDOUT: %OuterParam => constants.%empty_tuple.type @@ -477,7 +475,6 @@ fn F() { // CHECK:STDOUT: %require_complete.83f: = require_complete_type %Y.type.699 [symbolic] // CHECK:STDOUT: %.Self.as_type.29f: type = facet_access_type %.Self.707 [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness.5a6: = lookup_impl_witness %.Self.707, @Y, @Y(%OuterParam) [symbolic] -// CHECK:STDOUT: %Y.facet: %Y.type.699 = facet_value %.Self.as_type.29f, (%Y.lookup_impl_witness.5a6) [symbolic] // CHECK:STDOUT: %impl.elem0.31f: type = impl_witness_access %Y.lookup_impl_witness.5a6, element0 [symbolic] // CHECK:STDOUT: %Y_where.type.6e4: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.31f = %empty_tuple.type> [symbolic] // CHECK:STDOUT: %H: %Y_where.type.6e4 = bind_symbolic_name H, 1 [symbolic] @@ -860,7 +857,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%OuterParam, constants.%Self.763) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%OuterParam, constants.%Y.facet) {} +// CHECK:STDOUT: specific @T(constants.%OuterParam, constants.%.Self.707) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer.G(constants.%OuterParam, constants.%H) { // CHECK:STDOUT: %OuterParam => constants.%OuterParam 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 3e4b1233dd7e5..67330202c3b2c 100644 --- a/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon +++ b/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon @@ -127,7 +127,6 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %require_complete.760: = require_complete_type %Z.type.318 [symbolic] // CHECK:STDOUT: %.Self.as_type.d30: type = facet_access_type %.Self.b4a [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness.e23: = lookup_impl_witness %.Self.b4a, @Z, @Z(%S) [symbolic] -// CHECK:STDOUT: %Z.facet.d14: %Z.type.318 = facet_value %.Self.as_type.d30, (%Z.lookup_impl_witness.e23) [symbolic] // CHECK:STDOUT: %impl.elem0.abb: type = impl_witness_access %Z.lookup_impl_witness.e23, element0 [symbolic] // CHECK:STDOUT: %Z_where.type.90e: type = facet_type <@Z, @Z(%S) where %impl.elem0.abb = %empty_tuple.type> [symbolic] // CHECK:STDOUT: %require_complete.dd6: = require_complete_type %Z_where.type.90e [symbolic] @@ -139,7 +138,6 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %assoc0.ea4: %Z.assoc_type.252 = assoc_entity element0, @Z.%X [concrete] // CHECK:STDOUT: %.Self.as_type.16f: type = facet_access_type %.Self.784 [symbolic_self] // CHECK:STDOUT: %Z.lookup_impl_witness.62b: = lookup_impl_witness %.Self.784, @Z, @Z(%C) [symbolic_self] -// CHECK:STDOUT: %Z.facet.c00: %Z.type.a71 = facet_value %.Self.as_type.16f, (%Z.lookup_impl_witness.62b) [symbolic_self] // CHECK:STDOUT: %impl.elem0.dac: type = impl_witness_access %Z.lookup_impl_witness.62b, element0 [symbolic_self] // CHECK:STDOUT: %Z_where.type.9b7: type = facet_type <@Z, @Z(%C) where %impl.elem0.dac = %T.8b3> [symbolic] // CHECK:STDOUT: %require_complete.eca: = require_complete_type %Z_where.type.9b7 [symbolic] @@ -154,7 +152,6 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z_where.type.7a1: type = facet_type <@Z, @Z(%C) where %impl.elem0.dac = %T.as_type> [symbolic] // CHECK:STDOUT: %require_complete.685: = require_complete_type %Z_where.type.7a1 [symbolic] // CHECK:STDOUT: %Z.impl_witness.69d: = impl_witness file.%Z.impl_witness_table.loc11, @T.as.Z.impl.3bd(%T.as_type) [symbolic] -// CHECK:STDOUT: %Z.facet.bd4: %Z.type.a71 = facet_value %T.as_type, (%Z.impl_witness.69d) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -396,7 +393,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %assoc0 => constants.%assoc0.abb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%S, constants.%Z.facet.d14) {} +// CHECK:STDOUT: specific @X(constants.%S, constants.%.Self.b4a) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.Z.impl.c87(constants.%T.8b3, constants.%S) { // CHECK:STDOUT: %T.loc9_14.2 => constants.%T.8b3 @@ -424,7 +421,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %assoc0 => constants.%assoc0.ea4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%C, constants.%Z.facet.c00) {} +// CHECK:STDOUT: specific @X(constants.%C, constants.%.Self.784) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.Z.impl.3bd(constants.%T.8b3) { // CHECK:STDOUT: %T.loc11_20.2 => constants.%T.8b3 @@ -448,7 +445,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%C, constants.%Z.facet.bd4) {} +// CHECK:STDOUT: specific @X(constants.%C, constants.%T.fcc) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_nonfinal_specialized_symbolic_rewrite.carbon // CHECK:STDOUT: @@ -485,7 +482,6 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %require_complete.760: = require_complete_type %Z.type.318 [symbolic] // CHECK:STDOUT: %.Self.as_type.d30: type = facet_access_type %.Self.b4a [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness.e23: = lookup_impl_witness %.Self.b4a, @Z, @Z(%S) [symbolic] -// CHECK:STDOUT: %Z.facet.d14: %Z.type.318 = facet_value %.Self.as_type.d30, (%Z.lookup_impl_witness.e23) [symbolic] // CHECK:STDOUT: %impl.elem0.abb: type = impl_witness_access %Z.lookup_impl_witness.e23, element0 [symbolic] // CHECK:STDOUT: %Z_where.type.90e: type = facet_type <@Z, @Z(%S) where %impl.elem0.abb = %empty_tuple.type> [symbolic] // CHECK:STDOUT: %require_complete.dd6: = require_complete_type %Z_where.type.90e [symbolic] @@ -497,7 +493,6 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %assoc0.ea4: %Z.assoc_type.252 = assoc_entity element0, @Z.%X [concrete] // CHECK:STDOUT: %.Self.as_type.16f: type = facet_access_type %.Self.784 [symbolic_self] // CHECK:STDOUT: %Z.lookup_impl_witness.62b: = lookup_impl_witness %.Self.784, @Z, @Z(%C) [symbolic_self] -// CHECK:STDOUT: %Z.facet.c00: %Z.type.a71 = facet_value %.Self.as_type.16f, (%Z.lookup_impl_witness.62b) [symbolic_self] // CHECK:STDOUT: %impl.elem0.dac: type = impl_witness_access %Z.lookup_impl_witness.62b, element0 [symbolic_self] // CHECK:STDOUT: %Z_where.type.9b7: type = facet_type <@Z, @Z(%C) where %impl.elem0.dac = %T.8b3> [symbolic] // CHECK:STDOUT: %require_complete.eca: = require_complete_type %Z_where.type.9b7 [symbolic] @@ -510,7 +505,6 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.08e: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness.38e: = lookup_impl_witness %T.fcc, @Z, @Z(%C) [symbolic] -// CHECK:STDOUT: %Z.facet.b3f: %Z.type.a71 = facet_value %T.as_type, (%Z.lookup_impl_witness.38e) [symbolic] // CHECK:STDOUT: %impl.elem0.407: type = impl_witness_access %Z.lookup_impl_witness.38e, element0 [symbolic] // CHECK:STDOUT: %require_complete.d9a: = require_complete_type %impl.elem0.407 [symbolic] // CHECK:STDOUT: %pattern_type.420: type = pattern_type %impl.elem0.407 [symbolic] @@ -790,7 +784,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %assoc0 => constants.%assoc0.abb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%S, constants.%Z.facet.d14) {} +// CHECK:STDOUT: specific @X(constants.%S, constants.%.Self.b4a) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.Z.impl.c87(constants.%T.8b3, constants.%S) { // CHECK:STDOUT: %T.loc10_14.2 => constants.%T.8b3 @@ -818,7 +812,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %assoc0 => constants.%assoc0.ea4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%C, constants.%Z.facet.c00) {} +// CHECK:STDOUT: specific @X(constants.%C, constants.%.Self.784) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.Z.impl.3bd(constants.%T.8b3) { // CHECK:STDOUT: %T.loc12_14.2 => constants.%T.8b3 @@ -833,7 +827,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %pattern_type.loc14 => constants.%pattern_type.3c4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%C, constants.%Z.facet.b3f) {} +// CHECK:STDOUT: specific @X(constants.%C, constants.%T.fcc) {} // CHECK:STDOUT: // CHECK:STDOUT: --- final_impl_rewrite_of_symbolic_through_impl_lookup.carbon // CHECK:STDOUT: @@ -849,7 +843,6 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %.Self.690: %Ptr.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.690 [symbolic_self] // CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.690, @Ptr [symbolic_self] -// CHECK:STDOUT: %Ptr.facet.e83: %Ptr.type = facet_value %.Self.as_type, (%Ptr.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0.b59: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %U.8b3 [symbolic] // CHECK:STDOUT: %Ptr_where.type.4f051e.1: type = facet_type <@Ptr where %impl.elem0.b59 = %ptr.79f131.1> [symbolic] @@ -861,7 +854,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr_where.type.4f051e.2: type = facet_type <@Ptr where %impl.elem0.b59 = %ptr.79f131.2> [symbolic] // CHECK:STDOUT: %require_complete.334099.2: = require_complete_type %Ptr_where.type.4f051e.2 [symbolic] // CHECK:STDOUT: %Ptr.impl_witness.da31d2.2: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.8b3) [symbolic] -// CHECK:STDOUT: %Ptr.facet.0fb: %Ptr.type = facet_value %T.8b3, (%Ptr.impl_witness.da31d2.2) [symbolic] +// CHECK:STDOUT: %Ptr.facet: %Ptr.type = facet_value %T.8b3, (%Ptr.impl_witness.da31d2.2) [symbolic] // CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f131.2 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -870,10 +863,10 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.cb2: = lookup_impl_witness %ptr.79f131.2, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.2d1: %Copy.type = facet_value %ptr.79f131.2, (%Copy.lookup_impl_witness.cb2) [symbolic] -// CHECK:STDOUT: %.1cc: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.2d1 [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.79f131.2, (%Copy.lookup_impl_witness.cb2) [symbolic] +// CHECK:STDOUT: %.1cc: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] // CHECK:STDOUT: %impl.elem0.751: %.1cc = impl_witness_access %Copy.lookup_impl_witness.cb2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.f44: = specific_impl_function %impl.elem0.751, @Copy.Op(%Copy.facet.2d1) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.f44: = specific_impl_function %impl.elem0.751, @Copy.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -927,8 +920,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %T.ref.loc9_29: type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.8b3)] // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.d28] -// CHECK:STDOUT: %Ptr.facet.loc9_30.2: %Ptr.type = facet_value constants.%T.8b3, (constants.%Ptr.impl_witness.da31d2.2) [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet.0fb)] -// CHECK:STDOUT: %.loc9: %Ptr.type = converted %T.ref.loc9_29, %Ptr.facet.loc9_30.2 [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet.0fb)] +// CHECK:STDOUT: %Ptr.facet.loc9_30.2: %Ptr.type = facet_value constants.%T.8b3, (constants.%Ptr.impl_witness.da31d2.2) [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet)] +// CHECK:STDOUT: %.loc9: %Ptr.type = converted %T.ref.loc9_29, %Ptr.facet.loc9_30.2 [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet)] // CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.da31d2.2, element0 [symbolic = %ptr (constants.%ptr.79f131.2)] // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.659] // CHECK:STDOUT: %T.loc9_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.8b3)] @@ -975,7 +968,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %T.loc9_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.8b3)] // CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.loc9_6.1 [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.7dc)] // CHECK:STDOUT: %Ptr.impl_witness: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.loc9_6.1) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.da31d2.2)] -// 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.0fb)] +// 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)] // CHECK:STDOUT: %ptr: type = ptr_type %T.loc9_6.1 [symbolic = %ptr (constants.%ptr.79f131.2)] // CHECK:STDOUT: %pattern_type.loc9_26: type = pattern_type %ptr [symbolic = %pattern_type.loc9_26 (constants.%pattern_type.afe)] // CHECK:STDOUT: @@ -983,7 +976,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %require_complete.loc9_26: = require_complete_type %ptr [symbolic = %require_complete.loc9_26 (constants.%require_complete.6e5)] // CHECK:STDOUT: %require_complete.loc9_16: = require_complete_type %T.loc9_6.1 [symbolic = %require_complete.loc9_16 (constants.%require_complete.4ae)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.cb2)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.2d1)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] // CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.1cc)] // CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.1cc) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.751)] // CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.f44)] @@ -994,7 +987,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %addr: @F.%ptr (%ptr.79f131.2) = addr_of %t.ref // CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.1cc) = impl_witness_access constants.%Copy.lookup_impl_witness.cb2, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.751)] // CHECK:STDOUT: %bound_method.loc10_10.1: = bound_method %addr, %impl.elem0.loc10_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.Op(constants.%Copy.facet.2d1) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.f44)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.f44)] // CHECK:STDOUT: %bound_method.loc10_10.2: = bound_method %addr, %specific_impl_fn.loc10_10.1 // CHECK:STDOUT: %.loc10_10.1: init @F.%ptr (%ptr.79f131.2) = call %bound_method.loc10_10.2(%addr) // CHECK:STDOUT: return %.loc10_10.1 to %return @@ -1003,7 +996,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Type(constants.%Self.a46) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Type(constants.%Ptr.facet.e83) {} +// CHECK:STDOUT: specific @Type(constants.%.Self.690) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%U.8b3) { // CHECK:STDOUT: %U.loc7_20.2 => constants.%U.8b3 @@ -1023,13 +1016,13 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Type(constants.%Ptr.facet.0fb) {} +// CHECK:STDOUT: specific @Type(constants.%Ptr.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.8b3) { // CHECK:STDOUT: %T.loc9_6.1 => constants.%T.8b3 // CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.7dc // CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.da31d2.2 -// CHECK:STDOUT: %Ptr.facet.loc9_30.1 => constants.%Ptr.facet.0fb +// CHECK:STDOUT: %Ptr.facet.loc9_30.1 => constants.%Ptr.facet // CHECK:STDOUT: %ptr => constants.%ptr.79f131.2 // CHECK:STDOUT: %pattern_type.loc9_26 => constants.%pattern_type.afe // CHECK:STDOUT: } @@ -1048,7 +1041,6 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %.Self.690: %Ptr.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.690 [symbolic_self] // CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.690, @Ptr [symbolic_self] -// CHECK:STDOUT: %Ptr.facet.e83: %Ptr.type = facet_value %.Self.as_type, (%Ptr.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0.b59: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %U.8b3 [symbolic] // CHECK:STDOUT: %Ptr_where.type.4f0: type = facet_type <@Ptr where %impl.elem0.b59 = %ptr.79f131.1> [symbolic] @@ -1062,7 +1054,6 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr_where.type.483: type = facet_type <@Ptr where %impl.elem0.b59 = %ptr.ae5> [symbolic] // CHECK:STDOUT: %require_complete.c7f: = require_complete_type %Ptr_where.type.483 [symbolic] // CHECK:STDOUT: %Ptr.impl_witness.530: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.dc4) [symbolic] -// CHECK:STDOUT: %Ptr.facet.9fe: %Ptr.type = facet_value %T.as_type.dc4, (%Ptr.impl_witness.530) [symbolic] // CHECK:STDOUT: %pattern_type.ec6: type = pattern_type %ptr.ae5 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -1071,10 +1062,10 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.68e: = lookup_impl_witness %ptr.ae5, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.3da: %Copy.type = facet_value %ptr.ae5, (%Copy.lookup_impl_witness.68e) [symbolic] -// CHECK:STDOUT: %.19c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.3da [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.ae5, (%Copy.lookup_impl_witness.68e) [symbolic] +// CHECK:STDOUT: %.19c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] // CHECK:STDOUT: %impl.elem0.6d5: %.19c = impl_witness_access %Copy.lookup_impl_witness.68e, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.8d6: = specific_impl_function %impl.elem0.6d5, @Copy.Op(%Copy.facet.3da) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.8d6: = specific_impl_function %impl.elem0.6d5, @Copy.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1192,7 +1183,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.e69)] // CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete.loc9_15 (constants.%require_complete.43a)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.68e)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.3da)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] // CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.19c)] // CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.19c) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.6d5)] // CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.8d6)] @@ -1203,7 +1194,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %addr: @F.%ptr (%ptr.ae5) = addr_of %t.ref // CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.19c) = impl_witness_access constants.%Copy.lookup_impl_witness.68e, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.6d5)] // CHECK:STDOUT: %bound_method.loc10_10.1: = bound_method %addr, %impl.elem0.loc10_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.Op(constants.%Copy.facet.3da) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.8d6)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.8d6)] // CHECK:STDOUT: %bound_method.loc10_10.2: = bound_method %addr, %specific_impl_fn.loc10_10.1 // CHECK:STDOUT: %.loc10_10.1: init @F.%ptr (%ptr.ae5) = call %bound_method.loc10_10.2(%addr) // CHECK:STDOUT: return %.loc10_10.1 to %return @@ -1212,7 +1203,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Type(constants.%Self.a46) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Type(constants.%Ptr.facet.e83) {} +// CHECK:STDOUT: specific @Type(constants.%.Self.690) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%U.8b3) { // CHECK:STDOUT: %U.loc7_20.2 => constants.%U.8b3 @@ -1232,7 +1223,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Type(constants.%Ptr.facet.9fe) {} +// CHECK:STDOUT: specific @Type(constants.%T.a46) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.a46) { // CHECK:STDOUT: %T.loc9_6.1 => constants.%T.a46 @@ -1257,7 +1248,6 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %.Self.690: %Ptr.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.690 [symbolic_self] // CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.690, @Ptr [symbolic_self] -// CHECK:STDOUT: %Ptr.facet.e83: %Ptr.type = facet_value %.Self.as_type, (%Ptr.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0.b59: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %U.8b3 [symbolic] // CHECK:STDOUT: %Ptr_where.type.4f0: type = facet_type <@Ptr where %impl.elem0.b59 = %ptr.79f131.1> [symbolic] @@ -1271,7 +1261,6 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr_where.type.483: type = facet_type <@Ptr where %impl.elem0.b59 = %ptr.ae5> [symbolic] // CHECK:STDOUT: %require_complete.c7f: = require_complete_type %Ptr_where.type.483 [symbolic] // CHECK:STDOUT: %Ptr.impl_witness.530: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.dc4) [symbolic] -// CHECK:STDOUT: %Ptr.facet.9fe: %Ptr.type = facet_value %T.as_type.dc4, (%Ptr.impl_witness.530) [symbolic] // CHECK:STDOUT: %pattern_type.ec6: type = pattern_type %ptr.ae5 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -1280,10 +1269,10 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.68e: = lookup_impl_witness %ptr.ae5, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.3da: %Copy.type = facet_value %ptr.ae5, (%Copy.lookup_impl_witness.68e) [symbolic] -// CHECK:STDOUT: %.19c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.3da [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.ae5, (%Copy.lookup_impl_witness.68e) [symbolic] +// CHECK:STDOUT: %.19c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] // CHECK:STDOUT: %impl.elem0.6d5: %.19c = impl_witness_access %Copy.lookup_impl_witness.68e, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.8d6: = specific_impl_function %impl.elem0.6d5, @Copy.Op(%Copy.facet.3da) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.8d6: = specific_impl_function %impl.elem0.6d5, @Copy.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1400,7 +1389,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.e69)] // CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete.loc9_15 (constants.%require_complete.43a)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.68e)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.3da)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] // CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.19c)] // CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.19c) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.6d5)] // CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.8d6)] @@ -1411,7 +1400,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %addr: @F.%ptr (%ptr.ae5) = addr_of %t.ref // CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.19c) = impl_witness_access constants.%Copy.lookup_impl_witness.68e, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.6d5)] // CHECK:STDOUT: %bound_method.loc10_10.1: = bound_method %addr, %impl.elem0.loc10_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.Op(constants.%Copy.facet.3da) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.8d6)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.8d6)] // CHECK:STDOUT: %bound_method.loc10_10.2: = bound_method %addr, %specific_impl_fn.loc10_10.1 // CHECK:STDOUT: %.loc10_10.1: init @F.%ptr (%ptr.ae5) = call %bound_method.loc10_10.2(%addr) // CHECK:STDOUT: return %.loc10_10.1 to %return @@ -1420,7 +1409,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Type(constants.%Self.a46) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Type(constants.%Ptr.facet.e83) {} +// CHECK:STDOUT: specific @Type(constants.%.Self.690) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%U.8b3) { // CHECK:STDOUT: %U.loc7_20.2 => constants.%U.8b3 @@ -1440,7 +1429,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Type(constants.%Ptr.facet.9fe) {} +// CHECK:STDOUT: specific @Type(constants.%T.a46) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.a46) { // CHECK:STDOUT: %T.loc9_6.1 => constants.%T.a46 diff --git a/toolchain/check/testdata/impl/use_assoc_const.carbon b/toolchain/check/testdata/impl/use_assoc_const.carbon index 4c8fa71109082..90514184a6cc7 100644 --- a/toolchain/check/testdata/impl/use_assoc_const.carbon +++ b/toolchain/check/testdata/impl/use_assoc_const.carbon @@ -295,7 +295,6 @@ fn F() { // CHECK:STDOUT: %Self.as_type.4e7: type = facet_access_type %Self.bf6 [symbolic] // CHECK:STDOUT: %pattern_type.8ba: type = pattern_type %Self.as_type.4e7 [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.080: = lookup_impl_witness %Self.bf6, @J [symbolic] -// CHECK:STDOUT: %J.facet.c21: %J.type = facet_value %Self.as_type.4e7, (%J.lookup_impl_witness.080) [symbolic] // CHECK:STDOUT: %impl.elem0.312: type = impl_witness_access %J.lookup_impl_witness.080, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9: type = pattern_type %impl.elem0.312 [symbolic] // CHECK:STDOUT: %J.F.type: type = fn_type @J.F [concrete] @@ -305,7 +304,6 @@ fn F() { // CHECK:STDOUT: %.Self.e7c: %J.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.e7c [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.088: = lookup_impl_witness %.Self.e7c, @J [symbolic_self] -// CHECK:STDOUT: %J.facet.47c: %J.type = facet_value %.Self.as_type, (%J.lookup_impl_witness.088) [symbolic_self] // CHECK:STDOUT: %impl.elem0.338: type = impl_witness_access %J.lookup_impl_witness.088, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] @@ -642,8 +640,6 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%Self.bf6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.c21) {} -// CHECK:STDOUT: // CHECK:STDOUT: specific @J.F(constants.%Self.bf6) { // CHECK:STDOUT: %Self => constants.%Self.bf6 // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.4e7 @@ -653,7 +649,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.9d9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.47c) {} +// CHECK:STDOUT: specific @U(constants.%.Self.e7c) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @J.F(constants.%J.facet.d5a) { // CHECK:STDOUT: %Self => constants.%J.facet.d5a @@ -680,9 +676,7 @@ fn F() { // CHECK:STDOUT: %Self.bf6: %J.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] // CHECK:STDOUT: %assoc0.411: %J.assoc_type = assoc_entity element0, @J.%U [concrete] -// CHECK:STDOUT: %Self.as_type.4e7: type = facet_access_type %Self.bf6 [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.080: = lookup_impl_witness %Self.bf6, @J [symbolic] -// CHECK:STDOUT: %J.facet.c21: %J.type = facet_value %Self.as_type.4e7, (%J.lookup_impl_witness.080) [symbolic] // CHECK:STDOUT: %impl.elem0.312: type = impl_witness_access %J.lookup_impl_witness.080, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9: type = pattern_type %impl.elem0.312 [symbolic] // CHECK:STDOUT: %J.F.type: type = fn_type @J.F [concrete] @@ -701,7 +695,6 @@ fn F() { // CHECK:STDOUT: %.Self.e7c: %J.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.e7c [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.088: = lookup_impl_witness %.Self.e7c, @J [symbolic_self] -// CHECK:STDOUT: %J.facet.47c: %J.type = facet_value %.Self.as_type, (%J.lookup_impl_witness.088) [symbolic_self] // CHECK:STDOUT: %impl.elem0.338: type = impl_witness_access %J.lookup_impl_witness.088, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] @@ -713,7 +706,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %D.as.J.impl.F.type: type = fn_type @D.as.J.impl.F [concrete] // CHECK:STDOUT: %D.as.J.impl.F: %D.as.J.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.6df: %J.type = facet_value %D, (%J.impl_witness) [concrete] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %D, (%J.impl_witness) [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] // CHECK:STDOUT: %Negate.Op.type: type = fn_type @Negate.Op [concrete] // CHECK:STDOUT: %Int.as.Negate.impl.Op.type.d16: type = fn_type @Int.as.Negate.impl.Op, @Int.as.Negate.impl(%N) [symbolic] @@ -726,7 +719,7 @@ fn F() { // CHECK:STDOUT: %Int.as.Negate.impl.Op.specific_fn: = specific_function %Int.as.Negate.impl.Op.887, @Int.as.Negate.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %CallFunction.type: type = fn_type @CallFunction [concrete] // CHECK:STDOUT: %CallFunction: %CallFunction.type = struct_value () [concrete] -// CHECK:STDOUT: %.7fd: type = fn_type_with_self_type %J.F.type, %J.facet.6df [concrete] +// CHECK:STDOUT: %.7fd: type = fn_type_with_self_type %J.F.type, %J.facet [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] @@ -920,8 +913,8 @@ fn F() { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %F.ref: %J.assoc_type = name_ref F, @J.%assoc1 [concrete = constants.%assoc1.572] -// CHECK:STDOUT: %J.facet: %J.type = facet_value constants.%D, (constants.%J.impl_witness) [concrete = constants.%J.facet.6df] -// CHECK:STDOUT: %.loc15_11: %J.type = converted %D.ref, %J.facet [concrete = constants.%J.facet.6df] +// CHECK:STDOUT: %J.facet: %J.type = facet_value constants.%D, (constants.%J.impl_witness) [concrete = constants.%J.facet] +// CHECK:STDOUT: %.loc15_11: %J.type = converted %D.ref, %J.facet [concrete = constants.%J.facet] // CHECK:STDOUT: %impl.elem1: %.7fd = impl_witness_access constants.%J.impl_witness, element1 [concrete = constants.%D.as.J.impl.F] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %impl.elem0: %.1df = impl_witness_access constants.%ImplicitAs.impl_witness.204, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0] @@ -937,8 +930,6 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%Self.bf6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.c21) {} -// CHECK:STDOUT: // CHECK:STDOUT: specific @J.F(constants.%Self.bf6) { // CHECK:STDOUT: %Self => constants.%Self.bf6 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.080 @@ -946,10 +937,10 @@ fn F() { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9d9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.47c) {} +// CHECK:STDOUT: specific @U(constants.%.Self.e7c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.F(constants.%J.facet.6df) { -// CHECK:STDOUT: %Self => constants.%J.facet.6df +// CHECK:STDOUT: specific @J.F(constants.%J.facet) { +// CHECK:STDOUT: %Self => constants.%J.facet // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness // CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce @@ -964,7 +955,6 @@ fn F() { // CHECK:STDOUT: %assoc0.411: %J.assoc_type = assoc_entity element0, @J.%U [concrete] // CHECK:STDOUT: %Self.as_type.4e7: type = facet_access_type %Self.bf6 [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.1: = lookup_impl_witness %Self.bf6, @J [symbolic] -// CHECK:STDOUT: %J.facet.c211a5.1: %J.type = facet_value %Self.as_type.4e7, (%J.lookup_impl_witness.0802bc.1) [symbolic] // CHECK:STDOUT: %impl.elem0.312582.1: type = impl_witness_access %J.lookup_impl_witness.0802bc.1, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9270.1: type = pattern_type %impl.elem0.312582.1 [symbolic] // CHECK:STDOUT: %J.F.type: type = fn_type @J.F [concrete] @@ -978,7 +968,6 @@ fn F() { // CHECK:STDOUT: %.Self.e7c: %J.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.e7c [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.088: = lookup_impl_witness %.Self.e7c, @J [symbolic_self] -// CHECK:STDOUT: %J.facet.47c: %J.type = facet_value %.Self.as_type, (%J.lookup_impl_witness.088) [symbolic_self] // CHECK:STDOUT: %impl.elem0.338: type = impl_witness_access %J.lookup_impl_witness.088, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] @@ -993,7 +982,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.a4a: type = pattern_type %E [concrete] // CHECK:STDOUT: %E.as.J.impl.G.type: type = fn_type @E.as.J.impl.G [concrete] // CHECK:STDOUT: %E.as.J.impl.G: %E.as.J.impl.G.type = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.095: %J.type = facet_value %E, (%J.impl_witness) [concrete] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %E, (%J.impl_witness) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %pattern_type.f6d: type = pattern_type auto [concrete] // CHECK:STDOUT: %Destroy.impl_witness: = impl_witness @E.%Destroy.impl_witness_table [concrete] @@ -1017,7 +1006,7 @@ fn F() { // CHECK:STDOUT: %Int.as.Negate.impl.Op.specific_fn: = specific_function %Int.as.Negate.impl.Op.887, @Int.as.Negate.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %CallBoth.type: type = fn_type @CallBoth [concrete] // CHECK:STDOUT: %CallBoth: %CallBoth.type = struct_value () [concrete] -// CHECK:STDOUT: %.014: type = fn_type_with_self_type %J.F.type, %J.facet.095 [concrete] +// CHECK:STDOUT: %.014: type = fn_type_with_self_type %J.F.type, %J.facet [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] @@ -1035,7 +1024,7 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method.8bd: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %.44a: type = fn_type_with_self_type %J.G.type, %J.facet.095 [concrete] +// CHECK:STDOUT: %.44a: type = fn_type_with_self_type %J.G.type, %J.facet [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.595: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.f36: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -1059,19 +1048,18 @@ fn F() { // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %pattern_type.8ba9f0.2: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.2: = lookup_impl_witness %T, @J [symbolic] -// CHECK:STDOUT: %J.facet.c211a5.2: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness.0802bc.2) [symbolic] // CHECK:STDOUT: %impl.elem0.312582.2: type = impl_witness_access %J.lookup_impl_witness.0802bc.2, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9270.2: type = pattern_type %impl.elem0.312582.2 [symbolic] // CHECK:STDOUT: %GenericCallF.type: type = fn_type @GenericCallF [concrete] // CHECK:STDOUT: %GenericCallF: %GenericCallF.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.73c: = require_complete_type %impl.elem0.312582.2 [symbolic] // CHECK:STDOUT: %require_complete.8dd: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %.38a: type = fn_type_with_self_type %J.F.type, %J.facet.c211a5.2 [symbolic] -// CHECK:STDOUT: %impl.elem1: %.38a = impl_witness_access %J.lookup_impl_witness.0802bc.2, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem1, @J.F(%J.facet.c211a5.2) [symbolic] +// CHECK:STDOUT: %.2b8: type = fn_type_with_self_type %J.F.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem1: %.2b8 = impl_witness_access %J.lookup_impl_witness.0802bc.2, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem1, @J.F(%T) [symbolic] // CHECK:STDOUT: %CallGeneric.type: type = fn_type @CallGeneric [concrete] // CHECK:STDOUT: %CallGeneric: %CallGeneric.type = struct_value () [concrete] -// CHECK:STDOUT: %GenericCallF.specific_fn: = specific_function %GenericCallF, @GenericCallF(%J.facet.095) [concrete] +// CHECK:STDOUT: %GenericCallF.specific_fn: = specific_function %GenericCallF, @GenericCallF(%J.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1504,10 +1492,9 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc28_38: = require_complete_type %impl.elem0.loc28_34.1 [symbolic = %require_complete.loc28_38 (constants.%require_complete.73c)] // CHECK:STDOUT: %require_complete.loc28_25: = require_complete_type %T.as_type.loc28_27.1 [symbolic = %require_complete.loc28_25 (constants.%require_complete.8dd)] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc28_27.1, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet.c211a5.2)] -// CHECK:STDOUT: %.loc29_11.2: type = fn_type_with_self_type constants.%J.F.type, %J.facet [symbolic = %.loc29_11.2 (constants.%.38a)] -// CHECK:STDOUT: %impl.elem1.loc29_11.2: @GenericCallF.%.loc29_11.2 (%.38a) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc29_11.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_impl_fn.loc29_11.2: = specific_impl_function %impl.elem1.loc29_11.2, @J.F(%J.facet) [symbolic = %specific_impl_fn.loc29_11.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %.loc29_11.2: type = fn_type_with_self_type constants.%J.F.type, %T.loc28_17.1 [symbolic = %.loc29_11.2 (constants.%.2b8)] +// CHECK:STDOUT: %impl.elem1.loc29_11.2: @GenericCallF.%.loc29_11.2 (%.2b8) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc29_11.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_impl_fn.loc29_11.2: = specific_impl_function %impl.elem1.loc29_11.2, @J.F(%T.loc28_17.1) [symbolic = %specific_impl_fn.loc29_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%t.param: @GenericCallF.%T.as_type.loc28_27.1 (%T.as_type), %u.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.312582.2)) -> %return.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.312582.2) { // CHECK:STDOUT: !entry: @@ -1515,9 +1502,9 @@ fn F() { // CHECK:STDOUT: %F.ref: %J.assoc_type = name_ref F, @J.%assoc1 [concrete = constants.%assoc1.572] // CHECK:STDOUT: %T.as_type.loc29: type = facet_access_type constants.%T [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc29_11.1: type = converted constants.%T, %T.as_type.loc29 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem1.loc29_11.1: @GenericCallF.%.loc29_11.2 (%.38a) = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element1 [symbolic = %impl.elem1.loc29_11.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %impl.elem1.loc29_11.1: @GenericCallF.%.loc29_11.2 (%.2b8) = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element1 [symbolic = %impl.elem1.loc29_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %u.ref: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.312582.2) = name_ref u, %u -// CHECK:STDOUT: %specific_impl_fn.loc29_11.1: = specific_impl_function %impl.elem1.loc29_11.1, @J.F(constants.%J.facet.c211a5.2) [symbolic = %specific_impl_fn.loc29_11.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc29_11.1: = specific_impl_function %impl.elem1.loc29_11.1, @J.F(constants.%T) [symbolic = %specific_impl_fn.loc29_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %.loc28_38: ref @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.312582.2) = splice_block %return {} // CHECK:STDOUT: %.loc29_15: init @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.312582.2) = call %specific_impl_fn.loc29_11.1(%u.ref) to %.loc28_38 // CHECK:STDOUT: return %.loc29_15 to %return @@ -1529,11 +1516,11 @@ fn F() { // CHECK:STDOUT: %GenericCallF.ref: %GenericCallF.type = name_ref GenericCallF, file.%GenericCallF.decl [concrete = constants.%GenericCallF] // CHECK:STDOUT: %e.ref: %E = name_ref e, %e // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %J.facet.loc33_27.1: %J.type = facet_value constants.%E, (constants.%J.impl_witness) [concrete = constants.%J.facet.095] -// CHECK:STDOUT: %.loc33_27.1: %J.type = converted constants.%E, %J.facet.loc33_27.1 [concrete = constants.%J.facet.095] -// CHECK:STDOUT: %J.facet.loc33_27.2: %J.type = facet_value constants.%E, (constants.%J.impl_witness) [concrete = constants.%J.facet.095] -// CHECK:STDOUT: %.loc33_27.2: %J.type = converted constants.%E, %J.facet.loc33_27.2 [concrete = constants.%J.facet.095] -// CHECK:STDOUT: %GenericCallF.specific_fn: = specific_function %GenericCallF.ref, @GenericCallF(constants.%J.facet.095) [concrete = constants.%GenericCallF.specific_fn] +// CHECK:STDOUT: %J.facet.loc33_27.1: %J.type = facet_value constants.%E, (constants.%J.impl_witness) [concrete = constants.%J.facet] +// CHECK:STDOUT: %.loc33_27.1: %J.type = converted constants.%E, %J.facet.loc33_27.1 [concrete = constants.%J.facet] +// CHECK:STDOUT: %J.facet.loc33_27.2: %J.type = facet_value constants.%E, (constants.%J.impl_witness) [concrete = constants.%J.facet] +// CHECK:STDOUT: %.loc33_27.2: %J.type = converted constants.%E, %J.facet.loc33_27.2 [concrete = constants.%J.facet] +// CHECK:STDOUT: %GenericCallF.specific_fn: = specific_function %GenericCallF.ref, @GenericCallF(constants.%J.facet) [concrete = constants.%GenericCallF.specific_fn] // CHECK:STDOUT: %impl.elem0: %.1df = impl_witness_access constants.%ImplicitAs.impl_witness.204, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0] // CHECK:STDOUT: %bound_method.loc33_26.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.b82] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] @@ -1547,8 +1534,6 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%Self.bf6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.c211a5.1) {} -// CHECK:STDOUT: // CHECK:STDOUT: specific @J.F(constants.%Self.bf6) { // CHECK:STDOUT: %Self => constants.%Self.bf6 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.0802bc.1 @@ -1565,17 +1550,17 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc6_20 => constants.%pattern_type.9d9270.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.47c) {} +// CHECK:STDOUT: specific @U(constants.%.Self.e7c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.F(constants.%J.facet.095) { -// CHECK:STDOUT: %Self => constants.%J.facet.095 +// CHECK:STDOUT: specific @J.F(constants.%J.facet) { +// CHECK:STDOUT: %Self => constants.%J.facet // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness // CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.G(constants.%J.facet.095) { -// CHECK:STDOUT: %Self => constants.%J.facet.095 +// CHECK:STDOUT: specific @J.G(constants.%J.facet) { +// CHECK:STDOUT: %Self => constants.%J.facet // CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%E // CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.a4a // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness @@ -1583,7 +1568,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc6_20 => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.c211a5.2) {} +// CHECK:STDOUT: specific @U(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallF(constants.%T) { // CHECK:STDOUT: %T.loc28_17.1 => constants.%T @@ -1594,15 +1579,15 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc28_30 => constants.%pattern_type.9d9270.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.F(constants.%J.facet.c211a5.2) { -// CHECK:STDOUT: %Self => constants.%J.facet.c211a5.2 +// CHECK:STDOUT: specific @J.F(constants.%T) { +// CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.0802bc.2 // CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%impl.elem0.312582.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9d9270.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericCallF(constants.%J.facet.095) { -// CHECK:STDOUT: %T.loc28_17.1 => constants.%J.facet.095 +// CHECK:STDOUT: specific @GenericCallF(constants.%J.facet) { +// CHECK:STDOUT: %T.loc28_17.1 => constants.%J.facet // CHECK:STDOUT: %T.as_type.loc28_27.1 => constants.%E // CHECK:STDOUT: %pattern_type.loc28_24 => constants.%pattern_type.a4a // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness @@ -1612,7 +1597,6 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc28_38 => constants.%complete_type.f8a // CHECK:STDOUT: %require_complete.loc28_25 => constants.%complete_type.357 -// CHECK:STDOUT: %J.facet => constants.%J.facet.095 // CHECK:STDOUT: %.loc29_11.2 => constants.%.014 // CHECK:STDOUT: %impl.elem1.loc29_11.2 => constants.%E.as.J.impl.F // CHECK:STDOUT: %specific_impl_fn.loc29_11.2 => constants.%E.as.J.impl.F @@ -1638,9 +1622,7 @@ fn F() { // CHECK:STDOUT: %facet_type: type = facet_type <@I & @Destroy> [concrete] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] // CHECK:STDOUT: %assoc0.d3b: %J.assoc_type = assoc_entity element0, @J.%U [concrete] -// CHECK:STDOUT: %Self.as_type.4e7: type = facet_access_type %Self.bf6 [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.1: = lookup_impl_witness %Self.bf6, @J [symbolic] -// CHECK:STDOUT: %J.facet.c211a5.1: %J.type = facet_value %Self.as_type.4e7, (%J.lookup_impl_witness.0802bc.1) [symbolic] // CHECK:STDOUT: %impl.elem0.82c3d7.1: %facet_type = impl_witness_access %J.lookup_impl_witness.0802bc.1, element0 [symbolic] // CHECK:STDOUT: %as_type.2a6e07.1: type = facet_access_type %impl.elem0.82c3d7.1 [symbolic] // CHECK:STDOUT: %pattern_type.cfc624.1: type = pattern_type %as_type.2a6e07.1 [symbolic] @@ -1654,7 +1636,6 @@ fn F() { // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %pattern_type.8ba: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.2: = lookup_impl_witness %T, @J [symbolic] -// CHECK:STDOUT: %J.facet.c211a5.2: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness.0802bc.2) [symbolic] // CHECK:STDOUT: %impl.elem0.82c3d7.2: %facet_type = impl_witness_access %J.lookup_impl_witness.0802bc.2, element0 [symbolic] // CHECK:STDOUT: %as_type.2a6e07.2: type = facet_access_type %impl.elem0.82c3d7.2 [symbolic] // CHECK:STDOUT: %pattern_type.cfc624.2: type = pattern_type %as_type.2a6e07.2 [symbolic] @@ -1662,9 +1643,9 @@ fn F() { // CHECK:STDOUT: %GenericResult: %GenericResult.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.12e: = require_complete_type %as_type.2a6e07.2 [symbolic] // CHECK:STDOUT: %require_complete.8dd: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %.38a: type = fn_type_with_self_type %J.F.type, %J.facet.c211a5.2 [symbolic] -// CHECK:STDOUT: %impl.elem1: %.38a = impl_witness_access %J.lookup_impl_witness.0802bc.2, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.260: = specific_impl_function %impl.elem1, @J.F(%J.facet.c211a5.2) [symbolic] +// CHECK:STDOUT: %.2b8: type = fn_type_with_self_type %J.F.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem1: %.2b8 = impl_witness_access %J.lookup_impl_witness.0802bc.2, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.74c: = specific_impl_function %impl.elem1, @J.F(%T) [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %impl.elem0.82c3d7.2, @I [symbolic] // CHECK:STDOUT: %I.facet: %I.type = facet_value %as_type.2a6e07.2, (%I.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %.c47: type = fn_type_with_self_type %I.Op.type, %I.facet [symbolic] @@ -1672,11 +1653,11 @@ fn F() { // CHECK:STDOUT: %specific_impl_fn.456: = specific_impl_function %impl.elem0.f6a, @I.Op(%I.facet) [symbolic] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness.af1: = lookup_impl_witness %impl.elem0.82c3d7.2, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.9d9: %Destroy.type = facet_value %as_type.2a6e07.2, (%Destroy.lookup_impl_witness.af1) [symbolic] -// CHECK:STDOUT: %.c2f: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.9d9 [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %as_type.2a6e07.2, (%Destroy.lookup_impl_witness.af1) [symbolic] +// CHECK:STDOUT: %.c2f: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] // CHECK:STDOUT: %impl.elem0.dd1: %.c2f = impl_witness_access %Destroy.lookup_impl_witness.af1, element0 [symbolic] // CHECK:STDOUT: %ptr.d16: type = ptr_type %as_type.2a6e07.2 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.07a: = specific_impl_function %impl.elem0.dd1, @Destroy.Op(%Destroy.facet.9d9) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.07a: = specific_impl_function %impl.elem0.dd1, @Destroy.Op(%Destroy.facet) [symbolic] // CHECK:STDOUT: %require_complete.0ed: = require_complete_type %ptr.d16 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1853,17 +1834,16 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc12_39: = require_complete_type %as_type.loc12_35.1 [symbolic = %require_complete.loc12_39 (constants.%require_complete.12e)] // CHECK:STDOUT: %require_complete.loc12_26: = require_complete_type %T.as_type.loc12_28.1 [symbolic = %require_complete.loc12_26 (constants.%require_complete.8dd)] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc12_28.1, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet.c211a5.2)] -// CHECK:STDOUT: %.loc13_11.2: type = fn_type_with_self_type constants.%J.F.type, %J.facet [symbolic = %.loc13_11.2 (constants.%.38a)] -// CHECK:STDOUT: %impl.elem1.loc13_11.2: @GenericResult.%.loc13_11.2 (%.38a) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_impl_fn.loc13_11.2: = specific_impl_function %impl.elem1.loc13_11.2, @J.F(%J.facet) [symbolic = %specific_impl_fn.loc13_11.2 (constants.%specific_impl_fn.260)] +// CHECK:STDOUT: %.loc13_11.2: type = fn_type_with_self_type constants.%J.F.type, %T.loc12_18.1 [symbolic = %.loc13_11.2 (constants.%.2b8)] +// CHECK:STDOUT: %impl.elem1.loc13_11.2: @GenericResult.%.loc13_11.2 (%.2b8) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_impl_fn.loc13_11.2: = specific_impl_function %impl.elem1.loc13_11.2, @J.F(%T.loc12_18.1) [symbolic = %specific_impl_fn.loc13_11.2 (constants.%specific_impl_fn.74c)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %impl.elem0.loc12_35.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] // CHECK:STDOUT: %I.facet.loc13_16: %I.type = facet_value %as_type.loc12_35.1, (%I.lookup_impl_witness) [symbolic = %I.facet.loc13_16 (constants.%I.facet)] // CHECK:STDOUT: %.loc13_16: type = fn_type_with_self_type constants.%I.Op.type, %I.facet.loc13_16 [symbolic = %.loc13_16 (constants.%.c47)] // CHECK:STDOUT: %impl.elem0.loc13_16.2: @GenericResult.%.loc13_16 (%.c47) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_16.2 (constants.%impl.elem0.f6a)] // CHECK:STDOUT: %specific_impl_fn.loc13_16.2: = specific_impl_function %impl.elem0.loc13_16.2, @I.Op(%I.facet.loc13_16) [symbolic = %specific_impl_fn.loc13_16.2 (constants.%specific_impl_fn.456)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem0.loc12_35.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.af1)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %as_type.loc12_35.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.9d9)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %as_type.loc12_35.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] // CHECK:STDOUT: %.loc13_29.8: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc13_29.8 (constants.%.c2f)] // CHECK:STDOUT: %impl.elem0.loc13_29.2: @GenericResult.%.loc13_29.8 (%.c2f) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_29.2 (constants.%impl.elem0.dd1)] // CHECK:STDOUT: %specific_impl_fn.loc13_29.2: = specific_impl_function %impl.elem0.loc13_29.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc13_29.2 (constants.%specific_impl_fn.07a)] @@ -1876,11 +1856,11 @@ fn F() { // CHECK:STDOUT: %F.ref.loc13_11: %J.assoc_type = name_ref F, @J.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %T.as_type.loc13_11: type = facet_access_type constants.%T [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc13_11.1: type = converted constants.%T, %T.as_type.loc13_11 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem1.loc13_11.1: @GenericResult.%.loc13_11.2 (%.38a) = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %impl.elem1.loc13_11.1: @GenericResult.%.loc13_11.2 (%.2b8) = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %u.ref.loc13_14: @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = name_ref u, %u // CHECK:STDOUT: %.loc13_15.1: %facet_type = converted constants.%as_type.2a6e07.2, constants.%impl.elem0.82c3d7.2 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.82c3d7.2)] // CHECK:STDOUT: %.loc13_15.2: %facet_type = converted constants.%as_type.2a6e07.2, constants.%impl.elem0.82c3d7.2 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.82c3d7.2)] -// CHECK:STDOUT: %specific_impl_fn.loc13_11.1: = specific_impl_function %impl.elem1.loc13_11.1, @J.F(constants.%J.facet.c211a5.2) [symbolic = %specific_impl_fn.loc13_11.2 (constants.%specific_impl_fn.260)] +// CHECK:STDOUT: %specific_impl_fn.loc13_11.1: = specific_impl_function %impl.elem1.loc13_11.1, @J.F(constants.%T) [symbolic = %specific_impl_fn.loc13_11.2 (constants.%specific_impl_fn.74c)] // CHECK:STDOUT: %.loc13_15.3: ref @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = temporary_storage // CHECK:STDOUT: %.loc13_15.4: init @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = call %specific_impl_fn.loc13_11.1(%u.ref.loc13_14) to %.loc13_15.3 // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] @@ -1891,11 +1871,11 @@ fn F() { // CHECK:STDOUT: %F.ref.loc13_25: %J.assoc_type = name_ref F, @J.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %T.as_type.loc13_25: type = facet_access_type %T.ref.loc13 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc13_25: type = converted %T.ref.loc13, %T.as_type.loc13_25 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem1.loc13_25: @GenericResult.%.loc13_11.2 (%.38a) = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %impl.elem1.loc13_25: @GenericResult.%.loc13_11.2 (%.2b8) = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %u.ref.loc13_28: @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = name_ref u, %u // CHECK:STDOUT: %.loc13_29.1: %facet_type = converted constants.%as_type.2a6e07.2, constants.%impl.elem0.82c3d7.2 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.82c3d7.2)] // CHECK:STDOUT: %.loc13_29.2: %facet_type = converted constants.%as_type.2a6e07.2, constants.%impl.elem0.82c3d7.2 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.82c3d7.2)] -// CHECK:STDOUT: %specific_impl_fn.loc13_25: = specific_impl_function %impl.elem1.loc13_25, @J.F(constants.%J.facet.c211a5.2) [symbolic = %specific_impl_fn.loc13_11.2 (constants.%specific_impl_fn.260)] +// CHECK:STDOUT: %specific_impl_fn.loc13_25: = specific_impl_function %impl.elem1.loc13_25, @J.F(constants.%T) [symbolic = %specific_impl_fn.loc13_11.2 (constants.%specific_impl_fn.74c)] // CHECK:STDOUT: %.loc13_29.3: ref @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = temporary_storage // CHECK:STDOUT: %.loc13_29.4: init @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = call %specific_impl_fn.loc13_25(%u.ref.loc13_28) to %.loc13_29.3 // CHECK:STDOUT: %I.facet.loc13_30.1: %I.type = facet_value constants.%as_type.2a6e07.2, (constants.%I.lookup_impl_witness) [symbolic = %I.facet.loc13_16 (constants.%I.facet)] @@ -1912,13 +1892,13 @@ fn F() { // CHECK:STDOUT: %.loc13_30.3: init @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = call %bound_method.loc13_30(%.loc13_15.6, %.loc13_29.6) to %.loc12_39 // CHECK:STDOUT: %impl.elem0.loc13_29.1: @GenericResult.%.loc13_29.8 (%.c2f) = impl_witness_access constants.%Destroy.lookup_impl_witness.af1, element0 [symbolic = %impl.elem0.loc13_29.2 (constants.%impl.elem0.dd1)] // CHECK:STDOUT: %bound_method.loc13_29.1: = bound_method %.loc13_29.5, %impl.elem0.loc13_29.1 -// CHECK:STDOUT: %specific_impl_fn.loc13_29.1: = specific_impl_function %impl.elem0.loc13_29.1, @Destroy.Op(constants.%Destroy.facet.9d9) [symbolic = %specific_impl_fn.loc13_29.2 (constants.%specific_impl_fn.07a)] +// CHECK:STDOUT: %specific_impl_fn.loc13_29.1: = specific_impl_function %impl.elem0.loc13_29.1, @Destroy.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc13_29.2 (constants.%specific_impl_fn.07a)] // CHECK:STDOUT: %bound_method.loc13_29.2: = bound_method %.loc13_29.5, %specific_impl_fn.loc13_29.1 // CHECK:STDOUT: %addr.loc13_29: @GenericResult.%ptr (%ptr.d16) = addr_of %.loc13_29.5 // CHECK:STDOUT: %.loc13_29.7: init %empty_tuple.type = call %bound_method.loc13_29.2(%addr.loc13_29) // CHECK:STDOUT: %impl.elem0.loc13_15: @GenericResult.%.loc13_29.8 (%.c2f) = impl_witness_access constants.%Destroy.lookup_impl_witness.af1, element0 [symbolic = %impl.elem0.loc13_29.2 (constants.%impl.elem0.dd1)] // CHECK:STDOUT: %bound_method.loc13_15.1: = bound_method %.loc13_15.5, %impl.elem0.loc13_15 -// CHECK:STDOUT: %specific_impl_fn.loc13_15: = specific_impl_function %impl.elem0.loc13_15, @Destroy.Op(constants.%Destroy.facet.9d9) [symbolic = %specific_impl_fn.loc13_29.2 (constants.%specific_impl_fn.07a)] +// CHECK:STDOUT: %specific_impl_fn.loc13_15: = specific_impl_function %impl.elem0.loc13_15, @Destroy.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc13_29.2 (constants.%specific_impl_fn.07a)] // CHECK:STDOUT: %bound_method.loc13_15.2: = bound_method %.loc13_15.5, %specific_impl_fn.loc13_15 // CHECK:STDOUT: %addr.loc13_15: @GenericResult.%ptr (%ptr.d16) = addr_of %.loc13_15.5 // CHECK:STDOUT: %.loc13_15.7: init %empty_tuple.type = call %bound_method.loc13_15.2(%addr.loc13_15) @@ -1934,8 +1914,6 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%Self.bf6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.c211a5.1) {} -// CHECK:STDOUT: // CHECK:STDOUT: specific @J.F(constants.%Self.bf6) { // CHECK:STDOUT: %Self => constants.%Self.bf6 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.0802bc.1 @@ -1944,7 +1922,7 @@ fn F() { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cfc624.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.c211a5.2) {} +// CHECK:STDOUT: specific @U(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericResult(constants.%T) { // CHECK:STDOUT: %T.loc12_18.1 => constants.%T @@ -1956,8 +1934,8 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc12_31 => constants.%pattern_type.cfc624.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.F(constants.%J.facet.c211a5.2) { -// CHECK:STDOUT: %Self => constants.%J.facet.c211a5.2 +// CHECK:STDOUT: specific @J.F(constants.%T) { +// CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.0802bc.2 // CHECK:STDOUT: %impl.elem0.loc9_11.1 => constants.%impl.elem0.82c3d7.2 // CHECK:STDOUT: %as_type => constants.%as_type.2a6e07.2 @@ -1980,7 +1958,6 @@ fn F() { // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %pattern_type.8ba9f0.1: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.1: = lookup_impl_witness %Self, @J [symbolic] -// CHECK:STDOUT: %J.facet.c211a5.1: %J.type = facet_value %Self.as_type, (%J.lookup_impl_witness.0802bc.1) [symbolic] // CHECK:STDOUT: %impl.elem0.312582.1: type = impl_witness_access %J.lookup_impl_witness.0802bc.1, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9270.1: type = pattern_type %impl.elem0.312582.1 [symbolic] // CHECK:STDOUT: %J.G.type: type = fn_type @J.G [concrete] @@ -1993,16 +1970,15 @@ fn F() { // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %pattern_type.8ba9f0.2: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.2: = lookup_impl_witness %T, @J [symbolic] -// CHECK:STDOUT: %J.facet.c211a5.2: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness.0802bc.2) [symbolic] // CHECK:STDOUT: %impl.elem0.312582.2: type = impl_witness_access %J.lookup_impl_witness.0802bc.2, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9270.2: type = pattern_type %impl.elem0.312582.2 [symbolic] // CHECK:STDOUT: %GenericCallInterfaceQualified.type: type = fn_type @GenericCallInterfaceQualified [concrete] // CHECK:STDOUT: %GenericCallInterfaceQualified: %GenericCallInterfaceQualified.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.73c: = require_complete_type %impl.elem0.312582.2 [symbolic] // CHECK:STDOUT: %require_complete.8dd: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %.9ef: type = fn_type_with_self_type %J.G.type, %J.facet.c211a5.2 [symbolic] -// CHECK:STDOUT: %impl.elem1: %.9ef = impl_witness_access %J.lookup_impl_witness.0802bc.2, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem1, @J.G(%J.facet.c211a5.2) [symbolic] +// CHECK:STDOUT: %.7f3: type = fn_type_with_self_type %J.G.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem1: %.7f3 = impl_witness_access %J.lookup_impl_witness.0802bc.2, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem1, @J.G(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2126,20 +2102,19 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8_55: = require_complete_type %impl.elem0.loc8_51.1 [symbolic = %require_complete.loc8_55 (constants.%require_complete.73c)] // CHECK:STDOUT: %require_complete.loc8_42: = require_complete_type %T.as_type.loc8_44.1 [symbolic = %require_complete.loc8_42 (constants.%require_complete.8dd)] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc8_44.1, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet.c211a5.2)] -// CHECK:STDOUT: %.loc9_11: type = fn_type_with_self_type constants.%J.G.type, %J.facet [symbolic = %.loc9_11 (constants.%.9ef)] -// CHECK:STDOUT: %impl.elem1.loc9_11.2: @GenericCallInterfaceQualified.%.loc9_11 (%.9ef) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_impl_fn.loc9_11.2: = specific_impl_function %impl.elem1.loc9_11.2, @J.G(%J.facet) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %.loc9_11: type = fn_type_with_self_type constants.%J.G.type, %T.loc8_34.1 [symbolic = %.loc9_11 (constants.%.7f3)] +// CHECK:STDOUT: %impl.elem1.loc9_11.2: @GenericCallInterfaceQualified.%.loc9_11 (%.7f3) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_impl_fn.loc9_11.2: = specific_impl_function %impl.elem1.loc9_11.2, @J.G(%T.loc8_34.1) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%t.param: @GenericCallInterfaceQualified.%T.as_type.loc8_44.1 (%T.as_type), %u.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.312582.2)) -> %return.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.312582.2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %t.ref: @GenericCallInterfaceQualified.%T.as_type.loc8_44.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %J.ref.loc9: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %G.ref: %J.assoc_type = name_ref G, @J.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %impl.elem1.loc9_11.1: @GenericCallInterfaceQualified.%.loc9_11 (%.9ef) = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %impl.elem1.loc9_11.1: @GenericCallInterfaceQualified.%.loc9_11 (%.7f3) = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %bound_method.loc9_11: = bound_method %t.ref, %impl.elem1.loc9_11.1 // CHECK:STDOUT: %u.ref: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.312582.2) = name_ref u, %u -// CHECK:STDOUT: %specific_impl_fn.loc9_11.1: = specific_impl_function %impl.elem1.loc9_11.1, @J.G(constants.%J.facet.c211a5.2) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc9_11.1: = specific_impl_function %impl.elem1.loc9_11.1, @J.G(constants.%T) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc9_19: = bound_method %t.ref, %specific_impl_fn.loc9_11.1 // CHECK:STDOUT: %.loc8_55: ref @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.312582.2) = splice_block %return {} // CHECK:STDOUT: %.loc9_19: init @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.312582.2) = call %bound_method.loc9_19(%t.ref, %u.ref) to %.loc8_55 @@ -2149,8 +2124,6 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.c211a5.1) {} -// CHECK:STDOUT: // CHECK:STDOUT: specific @J.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type @@ -2160,7 +2133,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.9d9270.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.c211a5.2) {} +// CHECK:STDOUT: specific @U(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallInterfaceQualified(constants.%T) { // CHECK:STDOUT: %T.loc8_34.1 => constants.%T @@ -2171,8 +2144,8 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc8_47 => constants.%pattern_type.9d9270.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.G(constants.%J.facet.c211a5.2) { -// CHECK:STDOUT: %Self => constants.%J.facet.c211a5.2 +// CHECK:STDOUT: specific @J.G(constants.%T) { +// CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.8ba9f0.2 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.0802bc.2 @@ -2187,9 +2160,7 @@ fn F() { // CHECK:STDOUT: %Self.bf6: %J.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] // CHECK:STDOUT: %assoc0.411: %J.assoc_type = assoc_entity element0, @J.%U [concrete] -// CHECK:STDOUT: %Self.as_type.4e7: type = facet_access_type %Self.bf6 [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.080: = lookup_impl_witness %Self.bf6, @J [symbolic] -// CHECK:STDOUT: %J.facet.c21: %J.type = facet_value %Self.as_type.4e7, (%J.lookup_impl_witness.080) [symbolic] // CHECK:STDOUT: %impl.elem0.312: type = impl_witness_access %J.lookup_impl_witness.080, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9: type = pattern_type %impl.elem0.312 [symbolic] // CHECK:STDOUT: %J.F.type: type = fn_type @J.F [concrete] @@ -2200,7 +2171,6 @@ fn F() { // CHECK:STDOUT: %.Self.e7c: %J.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.e7c [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.088: = lookup_impl_witness %.Self.e7c, @J [symbolic_self] -// CHECK:STDOUT: %J.facet.47c: %J.type = facet_value %.Self.as_type, (%J.lookup_impl_witness.088) [symbolic_self] // CHECK:STDOUT: %impl.elem0.338: type = impl_witness_access %J.lookup_impl_witness.088, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] @@ -2216,11 +2186,11 @@ fn F() { // CHECK:STDOUT: %GenericCallFI32: %GenericCallFI32.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.410: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.84c: = lookup_impl_witness %T, @J [symbolic] -// CHECK:STDOUT: %J.facet.9f5: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness.84c) [symbolic] -// CHECK:STDOUT: %.fb1: type = fn_type_with_self_type %J.F.type, %J.facet.9f5 [symbolic] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness.84c) [symbolic] +// CHECK:STDOUT: %.fb1: type = fn_type_with_self_type %J.F.type, %J.facet [symbolic] // CHECK:STDOUT: %impl.elem1: %.fb1 = impl_witness_access %J.lookup_impl_witness.84c, element1 [symbolic] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem1, @J.F(%J.facet.9f5) [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem1, @J.F(%J.facet) [symbolic] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.d14: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] @@ -2350,7 +2320,7 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_45.1 [symbolic = %require_complete (constants.%require_complete.410)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_20.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.84c)] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc8_45.1, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet.9f5)] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc8_45.1, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet)] // CHECK:STDOUT: %.loc9_11.2: type = fn_type_with_self_type constants.%J.F.type, %J.facet [symbolic = %.loc9_11.2 (constants.%.fb1)] // CHECK:STDOUT: %impl.elem1.loc9_11.2: @GenericCallFI32.%.loc9_11.2 (%.fb1) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %specific_impl_fn.loc9_11.2: = specific_impl_function %impl.elem1.loc9_11.2, @J.F(%J.facet) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] @@ -2363,7 +2333,7 @@ fn F() { // CHECK:STDOUT: %.loc9_11.1: type = converted constants.%T, %T.as_type.loc9 [symbolic = %T.as_type.loc8_45.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem1.loc9_11.1: @GenericCallFI32.%.loc9_11.2 (%.fb1) = impl_witness_access constants.%J.lookup_impl_witness.84c, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %specific_impl_fn.loc9_11.1: = specific_impl_function %impl.elem1.loc9_11.1, @J.F(constants.%J.facet.9f5) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc9_11.1: = specific_impl_function %impl.elem1.loc9_11.1, @J.F(constants.%J.facet) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %impl.elem0.loc9: %.1df = impl_witness_access constants.%ImplicitAs.impl_witness.204, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0] // CHECK:STDOUT: %bound_method.loc9_14.1: = bound_method %int_2, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc9, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] @@ -2378,8 +2348,6 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%Self.bf6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.c21) {} -// CHECK:STDOUT: // CHECK:STDOUT: specific @J.F(constants.%Self.bf6) { // CHECK:STDOUT: %Self => constants.%Self.bf6 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.080 @@ -2387,7 +2355,7 @@ fn F() { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9d9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.47c) {} +// CHECK:STDOUT: specific @U(constants.%.Self.e7c) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallFI32(constants.%T) { // CHECK:STDOUT: %T.loc8_20.1 => constants.%T @@ -2395,8 +2363,8 @@ fn F() { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ced // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.F(constants.%J.facet.9f5) { -// CHECK:STDOUT: %Self => constants.%J.facet.9f5 +// CHECK:STDOUT: specific @J.F(constants.%J.facet) { +// CHECK:STDOUT: %Self => constants.%J.facet // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.84c // CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce @@ -2409,9 +2377,7 @@ fn F() { // CHECK:STDOUT: %Self.bf6: %J.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] // CHECK:STDOUT: %assoc0.411: %J.assoc_type = assoc_entity element0, @J.%U [concrete] -// CHECK:STDOUT: %Self.as_type.4e7: type = facet_access_type %Self.bf6 [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.080: = lookup_impl_witness %Self.bf6, @J [symbolic] -// CHECK:STDOUT: %J.facet.c21: %J.type = facet_value %Self.as_type.4e7, (%J.lookup_impl_witness.080) [symbolic] // CHECK:STDOUT: %impl.elem0.312: type = impl_witness_access %J.lookup_impl_witness.080, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9: type = pattern_type %impl.elem0.312 [symbolic] // CHECK:STDOUT: %J.F.type: type = fn_type @J.F [concrete] @@ -2421,7 +2387,6 @@ fn F() { // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.088: = lookup_impl_witness %.Self, @J [symbolic_self] -// CHECK:STDOUT: %J.facet.47c: %J.type = facet_value %.Self.as_type, (%J.lookup_impl_witness.088) [symbolic_self] // CHECK:STDOUT: %impl.elem0.338: type = impl_witness_access %J.lookup_impl_witness.088, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] @@ -2433,7 +2398,7 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %E.as.J.impl.F.type.5c59b5.1: type = fn_type @E.as.J.impl.F.loc24_21.1 [concrete] // CHECK:STDOUT: %E.as.J.impl.F.888aff.1: %E.as.J.impl.F.type.5c59b5.1 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.dc2: %J.type = facet_value %E, (%J.impl_witness) [concrete] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %E, (%J.impl_witness) [concrete] // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %E.as.J.impl.F.type.5c59b5.2: type = fn_type @E.as.J.impl.F.loc24_21.2 [concrete] // CHECK:STDOUT: %E.as.J.impl.F.888aff.2: %E.as.J.impl.F.type.5c59b5.2 = struct_value () [concrete] @@ -2621,8 +2586,6 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%Self.bf6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.c21) {} -// CHECK:STDOUT: // CHECK:STDOUT: specific @J.F(constants.%Self.bf6) { // CHECK:STDOUT: %Self => constants.%Self.bf6 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.080 @@ -2630,10 +2593,10 @@ fn F() { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9d9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.47c) {} +// CHECK:STDOUT: specific @U(constants.%.Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.F(constants.%J.facet.dc2) { -// CHECK:STDOUT: %Self => constants.%J.facet.dc2 +// CHECK:STDOUT: specific @J.F(constants.%J.facet) { +// CHECK:STDOUT: %Self => constants.%J.facet // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness // CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce @@ -2655,7 +2618,6 @@ fn F() { // CHECK:STDOUT: %.Self: %J2.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %J2.lookup_impl_witness: = lookup_impl_witness %.Self, @J2 [symbolic_self] -// CHECK:STDOUT: %J2.facet.085: %J2.type = facet_value %.Self.as_type, (%J2.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %J2.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %J2_where.type.95f: type = facet_type <@J2 where %impl.elem0 = %empty_struct_type> [concrete] @@ -2955,7 +2917,7 @@ fn F() { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a0e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U2(constants.%J2.facet.085) {} +// CHECK:STDOUT: specific @U2(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @J2.F(constants.%J2.facet.e02) { // CHECK:STDOUT: %Self => constants.%J2.facet.e02 @@ -2979,7 +2941,6 @@ fn F() { // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %pattern_type.6aa: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %K.lookup_impl_witness.246: = lookup_impl_witness %Self, @K [symbolic] -// CHECK:STDOUT: %K.facet.777: %K.type = facet_value %Self.as_type, (%K.lookup_impl_witness.246) [symbolic] // CHECK:STDOUT: %impl.elem0.43b: type = impl_witness_access %K.lookup_impl_witness.246, element0 [symbolic] // CHECK:STDOUT: %pattern_type.33f: type = pattern_type %impl.elem0.43b [symbolic] // CHECK:STDOUT: %K.F.type: type = fn_type @K.F [concrete] @@ -2989,7 +2950,6 @@ fn F() { // CHECK:STDOUT: %.Self: %K.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %K.lookup_impl_witness.1c8: = lookup_impl_witness %.Self, @K [symbolic_self] -// CHECK:STDOUT: %K.facet.3bc: %K.type = facet_value %.Self.as_type, (%K.lookup_impl_witness.1c8) [symbolic_self] // CHECK:STDOUT: %impl.elem0.84d: type = impl_witness_access %K.lookup_impl_witness.1c8, element0 [symbolic_self] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_tuple.type} [concrete] // CHECK:STDOUT: %K_where.type: type = facet_type <@K where %impl.elem0.84d = %struct_type.a> [concrete] @@ -2999,7 +2959,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.414: type = pattern_type %struct_type.x [concrete] // CHECK:STDOUT: %empty_tuple.type.as.K.impl.F.type.02edd9.1: type = fn_type @empty_tuple.type.as.K.impl.F.loc16_45.1 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.K.impl.F.e6bb6c.1: %empty_tuple.type.as.K.impl.F.type.02edd9.1 = struct_value () [concrete] -// CHECK:STDOUT: %K.facet.4e7: %K.type = facet_value %empty_tuple.type, (%K.impl_witness) [concrete] +// CHECK:STDOUT: %K.facet: %K.type = facet_value %empty_tuple.type, (%K.impl_witness) [concrete] // CHECK:STDOUT: %pattern_type.e85: type = pattern_type %struct_type.a [concrete] // CHECK:STDOUT: %empty_tuple.type.as.K.impl.F.type.02edd9.2: type = fn_type @empty_tuple.type.as.K.impl.F.loc16_45.2 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.K.impl.F.e6bb6c.2: %empty_tuple.type.as.K.impl.F.type.02edd9.2 = struct_value () [concrete] @@ -3168,8 +3128,6 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%K.facet.777) {} -// CHECK:STDOUT: // CHECK:STDOUT: specific @K.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type @@ -3179,10 +3137,10 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.33f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%K.facet.3bc) {} +// CHECK:STDOUT: specific @V(constants.%.Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @K.F(constants.%K.facet.4e7) { -// CHECK:STDOUT: %Self => constants.%K.facet.4e7 +// CHECK:STDOUT: specific @K.F(constants.%K.facet) { +// CHECK:STDOUT: %Self => constants.%K.facet // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.cb1 // CHECK:STDOUT: %K.lookup_impl_witness => constants.%K.impl_witness @@ -3207,7 +3165,6 @@ fn F() { // CHECK:STDOUT: %.Self: %M.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %M.lookup_impl_witness: = lookup_impl_witness %.Self, @M [symbolic_self] -// CHECK:STDOUT: %M.facet.285: %M.type = facet_value %.Self.as_type, (%M.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0: %struct_type.b.347 = impl_witness_access %M.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.b.347 = struct_value (%empty_struct) [concrete] @@ -3215,7 +3172,7 @@ fn F() { // CHECK:STDOUT: %M.impl_witness: = impl_witness file.%M.impl_witness_table [concrete] // CHECK:STDOUT: %empty_tuple.type.as.M.impl.G.type: type = fn_type @empty_tuple.type.as.M.impl.G [concrete] // CHECK:STDOUT: %empty_tuple.type.as.M.impl.G: %empty_tuple.type.as.M.impl.G.type = struct_value () [concrete] -// CHECK:STDOUT: %M.facet.95f: %M.type = facet_value %empty_tuple.type, (%M.impl_witness) [concrete] +// CHECK:STDOUT: %M.facet: %M.type = facet_value %empty_tuple.type, (%M.impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3310,8 +3267,8 @@ fn F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Self.ref: type = name_ref Self, @empty_tuple.type.as.M.impl.%.loc8_7.2 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %M.ref: type = name_ref M, file.%M.decl [concrete = constants.%M.type] -// CHECK:STDOUT: %M.facet: %M.type = facet_value constants.%empty_tuple.type, (constants.%M.impl_witness) [concrete = constants.%M.facet.95f] -// CHECK:STDOUT: %.loc10_18: %M.type = converted %Self.ref, %M.facet [concrete = constants.%M.facet.95f] +// CHECK:STDOUT: %M.facet: %M.type = facet_value constants.%empty_tuple.type, (constants.%M.impl_witness) [concrete = constants.%M.facet] +// CHECK:STDOUT: %.loc10_18: %M.type = converted %Self.ref, %M.facet [concrete = constants.%M.facet] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_18 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc10_23: type = converted %.loc10_18, %as_type [concrete = constants.%empty_tuple.type] @@ -3326,11 +3283,11 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @M.G(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%M.facet.285) {} +// CHECK:STDOUT: specific @Z(constants.%.Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @M.G(constants.%M.facet.95f) {} +// CHECK:STDOUT: specific @M.G(constants.%M.facet) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%M.facet.95f) {} +// CHECK:STDOUT: specific @Z(constants.%M.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: --- self_as_uses_correct_rewrite_constraint.carbon // CHECK:STDOUT: @@ -3364,7 +3321,6 @@ fn F() { // CHECK:STDOUT: %.Self.1bb: %M.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.1bb [symbolic_self] // CHECK:STDOUT: %M.lookup_impl_witness: = lookup_impl_witness %.Self.1bb, @M [symbolic_self] -// CHECK:STDOUT: %M.facet.285: %M.type = facet_value %.Self.as_type, (%M.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0.276: %struct_type.b.86f = impl_witness_access %M.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %struct_type.b.347: type = struct_type {.b: %empty_struct_type} [concrete] // CHECK:STDOUT: %struct_type.b.161: type = struct_type {.b: %empty_tuple.type} [concrete] @@ -3377,8 +3333,8 @@ fn F() { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness imports.%Copy.impl_witness_table.40f [concrete] -// CHECK:STDOUT: %Copy.facet.c80: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] -// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c80 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] +// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound.583: = bound_method %empty_struct_type, %type.as.Copy.impl.Op [concrete] @@ -3647,7 +3603,7 @@ fn F() { // CHECK:STDOUT: %T.loc3_9.1 => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%M.facet.285) {} +// CHECK:STDOUT: specific @Z(constants.%.Self.1bb) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @M.G(constants.%M.facet.ec9) {} // CHECK:STDOUT: @@ -3678,7 +3634,6 @@ fn F() { // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %I.lookup_impl_witness.dd3: = lookup_impl_witness %Self.7ee, @I [symbolic] -// CHECK:STDOUT: %I.facet.e22: %I.type = facet_value %Self.as_type.a67, (%I.lookup_impl_witness.dd3) [symbolic] // CHECK:STDOUT: %impl.elem0.9db: %i32 = impl_witness_access %I.lookup_impl_witness.dd3, element0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] @@ -3707,7 +3662,6 @@ fn F() { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness.f6d: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %I.facet.f22: %I.type = facet_value %.Self.as_type, (%I.lookup_impl_witness.f6d) [symbolic_self] // CHECK:STDOUT: %impl.elem0.700: %i32 = impl_witness_access %I.lookup_impl_witness.f6d, element0 [symbolic_self] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %ImplicitAs.type.d14: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] @@ -3728,7 +3682,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.5d5: type = pattern_type %array_type.c9b [concrete] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type: type = fn_type @empty_tuple.type.as.I.impl.F [concrete] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F: %empty_tuple.type.as.I.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.395: %I.type = facet_value %empty_tuple.type, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_tuple.type, (%I.impl_witness) [concrete] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound.5a2: = bound_method %int_2.ef8, %Int.as.ImplicitAs.impl.Convert.b09 [concrete] // CHECK:STDOUT: %bound_method.fb0: = bound_method %int_2.ef8, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] @@ -3738,8 +3692,8 @@ fn F() { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.a56: = impl_witness imports.%Copy.impl_witness_table.189 [concrete] -// CHECK:STDOUT: %Copy.facet.253: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] -// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.253 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] +// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound.5ee: = bound_method %true, %bool.as.Copy.impl.Op [concrete] @@ -3914,8 +3868,6 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @N(constants.%Self.7ee) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @N(constants.%I.facet.e22) {} -// CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self.7ee) { // CHECK:STDOUT: %Self => constants.%Self.7ee // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.a67 @@ -3929,10 +3881,10 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc5_22 => constants.%pattern_type.478 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N(constants.%I.facet.f22) {} +// CHECK:STDOUT: specific @N(constants.%.Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.F(constants.%I.facet.395) { -// CHECK:STDOUT: %Self => constants.%I.facet.395 +// CHECK:STDOUT: specific @I.F(constants.%I.facet) { +// CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.cb1 // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness @@ -3977,7 +3929,6 @@ fn F() { // CHECK:STDOUT: %.Self.de3: %Z.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.de3 [symbolic_self] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %.Self.de3, @Z [symbolic_self] -// CHECK:STDOUT: %Z.facet.4f6: %Z.type = facet_value %.Self.as_type, (%Z.lookup_impl_witness) [symbolic_self] // CHECK:STDOUT: %impl.elem0.a33: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %Z_where.type.ba1: type = facet_type <@Z where %impl.elem0.a33 = %C.f2e> [symbolic] // CHECK:STDOUT: %require_complete.ce8: = require_complete_type %Z_where.type.ba1 [symbolic] @@ -3988,7 +3939,7 @@ fn F() { // CHECK:STDOUT: %Z_where.type.1b9: type = facet_type <@Z where %impl.elem0.a33 = %C.131> [concrete] // CHECK:STDOUT: %complete_type.ac9: = complete_type_witness %Z_where.type.1b9 [concrete] // CHECK:STDOUT: %Z.impl_witness.4bd: = impl_witness file.%Z.impl_witness_table, @T.as.Z.impl(%D) [concrete] -// CHECK:STDOUT: %Z.facet.c2a: %Z.type = facet_value %D, (%Z.impl_witness.4bd) [concrete] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %D, (%Z.impl_witness.4bd) [concrete] // CHECK:STDOUT: %pattern_type.7f8: type = pattern_type %C.131 [concrete] // CHECK:STDOUT: %C.val: %C.131 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.impl_witness.297: = impl_witness @C.%Destroy.impl_witness_table, @C.as.Destroy.impl(%D) [concrete] @@ -4188,8 +4139,8 @@ fn F() { // CHECK:STDOUT: %D.ref.loc12_10: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: %X.ref: %Z.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.659] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value constants.%D, (constants.%Z.impl_witness.4bd) [concrete = constants.%Z.facet.c2a] -// CHECK:STDOUT: %.loc12_11.2: %Z.type = converted %D.ref.loc12_10, %Z.facet [concrete = constants.%Z.facet.c2a] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value constants.%D, (constants.%Z.impl_witness.4bd) [concrete = constants.%Z.facet] +// CHECK:STDOUT: %.loc12_11.2: %Z.type = converted %D.ref.loc12_10, %Z.facet [concrete = constants.%Z.facet] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.impl_witness.4bd, element0 [concrete = constants.%C.131] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc12_23.2: %C.131 = bind_value %.loc12_23.1 @@ -4221,7 +4172,7 @@ fn F() { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.1d2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%Z.facet.4f6) {} +// CHECK:STDOUT: specific @X(constants.%.Self.de3) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.Z.impl(constants.%T) { // CHECK:STDOUT: %T.loc9_14.2 => constants.%T @@ -4247,7 +4198,7 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%Z.facet.c2a) {} +// CHECK:STDOUT: specific @X(constants.%Z.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.Destroy.impl(constants.%D) { // CHECK:STDOUT: %T => constants.%D diff --git a/toolchain/check/testdata/index/array_element_access.carbon b/toolchain/check/testdata/index/array_element_access.carbon index 8a477ad05a955..40b8928973956 100644 --- a/toolchain/check/testdata/index/array_element_access.carbon +++ b/toolchain/check/testdata/index/array_element_access.carbon @@ -67,8 +67,8 @@ var d: i32 = a[b]; // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/expr_category.carbon b/toolchain/check/testdata/index/expr_category.carbon index d1bf89c6837b4..ac5174ca92607 100644 --- a/toolchain/check/testdata/index/expr_category.carbon +++ b/toolchain/check/testdata/index/expr_category.carbon @@ -88,8 +88,8 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %Copy.impl_witness.a93: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b57: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.9fb: %ptr.as.Copy.impl.Op.type.b57 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.7d5: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] -// CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.7d5 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] +// CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.9fb, @ptr.as.Copy.impl.Op(%i32) [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5bb: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] diff --git a/toolchain/check/testdata/index/fail_array_large_index.carbon b/toolchain/check/testdata/index/fail_array_large_index.carbon index 8d4c849e7c2c1..f07ae7066a672 100644 --- a/toolchain/check/testdata/index/fail_array_large_index.carbon +++ b/toolchain/check/testdata/index/fail_array_large_index.carbon @@ -68,8 +68,8 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %int_2147483647.d89: Core.IntLiteral = int_value 2147483647 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.983: = bound_method %int_2147483647.d89, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] diff --git a/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon b/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon index 3b0c5298dcc7f..54ce7eb2f1a26 100644 --- a/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon +++ b/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon @@ -62,8 +62,8 @@ var b: i32 = a[2.6]; // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon b/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon index a4e944291cd7e..2cea047c67b2a 100644 --- a/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon +++ b/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon @@ -61,8 +61,8 @@ var b: i32 = a[1]; // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/fail_expr_category.carbon b/toolchain/check/testdata/index/fail_expr_category.carbon index 6baba0aabba10..92bc064ac5a11 100644 --- a/toolchain/check/testdata/index/fail_expr_category.carbon +++ b/toolchain/check/testdata/index/fail_expr_category.carbon @@ -84,8 +84,8 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %Copy.impl_witness.a93: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b57: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.9fb: %ptr.as.Copy.impl.Op.type.b57 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.7d5: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] -// CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.7d5 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] +// CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.9fb, @ptr.as.Copy.impl.Op(%i32) [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5bb: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] diff --git a/toolchain/check/testdata/index/fail_negative_indexing.carbon b/toolchain/check/testdata/index/fail_negative_indexing.carbon index 2de95c611a88a..88a2d26af35e2 100644 --- a/toolchain/check/testdata/index/fail_negative_indexing.carbon +++ b/toolchain/check/testdata/index/fail_negative_indexing.carbon @@ -73,8 +73,8 @@ var d: i32 = c[-10]; // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/compound_member_access.carbon b/toolchain/check/testdata/interface/compound_member_access.carbon index baa6436566aab..eda28f8b25aa7 100644 --- a/toolchain/check/testdata/interface/compound_member_access.carbon +++ b/toolchain/check/testdata/interface/compound_member_access.carbon @@ -202,16 +202,13 @@ fn Works() { // CHECK:STDOUT: %pattern_type.84b: type = pattern_type %J.type [concrete] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.1: = lookup_impl_witness %T, @J [symbolic] -// CHECK:STDOUT: %J.facet.c211a5.1: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness.0802bc.1) [symbolic] // CHECK:STDOUT: %impl.elem0.312582.1: type = impl_witness_access %J.lookup_impl_witness.0802bc.1, element0 [symbolic] // CHECK:STDOUT: %S: %impl.elem0.312582.1 = bind_symbolic_name S, 1 [symbolic] // CHECK:STDOUT: %pattern_type.9d9270.1: type = pattern_type %impl.elem0.312582.1 [symbolic] // CHECK:STDOUT: %Simple1.type: type = fn_type @Simple1 [concrete] // CHECK:STDOUT: %Simple1: %Simple1.type = struct_value () [concrete] // CHECK:STDOUT: %V: %J.type = bind_symbolic_name V, 0 [symbolic] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.2: = lookup_impl_witness %V, @J [symbolic] -// CHECK:STDOUT: %J.facet.c211a5.2: %J.type = facet_value %V.as_type, (%J.lookup_impl_witness.0802bc.2) [symbolic] // CHECK:STDOUT: %impl.elem0.312582.2: type = impl_witness_access %J.lookup_impl_witness.0802bc.2, element0 [symbolic] // CHECK:STDOUT: %W: %impl.elem0.312582.2 = bind_symbolic_name W, 1 [symbolic] // CHECK:STDOUT: %pattern_type.9d9270.2: type = pattern_type %impl.elem0.312582.2 [symbolic] @@ -323,7 +320,7 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.c211a5.1) {} +// CHECK:STDOUT: specific @U(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple1(constants.%T, constants.%S) { // CHECK:STDOUT: %T.loc8_12.1 => constants.%T @@ -334,7 +331,7 @@ fn Works() { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9d9270.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.c211a5.2) {} +// CHECK:STDOUT: specific @U(constants.%V) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound1(constants.%V, constants.%W) { // CHECK:STDOUT: %V.loc11_14.1 => constants.%V @@ -362,19 +359,16 @@ fn Works() { // CHECK:STDOUT: %Simple2: %Simple2.type = struct_value () [concrete] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %K1.lookup_impl_witness.5aa361.1: = lookup_impl_witness %T, @K1 [symbolic] -// CHECK:STDOUT: %K1.facet.992bb7.1: %K1.type = facet_value %T.as_type, (%K1.lookup_impl_witness.5aa361.1) [symbolic] -// CHECK:STDOUT: %.17a596.1: type = fn_type_with_self_type %K1.Q1.type, %K1.facet.992bb7.1 [symbolic] -// CHECK:STDOUT: %impl.elem0.2491f4.1: %.17a596.1 = impl_witness_access %K1.lookup_impl_witness.5aa361.1, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.4e92aa.1: = specific_impl_function %impl.elem0.2491f4.1, @K1.Q1(%K1.facet.992bb7.1) [symbolic] +// CHECK:STDOUT: %.57535a.1: type = fn_type_with_self_type %K1.Q1.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem0.60cefb.1: %.57535a.1 = impl_witness_access %K1.lookup_impl_witness.5aa361.1, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.76c65f.1: = specific_impl_function %impl.elem0.60cefb.1, @K1.Q1(%T) [symbolic] // CHECK:STDOUT: %V: %K1.type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %Compound2.type: type = fn_type @Compound2 [concrete] // CHECK:STDOUT: %Compound2: %Compound2.type = struct_value () [concrete] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] // CHECK:STDOUT: %K1.lookup_impl_witness.5aa361.2: = lookup_impl_witness %V, @K1 [symbolic] -// CHECK:STDOUT: %K1.facet.992bb7.2: %K1.type = facet_value %V.as_type, (%K1.lookup_impl_witness.5aa361.2) [symbolic] -// CHECK:STDOUT: %.17a596.2: type = fn_type_with_self_type %K1.Q1.type, %K1.facet.992bb7.2 [symbolic] -// CHECK:STDOUT: %impl.elem0.2491f4.2: %.17a596.2 = impl_witness_access %K1.lookup_impl_witness.5aa361.2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.4e92aa.2: = specific_impl_function %impl.elem0.2491f4.2, @K1.Q1(%K1.facet.992bb7.2) [symbolic] +// CHECK:STDOUT: %.57535a.2: type = fn_type_with_self_type %K1.Q1.type, %V [symbolic] +// CHECK:STDOUT: %impl.elem0.60cefb.2: %.57535a.2 = impl_witness_access %K1.lookup_impl_witness.5aa361.2, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.76c65f.2: = specific_impl_function %impl.elem0.60cefb.2, @K1.Q1(%V) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -434,10 +428,9 @@ fn Works() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc9_4.2: type = facet_access_type %T.loc8_12.1 [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %K1.lookup_impl_witness: = lookup_impl_witness %T.loc8_12.1, @K1 [symbolic = %K1.lookup_impl_witness (constants.%K1.lookup_impl_witness.5aa361.1)] -// CHECK:STDOUT: %K1.facet: %K1.type = facet_value %T.as_type.loc9_4.2, (%K1.lookup_impl_witness) [symbolic = %K1.facet (constants.%K1.facet.992bb7.1)] -// CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%K1.Q1.type, %K1.facet [symbolic = %.loc9_4.2 (constants.%.17a596.1)] -// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple2.%.loc9_4.2 (%.17a596.1) = impl_witness_access %K1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.2491f4.1)] -// CHECK:STDOUT: %specific_impl_fn.loc9_4.2: = specific_impl_function %impl.elem0.loc9_4.2, @K1.Q1(%K1.facet) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn.4e92aa.1)] +// CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%K1.Q1.type, %T.loc8_12.1 [symbolic = %.loc9_4.2 (constants.%.57535a.1)] +// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple2.%.loc9_4.2 (%.57535a.1) = impl_witness_access %K1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.60cefb.1)] +// CHECK:STDOUT: %specific_impl_fn.loc9_4.2: = specific_impl_function %impl.elem0.loc9_4.2, @K1.Q1(%T.loc8_12.1) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn.76c65f.1)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -445,8 +438,8 @@ fn Works() { // CHECK:STDOUT: %Q1.ref: %K1.assoc_type = name_ref Q1, @K1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc9_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_4.1: type = converted %T.ref, %T.as_type.loc9_4.1 [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple2.%.loc9_4.2 (%.17a596.1) = impl_witness_access constants.%K1.lookup_impl_witness.5aa361.1, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.2491f4.1)] -// CHECK:STDOUT: %specific_impl_fn.loc9_4.1: = specific_impl_function %impl.elem0.loc9_4.1, @K1.Q1(constants.%K1.facet.992bb7.1) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn.4e92aa.1)] +// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple2.%.loc9_4.2 (%.57535a.1) = impl_witness_access constants.%K1.lookup_impl_witness.5aa361.1, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.60cefb.1)] +// CHECK:STDOUT: %specific_impl_fn.loc9_4.1: = specific_impl_function %impl.elem0.loc9_4.1, @K1.Q1(constants.%T) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn.76c65f.1)] // CHECK:STDOUT: %.loc9_8: init %empty_tuple.type = call %specific_impl_fn.loc9_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -457,19 +450,17 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %K1.lookup_impl_witness: = lookup_impl_witness %V.loc13_14.1, @K1 [symbolic = %K1.lookup_impl_witness (constants.%K1.lookup_impl_witness.5aa361.2)] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V.loc13_14.1 [symbolic = %V.as_type (constants.%V.as_type)] -// CHECK:STDOUT: %K1.facet: %K1.type = facet_value %V.as_type, (%K1.lookup_impl_witness) [symbolic = %K1.facet (constants.%K1.facet.992bb7.2)] -// CHECK:STDOUT: %.loc14_4: type = fn_type_with_self_type constants.%K1.Q1.type, %K1.facet [symbolic = %.loc14_4 (constants.%.17a596.2)] -// CHECK:STDOUT: %impl.elem0.loc14_4.2: @Compound2.%.loc14_4 (%.17a596.2) = impl_witness_access %K1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.2491f4.2)] -// CHECK:STDOUT: %specific_impl_fn.loc14_4.2: = specific_impl_function %impl.elem0.loc14_4.2, @K1.Q1(%K1.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.4e92aa.2)] +// CHECK:STDOUT: %.loc14_4: type = fn_type_with_self_type constants.%K1.Q1.type, %V.loc13_14.1 [symbolic = %.loc14_4 (constants.%.57535a.2)] +// CHECK:STDOUT: %impl.elem0.loc14_4.2: @Compound2.%.loc14_4 (%.57535a.2) = impl_witness_access %K1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.60cefb.2)] +// CHECK:STDOUT: %specific_impl_fn.loc14_4.2: = specific_impl_function %impl.elem0.loc14_4.2, @K1.Q1(%V.loc13_14.1) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.76c65f.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %V.ref: %K1.type = name_ref V, %V.loc13_14.2 [symbolic = %V.loc13_14.1 (constants.%V)] // CHECK:STDOUT: %K1.ref.loc14: type = name_ref K1, file.%K1.decl [concrete = constants.%K1.type] // CHECK:STDOUT: %Q1.ref: %K1.assoc_type = name_ref Q1, @K1.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc14_4.1: @Compound2.%.loc14_4 (%.17a596.2) = impl_witness_access constants.%K1.lookup_impl_witness.5aa361.2, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.2491f4.2)] -// CHECK:STDOUT: %specific_impl_fn.loc14_4.1: = specific_impl_function %impl.elem0.loc14_4.1, @K1.Q1(constants.%K1.facet.992bb7.2) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.4e92aa.2)] +// CHECK:STDOUT: %impl.elem0.loc14_4.1: @Compound2.%.loc14_4 (%.57535a.2) = impl_witness_access constants.%K1.lookup_impl_witness.5aa361.2, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.60cefb.2)] +// CHECK:STDOUT: %specific_impl_fn.loc14_4.1: = specific_impl_function %impl.elem0.loc14_4.1, @K1.Q1(constants.%V) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.76c65f.2)] // CHECK:STDOUT: %.loc14_13: init %empty_tuple.type = call %specific_impl_fn.loc14_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -481,13 +472,13 @@ fn Works() { // CHECK:STDOUT: %T.loc8_12.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @K1.Q1(constants.%K1.facet.992bb7.1) {} +// CHECK:STDOUT: specific @K1.Q1(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound2(constants.%V) { // CHECK:STDOUT: %V.loc13_14.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @K1.Q1(constants.%K1.facet.992bb7.2) {} +// CHECK:STDOUT: specific @K1.Q1(constants.%V) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_caller_instance_interface_not.carbon // CHECK:STDOUT: @@ -509,10 +500,9 @@ fn Works() { // CHECK:STDOUT: %Simple3: %Simple3.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.c496eb.1: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %K2.lookup_impl_witness: = lookup_impl_witness %T, @K2 [symbolic] -// CHECK:STDOUT: %K2.facet: %K2.type = facet_value %T.as_type, (%K2.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.f94: type = fn_type_with_self_type %K2.Q2.type, %K2.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.f94 = impl_witness_access %K2.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @K2.Q2(%K2.facet) [symbolic] +// CHECK:STDOUT: %.143: type = fn_type_with_self_type %K2.Q2.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.143 = impl_witness_access %K2.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @K2.Q2(%T) [symbolic] // CHECK:STDOUT: %V: %K2.type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] // CHECK:STDOUT: %pattern_type.0e3df3.2: type = pattern_type %V.as_type [symbolic] @@ -602,10 +592,9 @@ fn Works() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_23.1 [symbolic = %require_complete (constants.%require_complete.c496eb.1)] // CHECK:STDOUT: %K2.lookup_impl_witness: = lookup_impl_witness %T.loc8_12.1, @K2 [symbolic = %K2.lookup_impl_witness (constants.%K2.lookup_impl_witness)] -// CHECK:STDOUT: %K2.facet: %K2.type = facet_value %T.as_type.loc8_23.1, (%K2.lookup_impl_witness) [symbolic = %K2.facet (constants.%K2.facet)] -// CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%K2.Q2.type, %K2.facet [symbolic = %.loc9_4.2 (constants.%.f94)] -// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple3.%.loc9_4.2 (%.f94) = impl_witness_access %K2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc9_4.2: = specific_impl_function %impl.elem0.loc9_4.2, @K2.Q2(%K2.facet) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%K2.Q2.type, %T.loc8_12.1 [symbolic = %.loc9_4.2 (constants.%.143)] +// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple3.%.loc9_4.2 (%.143) = impl_witness_access %K2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc9_4.2: = specific_impl_function %impl.elem0.loc9_4.2, @K2.Q2(%T.loc8_12.1) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Simple3.%T.as_type.loc8_23.1 (%T.as_type)) { // CHECK:STDOUT: !entry: @@ -613,8 +602,8 @@ fn Works() { // CHECK:STDOUT: %Q2.ref: %K2.assoc_type = name_ref Q2, @K2.%assoc0 [concrete = constants.%assoc0.d67] // CHECK:STDOUT: %T.as_type.loc9: type = facet_access_type constants.%T [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_4.1: type = converted constants.%T, %T.as_type.loc9 [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple3.%.loc9_4.2 (%.f94) = impl_witness_access constants.%K2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc9_4.1: = specific_impl_function %impl.elem0.loc9_4.1, @K2.Q2(constants.%K2.facet) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple3.%.loc9_4.2 (%.143) = impl_witness_access constants.%K2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc9_4.1: = specific_impl_function %impl.elem0.loc9_4.1, @K2.Q2(constants.%T) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %.loc9_8: init %empty_tuple.type = call %specific_impl_fn.loc9_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -646,7 +635,7 @@ fn Works() { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.0e3df3.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @K2.Q2(constants.%K2.facet) {} +// CHECK:STDOUT: specific @K2.Q2(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound3(constants.%V) { // CHECK:STDOUT: %V.loc14_14.1 => constants.%V @@ -685,13 +674,12 @@ fn Works() { // CHECK:STDOUT: %require_complete.7cc52f.1: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %require_complete.b75e15.1: = require_complete_type %ptr.be473c.2 [symbolic] // CHECK:STDOUT: %L1.lookup_impl_witness.771a6e.1: = lookup_impl_witness %T, @L1 [symbolic] -// CHECK:STDOUT: %L1.facet.6a0270.1: %L1.type = facet_value %T.as_type, (%L1.lookup_impl_witness.771a6e.1) [symbolic] -// CHECK:STDOUT: %.fd3043.1: type = fn_type_with_self_type %L1.R1.type, %L1.facet.6a0270.1 [symbolic] -// CHECK:STDOUT: %impl.elem0.eb2432.1: %.fd3043.1 = impl_witness_access %L1.lookup_impl_witness.771a6e.1, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.3f1bf1.1: = specific_impl_function %impl.elem0.eb2432.1, @L1.R1(%L1.facet.6a0270.1) [symbolic] -// CHECK:STDOUT: %.d0547b.1: type = fn_type_with_self_type %L1.S1.type, %L1.facet.6a0270.1 [symbolic] -// CHECK:STDOUT: %impl.elem1.d9ff45.1: %.d0547b.1 = impl_witness_access %L1.lookup_impl_witness.771a6e.1, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.9be07e.1: = specific_impl_function %impl.elem1.d9ff45.1, @L1.S1(%L1.facet.6a0270.1) [symbolic] +// CHECK:STDOUT: %.ce9ba2.1: type = fn_type_with_self_type %L1.R1.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem0.8eac48.1: %.ce9ba2.1 = impl_witness_access %L1.lookup_impl_witness.771a6e.1, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.239e4d.1: = specific_impl_function %impl.elem0.8eac48.1, @L1.R1(%T) [symbolic] +// CHECK:STDOUT: %.db2f57.1: type = fn_type_with_self_type %L1.S1.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem1.d265e8.1: %.db2f57.1 = impl_witness_access %L1.lookup_impl_witness.771a6e.1, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.5bb1dd.1: = specific_impl_function %impl.elem1.d265e8.1, @L1.S1(%T) [symbolic] // CHECK:STDOUT: %V: %L1.type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] // CHECK:STDOUT: %pattern_type.b73027.3: type = pattern_type %V.as_type [symbolic] @@ -702,13 +690,12 @@ fn Works() { // CHECK:STDOUT: %require_complete.7cc52f.2: = require_complete_type %V.as_type [symbolic] // CHECK:STDOUT: %require_complete.b75e15.2: = require_complete_type %ptr.be473c.3 [symbolic] // CHECK:STDOUT: %L1.lookup_impl_witness.771a6e.2: = lookup_impl_witness %V, @L1 [symbolic] -// CHECK:STDOUT: %L1.facet.6a0270.2: %L1.type = facet_value %V.as_type, (%L1.lookup_impl_witness.771a6e.2) [symbolic] -// CHECK:STDOUT: %.fd3043.2: type = fn_type_with_self_type %L1.R1.type, %L1.facet.6a0270.2 [symbolic] -// CHECK:STDOUT: %impl.elem0.eb2432.2: %.fd3043.2 = impl_witness_access %L1.lookup_impl_witness.771a6e.2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.3f1bf1.2: = specific_impl_function %impl.elem0.eb2432.2, @L1.R1(%L1.facet.6a0270.2) [symbolic] -// CHECK:STDOUT: %.d0547b.2: type = fn_type_with_self_type %L1.S1.type, %L1.facet.6a0270.2 [symbolic] -// CHECK:STDOUT: %impl.elem1.d9ff45.2: %.d0547b.2 = impl_witness_access %L1.lookup_impl_witness.771a6e.2, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.9be07e.2: = specific_impl_function %impl.elem1.d9ff45.2, @L1.S1(%L1.facet.6a0270.2) [symbolic] +// CHECK:STDOUT: %.ce9ba2.2: type = fn_type_with_self_type %L1.R1.type, %V [symbolic] +// CHECK:STDOUT: %impl.elem0.8eac48.2: %.ce9ba2.2 = impl_witness_access %L1.lookup_impl_witness.771a6e.2, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.239e4d.2: = specific_impl_function %impl.elem0.8eac48.2, @L1.R1(%V) [symbolic] +// CHECK:STDOUT: %.db2f57.2: type = fn_type_with_self_type %L1.S1.type, %V [symbolic] +// CHECK:STDOUT: %impl.elem1.d265e8.2: %.db2f57.2 = impl_witness_access %L1.lookup_impl_witness.771a6e.2, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.5bb1dd.2: = specific_impl_function %impl.elem1.d265e8.2, @L1.S1(%V) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -851,13 +838,12 @@ fn Works() { // CHECK:STDOUT: %require_complete.loc9_21: = require_complete_type %T.as_type.loc9_23.1 [symbolic = %require_complete.loc9_21 (constants.%require_complete.7cc52f.1)] // CHECK:STDOUT: %require_complete.loc9_27: = require_complete_type %ptr.loc9_30.1 [symbolic = %require_complete.loc9_27 (constants.%require_complete.b75e15.1)] // CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %T.loc9_12.1, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.771a6e.1)] -// CHECK:STDOUT: %L1.facet: %L1.type = facet_value %T.as_type.loc9_23.1, (%L1.lookup_impl_witness) [symbolic = %L1.facet (constants.%L1.facet.6a0270.1)] -// CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type constants.%L1.R1.type, %L1.facet [symbolic = %.loc10_4.2 (constants.%.fd3043.1)] -// CHECK:STDOUT: %impl.elem0.loc10_4.2: @Simple4.%.loc10_4.2 (%.fd3043.1) = impl_witness_access %L1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.eb2432.1)] -// CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @L1.R1(%L1.facet) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn.3f1bf1.1)] -// CHECK:STDOUT: %.loc11_4.3: type = fn_type_with_self_type constants.%L1.S1.type, %L1.facet [symbolic = %.loc11_4.3 (constants.%.d0547b.1)] -// CHECK:STDOUT: %impl.elem1.loc11_4.2: @Simple4.%.loc11_4.3 (%.d0547b.1) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc11_4.2 (constants.%impl.elem1.d9ff45.1)] -// CHECK:STDOUT: %specific_impl_fn.loc11_4.2: = specific_impl_function %impl.elem1.loc11_4.2, @L1.S1(%L1.facet) [symbolic = %specific_impl_fn.loc11_4.2 (constants.%specific_impl_fn.9be07e.1)] +// CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type constants.%L1.R1.type, %T.loc9_12.1 [symbolic = %.loc10_4.2 (constants.%.ce9ba2.1)] +// CHECK:STDOUT: %impl.elem0.loc10_4.2: @Simple4.%.loc10_4.2 (%.ce9ba2.1) = impl_witness_access %L1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.8eac48.1)] +// CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @L1.R1(%T.loc9_12.1) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn.239e4d.1)] +// CHECK:STDOUT: %.loc11_4.3: type = fn_type_with_self_type constants.%L1.S1.type, %T.loc9_12.1 [symbolic = %.loc11_4.3 (constants.%.db2f57.1)] +// CHECK:STDOUT: %impl.elem1.loc11_4.2: @Simple4.%.loc11_4.3 (%.db2f57.1) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc11_4.2 (constants.%impl.elem1.d265e8.1)] +// CHECK:STDOUT: %specific_impl_fn.loc11_4.2: = specific_impl_function %impl.elem1.loc11_4.2, @L1.S1(%T.loc9_12.1) [symbolic = %specific_impl_fn.loc11_4.2 (constants.%specific_impl_fn.5bb1dd.1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Simple4.%T.as_type.loc9_23.1 (%T.as_type), %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.be473c.2)) { // CHECK:STDOUT: !entry: @@ -865,9 +851,9 @@ fn Works() { // CHECK:STDOUT: %R1.ref: %L1.assoc_type = name_ref R1, @L1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type constants.%T [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_4.1: type = converted constants.%T, %T.as_type.loc10 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc10_4.1: @Simple4.%.loc10_4.2 (%.fd3043.1) = impl_witness_access constants.%L1.lookup_impl_witness.771a6e.1, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.eb2432.1)] +// CHECK:STDOUT: %impl.elem0.loc10_4.1: @Simple4.%.loc10_4.2 (%.ce9ba2.1) = impl_witness_access constants.%L1.lookup_impl_witness.771a6e.1, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.8eac48.1)] // CHECK:STDOUT: %bound_method.loc10_4: = bound_method %x.ref, %impl.elem0.loc10_4.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @L1.R1(constants.%L1.facet.6a0270.1) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn.3f1bf1.1)] +// CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @L1.R1(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn.239e4d.1)] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %x.ref, %specific_impl_fn.loc10_4.1 // CHECK:STDOUT: %.loc10_8: init %empty_tuple.type = call %bound_method.loc10_8(%x.ref) // CHECK:STDOUT: %p.ref: @Simple4.%ptr.loc9_30.1 (%ptr.be473c.2) = name_ref p, %p @@ -875,9 +861,9 @@ fn Works() { // CHECK:STDOUT: %S1.ref: %L1.assoc_type = name_ref S1, @L1.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %T.as_type.loc11: type = facet_access_type constants.%T [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc11_4.2: type = converted constants.%T, %T.as_type.loc11 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem1.loc11_4.1: @Simple4.%.loc11_4.3 (%.d0547b.1) = impl_witness_access constants.%L1.lookup_impl_witness.771a6e.1, element1 [symbolic = %impl.elem1.loc11_4.2 (constants.%impl.elem1.d9ff45.1)] +// CHECK:STDOUT: %impl.elem1.loc11_4.1: @Simple4.%.loc11_4.3 (%.db2f57.1) = impl_witness_access constants.%L1.lookup_impl_witness.771a6e.1, element1 [symbolic = %impl.elem1.loc11_4.2 (constants.%impl.elem1.d265e8.1)] // CHECK:STDOUT: %bound_method.loc11_4: = bound_method %.loc11_4.1, %impl.elem1.loc11_4.1 -// CHECK:STDOUT: %specific_impl_fn.loc11_4.1: = specific_impl_function %impl.elem1.loc11_4.1, @L1.S1(constants.%L1.facet.6a0270.1) [symbolic = %specific_impl_fn.loc11_4.2 (constants.%specific_impl_fn.9be07e.1)] +// CHECK:STDOUT: %specific_impl_fn.loc11_4.1: = specific_impl_function %impl.elem1.loc11_4.1, @L1.S1(constants.%T) [symbolic = %specific_impl_fn.loc11_4.2 (constants.%specific_impl_fn.5bb1dd.1)] // CHECK:STDOUT: %bound_method.loc11_9: = bound_method %.loc11_4.1, %specific_impl_fn.loc11_4.1 // CHECK:STDOUT: %addr: @Simple4.%ptr.loc9_30.1 (%ptr.be473c.2) = addr_of %.loc11_4.1 // CHECK:STDOUT: %.loc11_9: init %empty_tuple.type = call %bound_method.loc11_9(%addr) @@ -896,31 +882,30 @@ fn Works() { // CHECK:STDOUT: %require_complete.loc15_23: = require_complete_type %V.as_type.loc15_25.1 [symbolic = %require_complete.loc15_23 (constants.%require_complete.7cc52f.2)] // CHECK:STDOUT: %require_complete.loc15_29: = require_complete_type %ptr.loc15_32.1 [symbolic = %require_complete.loc15_29 (constants.%require_complete.b75e15.2)] // CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %V.loc15_14.1, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.771a6e.2)] -// CHECK:STDOUT: %L1.facet: %L1.type = facet_value %V.as_type.loc15_25.1, (%L1.lookup_impl_witness) [symbolic = %L1.facet (constants.%L1.facet.6a0270.2)] -// CHECK:STDOUT: %.loc16_4: type = fn_type_with_self_type constants.%L1.R1.type, %L1.facet [symbolic = %.loc16_4 (constants.%.fd3043.2)] -// CHECK:STDOUT: %impl.elem0.loc16_4.2: @Compound4.%.loc16_4 (%.fd3043.2) = impl_witness_access %L1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.eb2432.2)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @L1.R1(%L1.facet) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.3f1bf1.2)] -// CHECK:STDOUT: %.loc17_4.2: type = fn_type_with_self_type constants.%L1.S1.type, %L1.facet [symbolic = %.loc17_4.2 (constants.%.d0547b.2)] -// CHECK:STDOUT: %impl.elem1.loc17_4.2: @Compound4.%.loc17_4.2 (%.d0547b.2) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc17_4.2 (constants.%impl.elem1.d9ff45.2)] -// CHECK:STDOUT: %specific_impl_fn.loc17_4.2: = specific_impl_function %impl.elem1.loc17_4.2, @L1.S1(%L1.facet) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.9be07e.2)] +// CHECK:STDOUT: %.loc16_4: type = fn_type_with_self_type constants.%L1.R1.type, %V.loc15_14.1 [symbolic = %.loc16_4 (constants.%.ce9ba2.2)] +// CHECK:STDOUT: %impl.elem0.loc16_4.2: @Compound4.%.loc16_4 (%.ce9ba2.2) = impl_witness_access %L1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.8eac48.2)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @L1.R1(%V.loc15_14.1) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.239e4d.2)] +// CHECK:STDOUT: %.loc17_4.2: type = fn_type_with_self_type constants.%L1.S1.type, %V.loc15_14.1 [symbolic = %.loc17_4.2 (constants.%.db2f57.2)] +// CHECK:STDOUT: %impl.elem1.loc17_4.2: @Compound4.%.loc17_4.2 (%.db2f57.2) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc17_4.2 (constants.%impl.elem1.d265e8.2)] +// CHECK:STDOUT: %specific_impl_fn.loc17_4.2: = specific_impl_function %impl.elem1.loc17_4.2, @L1.S1(%V.loc15_14.1) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.5bb1dd.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%y.param: @Compound4.%V.as_type.loc15_25.1 (%V.as_type), %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.be473c.3)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %y.ref: @Compound4.%V.as_type.loc15_25.1 (%V.as_type) = name_ref y, %y // CHECK:STDOUT: %L1.ref.loc16: type = name_ref L1, file.%L1.decl [concrete = constants.%L1.type] // CHECK:STDOUT: %R1.ref: %L1.assoc_type = name_ref R1, @L1.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc16_4.1: @Compound4.%.loc16_4 (%.fd3043.2) = impl_witness_access constants.%L1.lookup_impl_witness.771a6e.2, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.eb2432.2)] +// CHECK:STDOUT: %impl.elem0.loc16_4.1: @Compound4.%.loc16_4 (%.ce9ba2.2) = impl_witness_access constants.%L1.lookup_impl_witness.771a6e.2, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.8eac48.2)] // CHECK:STDOUT: %bound_method.loc16_4: = bound_method %y.ref, %impl.elem0.loc16_4.1 -// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @L1.R1(constants.%L1.facet.6a0270.2) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.3f1bf1.2)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @L1.R1(constants.%V) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.239e4d.2)] // CHECK:STDOUT: %bound_method.loc16_13: = bound_method %y.ref, %specific_impl_fn.loc16_4.1 // CHECK:STDOUT: %.loc16_13: init %empty_tuple.type = call %bound_method.loc16_13(%y.ref) // CHECK:STDOUT: %p.ref: @Compound4.%ptr.loc15_32.1 (%ptr.be473c.3) = name_ref p, %p // CHECK:STDOUT: %L1.ref.loc17: type = name_ref L1, file.%L1.decl [concrete = constants.%L1.type] // CHECK:STDOUT: %S1.ref: %L1.assoc_type = name_ref S1, @L1.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %.loc17_4.1: ref @Compound4.%V.as_type.loc15_25.1 (%V.as_type) = deref %p.ref -// CHECK:STDOUT: %impl.elem1.loc17_4.1: @Compound4.%.loc17_4.2 (%.d0547b.2) = impl_witness_access constants.%L1.lookup_impl_witness.771a6e.2, element1 [symbolic = %impl.elem1.loc17_4.2 (constants.%impl.elem1.d9ff45.2)] +// CHECK:STDOUT: %impl.elem1.loc17_4.1: @Compound4.%.loc17_4.2 (%.db2f57.2) = impl_witness_access constants.%L1.lookup_impl_witness.771a6e.2, element1 [symbolic = %impl.elem1.loc17_4.2 (constants.%impl.elem1.d265e8.2)] // CHECK:STDOUT: %bound_method.loc17_4: = bound_method %.loc17_4.1, %impl.elem1.loc17_4.1 -// CHECK:STDOUT: %specific_impl_fn.loc17_4.1: = specific_impl_function %impl.elem1.loc17_4.1, @L1.S1(constants.%L1.facet.6a0270.2) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.9be07e.2)] +// CHECK:STDOUT: %specific_impl_fn.loc17_4.1: = specific_impl_function %impl.elem1.loc17_4.1, @L1.S1(constants.%V) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.5bb1dd.2)] // CHECK:STDOUT: %bound_method.loc17_14: = bound_method %.loc17_4.1, %specific_impl_fn.loc17_4.1 // CHECK:STDOUT: %addr: @Compound4.%ptr.loc15_32.1 (%ptr.be473c.3) = addr_of %.loc17_4.1 // CHECK:STDOUT: %.loc17_14: init %empty_tuple.type = call %bound_method.loc17_14(%addr) @@ -949,14 +934,14 @@ fn Works() { // CHECK:STDOUT: %pattern_type.loc9_26 => constants.%pattern_type.c147e0.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @L1.R1(constants.%L1.facet.6a0270.1) { -// CHECK:STDOUT: %Self => constants.%L1.facet.6a0270.1 +// CHECK:STDOUT: specific @L1.R1(constants.%T) { +// CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b73027.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @L1.S1(constants.%L1.facet.6a0270.1) { -// CHECK:STDOUT: %Self => constants.%L1.facet.6a0270.1 +// CHECK:STDOUT: specific @L1.S1(constants.%T) { +// CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: %Self.as_type.loc5_24.1 => constants.%T.as_type // CHECK:STDOUT: %ptr.loc5_24.1 => constants.%ptr.be473c.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c147e0.2 @@ -970,14 +955,14 @@ fn Works() { // CHECK:STDOUT: %pattern_type.loc15_28 => constants.%pattern_type.c147e0.3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @L1.R1(constants.%L1.facet.6a0270.2) { -// CHECK:STDOUT: %Self => constants.%L1.facet.6a0270.2 +// CHECK:STDOUT: specific @L1.R1(constants.%V) { +// CHECK:STDOUT: %Self => constants.%V // CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%V.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b73027.3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @L1.S1(constants.%L1.facet.6a0270.2) { -// CHECK:STDOUT: %Self => constants.%L1.facet.6a0270.2 +// CHECK:STDOUT: specific @L1.S1(constants.%V) { +// CHECK:STDOUT: %Self => constants.%V // CHECK:STDOUT: %Self.as_type.loc5_24.1 => constants.%V.as_type // CHECK:STDOUT: %ptr.loc5_24.1 => constants.%ptr.be473c.3 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c147e0.3 @@ -1009,16 +994,15 @@ fn Works() { // CHECK:STDOUT: %Simple5: %Simple5.type = struct_value () [concrete] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %L2.lookup_impl_witness: = lookup_impl_witness %T, @L2 [symbolic] -// CHECK:STDOUT: %L2.facet: %L2.type = facet_value %T.as_type, (%L2.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.dc2: type = fn_type_with_self_type %L2.R2.type, %L2.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.dc2 = impl_witness_access %L2.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %.c57: type = fn_type_with_self_type %L2.R2.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.c57 = impl_witness_access %L2.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %pattern_type.dcd64e.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %specific_impl_fn.814: = specific_impl_function %impl.elem0, @L2.R2(%L2.facet) [symbolic] -// CHECK:STDOUT: %.630: type = fn_type_with_self_type %L2.S2.type, %L2.facet [symbolic] -// CHECK:STDOUT: %impl.elem1: %.630 = impl_witness_access %L2.lookup_impl_witness, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.259: = specific_impl_function %impl.elem0, @L2.R2(%T) [symbolic] +// CHECK:STDOUT: %.7f1: type = fn_type_with_self_type %L2.S2.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem1: %.7f1 = impl_witness_access %L2.lookup_impl_witness, element1 [symbolic] // CHECK:STDOUT: %ptr.6e05d5.2: type = ptr_type %T.as_type [symbolic] // CHECK:STDOUT: %pattern_type.f863f7.2: type = pattern_type %ptr.6e05d5.2 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.5ec: = specific_impl_function %impl.elem1, @L2.S2(%L2.facet) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.555: = specific_impl_function %impl.elem1, @L2.S2(%T) [symbolic] // CHECK:STDOUT: %V: %L2.type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %Compound5.type: type = fn_type @Compound5 [concrete] // CHECK:STDOUT: %Compound5: %Compound5.type = struct_value () [concrete] @@ -1121,13 +1105,12 @@ fn Works() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc18_4.2: type = facet_access_type %T.loc10_12.1 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %L2.lookup_impl_witness: = lookup_impl_witness %T.loc10_12.1, @L2 [symbolic = %L2.lookup_impl_witness (constants.%L2.lookup_impl_witness)] -// CHECK:STDOUT: %L2.facet: %L2.type = facet_value %T.as_type.loc18_4.2, (%L2.lookup_impl_witness) [symbolic = %L2.facet (constants.%L2.facet)] -// CHECK:STDOUT: %.loc18_4.2: type = fn_type_with_self_type constants.%L2.R2.type, %L2.facet [symbolic = %.loc18_4.2 (constants.%.dc2)] -// CHECK:STDOUT: %impl.elem0.loc18_4.2: @Simple5.%.loc18_4.2 (%.dc2) = impl_witness_access %L2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc18_4.2: = specific_impl_function %impl.elem0.loc18_4.2, @L2.R2(%L2.facet) [symbolic = %specific_impl_fn.loc18_4.2 (constants.%specific_impl_fn.814)] -// CHECK:STDOUT: %.loc26_4.2: type = fn_type_with_self_type constants.%L2.S2.type, %L2.facet [symbolic = %.loc26_4.2 (constants.%.630)] -// CHECK:STDOUT: %impl.elem1.loc26_4.2: @Simple5.%.loc26_4.2 (%.630) = impl_witness_access %L2.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_impl_fn.loc26_4.2: = specific_impl_function %impl.elem1.loc26_4.2, @L2.S2(%L2.facet) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.5ec)] +// CHECK:STDOUT: %.loc18_4.2: type = fn_type_with_self_type constants.%L2.R2.type, %T.loc10_12.1 [symbolic = %.loc18_4.2 (constants.%.c57)] +// CHECK:STDOUT: %impl.elem0.loc18_4.2: @Simple5.%.loc18_4.2 (%.c57) = impl_witness_access %L2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc18_4.2: = specific_impl_function %impl.elem0.loc18_4.2, @L2.R2(%T.loc10_12.1) [symbolic = %specific_impl_fn.loc18_4.2 (constants.%specific_impl_fn.259)] +// CHECK:STDOUT: %.loc26_4.2: type = fn_type_with_self_type constants.%L2.S2.type, %T.loc10_12.1 [symbolic = %.loc26_4.2 (constants.%.7f1)] +// CHECK:STDOUT: %impl.elem1.loc26_4.2: @Simple5.%.loc26_4.2 (%.7f1) = impl_witness_access %L2.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_impl_fn.loc26_4.2: = specific_impl_function %impl.elem1.loc26_4.2, @L2.S2(%T.loc10_12.1) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.555)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -1135,15 +1118,15 @@ fn Works() { // CHECK:STDOUT: %R2.ref: %L2.assoc_type = name_ref R2, @L2.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc18_4.1: type = facet_access_type %T.ref.loc18 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc18_4.1: type = converted %T.ref.loc18, %T.as_type.loc18_4.1 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc18_4.1: @Simple5.%.loc18_4.2 (%.dc2) = impl_witness_access constants.%L2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc18_4.1: = specific_impl_function %impl.elem0.loc18_4.1, @L2.R2(constants.%L2.facet) [symbolic = %specific_impl_fn.loc18_4.2 (constants.%specific_impl_fn.814)] +// CHECK:STDOUT: %impl.elem0.loc18_4.1: @Simple5.%.loc18_4.2 (%.c57) = impl_witness_access constants.%L2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc18_4.1: = specific_impl_function %impl.elem0.loc18_4.1, @L2.R2(constants.%T) [symbolic = %specific_impl_fn.loc18_4.2 (constants.%specific_impl_fn.259)] // CHECK:STDOUT: %.loc18_8: init %empty_tuple.type = call %specific_impl_fn.loc18_4.1() [concrete = ] // CHECK:STDOUT: %T.ref.loc26: %L2.type = name_ref T, %T.loc10_12.2 [symbolic = %T.loc10_12.1 (constants.%T)] // CHECK:STDOUT: %S2.ref: %L2.assoc_type = name_ref S2, @L2.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %T.as_type.loc26: type = facet_access_type %T.ref.loc26 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc26_4.1: type = converted %T.ref.loc26, %T.as_type.loc26 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem1.loc26_4.1: @Simple5.%.loc26_4.2 (%.630) = impl_witness_access constants.%L2.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_impl_fn.loc26_4.1: = specific_impl_function %impl.elem1.loc26_4.1, @L2.S2(constants.%L2.facet) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.5ec)] +// CHECK:STDOUT: %impl.elem1.loc26_4.1: @Simple5.%.loc26_4.2 (%.7f1) = impl_witness_access constants.%L2.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_impl_fn.loc26_4.1: = specific_impl_function %impl.elem1.loc26_4.1, @L2.S2(constants.%T) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.555)] // CHECK:STDOUT: %addr: = addr_of [concrete = ] // CHECK:STDOUT: %.loc26_8: init %empty_tuple.type = call %specific_impl_fn.loc26_4.1() [concrete = ] // CHECK:STDOUT: return @@ -1184,14 +1167,14 @@ fn Works() { // CHECK:STDOUT: %T.loc10_12.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @L2.R2(constants.%L2.facet) { -// CHECK:STDOUT: %Self => constants.%L2.facet +// CHECK:STDOUT: specific @L2.R2(constants.%T) { +// CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.dcd64e.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @L2.S2(constants.%L2.facet) { -// CHECK:STDOUT: %Self => constants.%L2.facet +// CHECK:STDOUT: specific @L2.S2(constants.%T) { +// CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: %Self.as_type.loc6_24.1 => constants.%T.as_type // CHECK:STDOUT: %ptr.loc6_24.1 => constants.%ptr.6e05d5.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.f863f7.2 diff --git a/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon b/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon index 05898c8fcc5ec..80dc5d18f9fb8 100644 --- a/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon @@ -278,7 +278,6 @@ interface C { // CHECK:STDOUT: %.Self.f90: %I2.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.f90 [symbolic_self] // CHECK:STDOUT: %I2.lookup_impl_witness.b49: = lookup_impl_witness %.Self.f90, @I2 [symbolic_self] -// CHECK:STDOUT: %I2.facet.aec: %I2.type = facet_value %.Self.as_type, (%I2.lookup_impl_witness.b49) [symbolic_self] // CHECK:STDOUT: %impl.elem0.b22: type = impl_witness_access %I2.lookup_impl_witness.b49, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %I2_where.type: type = facet_type <@I2 where %impl.elem0.b22 = %empty_tuple.type> [concrete] @@ -287,7 +286,7 @@ interface C { // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.a70 [symbolic] // CHECK:STDOUT: %I2.impl_witness.f44a82.2: = impl_witness file.%I2.impl_witness_table, @V.as_type.as.I2.impl(%Self.a70) [symbolic] // CHECK:STDOUT: %I2.lookup_impl_witness.cb8: = lookup_impl_witness %Self.a70, @I2 [symbolic] -// CHECK:STDOUT: %I2.facet.55d: %I2.type = facet_value %Self.as_type, (%I2.lookup_impl_witness.cb8) [symbolic] +// CHECK:STDOUT: %I2.facet: %I2.type = facet_value %Self.as_type, (%I2.lookup_impl_witness.cb8) [symbolic] // CHECK:STDOUT: %impl.elem0.dc2: type = impl_witness_access %I2.lookup_impl_witness.cb8, element0 [symbolic] // CHECK:STDOUT: %pattern_type.cad: type = pattern_type %impl.elem0.dc2 [symbolic] // CHECK:STDOUT: %J2.F2.type: type = fn_type @J2.F2 [concrete] @@ -367,8 +366,8 @@ interface C { // CHECK:STDOUT: %.loc15_14.1: type = converted constants.%Self.a70, %Self.as_type.loc15_14.2 [symbolic = %Self.as_type.loc15_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc15_14.2: %J2.type = converted %.loc15_14.1, constants.%Self.a70 [symbolic = %Self (constants.%Self.a70)] // CHECK:STDOUT: %Self.as_type.loc15_14.3: type = facet_access_type constants.%Self.a70 [symbolic = %Self.as_type.loc15_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %I2.facet.loc15_14.2: %I2.type = facet_value %Self.as_type.loc15_14.3, (constants.%I2.lookup_impl_witness.cb8) [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet.55d)] -// CHECK:STDOUT: %.loc15_14.3: %I2.type = converted @J2.%Self, %I2.facet.loc15_14.2 [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet.55d)] +// CHECK:STDOUT: %I2.facet.loc15_14.2: %I2.type = facet_value %Self.as_type.loc15_14.3, (constants.%I2.lookup_impl_witness.cb8) [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet)] +// CHECK:STDOUT: %.loc15_14.3: %I2.type = converted @J2.%Self, %I2.facet.loc15_14.2 [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet)] // CHECK:STDOUT: %impl.elem0.loc15_14.2: type = impl_witness_access constants.%I2.lookup_impl_witness.cb8, element0 [symbolic = %impl.elem0.loc15_14.1 (constants.%impl.elem0.dc2)] // CHECK:STDOUT: %U2.ref: type = name_ref U2, %impl.elem0.loc15_14.2 [symbolic = %impl.elem0.loc15_14.1 (constants.%impl.elem0.dc2)] // CHECK:STDOUT: %return.param: ref @J2.F2.%impl.elem0.loc15_14.1 (%impl.elem0.dc2) = out_param call_param0 @@ -408,7 +407,7 @@ interface C { // CHECK:STDOUT: %Self: %J2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.a70)] // CHECK:STDOUT: %Self.as_type.loc15_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc15_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %I2.lookup_impl_witness: = lookup_impl_witness %Self, @I2 [symbolic = %I2.lookup_impl_witness (constants.%I2.lookup_impl_witness.cb8)] -// CHECK:STDOUT: %I2.facet.loc15_14.1: %I2.type = facet_value %Self.as_type.loc15_14.1, (%I2.lookup_impl_witness) [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet.55d)] +// CHECK:STDOUT: %I2.facet.loc15_14.1: %I2.type = facet_value %Self.as_type.loc15_14.1, (%I2.lookup_impl_witness) [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet)] // CHECK:STDOUT: %impl.elem0.loc15_14.1: type = impl_witness_access %I2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_14.1 (constants.%impl.elem0.dc2)] // CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc15_14.1 [symbolic = %pattern_type (constants.%pattern_type.cad)] // CHECK:STDOUT: @@ -417,7 +416,7 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: specific @T2(constants.%Self.11e) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T2(constants.%I2.facet.aec) {} +// CHECK:STDOUT: specific @T2(constants.%.Self.f90) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @V.as_type.as.I2.impl(constants.%V) { // CHECK:STDOUT: %V.loc11_14.2 => constants.%V @@ -433,13 +432,13 @@ interface C { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T2(constants.%I2.facet.55d) {} +// CHECK:STDOUT: specific @T2(constants.%I2.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @J2.F2(constants.%Self.a70) { // CHECK:STDOUT: %Self => constants.%Self.a70 // CHECK:STDOUT: %Self.as_type.loc15_14.1 => constants.%Self.as_type // CHECK:STDOUT: %I2.lookup_impl_witness => constants.%I2.lookup_impl_witness.cb8 -// CHECK:STDOUT: %I2.facet.loc15_14.1 => constants.%I2.facet.55d +// CHECK:STDOUT: %I2.facet.loc15_14.1 => constants.%I2.facet // CHECK:STDOUT: %impl.elem0.loc15_14.1 => constants.%impl.elem0.dc2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cad // CHECK:STDOUT: } @@ -567,10 +566,9 @@ interface C { // CHECK:STDOUT: %assoc1: %C.assoc_type = assoc_entity element1, @C.%C.G.decl [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic] // CHECK:STDOUT: %C.lookup_impl_witness: = lookup_impl_witness %Self, @C [symbolic] -// CHECK:STDOUT: %C.facet: %C.type = facet_value %Self.as_type, (%C.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.be9: type = fn_type_with_self_type %C.F.type, %C.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.be9 = impl_witness_access %C.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @C.F(%C.facet) [symbolic] +// CHECK:STDOUT: %.3a5: type = fn_type_with_self_type %C.F.type, %Self [symbolic] +// CHECK:STDOUT: %impl.elem0: %.3a5 = impl_witness_access %C.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @C.F(%Self) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -640,10 +638,9 @@ interface C { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc8_14.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %C.lookup_impl_witness: = lookup_impl_witness %Self, @C [symbolic = %C.lookup_impl_witness (constants.%C.lookup_impl_witness)] -// CHECK:STDOUT: %C.facet: %C.type = facet_value %Self.as_type.loc8_14.1, (%C.lookup_impl_witness) [symbolic = %C.facet (constants.%C.facet)] -// CHECK:STDOUT: %.loc9_9.2: type = fn_type_with_self_type constants.%C.F.type, %C.facet [symbolic = %.loc9_9.2 (constants.%.be9)] -// CHECK:STDOUT: %impl.elem0.loc9_9.2: @C.G.%.loc9_9.2 (%.be9) = impl_witness_access %C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc9_9.2: = specific_impl_function %impl.elem0.loc9_9.2, @C.F(%C.facet) [symbolic = %specific_impl_fn.loc9_9.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %.loc9_9.2: type = fn_type_with_self_type constants.%C.F.type, %Self [symbolic = %.loc9_9.2 (constants.%.3a5)] +// CHECK:STDOUT: %impl.elem0.loc9_9.2: @C.G.%.loc9_9.2 (%.3a5) = impl_witness_access %C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc9_9.2: = specific_impl_function %impl.elem0.loc9_9.2, @C.F(%Self) [symbolic = %specific_impl_fn.loc9_9.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @C.G.%Self.as_type.loc8_14.1 (%Self.as_type)) { // CHECK:STDOUT: !entry: @@ -651,16 +648,16 @@ interface C { // CHECK:STDOUT: %F.ref.loc9: %C.assoc_type = name_ref F, @C.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %Self.as_type.loc9: type = facet_access_type constants.%Self [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc9_9.1: type = converted constants.%Self, %Self.as_type.loc9 [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %impl.elem0.loc9_9.1: @C.G.%.loc9_9.2 (%.be9) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc9_9.1: @C.G.%.loc9_9.2 (%.3a5) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc9_9: = bound_method %self.ref.loc9, %impl.elem0.loc9_9.1 -// CHECK:STDOUT: %specific_impl_fn.loc9_9.1: = specific_impl_function %impl.elem0.loc9_9.1, @C.F(constants.%C.facet) [symbolic = %specific_impl_fn.loc9_9.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc9_9.1: = specific_impl_function %impl.elem0.loc9_9.1, @C.F(constants.%Self) [symbolic = %specific_impl_fn.loc9_9.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc9_12: = bound_method %self.ref.loc9, %specific_impl_fn.loc9_9.1 // CHECK:STDOUT: %.loc9_12: init %empty_tuple.type = call %bound_method.loc9_12(%self.ref.loc9) // CHECK:STDOUT: %self.ref.loc10: @C.G.%Self.as_type.loc8_14.1 (%Self.as_type) = name_ref self, %self -// CHECK:STDOUT: %impl.elem0.loc10: @C.G.%.loc9_9.2 (%.be9) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %F.ref.loc10: @C.G.%.loc9_9.2 (%.be9) = name_ref F, %impl.elem0.loc10 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10: @C.G.%.loc9_9.2 (%.3a5) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %F.ref.loc10: @C.G.%.loc9_9.2 (%.3a5) = name_ref F, %impl.elem0.loc10 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc10_9: = bound_method %self.ref.loc10, %F.ref.loc10 -// CHECK:STDOUT: %specific_impl_fn.loc10: = specific_impl_function %F.ref.loc10, @C.F(constants.%C.facet) [symbolic = %specific_impl_fn.loc9_9.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc10: = specific_impl_function %F.ref.loc10, @C.F(constants.%Self) [symbolic = %specific_impl_fn.loc9_9.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc10_14: = bound_method %self.ref.loc10, %specific_impl_fn.loc10 // CHECK:STDOUT: %.loc10: init %empty_tuple.type = call %bound_method.loc10_14(%self.ref.loc10) // CHECK:STDOUT: return @@ -679,9 +676,3 @@ interface C { // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.F(constants.%C.facet) { -// CHECK:STDOUT: %Self => constants.%C.facet -// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type -// CHECK:STDOUT: } -// CHECK:STDOUT: 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 78afb1df0ecbd..5c54256f9bedf 100644 --- a/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon @@ -21,7 +21,7 @@ interface I { } fn Use(T:! I) { - // CHECK:STDERR: fail_member_access.carbon:[[@LINE+4]]:3: error: type `` does not support qualified expressions [QualifiedExprUnsupported] + // CHECK:STDERR: fail_member_access.carbon:[[@LINE+4]]:3: error: type `` does not support qualified expressions [QualifiedExprUnsupported] // CHECK:STDERR: T.F.member; // CHECK:STDERR: ^~~~~~~~~~ // CHECK:STDERR: @@ -47,10 +47,9 @@ fn Use(T:! I) { // CHECK:STDOUT: %Use: %Use.type = struct_value () [concrete] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, (%I.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.7b1: type = fn_type_with_self_type %I.F.type, %I.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.7b1 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %.7b1 [symbolic] +// CHECK:STDOUT: %.a90: type = fn_type_with_self_type %I.F.type, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.a90 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %.a90 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -106,9 +105,8 @@ fn Use(T:! I) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc13_4.2: type = facet_access_type %T.loc8_8.1 [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc13_4.2, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] -// CHECK:STDOUT: %.loc13_4.2: type = fn_type_with_self_type constants.%I.F.type, %I.facet [symbolic = %.loc13_4.2 (constants.%.7b1)] -// CHECK:STDOUT: %impl.elem0.loc13_4.2: @Use.%.loc13_4.2 (%.7b1) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %.loc13_4.2: type = fn_type_with_self_type constants.%I.F.type, %T.loc8_8.1 [symbolic = %.loc13_4.2 (constants.%.a90)] +// CHECK:STDOUT: %impl.elem0.loc13_4.2: @Use.%.loc13_4.2 (%.a90) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %require_complete: = require_complete_type %.loc13_4.2 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -117,7 +115,7 @@ fn Use(T:! I) { // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc13_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc13_4.1: type = converted %T.ref, %T.as_type.loc13_4.1 [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc13_4.1: @Use.%.loc13_4.2 (%.7b1) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc13_4.1: @Use.%.loc13_4.2 (%.a90) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } 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 2958e16a90722..9a03dde17edd9 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 @@ -233,10 +233,10 @@ fn Interface.C.F[self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.043: = lookup_impl_witness %ptr.b51, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.02f: %Copy.type = facet_value %ptr.b51, (%Copy.lookup_impl_witness.043) [symbolic] -// CHECK:STDOUT: %.7c8: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.02f [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.b51, (%Copy.lookup_impl_witness.043) [symbolic] +// CHECK:STDOUT: %.7c8: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] // CHECK:STDOUT: %impl.elem0.170: %.7c8 = impl_witness_access %Copy.lookup_impl_witness.043, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.830: = specific_impl_function %impl.elem0.170, @Copy.Op(%Copy.facet.02f) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.830: = specific_impl_function %impl.elem0.170, @Copy.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -386,7 +386,7 @@ fn Interface.C.F[self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %require_complete.loc20_47: = require_complete_type %ptr.loc14_36.1 [symbolic = %require_complete.loc20_47 (constants.%require_complete.301)] // CHECK:STDOUT: %require_complete.loc20_22: = require_complete_type %C [symbolic = %require_complete.loc20_22 (constants.%require_complete.c4c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc14_36.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.043)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc14_36.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.02f)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc14_36.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] // CHECK:STDOUT: %.loc20_62.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc20_62.2 (constants.%.7c8)] // CHECK:STDOUT: %impl.elem0.loc20_62.2: @C.F.%.loc20_62.2 (%.7c8) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc20_62.2 (constants.%impl.elem0.170)] // CHECK:STDOUT: %specific_impl_fn.loc20_62.2: = specific_impl_function %impl.elem0.loc20_62.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc20_62.2 (constants.%specific_impl_fn.830)] @@ -396,7 +396,7 @@ fn Interface.C.F[self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %u.ref: @C.F.%ptr.loc14_36.1 (%ptr.b51) = name_ref u, %u.loc20 // CHECK:STDOUT: %impl.elem0.loc20_62.1: @C.F.%.loc20_62.2 (%.7c8) = impl_witness_access constants.%Copy.lookup_impl_witness.043, element0 [symbolic = %impl.elem0.loc20_62.2 (constants.%impl.elem0.170)] // CHECK:STDOUT: %bound_method.loc20_62.1: = bound_method %u.ref, %impl.elem0.loc20_62.1 -// CHECK:STDOUT: %specific_impl_fn.loc20_62.1: = specific_impl_function %impl.elem0.loc20_62.1, @Copy.Op(constants.%Copy.facet.02f) [symbolic = %specific_impl_fn.loc20_62.2 (constants.%specific_impl_fn.830)] +// CHECK:STDOUT: %specific_impl_fn.loc20_62.1: = specific_impl_function %impl.elem0.loc20_62.1, @Copy.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc20_62.2 (constants.%specific_impl_fn.830)] // CHECK:STDOUT: %bound_method.loc20_62.2: = bound_method %u.ref, %specific_impl_fn.loc20_62.1 // CHECK:STDOUT: %.loc20_62.1: init @C.F.%ptr.loc14_36.1 (%ptr.b51) = call %bound_method.loc20_62.2(%u.ref) // CHECK:STDOUT: return %.loc20_62.1 to %return.loc20 diff --git a/toolchain/check/testdata/interface/generic_method.carbon b/toolchain/check/testdata/interface/generic_method.carbon index 04e75f575da3e..c258cbd1380b7 100644 --- a/toolchain/check/testdata/interface/generic_method.carbon +++ b/toolchain/check/testdata/interface/generic_method.carbon @@ -144,7 +144,7 @@ fn CallIndirect() { // CHECK:STDOUT: %pattern_type.ac9: type = pattern_type %tuple.type.c14 [symbolic] // CHECK:STDOUT: %Y.as.A.impl.F.type: type = fn_type @Y.as.A.impl.F [concrete] // CHECK:STDOUT: %Y.as.A.impl.F: %Y.as.A.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %A.facet.51d: %A.type.0a4 = facet_value %Y, (%A.impl_witness) [concrete] +// CHECK:STDOUT: %A.facet: %A.type.0a4 = facet_value %Y, (%A.impl_witness) [concrete] // CHECK:STDOUT: %tuple.type.5a1: type = tuple_type (type, %A.type.0a4, type) [concrete] // CHECK:STDOUT: %require_complete.86f: = require_complete_type %tuple.type.c14 [symbolic] // CHECK:STDOUT: %require_complete.6e5e64.1: = require_complete_type %ptr.79f131.1 [symbolic] @@ -163,7 +163,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete] // CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.8f9: type = pattern_type %Z [concrete] -// CHECK:STDOUT: %.d35: type = fn_type_with_self_type %A.F.type.13d, %A.facet.51d [concrete] +// CHECK:STDOUT: %.d35: type = fn_type_with_self_type %A.F.type.13d, %A.facet [concrete] // CHECK:STDOUT: %tuple.type.092: type = tuple_type (%X, %Y, %ptr.fb6) [concrete] // CHECK:STDOUT: %pattern_type.48d: type = pattern_type %tuple.type.092 [concrete] // CHECK:STDOUT: %Y.as.A.impl.F.specific_fn: = specific_function %Y.as.A.impl.F, @Y.as.A.impl.F(%Z) [concrete] @@ -186,12 +186,11 @@ fn CallIndirect() { // CHECK:STDOUT: %CallGeneric: %CallGeneric.type = struct_value () [concrete] // CHECK:STDOUT: %T.as_type.b3a: type = facet_access_type %T.7bf [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.7bf, @A, @A(%X) [symbolic] -// CHECK:STDOUT: %A.facet.ef3: %A.type.0a4 = facet_value %T.as_type.b3a, (%A.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.4c2: type = fn_type_with_self_type %A.F.type.13d, %A.facet.ef3 [symbolic] -// CHECK:STDOUT: %impl.elem0.1cf: %.4c2 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %.0c6: type = fn_type_with_self_type %A.F.type.13d, %T.7bf [symbolic] +// CHECK:STDOUT: %impl.elem0.dd2: %.0c6 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %tuple.type.af6: type = tuple_type (%X, %T.as_type.b3a, %ptr.fb6) [symbolic] // CHECK:STDOUT: %pattern_type.512: type = pattern_type %tuple.type.af6 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.940: = specific_impl_function %impl.elem0.1cf, @A.F(%X, %A.facet.ef3, %Z) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.304: = specific_impl_function %impl.elem0.dd2, @A.F(%X, %T.7bf, %Z) [symbolic] // CHECK:STDOUT: %require_complete.6ed: = require_complete_type %tuple.type.af6 [symbolic] // CHECK:STDOUT: %facet_value.caf: %type_where = facet_value %tuple.type.af6, () [symbolic] // CHECK:STDOUT: %ptr.fd2: type = ptr_type %tuple.type.af6 [symbolic] @@ -203,7 +202,7 @@ fn CallIndirect() { // CHECK:STDOUT: %specific_impl_fn.fc8: = specific_impl_function %impl.elem0.142, @Destroy.Op(%Destroy.facet.aef) [symbolic] // CHECK:STDOUT: %CallIndirect.type: type = fn_type @CallIndirect [concrete] // CHECK:STDOUT: %CallIndirect: %CallIndirect.type = struct_value () [concrete] -// CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric, @CallGeneric(%A.facet.51d) [concrete] +// CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric, @CallGeneric(%A.facet) [concrete] // CHECK:STDOUT: %complete_type.05d: = complete_type_witness %tuple.type.092 [concrete] // CHECK:STDOUT: %complete_type.d3e: = complete_type_witness %ptr.fb6 [concrete] // CHECK:STDOUT: %tuple.type.953: type = tuple_type (%empty_struct_type, %empty_struct_type, %ptr.fb6) [concrete] @@ -519,8 +518,8 @@ fn CallIndirect() { // CHECK:STDOUT: %A.ref: %A.type.495 = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.0a4] -// CHECK:STDOUT: %A.facet: %A.type.0a4 = facet_value constants.%Y, (constants.%A.impl_witness) [concrete = constants.%A.facet.51d] -// CHECK:STDOUT: %.loc23_6: %A.type.0a4 = converted %Y.ref, %A.facet [concrete = constants.%A.facet.51d] +// CHECK:STDOUT: %A.facet: %A.type.0a4 = facet_value constants.%Y, (constants.%A.impl_witness) [concrete = constants.%A.facet] +// CHECK:STDOUT: %.loc23_6: %A.type.0a4 = converted %Y.ref, %A.facet [concrete = constants.%A.facet] // CHECK:STDOUT: %.loc23_14.1: %A.assoc_type.296 = specific_constant @A.%assoc0.loc6_41.1, @A(constants.%X) [concrete = constants.%assoc0.5f6] // CHECK:STDOUT: %F.ref: %A.assoc_type.296 = name_ref F, %.loc23_14.1 [concrete = constants.%assoc0.5f6] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc23_6 [concrete = constants.%Y] @@ -552,10 +551,9 @@ fn CallIndirect() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc28_4.2: type = facet_access_type %T.loc26_16.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.b3a)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc26_16.1, @A, @A(constants.%X) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] -// CHECK:STDOUT: %A.facet: %A.type.0a4 = facet_value %T.as_type.loc28_4.2, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.ef3)] -// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type constants.%A.F.type.13d, %A.facet [symbolic = %.loc28_4.3 (constants.%.4c2)] -// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.4c2) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.1cf)] -// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.F(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.940)] +// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type constants.%A.F.type.13d, %T.loc26_16.1 [symbolic = %.loc28_4.3 (constants.%.0c6)] +// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.0c6) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.dd2)] +// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.F(constants.%X, %T.loc26_16.1, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.304)] // CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%ptr.fb6) [symbolic = %tuple.type (constants.%tuple.type.af6)] // CHECK:STDOUT: %require_complete.loc28_12.1: = require_complete_type %tuple.type [symbolic = %require_complete.loc28_12.1 (constants.%require_complete.6ed)] // CHECK:STDOUT: %facet_value.loc28_12.2: %type_where = facet_value %tuple.type, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.caf)] @@ -581,11 +579,11 @@ fn CallIndirect() { // CHECK:STDOUT: %F.ref: %A.assoc_type.296 = name_ref F, %.loc28_4.1 [concrete = constants.%assoc0.5f6] // CHECK:STDOUT: %T.as_type.loc28_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.b3a)] // CHECK:STDOUT: %.loc28_4.2: type = converted %T.ref, %T.as_type.loc28_4.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.b3a)] -// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.4c2) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.1cf)] +// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.0c6) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.dd2)] // CHECK:STDOUT: %Z.ref.loc28: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %u.ref: ref %Z = name_ref u, %u // CHECK:STDOUT: %addr.loc28_10: %ptr.fb6 = addr_of %u.ref -// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.F(constants.%X, constants.%A.facet.ef3, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.940)] +// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.F(constants.%X, constants.%T.7bf, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.304)] // CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.af6) = temporary_storage // CHECK:STDOUT: %.loc28_12.2: init @CallGeneric.%tuple.type (%tuple.type.af6) = call %specific_impl_fn.loc28_4.1(%addr.loc28_10) to %.loc28_12.1 // CHECK:STDOUT: %.loc28_12.3: ref @CallGeneric.%tuple.type (%tuple.type.af6) = temporary %.loc28_12.1, %.loc28_12.2 @@ -608,9 +606,9 @@ fn CallIndirect() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %CallGeneric.ref: %CallGeneric.type = name_ref CallGeneric, file.%CallGeneric.decl [concrete = constants.%CallGeneric] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y] -// CHECK:STDOUT: %A.facet: %A.type.0a4 = facet_value constants.%Y, (constants.%A.impl_witness) [concrete = constants.%A.facet.51d] -// CHECK:STDOUT: %.loc32: %A.type.0a4 = converted %Y.ref, %A.facet [concrete = constants.%A.facet.51d] -// CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric.ref, @CallGeneric(constants.%A.facet.51d) [concrete = constants.%CallGeneric.specific_fn] +// CHECK:STDOUT: %A.facet: %A.type.0a4 = facet_value constants.%Y, (constants.%A.impl_witness) [concrete = constants.%A.facet] +// CHECK:STDOUT: %.loc32: %A.type.0a4 = converted %Y.ref, %A.facet [concrete = constants.%A.facet] +// CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric.ref, @CallGeneric(constants.%A.facet) [concrete = constants.%CallGeneric.specific_fn] // CHECK:STDOUT: %CallGeneric.call: init %empty_tuple.type = call %CallGeneric.specific_fn() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -652,13 +650,13 @@ fn CallIndirect() { // CHECK:STDOUT: %pattern_type.loc16_25 => constants.%pattern_type.ac9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.F(constants.%X, constants.%A.facet.51d, constants.%U.8b3) { +// CHECK:STDOUT: specific @A.F(constants.%X, constants.%A.facet, constants.%U.8b3) { // CHECK:STDOUT: %U.loc6_8.1 => constants.%U.8b3 // CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.79f131.1 // CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.afe393.1 // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.0a4 -// CHECK:STDOUT: %Self => constants.%A.facet.51d +// CHECK:STDOUT: %Self => constants.%A.facet // CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.5a1 // CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%Y // CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.c14 @@ -687,26 +685,25 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc26_16.1 => constants.%T.7bf // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.F(constants.%X, constants.%A.facet.ef3, constants.%Z) { +// CHECK:STDOUT: specific @A.F(constants.%X, constants.%T.7bf, constants.%Z) { // CHECK:STDOUT: %U.loc6_8.1 => constants.%Z // CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.fb6 // CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.f76 // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.0a4 -// CHECK:STDOUT: %Self => constants.%A.facet.ef3 +// CHECK:STDOUT: %Self => constants.%T.7bf // CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.5a1 // CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%T.as_type.b3a // CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.af6 // CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.512 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CallGeneric(constants.%A.facet.51d) { -// CHECK:STDOUT: %T.loc26_16.1 => constants.%A.facet.51d +// CHECK:STDOUT: specific @CallGeneric(constants.%A.facet) { +// CHECK:STDOUT: %T.loc26_16.1 => constants.%A.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc28_4.2 => constants.%Y // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.impl_witness -// CHECK:STDOUT: %A.facet => constants.%A.facet.51d // CHECK:STDOUT: %.loc28_4.3 => constants.%.d35 // CHECK:STDOUT: %impl.elem0.loc28_4.2 => constants.%Y.as.A.impl.F // CHECK:STDOUT: %specific_impl_fn.loc28_4.2 => constants.%Y.as.A.impl.F.specific_fn @@ -722,13 +719,13 @@ fn CallIndirect() { // CHECK:STDOUT: %require_complete.loc28_12.2 => constants.%complete_type.aab // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.F(constants.%X, constants.%A.facet.51d, constants.%Z) { +// CHECK:STDOUT: specific @A.F(constants.%X, constants.%A.facet, constants.%Z) { // CHECK:STDOUT: %U.loc6_8.1 => constants.%Z // CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.fb6 // CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.f76 // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.0a4 -// CHECK:STDOUT: %Self => constants.%A.facet.51d +// CHECK:STDOUT: %Self => constants.%A.facet // CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.5a1 // CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%Y // CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.092 @@ -850,13 +847,12 @@ fn CallIndirect() { // CHECK:STDOUT: %CallGeneric: %CallGeneric.type = struct_value () [concrete] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.7bf [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.7bf, @A, @A(%X) [symbolic] -// CHECK:STDOUT: %A.facet.ef3: %A.type.0a4 = facet_value %T.as_type, (%A.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.4c2: type = fn_type_with_self_type %A.F.type.13d, %A.facet.ef3 [symbolic] -// CHECK:STDOUT: %impl.elem0.1cf: %.4c2 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %.0c6: type = fn_type_with_self_type %A.F.type.13d, %T.7bf [symbolic] +// CHECK:STDOUT: %impl.elem0.dd2: %.0c6 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %tuple.type.5a1: type = tuple_type (type, %A.type.0a4, type) [concrete] // CHECK:STDOUT: %tuple.type.780: type = tuple_type (%X, %T.as_type, %Z) [symbolic] // CHECK:STDOUT: %pattern_type.f87: type = pattern_type %tuple.type.780 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.940: = specific_impl_function %impl.elem0.1cf, @A.F(%X, %A.facet.ef3, %Z) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.304: = specific_impl_function %impl.elem0.dd2, @A.F(%X, %T.7bf, %Z) [symbolic] // CHECK:STDOUT: %require_complete.4ef: = require_complete_type %tuple.type.780 [symbolic] // CHECK:STDOUT: %facet_value.52b: %type_where = facet_value %tuple.type.780, () [symbolic] // CHECK:STDOUT: %ptr.563: type = ptr_type %tuple.type.780 [symbolic] @@ -1247,10 +1243,9 @@ fn CallIndirect() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc28_4.2: type = facet_access_type %T.loc27_16.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc27_16.1, @A, @A(constants.%X) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] -// CHECK:STDOUT: %A.facet: %A.type.0a4 = facet_value %T.as_type.loc28_4.2, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.ef3)] -// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type constants.%A.F.type.13d, %A.facet [symbolic = %.loc28_4.3 (constants.%.4c2)] -// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.4c2) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.1cf)] -// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.F(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.940)] +// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type constants.%A.F.type.13d, %T.loc27_16.1 [symbolic = %.loc28_4.3 (constants.%.0c6)] +// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.0c6) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.dd2)] +// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.F(constants.%X, %T.loc27_16.1, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.304)] // CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%Z) [symbolic = %tuple.type (constants.%tuple.type.780)] // CHECK:STDOUT: %require_complete.loc28_12.1: = require_complete_type %tuple.type [symbolic = %require_complete.loc28_12.1 (constants.%require_complete.4ef)] // CHECK:STDOUT: %facet_value.loc28_12.2: %type_where = facet_value %tuple.type, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.52b)] @@ -1269,10 +1264,10 @@ fn CallIndirect() { // CHECK:STDOUT: %F.ref: %A.assoc_type.296 = name_ref F, %.loc28_4.1 [concrete = constants.%assoc0.5f6] // CHECK:STDOUT: %T.as_type.loc28_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc28_4.2: type = converted %T.ref, %T.as_type.loc28_4.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.4c2) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.1cf)] +// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.0c6) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.dd2)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %.loc28_11.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.F(constants.%X, constants.%A.facet.ef3, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.940)] +// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.F(constants.%X, constants.%T.7bf, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.304)] // CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.780) = temporary_storage // CHECK:STDOUT: %.loc28_11.2: ref %Z = temporary_storage // CHECK:STDOUT: %.loc28_11.3: init %Z = class_init (), %.loc28_11.2 [concrete = constants.%Z.val] @@ -1430,12 +1425,12 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc27_16.1 => constants.%T.7bf // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.F(constants.%X, constants.%A.facet.ef3, constants.%Z) { +// CHECK:STDOUT: specific @A.F(constants.%X, constants.%T.7bf, constants.%Z) { // CHECK:STDOUT: %U.loc6_8.1 => constants.%Z // CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.8f9 // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.0a4 -// CHECK:STDOUT: %Self => constants.%A.facet.ef3 +// CHECK:STDOUT: %Self => constants.%T.7bf // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.5a1 // CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%T.as_type // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.780 @@ -1448,7 +1443,6 @@ fn CallIndirect() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc28_4.2 => constants.%tuple.type.a46 // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.impl_witness.c8b -// CHECK:STDOUT: %A.facet => constants.%A.facet.cdd // CHECK:STDOUT: %.loc28_4.3 => constants.%.9b3 // CHECK:STDOUT: %impl.elem0.loc28_4.2 => constants.%tuple.type.as.A.impl.F.e39 // CHECK:STDOUT: %specific_impl_fn.loc28_4.2 => constants.%tuple.type.as.A.impl.F.specific_fn.417 diff --git a/toolchain/check/testdata/interface/import.carbon b/toolchain/check/testdata/interface/import.carbon index 5dd5def116deb..0eae571958983 100644 --- a/toolchain/check/testdata/interface/import.carbon +++ b/toolchain/check/testdata/interface/import.carbon @@ -203,8 +203,8 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: %Copy.impl_witness.d96: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%ForwardDeclared.type) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.cd7: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%ForwardDeclared.type) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.148: %ptr.as.Copy.impl.Op.type.cd7 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.fb0: %Copy.type = facet_value %ptr.f78, (%Copy.impl_witness.d96) [concrete] -// CHECK:STDOUT: %.b27: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.fb0 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.f78, (%Copy.impl_witness.d96) [concrete] +// CHECK:STDOUT: %.b27: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.148 [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.148, @ptr.as.Copy.impl.Op(%ForwardDeclared.type) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/interface/member_lookup.carbon b/toolchain/check/testdata/interface/member_lookup.carbon index ed288d2078ef8..9f1eb6e4b5732 100644 --- a/toolchain/check/testdata/interface/member_lookup.carbon +++ b/toolchain/check/testdata/interface/member_lookup.carbon @@ -75,7 +75,6 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %require_complete.a60: = require_complete_type %Interface.type.cc2 [symbolic] // CHECK:STDOUT: %I.as_type.021: type = facet_access_type %I.01f [symbolic] // CHECK:STDOUT: %Interface.lookup_impl_witness.387: = lookup_impl_witness %I.01f, @Interface, @Interface(%T.8b3) [symbolic] -// CHECK:STDOUT: %Interface.facet.2f6: %Interface.type.cc2 = facet_value %I.as_type.021, (%Interface.lookup_impl_witness.387) [symbolic] // CHECK:STDOUT: %impl.elem0.97f: %ptr.79f = impl_witness_access %Interface.lookup_impl_witness.387, element0 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] @@ -104,7 +103,6 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %assoc0.04e: %Interface.assoc_type.aaa = assoc_entity element0, @Interface.%X [concrete] // CHECK:STDOUT: %I.as_type.48f: type = facet_access_type %I.328 [symbolic] // CHECK:STDOUT: %Interface.lookup_impl_witness.252: = lookup_impl_witness %I.328, @Interface, @Interface(%i32) [symbolic] -// CHECK:STDOUT: %Interface.facet.303: %Interface.type.02f = facet_value %I.as_type.48f, (%Interface.lookup_impl_witness.252) [symbolic] // CHECK:STDOUT: %complete_type.3d0: = complete_type_witness %ptr.235 [concrete] // CHECK:STDOUT: %impl.elem0.031: %ptr.235 = impl_witness_access %Interface.lookup_impl_witness.252, element0 [symbolic] // CHECK:STDOUT: %Copy.impl_witness.a93: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%i32) [concrete] @@ -309,7 +307,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %pattern_type.loc8_46 => constants.%pattern_type.afe // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%T.8b3, constants.%Interface.facet.2f6) { +// CHECK:STDOUT: specific @X(constants.%T.8b3, constants.%I.01f) { // CHECK:STDOUT: %T => constants.%T.8b3 // CHECK:STDOUT: %ptr => constants.%ptr.79f // CHECK:STDOUT: %require_complete => constants.%require_complete.6e5 @@ -329,7 +327,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %I.loc12_19.1 => constants.%I.328 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%i32, constants.%Interface.facet.303) { +// CHECK:STDOUT: specific @X(constants.%i32, constants.%I.328) { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: %ptr => constants.%ptr.235 // CHECK:STDOUT: %require_complete => constants.%complete_type.3d0 diff --git a/toolchain/check/testdata/interop/cpp/class/base.carbon b/toolchain/check/testdata/interop/cpp/class/base.carbon index 9c66caf8c3550..0d0ba8555da9a 100644 --- a/toolchain/check/testdata/interop/cpp/class/base.carbon +++ b/toolchain/check/testdata/interop/cpp/class/base.carbon @@ -258,8 +258,8 @@ class V { // CHECK:STDOUT: %Copy.impl_witness.fe1: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%Base) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.2d4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Base) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.07b: %ptr.as.Copy.impl.Op.type.2d4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.e9f: %Copy.type = facet_value %ptr.fb2, (%Copy.impl_witness.fe1) [concrete] -// CHECK:STDOUT: %.e43: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.e9f [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.fb2, (%Copy.impl_witness.fe1) [concrete] +// CHECK:STDOUT: %.e43: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.07b, @ptr.as.Copy.impl.Op(%Base) [concrete] // CHECK:STDOUT: %AcceptVal.type: type = fn_type @AcceptVal [concrete] // CHECK:STDOUT: %AcceptVal: %AcceptVal.type = struct_value () [concrete] @@ -405,8 +405,8 @@ class V { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/field.carbon b/toolchain/check/testdata/interop/cpp/class/field.carbon index 8bacd40547726..162dd2c13c598 100644 --- a/toolchain/check/testdata/interop/cpp/class/field.carbon +++ b/toolchain/check/testdata/interop/cpp/class/field.carbon @@ -237,8 +237,8 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -307,8 +307,8 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -376,8 +376,8 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Union: type = class_type @Union [concrete] // CHECK:STDOUT: %Union.elem: type = unbound_element_type %Union, %i32 [concrete] diff --git a/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon b/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon index e398085ecf71e..56f2fee70ca1b 100644 --- a/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon +++ b/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon @@ -593,8 +593,8 @@ fn F() { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.a56: = impl_witness imports.%Copy.impl_witness_table.189 [concrete] -// CHECK:STDOUT: %Copy.facet.253: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] -// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.253 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] +// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound: = bound_method %true, %bool.as.Copy.impl.Op [concrete] @@ -648,8 +648,8 @@ fn F() { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.a56: = impl_witness imports.%Copy.impl_witness_table.189 [concrete] -// CHECK:STDOUT: %Copy.facet.253: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] -// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.253 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] +// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound: = bound_method %false, %bool.as.Copy.impl.Op [concrete] @@ -733,8 +733,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.f5f: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_8) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.8d1: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_8) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.342: %Int.as.Copy.impl.Op.type.8d1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.ecc: %Copy.type = facet_value %i8, (%Copy.impl_witness.f5f) [concrete] -// CHECK:STDOUT: %.216: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.ecc [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i8, (%Copy.impl_witness.f5f) [concrete] +// CHECK:STDOUT: %.216: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_-1.416, %Int.as.Copy.impl.Op.342 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.342, @Int.as.Copy.impl.Op(%int_8) [concrete] // CHECK:STDOUT: %bound_method.db2: = bound_method %int_-1.416, %Int.as.Copy.impl.Op.specific_fn [concrete] @@ -830,8 +830,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.3d6: = impl_witness imports.%Copy.impl_witness_table.46a, @UInt.as.Copy.impl(%int_8) [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.9d3: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_8) [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.0cf: %UInt.as.Copy.impl.Op.type.9d3 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.15a: %Copy.type = facet_value %u8, (%Copy.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %.c54: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.15a [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %u8, (%Copy.impl_witness.3d6) [concrete] +// CHECK:STDOUT: %.c54: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound: = bound_method %int_1.e80, %UInt.as.Copy.impl.Op.0cf [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.0cf, @UInt.as.Copy.impl.Op(%int_8) [concrete] // CHECK:STDOUT: %bound_method.501: = bound_method %int_1.e80, %UInt.as.Copy.impl.Op.specific_fn [concrete] @@ -908,8 +908,8 @@ fn F() { // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %.d16, %Core.CharLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %int_88: %char = int_value 88 [concrete] // CHECK:STDOUT: %Copy.impl_witness.9ba: = impl_witness imports.%Copy.impl_witness_table.0e0 [concrete] -// CHECK:STDOUT: %Copy.facet.3d0: %Copy.type = facet_value %char, (%Copy.impl_witness.9ba) [concrete] -// CHECK:STDOUT: %.1ed: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.3d0 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %char, (%Copy.impl_witness.9ba) [concrete] +// CHECK:STDOUT: %.1ed: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op.type: type = fn_type @char.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op: %char.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op.bound: = bound_method %int_88, %char.as.Copy.impl.Op [concrete] @@ -1122,8 +1122,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.2f8: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c73: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.3dc: %Int.as.Copy.impl.Op.type.c73 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.4bb: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] -// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.4bb [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] +// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] @@ -1213,8 +1213,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.2f8: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c73: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.3dc: %Int.as.Copy.impl.Op.type.c73 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.4bb: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] -// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.4bb [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] +// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_32767.faa, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.556: = bound_method %int_32767.faa, %Int.as.Copy.impl.Op.specific_fn [concrete] @@ -1311,8 +1311,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.2f8: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c73: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.3dc: %Int.as.Copy.impl.Op.type.c73 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.4bb: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] -// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.4bb [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] +// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_-32768.7e5, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.b72: = bound_method %int_-32768.7e5, %Int.as.Copy.impl.Op.specific_fn [concrete] @@ -1408,8 +1408,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.2f8: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c73: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.3dc: %Int.as.Copy.impl.Op.type.c73 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.4bb: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] -// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.4bb [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] +// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] @@ -1499,8 +1499,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.2f8: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c73: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.3dc: %Int.as.Copy.impl.Op.type.c73 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.4bb: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] -// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.4bb [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] +// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] @@ -1590,8 +1590,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.2f8: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c73: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.3dc: %Int.as.Copy.impl.Op.type.c73 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.4bb: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] -// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.4bb [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] +// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] @@ -1681,8 +1681,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.2f8: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c73: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.3dc: %Int.as.Copy.impl.Op.type.c73 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.4bb: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] -// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.4bb [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] +// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] @@ -1850,8 +1850,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.3e9: = impl_witness imports.%Copy.impl_witness_table.3b9, @Float.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.type.533: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.9e9: %Float.as.Copy.impl.Op.type.533 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c55: %Copy.type = facet_value %f16.a6a, (%Copy.impl_witness.3e9) [concrete] -// CHECK:STDOUT: %.98a: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c55 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f16.a6a, (%Copy.impl_witness.3e9) [concrete] +// CHECK:STDOUT: %.98a: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.032, %Float.as.Copy.impl.Op.9e9 [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.9e9, @Float.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.086: = bound_method %float.032, %Float.as.Copy.impl.Op.specific_fn [concrete] @@ -1940,8 +1940,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.c6d: = impl_witness imports.%Copy.impl_witness_table.3b9, @Float.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.type.9ff: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.4fd: %Float.as.Copy.impl.Op.type.9ff = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.ecf: %Copy.type = facet_value %f32.97e, (%Copy.impl_witness.c6d) [concrete] -// CHECK:STDOUT: %.377: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.ecf [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f32.97e, (%Copy.impl_witness.c6d) [concrete] +// CHECK:STDOUT: %.377: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.4cb, %Float.as.Copy.impl.Op.4fd [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.4fd, @Float.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method.21c: = bound_method %float.4cb, %Float.as.Copy.impl.Op.specific_fn [concrete] @@ -2030,8 +2030,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.911: = impl_witness imports.%Copy.impl_witness_table.3b9, @Float.as.Copy.impl(%int_64) [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.type.f9e: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_64) [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.5b0: %Float.as.Copy.impl.Op.type.f9e = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.5cf: %Copy.type = facet_value %f64.d77, (%Copy.impl_witness.911) [concrete] -// CHECK:STDOUT: %.5d7: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.5cf [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f64.d77, (%Copy.impl_witness.911) [concrete] +// CHECK:STDOUT: %.5d7: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.0fc, %Float.as.Copy.impl.Op.5b0 [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.5b0, @Float.as.Copy.impl.Op(%int_64) [concrete] // CHECK:STDOUT: %bound_method.c97: = bound_method %float.0fc, %Float.as.Copy.impl.Op.specific_fn [concrete] @@ -2120,8 +2120,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.1fe: = impl_witness imports.%Copy.impl_witness_table.3b9, @Float.as.Copy.impl(%int_128) [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.type.0f2: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_128) [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.249: %Float.as.Copy.impl.Op.type.0f2 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.cc9: %Copy.type = facet_value %f128.b8c, (%Copy.impl_witness.1fe) [concrete] -// CHECK:STDOUT: %.421: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.cc9 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f128.b8c, (%Copy.impl_witness.1fe) [concrete] +// CHECK:STDOUT: %.421: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.709, %Float.as.Copy.impl.Op.249 [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.249, @Float.as.Copy.impl.Op(%int_128) [concrete] // CHECK:STDOUT: %bound_method.435: = bound_method %float.709, %Float.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/interop/cpp/function/full_semir.carbon b/toolchain/check/testdata/interop/cpp/function/full_semir.carbon index eb919358dc53d..21579b46ebf37 100644 --- a/toolchain/check/testdata/interop/cpp/function/full_semir.carbon +++ b/toolchain/check/testdata/interop/cpp/function/full_semir.carbon @@ -106,8 +106,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.2f8: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c73: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.3dc: %Int.as.Copy.impl.Op.type.c73 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.4bb: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] -// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.4bb [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] +// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/interop/cpp/function/inline.carbon b/toolchain/check/testdata/interop/cpp/function/inline.carbon index 2df1b205bacea..fd5580d05067b 100644 --- a/toolchain/check/testdata/interop/cpp/function/inline.carbon +++ b/toolchain/check/testdata/interop/cpp/function/inline.carbon @@ -196,8 +196,8 @@ fn MyF() { // CHECK:STDOUT: %Copy.impl_witness.2f8: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c73: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.3dc: %Int.as.Copy.impl.Op.type.c73 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.4bb: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] -// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.4bb [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] +// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/interop/cpp/function/overloads.carbon b/toolchain/check/testdata/interop/cpp/function/overloads.carbon index 966332bb27a47..7fc8af5c668c4 100644 --- a/toolchain/check/testdata/interop/cpp/function/overloads.carbon +++ b/toolchain/check/testdata/interop/cpp/function/overloads.carbon @@ -415,8 +415,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.2f8: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c73: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.3dc: %Int.as.Copy.impl.Op.type.c73 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.4bb: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] -// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.4bb [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] +// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] @@ -662,8 +662,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.2f8: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c73: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.3dc: %Int.as.Copy.impl.Op.type.c73 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.4bb: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] -// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.4bb [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.2f8) [concrete] +// CHECK:STDOUT: %.798: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/interop/cpp/function/pointer.carbon b/toolchain/check/testdata/interop/cpp/function/pointer.carbon index 78cf879925f71..705d2b9da29ab 100644 --- a/toolchain/check/testdata/interop/cpp/function/pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/function/pointer.carbon @@ -330,8 +330,8 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness.692: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%S) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.bf9: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%S) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.1cb: %ptr.as.Copy.impl.Op.type.bf9 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.7cc: %Copy.type = facet_value %ptr.5c7, (%Copy.impl_witness.692) [concrete] -// CHECK:STDOUT: %.dce: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.7cc [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.5c7, (%Copy.impl_witness.692) [concrete] +// CHECK:STDOUT: %.dce: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.1cb, @ptr.as.Copy.impl.Op(%S) [concrete] // CHECK:STDOUT: %.c5d: type = cpp_overload_set_type @Copy.Op [concrete] // CHECK:STDOUT: %empty_struct: %.c5d = struct_value () [concrete] diff --git a/toolchain/check/testdata/interop/cpp/typedef.carbon b/toolchain/check/testdata/interop/cpp/typedef.carbon index 893fd4e05e64d..5c051d4cfd394 100644 --- a/toolchain/check/testdata/interop/cpp/typedef.carbon +++ b/toolchain/check/testdata/interop/cpp/typedef.carbon @@ -81,8 +81,8 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %Copy.impl_witness.a93: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b57: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.9fb: %ptr.as.Copy.impl.Op.type.b57 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.7d5: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] -// CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.7d5 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] +// CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.9fb, @ptr.as.Copy.impl.Op(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.142: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Destroy.impl.Op.c04: %ptr.as.Destroy.impl.Op.type.142 = struct_value () [concrete] @@ -172,8 +172,8 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %Copy.impl_witness.144: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.cc2: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.106: %ptr.as.Copy.impl.Op.type.cc2 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.b1a: %Copy.type = facet_value %ptr.d9e, (%Copy.impl_witness.144) [concrete] -// CHECK:STDOUT: %.7e1: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.b1a [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.d9e, (%Copy.impl_witness.144) [concrete] +// CHECK:STDOUT: %.7e1: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.106, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.fe9: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%C) [concrete] // CHECK:STDOUT: %ptr.as.Destroy.impl.Op.e76: %ptr.as.Destroy.impl.Op.type.fe9 = struct_value () [concrete] diff --git a/toolchain/check/testdata/let/compile_time_bindings.carbon b/toolchain/check/testdata/let/compile_time_bindings.carbon index 3d1f9e1755a2a..c6b989560a866 100644 --- a/toolchain/check/testdata/let/compile_time_bindings.carbon +++ b/toolchain/check/testdata/let/compile_time_bindings.carbon @@ -810,8 +810,8 @@ impl i32 as Empty { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %Zero, %Int.as.Copy.impl.Op.f59 [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method.8cf: = bound_method %Zero, %Int.as.Copy.impl.Op.specific_fn [symbolic] @@ -918,8 +918,8 @@ impl i32 as Empty { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %Zero, %Int.as.Copy.impl.Op.f59 [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method.8cf: = bound_method %Zero, %Int.as.Copy.impl.Op.specific_fn [symbolic] @@ -1016,9 +1016,7 @@ impl i32 as Empty { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self, @I [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %Self.as_type, (%I.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %pattern_type.eaf: type = pattern_type %impl.elem0 [symbolic] // CHECK:STDOUT: %I.F.type: type = fn_type @I.F [concrete] @@ -1086,8 +1084,6 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T(constants.%I.facet) {} -// CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.lookup_impl_witness diff --git a/toolchain/check/testdata/let/generic.carbon b/toolchain/check/testdata/let/generic.carbon index ba7b38b09f028..099d4e205662b 100644 --- a/toolchain/check/testdata/let/generic.carbon +++ b/toolchain/check/testdata/let/generic.carbon @@ -39,10 +39,10 @@ fn F() { // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %ptr.a13abe.2: type = ptr_type %ptr.79f131.1 [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness.3af: = lookup_impl_witness %ptr.79f131.1, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.64e: %Destroy.type = facet_value %ptr.79f131.1, (%Destroy.lookup_impl_witness.3af) [symbolic] -// CHECK:STDOUT: %.fc8: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.64e [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.79f131.1, (%Destroy.lookup_impl_witness.3af) [symbolic] +// CHECK:STDOUT: %.fc8: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] // CHECK:STDOUT: %impl.elem0.108: %.fc8 = impl_witness_access %Destroy.lookup_impl_witness.3af, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a84: = specific_impl_function %impl.elem0.108, @Destroy.Op(%Destroy.facet.64e) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a84: = specific_impl_function %impl.elem0.108, @Destroy.Op(%Destroy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -95,7 +95,7 @@ fn F() { // CHECK:STDOUT: %a: %T = bind_name a, %.loc18_14.2 // CHECK:STDOUT: %impl.elem0: %.fc8 = impl_witness_access constants.%Destroy.lookup_impl_witness.3af, element0 [symbolic = constants.%impl.elem0.108] // CHECK:STDOUT: %bound_method.loc17_3.1: = bound_method %p.var, %impl.elem0 -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.Op(constants.%Destroy.facet.64e) [symbolic = constants.%specific_impl_fn.a84] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.Op(constants.%Destroy.facet) [symbolic = constants.%specific_impl_fn.a84] // CHECK:STDOUT: %bound_method.loc17_3.2: = bound_method %p.var, %specific_impl_fn // CHECK:STDOUT: %addr: %ptr.a13abe.2 = addr_of %p.var // CHECK:STDOUT: %.loc17_3: init %empty_tuple.type = call %bound_method.loc17_3.2(%addr) diff --git a/toolchain/check/testdata/let/global.carbon b/toolchain/check/testdata/let/global.carbon index be063b04b3ceb..ebff9baeeb5d9 100644 --- a/toolchain/check/testdata/let/global.carbon +++ b/toolchain/check/testdata/let/global.carbon @@ -51,8 +51,8 @@ fn F() -> i32 { return n; } // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/local.carbon b/toolchain/check/testdata/let/local.carbon index 26d57acb1cc69..2e78eadc414a5 100644 --- a/toolchain/check/testdata/let/local.carbon +++ b/toolchain/check/testdata/let/local.carbon @@ -35,8 +35,8 @@ fn F(a: i32) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/shadowed_decl.carbon b/toolchain/check/testdata/let/shadowed_decl.carbon index 188d1dd7b0ff2..b31f82cc278dc 100644 --- a/toolchain/check/testdata/let/shadowed_decl.carbon +++ b/toolchain/check/testdata/let/shadowed_decl.carbon @@ -53,8 +53,8 @@ fn F(a: i32) -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/shadow.carbon b/toolchain/check/testdata/namespace/shadow.carbon index 68ea001a3eeb7..ac5eb4eceb4c9 100644 --- a/toolchain/check/testdata/namespace/shadow.carbon +++ b/toolchain/check/testdata/namespace/shadow.carbon @@ -72,8 +72,8 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.type.4f9: type = fn_type @Int.as.Destroy.impl.Op, @Int.as.Destroy.impl(%int_32) [concrete] diff --git a/toolchain/check/testdata/operators/builtin/and.carbon b/toolchain/check/testdata/operators/builtin/and.carbon index 27ec7d4263c72..9d01fd456728a 100644 --- a/toolchain/check/testdata/operators/builtin/and.carbon +++ b/toolchain/check/testdata/operators/builtin/and.carbon @@ -43,8 +43,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.a56: = impl_witness imports.%Copy.impl_witness_table.189 [concrete] -// CHECK:STDOUT: %Copy.facet.253: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] -// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.253 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] +// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound: = bound_method %true, %bool.as.Copy.impl.Op [concrete] diff --git a/toolchain/check/testdata/operators/builtin/assignment.carbon b/toolchain/check/testdata/operators/builtin/assignment.carbon index 40fc6281f4851..dcaadfc82f496 100644 --- a/toolchain/check/testdata/operators/builtin/assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/assignment.carbon @@ -100,8 +100,8 @@ fn Main() { // CHECK:STDOUT: %Copy.impl_witness.a93: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b57: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.9fb: %ptr.as.Copy.impl.Op.type.b57 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.7d5: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] -// CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.7d5 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] +// CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.9fb, @ptr.as.Copy.impl.Op(%i32) [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.23d: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] diff --git a/toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon b/toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon index 8be3a478debde..02356dd29810a 100644 --- a/toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon @@ -96,9 +96,9 @@ fn F() { // CHECK:STDOUT: %f64: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] -// CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness .inst350 [concrete] -// CHECK:STDOUT: %Copy.facet.c80: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] -// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c80 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness .inst341 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] +// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -140,9 +140,9 @@ fn F() { // CHECK:STDOUT: %f64: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] -// CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness .inst350 [concrete] -// CHECK:STDOUT: %Copy.facet.c80: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] -// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c80 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness .inst341 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] +// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } 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 0ceb4fa433d94..463c57a823217 100644 --- a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon @@ -70,8 +70,8 @@ fn Main() { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.type.4f9: type = fn_type @Int.as.Destroy.impl.Op, @Int.as.Destroy.impl(%int_32) [concrete] diff --git a/toolchain/check/testdata/operators/builtin/or.carbon b/toolchain/check/testdata/operators/builtin/or.carbon index d8857b1f90172..07b5454e4d6ff 100644 --- a/toolchain/check/testdata/operators/builtin/or.carbon +++ b/toolchain/check/testdata/operators/builtin/or.carbon @@ -43,8 +43,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.a56: = impl_witness imports.%Copy.impl_witness_table.189 [concrete] -// CHECK:STDOUT: %Copy.facet.253: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] -// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.253 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] +// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound: = bound_method %true, %bool.as.Copy.impl.Op [concrete] diff --git a/toolchain/check/testdata/operators/builtin/unary_op.carbon b/toolchain/check/testdata/operators/builtin/unary_op.carbon index 2e96d8f386d9e..2ac47c42e99a6 100644 --- a/toolchain/check/testdata/operators/builtin/unary_op.carbon +++ b/toolchain/check/testdata/operators/builtin/unary_op.carbon @@ -36,8 +36,8 @@ fn Constant() { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.a56: = impl_witness imports.%Copy.impl_witness_table.189 [concrete] -// CHECK:STDOUT: %Copy.facet.253: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] -// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.253 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] +// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] diff --git a/toolchain/check/testdata/operators/overloaded/add.carbon b/toolchain/check/testdata/operators/overloaded/add.carbon index 5311cb64a1363..11bb8e188c82a 100644 --- a/toolchain/check/testdata/operators/overloaded/add.carbon +++ b/toolchain/check/testdata/operators/overloaded/add.carbon @@ -50,14 +50,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %AddWith.impl_witness: = impl_witness file.%AddWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.AddWith.impl.Op.type: type = fn_type @C.as.AddWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.AddWith.impl.Op: %C.as.AddWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %AddWith.facet.a19: %AddWith.type.bfd = facet_value %C, (%AddWith.impl_witness) [concrete] +// CHECK:STDOUT: %AddWith.facet: %AddWith.type.bfd = facet_value %C, (%AddWith.impl_witness) [concrete] // CHECK:STDOUT: %AddAssignWith.type.133: type = facet_type <@AddAssignWith, @AddAssignWith(%C)> [concrete] // CHECK:STDOUT: %AddAssignWith.Op.type.5af: type = fn_type @AddAssignWith.Op, @AddAssignWith(%C) [concrete] // CHECK:STDOUT: %AddAssignWith.impl_witness: = impl_witness file.%AddAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.AddAssignWith.impl.Op.type: type = fn_type @C.as.AddAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.AddAssignWith.impl.Op: %C.as.AddAssignWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.133 = facet_value %C, (%AddAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %.7df: type = fn_type_with_self_type %AddWith.Op.type.45e, %AddWith.facet.a19 [concrete] +// CHECK:STDOUT: %.7df: type = fn_type_with_self_type %AddWith.Op.type.45e, %AddWith.facet [concrete] // CHECK:STDOUT: %.277: type = fn_type_with_self_type %AddAssignWith.Op.type.5af, %AddAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/bit_and.carbon b/toolchain/check/testdata/operators/overloaded/bit_and.carbon index ea4c4b182ad7c..54c13305ef3f1 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_and.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_and.carbon @@ -50,14 +50,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness file.%BitAndWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitAndWith.impl.Op.type: type = fn_type @C.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitAndWith.impl.Op: %C.as.BitAndWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.facet.2d4: %BitAndWith.type.488 = facet_value %C, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.488 = facet_value %C, (%BitAndWith.impl_witness) [concrete] // CHECK:STDOUT: %BitAndAssignWith.type.bc6: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%C)> [concrete] // CHECK:STDOUT: %BitAndAssignWith.Op.type.73d: type = fn_type @BitAndAssignWith.Op, @BitAndAssignWith(%C) [concrete] // CHECK:STDOUT: %BitAndAssignWith.impl_witness: = impl_witness file.%BitAndAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitAndAssignWith.impl.Op.type: type = fn_type @C.as.BitAndAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitAndAssignWith.impl.Op: %C.as.BitAndAssignWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %BitAndAssignWith.facet: %BitAndAssignWith.type.bc6 = facet_value %C, (%BitAndAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %.446: type = fn_type_with_self_type %BitAndWith.Op.type.914, %BitAndWith.facet.2d4 [concrete] +// CHECK:STDOUT: %.446: type = fn_type_with_self_type %BitAndWith.Op.type.914, %BitAndWith.facet [concrete] // CHECK:STDOUT: %.ef9: type = fn_type_with_self_type %BitAndAssignWith.Op.type.73d, %BitAndAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/bit_complement.carbon b/toolchain/check/testdata/operators/overloaded/bit_complement.carbon index 82a6d220e9851..edd3e3e58b839 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_complement.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_complement.carbon @@ -39,8 +39,8 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: %BitComplement.impl_witness: = impl_witness file.%BitComplement.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitComplement.impl.Op.type: type = fn_type @C.as.BitComplement.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitComplement.impl.Op: %C.as.BitComplement.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %BitComplement.facet.6cb: %BitComplement.type = facet_value %C, (%BitComplement.impl_witness) [concrete] -// CHECK:STDOUT: %.832: type = fn_type_with_self_type %BitComplement.Op.type, %BitComplement.facet.6cb [concrete] +// CHECK:STDOUT: %BitComplement.facet: %BitComplement.type = facet_value %C, (%BitComplement.impl_witness) [concrete] +// CHECK:STDOUT: %.832: type = fn_type_with_self_type %BitComplement.Op.type, %BitComplement.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { diff --git a/toolchain/check/testdata/operators/overloaded/bit_or.carbon b/toolchain/check/testdata/operators/overloaded/bit_or.carbon index bfc5eb1dca1c9..54a659c9b1f8b 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_or.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_or.carbon @@ -50,14 +50,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %BitOrWith.impl_witness: = impl_witness file.%BitOrWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitOrWith.impl.Op.type: type = fn_type @C.as.BitOrWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitOrWith.impl.Op: %C.as.BitOrWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %BitOrWith.facet.af3: %BitOrWith.type.499 = facet_value %C, (%BitOrWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitOrWith.facet: %BitOrWith.type.499 = facet_value %C, (%BitOrWith.impl_witness) [concrete] // CHECK:STDOUT: %BitOrAssignWith.type.de7: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%C)> [concrete] // CHECK:STDOUT: %BitOrAssignWith.Op.type.efc: type = fn_type @BitOrAssignWith.Op, @BitOrAssignWith(%C) [concrete] // CHECK:STDOUT: %BitOrAssignWith.impl_witness: = impl_witness file.%BitOrAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitOrAssignWith.impl.Op.type: type = fn_type @C.as.BitOrAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitOrAssignWith.impl.Op: %C.as.BitOrAssignWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %BitOrAssignWith.facet: %BitOrAssignWith.type.de7 = facet_value %C, (%BitOrAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %.9e6: type = fn_type_with_self_type %BitOrWith.Op.type.501, %BitOrWith.facet.af3 [concrete] +// CHECK:STDOUT: %.9e6: type = fn_type_with_self_type %BitOrWith.Op.type.501, %BitOrWith.facet [concrete] // CHECK:STDOUT: %.59c: type = fn_type_with_self_type %BitOrAssignWith.Op.type.efc, %BitOrAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/bit_xor.carbon b/toolchain/check/testdata/operators/overloaded/bit_xor.carbon index ea794dd92bd8e..c9f69615f809c 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_xor.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_xor.carbon @@ -50,14 +50,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %BitXorWith.impl_witness: = impl_witness file.%BitXorWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitXorWith.impl.Op.type: type = fn_type @C.as.BitXorWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitXorWith.impl.Op: %C.as.BitXorWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %BitXorWith.facet.af5: %BitXorWith.type.bf8 = facet_value %C, (%BitXorWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitXorWith.facet: %BitXorWith.type.bf8 = facet_value %C, (%BitXorWith.impl_witness) [concrete] // CHECK:STDOUT: %BitXorAssignWith.type.38a: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%C)> [concrete] // CHECK:STDOUT: %BitXorAssignWith.Op.type.ad0: type = fn_type @BitXorAssignWith.Op, @BitXorAssignWith(%C) [concrete] // CHECK:STDOUT: %BitXorAssignWith.impl_witness: = impl_witness file.%BitXorAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitXorAssignWith.impl.Op.type: type = fn_type @C.as.BitXorAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitXorAssignWith.impl.Op: %C.as.BitXorAssignWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %BitXorAssignWith.facet: %BitXorAssignWith.type.38a = facet_value %C, (%BitXorAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %.a7b: type = fn_type_with_self_type %BitXorWith.Op.type.502, %BitXorWith.facet.af5 [concrete] +// CHECK:STDOUT: %.a7b: type = fn_type_with_self_type %BitXorWith.Op.type.502, %BitXorWith.facet [concrete] // CHECK:STDOUT: %.d84: type = fn_type_with_self_type %BitXorAssignWith.Op.type.ad0, %BitXorAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/div.carbon b/toolchain/check/testdata/operators/overloaded/div.carbon index a6cbe7724ef6c..4360a6b75c90b 100644 --- a/toolchain/check/testdata/operators/overloaded/div.carbon +++ b/toolchain/check/testdata/operators/overloaded/div.carbon @@ -50,14 +50,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %DivWith.impl_witness: = impl_witness file.%DivWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.DivWith.impl.Op.type: type = fn_type @C.as.DivWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.DivWith.impl.Op: %C.as.DivWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %DivWith.facet.9a0: %DivWith.type.75d = facet_value %C, (%DivWith.impl_witness) [concrete] +// CHECK:STDOUT: %DivWith.facet: %DivWith.type.75d = facet_value %C, (%DivWith.impl_witness) [concrete] // CHECK:STDOUT: %DivAssignWith.type.226: type = facet_type <@DivAssignWith, @DivAssignWith(%C)> [concrete] // CHECK:STDOUT: %DivAssignWith.Op.type.629: type = fn_type @DivAssignWith.Op, @DivAssignWith(%C) [concrete] // CHECK:STDOUT: %DivAssignWith.impl_witness: = impl_witness file.%DivAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.DivAssignWith.impl.Op.type: type = fn_type @C.as.DivAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.DivAssignWith.impl.Op: %C.as.DivAssignWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %DivAssignWith.facet: %DivAssignWith.type.226 = facet_value %C, (%DivAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %.b8d: type = fn_type_with_self_type %DivWith.Op.type.c4b, %DivWith.facet.9a0 [concrete] +// CHECK:STDOUT: %.b8d: type = fn_type_with_self_type %DivWith.Op.type.c4b, %DivWith.facet [concrete] // CHECK:STDOUT: %.5f7: type = fn_type_with_self_type %DivAssignWith.Op.type.629, %DivAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon index d9b8a6d99a387..b7c8b27f4bc87 100644 --- a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon +++ b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon @@ -76,8 +76,8 @@ fn Test() { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %ImplicitAs.type.d14: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %ImplicitAs.Convert.type.1b6: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%i32) [concrete] diff --git a/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon b/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon index 0d910d71ff85c..57c0da3a18ee8 100644 --- a/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon +++ b/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon @@ -353,8 +353,8 @@ let x: i32 = c[0]; // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] diff --git a/toolchain/check/testdata/operators/overloaded/left_shift.carbon b/toolchain/check/testdata/operators/overloaded/left_shift.carbon index 5fcc6238c05c7..ad610df8d49a5 100644 --- a/toolchain/check/testdata/operators/overloaded/left_shift.carbon +++ b/toolchain/check/testdata/operators/overloaded/left_shift.carbon @@ -50,14 +50,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %LeftShiftWith.impl_witness: = impl_witness file.%LeftShiftWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.LeftShiftWith.impl.Op.type: type = fn_type @C.as.LeftShiftWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.LeftShiftWith.impl.Op: %C.as.LeftShiftWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %LeftShiftWith.facet.23f: %LeftShiftWith.type.dad = facet_value %C, (%LeftShiftWith.impl_witness) [concrete] +// CHECK:STDOUT: %LeftShiftWith.facet: %LeftShiftWith.type.dad = facet_value %C, (%LeftShiftWith.impl_witness) [concrete] // CHECK:STDOUT: %LeftShiftAssignWith.type.981: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%C)> [concrete] // CHECK:STDOUT: %LeftShiftAssignWith.Op.type.30f: type = fn_type @LeftShiftAssignWith.Op, @LeftShiftAssignWith(%C) [concrete] // CHECK:STDOUT: %LeftShiftAssignWith.impl_witness: = impl_witness file.%LeftShiftAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.LeftShiftAssignWith.impl.Op.type: type = fn_type @C.as.LeftShiftAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.LeftShiftAssignWith.impl.Op: %C.as.LeftShiftAssignWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %LeftShiftAssignWith.facet: %LeftShiftAssignWith.type.981 = facet_value %C, (%LeftShiftAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %.fc3: type = fn_type_with_self_type %LeftShiftWith.Op.type.097, %LeftShiftWith.facet.23f [concrete] +// CHECK:STDOUT: %.fc3: type = fn_type_with_self_type %LeftShiftWith.Op.type.097, %LeftShiftWith.facet [concrete] // CHECK:STDOUT: %.f59: type = fn_type_with_self_type %LeftShiftAssignWith.Op.type.30f, %LeftShiftAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/mod.carbon b/toolchain/check/testdata/operators/overloaded/mod.carbon index 93d3a6e218795..c801c24b91ee2 100644 --- a/toolchain/check/testdata/operators/overloaded/mod.carbon +++ b/toolchain/check/testdata/operators/overloaded/mod.carbon @@ -50,14 +50,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %ModWith.impl_witness: = impl_witness file.%ModWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.ModWith.impl.Op.type: type = fn_type @C.as.ModWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.ModWith.impl.Op: %C.as.ModWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %ModWith.facet.316: %ModWith.type.a0d = facet_value %C, (%ModWith.impl_witness) [concrete] +// CHECK:STDOUT: %ModWith.facet: %ModWith.type.a0d = facet_value %C, (%ModWith.impl_witness) [concrete] // CHECK:STDOUT: %ModAssignWith.type.444: type = facet_type <@ModAssignWith, @ModAssignWith(%C)> [concrete] // CHECK:STDOUT: %ModAssignWith.Op.type.dd0: type = fn_type @ModAssignWith.Op, @ModAssignWith(%C) [concrete] // CHECK:STDOUT: %ModAssignWith.impl_witness: = impl_witness file.%ModAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.ModAssignWith.impl.Op.type: type = fn_type @C.as.ModAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.ModAssignWith.impl.Op: %C.as.ModAssignWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %ModAssignWith.facet: %ModAssignWith.type.444 = facet_value %C, (%ModAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %.f86: type = fn_type_with_self_type %ModWith.Op.type.140, %ModWith.facet.316 [concrete] +// CHECK:STDOUT: %.f86: type = fn_type_with_self_type %ModWith.Op.type.140, %ModWith.facet [concrete] // CHECK:STDOUT: %.a3f: type = fn_type_with_self_type %ModAssignWith.Op.type.dd0, %ModAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/mul.carbon b/toolchain/check/testdata/operators/overloaded/mul.carbon index 0b9bb6f4552f3..0d666788041c8 100644 --- a/toolchain/check/testdata/operators/overloaded/mul.carbon +++ b/toolchain/check/testdata/operators/overloaded/mul.carbon @@ -50,14 +50,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %MulWith.impl_witness: = impl_witness file.%MulWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.MulWith.impl.Op.type: type = fn_type @C.as.MulWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.MulWith.impl.Op: %C.as.MulWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %MulWith.facet.295: %MulWith.type.c1e = facet_value %C, (%MulWith.impl_witness) [concrete] +// CHECK:STDOUT: %MulWith.facet: %MulWith.type.c1e = facet_value %C, (%MulWith.impl_witness) [concrete] // CHECK:STDOUT: %MulAssignWith.type.c63: type = facet_type <@MulAssignWith, @MulAssignWith(%C)> [concrete] // CHECK:STDOUT: %MulAssignWith.Op.type.5c8: type = fn_type @MulAssignWith.Op, @MulAssignWith(%C) [concrete] // CHECK:STDOUT: %MulAssignWith.impl_witness: = impl_witness file.%MulAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.MulAssignWith.impl.Op.type: type = fn_type @C.as.MulAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.MulAssignWith.impl.Op: %C.as.MulAssignWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %MulAssignWith.facet: %MulAssignWith.type.c63 = facet_value %C, (%MulAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %.b53: type = fn_type_with_self_type %MulWith.Op.type.2c9, %MulWith.facet.295 [concrete] +// CHECK:STDOUT: %.b53: type = fn_type_with_self_type %MulWith.Op.type.2c9, %MulWith.facet [concrete] // CHECK:STDOUT: %.78a: type = fn_type_with_self_type %MulAssignWith.Op.type.5c8, %MulAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/negate.carbon b/toolchain/check/testdata/operators/overloaded/negate.carbon index 0ba7aa9bb704e..e9a1f512344e0 100644 --- a/toolchain/check/testdata/operators/overloaded/negate.carbon +++ b/toolchain/check/testdata/operators/overloaded/negate.carbon @@ -39,8 +39,8 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: %Negate.impl_witness: = impl_witness file.%Negate.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.Negate.impl.Op.type: type = fn_type @C.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %C.as.Negate.impl.Op: %C.as.Negate.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Negate.facet.9c4: %Negate.type = facet_value %C, (%Negate.impl_witness) [concrete] -// CHECK:STDOUT: %.5db: type = fn_type_with_self_type %Negate.Op.type, %Negate.facet.9c4 [concrete] +// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %C, (%Negate.impl_witness) [concrete] +// CHECK:STDOUT: %.5db: type = fn_type_with_self_type %Negate.Op.type, %Negate.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { diff --git a/toolchain/check/testdata/operators/overloaded/right_shift.carbon b/toolchain/check/testdata/operators/overloaded/right_shift.carbon index 1f21edad57469..9160688b09e08 100644 --- a/toolchain/check/testdata/operators/overloaded/right_shift.carbon +++ b/toolchain/check/testdata/operators/overloaded/right_shift.carbon @@ -50,14 +50,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %RightShiftWith.impl_witness: = impl_witness file.%RightShiftWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.RightShiftWith.impl.Op.type: type = fn_type @C.as.RightShiftWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.RightShiftWith.impl.Op: %C.as.RightShiftWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %RightShiftWith.facet.e99: %RightShiftWith.type.a33 = facet_value %C, (%RightShiftWith.impl_witness) [concrete] +// CHECK:STDOUT: %RightShiftWith.facet: %RightShiftWith.type.a33 = facet_value %C, (%RightShiftWith.impl_witness) [concrete] // CHECK:STDOUT: %RightShiftAssignWith.type.df5: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%C)> [concrete] // CHECK:STDOUT: %RightShiftAssignWith.Op.type.ae9: type = fn_type @RightShiftAssignWith.Op, @RightShiftAssignWith(%C) [concrete] // CHECK:STDOUT: %RightShiftAssignWith.impl_witness: = impl_witness file.%RightShiftAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.RightShiftAssignWith.impl.Op.type: type = fn_type @C.as.RightShiftAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.RightShiftAssignWith.impl.Op: %C.as.RightShiftAssignWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %RightShiftAssignWith.facet: %RightShiftAssignWith.type.df5 = facet_value %C, (%RightShiftAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %.bc2: type = fn_type_with_self_type %RightShiftWith.Op.type.19b, %RightShiftWith.facet.e99 [concrete] +// CHECK:STDOUT: %.bc2: type = fn_type_with_self_type %RightShiftWith.Op.type.19b, %RightShiftWith.facet [concrete] // CHECK:STDOUT: %.a3c: type = fn_type_with_self_type %RightShiftAssignWith.Op.type.ae9, %RightShiftAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/sub.carbon b/toolchain/check/testdata/operators/overloaded/sub.carbon index 54a04b2b4e652..75eb0c747e246 100644 --- a/toolchain/check/testdata/operators/overloaded/sub.carbon +++ b/toolchain/check/testdata/operators/overloaded/sub.carbon @@ -50,14 +50,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %SubWith.impl_witness: = impl_witness file.%SubWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.SubWith.impl.Op.type: type = fn_type @C.as.SubWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.SubWith.impl.Op: %C.as.SubWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %SubWith.facet.d64: %SubWith.type.c5d = facet_value %C, (%SubWith.impl_witness) [concrete] +// CHECK:STDOUT: %SubWith.facet: %SubWith.type.c5d = facet_value %C, (%SubWith.impl_witness) [concrete] // CHECK:STDOUT: %SubAssignWith.type.9f4: type = facet_type <@SubAssignWith, @SubAssignWith(%C)> [concrete] // CHECK:STDOUT: %SubAssignWith.Op.type.ffe: type = fn_type @SubAssignWith.Op, @SubAssignWith(%C) [concrete] // CHECK:STDOUT: %SubAssignWith.impl_witness: = impl_witness file.%SubAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.SubAssignWith.impl.Op.type: type = fn_type @C.as.SubAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.SubAssignWith.impl.Op: %C.as.SubAssignWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %SubAssignWith.facet: %SubAssignWith.type.9f4 = facet_value %C, (%SubAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %.c27: type = fn_type_with_self_type %SubWith.Op.type.fc0, %SubWith.facet.d64 [concrete] +// CHECK:STDOUT: %.c27: type = fn_type_with_self_type %SubWith.Op.type.fc0, %SubWith.facet [concrete] // CHECK:STDOUT: %.52c: type = fn_type_with_self_type %SubAssignWith.Op.type.ffe, %SubAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/package_expr/syntax.carbon b/toolchain/check/testdata/package_expr/syntax.carbon index d6eeee4269a42..e47167d68ffb4 100644 --- a/toolchain/check/testdata/package_expr/syntax.carbon +++ b/toolchain/check/testdata/package_expr/syntax.carbon @@ -78,8 +78,8 @@ fn Main() { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -191,8 +191,8 @@ fn Main() { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.type.4f9: type = fn_type @Int.as.Destroy.impl.Op, @Int.as.Destroy.impl(%int_32) [concrete] diff --git a/toolchain/check/testdata/packages/implicit_imports_prelude.carbon b/toolchain/check/testdata/packages/implicit_imports_prelude.carbon index 7fd15156380e1..aa40c38fe2df6 100644 --- a/toolchain/check/testdata/packages/implicit_imports_prelude.carbon +++ b/toolchain/check/testdata/packages/implicit_imports_prelude.carbon @@ -113,8 +113,8 @@ var b: i32 = a; // CHECK:STDOUT: %Copy.impl_witness.d0b: = impl_witness imports.%Copy.impl_witness_table.608, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.edd: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.99d: %Int.as.Copy.impl.Op.type.edd = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.574: %Copy.type = facet_value %i32, (%Copy.impl_witness.d0b) [concrete] -// CHECK:STDOUT: %.0ec: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.574 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.d0b) [concrete] +// CHECK:STDOUT: %.0ec: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.99d, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/raw_core.carbon b/toolchain/check/testdata/packages/raw_core.carbon index 0f6107eb9f2a5..c0598e660fffd 100644 --- a/toolchain/check/testdata/packages/raw_core.carbon +++ b/toolchain/check/testdata/packages/raw_core.carbon @@ -236,8 +236,8 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_0.6a9, %Int.as.Copy.impl.Op.f59 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method.84d: = bound_method %int_0.6a9, %Int.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/pointer/address_of_deref.carbon b/toolchain/check/testdata/pointer/address_of_deref.carbon index a8f3d49b6e0b1..03ac496e2af9b 100644 --- a/toolchain/check/testdata/pointer/address_of_deref.carbon +++ b/toolchain/check/testdata/pointer/address_of_deref.carbon @@ -54,8 +54,8 @@ fn F() -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Int.as.Destroy.impl.Op.type.4f9: type = fn_type @Int.as.Destroy.impl.Op, @Int.as.Destroy.impl(%int_32) [concrete] diff --git a/toolchain/check/testdata/pointer/import.carbon b/toolchain/check/testdata/pointer/import.carbon index 7f02c99faa116..0d08bf95d4581 100644 --- a/toolchain/check/testdata/pointer/import.carbon +++ b/toolchain/check/testdata/pointer/import.carbon @@ -61,8 +61,8 @@ var a: i32* = a_ref; // CHECK:STDOUT: %Copy.impl_witness.a93: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b57: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.9fb: %ptr.as.Copy.impl.Op.type.b57 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.7d5: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] -// CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.7d5 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] +// CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.9fb [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.9fb, @ptr.as.Copy.impl.Op(%i32) [concrete] // CHECK:STDOUT: %bound_method.40a: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] @@ -153,8 +153,8 @@ var a: i32* = a_ref; // CHECK:STDOUT: %Copy.impl_witness.d22: = impl_witness imports.%Copy.impl_witness_table.573, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.bb0: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.e28: %ptr.as.Copy.impl.Op.type.bb0 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.047: %Copy.type = facet_value %ptr.9e1, (%Copy.impl_witness.d22) [concrete] -// CHECK:STDOUT: %.c00: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.047 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.9e1, (%Copy.impl_witness.d22) [concrete] +// CHECK:STDOUT: %.c00: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.e28, @ptr.as.Copy.impl.Op(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -167,7 +167,7 @@ var a: i32* = a_ref; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Implicit.import_ref.790: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.222) = import_ref Implicit//default, inst339 [indirect], loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.3ef)] +// CHECK:STDOUT: %Implicit.import_ref.790: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.222) = import_ref Implicit//default, inst337 [indirect], loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.3ef)] // CHECK:STDOUT: %Copy.impl_witness_table.573 = impl_witness_table (%Implicit.import_ref.790), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %a_ref.patt: %pattern_type.f6a = binding_pattern a_ref [concrete] diff --git a/toolchain/check/testdata/primitives/import_symbolic.carbon b/toolchain/check/testdata/primitives/import_symbolic.carbon index e4e2fa3cf4412..6baed52df20b3 100644 --- a/toolchain/check/testdata/primitives/import_symbolic.carbon +++ b/toolchain/check/testdata/primitives/import_symbolic.carbon @@ -207,8 +207,8 @@ fn F() -> u32 { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.a56: = impl_witness imports.%Copy.impl_witness_table.189 [concrete] -// CHECK:STDOUT: %Copy.facet.253: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] -// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.253 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.a56) [concrete] +// CHECK:STDOUT: %.05c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound: = bound_method %false, %bool.as.Copy.impl.Op [concrete] @@ -256,8 +256,8 @@ fn F() -> u32 { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.9ba: = impl_witness imports.%Copy.impl_witness_table.0e0 [concrete] -// CHECK:STDOUT: %Copy.facet.3d0: %Copy.type = facet_value %char, (%Copy.impl_witness.9ba) [concrete] -// CHECK:STDOUT: %.1ed: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.3d0 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %char, (%Copy.impl_witness.9ba) [concrete] +// CHECK:STDOUT: %.1ed: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op.type: type = fn_type @char.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op: %char.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op.bound: = bound_method %int_97, %char.as.Copy.impl.Op [concrete] @@ -304,8 +304,8 @@ fn F() -> u32 { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.eda: = impl_witness imports.%Copy.impl_witness_table.51e [concrete] -// CHECK:STDOUT: %Copy.facet.76f: %Copy.type = facet_value Core.CharLiteral, (%Copy.impl_witness.eda) [concrete] -// CHECK:STDOUT: %.2aa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.76f [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.CharLiteral, (%Copy.impl_witness.eda) [concrete] +// CHECK:STDOUT: %.2aa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.Copy.impl.Op.type: type = fn_type @Core.CharLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.Copy.impl.Op: %Core.CharLiteral.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.Copy.impl.Op.bound: = bound_method %.54f, %Core.CharLiteral.as.Copy.impl.Op [concrete] @@ -359,8 +359,8 @@ fn F() -> u32 { // CHECK:STDOUT: %Copy.impl_witness.911: = impl_witness imports.%Copy.impl_witness_table.3b9, @Float.as.Copy.impl(%int_64) [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.type.f9e: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_64) [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.5b0: %Float.as.Copy.impl.Op.type.f9e = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.5cf: %Copy.type = facet_value %f64.d77, (%Copy.impl_witness.911) [concrete] -// CHECK:STDOUT: %.5d7: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.5cf [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f64.d77, (%Copy.impl_witness.911) [concrete] +// CHECK:STDOUT: %.5d7: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float, %Float.as.Copy.impl.Op.5b0 [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.5b0, @Float.as.Copy.impl.Op(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %float, %Float.as.Copy.impl.Op.specific_fn [concrete] @@ -409,8 +409,8 @@ fn F() -> u32 { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.691: = impl_witness imports.%Copy.impl_witness_table.3b2 [concrete] -// CHECK:STDOUT: %Copy.facet.032: %Copy.type = facet_value Core.FloatLiteral, (%Copy.impl_witness.691) [concrete] -// CHECK:STDOUT: %.3cc: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.032 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.FloatLiteral, (%Copy.impl_witness.691) [concrete] +// CHECK:STDOUT: %.3cc: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Core.FloatLiteral.as.Copy.impl.Op.type: type = fn_type @Core.FloatLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Core.FloatLiteral.as.Copy.impl.Op: %Core.FloatLiteral.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.FloatLiteral.as.Copy.impl.Op.bound: = bound_method %float.3fedf4.2, %Core.FloatLiteral.as.Copy.impl.Op [concrete] @@ -464,8 +464,8 @@ fn F() -> u32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_8, %Int.as.Copy.impl.Op.f59 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_8, %Int.as.Copy.impl.Op.specific_fn [concrete] @@ -514,8 +514,8 @@ fn F() -> u32 { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.104: = impl_witness imports.%Copy.impl_witness_table.954 [concrete] -// CHECK:STDOUT: %Copy.facet.9ec: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.104) [concrete] -// CHECK:STDOUT: %.7f1: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9ec [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.104) [concrete] +// CHECK:STDOUT: %.7f1: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.type: type = fn_type @Core.IntLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op: %Core.IntLiteral.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound: = bound_method %int_7, %Core.IntLiteral.as.Copy.impl.Op [concrete] @@ -569,8 +569,8 @@ fn F() -> u32 { // CHECK:STDOUT: %Copy.impl_witness.61c: = impl_witness imports.%Copy.impl_witness_table.46a, @UInt.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.31e: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.1bb: %UInt.as.Copy.impl.Op.type.31e = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.9a3: %Copy.type = facet_value %u32, (%Copy.impl_witness.61c) [concrete] -// CHECK:STDOUT: %.fbf: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9a3 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %u32, (%Copy.impl_witness.61c) [concrete] +// CHECK:STDOUT: %.fbf: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound: = bound_method %int_8, %UInt.as.Copy.impl.Op.1bb [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.1bb, @UInt.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_8, %UInt.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/primitives/type_literals.carbon b/toolchain/check/testdata/primitives/type_literals.carbon index d4b88cbd2ed70..ec2be19ecd216 100644 --- a/toolchain/check/testdata/primitives/type_literals.carbon +++ b/toolchain/check/testdata/primitives/type_literals.carbon @@ -540,8 +540,8 @@ var test_str: str = (); // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness imports.%Copy.impl_witness_table.40f [concrete] -// CHECK:STDOUT: %Copy.facet.c80: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] -// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c80 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] +// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %i32, %type.as.Copy.impl.Op [concrete] diff --git a/toolchain/check/testdata/return/fail_call_in_type.carbon b/toolchain/check/testdata/return/fail_call_in_type.carbon index 10c02a5111cc5..53e081f35e613 100644 --- a/toolchain/check/testdata/return/fail_call_in_type.carbon +++ b/toolchain/check/testdata/return/fail_call_in_type.carbon @@ -34,8 +34,8 @@ fn Six() -> ReturnType() { return 6; } // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness imports.%Copy.impl_witness_table.40f [concrete] -// CHECK:STDOUT: %Copy.facet.c80: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] -// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c80 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] +// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %i32, %type.as.Copy.impl.Op [concrete] diff --git a/toolchain/check/testdata/return/fail_var_in_type.carbon b/toolchain/check/testdata/return/fail_var_in_type.carbon index 3a104c2ad7c87..31ce0961ba87a 100644 --- a/toolchain/check/testdata/return/fail_var_in_type.carbon +++ b/toolchain/check/testdata/return/fail_var_in_type.carbon @@ -30,8 +30,8 @@ fn Six() -> x { return 6; } // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness imports.%Copy.impl_witness_table.40f [concrete] -// CHECK:STDOUT: %Copy.facet.c80: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] -// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c80 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] +// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %i32, %type.as.Copy.impl.Op [concrete] diff --git a/toolchain/check/testdata/struct/import.carbon b/toolchain/check/testdata/struct/import.carbon index 7223e35f8f0dd..76022b271adb7 100644 --- a/toolchain/check/testdata/struct/import.carbon +++ b/toolchain/check/testdata/struct/import.carbon @@ -101,8 +101,8 @@ fn F() -> {.x: i32} { // CHECK:STDOUT: %Copy.impl_witness.d0b: = impl_witness imports.%Copy.impl_witness_table.608, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.edd: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.99d: %Int.as.Copy.impl.Op.type.edd = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.574: %Copy.type = facet_value %i32, (%Copy.impl_witness.d0b) [concrete] -// CHECK:STDOUT: %.0ec: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.574 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.d0b) [concrete] +// CHECK:STDOUT: %.0ec: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.99d, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] // CHECK:STDOUT: %tuple.type.dd4: type = tuple_type (%i32) [concrete] @@ -300,8 +300,8 @@ fn F() -> {.x: i32} { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1, %Int.as.Copy.impl.Op.f59 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1, %Int.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/struct/literal_member_access.carbon b/toolchain/check/testdata/struct/literal_member_access.carbon index cdb364dad86b1..60fbdb2cd8ac4 100644 --- a/toolchain/check/testdata/struct/literal_member_access.carbon +++ b/toolchain/check/testdata/struct/literal_member_access.carbon @@ -45,8 +45,8 @@ fn F() -> i32 { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] diff --git a/toolchain/check/testdata/struct/member_access.carbon b/toolchain/check/testdata/struct/member_access.carbon index bd7563b4ccebc..fbd13f6e52670 100644 --- a/toolchain/check/testdata/struct/member_access.carbon +++ b/toolchain/check/testdata/struct/member_access.carbon @@ -73,8 +73,8 @@ var z: i32 = y; // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/one_entry.carbon b/toolchain/check/testdata/struct/one_entry.carbon index ab8f7cfdea5f4..4735b5209b6cc 100644 --- a/toolchain/check/testdata/struct/one_entry.carbon +++ b/toolchain/check/testdata/struct/one_entry.carbon @@ -52,8 +52,8 @@ var y: {.a: i32} = x; // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/partially_const.carbon b/toolchain/check/testdata/struct/partially_const.carbon index 0449920f6c104..536ad79faf208 100644 --- a/toolchain/check/testdata/struct/partially_const.carbon +++ b/toolchain/check/testdata/struct/partially_const.carbon @@ -54,8 +54,8 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/tuple_as_element.carbon b/toolchain/check/testdata/struct/tuple_as_element.carbon index 2f6bfb246aa34..010fe1a1b00f6 100644 --- a/toolchain/check/testdata/struct/tuple_as_element.carbon +++ b/toolchain/check/testdata/struct/tuple_as_element.carbon @@ -63,8 +63,8 @@ var y: {.a: i32, .b: (i32,)} = x; // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %.413: ref %tuple.type.a1c = struct_access file.%y.var, element1 [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/two_entries.carbon b/toolchain/check/testdata/struct/two_entries.carbon index 83515bd820b78..5117cf5722533 100644 --- a/toolchain/check/testdata/struct/two_entries.carbon +++ b/toolchain/check/testdata/struct/two_entries.carbon @@ -61,8 +61,8 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %.86e: ref %i32 = struct_access file.%y.var, element1 [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/element_access.carbon b/toolchain/check/testdata/tuple/element_access.carbon index 5cb7d7718f78c..669047072af1f 100644 --- a/toolchain/check/testdata/tuple/element_access.carbon +++ b/toolchain/check/testdata/tuple/element_access.carbon @@ -168,8 +168,8 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: } @@ -236,8 +236,8 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] @@ -403,8 +403,8 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type.a1c, () [concrete] diff --git a/toolchain/check/testdata/tuple/import.carbon b/toolchain/check/testdata/tuple/import.carbon index 6462e37418fbb..330c147cdda31 100644 --- a/toolchain/check/testdata/tuple/import.carbon +++ b/toolchain/check/testdata/tuple/import.carbon @@ -104,8 +104,8 @@ fn F() -> (i32,) { // CHECK:STDOUT: %Copy.impl_witness.d0b: = impl_witness imports.%Copy.impl_witness_table.608, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.edd: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.99d: %Int.as.Copy.impl.Op.type.edd = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.574: %Copy.type = facet_value %i32, (%Copy.impl_witness.d0b) [concrete] -// CHECK:STDOUT: %.0ec: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.574 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.d0b) [concrete] +// CHECK:STDOUT: %.0ec: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.99d, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.8c7: type = tuple_type (%tuple.type.85c, type) [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] @@ -328,8 +328,8 @@ fn F() -> (i32,) { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1, %Int.as.Copy.impl.Op.f59 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1, %Int.as.Copy.impl.Op.specific_fn [concrete] diff --git a/toolchain/check/testdata/tuple/in_place_tuple_init.carbon b/toolchain/check/testdata/tuple/in_place_tuple_init.carbon index 8d904090b4428..847c9865ac78d 100644 --- a/toolchain/check/testdata/tuple/in_place_tuple_init.carbon +++ b/toolchain/check/testdata/tuple/in_place_tuple_init.carbon @@ -73,8 +73,8 @@ fn H() { // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] +// CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/var_pattern.carbon b/toolchain/check/testdata/var/var_pattern.carbon index c880853fb0a4e..2a6f2d561b981 100644 --- a/toolchain/check/testdata/var/var_pattern.carbon +++ b/toolchain/check/testdata/var/var_pattern.carbon @@ -665,8 +665,8 @@ fn G() { // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Destroy.facet.265: %Destroy.type = facet_value %empty_tuple.type, (%Destroy.impl_witness.8e6) [concrete] -// CHECK:STDOUT: %.b16: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.265 [concrete] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %empty_tuple.type, (%Destroy.impl_witness.8e6) [concrete] +// CHECK:STDOUT: %.b16: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [concrete] // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/lower/handle.cpp b/toolchain/lower/handle.cpp index b29317336e8a6..9f376e9ddfd3c 100644 --- a/toolchain/lower/handle.cpp +++ b/toolchain/lower/handle.cpp @@ -188,6 +188,11 @@ auto HandleInst(FunctionContext& context, SemIR::InstId inst_id, context.SetLocal(inst_id, context.GetTypeAsValue()); } +auto HandleInst(FunctionContext& context, SemIR::InstId inst_id, + SemIR::FacetValue /*inst*/) -> void { + context.SetLocal(inst_id, context.GetTypeAsValue()); +} + auto HandleInst(FunctionContext& context, SemIR::InstId /*inst_id*/, SemIR::InitializeFrom inst) -> void { context.FinishInit(context.GetTypeIdOfInst(inst.dest_id), inst.dest_id, diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index b11f84241777b..1663e4adec2dd 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -658,12 +658,19 @@ struct FacetType { FacetTypeId facet_type_id; }; -// A facet value, the value of a facet type. This consists of a type and a set -// of witnesses that it satisfies the required interfaces of the facet type. +// A facet value is a general value of type FacetType. This consists of a type +// and a set of witnesses that it satisfies the required interfaces of the +// FacetType. +// +// This instruction is never a type. Though it can be converted to type, doing +// so evaluates to the `type_inst_id` within. +// +// If the FacetValue is just a wrapper around a BindSymbolicName (converted to +// `type` and back, for example), it evaluates back to the BindSymbolicName. struct FacetValue { static constexpr auto Kind = InstKind::FacetValue.Define( {.ir_name = "facet_value", - .constant_kind = InstConstantKind::Always, + .constant_kind = InstConstantKind::Conditional, .deduce_through = true}); // A `FacetType`.