diff --git a/toolchain/check/context.cpp b/toolchain/check/context.cpp index 03d70ad8df1d0..3b536815d32e5 100644 --- a/toolchain/check/context.cpp +++ b/toolchain/check/context.cpp @@ -54,6 +54,7 @@ Context::Context(DiagnosticEmitter* emitter, args_type_info_stack_("args_type_info_stack_", *sem_ir, vlog_stream), decl_name_stack_(this), scope_stack_(sem_ir_->identifiers()), + vtable_stack_("vtable_stack_", *sem_ir, vlog_stream), global_init_(this) { // Prepare fields which relate to the number of IRs available for import. import_irs().Reserve(imported_ir_count); diff --git a/toolchain/check/context.h b/toolchain/check/context.h index 7f24d004eca95..49ce05506bfd4 100644 --- a/toolchain/check/context.h +++ b/toolchain/check/context.h @@ -553,6 +553,8 @@ class Context { return generic_region_stack_; } + auto vtable_stack() -> InstBlockStack& { return vtable_stack_; } + auto import_ir_constant_values() -> llvm::SmallVector& { return import_ir_constant_values_; @@ -700,6 +702,8 @@ class Context { // The stack of generic regions we are currently within. GenericRegionStack generic_region_stack_; + InstBlockStack vtable_stack_; + // Cache of reverse mapping from type constants to types. // // TODO: Instead of mapping to a dense `TypeId` space, we could make `TypeId` diff --git a/toolchain/check/eval.cpp b/toolchain/check/eval.cpp index 87c680b54e324..79158a7c9edc9 100644 --- a/toolchain/check/eval.cpp +++ b/toolchain/check/eval.cpp @@ -1496,6 +1496,9 @@ static auto TryEvalInstInContext(EvalContext& eval_context, case SemIR::TupleInit::Kind: return RebuildInitAsValue(eval_context, inst, SemIR::TupleValue::Kind); + case SemIR::Vtable::Kind: + return RebuildIfFieldsAreConstant(eval_context, inst, + &SemIR::Vtable::virtual_functions_id); case SemIR::AutoType::Kind: case SemIR::BoolType::Kind: case SemIR::BoundMethodType::Kind: diff --git a/toolchain/check/handle_class.cpp b/toolchain/check/handle_class.cpp index 3d54e62bbbba2..2ad420f4e7746 100644 --- a/toolchain/check/handle_class.cpp +++ b/toolchain/check/handle_class.cpp @@ -304,6 +304,7 @@ auto HandleParseNode(Context& context, Parse::ClassDefinitionStartId node_id) context.inst_block_stack().Push(); context.node_stack().Push(node_id, class_id); context.field_decls_stack().PushArray(); + context.vtable_stack().Push(); // TODO: Handle the case where there's control flow in the class body. For // example: @@ -668,11 +669,12 @@ static auto CheckCompleteClassType(Context& context, Parse::NodeId node_id, bool defining_vptr = class_info.is_dynamic; auto base_type_id = class_info.GetBaseType(context.sem_ir(), SemIR::SpecificId::Invalid); + SemIR::Class* base_class_info = nullptr; if (base_type_id.is_valid()) { // TODO: If the base class is template dependent, we will need to decide // whether to add a vptr as part of instantiation. - if (auto* base_class_info = TryGetAsClass(context, base_type_id); - base_class_info && base_class_info->is_dynamic) { + base_class_info = TryGetAsClass(context, base_type_id); + if (base_class_info && base_class_info->is_dynamic) { defining_vptr = false; } } @@ -696,6 +698,46 @@ static auto CheckCompleteClassType(Context& context, Parse::NodeId node_id, {.name_id = SemIR::NameId::Base, .type_id = base_type_id}); } + if (class_info.is_dynamic) { + llvm::SmallVector vtable; + if (!defining_vptr) { + auto base_vtable_inst_block = context.inst_blocks().Get( + context.insts() + .GetAs(base_class_info->vtable_id) + .virtual_functions_id); + for (auto fn_decl_id : base_vtable_inst_block) { + /* + auto fn_decl = context.insts().GetAs(fn_decl_id); + auto fn = context.functions().Get(fn_decl.function_id); + for (auto override_fn_decl_id : + context.vtable_stack().PeekCurrentBlockContents()) { auto + override_fn_decl = + context.insts().GetAs(override_fn_decl_id); auto + override_fn = context.functions().Get(override_fn_decl.function_id); if + (override_fn.virtual_modifier == + SemIR::FunctionFields::VirtualModifier::Impl && + override_fn.name_id == fn.name_id) { + fn_decl_id = override_fn_decl_id; + } + } + */ + vtable.push_back(fn_decl_id); + } + } + + for (auto inst_id : context.vtable_stack().PeekCurrentBlockContents()) { + auto fn_decl = context.insts().GetAs(inst_id); + auto fn = context.functions().Get(fn_decl.function_id); + if (fn.virtual_modifier != SemIR::FunctionFields::VirtualModifier::Impl) { + vtable.push_back(inst_id); + } + } + class_info.vtable_id = context.AddInst( + node_id, {.type_id = context.GetSingletonType( + SemIR::VtableType::SingletonInstId), + .virtual_functions_id = context.inst_blocks().Add(vtable)}); + } + return context.AddInst( node_id, {.type_id = context.GetSingletonType(SemIR::WitnessType::SingletonInstId), @@ -716,6 +758,7 @@ auto HandleParseNode(Context& context, Parse::ClassDefinitionId node_id) context.inst_block_stack().Pop(); context.field_decls_stack().PopArray(); + context.vtable_stack().Pop(); FinishGenericDefinition(context, class_info.generic_id); diff --git a/toolchain/check/handle_function.cpp b/toolchain/check/handle_function.cpp index 92083bd7e5f66..be3e4156e4f55 100644 --- a/toolchain/check/handle_function.cpp +++ b/toolchain/check/handle_function.cpp @@ -214,18 +214,19 @@ static auto BuildFunctionDecl(Context& context, .Case(KeywordModifierSet::Impl, SemIR::Function::VirtualModifier::Impl) .Default(SemIR::Function::VirtualModifier::None); + SemIR::Class* class_info = nullptr; if (virtual_modifier != SemIR::Function::VirtualModifier::None && parent_scope_inst) { if (auto class_decl = parent_scope_inst->TryAs()) { - auto& class_info = context.classes().Get(class_decl->class_id); + class_info = &context.classes().Get(class_decl->class_id); if (virtual_modifier == SemIR::Function::VirtualModifier::Impl && - !class_info.base_id.is_valid()) { + !class_info->base_id.is_valid()) { CARBON_DIAGNOSTIC(ImplWithoutBase, Error, "impl without base class"); context.emitter().Build(node_id, ImplWithoutBase).Emit(); } // TODO: If this is an `impl` function, check there's a matching base // function that's impl or virtual. - class_info.is_dynamic = true; + class_info->is_dynamic = true; } } if (introducer.modifier_set.HasAnyOf(KeywordModifierSet::Interface)) { @@ -252,6 +253,9 @@ static auto BuildFunctionDecl(Context& context, if (is_definition) { function_info.definition_id = decl_id; } + if (class_info && class_info->is_dynamic) { + context.vtable_stack().AddInstId(decl_id); + } TryMergeRedecl(context, node_id, name_context.prev_inst_id(), function_decl, function_info, is_definition); diff --git a/toolchain/check/import_ref.cpp b/toolchain/check/import_ref.cpp index fe8a1a1655ff9..0a89777bfdbb9 100644 --- a/toolchain/check/import_ref.cpp +++ b/toolchain/check/import_ref.cpp @@ -1392,6 +1392,26 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, return ResolveResult::Done(resolver.local_constant_values().Get(inst_id)); } +static auto TryResolveTypedInst(ImportRefResolver& resolver, SemIR::Vtable inst, + SemIR::InstId import_inst_id) -> ResolveResult { + auto type_const_id = GetLocalConstantId(resolver, inst.type_id); + auto virtual_functions = + GetLocalInstBlockContents(resolver, inst.virtual_functions_id); + if (resolver.HasNewWork()) { + return ResolveResult::Retry(); + } + + auto virtual_functions_id = GetLocalCanonicalInstBlockId( + resolver, inst.virtual_functions_id, virtual_functions); + auto inst_id = resolver.local_context().AddInstInNoBlock( + resolver.local_context().MakeImportedLocAndInst( + AddImportIRInst(resolver, import_inst_id), + {.type_id = + resolver.local_context().GetTypeIdForTypeConstant(type_const_id), + .virtual_functions_id = virtual_functions_id})); + return ResolveResult::Done(resolver.local_constant_values().Get(inst_id)); +} + static auto TryResolveTypedInst(ImportRefResolver& resolver, SemIR::BindAlias inst) -> ResolveResult { auto value_id = GetLocalConstantId(resolver, inst.value_id); @@ -1513,8 +1533,8 @@ static auto AddClassDefinition(ImportContext& context, const SemIR::Class& import_class, SemIR::Class& new_class, SemIR::InstId complete_type_witness_id, - SemIR::InstId base_id, SemIR::InstId adapt_id) - -> void { + SemIR::InstId base_id, SemIR::InstId adapt_id, + SemIR::InstId vtable_id) -> void { new_class.definition_id = new_class.first_owning_decl_id; new_class.complete_type_witness_id = complete_type_witness_id; @@ -1537,6 +1557,9 @@ static auto AddClassDefinition(ImportContext& context, if (import_class.adapt_id.is_valid()) { new_class.adapt_id = adapt_id; } + if (import_class.vtable_id.is_valid()) { + new_class.vtable_id = vtable_id; + } } static auto TryResolveTypedInst(ImportRefResolver& resolver, @@ -1602,6 +1625,10 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, auto adapt_id = import_class.adapt_id.is_valid() ? GetLocalConstantInstId(resolver, import_class.adapt_id) : SemIR::InstId::Invalid; + auto vtable_id = + import_class.vtable_id.is_valid() + ? GetLocalConstantInstId(resolver, import_class.vtable_id) + : SemIR::InstId::Invalid; if (resolver.HasNewWork()) { return ResolveResult::Retry(class_const_id); @@ -1625,7 +1652,7 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, SemIR::WitnessType::SingletonInstId), import_class.complete_type_witness_id, complete_type_witness_const_id); AddClassDefinition(resolver, import_class, new_class, - complete_type_witness_id, base_id, adapt_id); + complete_type_witness_id, base_id, adapt_id, vtable_id); } return ResolveResult::Done(class_const_id); @@ -2674,6 +2701,9 @@ static auto TryResolveInstCanonical(ImportRefResolver& resolver, case CARBON_KIND(SemIR::UnboundElementType inst): { return TryResolveTypedInst(resolver, inst); } + case CARBON_KIND(SemIR::Vtable inst): { + return TryResolveTypedInst(resolver, inst, inst_id); + } default: { // This instruction might have a constant value of a different kind. auto constant_inst_id = diff --git a/toolchain/check/testdata/alias/no_prelude/alias_of_alias.carbon b/toolchain/check/testdata/alias/no_prelude/alias_of_alias.carbon index 21323fa89c396..9add6fe8b6960 100644 --- a/toolchain/check/testdata/alias/no_prelude/alias_of_alias.carbon +++ b/toolchain/check/testdata/alias/no_prelude/alias_of_alias.carbon @@ -47,6 +47,7 @@ let d: c = {}; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/alias/no_prelude/export_name.carbon b/toolchain/check/testdata/alias/no_prelude/export_name.carbon index 1aa43c0dd8a6d..6675ab67b266b 100644 --- a/toolchain/check/testdata/alias/no_prelude/export_name.carbon +++ b/toolchain/check/testdata/alias/no_prelude/export_name.carbon @@ -92,6 +92,7 @@ var d: D* = &c; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export.carbon @@ -122,6 +123,7 @@ var d: D* = &c; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_orig.carbon @@ -152,6 +154,7 @@ var d: D* = &c; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_export.carbon @@ -184,6 +187,7 @@ var d: D* = &c; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -261,6 +265,7 @@ var d: D* = &c; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/alias/no_prelude/fail_aliased_name_in_diag.carbon b/toolchain/check/testdata/alias/no_prelude/fail_aliased_name_in_diag.carbon index 8d476ab00115a..11d332635dcaa 100644 --- a/toolchain/check/testdata/alias/no_prelude/fail_aliased_name_in_diag.carbon +++ b/toolchain/check/testdata/alias/no_prelude/fail_aliased_name_in_diag.carbon @@ -53,6 +53,7 @@ let c_var: c = d; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -61,6 +62,7 @@ let c_var: c = d; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/alias/no_prelude/fail_modifiers.carbon b/toolchain/check/testdata/alias/no_prelude/fail_modifiers.carbon index 7d0821edd1617..edd6b5c7e8bfa 100644 --- a/toolchain/check/testdata/alias/no_prelude/fail_modifiers.carbon +++ b/toolchain/check/testdata/alias/no_prelude/fail_modifiers.carbon @@ -78,5 +78,6 @@ extern alias C = Class; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/alias/no_prelude/fail_name_conflict.carbon b/toolchain/check/testdata/alias/no_prelude/fail_name_conflict.carbon index 606438ed28455..0c4b0695acbcf 100644 --- a/toolchain/check/testdata/alias/no_prelude/fail_name_conflict.carbon +++ b/toolchain/check/testdata/alias/no_prelude/fail_name_conflict.carbon @@ -63,6 +63,7 @@ alias b = C; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/alias/no_prelude/import.carbon b/toolchain/check/testdata/alias/no_prelude/import.carbon index d0cba099d79c4..5ddced80f729e 100644 --- a/toolchain/check/testdata/alias/no_prelude/import.carbon +++ b/toolchain/check/testdata/alias/no_prelude/import.carbon @@ -96,6 +96,7 @@ var c: () = a_alias_alias; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- class2.carbon @@ -136,6 +137,7 @@ var c: () = a_alias_alias; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- class3.carbon @@ -171,6 +173,7 @@ var c: () = a_alias_alias; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- var1.carbon diff --git a/toolchain/check/testdata/alias/no_prelude/import_access.carbon b/toolchain/check/testdata/alias/no_prelude/import_access.carbon index affd369ff6ac9..d0c59da82acc6 100644 --- a/toolchain/check/testdata/alias/no_prelude/import_access.carbon +++ b/toolchain/check/testdata/alias/no_prelude/import_access.carbon @@ -76,6 +76,7 @@ var inst: Test.A = {}; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- def.impl.carbon @@ -111,6 +112,7 @@ var inst: Test.A = {}; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/alias/no_prelude/import_order.carbon b/toolchain/check/testdata/alias/no_prelude/import_order.carbon index 7eb7f93a8e258..ae074c65a6e64 100644 --- a/toolchain/check/testdata/alias/no_prelude/import_order.carbon +++ b/toolchain/check/testdata/alias/no_prelude/import_order.carbon @@ -69,6 +69,7 @@ var a_val: a = {.v = b_val.v}; // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .v = %.loc4_16 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- b.carbon @@ -126,6 +127,7 @@ var a_val: a = {.v = b_val.v}; // CHECK:STDOUT: .Self = imports.%import_ref.7 // CHECK:STDOUT: .v = imports.%import_ref.8 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.6 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/alias/no_prelude/in_namespace.carbon b/toolchain/check/testdata/alias/no_prelude/in_namespace.carbon index f80e9da4399d1..b703b173507fe 100644 --- a/toolchain/check/testdata/alias/no_prelude/in_namespace.carbon +++ b/toolchain/check/testdata/alias/no_prelude/in_namespace.carbon @@ -69,6 +69,7 @@ fn F() -> NS.a { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .v = %.loc11_16 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/as/adapter_conversion.carbon b/toolchain/check/testdata/as/adapter_conversion.carbon index df56a25ad0dad..92f178f460d41 100644 --- a/toolchain/check/testdata/as/adapter_conversion.carbon +++ b/toolchain/check/testdata/as/adapter_conversion.carbon @@ -192,6 +192,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: .y = %.loc6 // CHECK:STDOUT: .Make = %Make.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -202,6 +203,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Make() -> %return.param_patt: %A { @@ -325,6 +327,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -396,6 +399,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -406,6 +410,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -416,6 +421,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -426,6 +432,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -505,6 +512,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: .y = %.loc6 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -515,6 +523,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -624,6 +633,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -634,6 +644,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/as/identity.carbon b/toolchain/check/testdata/as/identity.carbon index c7d63cca4baaa..fcaf7576367e6 100644 --- a/toolchain/check/testdata/as/identity.carbon +++ b/toolchain/check/testdata/as/identity.carbon @@ -97,6 +97,7 @@ fn Initializing() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Value(%n.param_patt: %X) { diff --git a/toolchain/check/testdata/as/no_prelude/tuple.carbon b/toolchain/check/testdata/as/no_prelude/tuple.carbon index f905622985bb5..6571189d8b204 100644 --- a/toolchain/check/testdata/as/no_prelude/tuple.carbon +++ b/toolchain/check/testdata/as/no_prelude/tuple.carbon @@ -66,6 +66,7 @@ fn Var() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Make() -> %X; diff --git a/toolchain/check/testdata/as/overloaded.carbon b/toolchain/check/testdata/as/overloaded.carbon index 8212121495e51..e1c9bdb00ea7a 100644 --- a/toolchain/check/testdata/as/overloaded.carbon +++ b/toolchain/check/testdata/as/overloaded.carbon @@ -145,6 +145,7 @@ let n: i32 = ((4 as i32) as X) as i32; // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: .n = %.loc12 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Convert.2[%self.param_patt: %i32]() -> %return.param_patt: %X { diff --git a/toolchain/check/testdata/builtins/bool/eq.carbon b/toolchain/check/testdata/builtins/bool/eq.carbon index 082e5ecf25335..2ab91fbb71c83 100644 --- a/toolchain/check/testdata/builtins/bool/eq.carbon +++ b/toolchain/check/testdata/builtins/bool/eq.carbon @@ -191,6 +191,7 @@ var d: C(false == false) = True(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -379,6 +380,7 @@ var d: C(false == false) = True(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/bool/neq.carbon b/toolchain/check/testdata/builtins/bool/neq.carbon index bfa5a1df54902..eae44a7fb74c7 100644 --- a/toolchain/check/testdata/builtins/bool/neq.carbon +++ b/toolchain/check/testdata/builtins/bool/neq.carbon @@ -191,6 +191,7 @@ var d: C(false != false) = False(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -379,6 +380,7 @@ var d: C(false != false) = False(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/float/eq.carbon b/toolchain/check/testdata/builtins/float/eq.carbon index 9b4432e2bd0b3..6ac8791561b65 100644 --- a/toolchain/check/testdata/builtins/float/eq.carbon +++ b/toolchain/check/testdata/builtins/float/eq.carbon @@ -151,6 +151,7 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.eq"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%True // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @False { @@ -159,6 +160,7 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.eq"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%False // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Eq(%a.param_patt: f64, %b.param_patt: f64) -> bool = "float.eq"; diff --git a/toolchain/check/testdata/builtins/float/greater.carbon b/toolchain/check/testdata/builtins/float/greater.carbon index c3c8c1efd437e..11915d99fb8d0 100644 --- a/toolchain/check/testdata/builtins/float/greater.carbon +++ b/toolchain/check/testdata/builtins/float/greater.carbon @@ -170,6 +170,7 @@ fn RuntimeCall(a: f64, b: f64) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%True // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @False { @@ -178,6 +179,7 @@ fn RuntimeCall(a: f64, b: f64) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%False // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Greater(%a.param_patt: f64, %b.param_patt: f64) -> bool = "float.greater"; diff --git a/toolchain/check/testdata/builtins/float/greater_eq.carbon b/toolchain/check/testdata/builtins/float/greater_eq.carbon index 14d3f065fda14..2ed6fd3f0d175 100644 --- a/toolchain/check/testdata/builtins/float/greater_eq.carbon +++ b/toolchain/check/testdata/builtins/float/greater_eq.carbon @@ -170,6 +170,7 @@ fn RuntimeCall(a: f64, b: f64) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%True // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @False { @@ -178,6 +179,7 @@ fn RuntimeCall(a: f64, b: f64) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%False // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @GreaterEq(%a.param_patt: f64, %b.param_patt: f64) -> bool = "float.greater_eq"; diff --git a/toolchain/check/testdata/builtins/float/less.carbon b/toolchain/check/testdata/builtins/float/less.carbon index b921649b2643a..9d77499fae3da 100644 --- a/toolchain/check/testdata/builtins/float/less.carbon +++ b/toolchain/check/testdata/builtins/float/less.carbon @@ -170,6 +170,7 @@ fn RuntimeCall(a: f64, b: f64) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%True // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @False { @@ -178,6 +179,7 @@ fn RuntimeCall(a: f64, b: f64) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%False // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Less(%a.param_patt: f64, %b.param_patt: f64) -> bool = "float.less"; diff --git a/toolchain/check/testdata/builtins/float/less_eq.carbon b/toolchain/check/testdata/builtins/float/less_eq.carbon index 8e0d95c45775d..16c425e8d7663 100644 --- a/toolchain/check/testdata/builtins/float/less_eq.carbon +++ b/toolchain/check/testdata/builtins/float/less_eq.carbon @@ -170,6 +170,7 @@ fn RuntimeCall(a: f64, b: f64) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%True // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @False { @@ -178,6 +179,7 @@ fn RuntimeCall(a: f64, b: f64) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%False // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @LessEq(%a.param_patt: f64, %b.param_patt: f64) -> bool = "float.less_eq"; diff --git a/toolchain/check/testdata/builtins/float/neq.carbon b/toolchain/check/testdata/builtins/float/neq.carbon index 67782c3b17a5a..054fe931bb212 100644 --- a/toolchain/check/testdata/builtins/float/neq.carbon +++ b/toolchain/check/testdata/builtins/float/neq.carbon @@ -151,6 +151,7 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.neq"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%True // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @False { @@ -159,6 +160,7 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.neq"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%False // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Neq(%a.param_patt: f64, %b.param_patt: f64) -> bool = "float.neq"; diff --git a/toolchain/check/testdata/builtins/int/eq.carbon b/toolchain/check/testdata/builtins/int/eq.carbon index d8a3614bad6ea..3c540bd8bf6f7 100644 --- a/toolchain/check/testdata/builtins/int/eq.carbon +++ b/toolchain/check/testdata/builtins/int/eq.carbon @@ -153,6 +153,7 @@ fn WrongResult(a: i32, b: i32) -> i32 = "int.eq"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%True // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @False { @@ -161,6 +162,7 @@ fn WrongResult(a: i32, b: i32) -> i32 = "int.eq"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%False // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Eq.1(%a.param_patt: %i32, %b.param_patt: %i32) -> bool = "int.eq"; diff --git a/toolchain/check/testdata/builtins/int/greater.carbon b/toolchain/check/testdata/builtins/int/greater.carbon index 430c602d3043a..aade4ea87ddad 100644 --- a/toolchain/check/testdata/builtins/int/greater.carbon +++ b/toolchain/check/testdata/builtins/int/greater.carbon @@ -171,6 +171,7 @@ fn RuntimeCall(a: i32, b: i32) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%True // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @False { @@ -179,6 +180,7 @@ fn RuntimeCall(a: i32, b: i32) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%False // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Greater(%a.param_patt: %i32, %b.param_patt: %i32) -> bool = "int.greater"; diff --git a/toolchain/check/testdata/builtins/int/greater_eq.carbon b/toolchain/check/testdata/builtins/int/greater_eq.carbon index b1c2f176a697e..f2af49747f8a6 100644 --- a/toolchain/check/testdata/builtins/int/greater_eq.carbon +++ b/toolchain/check/testdata/builtins/int/greater_eq.carbon @@ -171,6 +171,7 @@ fn RuntimeCall(a: i32, b: i32) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%True // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @False { @@ -179,6 +180,7 @@ fn RuntimeCall(a: i32, b: i32) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%False // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @GreaterEq(%a.param_patt: %i32, %b.param_patt: %i32) -> bool = "int.greater_eq"; diff --git a/toolchain/check/testdata/builtins/int/less.carbon b/toolchain/check/testdata/builtins/int/less.carbon index 6948816cc661c..0ac5b9d4f2eed 100644 --- a/toolchain/check/testdata/builtins/int/less.carbon +++ b/toolchain/check/testdata/builtins/int/less.carbon @@ -171,6 +171,7 @@ fn RuntimeCall(a: i32, b: i32) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%True // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @False { @@ -179,6 +180,7 @@ fn RuntimeCall(a: i32, b: i32) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%False // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Less(%a.param_patt: %i32, %b.param_patt: %i32) -> bool = "int.less"; diff --git a/toolchain/check/testdata/builtins/int/less_eq.carbon b/toolchain/check/testdata/builtins/int/less_eq.carbon index 0febd2da77e53..01ad8102448fb 100644 --- a/toolchain/check/testdata/builtins/int/less_eq.carbon +++ b/toolchain/check/testdata/builtins/int/less_eq.carbon @@ -171,6 +171,7 @@ fn RuntimeCall(a: i32, b: i32) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%True // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @False { @@ -179,6 +180,7 @@ fn RuntimeCall(a: i32, b: i32) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%False // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @LessEq(%a.param_patt: %i32, %b.param_patt: %i32) -> bool = "int.less_eq"; diff --git a/toolchain/check/testdata/builtins/int/neq.carbon b/toolchain/check/testdata/builtins/int/neq.carbon index d189bd30ca352..966bbbe84d3c4 100644 --- a/toolchain/check/testdata/builtins/int/neq.carbon +++ b/toolchain/check/testdata/builtins/int/neq.carbon @@ -144,6 +144,7 @@ fn RuntimeCall(a: i32, b: i32) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%True // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @False { @@ -152,6 +153,7 @@ fn RuntimeCall(a: i32, b: i32) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%False // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Neq(%a.param_patt: %i32, %b.param_patt: %i32) -> bool = "int.neq"; diff --git a/toolchain/check/testdata/class/access_modifers.carbon b/toolchain/check/testdata/class/access_modifers.carbon index 14157472dd793..0bf8e775eb334 100644 --- a/toolchain/check/testdata/class/access_modifers.carbon +++ b/toolchain/check/testdata/class/access_modifers.carbon @@ -236,6 +236,7 @@ class A { // CHECK:STDOUT: .SomeInternalFunction [private] = %SomeInternalFunction.decl // CHECK:STDOUT: .Make = %Make.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @SomeInternalFunction() -> %i32 { @@ -334,6 +335,7 @@ class A { // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: .x [protected] = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { @@ -439,6 +441,7 @@ class A { // CHECK:STDOUT: .SomeInternalFunction [private] = %SomeInternalFunction.decl // CHECK:STDOUT: .Compute = %Compute.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @GetRadius[%self.param_patt: %Circle]() -> %i32 { @@ -528,6 +531,7 @@ class A { // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: .x = %x // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -608,6 +612,7 @@ class A { // CHECK:STDOUT: .x [protected] = %x // CHECK:STDOUT: .y [private] = %y // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -660,6 +665,7 @@ class A { // CHECK:STDOUT: .F [private] = %F.decl // CHECK:STDOUT: .G [private] = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { diff --git a/toolchain/check/testdata/class/adapter/adapt.carbon b/toolchain/check/testdata/class/adapter/adapt.carbon index 9799d4dfe38c8..c6e048fb0682a 100644 --- a/toolchain/check/testdata/class/adapter/adapt.carbon +++ b/toolchain/check/testdata/class/adapter/adapt.carbon @@ -93,6 +93,7 @@ fn F(a: AdaptNotExtend) { // CHECK:STDOUT: .a = %.loc5 // CHECK:STDOUT: .b = %.loc6 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @SomeClassAdapter { @@ -103,6 +104,7 @@ fn F(a: AdaptNotExtend) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%SomeClassAdapter // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @StructAdapter { @@ -117,6 +119,7 @@ fn F(a: AdaptNotExtend) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%StructAdapter // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_not_extend.carbon @@ -167,6 +170,7 @@ fn F(a: AdaptNotExtend) { // CHECK:STDOUT: .Self = constants.%Adapted // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AdaptNotExtend { @@ -177,6 +181,7 @@ fn F(a: AdaptNotExtend) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptNotExtend // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1(); diff --git a/toolchain/check/testdata/class/adapter/adapt_copy.carbon b/toolchain/check/testdata/class/adapter/adapt_copy.carbon index 4c36fadfdfbba..4b889c31257e0 100644 --- a/toolchain/check/testdata/class/adapter/adapt_copy.carbon +++ b/toolchain/check/testdata/class/adapter/adapt_copy.carbon @@ -178,6 +178,7 @@ fn H(a: AdaptNoncopyableIndirect) -> AdaptNoncopyableIndirect { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptCopyable // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%c.param_patt: %AdaptCopyable) -> %AdaptCopyable { @@ -282,6 +283,7 @@ fn H(a: AdaptNoncopyableIndirect) -> AdaptNoncopyableIndirect { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptTuple // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%c.param_patt: %AdaptTuple) -> %return.param_patt: %AdaptTuple { @@ -345,6 +347,7 @@ fn H(a: AdaptNoncopyableIndirect) -> AdaptNoncopyableIndirect { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Noncopyable // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AdaptNoncopyable { @@ -355,6 +358,7 @@ fn H(a: AdaptNoncopyableIndirect) -> AdaptNoncopyableIndirect { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptNoncopyable // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%a.param_patt: %AdaptNoncopyable) -> %return.param_patt: %AdaptNoncopyable { @@ -424,6 +428,7 @@ fn H(a: AdaptNoncopyableIndirect) -> AdaptNoncopyableIndirect { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Noncopyable // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AdaptNoncopyableIndirect { @@ -440,6 +445,7 @@ fn H(a: AdaptNoncopyableIndirect) -> AdaptNoncopyableIndirect { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptNoncopyableIndirect // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @H(%a.param_patt: %AdaptNoncopyableIndirect) -> %return.param_patt: %AdaptNoncopyableIndirect { diff --git a/toolchain/check/testdata/class/adapter/extend_adapt.carbon b/toolchain/check/testdata/class/adapter/extend_adapt.carbon index 3c624e91a6c7d..5f96d45c1ba4d 100644 --- a/toolchain/check/testdata/class/adapter/extend_adapt.carbon +++ b/toolchain/check/testdata/class/adapter/extend_adapt.carbon @@ -205,6 +205,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: .Self = constants.%SomeClassAdapter // CHECK:STDOUT: extend %SomeClass.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @SomeClass { @@ -232,6 +233,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: .StaticMemberFunction = %StaticMemberFunction.decl // CHECK:STDOUT: .AdapterMethod = %AdapterMethod.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @StaticMemberFunction(); @@ -312,6 +314,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: .Self = constants.%SomeClass // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @SomeClassAdapter { @@ -323,6 +326,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: .Self = constants.%SomeClassAdapter // CHECK:STDOUT: extend %SomeClass.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1[%self.param_patt: %SomeClass](); @@ -400,6 +404,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: .a = %.loc5 // CHECK:STDOUT: .b = %.loc6 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @SomeClassAdapter { @@ -411,6 +416,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: .Self = constants.%SomeClassAdapter // CHECK:STDOUT: extend %SomeClass.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%a.param_patt: %SomeClassAdapter) -> %i32 { @@ -479,6 +485,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: .Self = constants.%StructAdapter // CHECK:STDOUT: extend %struct_type.a.b // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%a.param_patt: %StructAdapter) -> %i32 { @@ -548,6 +555,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: .Self = constants.%TupleAdapter // CHECK:STDOUT: extend %.loc5_26 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%a.param_patt: %TupleAdapter) -> %i32 { @@ -637,6 +645,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: .Self = constants.%IntAdapter // CHECK:STDOUT: extend %.loc7_27.2 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @MakeInt(%N.param_patt: Core.IntLiteral) -> type = "int.make_type_signed"; diff --git a/toolchain/check/testdata/class/adapter/fail_adapt_bad_decl.carbon b/toolchain/check/testdata/class/adapter/fail_adapt_bad_decl.carbon index f0fa494924792..57e084d22d644 100644 --- a/toolchain/check/testdata/class/adapter/fail_adapt_bad_decl.carbon +++ b/toolchain/check/testdata/class/adapter/fail_adapt_bad_decl.carbon @@ -146,6 +146,7 @@ class C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Bad // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use(%b.param_patt: %Bad) { @@ -200,6 +201,7 @@ class C { // CHECK:STDOUT: .Self = constants.%Bad // CHECK:STDOUT: extend // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use(%b.param_patt: %Bad) { @@ -247,6 +249,7 @@ class C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%MultipleAdapts // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @MultipleAdaptsSameType { @@ -259,6 +262,7 @@ class C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%MultipleAdaptsSameType // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_bad_scope.carbon @@ -318,5 +322,6 @@ class C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .I = %I.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/adapter/fail_adapt_bad_type.carbon b/toolchain/check/testdata/class/adapter/fail_adapt_bad_type.carbon index 192c685596fd9..c85ea80d73bc8 100644 --- a/toolchain/check/testdata/class/adapter/fail_adapt_bad_type.carbon +++ b/toolchain/check/testdata/class/adapter/fail_adapt_bad_type.carbon @@ -59,5 +59,6 @@ class AdaptIncomplete { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptIncomplete // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/adapter/fail_adapt_modifiers.carbon b/toolchain/check/testdata/class/adapter/fail_adapt_modifiers.carbon index 9e34058cfb86a..65b1a941449b3 100644 --- a/toolchain/check/testdata/class/adapter/fail_adapt_modifiers.carbon +++ b/toolchain/check/testdata/class/adapter/fail_adapt_modifiers.carbon @@ -100,6 +100,7 @@ class C5 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C1 { @@ -110,6 +111,7 @@ class C5 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C2 { @@ -120,6 +122,7 @@ class C5 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C2 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C3 { @@ -130,6 +133,7 @@ class C5 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C3 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C4 { @@ -141,6 +145,7 @@ class C5 { // CHECK:STDOUT: .Self = constants.%C4 // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C5 { @@ -152,5 +157,6 @@ class C5 { // CHECK:STDOUT: .Self = constants.%C5 // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/adapter/fail_adapt_with_base.carbon b/toolchain/check/testdata/class/adapter/fail_adapt_with_base.carbon index 5d4067be65457..a428f4f7e2b6b 100644 --- a/toolchain/check/testdata/class/adapter/fail_adapt_with_base.carbon +++ b/toolchain/check/testdata/class/adapter/fail_adapt_with_base.carbon @@ -54,6 +54,7 @@ base class AdaptWithVirtual { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Simple // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AdaptWithVirtual { @@ -65,6 +66,7 @@ base class AdaptWithVirtual { // CHECK:STDOUT: .Self = constants.%AdaptWithVirtual // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: virtual fn @F(); diff --git a/toolchain/check/testdata/class/adapter/fail_adapt_with_subobjects.carbon b/toolchain/check/testdata/class/adapter/fail_adapt_with_subobjects.carbon index 85d278e74ab4c..af3f3a815dc1b 100644 --- a/toolchain/check/testdata/class/adapter/fail_adapt_with_subobjects.carbon +++ b/toolchain/check/testdata/class/adapter/fail_adapt_with_subobjects.carbon @@ -111,6 +111,7 @@ class AdaptWithBaseAndFields { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AdaptWithBase { @@ -125,6 +126,7 @@ class AdaptWithBaseAndFields { // CHECK:STDOUT: .base = %.loc15 // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: complete_type_witness = +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_adapt_with_fields.carbon @@ -169,6 +171,7 @@ class AdaptWithBaseAndFields { // CHECK:STDOUT: .Self = constants.%AdaptWithField // CHECK:STDOUT: .n = %.loc13 // CHECK:STDOUT: complete_type_witness = +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AdaptWithFields { @@ -191,6 +194,7 @@ class AdaptWithBaseAndFields { // CHECK:STDOUT: .b = %.loc26 // CHECK:STDOUT: .c = %.loc27 // CHECK:STDOUT: complete_type_witness = +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_adapt_with_base_and_fields.carbon @@ -231,6 +235,7 @@ class AdaptWithBaseAndFields { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AdaptWithBaseAndFields { @@ -249,5 +254,6 @@ class AdaptWithBaseAndFields { // CHECK:STDOUT: .n = %.loc8 // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: complete_type_witness = +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/adapter/init_adapt.carbon b/toolchain/check/testdata/class/adapter/init_adapt.carbon index db23ec1c7ff97..e2a892776f1cd 100644 --- a/toolchain/check/testdata/class/adapter/init_adapt.carbon +++ b/toolchain/check/testdata/class/adapter/init_adapt.carbon @@ -187,6 +187,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: .a = %.loc5 // CHECK:STDOUT: .b = %.loc6 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AdaptC { @@ -197,6 +198,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptC // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @MakeC() -> %C; @@ -351,6 +353,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: .a = %.loc5 // CHECK:STDOUT: .b = %.loc6 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AdaptC { @@ -361,6 +364,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AdaptC // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @MakeC() -> %C; diff --git a/toolchain/check/testdata/class/base.carbon b/toolchain/check/testdata/class/base.carbon index 1206470ba429d..18117c6de7e73 100644 --- a/toolchain/check/testdata/class/base.carbon +++ b/toolchain/check/testdata/class/base.carbon @@ -140,6 +140,7 @@ class Derived { // CHECK:STDOUT: .Self = constants.%Base // CHECK:STDOUT: .b = %.loc4 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -156,6 +157,7 @@ class Derived { // CHECK:STDOUT: .d = %.loc10 // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Make() -> %return.param_patt: %Derived { @@ -248,6 +250,7 @@ class Derived { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -261,5 +264,6 @@ class Derived { // CHECK:STDOUT: .Self = constants.%Derived // CHECK:STDOUT: .d = %.loc7 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/base_field.carbon b/toolchain/check/testdata/class/base_field.carbon index 52868facb66c3..2a5e4b2e571c4 100644 --- a/toolchain/check/testdata/class/base_field.carbon +++ b/toolchain/check/testdata/class/base_field.carbon @@ -99,6 +99,7 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: .b = %.loc13 // CHECK:STDOUT: .c = %.loc14 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -119,6 +120,7 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: .e = %.loc21 // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Access(%p.param_patt: %ptr.2) -> %ptr.3 { diff --git a/toolchain/check/testdata/class/base_function_unqualified.carbon b/toolchain/check/testdata/class/base_function_unqualified.carbon index 8532128eec6c5..556779c4317e0 100644 --- a/toolchain/check/testdata/class/base_function_unqualified.carbon +++ b/toolchain/check/testdata/class/base_function_unqualified.carbon @@ -69,6 +69,7 @@ fn Derived.H() { // CHECK:STDOUT: .Self = constants.%Base // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -85,6 +86,7 @@ fn Derived.H() { // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(); diff --git a/toolchain/check/testdata/class/base_method.carbon b/toolchain/check/testdata/class/base_method.carbon index 7e148f16e3722..a1e7e03c89db1 100644 --- a/toolchain/check/testdata/class/base_method.carbon +++ b/toolchain/check/testdata/class/base_method.carbon @@ -117,6 +117,7 @@ fn Call(p: Derived*) { // CHECK:STDOUT: .a = %.loc12 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -129,6 +130,7 @@ fn Call(p: Derived*) { // CHECK:STDOUT: .base = %.loc22 // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F[addr %self.param_patt: %ptr.1]() { diff --git a/toolchain/check/testdata/class/base_method_qualified.carbon b/toolchain/check/testdata/class/base_method_qualified.carbon index 44f6e73974989..ebf4b39e9d8b8 100644 --- a/toolchain/check/testdata/class/base_method_qualified.carbon +++ b/toolchain/check/testdata/class/base_method_qualified.carbon @@ -179,6 +179,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Base { @@ -217,6 +218,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1[%self.param_patt: %Base]() -> %i32; diff --git a/toolchain/check/testdata/class/base_method_shadow.carbon b/toolchain/check/testdata/class/base_method_shadow.carbon index 63cfe6d4e61c5..15e67d89de17a 100644 --- a/toolchain/check/testdata/class/base_method_shadow.carbon +++ b/toolchain/check/testdata/class/base_method_shadow.carbon @@ -131,6 +131,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -154,6 +155,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: extend %A.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -177,6 +179,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -189,6 +192,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: .base = %.loc26 // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1[addr %self.param_patt: %ptr.1](); diff --git a/toolchain/check/testdata/class/basic.carbon b/toolchain/check/testdata/class/basic.carbon index ec52c5abbfa8a..332892e185acc 100644 --- a/toolchain/check/testdata/class/basic.carbon +++ b/toolchain/check/testdata/class/basic.carbon @@ -138,6 +138,7 @@ fn Run() -> i32 { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: .k = %.loc18 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%n.param_patt: %i32) -> %i32 { diff --git a/toolchain/check/testdata/class/complete_in_member_fn.carbon b/toolchain/check/testdata/class/complete_in_member_fn.carbon index 50b7d737294c0..0f19f9f883713 100644 --- a/toolchain/check/testdata/class/complete_in_member_fn.carbon +++ b/toolchain/check/testdata/class/complete_in_member_fn.carbon @@ -69,6 +69,7 @@ class C { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .a = %.loc14 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%c.param_patt: %C) -> %i32 { diff --git a/toolchain/check/testdata/class/compound_field.carbon b/toolchain/check/testdata/class/compound_field.carbon index c0186b5d0d09a..48e3f1ec88db5 100644 --- a/toolchain/check/testdata/class/compound_field.carbon +++ b/toolchain/check/testdata/class/compound_field.carbon @@ -164,6 +164,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: .b = %.loc13 // CHECK:STDOUT: .c = %.loc14 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -184,6 +185,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: .e = %.loc21 // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @AccessDerived(%d.param_patt: %Derived) -> %i32 { diff --git a/toolchain/check/testdata/class/cross_package_import.carbon b/toolchain/check/testdata/class/cross_package_import.carbon index d2fbf9b2d7345..820e813a031f8 100644 --- a/toolchain/check/testdata/class/cross_package_import.carbon +++ b/toolchain/check/testdata/class/cross_package_import.carbon @@ -129,6 +129,7 @@ var c: Other.C = {}; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- other_extern.carbon @@ -224,6 +225,7 @@ var c: Other.C = {}; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -319,6 +321,7 @@ var c: Other.C = {}; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -372,6 +375,7 @@ var c: Other.C = {}; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/class/derived_to_base.carbon b/toolchain/check/testdata/class/derived_to_base.carbon index d21ea07f24b2c..f0d7e5d732e1e 100644 --- a/toolchain/check/testdata/class/derived_to_base.carbon +++ b/toolchain/check/testdata/class/derived_to_base.carbon @@ -203,6 +203,7 @@ fn ConvertInit() { // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: .a = %.loc12 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -219,6 +220,7 @@ fn ConvertInit() { // CHECK:STDOUT: .b = %.loc17 // CHECK:STDOUT: extend %A.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -235,6 +237,7 @@ fn ConvertInit() { // CHECK:STDOUT: .c = %.loc22 // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ConvertCToB(%p.param_patt: %ptr.4) -> %ptr.5 { diff --git a/toolchain/check/testdata/class/fail_abstract.carbon b/toolchain/check/testdata/class/fail_abstract.carbon index 7d5dd15499e90..2058383517b65 100644 --- a/toolchain/check/testdata/class/fail_abstract.carbon +++ b/toolchain/check/testdata/class/fail_abstract.carbon @@ -221,6 +221,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Abstract // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Contains { @@ -232,6 +233,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: .Self = constants.%Contains // CHECK:STDOUT: .a = %.loc15 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_abstract_var.carbon @@ -268,6 +270,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Abstract // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Var() { @@ -319,6 +322,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Abstract // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%a.param_patt: %Abstract) { @@ -362,6 +366,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Abstract // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Adapter { @@ -372,6 +377,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Adapter // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- define_and_call_abstract_param.carbon @@ -427,6 +433,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Abstract // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Param(%a.param_patt: %Abstract); @@ -494,6 +501,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Abstract // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -510,6 +518,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: .d = %.loc10 // CHECK:STDOUT: extend %Abstract.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Make() -> %return.param_patt: %Derived { @@ -577,6 +586,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Abstract // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -593,6 +603,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: .d = %.loc10 // CHECK:STDOUT: extend %Abstract.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Return(%a.param_patt: %Abstract) -> %return.param_patt: %Abstract { @@ -663,6 +674,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: .Self = constants.%Abstract // CHECK:STDOUT: .a = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -679,6 +691,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: .d = %.loc11 // CHECK:STDOUT: extend %Abstract.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Access(%d.param_patt: %Derived) -> %i32 { @@ -724,6 +737,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Abstract // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -779,6 +793,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Abstract // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ReturnAbstract() -> %Abstract; diff --git a/toolchain/check/testdata/class/fail_addr_not_self.carbon b/toolchain/check/testdata/class/fail_addr_not_self.carbon index 17375149f2a66..3675aa092f24b 100644 --- a/toolchain/check/testdata/class/fail_addr_not_self.carbon +++ b/toolchain/check/testdata/class/fail_addr_not_self.carbon @@ -78,6 +78,7 @@ class Class { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%a.loc16_13.2: %ptr) { diff --git a/toolchain/check/testdata/class/fail_addr_self.carbon b/toolchain/check/testdata/class/fail_addr_self.carbon index ee4409ee6c14b..e2a17f3b75862 100644 --- a/toolchain/check/testdata/class/fail_addr_self.carbon +++ b/toolchain/check/testdata/class/fail_addr_self.carbon @@ -107,6 +107,7 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1[addr %self.param_patt: %ptr.1](); diff --git a/toolchain/check/testdata/class/fail_base_bad_type.carbon b/toolchain/check/testdata/class/fail_base_bad_type.carbon index a8507308fa66a..c25d8a2fa9ee2 100644 --- a/toolchain/check/testdata/class/fail_base_bad_type.carbon +++ b/toolchain/check/testdata/class/fail_base_bad_type.carbon @@ -231,6 +231,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: .base = %.loc9 // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @AccessMemberWithInvalidBaseError(%p.param_patt: %ptr) -> %i32 { @@ -297,6 +298,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: .base = %.loc12_18 // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @AccessMemberWithInvalidBasNonType(%p.param_patt: %ptr) -> %i32 { @@ -385,6 +387,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: .base = %.loc9 // CHECK:STDOUT: extend %i32 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ConvertToBadBasei32(%p.param_patt: %ptr.1) -> %ptr.2 { @@ -484,6 +487,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @DeriveFromTuple { @@ -498,6 +502,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: .base = %.loc11_23 // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ConvertToBadBaseTuple(%p.param_patt: %ptr.2) -> %ptr.3 { @@ -598,6 +603,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: .base = %.loc11 // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ConvertToBadBaseStruct(%p.param_patt: %ptr.2) -> %ptr.1 { @@ -694,6 +700,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: .base = %.loc18 // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ConvertToBadBaseIncomplete(%p.param_patt: %ptr.1) -> %ptr.2 { @@ -811,6 +818,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: .Self = constants.%Final // CHECK:STDOUT: .a = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @DeriveFromFinal { @@ -823,6 +831,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 { // CHECK:STDOUT: .base = %.loc13 // CHECK:STDOUT: extend %Final.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ConvertToBadBaseFinal(%p.param_patt: %ptr.2) -> %ptr.3 { diff --git a/toolchain/check/testdata/class/fail_base_method_define.carbon b/toolchain/check/testdata/class/fail_base_method_define.carbon index bb1bc1b3ca43d..c316d7bc0a00e 100644 --- a/toolchain/check/testdata/class/fail_base_method_define.carbon +++ b/toolchain/check/testdata/class/fail_base_method_define.carbon @@ -82,6 +82,7 @@ fn D.C.F() {} // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -92,6 +93,7 @@ fn D.C.F() {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -105,6 +107,7 @@ fn D.C.F() {} // CHECK:STDOUT: .F = file.%F.decl // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1(); diff --git a/toolchain/check/testdata/class/fail_base_misplaced.carbon b/toolchain/check/testdata/class/fail_base_misplaced.carbon index fbd0ce4c4fae9..72581c207657f 100644 --- a/toolchain/check/testdata/class/fail_base_misplaced.carbon +++ b/toolchain/check/testdata/class/fail_base_misplaced.carbon @@ -43,6 +43,7 @@ fn F() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { diff --git a/toolchain/check/testdata/class/fail_base_modifiers.carbon b/toolchain/check/testdata/class/fail_base_modifiers.carbon index 21ac89ffac722..dd887848b2d38 100644 --- a/toolchain/check/testdata/class/fail_base_modifiers.carbon +++ b/toolchain/check/testdata/class/fail_base_modifiers.carbon @@ -99,6 +99,7 @@ class C4 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C1 { @@ -111,6 +112,7 @@ class C4 { // CHECK:STDOUT: .base = %.loc18 // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C2 { @@ -122,6 +124,7 @@ class C4 { // CHECK:STDOUT: .Self = constants.%C2 // CHECK:STDOUT: .base = %.loc30 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C3 { @@ -134,6 +137,7 @@ class C4 { // CHECK:STDOUT: .base = %.loc41 // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C4 { @@ -146,5 +150,6 @@ class C4 { // CHECK:STDOUT: .base = %.loc51 // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_base_no_extend.carbon b/toolchain/check/testdata/class/fail_base_no_extend.carbon index 42e7cb6c04b50..0991253b970b3 100644 --- a/toolchain/check/testdata/class/fail_base_no_extend.carbon +++ b/toolchain/check/testdata/class/fail_base_no_extend.carbon @@ -53,6 +53,7 @@ class C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -64,5 +65,6 @@ class C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .base = %.loc17 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_base_repeated.carbon b/toolchain/check/testdata/class/fail_base_repeated.carbon index 02f483a4eb37d..8e361f86e126b 100644 --- a/toolchain/check/testdata/class/fail_base_repeated.carbon +++ b/toolchain/check/testdata/class/fail_base_repeated.carbon @@ -78,6 +78,7 @@ class D { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B2 { @@ -86,6 +87,7 @@ class D { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B2 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -99,6 +101,7 @@ class D { // CHECK:STDOUT: .base = %.loc15 // CHECK:STDOUT: extend %B1.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -112,5 +115,6 @@ class D { // CHECK:STDOUT: .base = %.loc28 // CHECK:STDOUT: extend %B1.ref.loc28 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_base_unbound.carbon b/toolchain/check/testdata/class/fail_base_unbound.carbon index 76b1ad017bdbe..9ea3477d54b08 100644 --- a/toolchain/check/testdata/class/fail_base_unbound.carbon +++ b/toolchain/check/testdata/class/fail_base_unbound.carbon @@ -57,6 +57,7 @@ let b: B = C.base; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -69,6 +70,7 @@ let b: B = C.base; // CHECK:STDOUT: .base = %.loc14 // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/class/fail_compound_type_mismatch.carbon b/toolchain/check/testdata/class/fail_compound_type_mismatch.carbon index 6cddd1cf7dc85..e74ed8053ef13 100644 --- a/toolchain/check/testdata/class/fail_compound_type_mismatch.carbon +++ b/toolchain/check/testdata/class/fail_compound_type_mismatch.carbon @@ -88,6 +88,7 @@ fn AccessBInA(a: A) -> i32 { // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: .a = %.loc12 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -100,6 +101,7 @@ fn AccessBInA(a: A) -> i32 { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: .b = %.loc16 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @AccessBInA(%a.param_patt: %A) -> %i32 { diff --git a/toolchain/check/testdata/class/fail_convert_to_invalid.carbon b/toolchain/check/testdata/class/fail_convert_to_invalid.carbon index 8243ac5840d96..e97721352fda3 100644 --- a/toolchain/check/testdata/class/fail_convert_to_invalid.carbon +++ b/toolchain/check/testdata/class/fail_convert_to_invalid.carbon @@ -63,6 +63,7 @@ fn Make() -> C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .a = %.loc15 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Make() -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/class/fail_derived_to_base.carbon b/toolchain/check/testdata/class/fail_derived_to_base.carbon index a4cbf0c1d80ab..a2f641f1b0677 100644 --- a/toolchain/check/testdata/class/fail_derived_to_base.carbon +++ b/toolchain/check/testdata/class/fail_derived_to_base.carbon @@ -133,6 +133,7 @@ fn ConvertIncomplete(p: Incomplete*) -> A2* { return p; } // CHECK:STDOUT: .Self = constants.%A1 // CHECK:STDOUT: .a = %.loc12 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A2 { @@ -145,6 +146,7 @@ fn ConvertIncomplete(p: Incomplete*) -> A2* { return p; } // CHECK:STDOUT: .Self = constants.%A2 // CHECK:STDOUT: .a = %.loc16 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B2 { @@ -161,6 +163,7 @@ fn ConvertIncomplete(p: Incomplete*) -> A2* { return p; } // CHECK:STDOUT: .b = %.loc21 // CHECK:STDOUT: extend %A2.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Incomplete; diff --git a/toolchain/check/testdata/class/fail_extend_cycle.carbon b/toolchain/check/testdata/class/fail_extend_cycle.carbon index e984c9946f9b5..2b7faab55fda0 100644 --- a/toolchain/check/testdata/class/fail_extend_cycle.carbon +++ b/toolchain/check/testdata/class/fail_extend_cycle.carbon @@ -70,6 +70,7 @@ base class A { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -82,6 +83,7 @@ base class A { // CHECK:STDOUT: .base = %.loc16 // CHECK:STDOUT: extend %A.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @.1 { @@ -97,5 +99,6 @@ base class A { // CHECK:STDOUT: .c = %.loc31 // CHECK:STDOUT: extend %A.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_field_modifiers.carbon b/toolchain/check/testdata/class/fail_field_modifiers.carbon index 45a26d9633d07..3e5c0ce12d305 100644 --- a/toolchain/check/testdata/class/fail_field_modifiers.carbon +++ b/toolchain/check/testdata/class/fail_field_modifiers.carbon @@ -111,5 +111,6 @@ class Class { // CHECK:STDOUT: .l = %l // CHECK:STDOUT: .m = %m // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_generic_method.carbon b/toolchain/check/testdata/class/fail_generic_method.carbon index a29eab64d3a95..f7c2feb3118b4 100644 --- a/toolchain/check/testdata/class/fail_generic_method.carbon +++ b/toolchain/check/testdata/class/fail_generic_method.carbon @@ -130,6 +130,7 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: .a = %.loc12 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type.loc14_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_import_misuses.carbon b/toolchain/check/testdata/class/fail_import_misuses.carbon index 2ec2f5fb8e6d9..991651a7713ec 100644 --- a/toolchain/check/testdata/class/fail_import_misuses.carbon +++ b/toolchain/check/testdata/class/fail_import_misuses.carbon @@ -76,6 +76,7 @@ var a: Incomplete; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Empty // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Incomplete; @@ -120,6 +121,7 @@ var a: Incomplete; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @.1 { @@ -128,6 +130,7 @@ var a: Incomplete; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Incomplete [from "a.carbon"]; diff --git a/toolchain/check/testdata/class/fail_incomplete.carbon b/toolchain/check/testdata/class/fail_incomplete.carbon index 982296f8646ad..43af2a020420e 100644 --- a/toolchain/check/testdata/class/fail_incomplete.carbon +++ b/toolchain/check/testdata/class/fail_incomplete.carbon @@ -363,6 +363,7 @@ class C { // CHECK:STDOUT: .Self = constants.%IncompleteAddrSelf // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @.1() { @@ -481,5 +482,6 @@ class C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .c = %.loc11 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_init.carbon b/toolchain/check/testdata/class/fail_init.carbon index f713a96dec8f3..a4667172cbae7 100644 --- a/toolchain/check/testdata/class/fail_init.carbon +++ b/toolchain/check/testdata/class/fail_init.carbon @@ -90,6 +90,7 @@ fn F() { // CHECK:STDOUT: .a = %.loc12 // CHECK:STDOUT: .b = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { diff --git a/toolchain/check/testdata/class/fail_init_as_inplace.carbon b/toolchain/check/testdata/class/fail_init_as_inplace.carbon index b25bb19094bf6..ccaf7735a7b6f 100644 --- a/toolchain/check/testdata/class/fail_init_as_inplace.carbon +++ b/toolchain/check/testdata/class/fail_init_as_inplace.carbon @@ -101,6 +101,7 @@ fn F() { // CHECK:STDOUT: .a = %.loc12 // CHECK:STDOUT: .b = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%p.param_patt: %ptr.1); diff --git a/toolchain/check/testdata/class/fail_memaccess_category.carbon b/toolchain/check/testdata/class/fail_memaccess_category.carbon index 2fe95cf72eb75..763ddd0c20b32 100644 --- a/toolchain/check/testdata/class/fail_memaccess_category.carbon +++ b/toolchain/check/testdata/class/fail_memaccess_category.carbon @@ -106,6 +106,7 @@ fn F(s: {.a: A}, b: B) { // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -117,6 +118,7 @@ fn F(s: {.a: A}, b: B) { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: .a = %.loc16 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1[addr %self.param_patt: %ptr.1](); diff --git a/toolchain/check/testdata/class/fail_member_of_let.carbon b/toolchain/check/testdata/class/fail_member_of_let.carbon index ef0e209f2ff32..c608f77ec3db3 100644 --- a/toolchain/check/testdata/class/fail_member_of_let.carbon +++ b/toolchain/check/testdata/class/fail_member_of_let.carbon @@ -74,6 +74,7 @@ fn T.F() {} // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %i32; diff --git a/toolchain/check/testdata/class/fail_method.carbon b/toolchain/check/testdata/class/fail_method.carbon index ea19c923e1e0e..7e2fc488cdd3e 100644 --- a/toolchain/check/testdata/class/fail_method.carbon +++ b/toolchain/check/testdata/class/fail_method.carbon @@ -107,6 +107,7 @@ fn F(c: Class) { // CHECK:STDOUT: .NoSelf = %NoSelf.decl // CHECK:STDOUT: .WithSelf = %WithSelf.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @NoSelf(); diff --git a/toolchain/check/testdata/class/fail_method_modifiers.carbon b/toolchain/check/testdata/class/fail_method_modifiers.carbon index 15513e95bfdca..f167fcf678cfe 100644 --- a/toolchain/check/testdata/class/fail_method_modifiers.carbon +++ b/toolchain/check/testdata/class/fail_method_modifiers.carbon @@ -119,6 +119,7 @@ base class BaseClass { // CHECK:STDOUT: .Abstract = %Abstract.decl // CHECK:STDOUT: .Virtual = %Virtual.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AbstractClass { @@ -145,6 +146,7 @@ base class BaseClass { // CHECK:STDOUT: .Default = %Default.decl // CHECK:STDOUT: .Final = %Final.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @BaseClass { @@ -162,6 +164,7 @@ base class BaseClass { // CHECK:STDOUT: .Self = constants.%BaseClass // CHECK:STDOUT: .Abstract = %Abstract.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Abstract.1[%self.param_patt: %FinalClass](); diff --git a/toolchain/check/testdata/class/fail_method_redefinition.carbon b/toolchain/check/testdata/class/fail_method_redefinition.carbon index 4336edc648cb5..036d806e44f6e 100644 --- a/toolchain/check/testdata/class/fail_method_redefinition.carbon +++ b/toolchain/check/testdata/class/fail_method_redefinition.carbon @@ -54,6 +54,7 @@ class Class { // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: .F = %F.decl.loc12 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { diff --git a/toolchain/check/testdata/class/fail_modifiers.carbon b/toolchain/check/testdata/class/fail_modifiers.carbon index dace1ba997719..73d3b341470b6 100644 --- a/toolchain/check/testdata/class/fail_modifiers.carbon +++ b/toolchain/check/testdata/class/fail_modifiers.carbon @@ -115,6 +115,7 @@ fn AbstractWithDefinition.G() { // CHECK:STDOUT: %G.type: type = fn_type @G [template] // CHECK:STDOUT: %G: %G.type = struct_value () [template] // CHECK:STDOUT: %ptr: type = ptr_type [template] +// CHECK:STDOUT: %.1: = vtable (%F, %G) [template] // CHECK:STDOUT: %struct_type.vptr: type = struct_type {.: %ptr} [template] // CHECK:STDOUT: %complete_type.2: = complete_type_witness %struct_type.vptr [template] // CHECK:STDOUT: } @@ -166,6 +167,7 @@ fn AbstractWithDefinition.G() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%TwoAbstract // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Virtual { @@ -174,6 +176,7 @@ fn AbstractWithDefinition.G() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Virtual // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @WrongOrder { @@ -182,6 +185,7 @@ fn AbstractWithDefinition.G() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%WrongOrder // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AbstractAndBase { @@ -190,11 +194,13 @@ fn AbstractWithDefinition.G() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AbstractAndBase // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AbstractWithDefinition { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {} +// CHECK:STDOUT: %.loc92: = vtable (%F.decl, %G.decl) [template = constants.%.1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr [template = constants.%complete_type.2] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -202,6 +208,7 @@ fn AbstractWithDefinition.G() { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = %.loc92 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: abstract fn @F() { diff --git a/toolchain/check/testdata/class/fail_out_of_line_decl.carbon b/toolchain/check/testdata/class/fail_out_of_line_decl.carbon index 9ae3314bf4e9e..5ca0226f766ac 100644 --- a/toolchain/check/testdata/class/fail_out_of_line_decl.carbon +++ b/toolchain/check/testdata/class/fail_out_of_line_decl.carbon @@ -49,6 +49,7 @@ fn C.F() {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .F = file.%F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { diff --git a/toolchain/check/testdata/class/fail_redeclaration_scope.carbon b/toolchain/check/testdata/class/fail_redeclaration_scope.carbon index 7fee47768a63b..260d3cb987f19 100644 --- a/toolchain/check/testdata/class/fail_redeclaration_scope.carbon +++ b/toolchain/check/testdata/class/fail_redeclaration_scope.carbon @@ -68,6 +68,7 @@ class Y { // CHECK:STDOUT: .Self = constants.%A.1 // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @X { @@ -79,6 +80,7 @@ class Y { // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: .A = %A.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A.2 { @@ -89,6 +91,7 @@ class Y { // CHECK:STDOUT: .Self = constants.%A.2 // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B.1 { @@ -97,6 +100,7 @@ class Y { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B.2; @@ -108,6 +112,7 @@ class Y { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Y // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @.1 { @@ -116,5 +121,6 @@ class Y { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_redefinition.carbon b/toolchain/check/testdata/class/fail_redefinition.carbon index 35f2b6d4ebf08..771e47e239dfa 100644 --- a/toolchain/check/testdata/class/fail_redefinition.carbon +++ b/toolchain/check/testdata/class/fail_redefinition.carbon @@ -99,6 +99,7 @@ fn Class.I() {} // CHECK:STDOUT: .I = %I.decl // CHECK:STDOUT: .G = file.%G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @.1 { @@ -113,6 +114,7 @@ fn Class.I() {} // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: .I = %I.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { diff --git a/toolchain/check/testdata/class/fail_scope.carbon b/toolchain/check/testdata/class/fail_scope.carbon index 634f57c17370a..4f9adb31b9762 100644 --- a/toolchain/check/testdata/class/fail_scope.carbon +++ b/toolchain/check/testdata/class/fail_scope.carbon @@ -87,6 +87,7 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %i32 { diff --git a/toolchain/check/testdata/class/fail_self.carbon b/toolchain/check/testdata/class/fail_self.carbon index f811759befd35..a1427dbbc3512 100644 --- a/toolchain/check/testdata/class/fail_self.carbon +++ b/toolchain/check/testdata/class/fail_self.carbon @@ -141,6 +141,7 @@ fn CallWrongSelf(ws: WrongSelf) { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @WrongSelf { @@ -158,6 +159,7 @@ fn CallWrongSelf(ws: WrongSelf) { // CHECK:STDOUT: .Self = constants.%WrongSelf // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1(%self.param_patt: %Class) { diff --git a/toolchain/check/testdata/class/fail_self_param.carbon b/toolchain/check/testdata/class/fail_self_param.carbon index 9c63a698b3a09..2116935b720c3 100644 --- a/toolchain/check/testdata/class/fail_self_param.carbon +++ b/toolchain/check/testdata/class/fail_self_param.carbon @@ -64,6 +64,7 @@ var v: C(0); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_self_type_member.carbon b/toolchain/check/testdata/class/fail_self_type_member.carbon index ce7510e8cf3fc..61bcc9405dc74 100644 --- a/toolchain/check/testdata/class/fail_self_type_member.carbon +++ b/toolchain/check/testdata/class/fail_self_type_member.carbon @@ -49,6 +49,7 @@ fn F() -> bool { // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: .b = %.loc12_8 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> bool { diff --git a/toolchain/check/testdata/class/fail_todo_local_class.carbon b/toolchain/check/testdata/class/fail_todo_local_class.carbon index 39c8fc2aa61c9..14b9eb04e9dc8 100644 --- a/toolchain/check/testdata/class/fail_todo_local_class.carbon +++ b/toolchain/check/testdata/class/fail_todo_local_class.carbon @@ -46,6 +46,7 @@ class A { // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { diff --git a/toolchain/check/testdata/class/fail_unbound_field.carbon b/toolchain/check/testdata/class/fail_unbound_field.carbon index 3c28b48a51fb6..5a8333d80264c 100644 --- a/toolchain/check/testdata/class/fail_unbound_field.carbon +++ b/toolchain/check/testdata/class/fail_unbound_field.carbon @@ -88,6 +88,7 @@ fn G() -> i32 { // CHECK:STDOUT: .field = %.loc12 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %i32 { diff --git a/toolchain/check/testdata/class/fail_unknown_member.carbon b/toolchain/check/testdata/class/fail_unknown_member.carbon index f381b0f3297d3..4611d37fd2a43 100644 --- a/toolchain/check/testdata/class/fail_unknown_member.carbon +++ b/toolchain/check/testdata/class/fail_unknown_member.carbon @@ -75,6 +75,7 @@ fn G(c: Class) -> i32 { // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: .n = %.loc12 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%c.param_patt: %Class) -> %i32 { diff --git a/toolchain/check/testdata/class/field_access.carbon b/toolchain/check/testdata/class/field_access.carbon index e237f048eebc9..1b8293a8fed5e 100644 --- a/toolchain/check/testdata/class/field_access.carbon +++ b/toolchain/check/testdata/class/field_access.carbon @@ -80,6 +80,7 @@ fn Run() { // CHECK:STDOUT: .j = %.loc12 // CHECK:STDOUT: .k = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { diff --git a/toolchain/check/testdata/class/field_access_in_value.carbon b/toolchain/check/testdata/class/field_access_in_value.carbon index 748ddba84a38b..fb41961a99d61 100644 --- a/toolchain/check/testdata/class/field_access_in_value.carbon +++ b/toolchain/check/testdata/class/field_access_in_value.carbon @@ -81,6 +81,7 @@ fn Test() { // CHECK:STDOUT: .j = %.loc12 // CHECK:STDOUT: .k = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Test() { diff --git a/toolchain/check/testdata/class/generic/adapt.carbon b/toolchain/check/testdata/class/generic/adapt.carbon index fbd77d1ae7675..7678e28a75e17 100644 --- a/toolchain/check/testdata/class/generic/adapt.carbon +++ b/toolchain/check/testdata/class/generic/adapt.carbon @@ -205,6 +205,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -219,6 +220,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Adapter // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Access(%a.param_patt: %Adapter) -> %i32 { @@ -326,6 +328,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.12 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.11 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(constants.%T: type) [from "adapt_specific_type.carbon"] { @@ -344,6 +347,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: .Self = imports.%import_ref.8 // CHECK:STDOUT: .x = imports.%import_ref.9 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -467,6 +471,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -482,6 +487,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: .Self = constants.%Adapter // CHECK:STDOUT: extend %C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Access(%a.param_patt: %Adapter) -> %i32 { @@ -580,6 +586,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: .x = %.loc8 // CHECK:STDOUT: complete_type_witness = %complete_type.loc9_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -595,6 +602,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: .Self = constants.%Adapter // CHECK:STDOUT: extend %C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { @@ -686,6 +694,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: .Self = imports.%import_ref.11 // CHECK:STDOUT: extend imports.%import_ref.12 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.10 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(constants.%T: type) [from "extend_adapt_specific_type_library.carbon"] { @@ -704,6 +713,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: .Self = imports.%import_ref.7 // CHECK:STDOUT: .x = imports.%import_ref.8 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.6 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -812,6 +822,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Adapter.1 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -937,6 +948,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -950,6 +962,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .n = %.loc11 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ImportedConvert(%a.param_patt: %Adapter.2) -> %i32 { diff --git a/toolchain/check/testdata/class/generic/base_is_generic.carbon b/toolchain/check/testdata/class/generic/base_is_generic.carbon index e73a3bf47288d..db897625abb6d 100644 --- a/toolchain/check/testdata/class/generic/base_is_generic.carbon +++ b/toolchain/check/testdata/class/generic/base_is_generic.carbon @@ -176,6 +176,7 @@ fn H() { // CHECK:STDOUT: .Self = constants.%Base.1 // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -189,6 +190,7 @@ fn H() { // CHECK:STDOUT: .Self = constants.%Param // CHECK:STDOUT: .y = %.loc9 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -203,6 +205,7 @@ fn H() { // CHECK:STDOUT: .base = %.loc13 // CHECK:STDOUT: extend %Base // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @DoubleFieldAccess(%d.param_patt: %Derived) -> %i32 { @@ -319,6 +322,7 @@ fn H() { // CHECK:STDOUT: .base = imports.%import_ref.17 // CHECK:STDOUT: extend imports.%import_ref.18 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.15 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Param [from "extend_generic_base.carbon"] { @@ -326,6 +330,7 @@ fn H() { // CHECK:STDOUT: .Self = imports.%import_ref.9 // CHECK:STDOUT: .y = imports.%import_ref.10 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Base(constants.%T: type) [from "extend_generic_base.carbon"] { @@ -344,6 +349,7 @@ fn H() { // CHECK:STDOUT: .Self = imports.%import_ref.12 // CHECK:STDOUT: .x = imports.%import_ref.13 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.11 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -441,6 +447,7 @@ fn H() { // CHECK:STDOUT: .base = %.loc8 // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -452,6 +459,7 @@ fn H() { // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { @@ -579,6 +587,7 @@ fn H() { // CHECK:STDOUT: .Self = constants.%X.1 // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -606,6 +615,7 @@ fn H() { // CHECK:STDOUT: .base = %.loc9 // CHECK:STDOUT: extend %X.loc9_19.1 // CHECK:STDOUT: complete_type_witness = %complete_type.loc10_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -811,6 +821,7 @@ fn H() { // CHECK:STDOUT: .base = imports.%import_ref.14 // CHECK:STDOUT: extend imports.%import_ref.15 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.12 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -827,6 +838,7 @@ fn H() { // CHECK:STDOUT: .Self = imports.%import_ref.9 // CHECK:STDOUT: .G = imports.%import_ref.10 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/basic.carbon b/toolchain/check/testdata/class/generic/basic.carbon index 8f57ad7b575e6..4b05498a9b735 100644 --- a/toolchain/check/testdata/class/generic/basic.carbon +++ b/toolchain/check/testdata/class/generic/basic.carbon @@ -135,6 +135,7 @@ class Declaration(T:! type); // CHECK:STDOUT: .GetValue = %GetValue.decl // CHECK:STDOUT: .k = %.loc21 // CHECK:STDOUT: complete_type_witness = %complete_type.loc22_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/call.carbon b/toolchain/check/testdata/class/generic/call.carbon index 377985bd09b08..f26a74a0b6d9f 100644 --- a/toolchain/check/testdata/class/generic/call.carbon +++ b/toolchain/check/testdata/class/generic/call.carbon @@ -190,6 +190,7 @@ class Outer(T:! type) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -285,6 +286,7 @@ class Outer(T:! type) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -366,6 +368,7 @@ class Outer(T:! type) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -447,6 +450,7 @@ class Outer(T:! type) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -546,6 +550,7 @@ class Outer(T:! type) { // CHECK:STDOUT: .Self = constants.%Outer.1 // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -616,6 +621,7 @@ class Outer(T:! type) { // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .D = %D.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/complete_in_conversion.carbon b/toolchain/check/testdata/class/generic/complete_in_conversion.carbon index 25f7c6f0cf00e..4af0c4b39e845 100644 --- a/toolchain/check/testdata/class/generic/complete_in_conversion.carbon +++ b/toolchain/check/testdata/class/generic/complete_in_conversion.carbon @@ -149,6 +149,7 @@ fn F(a: A(0)*) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @A(%N.loc6_9.1: %i32) { @@ -190,6 +191,7 @@ fn F(a: A(0)*) { // CHECK:STDOUT: .n = %.loc12_8 // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type.loc13_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/field.carbon b/toolchain/check/testdata/class/generic/field.carbon index 8bf84d3bab364..fec4f2df743c5 100644 --- a/toolchain/check/testdata/class/generic/field.carbon +++ b/toolchain/check/testdata/class/generic/field.carbon @@ -162,6 +162,7 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: .Self = constants.%Class.1 // CHECK:STDOUT: .x = %.loc12 // CHECK:STDOUT: complete_type_witness = %complete_type.loc13_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index 42a27cb9d555c..1582213f6cb8a 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -195,6 +195,7 @@ class Class(U:! type) { // CHECK:STDOUT: .n = %.loc7 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -345,6 +346,7 @@ class Class(U:! type) { // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -364,6 +366,7 @@ class Class(U:! type) { // CHECK:STDOUT: .n = imports.%import_ref.195 // CHECK:STDOUT: .F = imports.%import_ref.196 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.193 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -512,6 +515,7 @@ class Class(U:! type) { // CHECK:STDOUT: .n = imports.%import_ref.10 // CHECK:STDOUT: .F = imports.%import_ref.11 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -669,6 +673,7 @@ class Class(U:! type) { // CHECK:STDOUT: .n = imports.%import_ref.9 // CHECK:STDOUT: .F = imports.%import_ref.10 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -799,6 +804,7 @@ class Class(U:! type) { // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: .x = %.loc16 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/init.carbon b/toolchain/check/testdata/class/generic/init.carbon index bbe942e6c1289..eeb95cd7b284e 100644 --- a/toolchain/check/testdata/class/generic/init.carbon +++ b/toolchain/check/testdata/class/generic/init.carbon @@ -146,6 +146,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: .Self = constants.%Class.1 // CHECK:STDOUT: .k = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -333,6 +334,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Adapt.1 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_access.carbon b/toolchain/check/testdata/class/generic/member_access.carbon index b723c18aab9fa..339dce22bedee 100644 --- a/toolchain/check/testdata/class/generic/member_access.carbon +++ b/toolchain/check/testdata/class/generic/member_access.carbon @@ -228,6 +228,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: .Get = %Get.decl // CHECK:STDOUT: .GetAddr = %GetAddr.decl // CHECK:STDOUT: complete_type_witness = %complete_type.loc8_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -469,6 +470,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: .Make = %Make.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_inline.carbon b/toolchain/check/testdata/class/generic/member_inline.carbon index daa2d24f0400e..976f50c669995 100644 --- a/toolchain/check/testdata/class/generic/member_inline.carbon +++ b/toolchain/check/testdata/class/generic/member_inline.carbon @@ -132,6 +132,7 @@ class C(T:! type) { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: .n = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type.loc14_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -256,6 +257,7 @@ class C(T:! type) { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .data = %.loc11_11 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_lookup.carbon b/toolchain/check/testdata/class/generic/member_lookup.carbon index 4fdc4a9547084..8de7e95312492 100644 --- a/toolchain/check/testdata/class/generic/member_lookup.carbon +++ b/toolchain/check/testdata/class/generic/member_lookup.carbon @@ -220,6 +220,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: .Self = constants.%Base.1 // CHECK:STDOUT: .b = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -252,6 +253,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: .d = %.loc10 // CHECK:STDOUT: extend %Base.loc9_22.1 // CHECK:STDOUT: complete_type_witness = %complete_type.loc11_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -539,6 +541,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: .Self = constants.%Base.1 // CHECK:STDOUT: .b = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -571,6 +574,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: .d = %.loc10 // CHECK:STDOUT: extend %Base.loc9_22.1 // CHECK:STDOUT: complete_type_witness = %complete_type.loc11_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_out_of_line.carbon b/toolchain/check/testdata/class/generic/member_out_of_line.carbon index a0b5b04009059..28472998fbae7 100644 --- a/toolchain/check/testdata/class/generic/member_out_of_line.carbon +++ b/toolchain/check/testdata/class/generic/member_out_of_line.carbon @@ -230,6 +230,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: .n = %.loc7 // CHECK:STDOUT: complete_type_witness = %complete_type.loc8_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -379,6 +380,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -412,6 +414,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -503,6 +506,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: .Self = constants.%NotGeneric // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(); @@ -579,6 +583,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: .Self = constants.%Generic // CHECK:STDOUT: .TooFew = %TooFew.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -663,6 +668,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: .Self = constants.%Generic // CHECK:STDOUT: .TooMany = %TooMany.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -764,6 +770,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: .Self = constants.%Generic // CHECK:STDOUT: .WrongType = %WrongType.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/method_deduce.carbon b/toolchain/check/testdata/class/generic/method_deduce.carbon index dcf0429e1f2d9..6dda18ebf3c99 100644 --- a/toolchain/check/testdata/class/generic/method_deduce.carbon +++ b/toolchain/check/testdata/class/generic/method_deduce.carbon @@ -135,6 +135,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -143,6 +144,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Class(%T.loc14_13.1: type) { @@ -198,6 +200,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: .Get = %Get.decl // CHECK:STDOUT: .GetNoDeduce = %GetNoDeduce.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/redeclare.carbon b/toolchain/check/testdata/class/generic/redeclare.carbon index bb0eb10ba11ec..0a1b06da8617a 100644 --- a/toolchain/check/testdata/class/generic/redeclare.carbon +++ b/toolchain/check/testdata/class/generic/redeclare.carbon @@ -139,6 +139,7 @@ class E(U:! type) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Generic // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -197,6 +198,7 @@ class E(U:! type) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -283,6 +285,7 @@ class E(U:! type) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -373,6 +376,7 @@ class E(U:! type) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -457,6 +461,7 @@ class E(U:! type) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -534,6 +539,7 @@ class E(U:! type) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/self.carbon b/toolchain/check/testdata/class/generic/self.carbon index 3e80296538cb5..6336f58ea7d3f 100644 --- a/toolchain/check/testdata/class/generic/self.carbon +++ b/toolchain/check/testdata/class/generic/self.carbon @@ -104,6 +104,7 @@ class Class(T:! type) { // CHECK:STDOUT: .MakeClass = %MakeClass.decl // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/stringify.carbon b/toolchain/check/testdata/class/generic/stringify.carbon index 8c4a9b0f34541..000715955df6e 100644 --- a/toolchain/check/testdata/class/generic/stringify.carbon +++ b/toolchain/check/testdata/class/generic/stringify.carbon @@ -132,6 +132,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%NoParams // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @EmptyParams { @@ -140,6 +141,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%EmptyParams // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -245,6 +247,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: .Self = constants.%Outer.1 // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -260,6 +263,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Inner.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -373,6 +377,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -504,6 +509,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: .a = %.loc5 // CHECK:STDOUT: .b = %.loc6 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @E(%F.loc9_9.1: %D) { @@ -518,6 +524,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%E // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic_method.carbon b/toolchain/check/testdata/class/generic_method.carbon index 18b894325615d..fdd9fe38bdd19 100644 --- a/toolchain/check/testdata/class/generic_method.carbon +++ b/toolchain/check/testdata/class/generic_method.carbon @@ -107,6 +107,7 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: .a = %.loc12 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type.loc14_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/import.carbon b/toolchain/check/testdata/class/import.carbon index 8dda32981715a..59a2cbdba7d78 100644 --- a/toolchain/check/testdata/class/import.carbon +++ b/toolchain/check/testdata/class/import.carbon @@ -100,6 +100,7 @@ fn Run() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Empty // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Field { @@ -112,6 +113,7 @@ fn Run() { // CHECK:STDOUT: .Self = constants.%Field // CHECK:STDOUT: .x = %.loc8 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @ForwardDeclared { @@ -140,6 +142,7 @@ fn Run() { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Incomplete; @@ -232,6 +235,7 @@ fn Run() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.5 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Field [from "a.carbon"] { @@ -239,6 +243,7 @@ fn Run() { // CHECK:STDOUT: .Self = imports.%import_ref.11 // CHECK:STDOUT: .x = imports.%import_ref.12 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.10 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @ForwardDeclared.1 [from "a.carbon"] { @@ -247,6 +252,7 @@ fn Run() { // CHECK:STDOUT: .F = imports.%import_ref.203 // CHECK:STDOUT: .G = imports.%import_ref.204 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.201 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @ForwardDeclared.2 [from "a.carbon"] { @@ -255,6 +261,7 @@ fn Run() { // CHECK:STDOUT: .F = imports.%import_ref.207 // CHECK:STDOUT: .G = imports.%import_ref.208 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.205 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Incomplete [from "a.carbon"]; diff --git a/toolchain/check/testdata/class/import_base.carbon b/toolchain/check/testdata/class/import_base.carbon index 25c1c062f52c1..a29625b6b11fd 100644 --- a/toolchain/check/testdata/class/import_base.carbon +++ b/toolchain/check/testdata/class/import_base.carbon @@ -106,6 +106,7 @@ fn Run() { // CHECK:STDOUT: .x = %.loc8 // CHECK:STDOUT: .unused = %.loc9 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Child { @@ -118,6 +119,7 @@ fn Run() { // CHECK:STDOUT: .base = %.loc13 // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F[%self.param_patt: %Base](); @@ -201,6 +203,7 @@ fn Run() { // CHECK:STDOUT: .base = imports.%import_ref.15 // CHECK:STDOUT: extend imports.%import_ref.16 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.13 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Base [from "a.carbon"] { @@ -211,6 +214,7 @@ fn Run() { // CHECK:STDOUT: .x = imports.%import_ref.10 // CHECK:STDOUT: .unused = imports.%import_ref.11 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.6 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { diff --git a/toolchain/check/testdata/class/import_forward_decl.carbon b/toolchain/check/testdata/class/import_forward_decl.carbon index 681a11700efff..0a7e56fa2915a 100644 --- a/toolchain/check/testdata/class/import_forward_decl.carbon +++ b/toolchain/check/testdata/class/import_forward_decl.carbon @@ -77,5 +77,6 @@ class ForwardDecl { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%ForwardDecl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/import_indirect.carbon b/toolchain/check/testdata/class/import_indirect.carbon index 8d1b4c744db48..92a4ace8d492a 100644 --- a/toolchain/check/testdata/class/import_indirect.carbon +++ b/toolchain/check/testdata/class/import_indirect.carbon @@ -130,6 +130,7 @@ var ptr: E* = &val; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- b.carbon @@ -177,6 +178,7 @@ var ptr: E* = &val; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -236,6 +238,7 @@ var ptr: E* = &val; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -298,6 +301,7 @@ var ptr: E* = &val; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.5 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -360,6 +364,7 @@ var ptr: E* = &val; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.5 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -426,6 +431,7 @@ var ptr: E* = &val; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.8 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -492,6 +498,7 @@ var ptr: E* = &val; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.8 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/class/import_member_cycle.carbon b/toolchain/check/testdata/class/import_member_cycle.carbon index ddf0929ac804d..8a68692f27e9c 100644 --- a/toolchain/check/testdata/class/import_member_cycle.carbon +++ b/toolchain/check/testdata/class/import_member_cycle.carbon @@ -62,6 +62,7 @@ fn Run() { // CHECK:STDOUT: .Self = constants.%Cycle // CHECK:STDOUT: .a = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- b.carbon @@ -102,6 +103,7 @@ fn Run() { // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .a = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { diff --git a/toolchain/check/testdata/class/import_struct_cyle.carbon b/toolchain/check/testdata/class/import_struct_cyle.carbon index c4abd2475b5e5..f0e547375bba2 100644 --- a/toolchain/check/testdata/class/import_struct_cyle.carbon +++ b/toolchain/check/testdata/class/import_struct_cyle.carbon @@ -76,6 +76,7 @@ fn Run() { // CHECK:STDOUT: .Self = constants.%Cycle // CHECK:STDOUT: .c = %.loc10 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- b.carbon @@ -120,6 +121,7 @@ fn Run() { // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: .c = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { diff --git a/toolchain/check/testdata/class/inheritance_access.carbon b/toolchain/check/testdata/class/inheritance_access.carbon index 3e6157e419e1f..90cb3a840dd69 100644 --- a/toolchain/check/testdata/class/inheritance_access.carbon +++ b/toolchain/check/testdata/class/inheritance_access.carbon @@ -278,6 +278,7 @@ class B { // CHECK:STDOUT: .x [protected] = %.loc5 // CHECK:STDOUT: .y [protected] = %.loc6 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Circle { @@ -309,6 +310,7 @@ class B { // CHECK:STDOUT: .GetPosition = %GetPosition.decl // CHECK:STDOUT: extend %Shape.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @GetPosition[%self.param_patt: %Circle]() -> %return.param_patt: %tuple.type.2 { @@ -390,6 +392,7 @@ class B { // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -412,6 +415,7 @@ class B { // CHECK:STDOUT: .F [private] = %F.decl // CHECK:STDOUT: extend %A.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -439,6 +443,7 @@ class B { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1(); @@ -532,6 +537,7 @@ class B { // CHECK:STDOUT: .SOME_CONSTANT [protected] = %SOME_CONSTANT // CHECK:STDOUT: .SomeProtectedFunction [protected] = %SomeProtectedFunction.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -564,6 +570,7 @@ class B { // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: extend %A.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @SomeProtectedFunction() -> %i32 { @@ -641,6 +648,7 @@ class B { // CHECK:STDOUT: .Self = constants.%Shape // CHECK:STDOUT: .y [private] = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Square { @@ -668,6 +676,7 @@ class B { // CHECK:STDOUT: .GetPosition = %GetPosition.decl // CHECK:STDOUT: extend %Shape.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @GetPosition[%self.param_patt: %Square]() -> %i32 { @@ -716,6 +725,7 @@ class B { // CHECK:STDOUT: .F [private] = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -770,6 +780,7 @@ class B { // CHECK:STDOUT: .F [protected] = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -827,6 +838,7 @@ class B { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: .F [private] = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -841,6 +853,7 @@ class B { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -898,6 +911,7 @@ class B { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: .F [protected] = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -912,6 +926,7 @@ class B { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1004,6 +1019,7 @@ class B { // CHECK:STDOUT: .SOME_PROTECTED_CONSTANT [protected] = %SOME_PROTECTED_CONSTANT // CHECK:STDOUT: .SOME_PRIVATE_CONSTANT [private] = %SOME_PRIVATE_CONSTANT // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Internal { @@ -1023,6 +1039,7 @@ class B { // CHECK:STDOUT: .Self = constants.%Internal // CHECK:STDOUT: .INTERNAL_CONSTANT [protected] = %INTERNAL_CONSTANT // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -1059,6 +1076,7 @@ class B { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: .SomeFunc = %SomeFunc.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() -> %i32 { @@ -1126,6 +1144,7 @@ class B { // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: .x [private] = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -1147,6 +1166,7 @@ class B { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: extend %A.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F[%self.param_patt: %B]() { @@ -1203,6 +1223,7 @@ class B { // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: .x [protected] = %.loc5 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -1224,6 +1245,7 @@ class B { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: extend %A.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F[%self.param_patt: %B]() { diff --git a/toolchain/check/testdata/class/init.carbon b/toolchain/check/testdata/class/init.carbon index 4864e383294a5..29916fcb4545a 100644 --- a/toolchain/check/testdata/class/init.carbon +++ b/toolchain/check/testdata/class/init.carbon @@ -112,6 +112,7 @@ fn MakeReorder(n: i32, next: Class*) -> Class { // CHECK:STDOUT: .n = %.loc12 // CHECK:STDOUT: .next = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Make(%n.param_patt: %i32, %next.param_patt: %ptr.1) -> %return.param_patt: %Class { diff --git a/toolchain/check/testdata/class/init_as.carbon b/toolchain/check/testdata/class/init_as.carbon index ae17bfe7c386e..0f146e086d9f8 100644 --- a/toolchain/check/testdata/class/init_as.carbon +++ b/toolchain/check/testdata/class/init_as.carbon @@ -86,6 +86,7 @@ fn F() -> i32 { // CHECK:STDOUT: .a = %.loc12 // CHECK:STDOUT: .b = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %i32 { diff --git a/toolchain/check/testdata/class/init_nested.carbon b/toolchain/check/testdata/class/init_nested.carbon index 921120aabeabf..dd6cfc5024e87 100644 --- a/toolchain/check/testdata/class/init_nested.carbon +++ b/toolchain/check/testdata/class/init_nested.carbon @@ -94,6 +94,7 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: .a = %.loc12 // CHECK:STDOUT: .b = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Outer { @@ -108,6 +109,7 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: .c = %.loc19 // CHECK:STDOUT: .d = %.loc20 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @MakeInner() -> %Inner; diff --git a/toolchain/check/testdata/class/method.carbon b/toolchain/check/testdata/class/method.carbon index da12f212d428e..79e78320b9606 100644 --- a/toolchain/check/testdata/class/method.carbon +++ b/toolchain/check/testdata/class/method.carbon @@ -290,6 +290,7 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: .A = %A // CHECK:STDOUT: .k = %.loc17 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F[%self.param_patt: %Class]() -> %i32 { diff --git a/toolchain/check/testdata/class/nested.carbon b/toolchain/check/testdata/class/nested.carbon index 2693c4c10a232..8396e5f0a6782 100644 --- a/toolchain/check/testdata/class/nested.carbon +++ b/toolchain/check/testdata/class/nested.carbon @@ -124,6 +124,7 @@ fn F(a: Outer*) { // CHECK:STDOUT: .qo = %.loc37 // CHECK:STDOUT: .pi = %.loc38 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Inner { @@ -146,6 +147,7 @@ fn F(a: Outer*) { // CHECK:STDOUT: .qi = %.loc21 // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1() { diff --git a/toolchain/check/testdata/class/nested_name.carbon b/toolchain/check/testdata/class/nested_name.carbon index 3c30950e6d657..9347d87015490 100644 --- a/toolchain/check/testdata/class/nested_name.carbon +++ b/toolchain/check/testdata/class/nested_name.carbon @@ -90,6 +90,7 @@ fn G(o: Outer) { // CHECK:STDOUT: .Self = constants.%Outer // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Inner { @@ -102,6 +103,7 @@ fn G(o: Outer) { // CHECK:STDOUT: .Self = constants.%Inner // CHECK:STDOUT: .n = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%oi.param_patt: %Inner) -> %i32 { diff --git a/toolchain/check/testdata/class/no_prelude/export_name.carbon b/toolchain/check/testdata/class/no_prelude/export_name.carbon index 4996ab9a3a8ab..546c65731ff32 100644 --- a/toolchain/check/testdata/class/no_prelude/export_name.carbon +++ b/toolchain/check/testdata/class/no_prelude/export_name.carbon @@ -59,6 +59,7 @@ var c: C = {}; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export.carbon @@ -87,6 +88,7 @@ var c: C = {}; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_export.carbon @@ -119,6 +121,7 @@ var c: C = {}; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/class/no_prelude/extern.carbon b/toolchain/check/testdata/class/no_prelude/extern.carbon index 59683a4e55265..84136e514505e 100644 --- a/toolchain/check/testdata/class/no_prelude/extern.carbon +++ b/toolchain/check/testdata/class/no_prelude/extern.carbon @@ -347,6 +347,7 @@ extern class C; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_decl_fn_in_extern.carbon @@ -390,6 +391,7 @@ extern class C; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_extern_decl_after_extern_decl.carbon @@ -448,6 +450,7 @@ extern class C; // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .D = %D.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D; @@ -474,6 +477,7 @@ extern class C; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_extern_decl_after_decl.carbon @@ -620,6 +624,7 @@ extern class C; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_extern_decl_after_import_def.carbon @@ -647,5 +652,6 @@ extern class C; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon b/toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon index 6cd023473a0d7..fb6639b2d7ab7 100644 --- a/toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon +++ b/toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon @@ -155,6 +155,7 @@ fn F(T:! type) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%NotGenericNoParams // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NotGenericButParams { @@ -163,6 +164,7 @@ fn F(T:! type) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%NotGenericButParams // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @GenericAndParams.1(%T.loc6_24.1: type) { @@ -177,6 +179,7 @@ fn F(T:! type) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%GenericAndParams.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -204,6 +207,7 @@ fn F(T:! type) { // CHECK:STDOUT: .GenericNoParams = %GenericNoParams.decl // CHECK:STDOUT: .GenericAndParams = %GenericAndParams.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -216,6 +220,7 @@ fn F(T:! type) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%GenericNoParams.2 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -231,6 +236,7 @@ fn F(T:! type) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%GenericAndParams.2 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -240,6 +246,7 @@ fn F(T:! type) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -332,6 +339,7 @@ fn F(T:! type) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_non_generic_params.carbon @@ -369,6 +377,7 @@ fn F(T:! type) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc10_6.1: type) { diff --git a/toolchain/check/testdata/class/no_prelude/implicit_import.carbon b/toolchain/check/testdata/class/no_prelude/implicit_import.carbon index d6c8b2013e8cb..18dadac12439b 100644 --- a/toolchain/check/testdata/class/no_prelude/implicit_import.carbon +++ b/toolchain/check/testdata/class/no_prelude/implicit_import.carbon @@ -121,6 +121,7 @@ class B {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- redecl_after_def.carbon @@ -144,6 +145,7 @@ class B {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_redecl_after_def.impl.carbon @@ -172,6 +174,7 @@ class B {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- redef_after_def.carbon @@ -195,6 +198,7 @@ class B {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_redef_after_def.impl.carbon @@ -225,6 +229,7 @@ class B {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @.1 { @@ -233,6 +238,7 @@ class B {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- def_alias.carbon @@ -285,5 +291,6 @@ class B {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/no_prelude/import_access.carbon b/toolchain/check/testdata/class/no_prelude/import_access.carbon index 28bd83637d176..591715f5bd05c 100644 --- a/toolchain/check/testdata/class/no_prelude/import_access.carbon +++ b/toolchain/check/testdata/class/no_prelude/import_access.carbon @@ -156,6 +156,7 @@ private class Redecl {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Def // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- forward_with_def.carbon @@ -180,6 +181,7 @@ private class Redecl {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%ForwardWithDef // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- forward.carbon @@ -228,6 +230,7 @@ private class Redecl {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -324,6 +327,7 @@ private class Redecl {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -429,6 +433,7 @@ private class Redecl {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Forward // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%c.param_patt: %ptr) { @@ -522,5 +527,6 @@ private class Redecl {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Redecl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/no_prelude/indirect_import_member.carbon b/toolchain/check/testdata/class/no_prelude/indirect_import_member.carbon index 1a0f4cdfd9945..3aee598876c15 100644 --- a/toolchain/check/testdata/class/no_prelude/indirect_import_member.carbon +++ b/toolchain/check/testdata/class/no_prelude/indirect_import_member.carbon @@ -125,6 +125,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -173,6 +174,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .F = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- d.carbon @@ -223,6 +225,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: .C = %C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "c.carbon"] { @@ -230,6 +233,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .F = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- f.carbon @@ -280,6 +284,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .F = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() [from "a.carbon"]; @@ -328,6 +333,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .F = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() [from "a.carbon"]; @@ -376,6 +382,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .F = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() [from "a.carbon"]; @@ -428,6 +435,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .C = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "e.carbon"] { @@ -435,6 +443,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: .Self = imports.%import_ref.6 // CHECK:STDOUT: .F = imports.%import_ref.7 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.5 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() [from "a.carbon"]; @@ -488,6 +497,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .C = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "e.carbon"] { @@ -495,6 +505,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: .Self = imports.%import_ref.6 // CHECK:STDOUT: .F = imports.%import_ref.7 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.5 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() [from "a.carbon"]; diff --git a/toolchain/check/testdata/class/no_prelude/no_definition_in_impl_file.carbon b/toolchain/check/testdata/class/no_prelude/no_definition_in_impl_file.carbon index d82e6d3eb64a8..2646fba473740 100644 --- a/toolchain/check/testdata/class/no_prelude/no_definition_in_impl_file.carbon +++ b/toolchain/check/testdata/class/no_prelude/no_definition_in_impl_file.carbon @@ -113,6 +113,7 @@ class D; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_decl_in_api.carbon diff --git a/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon index 84aa7a56cc2cd..b1b1b8aed4c9a 100644 --- a/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon @@ -245,6 +245,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { @@ -259,6 +260,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Foo // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -274,6 +276,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Bar // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -330,6 +333,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Foo(%a.loc6_17.1: %C) { @@ -344,6 +348,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Foo // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -397,6 +402,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Foo(%a.loc6_11.1: %C) { @@ -418,6 +424,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -474,6 +481,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Foo(%a.loc6_11.1: %C) { @@ -488,6 +496,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Foo // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -544,6 +553,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { @@ -624,6 +634,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.5 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Foo(constants.%a: %C) { @@ -638,6 +649,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Foo // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -653,6 +665,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Bar // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -716,6 +729,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { @@ -737,6 +751,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -798,6 +813,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { @@ -819,6 +835,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -880,6 +897,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { @@ -901,6 +919,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -948,6 +967,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Foo(%a.loc6_11.1: %C) { @@ -1005,6 +1025,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Foo(constants.%a: %C) { @@ -1019,6 +1040,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Foo // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1076,6 +1098,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Foo(%a.loc6_11.1: %const) { @@ -1097,6 +1120,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1164,6 +1188,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .a = %.loc5_8 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F[addr %self.param_patt: %ptr.1](); diff --git a/toolchain/check/testdata/class/raw_self.carbon b/toolchain/check/testdata/class/raw_self.carbon index 9c884c627548e..453687aabaa90 100644 --- a/toolchain/check/testdata/class/raw_self.carbon +++ b/toolchain/check/testdata/class/raw_self.carbon @@ -149,6 +149,7 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: .n = %.loc14 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F[addr %self.param_patt.loc17_21: %ptr.1](%self.param_patt.loc17_36: %i32) { diff --git a/toolchain/check/testdata/class/raw_self_type.carbon b/toolchain/check/testdata/class/raw_self_type.carbon index b24e0deef1567..de7752a168b1e 100644 --- a/toolchain/check/testdata/class/raw_self_type.carbon +++ b/toolchain/check/testdata/class/raw_self_type.carbon @@ -77,6 +77,7 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @MemberNamedSelf { @@ -101,6 +102,7 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: .r#Self = %Self.decl // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Self { @@ -109,6 +111,7 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Self // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1() { diff --git a/toolchain/check/testdata/class/redeclaration.carbon b/toolchain/check/testdata/class/redeclaration.carbon index e1dfd868b2889..2b7bd16b37dba 100644 --- a/toolchain/check/testdata/class/redeclaration.carbon +++ b/toolchain/check/testdata/class/redeclaration.carbon @@ -83,6 +83,7 @@ fn Class.F[self: Self](b: bool) {} // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F[%self.param_patt: %Class](%b.param_patt: bool) { diff --git a/toolchain/check/testdata/class/redeclaration_introducer.carbon b/toolchain/check/testdata/class/redeclaration_introducer.carbon index 875315dcbcf94..d74f72e458979 100644 --- a/toolchain/check/testdata/class/redeclaration_introducer.carbon +++ b/toolchain/check/testdata/class/redeclaration_introducer.carbon @@ -55,6 +55,7 @@ abstract class C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -63,6 +64,7 @@ abstract class C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -71,5 +73,6 @@ abstract class C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/reenter_scope.carbon b/toolchain/check/testdata/class/reenter_scope.carbon index cd7ee591a9154..0f2537b6e7d55 100644 --- a/toolchain/check/testdata/class/reenter_scope.carbon +++ b/toolchain/check/testdata/class/reenter_scope.carbon @@ -84,6 +84,7 @@ fn Class.F() -> i32 { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %i32 { diff --git a/toolchain/check/testdata/class/reorder.carbon b/toolchain/check/testdata/class/reorder.carbon index 2bebd570b3472..475df8c9ed22e 100644 --- a/toolchain/check/testdata/class/reorder.carbon +++ b/toolchain/check/testdata/class/reorder.carbon @@ -84,6 +84,7 @@ class Class { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() -> %i32 { diff --git a/toolchain/check/testdata/class/reorder_qualified.carbon b/toolchain/check/testdata/class/reorder_qualified.carbon index 1e751bccc03c1..73a5dc07b637d 100644 --- a/toolchain/check/testdata/class/reorder_qualified.carbon +++ b/toolchain/check/testdata/class/reorder_qualified.carbon @@ -141,6 +141,7 @@ class A { // CHECK:STDOUT: .AF = %AF.decl // CHECK:STDOUT: .a = %.loc46 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -157,6 +158,7 @@ class A { // CHECK:STDOUT: .BF = %BF.decl // CHECK:STDOUT: .b = %.loc16 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -174,6 +176,7 @@ class A { // CHECK:STDOUT: .CF = %CF.decl // CHECK:STDOUT: .c = %.loc42 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -190,6 +193,7 @@ class A { // CHECK:STDOUT: .DF = %DF.decl // CHECK:STDOUT: .d = %.loc24 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @BF(); diff --git a/toolchain/check/testdata/class/scope.carbon b/toolchain/check/testdata/class/scope.carbon index 37d7a955a74fb..a8d29ce00db0f 100644 --- a/toolchain/check/testdata/class/scope.carbon +++ b/toolchain/check/testdata/class/scope.carbon @@ -113,6 +113,7 @@ fn Run() { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1() -> %i32 { diff --git a/toolchain/check/testdata/class/self.carbon b/toolchain/check/testdata/class/self.carbon index eda1353e5c407..643941828f316 100644 --- a/toolchain/check/testdata/class/self.carbon +++ b/toolchain/check/testdata/class/self.carbon @@ -146,6 +146,7 @@ class Class { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: .n = %.loc8 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F[%self.param_patt: %Class]() -> %i32 { @@ -215,6 +216,7 @@ class Class { // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F[%self.param_patt: %Class]() -> ; diff --git a/toolchain/check/testdata/class/self_conversion.carbon b/toolchain/check/testdata/class/self_conversion.carbon index 93b5fa090ecdc..cc4e412579420 100644 --- a/toolchain/check/testdata/class/self_conversion.carbon +++ b/toolchain/check/testdata/class/self_conversion.carbon @@ -134,6 +134,7 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: .Self = constants.%Base // CHECK:STDOUT: .a = %.loc12 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -172,6 +173,7 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: .AddrSelfBase = %AddrSelfBase.decl // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @SelfBase[%self.param_patt: %Base]() -> %i32 { diff --git a/toolchain/check/testdata/class/self_type.carbon b/toolchain/check/testdata/class/self_type.carbon index 31ff802a5992a..97270604822a0 100644 --- a/toolchain/check/testdata/class/self_type.carbon +++ b/toolchain/check/testdata/class/self_type.carbon @@ -103,6 +103,7 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: .Make = %Make.decl // CHECK:STDOUT: .p = %.loc18 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F[%self.param_patt: %Class]() -> %i32 { diff --git a/toolchain/check/testdata/class/static_method.carbon b/toolchain/check/testdata/class/static_method.carbon index 1f533238d1074..8ee40b4c8f590 100644 --- a/toolchain/check/testdata/class/static_method.carbon +++ b/toolchain/check/testdata/class/static_method.carbon @@ -76,6 +76,7 @@ fn Run() -> i32 { // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %i32; diff --git a/toolchain/check/testdata/class/syntactic_merge_literal.carbon b/toolchain/check/testdata/class/syntactic_merge_literal.carbon index f29cab40ed0e8..e66c1691f3f61 100644 --- a/toolchain/check/testdata/class/syntactic_merge_literal.carbon +++ b/toolchain/check/testdata/class/syntactic_merge_literal.carbon @@ -129,6 +129,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -144,6 +145,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -263,6 +265,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -285,6 +288,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/todo_access_modifiers.carbon b/toolchain/check/testdata/class/todo_access_modifiers.carbon index 5ca3193059b69..88e45ae39e405 100644 --- a/toolchain/check/testdata/class/todo_access_modifiers.carbon +++ b/toolchain/check/testdata/class/todo_access_modifiers.carbon @@ -69,6 +69,7 @@ class Access { // CHECK:STDOUT: .k [private] = %.loc17 // CHECK:STDOUT: .l [protected] = %.loc19 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(); diff --git a/toolchain/check/testdata/class/virtual_modifiers.carbon b/toolchain/check/testdata/class/virtual_modifiers.carbon index 2e9bca9f20758..62f244aeefdd6 100644 --- a/toolchain/check/testdata/class/virtual_modifiers.carbon +++ b/toolchain/check/testdata/class/virtual_modifiers.carbon @@ -125,6 +125,7 @@ class Derived { // CHECK:STDOUT: %H.type: type = fn_type @H [template] // CHECK:STDOUT: %H: %H.type = struct_value () [template] // CHECK:STDOUT: %ptr: type = ptr_type [template] +// CHECK:STDOUT: %.1: = vtable () [template] // CHECK:STDOUT: %struct_type.vptr: type = struct_type {.: %ptr} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr [template] // CHECK:STDOUT: %Abstract: type = class_type @Abstract [template] @@ -154,17 +155,20 @@ class Derived { // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] {} {} +// CHECK:STDOUT: %.loc6: = vtable (%H.decl) [template = constants.%.1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = %.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Abstract { // CHECK:STDOUT: %J.decl: %J.type = fn_decl @J [template = constants.%J] {} {} // CHECK:STDOUT: %K.decl: %K.type = fn_decl @K [template = constants.%K] {} {} +// CHECK:STDOUT: %.loc12: = vtable (%J.decl, %K.decl) [template = constants.%.1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -172,6 +176,7 @@ class Derived { // CHECK:STDOUT: .J = %J.decl // CHECK:STDOUT: .K = %K.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = %.loc12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: virtual fn @H(); @@ -191,6 +196,7 @@ class Derived { // CHECK:STDOUT: %struct_type.vptr: type = struct_type {.: %ptr.1} [template] // CHECK:STDOUT: %complete_type.1: = complete_type_witness %struct_type.vptr [template] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [template] +// CHECK:STDOUT: %.1: = vtable () [template] // CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %Base} [template] // CHECK:STDOUT: %complete_type.2: = complete_type_witness %struct_type.base [template] // CHECK:STDOUT: } @@ -226,6 +232,7 @@ class Derived { // CHECK:STDOUT: %Modifiers.ref: = name_ref Modifiers, imports.%Modifiers [template = imports.%Modifiers] // CHECK:STDOUT: %Base.ref: type = name_ref Base, imports.%import_ref.1 [template = constants.%Base] // CHECK:STDOUT: %.loc8: %Derived.elem = base_decl %Base.ref, element0 [template] +// CHECK:STDOUT: %.loc9: = vtable (%F.decl) [template = constants.%.1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base [template = constants.%complete_type.2] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -234,6 +241,7 @@ class Derived { // CHECK:STDOUT: .base = %.loc8 // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = %.loc9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Base [from "modifiers.carbon"] { @@ -241,6 +249,7 @@ class Derived { // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .H = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: virtual fn @F(); @@ -288,6 +297,7 @@ class Derived { // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .H = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -313,6 +323,7 @@ class Derived { // CHECK:STDOUT: %F.type.1: type = fn_type @F.1 [template] // CHECK:STDOUT: %F.1: %F.type.1 = struct_value () [template] // CHECK:STDOUT: %ptr.1: type = ptr_type [template] +// CHECK:STDOUT: %.1: = vtable () [template] // CHECK:STDOUT: %struct_type.vptr: type = struct_type {.: %ptr.1} [template] // CHECK:STDOUT: %complete_type.1: = complete_type_witness %struct_type.vptr [template] // CHECK:STDOUT: %A2: type = class_type @A2 [template] @@ -343,18 +354,21 @@ class Derived { // CHECK:STDOUT: // CHECK:STDOUT: class @A1 { // CHECK:STDOUT: %F.decl: %F.type.1 = fn_decl @F.1 [template = constants.%F.1] {} {} +// CHECK:STDOUT: %.loc6: = vtable (%F.decl) [template = constants.%.1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr [template = constants.%complete_type.1] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A1 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = %.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A2 { // CHECK:STDOUT: %A1.ref: type = name_ref A1, file.%A1.decl [template = constants.%A1] // CHECK:STDOUT: %.loc9: %A2.elem = base_decl %A1.ref, element0 [template] // CHECK:STDOUT: %F.decl: %F.type.2 = fn_decl @F.2 [template = constants.%F.2] {} {} +// CHECK:STDOUT: %.loc11: = vtable (%F.decl) [template = constants.%.1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base [template = constants.%complete_type.2] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -363,6 +377,7 @@ class Derived { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: extend %A1.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = %.loc11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: virtual fn @F.1(); @@ -376,6 +391,7 @@ class Derived { // CHECK:STDOUT: %F.type.1: type = fn_type @F.1 [template] // CHECK:STDOUT: %F.1: %F.type.1 = struct_value () [template] // CHECK:STDOUT: %ptr.1: type = ptr_type [template] +// CHECK:STDOUT: %.1: = vtable () [template] // CHECK:STDOUT: %struct_type.vptr: type = struct_type {.: %ptr.1} [template] // CHECK:STDOUT: %complete_type.1: = complete_type_witness %struct_type.vptr [template] // CHECK:STDOUT: %B2: type = class_type @B2 [template] @@ -414,18 +430,21 @@ class Derived { // CHECK:STDOUT: // CHECK:STDOUT: class @B1 { // CHECK:STDOUT: %F.decl: %F.type.1 = fn_decl @F.1 [template = constants.%F.1] {} {} +// CHECK:STDOUT: %.loc6: = vtable (%F.decl) [template = constants.%.1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr [template = constants.%complete_type.1] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B1 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = %.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B2 { // CHECK:STDOUT: %B1.ref: type = name_ref B1, file.%B1.decl [template = constants.%B1] // CHECK:STDOUT: %.loc9: %B2.elem = base_decl %B1.ref, element0 [template] // CHECK:STDOUT: %F.decl: %F.type.2 = fn_decl @F.2 [template = constants.%F.2] {} {} +// CHECK:STDOUT: %.loc11: = vtable (%F.decl) [template = constants.%.1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.1 [template = constants.%complete_type.2] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -434,12 +453,14 @@ class Derived { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: extend %B1.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = %.loc11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %B2.ref: type = name_ref B2, file.%B2.decl [template = constants.%B2] // CHECK:STDOUT: %.loc14: %C.elem = base_decl %B2.ref, element0 [template] // CHECK:STDOUT: %F.decl: %F.type.3 = fn_decl @F.3 [template = constants.%F.3] {} {} +// CHECK:STDOUT: %.loc16: = vtable (%F.decl) [template = constants.%.1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base.3 [template = constants.%complete_type.3] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -448,6 +469,7 @@ class Derived { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: extend %B2.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = %.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: virtual fn @F.1(); @@ -463,6 +485,7 @@ class Derived { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %ptr: type = ptr_type [template] +// CHECK:STDOUT: %.1: = vtable () [template] // CHECK:STDOUT: %struct_type.vptr: type = struct_type {.: %ptr} [template] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr [template] // CHECK:STDOUT: } @@ -485,12 +508,14 @@ class Derived { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {} +// CHECK:STDOUT: %.loc9: = vtable (%F.decl) [template = constants.%.1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr [template = constants.%complete_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = %.loc9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl fn @F(); @@ -505,6 +530,7 @@ class Derived { // CHECK:STDOUT: %F.type.1: type = fn_type @F.1 [template] // CHECK:STDOUT: %F.1: %F.type.1 = struct_value () [template] // CHECK:STDOUT: %ptr.1: type = ptr_type [template] +// CHECK:STDOUT: %.1: = vtable () [template] // CHECK:STDOUT: %struct_type.vptr.m1.m2: type = struct_type {.: %ptr.1, .m1: %i32, .m2: %i32} [template] // CHECK:STDOUT: %complete_type.3: = complete_type_witness %struct_type.vptr.m1.m2 [template] // CHECK:STDOUT: %F.type.2: type = fn_type @F.2 [template] @@ -557,6 +583,7 @@ class Derived { // CHECK:STDOUT: %i32.loc6: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32] // CHECK:STDOUT: %.loc6: %Base.elem = field_decl m2, element2 [template] // CHECK:STDOUT: %F.decl: %F.type.1 = fn_decl @F.1 [template = constants.%F.1] {} {} +// CHECK:STDOUT: %.loc9: = vtable (%F.decl) [template = constants.%.1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr.m1.m2 [template = constants.%complete_type.3] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -565,6 +592,7 @@ class Derived { // CHECK:STDOUT: .m2 = %.loc6 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = %.loc9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: virtual fn @F.1(); @@ -650,6 +678,7 @@ class Derived { // CHECK:STDOUT: %F.type: type = fn_type @F [template] // CHECK:STDOUT: %F: %F.type = struct_value () [template] // CHECK:STDOUT: %ptr.2: type = ptr_type [template] +// CHECK:STDOUT: %.1: = vtable () [template] // CHECK:STDOUT: %struct_type.vptr.base: type = struct_type {.: %ptr.2, .base: %Base} [template] // CHECK:STDOUT: %complete_type.2: = complete_type_witness %struct_type.vptr.base [template] // CHECK:STDOUT: } @@ -678,12 +707,14 @@ class Derived { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Base // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [template = constants.%Base] // CHECK:STDOUT: %.loc8: %Derived.elem = base_decl %Base.ref, element1 [template] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {} +// CHECK:STDOUT: %.loc10: = vtable (%F.decl) [template = constants.%.1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr.base [template = constants.%complete_type.2] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -692,6 +723,7 @@ class Derived { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = %.loc10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl fn @F(); diff --git a/toolchain/check/testdata/deduce/array.carbon b/toolchain/check/testdata/deduce/array.carbon index 7d54e8d6624a7..e9fb1ca6ae2aa 100644 --- a/toolchain/check/testdata/deduce/array.carbon +++ b/toolchain/check/testdata/deduce/array.carbon @@ -186,6 +186,7 @@ fn G() -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { @@ -360,6 +361,7 @@ fn G() -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc10_6.1: %i32) { @@ -515,6 +517,7 @@ fn G() -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc10_6.1: type, %N.loc10_16.1: %i32) { @@ -660,6 +663,7 @@ fn G() -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { @@ -837,6 +841,7 @@ fn G() -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -845,6 +850,7 @@ fn G() -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc10_6.1: %i32) { diff --git a/toolchain/check/testdata/deduce/generic_type.carbon b/toolchain/check/testdata/deduce/generic_type.carbon index 922bfd13ba060..5c611a19c8a22 100644 --- a/toolchain/check/testdata/deduce/generic_type.carbon +++ b/toolchain/check/testdata/deduce/generic_type.carbon @@ -159,6 +159,7 @@ fn G() -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -168,6 +169,7 @@ fn G() -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc7_6.1: type) { @@ -335,6 +337,7 @@ fn G() -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%I.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -344,6 +347,7 @@ fn G() -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc7_6.1: type) { @@ -554,6 +558,7 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%Outer.1 // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -569,6 +574,7 @@ fn G() -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Inner.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -578,6 +584,7 @@ fn G() -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -586,6 +593,7 @@ fn G() -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc13_6.1: type, %U.loc13_16.1: type) { @@ -820,6 +828,7 @@ fn G() -> i32 { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%WithNontype.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/tuple.carbon b/toolchain/check/testdata/deduce/tuple.carbon index 18c5f9933aa73..3f01ad24e5e26 100644 --- a/toolchain/check/testdata/deduce/tuple.carbon +++ b/toolchain/check/testdata/deduce/tuple.carbon @@ -143,6 +143,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -151,6 +152,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc7_6.1: type, %U.loc7_16.1: type) { @@ -366,6 +368,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%HasPair.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -520,6 +523,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -528,6 +532,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc7_6.1: type) { diff --git a/toolchain/check/testdata/deduce/type_operator.carbon b/toolchain/check/testdata/deduce/type_operator.carbon index 7031f55c2a540..a99a84c5c8685 100644 --- a/toolchain/check/testdata/deduce/type_operator.carbon +++ b/toolchain/check/testdata/deduce/type_operator.carbon @@ -139,6 +139,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { @@ -278,6 +279,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { @@ -419,6 +421,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { @@ -556,6 +559,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { diff --git a/toolchain/check/testdata/function/builtin/no_prelude/adapted_type.carbon b/toolchain/check/testdata/function/builtin/no_prelude/adapted_type.carbon index a48d4495fe86e..2008da351e6fe 100644 --- a/toolchain/check/testdata/function/builtin/no_prelude/adapted_type.carbon +++ b/toolchain/check/testdata/function/builtin/no_prelude/adapted_type.carbon @@ -146,6 +146,7 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%MyIntLiteral // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @MyInt32 { @@ -177,6 +178,7 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: .Self = constants.%MyInt32 // CHECK:STDOUT: .Make = %Make.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @IntLiteral() -> type = "int_literal.make_type"; @@ -252,6 +254,7 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%MyIntLiteral // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int(%N.param_patt: %MyIntLiteral) -> type; diff --git a/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon b/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon index 1dd935b8a51f5..557c7afff5b02 100644 --- a/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon +++ b/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon @@ -101,6 +101,7 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: .Self = constants.%Class // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -138,6 +139,7 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/declaration/no_prelude/extern.carbon b/toolchain/check/testdata/function/declaration/no_prelude/extern.carbon index cfe90921d5f4d..2d8c9d5a05be6 100644 --- a/toolchain/check/testdata/function/declaration/no_prelude/extern.carbon +++ b/toolchain/check/testdata/function/declaration/no_prelude/extern.carbon @@ -200,6 +200,7 @@ extern library "basic" fn F(); // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(); diff --git a/toolchain/check/testdata/function/declaration/no_prelude/fail_import_incomplete_return.carbon b/toolchain/check/testdata/function/declaration/no_prelude/fail_import_incomplete_return.carbon index 26a536920ffc2..59c0805a4335d 100644 --- a/toolchain/check/testdata/function/declaration/no_prelude/fail_import_incomplete_return.carbon +++ b/toolchain/check/testdata/function/declaration/no_prelude/fail_import_incomplete_return.carbon @@ -158,6 +158,7 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ReturnCUnused() -> %C; @@ -229,6 +230,7 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.9 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CallFAndGIncomplete() { diff --git a/toolchain/check/testdata/function/declaration/no_prelude/name_poisoning.carbon b/toolchain/check/testdata/function/declaration/no_prelude/name_poisoning.carbon index 2fa916936f275..2a3f450e08421 100644 --- a/toolchain/check/testdata/function/declaration/no_prelude/name_poisoning.carbon +++ b/toolchain/check/testdata/function/declaration/no_prelude/name_poisoning.carbon @@ -309,6 +309,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C.2 { @@ -317,6 +318,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.2 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F1(%x.param_patt: %C.2); @@ -365,6 +367,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F1(%x.param_patt: %C); @@ -406,6 +409,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @.1 { @@ -414,6 +418,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F1(%x.param_patt: %C); @@ -503,6 +508,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F1(%x.param_patt: %C); @@ -537,6 +543,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -558,6 +565,7 @@ class N.C {} // CHECK:STDOUT: .F1 = %F1.decl // CHECK:STDOUT: .C2 = %C2.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C2 { @@ -566,6 +574,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C2 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F1(%x.param_patt: %C1); @@ -608,6 +617,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F1(%x.param_patt: %C); @@ -661,6 +671,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F1() -> %C; @@ -716,6 +727,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @.1 { @@ -724,6 +736,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F1(%x.param_patt: %C); @@ -807,6 +820,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D1 { @@ -818,6 +832,7 @@ class N.C {} // CHECK:STDOUT: .Self = constants.%D1 // CHECK:STDOUT: .D2 = %D2.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @D3(@D2.%Self: %D2.type) { @@ -842,6 +857,7 @@ class N.C {} // CHECK:STDOUT: .Self = constants.%D3.2 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -854,6 +870,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.2 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -866,6 +883,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.4 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -875,6 +893,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.5 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @.4 { @@ -883,6 +902,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.6 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @.5 { @@ -891,6 +911,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%.7 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@D2.%Self: %D2.type) { @@ -933,6 +954,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- ignored_poison_in_import.carbon @@ -967,6 +989,7 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- poison.impl.carbon @@ -1002,5 +1025,6 @@ class N.C {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon index 03f753995e811..5ca4efabc56eb 100644 --- a/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon @@ -230,6 +230,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(%a.param_patt: %C) { @@ -282,6 +283,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo[](%a.param_patt: %C) { @@ -331,6 +333,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(%a.param_patt: %C); @@ -380,6 +383,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(%a.param_patt: %C) { @@ -433,6 +437,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(%a.param_patt: %C); @@ -489,6 +494,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.5 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(%a.param_patt: %C) [from "two_file.carbon"] { @@ -546,6 +552,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(%a.param_patt: %C); @@ -600,6 +607,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(%a.param_patt: %C); @@ -656,6 +664,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Foo(%a.loc7_8.1: %C) { @@ -731,6 +740,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo() -> %return.param_patt: %C { @@ -773,6 +783,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(%a.param_patt: %C); @@ -817,6 +828,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(%a.param_patt: %C) [from "alias_two_file.carbon"] { @@ -870,6 +882,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(%a.param_patt: %const); diff --git a/toolchain/check/testdata/function/generic/deduce.carbon b/toolchain/check/testdata/function/generic/deduce.carbon index 45a24a1376e62..dd047387765fa 100644 --- a/toolchain/check/testdata/function/generic/deduce.carbon +++ b/toolchain/check/testdata/function/generic/deduce.carbon @@ -566,6 +566,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @ExplicitAndAlsoDeduced(%T.loc6_27.1: type) { diff --git a/toolchain/check/testdata/function/generic/no_prelude/call.carbon b/toolchain/check/testdata/function/generic/no_prelude/call.carbon index a3ba689dbe612..032c05c3d8ee9 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/call.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/call.carbon @@ -159,6 +159,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Function(%T.loc4_13.1: type) { @@ -376,6 +377,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Function(%T.loc4_13.1: type) { diff --git a/toolchain/check/testdata/function/generic/no_prelude/import_specific.carbon b/toolchain/check/testdata/function/generic/no_prelude/import_specific.carbon index 6b1caf3f8fc86..4cebe341a6ffe 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/import_specific.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/import_specific.carbon @@ -154,6 +154,7 @@ fn H() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @H() { diff --git a/toolchain/check/testdata/function/generic/return_slot.carbon b/toolchain/check/testdata/function/generic/return_slot.carbon index 6c895df05c84f..a5bf7f3f4d1d8 100644 --- a/toolchain/check/testdata/function/generic/return_slot.carbon +++ b/toolchain/check/testdata/function/generic/return_slot.carbon @@ -112,6 +112,7 @@ fn G() { // CHECK:STDOUT: .Self = constants.%Wrap.1 // CHECK:STDOUT: .Make = %Make.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -127,6 +128,7 @@ fn G() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .arr = %.loc15 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Make(@Wrap.%T.loc11_12.1: type) { diff --git a/toolchain/check/testdata/generic/complete_type.carbon b/toolchain/check/testdata/generic/complete_type.carbon index ffd0369675186..f051cf386d325 100644 --- a/toolchain/check/testdata/generic/complete_type.carbon +++ b/toolchain/check/testdata/generic/complete_type.carbon @@ -140,6 +140,7 @@ fn G() { F(B); } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @A(%T.loc6_9.1: type) { @@ -162,6 +163,7 @@ fn G() { F(B); } // CHECK:STDOUT: .Self = constants.%A.1 // CHECK:STDOUT: .v = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type.loc14_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -239,6 +241,7 @@ fn G() { F(B); } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { diff --git a/toolchain/check/testdata/global/class_obj.carbon b/toolchain/check/testdata/global/class_obj.carbon index b1c7d97179e00..de561edcd287e 100644 --- a/toolchain/check/testdata/global/class_obj.carbon +++ b/toolchain/check/testdata/global/class_obj.carbon @@ -46,6 +46,7 @@ var a: A = {}; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/global/class_with_fun.carbon b/toolchain/check/testdata/global/class_with_fun.carbon index b705d4ddd288f..95c686b33d29c 100644 --- a/toolchain/check/testdata/global/class_with_fun.carbon +++ b/toolchain/check/testdata/global/class_with_fun.carbon @@ -61,6 +61,7 @@ var a: A = {}; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ret_a() -> %return.param_patt: %A { diff --git a/toolchain/check/testdata/if_expr/fail_not_in_function.carbon b/toolchain/check/testdata/if_expr/fail_not_in_function.carbon index 8c4c3bc09c90e..522a996948bc1 100644 --- a/toolchain/check/testdata/if_expr/fail_not_in_function.carbon +++ b/toolchain/check/testdata/if_expr/fail_not_in_function.carbon @@ -76,6 +76,7 @@ class C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .n = .inst559.loc37_8 // CHECK:STDOUT: complete_type_witness = .inst561.loc38_1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/impl/extend_impl.carbon b/toolchain/check/testdata/impl/extend_impl.carbon index e7d9e6834bdc0..eaeff7f157bd3 100644 --- a/toolchain/check/testdata/impl/extend_impl.carbon +++ b/toolchain/check/testdata/impl/extend_impl.carbon @@ -102,6 +102,7 @@ fn G(c: C) { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: extend @impl.%HasF.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@HasF.%Self: %HasF.type) { diff --git a/toolchain/check/testdata/impl/extend_impl_generic.carbon b/toolchain/check/testdata/impl/extend_impl_generic.carbon index a51b6d2a9e6e0..7fec3f5edc757 100644 --- a/toolchain/check/testdata/impl/extend_impl_generic.carbon +++ b/toolchain/check/testdata/impl/extend_impl_generic.carbon @@ -186,6 +186,7 @@ class X(U:! type) { // CHECK:STDOUT: .Self = constants.%Param // CHECK:STDOUT: .x = %.loc9 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -201,6 +202,7 @@ class X(U:! type) { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: extend @impl.1.%HasF.type // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.2)) { @@ -446,6 +448,7 @@ class X(U:! type) { // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: extend %.loc9 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon index 3834a64ceba6d..2361451daf8fa 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon @@ -147,6 +147,7 @@ class C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@GenericInterface.%T.loc11_28.1: type, @GenericInterface.%Self.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.2)) { diff --git a/toolchain/check/testdata/impl/fail_extend_impl_type_as.carbon b/toolchain/check/testdata/impl/fail_extend_impl_type_as.carbon index d91519cdd77fe..768e3439cdd47 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_type_as.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_type_as.carbon @@ -113,6 +113,7 @@ class E { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -126,6 +127,7 @@ class E { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: extend @impl.2.%I.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @E { @@ -139,5 +141,6 @@ class E { // CHECK:STDOUT: .Self = constants.%E // CHECK:STDOUT: extend @impl.3.%I.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_extend_non_interface.carbon b/toolchain/check/testdata/impl/fail_extend_non_interface.carbon index 0fce8555f4062..c24df200a9deb 100644 --- a/toolchain/check/testdata/impl/fail_extend_non_interface.carbon +++ b/toolchain/check/testdata/impl/fail_extend_non_interface.carbon @@ -56,5 +56,6 @@ class C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_extend_partially_defined_interface.carbon b/toolchain/check/testdata/impl/fail_extend_partially_defined_interface.carbon index f9107f478480d..31dc40600e9fa 100644 --- a/toolchain/check/testdata/impl/fail_extend_partially_defined_interface.carbon +++ b/toolchain/check/testdata/impl/fail_extend_partially_defined_interface.carbon @@ -80,6 +80,7 @@ interface I { // CHECK:STDOUT: extend %.loc19 // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_extend_undefined_interface.carbon b/toolchain/check/testdata/impl/fail_extend_undefined_interface.carbon index b316c14142a51..29e1feed86f17 100644 --- a/toolchain/check/testdata/impl/fail_extend_undefined_interface.carbon +++ b/toolchain/check/testdata/impl/fail_extend_undefined_interface.carbon @@ -99,6 +99,7 @@ fn F(c: C) { // CHECK:STDOUT: extend @impl.%I.ref // CHECK:STDOUT: has_error // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%c.param_patt: %C) { diff --git a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon index 642aa9c32ebab..3def4ceeb0465 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon @@ -796,6 +796,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%NoF // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @FNotFunction { @@ -808,6 +809,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%FNotFunction // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @F.16; @@ -822,6 +824,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%FAlias // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @FExtraParam { @@ -834,6 +837,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%FExtraParam // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @FExtraImplicitParam { @@ -846,6 +850,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%FExtraImplicitParam // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @FExtraReturnType { @@ -858,6 +863,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%FExtraReturnType // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @FMissingParam { @@ -870,6 +876,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%FMissingParam // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @FMissingImplicitParam { @@ -882,6 +889,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%FMissingImplicitParam // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @FMissingReturnType { @@ -894,6 +902,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%FMissingReturnType // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @FDifferentParamType { @@ -906,6 +915,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%FDifferentParamType // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @FDifferentImplicitParamType { @@ -918,6 +928,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%FDifferentImplicitParamType // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @FDifferentReturnType { @@ -930,6 +941,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%FDifferentReturnType // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @FDifferentParamName { @@ -942,6 +954,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%FDifferentParamName // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @SelfNestedBadParam { @@ -954,6 +967,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%SelfNestedBadParam // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @SelfNestedBadReturnType { @@ -966,6 +980,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%SelfNestedBadReturnType // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@I.%Self: %I.type) { diff --git a/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon b/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon index ea967547bed1a..927e179756c3c 100644 --- a/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon +++ b/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon @@ -140,6 +140,7 @@ impl i32 as I { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/impl_as.carbon b/toolchain/check/testdata/impl/impl_as.carbon index 5b32ce087ff76..05c6570f7c937 100644 --- a/toolchain/check/testdata/impl/impl_as.carbon +++ b/toolchain/check/testdata/impl/impl_as.carbon @@ -88,6 +88,7 @@ class C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@Simple.%Self: %Simple.type) { diff --git a/toolchain/check/testdata/impl/lookup/alias.carbon b/toolchain/check/testdata/impl/lookup/alias.carbon index ac3586b59830e..29fc3c6e7d60a 100644 --- a/toolchain/check/testdata/impl/lookup/alias.carbon +++ b/toolchain/check/testdata/impl/lookup/alias.carbon @@ -107,6 +107,7 @@ fn G(c: C) { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .G = %G // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@HasF.%Self: %HasF.type) { diff --git a/toolchain/check/testdata/impl/lookup/fail_alias_impl_not_found.carbon b/toolchain/check/testdata/impl/lookup/fail_alias_impl_not_found.carbon index d6622d412adec..2ca056c4c00c2 100644 --- a/toolchain/check/testdata/impl/lookup/fail_alias_impl_not_found.carbon +++ b/toolchain/check/testdata/impl/lookup/fail_alias_impl_not_found.carbon @@ -92,6 +92,7 @@ fn F(c: C) { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .F = %F // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@I.%Self: %I.type) { diff --git a/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon b/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon index 156aec97460f6..97e860d6fa601 100644 --- a/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon +++ b/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon @@ -116,6 +116,7 @@ impl C as I { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: extend @impl.1.%I.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@I.%Self: %I.type) { diff --git a/toolchain/check/testdata/impl/lookup/generic.carbon b/toolchain/check/testdata/impl/lookup/generic.carbon index 782a372382d64..7d1f57d8d664f 100644 --- a/toolchain/check/testdata/impl/lookup/generic.carbon +++ b/toolchain/check/testdata/impl/lookup/generic.carbon @@ -593,6 +593,7 @@ fn G(x: A) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1150,6 +1151,7 @@ fn G(x: A) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -1158,6 +1160,7 @@ fn G(x: A) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.2)) { diff --git a/toolchain/check/testdata/impl/lookup/instance_method.carbon b/toolchain/check/testdata/impl/lookup/instance_method.carbon index 0bcaab9d74225..239f50e9af9b9 100644 --- a/toolchain/check/testdata/impl/lookup/instance_method.carbon +++ b/toolchain/check/testdata/impl/lookup/instance_method.carbon @@ -141,6 +141,7 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: extend @impl.%I.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@I.%Self: %I.type) { diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon index 19e684cceacdc..d96f7096b67dc 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon @@ -277,6 +277,7 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: .Self = constants.%A.1 // CHECK:STDOUT: .n = %.loc3 // CHECK:STDOUT: complete_type_witness = %complete_type.loc4_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon index 2c734473f7afa..15d755eef3de9 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon @@ -246,6 +246,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@HasF.%Self: %HasF.type) { @@ -384,12 +385,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "package_a.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G.1(@HasG.%Self: %HasG.type) { @@ -497,6 +500,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestCF(%c.param_patt: %C) { @@ -632,12 +636,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "package_a.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.10 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.9 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestDF(%d.param_patt: %D) { @@ -773,12 +779,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D [from "package_b.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.19 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.18 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestCG(%c.param_patt: %C) { @@ -901,12 +909,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "package_b.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.10 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.9 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestDG(%d.param_patt: %D) { @@ -1127,6 +1137,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%AnyParam // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1267,6 +1278,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1435,6 +1447,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1676,6 +1689,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1846,6 +1860,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon index 14c7875c7ca99..9cc45bac187ef 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon @@ -131,6 +131,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -140,6 +141,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@I.%T.loc4_13.1: type, @I.%Self.1: @I.%I.type (%I.type.2)) { @@ -253,12 +255,14 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%InInterfaceArgs // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @X [from "types.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %I.type.2) [from "types.carbon"] { @@ -392,12 +396,14 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.5 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @InInterfaceArgs [from "impl_in_interface_args.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.12 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.11 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%x.param_patt: %X) { @@ -541,6 +547,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%InClassArgs // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(constants.%T: type) [from "types.carbon"] { @@ -553,6 +560,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -560,6 +568,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.11 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.10 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %I.type.2) [from "types.carbon"] { @@ -716,6 +725,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.5 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -723,12 +733,14 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.8 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @X [from "types.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.14 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.13 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @H(%c.param_patt: %C.2) { diff --git a/toolchain/check/testdata/impl/lookup/transitive.carbon b/toolchain/check/testdata/impl/lookup/transitive.carbon index 4131827c5d13f..2beb239d22c5c 100644 --- a/toolchain/check/testdata/impl/lookup/transitive.carbon +++ b/toolchain/check/testdata/impl/lookup/transitive.carbon @@ -152,6 +152,7 @@ fn Call() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1() { @@ -210,6 +211,7 @@ fn Call() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Get() -> %C; @@ -280,6 +282,7 @@ fn Call() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Call() { diff --git a/toolchain/check/testdata/impl/multiple_extend.carbon b/toolchain/check/testdata/impl/multiple_extend.carbon index ce1fa85e68092..d5aa6289c8b35 100644 --- a/toolchain/check/testdata/impl/multiple_extend.carbon +++ b/toolchain/check/testdata/impl/multiple_extend.carbon @@ -275,6 +275,7 @@ fn P(o: O) { // CHECK:STDOUT: extend @impl.1.%HasF.ref // CHECK:STDOUT: extend @impl.2.%HasG.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@HasF.%Self: %HasF.type) { @@ -441,6 +442,7 @@ fn P(o: O) { // CHECK:STDOUT: extend @impl.1.%HasA1.ref // CHECK:STDOUT: extend @impl.2.%HasA2.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A.1(@HasA1.%Self: %HasA1.type) { @@ -564,6 +566,7 @@ fn P(o: O) { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: .J = %J.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @E { @@ -581,6 +584,7 @@ fn P(o: O) { // CHECK:STDOUT: extend %B.ref // CHECK:STDOUT: extend @impl.%HasI.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.1(@HasI.%Self: %HasI.type) { @@ -704,6 +708,7 @@ fn P(o: O) { // CHECK:STDOUT: .Self = constants.%Base // CHECK:STDOUT: .K = %K.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @L { @@ -721,6 +726,7 @@ fn P(o: O) { // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: extend @impl.%HasK.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @K.1() { @@ -869,6 +875,7 @@ fn P(o: O) { // CHECK:STDOUT: .Self = constants.%NBase // CHECK:STDOUT: .N = %N.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @O { @@ -893,6 +900,7 @@ fn P(o: O) { // CHECK:STDOUT: extend @impl.1.%HasN1.ref // CHECK:STDOUT: extend @impl.2.%HasN2.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @N.1() { diff --git a/toolchain/check/testdata/impl/no_prelude/basic.carbon b/toolchain/check/testdata/impl/no_prelude/basic.carbon index b5eac3f302409..56adbf21b402e 100644 --- a/toolchain/check/testdata/impl/no_prelude/basic.carbon +++ b/toolchain/check/testdata/impl/no_prelude/basic.carbon @@ -75,6 +75,7 @@ impl C as Simple { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@Simple.%Self: %Simple.type) { diff --git a/toolchain/check/testdata/impl/no_prelude/error_recovery.carbon b/toolchain/check/testdata/impl/no_prelude/error_recovery.carbon index a0dbffd769ddd..6cd70ea719094 100644 --- a/toolchain/check/testdata/impl/no_prelude/error_recovery.carbon +++ b/toolchain/check/testdata/impl/no_prelude/error_recovery.carbon @@ -63,5 +63,6 @@ impl forall [T: type] C as I { } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/fail_alias.carbon b/toolchain/check/testdata/impl/no_prelude/fail_alias.carbon index 0d08142659ced..6c88e3491f4fe 100644 --- a/toolchain/check/testdata/impl/no_prelude/fail_alias.carbon +++ b/toolchain/check/testdata/impl/no_prelude/fail_alias.carbon @@ -76,5 +76,6 @@ impl AC as AI {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/fail_undefined_interface.carbon b/toolchain/check/testdata/impl/no_prelude/fail_undefined_interface.carbon index 5669b0a7eafe6..92e4140070f86 100644 --- a/toolchain/check/testdata/impl/no_prelude/fail_undefined_interface.carbon +++ b/toolchain/check/testdata/impl/no_prelude/fail_undefined_interface.carbon @@ -97,5 +97,6 @@ impl C as J {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon b/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon index a657a7ac3a743..1fd644aef89ec 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon @@ -284,6 +284,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%MyInt // CHECK:STDOUT: complete_type_witness = %complete_type.loc13_1.1 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -525,6 +526,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.8 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -876,6 +878,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: .Self = constants.%OtherInt // CHECK:STDOUT: .ToLiteral = %ToLiteral.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @IntLiteral() -> type = "int_literal.make_type"; @@ -1048,6 +1051,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: .Self = imports.%import_ref.10 // CHECK:STDOUT: .ToLiteral = imports.%import_ref.11 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.9 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int(%n.param_patt: Core.IntLiteral) -> type = "int.make_type_signed" [from "convert_symbolic.carbon"]; diff --git a/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon b/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon index f7faa34949ad7..47a0f623f7b54 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon @@ -91,6 +91,7 @@ fn G(c: C) { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: extend @impl.%I.ref // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@I.%Self: %I.type) { @@ -174,6 +175,7 @@ fn G(c: C) { // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: extend imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%c.param_patt: %C) { diff --git a/toolchain/check/testdata/impl/no_prelude/import_generic.carbon b/toolchain/check/testdata/impl/no_prelude/import_generic.carbon index 0c29458fc32aa..1f0a70fbf309e 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_generic.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_generic.carbon @@ -141,6 +141,7 @@ impl forall [T:! type] C as I(T*) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { @@ -275,6 +276,7 @@ impl forall [T:! type] C as I(T*) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { @@ -398,6 +400,7 @@ impl forall [T:! type] C as I(T*) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { diff --git a/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon b/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon index 66c1e6c9cff2a..b398d4782f163 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon @@ -130,6 +130,7 @@ fn F() -> c.(I.F)() {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -280,6 +281,7 @@ fn F() -> c.(I.F)() {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/interface_args.carbon b/toolchain/check/testdata/impl/no_prelude/interface_args.carbon index feec609fe90a2..46a461f4771c2 100644 --- a/toolchain/check/testdata/impl/no_prelude/interface_args.carbon +++ b/toolchain/check/testdata/impl/no_prelude/interface_args.carbon @@ -183,6 +183,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -191,6 +192,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -199,6 +201,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Op.1(@Action.%T.loc4_18.1: type, @Action.%Self.1: @Action.%Action.type (%Action.type.2)) { @@ -350,12 +353,14 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.7 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.6 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A [from "action.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.12 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.11 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Op.1(constants.%T: type, constants.%Self: %Action.type.2) [from "action.carbon"] { @@ -506,18 +511,21 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.7 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.6 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A [from "action.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.12 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.11 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "action.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.20 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.19 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Op(constants.%T: type, constants.%Self: %Action.type.2) [from "action.carbon"] { @@ -675,6 +683,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -683,6 +692,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Make.1(@Factory.%T.loc4_19.1: type, @Factory.%Self.1: @Factory.%Factory.type (%Factory.type.2)) { @@ -823,12 +833,14 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A [from "factory.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.10 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.9 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Make.1(constants.%T: type, constants.%Self: %Factory.type.2) [from "factory.carbon"] { @@ -984,12 +996,14 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A [from "factory.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.10 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.9 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -998,6 +1012,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Make(constants.%T: type, constants.%Self: %Factory.type.2) [from "factory.carbon"] { diff --git a/toolchain/check/testdata/impl/no_prelude/self_in_class.carbon b/toolchain/check/testdata/impl/no_prelude/self_in_class.carbon index cb64d0b2931b8..49c629ea62d2a 100644 --- a/toolchain/check/testdata/impl/no_prelude/self_in_class.carbon +++ b/toolchain/check/testdata/impl/no_prelude/self_in_class.carbon @@ -96,6 +96,7 @@ class A { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A { @@ -108,6 +109,7 @@ class A { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Make.1(@DefaultConstructible.%Self: %DefaultConstructible.type) { diff --git a/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon b/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon index ccf7121923551..37264b2de33f5 100644 --- a/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon +++ b/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon @@ -284,6 +284,7 @@ impl D as SelfNested { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -292,6 +293,7 @@ impl D as SelfNested { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@UseSelf.%Self: %UseSelf.type) { diff --git a/toolchain/check/testdata/impl/redeclaration.carbon b/toolchain/check/testdata/impl/redeclaration.carbon index 1c21ddb968604..3b78b53c8cd02 100644 --- a/toolchain/check/testdata/impl/redeclaration.carbon +++ b/toolchain/check/testdata/impl/redeclaration.carbon @@ -88,5 +88,6 @@ impl i32 as I {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // 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 3a9d42ceb4467..35d9834be3a8c 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 @@ -292,6 +292,7 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: .Self = constants.%C.2 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/default_fn.carbon b/toolchain/check/testdata/interface/no_prelude/default_fn.carbon index 1dc560535b6d6..1aad35106c8cf 100644 --- a/toolchain/check/testdata/interface/no_prelude/default_fn.carbon +++ b/toolchain/check/testdata/interface/no_prelude/default_fn.carbon @@ -82,6 +82,7 @@ class C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .I = %I.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@I.%Self: %I.type) { diff --git a/toolchain/check/testdata/interface/no_prelude/generic.carbon b/toolchain/check/testdata/interface/no_prelude/generic.carbon index 05502498edeab..bd8f115a6905d 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic.carbon @@ -251,6 +251,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -271,6 +272,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(@WithAssocFn.%T.loc8_23.1: type, @WithAssocFn.%Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.2)) { @@ -463,6 +465,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { @@ -471,6 +474,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc9_6.1: %Generic.type.3) { diff --git a/toolchain/check/testdata/interface/no_prelude/generic_import.carbon b/toolchain/check/testdata/interface/no_prelude/generic_import.carbon index 574abfc16a924..864818a1a6e2e 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic_import.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic_import.carbon @@ -178,6 +178,7 @@ impl C as AddWith(C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.1(constants.%T: type, constants.%Self: %AddWith.type.2) [from "a.carbon"] { diff --git a/toolchain/check/testdata/interface/no_prelude/generic_vs_params.carbon b/toolchain/check/testdata/interface/no_prelude/generic_vs_params.carbon index 51603b98e1d3d..0cc95f60cea15 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic_vs_params.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic_vs_params.carbon @@ -269,6 +269,7 @@ interface A(T: type) {} // CHECK:STDOUT: .GenericNoParams = %GenericNoParams.decl // CHECK:STDOUT: .GenericAndParams = %GenericAndParams.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -278,6 +279,7 @@ interface A(T: type) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.1(constants.%T) { diff --git a/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon index fdb2743301576..588a833ca3e59 100644 --- a/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon @@ -287,6 +287,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { @@ -364,6 +365,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { @@ -443,6 +445,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { @@ -518,6 +521,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { @@ -589,6 +593,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { @@ -711,6 +716,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.5 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { @@ -812,6 +818,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { @@ -899,6 +906,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { @@ -986,6 +994,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { @@ -1041,6 +1050,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { @@ -1119,6 +1129,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { @@ -1207,6 +1218,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { diff --git a/toolchain/check/testdata/let/compile_time_bindings.carbon b/toolchain/check/testdata/let/compile_time_bindings.carbon index ce3a4607ca2d0..6ee0783fbe983 100644 --- a/toolchain/check/testdata/let/compile_time_bindings.carbon +++ b/toolchain/check/testdata/let/compile_time_bindings.carbon @@ -213,6 +213,7 @@ impl i32 as Empty { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .x = %x // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %empty_tuple.type { @@ -272,6 +273,7 @@ impl i32 as Empty { // CHECK:STDOUT: .x = %x // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %empty_tuple.type { @@ -367,6 +369,7 @@ impl i32 as Empty { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .d = %d // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%b.loc10_8.2: %tuple.type.1) { @@ -522,6 +525,7 @@ impl i32 as Empty { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .x = %x // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %empty_tuple.type { @@ -783,6 +787,7 @@ impl i32 as Empty { // CHECK:STDOUT: .T = %T // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> ; diff --git a/toolchain/check/testdata/namespace/merging_with_indirections.carbon b/toolchain/check/testdata/namespace/merging_with_indirections.carbon index 8ebf87f085328..ac1db494c769c 100644 --- a/toolchain/check/testdata/namespace/merging_with_indirections.carbon +++ b/toolchain/check/testdata/namespace/merging_with_indirections.carbon @@ -74,6 +74,7 @@ fn Run() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- b.carbon @@ -133,12 +134,14 @@ fn Run() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A [from "a.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %return.param_patt: %A { @@ -199,6 +202,7 @@ fn Run() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { diff --git a/toolchain/check/testdata/operators/overloaded/add.carbon b/toolchain/check/testdata/operators/overloaded/add.carbon index 210a583a1bbf7..2ea445b92033b 100644 --- a/toolchain/check/testdata/operators/overloaded/add.carbon +++ b/toolchain/check/testdata/operators/overloaded/add.carbon @@ -175,6 +175,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/operators/overloaded/bit_and.carbon b/toolchain/check/testdata/operators/overloaded/bit_and.carbon index 658d89f5cc9d1..7858d315ef977 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_and.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_and.carbon @@ -175,6 +175,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/operators/overloaded/bit_complement.carbon b/toolchain/check/testdata/operators/overloaded/bit_complement.carbon index ccd42c22a5f06..f543130a0e05d 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_complement.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_complement.carbon @@ -104,6 +104,7 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C]() -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/operators/overloaded/bit_or.carbon b/toolchain/check/testdata/operators/overloaded/bit_or.carbon index b965a282d036d..3dd296df6bbfd 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_or.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_or.carbon @@ -175,6 +175,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/operators/overloaded/bit_xor.carbon b/toolchain/check/testdata/operators/overloaded/bit_xor.carbon index b27d98183aa51..73e282e2fb896 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_xor.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_xor.carbon @@ -175,6 +175,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/operators/overloaded/dec.carbon b/toolchain/check/testdata/operators/overloaded/dec.carbon index 8d3048c5f1c10..b829bf9079a3c 100644 --- a/toolchain/check/testdata/operators/overloaded/dec.carbon +++ b/toolchain/check/testdata/operators/overloaded/dec.carbon @@ -90,6 +90,7 @@ fn TestOp() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[addr %self.param_patt: %ptr.1](); diff --git a/toolchain/check/testdata/operators/overloaded/div.carbon b/toolchain/check/testdata/operators/overloaded/div.carbon index d55dc3c3387b3..56597800bf1cb 100644 --- a/toolchain/check/testdata/operators/overloaded/div.carbon +++ b/toolchain/check/testdata/operators/overloaded/div.carbon @@ -175,6 +175,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/operators/overloaded/eq.carbon b/toolchain/check/testdata/operators/overloaded/eq.carbon index aba611ffadaef..346cd603718a0 100644 --- a/toolchain/check/testdata/operators/overloaded/eq.carbon +++ b/toolchain/check/testdata/operators/overloaded/eq.carbon @@ -225,6 +225,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Equal.1[%self.param_patt: %C](%other.param_patt: %C) -> bool; @@ -335,6 +336,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestEqual(%a.param_patt: %D, %b.param_patt: %D) -> bool { @@ -497,6 +499,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -505,6 +508,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Equal.1[%self.param_patt: %C](%other.param_patt: %C) -> bool; diff --git a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon index 32cb5bd17ee36..5c4a3c6c774de 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon @@ -164,6 +164,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[addr %self.param_patt: %ptr.1](); diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon index f76473272923c..56bbf0b77d5d6 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon @@ -124,6 +124,7 @@ fn TestRef(b: C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestUnary(%a.param_patt: %C) -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon index 6ea10283ce257..0bdbeff6575aa 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon @@ -190,6 +190,7 @@ fn TestAssign(b: D) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -198,6 +199,7 @@ fn TestAssign(b: D) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %C; diff --git a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon index b6be4861d8b98..2bd4179b6a372 100644 --- a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon +++ b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon @@ -194,6 +194,7 @@ fn Test() { // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: .n = %.loc12 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Convert.2[%self.param_patt: %i32]() -> %return.param_patt: %X { diff --git a/toolchain/check/testdata/operators/overloaded/inc.carbon b/toolchain/check/testdata/operators/overloaded/inc.carbon index ff7d9a6b5ef8f..698633a35fde7 100644 --- a/toolchain/check/testdata/operators/overloaded/inc.carbon +++ b/toolchain/check/testdata/operators/overloaded/inc.carbon @@ -90,6 +90,7 @@ fn TestOp() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[addr %self.param_patt: %ptr.1](); diff --git a/toolchain/check/testdata/operators/overloaded/index.carbon b/toolchain/check/testdata/operators/overloaded/index.carbon index 55f0e87a0dd22..24623b2dc9b2e 100644 --- a/toolchain/check/testdata/operators/overloaded/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/index.carbon @@ -164,6 +164,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @ElementType { @@ -172,6 +173,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%ElementType.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @SubscriptType { @@ -180,6 +182,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%SubscriptType.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @At.2[%self.param_patt: %C](%subscript.param_patt: %SubscriptType.1) -> %return.param_patt: %ElementType.1 { @@ -455,6 +458,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @ElementType { @@ -463,6 +467,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%ElementType.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @SubscriptType { @@ -471,6 +476,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%SubscriptType.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @At.2[%self.param_patt: %C](%subscript.param_patt: %SubscriptType.1) -> %return.param_patt: %ElementType.1 { @@ -544,6 +550,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/operators/overloaded/left_shift.carbon b/toolchain/check/testdata/operators/overloaded/left_shift.carbon index 044e03779f168..6698cd0a6d795 100644 --- a/toolchain/check/testdata/operators/overloaded/left_shift.carbon +++ b/toolchain/check/testdata/operators/overloaded/left_shift.carbon @@ -175,6 +175,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/operators/overloaded/mod.carbon b/toolchain/check/testdata/operators/overloaded/mod.carbon index f73b6d63b7505..dfc8e77206007 100644 --- a/toolchain/check/testdata/operators/overloaded/mod.carbon +++ b/toolchain/check/testdata/operators/overloaded/mod.carbon @@ -175,6 +175,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/operators/overloaded/mul.carbon b/toolchain/check/testdata/operators/overloaded/mul.carbon index f013f13526c62..92b6e5c0d0ad3 100644 --- a/toolchain/check/testdata/operators/overloaded/mul.carbon +++ b/toolchain/check/testdata/operators/overloaded/mul.carbon @@ -175,6 +175,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/operators/overloaded/negate.carbon b/toolchain/check/testdata/operators/overloaded/negate.carbon index 8c0efa78ea09b..95ec3e85bff4b 100644 --- a/toolchain/check/testdata/operators/overloaded/negate.carbon +++ b/toolchain/check/testdata/operators/overloaded/negate.carbon @@ -104,6 +104,7 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C]() -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon b/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon index e97041aa4223c..9bc99592f5f11 100644 --- a/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon @@ -80,6 +80,7 @@ fn F() { ()[()]; } // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%IndexWith // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { diff --git a/toolchain/check/testdata/operators/overloaded/ordered.carbon b/toolchain/check/testdata/operators/overloaded/ordered.carbon index 25ca32ecca90a..830ce5c4cf22c 100644 --- a/toolchain/check/testdata/operators/overloaded/ordered.carbon +++ b/toolchain/check/testdata/operators/overloaded/ordered.carbon @@ -311,6 +311,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Less.1[%self.param_patt: %C](%other.param_patt: %C) -> bool; @@ -495,6 +496,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestLess(%a.param_patt: %D, %b.param_patt: %D) -> bool { diff --git a/toolchain/check/testdata/operators/overloaded/right_shift.carbon b/toolchain/check/testdata/operators/overloaded/right_shift.carbon index 5220ab523649c..d5060a497656e 100644 --- a/toolchain/check/testdata/operators/overloaded/right_shift.carbon +++ b/toolchain/check/testdata/operators/overloaded/right_shift.carbon @@ -175,6 +175,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/operators/overloaded/sub.carbon b/toolchain/check/testdata/operators/overloaded/sub.carbon index 9eb83cb4f16cf..ea4bb8dfaa331 100644 --- a/toolchain/check/testdata/operators/overloaded/sub.carbon +++ b/toolchain/check/testdata/operators/overloaded/sub.carbon @@ -175,6 +175,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/package_expr/syntax.carbon b/toolchain/check/testdata/package_expr/syntax.carbon index 9db92b049de9c..96904a704def5 100644 --- a/toolchain/check/testdata/package_expr/syntax.carbon +++ b/toolchain/check/testdata/package_expr/syntax.carbon @@ -220,6 +220,7 @@ fn Main() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .Foo = %Foo.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo() { diff --git a/toolchain/check/testdata/packages/no_prelude/cross_package_export.carbon b/toolchain/check/testdata/packages/no_prelude/cross_package_export.carbon index 14ad3b0108fe3..54b789a08b2f7 100644 --- a/toolchain/check/testdata/packages/no_prelude/cross_package_export.carbon +++ b/toolchain/check/testdata/packages/no_prelude/cross_package_export.carbon @@ -218,6 +218,7 @@ alias C = Other.C; // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .x = %.loc5_8 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- conflict.carbon @@ -307,6 +308,7 @@ alias C = Other.C; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_name_copy.carbon @@ -338,6 +340,7 @@ alias C = Other.C; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_name_indirect.carbon @@ -369,6 +372,7 @@ alias C = Other.C; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_export_import.carbon @@ -411,6 +415,7 @@ alias C = Other.C; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -467,6 +472,7 @@ alias C = Other.C; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -523,6 +529,7 @@ alias C = Other.C; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -577,6 +584,7 @@ alias C = Other.C; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -632,6 +640,7 @@ alias C = Other.C; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -686,6 +695,7 @@ alias C = Other.C; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -746,6 +756,7 @@ alias C = Other.C; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -861,5 +872,6 @@ alias C = Other.C; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/no_prelude/export_import.carbon b/toolchain/check/testdata/packages/no_prelude/export_import.carbon index a66d289a5162f..45f16e08f2c22 100644 --- a/toolchain/check/testdata/packages/no_prelude/export_import.carbon +++ b/toolchain/check/testdata/packages/no_prelude/export_import.carbon @@ -197,6 +197,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .x = %.loc5_8 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export.carbon @@ -304,6 +305,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -358,6 +360,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -407,6 +410,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -456,6 +460,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -505,6 +510,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -554,6 +560,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -603,6 +610,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -652,6 +660,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -712,6 +721,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -763,6 +773,7 @@ var indirect_c: C = {.x = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: .x = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/packages/no_prelude/export_mixed.carbon b/toolchain/check/testdata/packages/no_prelude/export_mixed.carbon index 1a4a0455904dd..058c28bf0f210 100644 --- a/toolchain/check/testdata/packages/no_prelude/export_mixed.carbon +++ b/toolchain/check/testdata/packages/no_prelude/export_mixed.carbon @@ -146,6 +146,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .x = %.loc5_8 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { @@ -158,6 +159,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: .y = %.loc9_8 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_import.carbon @@ -206,6 +208,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: .x = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_name.carbon @@ -239,6 +242,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: .x = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_name_then_import.carbon @@ -288,6 +292,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -337,6 +342,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -386,6 +392,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -465,6 +472,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -527,6 +535,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: .x = imports.%import_ref.5 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D [from "base.carbon"] { @@ -534,6 +543,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: .Self = imports.%import_ref.7 // CHECK:STDOUT: .y = imports.%import_ref.8 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.6 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/packages/no_prelude/export_name.carbon b/toolchain/check/testdata/packages/no_prelude/export_name.carbon index 8294c49126f18..118751b6e170a 100644 --- a/toolchain/check/testdata/packages/no_prelude/export_name.carbon +++ b/toolchain/check/testdata/packages/no_prelude/export_name.carbon @@ -236,6 +236,7 @@ private export C; // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .x = %.loc5_8 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC { @@ -248,6 +249,7 @@ private export C; // CHECK:STDOUT: .Self = constants.%NSC // CHECK:STDOUT: .y = %.loc10_8 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export.carbon @@ -292,6 +294,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: .x = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "base.carbon"] { @@ -299,6 +302,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.8 // CHECK:STDOUT: .y = imports.%import_ref.9 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- not_reexporting.carbon @@ -361,6 +365,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: .x = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "export.carbon"] { @@ -368,6 +373,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.8 // CHECK:STDOUT: .y = imports.%import_ref.9 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_in_impl.carbon @@ -428,6 +434,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: .x = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "export.carbon"] { @@ -435,6 +442,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.8 // CHECK:STDOUT: .y = imports.%import_ref.9 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -511,6 +519,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: .x = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "export_export.carbon"] { @@ -518,6 +527,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.8 // CHECK:STDOUT: .y = imports.%import_ref.9 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -593,6 +603,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: .x = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "export_export.carbon"] { @@ -600,6 +611,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.8 // CHECK:STDOUT: .y = imports.%import_ref.9 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -662,6 +674,7 @@ private export C; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Local // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_export_member.carbon @@ -697,6 +710,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: .x = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_both.carbon @@ -751,6 +765,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: .x = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "base.carbon"] { @@ -758,6 +773,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.8 // CHECK:STDOUT: .y = imports.%import_ref.9 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -833,6 +849,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: .x = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "export.carbon"] { @@ -840,6 +857,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.8 // CHECK:STDOUT: .y = imports.%import_ref.9 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.7 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -912,6 +930,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: .x = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_repeat_export.carbon @@ -948,6 +967,7 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .x = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -997,5 +1017,6 @@ private export C; // CHECK:STDOUT: .Self = imports.%import_ref.5 // CHECK:STDOUT: .x = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.4 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/no_prelude/fail_export_name_member.carbon b/toolchain/check/testdata/packages/no_prelude/fail_export_name_member.carbon index c87722e435729..d7b6b823649a2 100644 --- a/toolchain/check/testdata/packages/no_prelude/fail_export_name_member.carbon +++ b/toolchain/check/testdata/packages/no_prelude/fail_export_name_member.carbon @@ -60,6 +60,7 @@ export C.n; // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .n = %.loc5_8 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_b.carbon @@ -90,5 +91,6 @@ export C.n; // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: .n = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/no_prelude/implicit_imports_entities.carbon b/toolchain/check/testdata/packages/no_prelude/implicit_imports_entities.carbon index 208c57afc1237..5dab364ad0255 100644 --- a/toolchain/check/testdata/packages/no_prelude/implicit_imports_entities.carbon +++ b/toolchain/check/testdata/packages/no_prelude/implicit_imports_entities.carbon @@ -185,6 +185,7 @@ import Other library "o1"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- c2.carbon @@ -208,6 +209,7 @@ import Other library "o1"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C2 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- ns.carbon @@ -234,6 +236,7 @@ import Other library "o1"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- o1.carbon @@ -257,6 +260,7 @@ import Other library "o1"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%O1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- o2.carbon @@ -280,6 +284,7 @@ import Other library "o1"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%O2 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- local_other.carbon @@ -303,6 +308,7 @@ import Other library "o1"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Other // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- mix_current_package.carbon @@ -359,12 +365,14 @@ import Other library "o1"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C2 [from "c2.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.5 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -424,6 +432,7 @@ import Other library "o1"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -487,6 +496,7 @@ import Other library "o1"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.4 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -562,12 +572,14 @@ import Other library "o1"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @O2 [from "o2.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.5 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -635,6 +647,7 @@ import Other library "o1"; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.3 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.2 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/packages/no_prelude/missing_prelude.carbon b/toolchain/check/testdata/packages/no_prelude/missing_prelude.carbon index 8c3afc2103a9b..211d27872b834 100644 --- a/toolchain/check/testdata/packages/no_prelude/missing_prelude.carbon +++ b/toolchain/check/testdata/packages/no_prelude/missing_prelude.carbon @@ -487,6 +487,7 @@ var n: {} = i32; // CHECK:STDOUT: .Self = constants.%Core // CHECK:STDOUT: .Int = %Int.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Int(%T.loc6_10.2: type, %N.loc6_20.2: @Int.%T.loc6_10.1 (%T)) { diff --git a/toolchain/check/testdata/pointer/arrow.carbon b/toolchain/check/testdata/pointer/arrow.carbon index bbcea4d407e8a..f3a2ac9312d1f 100644 --- a/toolchain/check/testdata/pointer/arrow.carbon +++ b/toolchain/check/testdata/pointer/arrow.carbon @@ -83,6 +83,7 @@ fn Foo(ptr: C*) { // CHECK:STDOUT: .Member = %Member.decl // CHECK:STDOUT: .field = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Member[%self.param_patt: %C](); diff --git a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon index facaa2f2f069f..dc8e6044d3435 100644 --- a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon +++ b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon @@ -116,6 +116,7 @@ fn G() -> C { // CHECK:STDOUT: .a = %.loc23_16 // CHECK:STDOUT: .b = %.loc23_28 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %i32 { diff --git a/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon b/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon index b733e0aff3b48..c64f01c49c08b 100644 --- a/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon +++ b/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon @@ -732,6 +732,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -753,6 +754,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: .n = %.loc7_16 // CHECK:STDOUT: .m = %.loc7_28 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int(%N.param_patt: Core.IntLiteral) -> type = "int.make_type_signed" [from "core.carbon"]; @@ -1275,6 +1277,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: .n = imports.%import_ref.5 // CHECK:STDOUT: .m = imports.%import_ref.6 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.3 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(constants.%N: %i32.builtin) [from "library.carbon"] { @@ -1287,6 +1290,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.9 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.8 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/returned_var.carbon b/toolchain/check/testdata/return/returned_var.carbon index 6e0bae13ebf15..65ae9193ff573 100644 --- a/toolchain/check/testdata/return/returned_var.carbon +++ b/toolchain/check/testdata/return/returned_var.carbon @@ -107,6 +107,7 @@ fn G() -> i32 { // CHECK:STDOUT: .a = %.loc12 // CHECK:STDOUT: .b = %.loc13 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %return.param_patt: %C { diff --git a/toolchain/check/testdata/struct/import.carbon b/toolchain/check/testdata/struct/import.carbon index b0a4fbae02488..a3e10a0d975a0 100644 --- a/toolchain/check/testdata/struct/import.carbon +++ b/toolchain/check/testdata/struct/import.carbon @@ -187,6 +187,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -367,6 +368,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.196 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.195 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -488,6 +490,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.195 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.194 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -608,6 +611,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.195 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.194 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/tuple/import.carbon b/toolchain/check/testdata/tuple/import.carbon index 32a90df4b979f..15aa639b1538c 100644 --- a/toolchain/check/testdata/tuple/import.carbon +++ b/toolchain/check/testdata/tuple/import.carbon @@ -202,6 +202,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.1 // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -403,6 +404,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.196 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.195 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -534,6 +536,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.195 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.194 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -654,6 +657,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%import_ref.195 // CHECK:STDOUT: complete_type_witness = imports.%import_ref.194 +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/fail_not_copyable.carbon b/toolchain/check/testdata/var/fail_not_copyable.carbon index 81726b2ea89ad..f545203c2b179 100644 --- a/toolchain/check/testdata/var/fail_not_copyable.carbon +++ b/toolchain/check/testdata/var/fail_not_copyable.carbon @@ -69,6 +69,7 @@ fn F(x: X) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%x.param_patt: %X) { diff --git a/toolchain/check/testdata/where_expr/constraints.carbon b/toolchain/check/testdata/where_expr/constraints.carbon index 0fa5cd0d04c0b..b41bbdfa2b045 100644 --- a/toolchain/check/testdata/where_expr/constraints.carbon +++ b/toolchain/check/testdata/where_expr/constraints.carbon @@ -641,6 +641,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @DoesNotImplI() { diff --git a/toolchain/check/testdata/where_expr/designator.carbon b/toolchain/check/testdata/where_expr/designator.carbon index 6ca1952b0fc21..b75ccd23b5d14 100644 --- a/toolchain/check/testdata/where_expr/designator.carbon +++ b/toolchain/check/testdata/where_expr/designator.carbon @@ -414,6 +414,7 @@ class D { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %return.param_patt: %C { @@ -463,6 +464,7 @@ class D { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() -> { diff --git a/toolchain/check/testdata/where_expr/equal_rewrite.carbon b/toolchain/check/testdata/where_expr/equal_rewrite.carbon index d14074f101cf6..03f78d2b09db3 100644 --- a/toolchain/check/testdata/where_expr/equal_rewrite.carbon +++ b/toolchain/check/testdata/where_expr/equal_rewrite.carbon @@ -1282,6 +1282,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: complete_type_witness = %complete_type +// CHECK:STDOUT: vtable_id = invalid // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/lower/handle.cpp b/toolchain/lower/handle.cpp index 7ac2b72f488c3..39f25c7bfa6b4 100644 --- a/toolchain/lower/handle.cpp +++ b/toolchain/lower/handle.cpp @@ -310,4 +310,7 @@ auto HandleInst(FunctionContext& context, SemIR::InstId inst_id, llvm::PointerType::get(context.llvm_context(), 0))); } +auto HandleInst(FunctionContext& /*context*/, SemIR::InstId /*inst_id*/, + SemIR::Vtable /*inst*/) -> void {} + } // namespace Carbon::Lower diff --git a/toolchain/sem_ir/class.h b/toolchain/sem_ir/class.h index 6eeec7dcaf517..2c0d04688a3bb 100644 --- a/toolchain/sem_ir/class.h +++ b/toolchain/sem_ir/class.h @@ -59,6 +59,8 @@ struct ClassFields { // class is defined. For an adapter, the object representation is the // non-adapter type that this class directly or transitively adapts. InstId complete_type_witness_id = InstId::Invalid; + + InstId vtable_id = InstId::Invalid; }; // A class. See EntityWithParamsBase regarding the inheritance here. diff --git a/toolchain/sem_ir/file.cpp b/toolchain/sem_ir/file.cpp index 3a750eace4a06..5629079fd5467 100644 --- a/toolchain/sem_ir/file.cpp +++ b/toolchain/sem_ir/file.cpp @@ -196,6 +196,7 @@ auto GetExprCategory(const File& file, InstId inst_id) -> ExprCategory { case RequirementRewrite::Kind: case Return::Kind: case ReturnSlotPattern::Kind: + case Vtable::Kind: case ReturnExpr::Kind: return ExprCategory::NotExpr; diff --git a/toolchain/sem_ir/formatter.cpp b/toolchain/sem_ir/formatter.cpp index 48e136932bc0e..1c006e03d66cf 100644 --- a/toolchain/sem_ir/formatter.cpp +++ b/toolchain/sem_ir/formatter.cpp @@ -283,6 +283,11 @@ class FormatterImpl { FormatName(class_info.complete_type_witness_id); out_ << "\n"; + Indent(); + out_ << "vtable_id = "; + FormatName(class_info.vtable_id); + out_ << "\n"; + CloseBrace(); } else { Semicolon(); diff --git a/toolchain/sem_ir/inst_kind.def b/toolchain/sem_ir/inst_kind.def index 49d75d91916b2..f06716c908539 100644 --- a/toolchain/sem_ir/inst_kind.def +++ b/toolchain/sem_ir/inst_kind.def @@ -120,6 +120,7 @@ CARBON_SEM_IR_INST_KIND(ValueParamPattern) CARBON_SEM_IR_INST_KIND(VarStorage) CARBON_SEM_IR_INST_KIND(VtableType) CARBON_SEM_IR_INST_KIND(VtablePtr) +CARBON_SEM_IR_INST_KIND(Vtable) CARBON_SEM_IR_INST_KIND(WhereExpr) CARBON_SEM_IR_INST_KIND(WitnessType) diff --git a/toolchain/sem_ir/stringify_type.cpp b/toolchain/sem_ir/stringify_type.cpp index ad34223995f29..43369a27dc75e 100644 --- a/toolchain/sem_ir/stringify_type.cpp +++ b/toolchain/sem_ir/stringify_type.cpp @@ -194,6 +194,7 @@ auto StringifyTypeExpr(const SemIR::File& sem_ir, InstId outer_inst_id) case SemIR::StringType::Kind: case SemIR::TypeType::Kind: case SemIR::VtableType::Kind: + case SemIR::Vtable::Kind: case SemIR::WitnessType::Kind: { // Singleton instructions use their IR name as a label. out << untyped_inst.kind().ir_name(); diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index 2b421c85f3708..4046d9309ad86 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -1491,6 +1491,14 @@ struct VtablePtr { TypeId type_id; }; +// Definition of ABI-neutral vtable information for a dynamic class. +struct Vtable { + static constexpr auto Kind = + InstKind::Vtable.Define({.ir_name = "vtable"}); + TypeId type_id; + InstBlockId virtual_functions_id; +}; + // An `expr where requirements` expression. struct WhereExpr { static constexpr auto Kind = InstKind::WhereExpr.Define(