mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Add insts for witness table entries that are unset or associated constants (#5255)
Instead of using None, use an explicit ImplWitnessTablePlaceholder in the witness table for entries that have not yet been populated, to aid debugging. This would ensure they would show up very clearly in the SemIR. This uncovered some `<invalid>` in the SemIR under erroneous conditions that have now been turned into `<error>`. Add the ImplWitnessAssociatedConstant instruction which wraps the canonical instruction found from the constant value of the rewrite constraint. This ensures that we have an instruction inside the eval block for a generic impl declaration for each rewrite constraint's value, which allows Subst to be performed to rewrite the symbolic constant of the ImplWitnessAssociatedConstant instruction to associate it with the generic. This will prevent the otherwise orphaned symbolic constant of the rewrite's value from being used which can not have a specific applied to them. While applying the new insts in InitialFacetTypeImplWitness(), rearrange the function to use less nesting. And avoid using entity names from imported instructions (as we found is not effective in deduce.cpp) and use a local instruction by going through the constant value. This PR is part of the effort to allow a rewrite to name a generic parameter, such as `impl forall [T:! type] T as Z where .X = T`, however tests for this involve a final impl so that we can typecheck that the .X value is a specific T, so the tests will come with that work. This piece is split off because introducing new instructions causes a lot of SemIR churn, and I wanted to get that done separately.
This commit is contained in:
@@ -257,6 +257,13 @@ auto EvalConstantInst(Context& context, SemIR::InstId inst_id,
|
||||
return ConstantEvalResult::NewSamePhase(inst);
|
||||
}
|
||||
|
||||
auto EvalConstantInst(Context& context,
|
||||
SemIR::ImplWitnessAssociatedConstant inst)
|
||||
-> ConstantEvalResult {
|
||||
return ConstantEvalResult::Existing(
|
||||
context.constant_values().Get(inst.inst_id));
|
||||
}
|
||||
|
||||
auto EvalConstantInst(Context& /*context*/, SemIR::ImportRefUnloaded inst)
|
||||
-> ConstantEvalResult {
|
||||
CARBON_FATAL("ImportRefUnloaded should be loaded before TryEvalInst: {0}",
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "toolchain/check/interface.h"
|
||||
#include "toolchain/check/type.h"
|
||||
#include "toolchain/check/type_completion.h"
|
||||
#include "toolchain/sem_ir/typed_insts.h"
|
||||
|
||||
namespace Carbon::Check {
|
||||
|
||||
@@ -106,8 +107,9 @@ auto InitialFacetTypeImplWitness(
|
||||
SemIR::InstId witness_inst_id = SemIR::InstId::None;
|
||||
llvm::MutableArrayRef<SemIR::InstId> table;
|
||||
{
|
||||
llvm::SmallVector<SemIR::InstId> empty_table(assoc_entities.size(),
|
||||
SemIR::InstId::None);
|
||||
llvm::SmallVector<SemIR::InstId> empty_table(
|
||||
assoc_entities.size(),
|
||||
SemIR::ImplWitnessTablePlaceholder::SingletonInstId);
|
||||
auto table_id = context.inst_blocks().Add(empty_table);
|
||||
table = context.inst_blocks().GetMutable(table_id);
|
||||
witness_inst_id = AddInst<SemIR::ImplWitness>(
|
||||
@@ -133,90 +135,94 @@ auto InitialFacetTypeImplWitness(
|
||||
continue;
|
||||
}
|
||||
auto rewrite_value = rewrite.rhs_const_id;
|
||||
if (rewrite_value == SemIR::ErrorInst::SingletonConstantId) {
|
||||
table_entry = SemIR::ErrorInst::SingletonInstId;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (table_entry.has_value()) {
|
||||
auto const_id = context.constant_values().Get(table_entry);
|
||||
if (const_id != rewrite_value &&
|
||||
rewrite_value != SemIR::ErrorInst::SingletonConstantId) {
|
||||
table_entry = SemIR::ErrorInst::SingletonInstId;
|
||||
auto decl_id = context.constant_values().GetConstantInstId(
|
||||
assoc_entities[access.index.index]);
|
||||
CARBON_CHECK(decl_id.has_value(), "Non-constant associated entity");
|
||||
if (decl_id == SemIR::ErrorInst::SingletonInstId) {
|
||||
table_entry = SemIR::ErrorInst::SingletonInstId;
|
||||
continue;
|
||||
}
|
||||
|
||||
auto assoc_constant_decl =
|
||||
context.insts().TryGetAs<SemIR::AssociatedConstantDecl>(decl_id);
|
||||
if (!assoc_constant_decl) {
|
||||
auto type_id = context.insts().Get(decl_id).type_id();
|
||||
auto type_inst = context.types().GetAsInst(type_id);
|
||||
auto fn_type = type_inst.As<SemIR::FunctionType>();
|
||||
const auto& fn = context.functions().Get(fn_type.function_id);
|
||||
CARBON_DIAGNOSTIC(RewriteForAssociatedFunction, Error,
|
||||
"rewrite specified for associated function {0}",
|
||||
SemIR::NameId);
|
||||
context.emitter().Emit(facet_type_inst_id, RewriteForAssociatedFunction,
|
||||
fn.name_id);
|
||||
table_entry = SemIR::ErrorInst::SingletonInstId;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (table_entry != SemIR::ImplWitnessTablePlaceholder::SingletonInstId) {
|
||||
if (context.constant_values().Get(table_entry) != rewrite_value) {
|
||||
// TODO: Figure out how to print the two different values
|
||||
// `const_id` & `rewrite_value` in the diagnostic
|
||||
// message.
|
||||
CARBON_DIAGNOSTIC(AssociatedConstantWithDifferentValues, Error,
|
||||
"associated constant {0} given two different values",
|
||||
SemIR::NameId);
|
||||
auto decl_id = assoc_entities[access.index.index];
|
||||
SemIR::NameId name_id = SemIR::NameId::None;
|
||||
if (auto decl = context.insts().TryGetAs<SemIR::AssociatedConstantDecl>(
|
||||
decl_id)) {
|
||||
auto& assoc_const =
|
||||
context.associated_constants().Get(decl->assoc_const_id);
|
||||
name_id = assoc_const.name_id;
|
||||
} else {
|
||||
auto import_ref = context.insts().GetAs<SemIR::AnyImportRef>(decl_id);
|
||||
const auto& entity_name =
|
||||
context.entity_names().Get(import_ref.entity_name_id);
|
||||
name_id = entity_name.name_id;
|
||||
}
|
||||
auto& assoc_const = context.associated_constants().Get(
|
||||
assoc_constant_decl->assoc_const_id);
|
||||
context.emitter().Emit(facet_type_inst_id,
|
||||
AssociatedConstantWithDifferentValues, name_id);
|
||||
AssociatedConstantWithDifferentValues,
|
||||
assoc_const.name_id);
|
||||
}
|
||||
table_entry = SemIR::ErrorInst::SingletonInstId;
|
||||
continue;
|
||||
}
|
||||
auto decl_id = context.constant_values().GetConstantInstId(
|
||||
assoc_entities[access.index.index]);
|
||||
CARBON_CHECK(decl_id.has_value(), "Non-constant associated entity");
|
||||
if (auto decl =
|
||||
context.insts().TryGetAs<SemIR::AssociatedConstantDecl>(decl_id)) {
|
||||
// If the associated constant has a symbolic type, convert the rewrite
|
||||
// value to that type now we know the value of `Self`.
|
||||
SemIR::TypeId assoc_const_type_id = decl->type_id;
|
||||
if (assoc_const_type_id.is_symbolic()) {
|
||||
// Get the type of the associated constant in this interface with this
|
||||
// value for `Self`.
|
||||
assoc_const_type_id = GetTypeForSpecificAssociatedEntity(
|
||||
context, facet_type_inst_id, interface_to_witness.specific_id,
|
||||
decl_id, context.types().GetTypeIdForTypeInstId(self_type_inst_id),
|
||||
witness_inst_id);
|
||||
// Perform the conversion of the value to the type. We skipped this when
|
||||
// forming the facet type because the type of the associated constant
|
||||
// was symbolic.
|
||||
auto converted_inst_id = ConvertToValueOfType(
|
||||
context, context.insts().GetLocId(facet_type_inst_id),
|
||||
context.constant_values().GetInstId(rewrite_value),
|
||||
assoc_const_type_id);
|
||||
rewrite_value = context.constant_values().Get(converted_inst_id);
|
||||
// The result of conversion can be non-constant even if the original
|
||||
// value was constant.
|
||||
if (!rewrite_value.is_constant() &&
|
||||
rewrite_value != SemIR::ErrorInst::SingletonConstantId) {
|
||||
const auto& assoc_const =
|
||||
context.associated_constants().Get(decl->assoc_const_id);
|
||||
CARBON_DIAGNOSTIC(
|
||||
AssociatedConstantNotConstantAfterConversion, Error,
|
||||
"associated constant {0} given value that is not constant "
|
||||
"after conversion to {1}",
|
||||
SemIR::NameId, SemIR::TypeId);
|
||||
context.emitter().Emit(facet_type_inst_id,
|
||||
AssociatedConstantNotConstantAfterConversion,
|
||||
assoc_const.name_id, assoc_const_type_id);
|
||||
rewrite_value = SemIR::ErrorInst::SingletonConstantId;
|
||||
}
|
||||
|
||||
// If the associated constant has a symbolic type, convert the rewrite
|
||||
// value to that type now we know the value of `Self`.
|
||||
SemIR::TypeId assoc_const_type_id = assoc_constant_decl->type_id;
|
||||
if (assoc_const_type_id.is_symbolic()) {
|
||||
// Get the type of the associated constant in this interface with this
|
||||
// value for `Self`.
|
||||
assoc_const_type_id = GetTypeForSpecificAssociatedEntity(
|
||||
context, facet_type_inst_id, interface_to_witness.specific_id,
|
||||
decl_id, context.types().GetTypeIdForTypeInstId(self_type_inst_id),
|
||||
witness_inst_id);
|
||||
// Perform the conversion of the value to the type. We skipped this when
|
||||
// forming the facet type because the type of the associated constant
|
||||
// was symbolic.
|
||||
auto converted_inst_id = ConvertToValueOfType(
|
||||
context, context.insts().GetLocId(facet_type_inst_id),
|
||||
context.constant_values().GetInstId(rewrite_value),
|
||||
assoc_const_type_id);
|
||||
rewrite_value = context.constant_values().Get(converted_inst_id);
|
||||
// The result of conversion can be non-constant even if the original
|
||||
// value was constant.
|
||||
if (!rewrite_value.is_constant() &&
|
||||
rewrite_value != SemIR::ErrorInst::SingletonConstantId) {
|
||||
const auto& assoc_const = context.associated_constants().Get(
|
||||
assoc_constant_decl->assoc_const_id);
|
||||
CARBON_DIAGNOSTIC(
|
||||
AssociatedConstantNotConstantAfterConversion, Error,
|
||||
"associated constant {0} given value that is not constant "
|
||||
"after conversion to {1}",
|
||||
SemIR::NameId, SemIR::TypeId);
|
||||
context.emitter().Emit(facet_type_inst_id,
|
||||
AssociatedConstantNotConstantAfterConversion,
|
||||
assoc_const.name_id, assoc_const_type_id);
|
||||
rewrite_value = SemIR::ErrorInst::SingletonConstantId;
|
||||
}
|
||||
} else {
|
||||
if (decl_id != SemIR::ErrorInst::SingletonInstId) {
|
||||
auto type_id = context.insts().Get(decl_id).type_id();
|
||||
auto type_inst = context.types().GetAsInst(type_id);
|
||||
auto fn_type = type_inst.As<SemIR::FunctionType>();
|
||||
const auto& fn = context.functions().Get(fn_type.function_id);
|
||||
CARBON_DIAGNOSTIC(RewriteForAssociatedFunction, Error,
|
||||
"rewrite specified for associated function {0}",
|
||||
SemIR::NameId);
|
||||
context.emitter().Emit(facet_type_inst_id, RewriteForAssociatedFunction,
|
||||
fn.name_id);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
auto rewrite_inst_id = context.constant_values().GetInstId(rewrite_value);
|
||||
table_entry = AddInst<SemIR::ImplWitnessAssociatedConstant>(
|
||||
context, witness_loc_id,
|
||||
{.type_id = context.insts().Get(rewrite_inst_id).type_id(),
|
||||
.inst_id = rewrite_inst_id});
|
||||
table_entry = context.constant_values().GetInstId(rewrite_value);
|
||||
}
|
||||
return witness_inst_id;
|
||||
@@ -246,8 +252,9 @@ auto AllocateFacetTypeImplWitness(Context& context,
|
||||
LoadImportRef(context, decl_id);
|
||||
}
|
||||
|
||||
llvm::SmallVector<SemIR::InstId> empty_table(assoc_entities.size(),
|
||||
SemIR::InstId::None);
|
||||
llvm::SmallVector<SemIR::InstId> empty_table(
|
||||
assoc_entities.size(),
|
||||
SemIR::ImplWitnessTablePlaceholder::SingletonInstId);
|
||||
context.inst_blocks().ReplacePlaceholder(witness_id, empty_table);
|
||||
}
|
||||
|
||||
|
||||
@@ -465,6 +465,7 @@ static auto BuildImplDecl(Context& context, Parse::AnyImplDeclId node_id,
|
||||
context.emitter().Emit(loc, ImplUnusedBinding);
|
||||
// Don't try to match the impl at all, save us work and possible future
|
||||
// diagnostics.
|
||||
FillImplWitnessWithErrors(context, impl_info);
|
||||
context.impls().Get(impl_decl.impl_id).witness_id =
|
||||
SemIR::ErrorInst::SingletonInstId;
|
||||
}
|
||||
@@ -495,6 +496,7 @@ static auto BuildImplDecl(Context& context, Parse::AnyImplDeclId node_id,
|
||||
self_type_node, self_type_id, name.implicit_params_loc_id,
|
||||
constraint_inst_id, constraint_type_id)) {
|
||||
// Don't allow the invalid impl to be used.
|
||||
FillImplWitnessWithErrors(context, impl_info);
|
||||
context.impls().Get(impl_decl.impl_id).witness_id =
|
||||
SemIR::ErrorInst::SingletonInstId;
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ static auto CheckAssociatedFunctionImplementation(
|
||||
|
||||
// Builds an initial witness from the rewrites in the facet type, if any.
|
||||
auto ImplWitnessForDeclaration(Context& context, const SemIR::Impl& impl,
|
||||
bool is_definition) -> SemIR::InstId {
|
||||
bool has_definition) -> SemIR::InstId {
|
||||
CARBON_CHECK(!impl.has_definition_started());
|
||||
|
||||
auto self_type_id = context.types().GetTypeIdForTypeInstId(impl.self_id);
|
||||
@@ -98,7 +98,7 @@ auto ImplWitnessForDeclaration(Context& context, const SemIR::Impl& impl,
|
||||
return InitialFacetTypeImplWitness(
|
||||
context, context.insts().GetLocId(impl.latest_decl_id()),
|
||||
impl.constraint_id, impl.self_id, impl.interface,
|
||||
context.generics().GetSelfSpecific(impl.generic_id), is_definition);
|
||||
context.generics().GetSelfSpecific(impl.generic_id), has_definition);
|
||||
}
|
||||
|
||||
auto ImplWitnessStartDefinition(Context& context, SemIR::Impl& impl) -> void {
|
||||
@@ -139,7 +139,8 @@ auto ImplWitnessStartDefinition(Context& context, SemIR::Impl& impl) -> void {
|
||||
CARBON_CHECK(decl_id.has_value(), "Non-constant associated entity");
|
||||
if (auto decl =
|
||||
context.insts().TryGetAs<SemIR::AssociatedConstantDecl>(decl_id)) {
|
||||
if (!witness_value.has_value()) {
|
||||
if (witness_value ==
|
||||
SemIR::ImplWitnessTablePlaceholder::SingletonInstId) {
|
||||
CARBON_DIAGNOSTIC(ImplAssociatedConstantNeedsValue, Error,
|
||||
"associated constant {0} not given a value in impl "
|
||||
"of interface {1}",
|
||||
@@ -147,7 +148,7 @@ auto ImplWitnessStartDefinition(Context& context, SemIR::Impl& impl) -> void {
|
||||
CARBON_DIAGNOSTIC(AssociatedConstantHere, Note,
|
||||
"associated constant declared here");
|
||||
context.emitter()
|
||||
.Build(impl.constraint_id, ImplAssociatedConstantNeedsValue,
|
||||
.Build(impl.definition_id, ImplAssociatedConstantNeedsValue,
|
||||
context.associated_constants()
|
||||
.Get(decl->assoc_const_id)
|
||||
.name_id,
|
||||
@@ -241,7 +242,7 @@ auto FillImplWitnessWithErrors(Context& context, SemIR::Impl& impl) -> void {
|
||||
auto witness = context.insts().GetAs<SemIR::ImplWitness>(impl.witness_id);
|
||||
auto witness_block = context.inst_blocks().GetMutable(witness.elements_id);
|
||||
for (auto& elem : witness_block) {
|
||||
if (!elem.has_value()) {
|
||||
if (elem == SemIR::ImplWitnessTablePlaceholder::SingletonInstId) {
|
||||
elem = SemIR::ErrorInst::SingletonInstId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,9 +10,12 @@
|
||||
|
||||
namespace Carbon::Check {
|
||||
|
||||
// Returns the initial witness value for a new impl declaration.
|
||||
// Returns the initial witness value for a new `impl` declaration.
|
||||
//
|
||||
// `has_definition` is whether this declaration is immediately followed by the
|
||||
// opening of the definition.
|
||||
auto ImplWitnessForDeclaration(Context& context, const SemIR::Impl& impl,
|
||||
bool is_definition) -> SemIR::InstId;
|
||||
bool has_definition) -> SemIR::InstId;
|
||||
|
||||
// Update `impl`'s witness at the start of a definition.
|
||||
auto ImplWitnessStartDefinition(Context& context, SemIR::Impl& impl) -> void;
|
||||
|
||||
@@ -107,7 +107,7 @@ var d: D* = &c;
|
||||
// CHECK:STDOUT: %Main.C = import_ref Main//base, C, unloaded
|
||||
// CHECK:STDOUT: %Main.D: type = import_ref Main//base, D, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//base, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -138,7 +138,7 @@ var d: D* = &c;
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.D = import_ref Main//base, D, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//base, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -168,8 +168,8 @@ var d: D* = &c;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.D: type = import_ref Main//export, D, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//export, inst21 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//export, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -249,8 +249,8 @@ var d: D* = &c;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.D: type = import_ref Main//export, D, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//export_orig, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//export_orig, inst21 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_orig, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//export_orig, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_orig, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+3
-3
@@ -119,7 +119,7 @@ var c: () = a_alias_alias;
|
||||
// CHECK:STDOUT: %Main.c_alias: type = import_ref Main//class1, c_alias, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.a = import_ref Main//class1, a, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//class1, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//class1, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//class1, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -164,8 +164,8 @@ var c: () = a_alias_alias;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.c_alias_alias: type = import_ref Main//class2, c_alias_alias, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.b = import_ref Main//class2, b, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//class2, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//class2, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//class2, inst23 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//class2, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -92,7 +92,7 @@ var inst: Test.A = {};
|
||||
// CHECK:STDOUT: %Test.C = import_ref Test//def, C, unloaded
|
||||
// CHECK:STDOUT: %Test.A: type = import_ref Test//def, A, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Test.import_ref.8f2: <witness> = import_ref Test//def, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Test.import_ref.2c4 = import_ref Test//def, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Test.import_ref.2c4 = import_ref Test//def, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -92,7 +92,7 @@ var a_val: a = {.v = b_val.v};
|
||||
// CHECK:STDOUT: %Main.c: type = import_ref Main//a, c, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.d: type = import_ref Main//a, d, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.146: <witness> = import_ref Main//a, loc4_22, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f99: %C.elem = import_ref Main//a, loc4_16, loaded [concrete = %.2fc]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+6
-4
@@ -17,7 +17,7 @@
|
||||
// CHECK:STDOUT: ir0: {decl_id: inst<none>, is_export: false}
|
||||
// CHECK:STDOUT: import_ir_insts: {}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {}}
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {}}
|
||||
// CHECK:STDOUT: entity_names: {}
|
||||
// CHECK:STDOUT: functions: {}
|
||||
// CHECK:STDOUT: classes: {}
|
||||
@@ -40,6 +40,7 @@
|
||||
// CHECK:STDOUT: 'inst(BoolType)': {kind: BoolType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(BoundMethodType)': {kind: BoundMethodType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(ErrorInst)': {kind: ErrorInst, type: type(Error)}
|
||||
// CHECK:STDOUT: 'inst(ImplWitnessTablePlaceholder)': {kind: ImplWitnessTablePlaceholder, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(InstType)': {kind: InstType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(IntLiteralType)': {kind: IntLiteralType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(LegacyFloatType)': {kind: LegacyFloatType, type: type(TypeType)}
|
||||
@@ -48,13 +49,14 @@
|
||||
// CHECK:STDOUT: 'inst(StringType)': {kind: StringType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(VtableType)': {kind: VtableType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(WitnessType)': {kind: WitnessType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: 'inst(TypeType)': concrete_constant(inst(TypeType))
|
||||
// CHECK:STDOUT: 'inst(AutoType)': concrete_constant(inst(AutoType))
|
||||
// CHECK:STDOUT: 'inst(BoolType)': concrete_constant(inst(BoolType))
|
||||
// CHECK:STDOUT: 'inst(BoundMethodType)': concrete_constant(inst(BoundMethodType))
|
||||
// CHECK:STDOUT: 'inst(ErrorInst)': concrete_constant(inst(ErrorInst))
|
||||
// CHECK:STDOUT: 'inst(ImplWitnessTablePlaceholder)': concrete_constant(inst(ImplWitnessTablePlaceholder))
|
||||
// CHECK:STDOUT: 'inst(InstType)': concrete_constant(inst(InstType))
|
||||
// CHECK:STDOUT: 'inst(IntLiteralType)': concrete_constant(inst(IntLiteralType))
|
||||
// CHECK:STDOUT: 'inst(LegacyFloatType)': concrete_constant(inst(LegacyFloatType))
|
||||
@@ -63,7 +65,7 @@
|
||||
// CHECK:STDOUT: 'inst(StringType)': concrete_constant(inst(StringType))
|
||||
// CHECK:STDOUT: 'inst(VtableType)': concrete_constant(inst(VtableType))
|
||||
// CHECK:STDOUT: 'inst(WitnessType)': concrete_constant(inst(WitnessType))
|
||||
// CHECK:STDOUT: inst13: concrete_constant(inst13)
|
||||
// CHECK:STDOUT: inst14: concrete_constant(inst14)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
@@ -71,5 +73,5 @@
|
||||
// CHECK:STDOUT: import_refs: {}
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block4:
|
||||
// CHECK:STDOUT: 0: inst13
|
||||
// CHECK:STDOUT: 0: inst14
|
||||
// CHECK:STDOUT: ...
|
||||
|
||||
@@ -204,7 +204,7 @@ var c: Other.C = {};
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//other_define, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.8f2: <witness> = import_ref Other//other_define, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//other_define, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//other_define, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -312,7 +312,7 @@ var c: Other.C = {};
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//other_define, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.8f2: <witness> = import_ref Other//other_define, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//other_define, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//other_define, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -372,7 +372,7 @@ var c: Other.C = {};
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//other_define, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.8f2: <witness> = import_ref Other//other_define, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//other_define, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//other_define, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -99,7 +99,7 @@ var a: Incomplete;
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//a, loc5_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.fd7 = import_ref Main//a, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.fd7 = import_ref Main//a, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+5
-5
@@ -295,10 +295,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab: type = import_ref Main//adapt_specific_type, loc4_9, loaded [symbolic = @C.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b5f: <witness> = import_ref Main//adapt_specific_type, loc6_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.433)]
|
||||
// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//adapt_specific_type, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//adapt_specific_type, inst27 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.262: @C.%C.elem (%C.elem.66c) = import_ref Main//adapt_specific_type, loc5_8, loaded [concrete = %.22b]
|
||||
// CHECK:STDOUT: %Main.import_ref.709: <witness> = import_ref Main//adapt_specific_type, loc10_1, loaded [concrete = constants.%complete_type.c07]
|
||||
// CHECK:STDOUT: %Main.import_ref.feb = import_ref Main//adapt_specific_type, inst44 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.feb = import_ref Main//adapt_specific_type, inst45 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -664,10 +664,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab: type = import_ref Main//extend_adapt_specific_type_library, loc7_9, loaded [symbolic = @C.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b5f: <witness> = import_ref Main//extend_adapt_specific_type_library, loc9_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.433)]
|
||||
// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//extend_adapt_specific_type_library, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//extend_adapt_specific_type_library, inst27 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.262: @C.%C.elem (%C.elem.66c) = import_ref Main//extend_adapt_specific_type_library, loc8_8, loaded [concrete = %.22b]
|
||||
// CHECK:STDOUT: %Main.import_ref.709: <witness> = import_ref Main//extend_adapt_specific_type_library, loc13_1, loaded [concrete = constants.%complete_type.c07]
|
||||
// CHECK:STDOUT: %Main.import_ref.feb = import_ref Main//extend_adapt_specific_type_library, inst44 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.feb = import_ref Main//extend_adapt_specific_type_library, inst45 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.19d12e.2: type = import_ref Main//extend_adapt_specific_type_library, loc12_21, loaded [concrete = constants.%C.239]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -895,7 +895,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab: type = import_ref Main//adapt_generic_type, loc4_15, loaded [symbolic = @Adapter.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.fb3: <witness> = import_ref Main//adapt_generic_type, loc6_1, loaded [symbolic = @Adapter.%complete_type (constants.%complete_type.f87)]
|
||||
// CHECK:STDOUT: %Main.import_ref.9a3 = import_ref Main//adapt_generic_type, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.9a3 = import_ref Main//adapt_generic_type, inst27 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -283,14 +283,14 @@ fn H() {
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.e8d: <witness> = import_ref Main//extend_generic_base, loc10_1, loaded [concrete = constants.%complete_type.09d]
|
||||
// CHECK:STDOUT: %Main.import_ref.446 = import_ref Main//extend_generic_base, inst44 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.446 = import_ref Main//extend_generic_base, inst45 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.a92: %Param.elem = import_ref Main//extend_generic_base, loc9_8, loaded [concrete = %.be7]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab: type = import_ref Main//extend_generic_base, loc4_17, loaded [symbolic = @Base.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b5f: <witness> = import_ref Main//extend_generic_base, loc6_1, loaded [symbolic = @Base.%complete_type (constants.%complete_type.433)]
|
||||
// CHECK:STDOUT: %Main.import_ref.8e0 = import_ref Main//extend_generic_base, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8e0 = import_ref Main//extend_generic_base, inst27 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.7f7: @Base.%Base.elem (%Base.elem.9af) = import_ref Main//extend_generic_base, loc5_8, loaded [concrete = %.e66]
|
||||
// CHECK:STDOUT: %Main.import_ref.bd0: <witness> = import_ref Main//extend_generic_base, loc14_1, loaded [concrete = constants.%complete_type.b07]
|
||||
// CHECK:STDOUT: %Main.import_ref.f6c = import_ref Main//extend_generic_base, inst81 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f6c = import_ref Main//extend_generic_base, inst82 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.d24 = import_ref Main//extend_generic_base, loc13_27, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.77a301.2: type = import_ref Main//extend_generic_base, loc13_26, loaded [concrete = constants.%Base.7a8]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -791,11 +791,11 @@ fn H() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//extend_generic_symbolic_base, loc4_14, loaded [symbolic = @X.%U (constants.%U)]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//extend_generic_symbolic_base, loc6_1, loaded [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: %Main.import_ref.e8e = import_ref Main//extend_generic_symbolic_base, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e8e = import_ref Main//extend_generic_symbolic_base, inst27 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b8a: @X.%G.type (%G.type.56f312.1) = import_ref Main//extend_generic_symbolic_base, loc5_15, loaded [symbolic = @X.%G (constants.%G.b504c4.1)]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//extend_generic_symbolic_base, loc8_9, loaded [symbolic = @C.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.93f: <witness> = import_ref Main//extend_generic_symbolic_base, loc10_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.768)]
|
||||
// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//extend_generic_symbolic_base, inst65 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//extend_generic_symbolic_base, inst66 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.65d = import_ref Main//extend_generic_symbolic_base, loc9_20, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.561eb2.2: type = import_ref Main//extend_generic_symbolic_base, loc9_19, loaded [symbolic = @C.%X (constants.%X.75b6d8.2)]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.3: type = import_ref Main//extend_generic_symbolic_base, loc4_14, loaded [symbolic = @X.%U (constants.%U)]
|
||||
|
||||
+3
-3
@@ -300,7 +300,7 @@ class Class(U:! type) {
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//foo, loc4_13, loaded [symbolic = @Class.%T.1 (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.eb1: <witness> = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.a68]
|
||||
// CHECK:STDOUT: %Main.import_ref.3c0 = import_ref Main//foo, inst34 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3c0 = import_ref Main//foo, inst35 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.051 = import_ref Main//foo, loc7_8, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.570 = import_ref Main//foo, loc8_17, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.3: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)]
|
||||
@@ -476,7 +476,7 @@ class Class(U:! type) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.eb1: <witness> = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.54b]
|
||||
// CHECK:STDOUT: %Main.import_ref.3c0 = import_ref Main//foo, inst34 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3c0 = import_ref Main//foo, inst35 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e76: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem.28a) = import_ref Main//foo, loc7_8, loaded [concrete = %.364]
|
||||
// CHECK:STDOUT: %Main.import_ref.a52: @CompleteClass.%F.type (%F.type.14f) = import_ref Main//foo, loc8_17, loaded [symbolic = @CompleteClass.%F (constants.%F.874)]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)]
|
||||
@@ -666,7 +666,7 @@ class Class(U:! type) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.eb1: <witness> = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.a68]
|
||||
// CHECK:STDOUT: %Main.import_ref.3c0 = import_ref Main//foo, inst34 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3c0 = import_ref Main//foo, inst35 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.051 = import_ref Main//foo, loc7_8, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.570 = import_ref Main//foo, loc8_17, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)]
|
||||
|
||||
+5
-5
@@ -208,16 +208,16 @@ fn Run() {
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.1: <witness> = import_ref Main//a, loc5_1, loaded [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: %Main.import_ref.fd7 = import_ref Main//a, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.fd7 = import_ref Main//a, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.709: <witness> = import_ref Main//a, loc9_1, loaded [concrete = constants.%complete_type.c07]
|
||||
// CHECK:STDOUT: %Main.import_ref.845 = import_ref Main//a, inst22 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.845 = import_ref Main//a, inst23 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4d2: %Field.elem = import_ref Main//a, loc8_8, loaded [concrete = %.d33]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//a, loc16_1, loaded [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: %Main.import_ref.39e731.1 = import_ref Main//a, inst60 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.39e731.1 = import_ref Main//a, inst61 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.760: %F.type = import_ref Main//a, loc14_21, loaded [concrete = constants.%F]
|
||||
// CHECK:STDOUT: %Main.import_ref.26e: %G.type = import_ref Main//a, loc15_27, loaded [concrete = constants.%G]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.3: <witness> = import_ref Main//a, loc16_1, loaded [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: %Main.import_ref.39e731.2 = import_ref Main//a, inst60 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.39e731.2 = import_ref Main//a, inst61 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.42a = import_ref Main//a, loc14_21, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.67a = import_ref Main//a, loc15_27, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
@@ -364,5 +364,5 @@ fn Run() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F[%self.param_patt: %ForwardDeclared.7b34f2.1]() [from "a.carbon"];
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @G[addr <unexpected>.inst1143: %ptr.6cf]() [from "a.carbon"];
|
||||
// CHECK:STDOUT: fn @G[addr <unexpected>.inst1144: %ptr.6cf]() [from "a.carbon"];
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+2
-2
@@ -181,13 +181,13 @@ fn Run() {
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.239: <witness> = import_ref Main//a, loc10_1, loaded [concrete = constants.%complete_type.90f]
|
||||
// CHECK:STDOUT: %Main.import_ref.1f3 = import_ref Main//a, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.1f3 = import_ref Main//a, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e8f: %F.type = import_ref Main//a, loc5_21, loaded [concrete = constants.%F]
|
||||
// CHECK:STDOUT: %Main.import_ref.8bf = import_ref Main//a, loc6_26, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e67: %Base.elem = import_ref Main//a, loc8_8, loaded [concrete = %.720]
|
||||
// CHECK:STDOUT: %Main.import_ref.2e4 = import_ref Main//a, loc9_13, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c5f: <witness> = import_ref Main//a, loc14_1, loaded [concrete = constants.%complete_type.15c]
|
||||
// CHECK:STDOUT: %Main.import_ref.9a9 = import_ref Main//a, inst77 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.9a9 = import_ref Main//a, inst78 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.7e5 = import_ref Main//a, loc13_20, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.a21640.2: type = import_ref Main//a, loc13_16, loaded [concrete = constants.%Base]
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+8
-8
@@ -149,7 +149,7 @@ var ptr: E* = &val;
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//a, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -219,7 +219,7 @@ var ptr: E* = &val;
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//a, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -292,7 +292,7 @@ var ptr: E* = &val;
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//a, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -365,7 +365,7 @@ var ptr: E* = &val;
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//a, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -439,8 +439,8 @@ var ptr: E* = &val;
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//b, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//b, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//b, inst23 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//b, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -516,8 +516,8 @@ var ptr: E* = &val;
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//b, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//b, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//b, inst23 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//b, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -85,7 +85,7 @@ fn Run() {
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.72d: <witness> = import_ref Main//a, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.3a6 = import_ref Main//a, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3a6 = import_ref Main//a, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4e0 = import_ref Main//a, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -107,7 +107,7 @@ fn Run() {
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.b93: <witness> = import_ref Main//a, loc11_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.3a6 = import_ref Main//a, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3a6 = import_ref Main//a, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.455: %Cycle.elem = import_ref Main//a, loc10_8, loaded [concrete = %.354]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+12
-12
@@ -266,15 +266,15 @@ fn G() { F({}); }
|
||||
// CHECK:STDOUT: %Main.ExplicitReturn: type = import_ref Main//types, ExplicitReturn, loaded [concrete = constants.%ExplicitReturn]
|
||||
// CHECK:STDOUT: %Main.WithAddr: type = import_ref Main//types, WithAddr, loaded [concrete = constants.%WithAddr]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.1: <witness> = import_ref Main//types, loc7_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.f42 = import_ref Main//types, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f42 = import_ref Main//types, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b5b = import_ref Main//types, loc5_22, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.7fe: %destroy.type.bc5 = import_ref Main//types, loc6_27, loaded [concrete = constants.%destroy.60f]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//types, loc12_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.ee7 = import_ref Main//types, inst37 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ee7 = import_ref Main//types, inst38 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b14 = import_ref Main//types, loc10_30, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.83a: %destroy.type.dfa = import_ref Main//types, loc11_33, loaded [concrete = constants.%destroy.539]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.3: <witness> = import_ref Main//types, loc17_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//types, inst62 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//types, inst63 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.1cb = import_ref Main//types, loc15_24, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.54e: %destroy.type.02f = import_ref Main//types, loc16_33, loaded [concrete = constants.%destroy.8d0]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -359,7 +359,7 @@ fn G() { F({}); }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @destroy.2[%self.param_patt: %ExplicitReturn]() -> %empty_tuple.type [from "types.carbon"];
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @destroy.3[addr <unexpected>.inst82: %ptr.b4e]() [from "types.carbon"];
|
||||
// CHECK:STDOUT: fn @destroy.3[addr <unexpected>.inst83: %ptr.b4e]() [from "types.carbon"];
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- nested_scope.carbon
|
||||
// CHECK:STDOUT:
|
||||
@@ -387,15 +387,15 @@ fn G() { F({}); }
|
||||
// CHECK:STDOUT: %Main.ExplicitReturn: type = import_ref Main//types, ExplicitReturn, loaded [concrete = constants.%ExplicitReturn]
|
||||
// CHECK:STDOUT: %Main.WithAddr: type = import_ref Main//types, WithAddr, loaded [concrete = constants.%WithAddr]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.1: <witness> = import_ref Main//types, loc7_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.f42 = import_ref Main//types, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f42 = import_ref Main//types, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b5b = import_ref Main//types, loc5_22, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.7fe: %destroy.type.bc5 = import_ref Main//types, loc6_27, loaded [concrete = constants.%destroy.60f]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//types, loc12_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.ee7 = import_ref Main//types, inst37 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ee7 = import_ref Main//types, inst38 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b14 = import_ref Main//types, loc10_30, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.83a: %destroy.type.dfa = import_ref Main//types, loc11_33, loaded [concrete = constants.%destroy.539]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.3: <witness> = import_ref Main//types, loc17_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//types, inst62 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//types, inst63 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.1cb = import_ref Main//types, loc15_24, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.54e: %destroy.type.02f = import_ref Main//types, loc16_33, loaded [concrete = constants.%destroy.8d0]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -496,7 +496,7 @@ fn G() { F({}); }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @destroy.2[%self.param_patt: %ExplicitReturn]() -> %empty_tuple.type [from "types.carbon"];
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @destroy.3[addr <unexpected>.inst82: %ptr.b4e]() [from "types.carbon"];
|
||||
// CHECK:STDOUT: fn @destroy.3[addr <unexpected>.inst83: %ptr.b4e]() [from "types.carbon"];
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- temp.carbon
|
||||
// CHECK:STDOUT:
|
||||
@@ -529,15 +529,15 @@ fn G() { F({}); }
|
||||
// CHECK:STDOUT: %Main.ExplicitReturn: type = import_ref Main//types, ExplicitReturn, loaded [concrete = constants.%ExplicitReturn]
|
||||
// CHECK:STDOUT: %Main.WithAddr: type = import_ref Main//types, WithAddr, loaded [concrete = constants.%WithAddr]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.1: <witness> = import_ref Main//types, loc7_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.f42 = import_ref Main//types, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f42 = import_ref Main//types, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.784: %Make.type.bc9 = import_ref Main//types, loc5_22, loaded [concrete = constants.%Make.1be]
|
||||
// CHECK:STDOUT: %Main.import_ref.7fe: %destroy.type.bc5 = import_ref Main//types, loc6_27, loaded [concrete = constants.%destroy.60f]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//types, loc12_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.ee7 = import_ref Main//types, inst37 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ee7 = import_ref Main//types, inst38 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8e0: %Make.type.378 = import_ref Main//types, loc10_30, loaded [concrete = constants.%Make.960]
|
||||
// CHECK:STDOUT: %Main.import_ref.83a: %destroy.type.dfa = import_ref Main//types, loc11_33, loaded [concrete = constants.%destroy.539]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.3: <witness> = import_ref Main//types, loc17_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//types, inst62 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//types, inst63 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.974: %Make.type.e14 = import_ref Main//types, loc15_24, loaded [concrete = constants.%Make.b0a]
|
||||
// CHECK:STDOUT: %Main.import_ref.54e: %destroy.type.02f = import_ref Main//types, loc16_33, loaded [concrete = constants.%destroy.8d0]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -622,7 +622,7 @@ fn G() { F({}); }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Make.3() -> %WithAddr [from "types.carbon"];
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @destroy.3[addr <unexpected>.inst92: %ptr.b4e]() [from "types.carbon"];
|
||||
// CHECK:STDOUT: fn @destroy.3[addr <unexpected>.inst93: %ptr.b4e]() [from "types.carbon"];
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- fail_recovery.carbon
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -72,7 +72,7 @@ var c: C = {};
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//base, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -101,8 +101,8 @@ var c: C = {};
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//export, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//export, inst20 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst21 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//export, inst21 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+2
-2
@@ -606,7 +606,7 @@ extern class C;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//def, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//def, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//def, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -634,7 +634,7 @@ extern class C;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//def, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//def, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//def, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -439,7 +439,7 @@ fn Var5() {
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.Abstract: type = import_ref Main//lib, Abstract, loaded [concrete = constants.%Abstract]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//lib, loc3_26, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.ee1 = import_ref Main//lib, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ee1 = import_ref Main//lib, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -448,7 +448,7 @@ fn Var5() {
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.Abstract: type = import_ref Main//lib, Abstract, loaded [concrete = constants.%Abstract]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//lib, loc3_26, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.ee1 = import_ref Main//lib, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ee1 = import_ref Main//lib, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -157,7 +157,7 @@ class B {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//redecl_after_def, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//redecl_after_def, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//redecl_after_def, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -211,7 +211,7 @@ class B {}
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//redef_after_def, C, loaded [concrete = constants.%C.f794a0.1]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//redef_after_def, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//redef_after_def, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//redef_after_def, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -210,7 +210,7 @@ private class Redecl {}
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Test.Def: type = import_ref Test//def, Def, loaded [concrete = constants.%Def]
|
||||
// CHECK:STDOUT: %Test.import_ref.8f2: <witness> = import_ref Test//def, loc4_20, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Test.import_ref.4ce = import_ref Test//def, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Test.import_ref.4ce = import_ref Test//def, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -323,7 +323,7 @@ private class Redecl {}
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Test.ForwardWithDef: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [concrete = constants.%ForwardWithDef]
|
||||
// CHECK:STDOUT: %Test.import_ref.8f2: <witness> = import_ref Test//forward_with_def, loc6_23, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Test.import_ref.414 = import_ref Test//forward_with_def, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Test.import_ref.414 = import_ref Test//forward_with_def, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -156,7 +156,7 @@ var x: () = D.C.F();
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//a, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//a, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2cf = import_ref Main//a, loc5_10, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -200,9 +200,9 @@ var x: () = D.C.F();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//c, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//c, inst20 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//c, inst21 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.230 = import_ref Main//c, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//c, inst21 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//c, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.230 = import_ref Main//c, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -261,7 +261,7 @@ var x: () = D.C.F();
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//a, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//a, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.943: %F.type = import_ref Main//a, loc5_10, loaded [concrete = constants.%F]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -315,9 +315,9 @@ var x: () = D.C.F();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//c, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//c, inst20 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//c, inst21 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5d3: %F.type = import_ref Main//c, inst22 [indirect], loaded [concrete = constants.%F]
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//c, inst21 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//c, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5d3: %F.type = import_ref Main//c, inst23 [indirect], loaded [concrete = constants.%F]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -370,9 +370,9 @@ var x: () = D.C.F();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//c, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//c, inst20 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//c, inst21 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5d3: %F.type = import_ref Main//c, inst22 [indirect], loaded [concrete = constants.%F]
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//c, inst21 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//c, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5d3: %F.type = import_ref Main//c, inst23 [indirect], loaded [concrete = constants.%F]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -427,11 +427,11 @@ var x: () = D.C.F();
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.D: type = import_ref Main//e, D, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//e, loc8_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//e, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//e, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.bf1: type = import_ref Main//e, loc7_9, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f3: <witness> = import_ref Main//e, inst23 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//e, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c85: %F.type = import_ref Main//e, inst25 [indirect], loaded [concrete = constants.%F]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f3: <witness> = import_ref Main//e, inst24 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//e, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c85: %F.type = import_ref Main//e, inst26 [indirect], loaded [concrete = constants.%F]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -495,11 +495,11 @@ var x: () = D.C.F();
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.D: type = import_ref Main//e, D, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//e, loc8_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//e, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//e, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.bf1: type = import_ref Main//e, loc7_9, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f3: <witness> = import_ref Main//e, inst23 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//e, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c85: %F.type = import_ref Main//e, inst25 [indirect], loaded [concrete = constants.%F]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f3: <witness> = import_ref Main//e, inst24 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//e, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c85: %F.type = import_ref Main//e, inst26 [indirect], loaded [concrete = constants.%F]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -567,7 +567,7 @@ fn Base.F[addr self: Base*]() {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//two_file, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.D: type = import_ref Main//two_file, D, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//two_file, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f97b44.1: %C = import_ref Main//two_file, loc7_11, loaded [symbolic = @Foo.%a.1 (constants.%a)]
|
||||
// CHECK:STDOUT: %Main.import_ref.f97b44.2: %C = import_ref Main//two_file, loc8_11, loaded [symbolic = @Bar.%a.1 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -940,7 +940,7 @@ fn Base.F[addr self: Base*]() {
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//alias_two_file, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//alias_two_file, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f97: %C = import_ref Main//alias_two_file, loc6_11, loaded [symbolic = @Foo.%a.1 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+3
-3
@@ -413,7 +413,7 @@ class T2 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Modifiers.Base: type = import_ref Modifiers//default, Base, loaded [concrete = constants.%Base]
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.05e: <witness> = import_ref Modifiers//default, loc6_1, loaded [concrete = constants.%complete_type.513]
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.1f3 = import_ref Modifiers//default, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.1f3 = import_ref Modifiers//default, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.2cc = import_ref Modifiers//default, loc5_29, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -518,7 +518,7 @@ class T2 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Modifiers.Base: type = import_ref Modifiers//default, Base, loaded [concrete = constants.%Base]
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.05e: <witness> = import_ref Modifiers//default, loc6_1, loaded [concrete = constants.%complete_type.513]
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.1f3 = import_ref Modifiers//default, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.1f3 = import_ref Modifiers//default, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.2cc = import_ref Modifiers//default, loc5_29, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -593,7 +593,7 @@ class T2 {
|
||||
// CHECK:STDOUT: %Modifiers.Base: type = import_ref Modifiers//default, Base, loaded [concrete = constants.%Base]
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.ace = import_ref Modifiers//default, loc6_1, unloaded
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.05e: <witness> = import_ref Modifiers//default, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.1f3 = import_ref Modifiers//default, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.1f3 = import_ref Modifiers//default, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Modifiers.import_ref.2cc = import_ref Modifiers//default, loc5_29, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+2
-2
@@ -130,10 +130,10 @@ fn F() {
|
||||
// CHECK:STDOUT: .BitAnd = %Core.BitAnd
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0.d45]
|
||||
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.51c: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T.8b3)]
|
||||
// CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T.8b3)]
|
||||
|
||||
Vendored
+6
-6
@@ -141,10 +141,10 @@ fn CallsWithTypeExplicit(U:! type) {
|
||||
// CHECK:STDOUT: .BitAnd = %Core.BitAnd
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.51c: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.b81)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.%T (constants.%T.8b3)]
|
||||
// CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.%T (constants.%T.8b3)]
|
||||
@@ -420,10 +420,10 @@ fn CallsWithTypeExplicit(U:! type) {
|
||||
// CHECK:STDOUT: .BitAnd = %Core.BitAnd
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.51c: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.b81)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.%T (constants.%T)]
|
||||
@@ -734,10 +734,10 @@ fn CallsWithTypeExplicit(U:! type) {
|
||||
// CHECK:STDOUT: .BitAnd = %Core.BitAnd
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.51c: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
||||
|
||||
Vendored
+2
-2
@@ -103,11 +103,11 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//prelude, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc12_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//prelude, inst66 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//prelude, inst67 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//prelude, loc14_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)]
|
||||
// CHECK:STDOUT: %Core.Convert: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//prelude, Convert, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//prelude, loc12_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//prelude, inst66 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//prelude, inst67 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//prelude, loc14_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -177,10 +177,10 @@ fn F(T: Z(C)) -> T.(Z(C).X) {
|
||||
// CHECK:STDOUT: .BitAnd = %Core.BitAnd
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.51c: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.b81)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.%T (constants.%T)]
|
||||
@@ -402,6 +402,7 @@ fn F(T: Z(C)) -> T.(Z(C).X) {
|
||||
// CHECK:STDOUT: %T.loc8_20.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_20.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_tuple.type), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
|
||||
// CHECK:STDOUT: %T.patt: %Z.type.049 = binding_pattern T
|
||||
// CHECK:STDOUT: %T.param_patt: %Z.type.049 = value_param_pattern %T.patt, call_param0
|
||||
|
||||
+3
-2
@@ -892,6 +892,7 @@ interface J {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_tuple.type) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %v.patt: <error> = binding_pattern v
|
||||
// CHECK:STDOUT: %.loc12_1: <error> = var_pattern %v.patt
|
||||
@@ -1173,10 +1174,10 @@ interface J {
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [concrete] {
|
||||
// CHECK:STDOUT: import Core//default
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//to_import, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//to_import, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.33a = import_ref Main//to_import, loc4_8, unloaded
|
||||
// CHECK:STDOUT: %Main.T = import_ref Main//to_import, T, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//to_import, inst16 [no loc], loaded [symbolic = constants.%Self.826]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//to_import, inst17 [no loc], loaded [symbolic = constants.%Self.826]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+6
-6
@@ -671,13 +671,13 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
|
||||
// CHECK:STDOUT: import Core//default
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc11_14, loaded [symbolic = @As.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.a7c = import_ref Core//default, inst84 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.a7c = import_ref Core//default, inst85 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.5e1: @As.%As.assoc_type (%As.assoc_type.760) = import_ref Core//default, loc12_32, loaded [symbolic = @As.%assoc0 (constants.%assoc0.97d)]
|
||||
// CHECK:STDOUT: %Core.Convert.313 = import_ref Core//default, Convert, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc11_14, loaded [symbolic = @As.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.996: @As.%As.type (%As.type.eed) = import_ref Core//default, inst84 [no loc], loaded [symbolic = @As.%Self (constants.%Self.65a)]
|
||||
// CHECK:STDOUT: %Core.import_ref.996: @As.%As.type (%As.type.eed) = import_ref Core//default, inst85 [no loc], loaded [symbolic = @As.%Self (constants.%Self.65a)]
|
||||
// CHECK:STDOUT: %Core.import_ref.708: @As.%Convert.type (%Convert.type.843) = import_ref Core//default, loc12_32, loaded [symbolic = @As.%Convert (constants.%Convert.95f)]
|
||||
// CHECK:STDOUT: %Core.import_ref.07c = import_ref Core//default, inst40 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.07c = import_ref Core//default, inst41 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.f6c: %Add.assoc_type = import_ref Core//default, loc8_41, loaded [concrete = constants.%assoc0.c7d]
|
||||
// CHECK:STDOUT: %Core.Op = import_ref Core//default, Op, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.595: <witness> = import_ref Core//default, loc19_17, loaded [concrete = constants.%impl_witness.bd0]
|
||||
@@ -687,19 +687,19 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
|
||||
// CHECK:STDOUT: %Core.import_ref.8721d7.1: type = import_ref Core//default, loc23_17, loaded [concrete = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %Core.import_ref.1e5: type = import_ref Core//default, loc23_28, loaded [concrete = constants.%As.type.a6d]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.3: type = import_ref Core//default, loc15_22, loaded [symbolic = @ImplicitAs.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst125 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst126 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc16_32, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc001e.2)]
|
||||
// CHECK:STDOUT: %Core.Convert.e69 = import_ref Core//default, Convert, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.de9: <witness> = import_ref Core//default, loc27_38, loaded [concrete = constants.%impl_witness.39c]
|
||||
// CHECK:STDOUT: %Core.import_ref.8721d7.2: type = import_ref Core//default, loc27_17, loaded [concrete = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %Core.import_ref.4d9: type = import_ref Core//default, loc27_36, loaded [concrete = constants.%ImplicitAs.type.61e]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.4: type = import_ref Core//default, loc15_22, loaded [symbolic = @ImplicitAs.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst125 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst126 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.207961.1 = import_ref Core//default, loc16_32, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.3b6: <witness> = import_ref Core//default, loc31_38, loaded [concrete = constants.%impl_witness.8f3]
|
||||
// CHECK:STDOUT: %Core.import_ref.c8c7cd.2: type = import_ref Core//default, loc31_6, loaded [concrete = constants.%i32.builtin]
|
||||
// CHECK:STDOUT: %Core.import_ref.efb: type = import_ref Core//default, loc31_36, loaded [concrete = constants.%ImplicitAs.type.2fd]
|
||||
// CHECK:STDOUT: %Core.import_ref.442: %Add.type = import_ref Core//default, inst40 [no loc], loaded [symbolic = constants.%Self.a99]
|
||||
// CHECK:STDOUT: %Core.import_ref.442: %Add.type = import_ref Core//default, inst41 [no loc], loaded [symbolic = constants.%Self.a99]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
Vendored
+1
-1
@@ -206,7 +206,7 @@ fn CallFAndGIncomplete() {
|
||||
// CHECK:STDOUT: %Main.ReturnDUsed: %ReturnDUsed.type = import_ref Main//incomplete_return, ReturnDUsed, loaded [concrete = constants.%ReturnDUsed]
|
||||
// CHECK:STDOUT: %Main.Call = import_ref Main//incomplete_return, Call, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//incomplete_return, loc37_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//incomplete_return, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//incomplete_return, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+2
-2
@@ -518,7 +518,7 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//two_file, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.D: type = import_ref Main//two_file, D, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//two_file, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -850,7 +850,7 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//alias_two_file, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//alias_two_file, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+1
-1
@@ -135,7 +135,7 @@ fn B() {
|
||||
// CHECK:STDOUT: import Lib//default
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Lib.Z: type = import_ref Lib//default, Z, loaded [concrete = constants.%Z.type]
|
||||
// CHECK:STDOUT: %Lib.import_ref.f88 = import_ref Lib//default, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Lib.import_ref.f88 = import_ref Lib//default, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Lib.A: %A.type.fad = import_ref Lib//default, A, loaded [concrete = constants.%A.7a0]
|
||||
// CHECK:STDOUT: %Lib.import_ref.be7: %Z.type = import_ref Lib//default, loc4_6, loaded [symbolic = @A.2.%T (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -94,7 +94,7 @@ class C {
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %x: %i32 = bind_name x, <unexpected>.inst1065.loc27_14
|
||||
// CHECK:STDOUT: %x: %i32 = bind_name x, <unexpected>.inst1066.loc27_14
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %y.patt: %i32 = binding_pattern y
|
||||
// CHECK:STDOUT: %.loc37: %i32 = var_pattern %y.patt
|
||||
|
||||
@@ -176,6 +176,7 @@ fn CallF() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc8: <witness> = impl_witness (constants.%empty_struct) [concrete = constants.%impl_witness.a4f]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant.loc8: %empty_struct_type = impl_witness_assoc_constant constants.%empty_struct [concrete = constants.%empty_struct]
|
||||
// CHECK:STDOUT: impl_decl @impl.a12 [concrete] {} {
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
@@ -200,6 +201,7 @@ fn CallF() {
|
||||
// CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc10_15.2(constants.%int_0.5c6) [concrete = constants.%int_0.6a9]
|
||||
// CHECK:STDOUT: %.loc10_15.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9]
|
||||
// CHECK:STDOUT: %.loc10_15.2: %i32 = converted constants.%int_0.5c6, %.loc10_15.1 [concrete = constants.%int_0.6a9]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant.loc10: %i32 = impl_witness_assoc_constant constants.%int_0.6a9 [concrete = constants.%int_0.6a9]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I {
|
||||
@@ -312,6 +314,7 @@ fn CallF() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (<error>) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %.loc15: %empty_struct_type = converted constants.%int_0, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: <error> = impl_witness_assoc_constant <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I {
|
||||
@@ -445,6 +448,7 @@ fn CallF() {
|
||||
// CHECK:STDOUT: %.loc18_13.2: init %C = converted constants.%empty_tuple, %Convert.call
|
||||
// CHECK:STDOUT: %.loc18_13.3: ref %C = temporary %.loc18_13.1, %.loc18_13.2
|
||||
// CHECK:STDOUT: %.loc18_13.4: %C = bind_value %.loc18_13.3
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: <error> = impl_witness_assoc_constant <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I {
|
||||
|
||||
@@ -37,7 +37,7 @@ class C {
|
||||
// CHECK:STDOUT: %assoc0: %GenericInterface.assoc_type = assoc_entity element0, @GenericInterface.%F.decl [symbolic]
|
||||
// CHECK:STDOUT: %C: type = class_type @C [concrete]
|
||||
// CHECK:STDOUT: %require_complete.70f: <witness> = require_complete_type %GenericInterface.type.3fe [symbolic]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (invalid), @impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (<error>), @impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %F.type.2cb: type = fn_type @F.2, @impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %F.4b1: %F.type.2cb = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
@@ -104,7 +104,7 @@ class C {
|
||||
// CHECK:STDOUT: %T.patt.loc20_23.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc20_23.2 (constants.%T.patt)]
|
||||
// CHECK:STDOUT: %GenericInterface.type.loc20_54.2: type = facet_type <@GenericInterface, @GenericInterface(%T.loc20_23.2)> [symbolic = %GenericInterface.type.loc20_54.2 (constants.%GenericInterface.type.3fe)]
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type @impl.%GenericInterface.type.loc20_54.2 (%GenericInterface.type.3fe) [symbolic = %require_complete (constants.%require_complete.70f)]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (invalid), @impl(%T.loc20_23.2) [symbolic = %impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (<error>), @impl(%T.loc20_23.2) [symbolic = %impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc20_23.2) [symbolic = %F.type (constants.%F.type.2cb)]
|
||||
@@ -137,7 +137,7 @@ class C {
|
||||
// CHECK:STDOUT: %GenericInterface.type.loc20_54.1: type = facet_type <@GenericInterface, @GenericInterface(constants.%T)> [symbolic = %GenericInterface.type.loc20_54.2 (constants.%GenericInterface.type.3fe)]
|
||||
// CHECK:STDOUT: %T.loc20_23.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc20_23.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (invalid), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (<error>), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT: %.loc20: type = specific_constant @impl.%GenericInterface.type.loc20_54.1, @impl(constants.%T) [symbolic = constants.%GenericInterface.type.3fe]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: complete_type_witness = %complete_type
|
||||
|
||||
+3
-3
@@ -1035,7 +1035,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic]
|
||||
// CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (invalid), @impl(%T, %U) [symbolic]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (<error>), @impl(%T, %U) [symbolic]
|
||||
// CHECK:STDOUT: %F.type.56e: type = fn_type @F.2, @impl(%T, %U) [symbolic]
|
||||
// CHECK:STDOUT: %F.9b8: %F.type.56e = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T [symbolic]
|
||||
@@ -1068,7 +1068,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.loc12_14.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_14.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %U.loc12_24.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc12_24.2 (constants.%U)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (invalid), @impl(constants.%T, constants.%U) [symbolic = @impl.%impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (<error>), @impl(constants.%T, constants.%U) [symbolic = @impl.%impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
|
||||
// CHECK:STDOUT: %x.patt: %empty_struct_type = binding_pattern x
|
||||
// CHECK:STDOUT: %x.param_patt: %empty_struct_type = value_param_pattern %x.patt, call_param0
|
||||
@@ -1109,7 +1109,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.patt.loc12_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_14.2 (constants.%T.patt)]
|
||||
// CHECK:STDOUT: %U.loc12_24.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc12_24.2 (constants.%U)]
|
||||
// CHECK:STDOUT: %U.patt.loc12_24.2: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc12_24.2 (constants.%U.patt)]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (invalid), @impl(%T.loc12_14.2, %U.loc12_24.2) [symbolic = %impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (<error>), @impl(%T.loc12_14.2, %U.loc12_24.2) [symbolic = %impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc12_14.2, %U.loc12_24.2) [symbolic = %F.type (constants.%F.type.56e)]
|
||||
|
||||
+50
-50
@@ -360,12 +360,12 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %PackageA.C: type = import_ref PackageA//default, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.8f2: <witness> = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst37 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst38 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.HasF: type = import_ref PackageA//default, HasF, loaded [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.c63 = import_ref PackageA//default, loc5_21, unloaded
|
||||
// CHECK:STDOUT: %PackageA.F: %F.type.dbc = import_ref PackageA//default, F, loaded [concrete = constants.%F.a2b]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.e73: %HasF.type = import_ref PackageA//default, inst16 [no loc], loaded [symbolic = constants.%Self.cf3]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.e73: %HasF.type = import_ref PackageA//default, inst17 [no loc], loaded [symbolic = constants.%Self.cf3]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -569,12 +569,12 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %PackageA.C: type = import_ref PackageA//default, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.8f2: <witness> = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst37 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst38 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.HasF: type = import_ref PackageA//default, HasF, loaded [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.b36: %HasF.assoc_type = import_ref PackageA//default, loc5_21, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %PackageA.F = import_ref PackageA//default, F, unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.e73: %HasF.type = import_ref PackageA//default, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.e73: %HasF.type = import_ref PackageA//default, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.a71: <witness> = import_ref PackageA//default, loc11_16, loaded [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.29a: type = import_ref PackageA//default, loc11_6, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.e8c: type = import_ref PackageA//default, loc11_11, loaded [concrete = constants.%HasF.type]
|
||||
@@ -679,18 +679,18 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %PackageB.D: type = import_ref PackageB//default, D, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.8f2: <witness> = import_ref PackageB//default, loc10_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.cab = import_ref PackageB//default, inst39 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.cab = import_ref PackageB//default, inst40 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.HasF: type = import_ref PackageA//default, HasF, loaded [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.b36: %HasF.assoc_type = import_ref PackageA//default, loc5_21, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %PackageA.F = import_ref PackageA//default, F, unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.e73: %HasF.type = import_ref PackageA//default, inst16 [no loc], loaded [symbolic = constants.%Self.cf3]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.e73: %HasF.type = import_ref PackageA//default, inst17 [no loc], loaded [symbolic = constants.%Self.cf3]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.0e8 = import_ref PackageA//default, loc11_16, unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.8f2: <witness> = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst37 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst38 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.29a: type = import_ref PackageA//default, loc11_6, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.e8c: type = import_ref PackageA//default, loc11_11, loaded [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.5d8 = import_ref PackageB//default, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.5d8 = import_ref PackageB//default, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.910 = import_ref PackageB//default, loc7_21, unloaded
|
||||
// CHECK:STDOUT: %PackageB.G = import_ref PackageB//default, G, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.fa0 = import_ref PackageB//default, loc13_25, unloaded
|
||||
@@ -834,13 +834,13 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %PackageA.C: type = import_ref PackageA//default, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.8f2: <witness> = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst37 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst38 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.HasG: type = import_ref PackageB//default, HasG, loaded [concrete = constants.%HasG.type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.5d8 = import_ref PackageB//default, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.5d8 = import_ref PackageB//default, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.6c2: %HasG.assoc_type = import_ref PackageB//default, loc7_21, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %PackageB.G = import_ref PackageB//default, G, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.ef5: %HasG.type = import_ref PackageB//default, inst18 [no loc], loaded [symbolic = constants.%Self.fcb]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.ef5: %HasG.type = import_ref PackageB//default, inst19 [no loc], loaded [symbolic = constants.%Self.fcb]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.c63 = import_ref PackageA//default, loc5_21, unloaded
|
||||
// CHECK:STDOUT: %PackageA.F = import_ref PackageA//default, F, unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.0e8 = import_ref PackageA//default, loc11_16, unloaded
|
||||
@@ -851,7 +851,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageB.import_ref.cee586.1: type = import_ref PackageB//default, loc13_20, loaded [concrete = constants.%HasG.type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.7db = import_ref PackageB//default, loc18_25, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.8f2: <witness> = import_ref PackageB//default, loc10_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.cab = import_ref PackageB//default, inst39 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.cab = import_ref PackageB//default, inst40 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.aa9f8a.1: type = import_ref PackageB//default, loc18_6, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.831: type = import_ref PackageB//default, loc18_19, loaded [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.231 = import_ref PackageB//default, loc23_16, unloaded
|
||||
@@ -986,19 +986,19 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %PackageB.D: type = import_ref PackageB//default, D, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.8f2: <witness> = import_ref PackageB//default, loc10_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.cab = import_ref PackageB//default, inst39 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.cab = import_ref PackageB//default, inst40 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.HasG: type = import_ref PackageB//default, HasG, loaded [concrete = constants.%HasG.type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.5d8 = import_ref PackageB//default, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.5d8 = import_ref PackageB//default, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.6c2: %HasG.assoc_type = import_ref PackageB//default, loc7_21, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %PackageB.G = import_ref PackageB//default, G, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.ef5: %HasG.type = import_ref PackageB//default, inst18 [no loc], loaded [symbolic = constants.%Self.fcb]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.ef5: %HasG.type = import_ref PackageB//default, inst19 [no loc], loaded [symbolic = constants.%Self.fcb]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.fa0 = import_ref PackageB//default, loc13_25, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.8db: <witness> = import_ref PackageB//default, inst47 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.6a9 = import_ref PackageB//default, inst48 [indirect], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.8db: <witness> = import_ref PackageB//default, inst48 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.6a9 = import_ref PackageB//default, inst49 [indirect], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.dfb: type = import_ref PackageB//default, loc13_14, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.cee586.1: type = import_ref PackageB//default, loc13_20, loaded [concrete = constants.%HasG.type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.96f = import_ref PackageB//default, inst71 [indirect], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.a0b = import_ref PackageB//default, inst72 [indirect], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.96f = import_ref PackageB//default, inst72 [indirect], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.a0b = import_ref PackageB//default, inst73 [indirect], unloaded
|
||||
// CHECK:STDOUT: %PackageB.F = import_ref PackageB//default, F, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.7db = import_ref PackageB//default, loc18_25, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.aa9f8a.1: type = import_ref PackageB//default, loc18_6, loaded [concrete = constants.%D]
|
||||
@@ -1211,10 +1211,10 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: import PackageAssociatedInterface//default
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.Z: type = import_ref PackageAssociatedInterface//default, Z, loaded [concrete = constants.%Z.type]
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.f88 = import_ref PackageAssociatedInterface//default, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.f88 = import_ref PackageAssociatedInterface//default, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.609: %Z.assoc_type = import_ref PackageAssociatedInterface//default, loc5_21, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.H = import_ref PackageAssociatedInterface//default, H, unloaded
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.d26: %Z.type = import_ref PackageAssociatedInterface//default, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.d26: %Z.type = import_ref PackageAssociatedInterface//default, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.998: <witness> = import_ref PackageAssociatedInterface//default, loc8_14, loaded [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.e5c: type = import_ref PackageAssociatedInterface//default, loc8_7, loaded [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.df1: type = import_ref PackageAssociatedInterface//default, loc8_12, loaded [concrete = constants.%Z.type]
|
||||
@@ -1419,12 +1419,12 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.5ab: type = import_ref PackageHasParam//default, loc4_16, loaded [symbolic = @AnyParam.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.34c: @AnyParam.%T (%T) = import_ref PackageHasParam//default, loc4_26, loaded [symbolic = @AnyParam.%X (constants.%X)]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.8f2: <witness> = import_ref PackageHasParam//default, loc4_34, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst31 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst32 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.Y: type = import_ref PackageHasParam//default, Y, loaded [concrete = constants.%Y.type]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst37 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst38 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.f69: %Y.assoc_type = import_ref PackageHasParam//default, loc7_22, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %PackageHasParam.K: %K.type.311 = import_ref PackageHasParam//default, K, loaded [concrete = constants.%K.7a1]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst37 [no loc], loaded [symbolic = constants.%Self.f64]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst38 [no loc], loaded [symbolic = constants.%Self.f64]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1634,15 +1634,15 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.5ab: type = import_ref PackageHasParam//default, loc4_16, loaded [symbolic = @AnyParam.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.34c: @AnyParam.%T (%T) = import_ref PackageHasParam//default, loc4_26, loaded [symbolic = @AnyParam.%X (constants.%X)]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.8f2: <witness> = import_ref PackageHasParam//default, loc4_34, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst31 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst32 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageGenericInterface.GenericInterface: %GenericInterface.type.0da = import_ref PackageGenericInterface//default, GenericInterface, loaded [concrete = constants.%GenericInterface.generic]
|
||||
// CHECK:STDOUT: %PackageGenericInterface.import_ref.5ab: type = import_ref PackageGenericInterface//default, loc6_28, loaded [symbolic = @GenericInterface.%U (constants.%U)]
|
||||
// CHECK:STDOUT: %PackageGenericInterface.import_ref.c3b = import_ref PackageGenericInterface//default, inst27 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageGenericInterface.import_ref.c3b = import_ref PackageGenericInterface//default, inst28 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.Y: type = import_ref PackageHasParam//default, Y, loaded [concrete = constants.%Y.type]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst37 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst38 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.f69: %Y.assoc_type = import_ref PackageHasParam//default, loc7_22, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %PackageHasParam.K = import_ref PackageHasParam//default, K, unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst37 [no loc], loaded [symbolic = constants.%Self.f64]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst38 [no loc], loaded [symbolic = constants.%Self.f64]
|
||||
// CHECK:STDOUT: %PackageGenericInterface.import_ref.ca8: <witness> = import_ref PackageGenericInterface//default, loc8_70, loaded [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %PackageGenericInterface.import_ref.321: type = import_ref PackageGenericInterface//default, loc8_47, loaded [concrete = constants.%AnyParam.861]
|
||||
// CHECK:STDOUT: %PackageGenericInterface.import_ref.ca6: type = import_ref PackageGenericInterface//default, loc8_67, loaded [concrete = constants.%Y.type]
|
||||
@@ -1819,12 +1819,12 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.5ab: type = import_ref PackageHasParam//default, loc4_16, loaded [symbolic = @AnyParam.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.34c: @AnyParam.%T (%T) = import_ref PackageHasParam//default, loc4_26, loaded [symbolic = @AnyParam.%X (constants.%X)]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.8f2: <witness> = import_ref PackageHasParam//default, loc4_34, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst31 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst32 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.Y: type = import_ref PackageHasParam//default, Y, loaded [concrete = constants.%Y.type]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst37 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst38 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.f69: %Y.assoc_type = import_ref PackageHasParam//default, loc7_22, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %PackageHasParam.K: %K.type.311 = import_ref PackageHasParam//default, K, loaded [concrete = constants.%K.7a1]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst37 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst38 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -2028,16 +2028,16 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.5ab: type = import_ref PackageHasParam//default, loc4_16, loaded [symbolic = @AnyParam.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.34c: @AnyParam.%T (%T) = import_ref PackageHasParam//default, loc4_26, loaded [symbolic = @AnyParam.%X (constants.%X)]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.8f2: <witness> = import_ref PackageHasParam//default, loc4_34, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst31 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst32 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageGenericClass.GenericClass: %GenericClass.type = import_ref PackageGenericClass//default, GenericClass, loaded [concrete = constants.%GenericClass.generic]
|
||||
// CHECK:STDOUT: %PackageGenericClass.import_ref.5ab: type = import_ref PackageGenericClass//default, loc6_20, loaded [symbolic = @GenericClass.%U (constants.%U)]
|
||||
// CHECK:STDOUT: %PackageGenericClass.import_ref.8f2: <witness> = import_ref PackageGenericClass//default, loc6_31, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageGenericClass.import_ref.065 = import_ref PackageGenericClass//default, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageGenericClass.import_ref.065 = import_ref PackageGenericClass//default, inst27 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.Y: type = import_ref PackageHasParam//default, Y, loaded [concrete = constants.%Y.type]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst37 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst38 [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.f69: %Y.assoc_type = import_ref PackageHasParam//default, loc7_22, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %PackageHasParam.K = import_ref PackageHasParam//default, K, unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst37 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst38 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %PackageGenericClass.import_ref.f23: <witness> = import_ref PackageGenericClass//default, loc8_66, loaded [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %PackageGenericClass.import_ref.a0e: type = import_ref PackageGenericClass//default, loc8_43, loaded [concrete = constants.%AnyParam.d71]
|
||||
// CHECK:STDOUT: %PackageGenericClass.import_ref.ca6: type = import_ref PackageGenericClass//default, loc8_63, loaded [concrete = constants.%Y.type]
|
||||
@@ -2439,21 +2439,21 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.C: %C.type = import_ref HasExtraInterfaces//default, C, loaded [concrete = constants.%C.generic]
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.5ab: type = import_ref HasExtraInterfaces//default, loc13_9, loaded [symbolic = @C.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.8f2: <witness> = import_ref HasExtraInterfaces//default, loc13_20, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.4c0 = import_ref HasExtraInterfaces//default, inst56 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.4c0 = import_ref HasExtraInterfaces//default, inst57 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.I: type = import_ref HasExtraInterfaces//default, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.e5d = import_ref HasExtraInterfaces//default, inst62 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.e5d = import_ref HasExtraInterfaces//default, inst63 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.be9: %I.assoc_type = import_ref HasExtraInterfaces//default, loc14_33, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.F = import_ref HasExtraInterfaces//default, F, unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.1db: %I.type = import_ref HasExtraInterfaces//default, inst62 [no loc], loaded [symbolic = constants.%Self.013]
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.1db: %I.type = import_ref HasExtraInterfaces//default, inst63 [no loc], loaded [symbolic = constants.%Self.013]
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.1c8 = import_ref HasExtraInterfaces//default, loc16_79, unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.9c8 = import_ref HasExtraInterfaces//default, inst44 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.dfe = import_ref HasExtraInterfaces//default, inst40 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.6b6 = import_ref HasExtraInterfaces//default, inst36 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.576 = import_ref HasExtraInterfaces//default, inst32 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.0dd = import_ref HasExtraInterfaces//default, inst28 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.f83 = import_ref HasExtraInterfaces//default, inst24 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.975 = import_ref HasExtraInterfaces//default, inst20 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.a3c = import_ref HasExtraInterfaces//default, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.9c8 = import_ref HasExtraInterfaces//default, inst45 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.dfe = import_ref HasExtraInterfaces//default, inst41 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.6b6 = import_ref HasExtraInterfaces//default, inst37 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.576 = import_ref HasExtraInterfaces//default, inst33 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.0dd = import_ref HasExtraInterfaces//default, inst29 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.f83 = import_ref HasExtraInterfaces//default, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.975 = import_ref HasExtraInterfaces//default, inst21 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.a3c = import_ref HasExtraInterfaces//default, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.aa8: type = import_ref HasExtraInterfaces//default, loc16_72, loaded [concrete = constants.%C.074]
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.301: type = import_ref HasExtraInterfaces//default, loc16_77, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -216,13 +216,13 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %Main.C = import_ref Main//types, C, unloaded
|
||||
// CHECK:STDOUT: %Main.X: type = import_ref Main//types, X, loaded [concrete = constants.%X]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst65 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst66 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2bb = import_ref Main//types, loc4_43, unloaded
|
||||
// CHECK:STDOUT: %Main.F: @I.%F.type (%F.type.2ae) = import_ref Main//types, F, loaded [symbolic = @I.%F (constants.%F.bb2)]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst25 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)]
|
||||
// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst26 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)]
|
||||
// CHECK:STDOUT: %Main.import_ref.479 = import_ref Main//types, loc4_43, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -385,16 +385,16 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %Main.X: type = import_ref Main//types, X, loaded [concrete = constants.%X]
|
||||
// CHECK:STDOUT: %Main.InInterfaceArgs: type = import_ref Main//impl_in_interface_args, InInterfaceArgs, loaded [concrete = constants.%InInterfaceArgs]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.1: <witness> = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst65 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst66 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.474: @I.%I.assoc_type (%I.assoc_type.1e5) = import_ref Main//types, loc4_43, loaded [symbolic = @I.%assoc0 (constants.%assoc0.688)]
|
||||
// CHECK:STDOUT: %Main.F = import_ref Main//types, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst25 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)]
|
||||
// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst26 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)]
|
||||
// CHECK:STDOUT: %Main.import_ref.e54: @I.%F.type (%F.type.2ae) = import_ref Main//types, loc4_43, loaded [symbolic = @I.%F (constants.%F.bb2)]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//impl_in_interface_args, loc5_24, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.bf8 = import_ref Main//impl_in_interface_args, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.bf8 = import_ref Main//impl_in_interface_args, inst20 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f9f: <witness> = import_ref Main//impl_in_interface_args, loc7_30, loaded [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.956: type = import_ref Main//impl_in_interface_args, loc7_6, loaded [concrete = constants.%X]
|
||||
// CHECK:STDOUT: %Main.import_ref.e8c: type = import_ref Main//impl_in_interface_args, loc7_28, loaded [concrete = constants.%I.type.e45]
|
||||
@@ -551,16 +551,16 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %Main.X: type = import_ref Main//types, X, loaded [concrete = constants.%X]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//types, loc5_9, loaded [symbolic = @C.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.1: <witness> = import_ref Main//types, loc5_20, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//types, inst60 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//types, inst61 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2bb = import_ref Main//types, loc4_43, unloaded
|
||||
// CHECK:STDOUT: %Main.F: @I.%F.type (%F.type.2ae) = import_ref Main//types, F, loaded [symbolic = @I.%F (constants.%F.bb2)]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.3: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst25 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)]
|
||||
// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst26 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)]
|
||||
// CHECK:STDOUT: %Main.import_ref.479 = import_ref Main//types, loc4_43, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst65 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst66 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -754,18 +754,18 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %Main.InClassArgs: type = import_ref Main//impl_in_class_args, InClassArgs, loaded [concrete = constants.%InClassArgs]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//types, loc5_9, loaded [symbolic = @C.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.1: <witness> = import_ref Main//types, loc5_20, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//types, inst60 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//types, inst61 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//impl_in_class_args, loc5_20, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.683 = import_ref Main//impl_in_class_args, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.683 = import_ref Main//impl_in_class_args, inst20 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.474: @I.%I.assoc_type (%I.assoc_type.1e5) = import_ref Main//types, loc4_43, loaded [symbolic = @I.%assoc0 (constants.%assoc0.688)]
|
||||
// CHECK:STDOUT: %Main.F = import_ref Main//types, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.3: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst25 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)]
|
||||
// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst26 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)]
|
||||
// CHECK:STDOUT: %Main.import_ref.e54: @I.%F.type (%F.type.2ae) = import_ref Main//types, loc4_43, loaded [symbolic = @I.%F (constants.%F.bb2)]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.3: <witness> = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst65 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst66 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.6de: <witness> = import_ref Main//impl_in_class_args, loc7_29, loaded [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.d6e: type = import_ref Main//impl_in_class_args, loc7_19, loaded [concrete = constants.%C.23b]
|
||||
// CHECK:STDOUT: %Main.import_ref.208: type = import_ref Main//impl_in_class_args, loc7_27, loaded [concrete = constants.%I.type.45c]
|
||||
|
||||
+7
-7
@@ -128,10 +128,10 @@ fn Call() {
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//i, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//i, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.507 = import_ref Main//i, loc4_33, unloaded
|
||||
// CHECK:STDOUT: %Main.F: %F.type.cf0 = import_ref Main//i, F, loaded [concrete = constants.%F.bc6]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//i, inst18 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//i, inst19 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -219,7 +219,7 @@ fn Call() {
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//c, loc6_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//c, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//c, inst20 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -280,12 +280,12 @@ fn Call() {
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//get, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//get, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//i, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8db: <witness> = import_ref Main//get, inst23 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//get, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//i, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c44: %I.assoc_type = import_ref Main//i, loc4_33, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.F = import_ref Main//i, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//i, inst18 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//i, inst19 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.e53: <witness> = import_ref Main//c, loc7_13, loaded [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.29a: type = import_ref Main//c, loc7_6, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.f50: type = import_ref Main//c, loc7_11, loaded [concrete = constants.%I.type]
|
||||
|
||||
+58
-57
@@ -87,19 +87,19 @@ interface I {
|
||||
class C {}
|
||||
impl C as I;
|
||||
|
||||
// CHECK:STDERR: fail_unset_associated_const.carbon:[[@LINE+11]]:8: error: accessing member from impl before it has a defined value [ImplAccessMemberBeforeSet]
|
||||
// CHECK:STDERR: fail_unset_associated_const.carbon:[[@LINE+4]]:8: error: accessing member from impl before it has a defined value [ImplAccessMemberBeforeSet]
|
||||
// CHECK:STDERR: let x: (C as I).T = ();
|
||||
// CHECK:STDERR: ^~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_unset_associated_const.carbon:[[@LINE-6]]:11: error: associated constant T not given a value in impl of interface I [ImplAssociatedConstantNeedsValue]
|
||||
// CHECK:STDERR: impl C as I;
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: fail_unset_associated_const.carbon:[[@LINE-12]]:7: note: associated constant declared here [AssociatedConstantHere]
|
||||
let x: (C as I).T = ();
|
||||
|
||||
// CHECK:STDERR: fail_unset_associated_const.carbon:[[@LINE+7]]:1: error: associated constant T not given a value in impl of interface I [ImplAssociatedConstantNeedsValue]
|
||||
// CHECK:STDERR: impl C as I {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_unset_associated_const.carbon:[[@LINE-14]]:7: note: associated constant declared here [AssociatedConstantHere]
|
||||
// CHECK:STDERR: let T:! type;
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
let x: (C as I).T = ();
|
||||
|
||||
impl C as I {}
|
||||
|
||||
// --- fail_associated_const_before_interface_definition.carbon
|
||||
@@ -169,7 +169,7 @@ impl {} as I & J;
|
||||
interface I {}
|
||||
interface J {}
|
||||
|
||||
// --- fail_todo_never_assigned_associated_const.carbon
|
||||
// --- fail_never_assigned_associated_const.carbon
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
interface I {
|
||||
@@ -178,20 +178,15 @@ interface I {
|
||||
}
|
||||
class C {}
|
||||
|
||||
// TODO: Should accept this, once we support setting
|
||||
// associated constants in the body of the impl definition.
|
||||
impl C as I where .T = ();
|
||||
|
||||
// CHECK:STDERR: fail_todo_never_assigned_associated_const.carbon:[[@LINE+7]]:11: error: associated constant U not given a value in impl of interface I [ImplAssociatedConstantNeedsValue]
|
||||
// CHECK:STDERR: impl C as I where .T = ();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_todo_never_assigned_associated_const.carbon:[[@LINE-10]]:7: note: associated constant declared here [AssociatedConstantHere]
|
||||
// CHECK:STDERR: fail_never_assigned_associated_const.carbon:[[@LINE+7]]:1: error: associated constant U not given a value in impl of interface I [ImplAssociatedConstantNeedsValue]
|
||||
// CHECK:STDERR: impl C as I where .T = () {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_never_assigned_associated_const.carbon:[[@LINE-9]]:7: note: associated constant declared here [AssociatedConstantHere]
|
||||
// CHECK:STDERR: let U:! type;
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
impl C as I where .T = ();
|
||||
|
||||
// TODO: This should fail instead, unless there is a
|
||||
// `where U = ...` declaration in the body of the impl.
|
||||
impl C as I where .T = () {}
|
||||
|
||||
// --- example_from_proposal_5168.carbon
|
||||
@@ -435,10 +430,10 @@ interface I {
|
||||
// CHECK:STDOUT: .BitAnd = %Core.BitAnd
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.51c: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
||||
@@ -618,6 +613,7 @@ interface I {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_tuple.type) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: impl_decl @impl [concrete] {} {
|
||||
// CHECK:STDOUT: %.loc8_7.1: %empty_struct_type = struct_literal ()
|
||||
// CHECK:STDOUT: %.loc8_7.2: type = converted %.loc8_7.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
@@ -717,6 +713,7 @@ interface I {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_tuple.type) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x
|
||||
// CHECK:STDOUT: }
|
||||
@@ -846,6 +843,7 @@ interface I {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_tuple.type) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x
|
||||
// CHECK:STDOUT: }
|
||||
@@ -961,15 +959,15 @@ interface I {
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %x.patt: <error> = binding_pattern x
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc20_16.1: type = splice_block %impl.elem0 [concrete = <error>] {
|
||||
// CHECK:STDOUT: %.loc13_16.1: type = splice_block %impl.elem0 [concrete = <error>] {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %I.ref: type = name_ref I, %I.decl [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value constants.%C, (constants.%impl_witness) [concrete = constants.%I.facet]
|
||||
// CHECK:STDOUT: %.loc20_11: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet]
|
||||
// CHECK:STDOUT: %.loc13_11: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet]
|
||||
// CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %as_type: type = facet_access_type %.loc20_11 [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %.loc20_16.2: type = converted %.loc20_11, %as_type [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %as_wit.iface0: <witness> = facet_access_witness %.loc20_11, element0 [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %as_type: type = facet_access_type %.loc13_11 [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %.loc13_16.2: type = converted %.loc13_11, %as_type [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %as_wit.iface0: <witness> = facet_access_witness %.loc13_11, element0 [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %as_wit.iface0, element0 [concrete = <error>]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %x: <error> = bind_name x, <error>
|
||||
@@ -1010,7 +1008,7 @@ interface I {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @__global_init() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc20: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc13: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1170,6 +1168,7 @@ interface I {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%C) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%C [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %C.decl.loc10: type = class_decl @C [concrete = constants.%C] {} {}
|
||||
// CHECK:STDOUT: impl_decl @impl [concrete] {} {
|
||||
// CHECK:STDOUT: %D.ref.loc11: type = name_ref D, file.%D.decl [concrete = constants.%D]
|
||||
@@ -1441,10 +1440,10 @@ interface I {
|
||||
// CHECK:STDOUT: .BitAnd = %Core.BitAnd
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.51c: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
||||
@@ -1569,7 +1568,7 @@ interface I {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- fail_todo_never_assigned_associated_const.carbon
|
||||
// CHECK:STDOUT: --- fail_never_assigned_associated_const.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete]
|
||||
@@ -1606,36 +1605,37 @@ interface I {
|
||||
// CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {}
|
||||
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
|
||||
// CHECK:STDOUT: impl_decl @impl [concrete] {} {
|
||||
// CHECK:STDOUT: %C.ref.loc19: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %I.ref.loc19: type = name_ref I, file.%I.decl [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %C.ref.loc9: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %I.ref.loc9: type = name_ref I, file.%I.decl [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %.Self.1: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self]
|
||||
// CHECK:STDOUT: %.Self.ref.loc19: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self]
|
||||
// CHECK:STDOUT: %T.ref.loc19: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %.Self.as_type.loc19: type = facet_access_type %.Self.ref.loc19 [symbolic_self = constants.%.Self.as_type]
|
||||
// CHECK:STDOUT: %.loc19_19: type = converted %.Self.ref.loc19, %.Self.as_type.loc19 [symbolic_self = constants.%.Self.as_type]
|
||||
// CHECK:STDOUT: %.Self.as_wit.iface0.loc19: <witness> = facet_access_witness %.Self.ref.loc19, element0 [symbolic_self = constants.%.Self.as_wit.iface0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc19: type = impl_witness_access %.Self.as_wit.iface0.loc19, element0 [symbolic_self = constants.%impl.elem0]
|
||||
// CHECK:STDOUT: %.loc19_25.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc19_25.2: type = converted %.loc19_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %.loc19_13: type = where_expr %.Self.1 [concrete = constants.%I_where.type] {
|
||||
// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc19, %.loc19_25.2
|
||||
// CHECK:STDOUT: %.Self.ref.loc9: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self]
|
||||
// CHECK:STDOUT: %T.ref.loc9: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %.Self.as_type.loc9: type = facet_access_type %.Self.ref.loc9 [symbolic_self = constants.%.Self.as_type]
|
||||
// CHECK:STDOUT: %.loc9_19: type = converted %.Self.ref.loc9, %.Self.as_type.loc9 [symbolic_self = constants.%.Self.as_type]
|
||||
// CHECK:STDOUT: %.Self.as_wit.iface0.loc9: <witness> = facet_access_witness %.Self.ref.loc9, element0 [symbolic_self = constants.%.Self.as_wit.iface0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access %.Self.as_wit.iface0.loc9, element0 [symbolic_self = constants.%impl.elem0]
|
||||
// CHECK:STDOUT: %.loc9_25.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc9_25.2: type = converted %.loc9_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %.loc9_13: type = where_expr %.Self.1 [concrete = constants.%I_where.type] {
|
||||
// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc9, %.loc9_25.2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_tuple.type, <error>) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: impl_decl @impl [concrete] {} {
|
||||
// CHECK:STDOUT: %C.ref.loc23: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %I.ref.loc23: type = name_ref I, file.%I.decl [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %C.ref.loc18: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %I.ref.loc18: type = name_ref I, file.%I.decl [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %.Self.2: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self]
|
||||
// CHECK:STDOUT: %.Self.ref.loc23: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self]
|
||||
// CHECK:STDOUT: %T.ref.loc23: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %.Self.as_type.loc23: type = facet_access_type %.Self.ref.loc23 [symbolic_self = constants.%.Self.as_type]
|
||||
// CHECK:STDOUT: %.loc23_19: type = converted %.Self.ref.loc23, %.Self.as_type.loc23 [symbolic_self = constants.%.Self.as_type]
|
||||
// CHECK:STDOUT: %.Self.as_wit.iface0.loc23: <witness> = facet_access_witness %.Self.ref.loc23, element0 [symbolic_self = constants.%.Self.as_wit.iface0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc23: type = impl_witness_access %.Self.as_wit.iface0.loc23, element0 [symbolic_self = constants.%impl.elem0]
|
||||
// CHECK:STDOUT: %.loc23_25.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc23_25.2: type = converted %.loc23_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %.loc23_13: type = where_expr %.Self.2 [concrete = constants.%I_where.type] {
|
||||
// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc23, %.loc23_25.2
|
||||
// CHECK:STDOUT: %.Self.ref.loc18: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self]
|
||||
// CHECK:STDOUT: %T.ref.loc18: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %.Self.as_type.loc18: type = facet_access_type %.Self.ref.loc18 [symbolic_self = constants.%.Self.as_type]
|
||||
// CHECK:STDOUT: %.loc18_19: type = converted %.Self.ref.loc18, %.Self.as_type.loc18 [symbolic_self = constants.%.Self.as_type]
|
||||
// CHECK:STDOUT: %.Self.as_wit.iface0.loc18: <witness> = facet_access_witness %.Self.ref.loc18, element0 [symbolic_self = constants.%.Self.as_wit.iface0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc18: type = impl_witness_access %.Self.as_wit.iface0.loc18, element0 [symbolic_self = constants.%impl.elem0]
|
||||
// CHECK:STDOUT: %.loc18_25.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc18_25.2: type = converted %.loc18_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %.loc18_13: type = where_expr %.Self.2 [concrete = constants.%I_where.type] {
|
||||
// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc18, %.loc18_25.2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1664,7 +1664,7 @@ interface I {
|
||||
// CHECK:STDOUT: assoc_const U:! type;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @impl: %C.ref.loc19 as %.loc19_13 {
|
||||
// CHECK:STDOUT: impl @impl: %C.ref.loc9 as %.loc9_13 {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = file.%impl_witness
|
||||
// CHECK:STDOUT: }
|
||||
@@ -2018,7 +2018,7 @@ interface I {
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self]
|
||||
// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %C.a2d> [concrete]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (%C.a2d, invalid), @impl(%Self) [symbolic]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (%C.a2d, <error>), @impl(%Self) [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -2058,7 +2058,7 @@ interface I {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic impl @impl(@I.%Self: %I.type) {
|
||||
// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%C.a2d, invalid), @impl(%Self) [symbolic = %impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%C.a2d, <error>), @impl(%Self) [symbolic = %impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
@@ -2101,7 +2101,8 @@ interface I {
|
||||
// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc16, %C.ref.loc16_28
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%C.a2d, invalid), @impl(constants.%Self) [symbolic = @impl.%impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%C.a2d, <error>), @impl(constants.%Self) [symbolic = @impl.%impl_witness (constants.%impl_witness)]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%C.a2d [concrete = constants.%C.a2d]
|
||||
// CHECK:STDOUT: impl_decl @impl [concrete] {} {
|
||||
// CHECK:STDOUT: %C.ref.loc18_10: type = name_ref C, @F.%C.decl [concrete = constants.%C.a2d]
|
||||
// CHECK:STDOUT: %I.ref.loc18: type = name_ref I, file.%I.decl [concrete = constants.%I.type]
|
||||
|
||||
@@ -334,11 +334,11 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: import Core//default
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)]
|
||||
// CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst25 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst26 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -512,11 +512,11 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: import Core//default
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)]
|
||||
// CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst25 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst26 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
interface I { let T:! type; }
|
||||
|
||||
// CHECK:STDERR: fail_impl_bad_assoc_const.carbon:[[@LINE+7]]:12: error: associated constant T not given a value in impl of interface I [ImplAssociatedConstantNeedsValue]
|
||||
// CHECK:STDERR: fail_impl_bad_assoc_const.carbon:[[@LINE+7]]:1: error: associated constant T not given a value in impl of interface I [ImplAssociatedConstantNeedsValue]
|
||||
// CHECK:STDERR: impl () as I {}
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_impl_bad_assoc_const.carbon:[[@LINE-5]]:19: note: associated constant declared here [AssociatedConstantHere]
|
||||
// CHECK:STDERR: interface I { let T:! type; }
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
|
||||
@@ -82,9 +82,9 @@ library "[[@TEST_NAME]]";
|
||||
interface K { let V:! type; }
|
||||
|
||||
impl () as K where .V = {};
|
||||
// CHECK:STDERR: fail_missing_on_definition.carbon:[[@LINE+11]]:12: error: associated constant V not given a value in impl of interface K [ImplAssociatedConstantNeedsValue]
|
||||
// CHECK:STDERR: fail_missing_on_definition.carbon:[[@LINE+11]]:1: error: associated constant V not given a value in impl of interface K [ImplAssociatedConstantNeedsValue]
|
||||
// CHECK:STDERR: impl () as K {}
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_missing_on_definition.carbon:[[@LINE-6]]:19: note: associated constant declared here [AssociatedConstantHere]
|
||||
// CHECK:STDERR: interface K { let V:! type; }
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
@@ -215,6 +215,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I {
|
||||
@@ -283,6 +284,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: impl_decl @impl [concrete] {} {
|
||||
// CHECK:STDOUT: %.loc6_7.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc6_7.2: type = converted %.loc6_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
@@ -375,6 +377,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc10: <witness> = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I3 {
|
||||
@@ -447,6 +450,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc9: <witness> = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant.loc9: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: impl_decl @impl.6a8 [concrete] {} {
|
||||
// CHECK:STDOUT: %.loc10_7.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc10_7.2: type = converted %.loc10_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
@@ -465,6 +469,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc10: <witness> = impl_witness (constants.%empty_tuple.type) [concrete = constants.%impl_witness.2a6]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant.loc10: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @J {
|
||||
@@ -688,6 +693,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc5: <witness> = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: impl_decl @impl.4b0 [concrete] {} {
|
||||
// CHECK:STDOUT: %.loc17_7.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc17_7.2: type = converted %.loc17_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
@@ -773,6 +779,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (<error>) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @L {
|
||||
@@ -1070,6 +1077,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @M {
|
||||
@@ -1145,6 +1153,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%struct) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: %struct_type.a.225 = impl_witness_assoc_constant constants.%struct [concrete = constants.%struct]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @N {
|
||||
|
||||
@@ -468,11 +468,11 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt);
|
||||
// CHECK:STDOUT: %Main.Double: %Double.type = import_ref Main//generic_impl, Double, loaded [concrete = constants.%Double]
|
||||
// CHECK:STDOUT: %Main.import_ref.f1e294.1: Core.IntLiteral = import_ref Main//generic_impl, loc11_13, loaded [symbolic = @MyInt.%N (constants.%N)]
|
||||
// CHECK:STDOUT: %Main.import_ref.9e9: <witness> = import_ref Main//generic_impl, loc13_1, loaded [symbolic = @MyInt.%complete_type (constants.%complete_type.a87)]
|
||||
// CHECK:STDOUT: %Main.import_ref.697 = import_ref Main//generic_impl, inst88 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.07c = import_ref Main//generic_impl, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.697 = import_ref Main//generic_impl, inst89 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.07c = import_ref Main//generic_impl, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f99: %Add.assoc_type = import_ref Main//generic_impl, loc5_41, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.Op = import_ref Main//generic_impl, Op, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5e: %Add.type = import_ref Main//generic_impl, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.e5e: %Add.type = import_ref Main//generic_impl, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.33b: <witness> = import_ref Main//generic_impl, loc15_48, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.7e5)]
|
||||
// CHECK:STDOUT: %Main.import_ref.f1e294.2: Core.IntLiteral = import_ref Main//generic_impl, loc15_14, loaded [symbolic = @impl.%N (constants.%N)]
|
||||
// CHECK:STDOUT: %Main.import_ref.719: type = import_ref Main//generic_impl, loc15_39, loaded [symbolic = @impl.%MyInt (constants.%MyInt.09f)]
|
||||
@@ -1079,7 +1079,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt);
|
||||
// CHECK:STDOUT: %Main.MakeFromClass: %MakeFromClass.type = import_ref Main//convert_symbolic, MakeFromClass, loaded [concrete = constants.%MakeFromClass]
|
||||
// CHECK:STDOUT: %Main.import_ref.85e: %i32.builtin = import_ref Main//convert_symbolic, loc9_9, loaded [symbolic = @Make.%N (constants.%N.987)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b03: <witness> = import_ref Main//convert_symbolic, loc14_1, loaded [concrete = constants.%complete_type.f8a]
|
||||
// CHECK:STDOUT: %Main.import_ref.d11 = import_ref Main//convert_symbolic, inst128 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.d11 = import_ref Main//convert_symbolic, inst129 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f7 = import_ref Main//convert_symbolic, loc13_45, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.77d: %OtherInt = import_ref Main//convert_symbolic, loc18_18, loaded [symbolic = @MakeFromClass.%N (constants.%N.335)]
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+19
-19
@@ -363,14 +363,14 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.NonInstance: type = import_ref Main//lib, NonInstance, loaded [concrete = constants.%NonInstance.type]
|
||||
// CHECK:STDOUT: %Main.Instance = import_ref Main//lib, Instance, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e3c: %NonInstance.assoc_type = import_ref Main//lib, loc4_9, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f85: %NonInstance.type = import_ref Main//lib, inst16 [no loc], loaded [symbolic = constants.%Self.73c]
|
||||
// CHECK:STDOUT: %Main.import_ref.f85: %NonInstance.type = import_ref Main//lib, inst17 [no loc], loaded [symbolic = constants.%Self.73c]
|
||||
// CHECK:STDOUT: %Main.import_ref.826: <witness> = import_ref Main//lib, loc7_30, loaded [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.ded207.1: type = import_ref Main//lib, loc7_13, loaded [concrete = constants.%struct_type.i]
|
||||
// CHECK:STDOUT: %Main.import_ref.ef5: type = import_ref Main//lib, loc7_18, loaded [concrete = constants.%NonInstance.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst40 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst41 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f09 = import_ref Main//lib, loc12_21, unloaded
|
||||
// CHECK:STDOUT: %Main.G = import_ref Main//lib, G, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ab2 = import_ref Main//lib, loc15_27, unloaded
|
||||
@@ -472,21 +472,21 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs
|
||||
// CHECK:STDOUT: import Core//default
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e3c: %NonInstance.assoc_type = import_ref Main//lib, loc4_9, loaded [concrete = constants.%assoc0.8ce]
|
||||
// CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f85: %NonInstance.type = import_ref Main//lib, inst16 [no loc], loaded [symbolic = constants.%Self.73c]
|
||||
// CHECK:STDOUT: %Main.import_ref.f85: %NonInstance.type = import_ref Main//lib, inst17 [no loc], loaded [symbolic = constants.%Self.73c]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)]
|
||||
// CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst25 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst26 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)]
|
||||
// CHECK:STDOUT: %Main.import_ref.112 = import_ref Main//lib, loc7_30, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ded207.1: type = import_ref Main//lib, loc7_13, loaded [concrete = constants.%struct_type.i]
|
||||
// CHECK:STDOUT: %Main.import_ref.ef5: type = import_ref Main//lib, loc7_18, loaded [concrete = constants.%NonInstance.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst40 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst41 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f09 = import_ref Main//lib, loc12_21, unloaded
|
||||
// CHECK:STDOUT: %Main.G = import_ref Main//lib, G, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ab2 = import_ref Main//lib, loc15_27, unloaded
|
||||
@@ -652,21 +652,21 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs
|
||||
// CHECK:STDOUT: import Core//default
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e3c: %NonInstance.assoc_type = import_ref Main//lib, loc4_9, loaded [concrete = constants.%assoc0.8ce]
|
||||
// CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f85: %NonInstance.type = import_ref Main//lib, inst16 [no loc], loaded [symbolic = constants.%Self.73c]
|
||||
// CHECK:STDOUT: %Main.import_ref.f85: %NonInstance.type = import_ref Main//lib, inst17 [no loc], loaded [symbolic = constants.%Self.73c]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)]
|
||||
// CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst25 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst26 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)]
|
||||
// CHECK:STDOUT: %Main.import_ref.112 = import_ref Main//lib, loc7_30, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ded207.1: type = import_ref Main//lib, loc7_13, loaded [concrete = constants.%struct_type.i]
|
||||
// CHECK:STDOUT: %Main.import_ref.ef5: type = import_ref Main//lib, loc7_18, loaded [concrete = constants.%NonInstance.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst40 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst41 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f09 = import_ref Main//lib, loc12_21, unloaded
|
||||
// CHECK:STDOUT: %Main.G = import_ref Main//lib, G, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ab2 = import_ref Main//lib, loc15_27, unloaded
|
||||
@@ -825,11 +825,11 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.NonInstance = import_ref Main//lib, NonInstance, unloaded
|
||||
// CHECK:STDOUT: %Main.Instance: type = import_ref Main//lib, Instance, loaded [concrete = constants.%Instance.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst40 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst41 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.124: %Instance.assoc_type = import_ref Main//lib, loc12_21, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.G = import_ref Main//lib, G, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.0d8: %Instance.type = import_ref Main//lib, inst40 [no loc], loaded [symbolic = constants.%Self.cf8]
|
||||
// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.0d8: %Instance.type = import_ref Main//lib, inst41 [no loc], loaded [symbolic = constants.%Self.cf8]
|
||||
// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.49c = import_ref Main//lib, loc4_9, unloaded
|
||||
// CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.112 = import_ref Main//lib, loc7_30, unloaded
|
||||
@@ -962,11 +962,11 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [concrete] {
|
||||
// CHECK:STDOUT: import Core//default
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst40 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst41 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.124: %Instance.assoc_type = import_ref Main//lib, loc12_21, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.G = import_ref Main//lib, G, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.0d8: %Instance.type = import_ref Main//lib, inst40 [no loc], loaded [symbolic = constants.%Self.cf8]
|
||||
// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.0d8: %Instance.type = import_ref Main//lib, inst41 [no loc], loaded [symbolic = constants.%Self.cf8]
|
||||
// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.49c = import_ref Main//lib, loc4_9, unloaded
|
||||
// CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.112 = import_ref Main//lib, loc7_30, unloaded
|
||||
|
||||
@@ -132,15 +132,15 @@ fn G(c: C) {
|
||||
// CHECK:STDOUT: %Main.I = import_ref Main//extend_impl_library, I, unloaded
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//extend_impl_library, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//extend_impl_library, loc12_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//extend_impl_library, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//extend_impl_library, inst27 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3019d1.1: type = import_ref Main//extend_impl_library, loc9_18, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//extend_impl_library, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//extend_impl_library, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c44: %I.assoc_type = import_ref Main//extend_impl_library, loc5_9, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.F = import_ref Main//extend_impl_library, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b86: <witness> = import_ref Main//extend_impl_library, loc9_20, loaded [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.0ed: type = import_ref Main//extend_impl_library, loc9_15, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.3019d1.2: type = import_ref Main//extend_impl_library, loc9_18, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//extend_impl_library, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//extend_impl_library, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -290,10 +290,10 @@ impl forall [T:! type] D as J(T*) {}
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//import_generic, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.I: %I.type.dac = import_ref Main//import_generic, I, loaded [concrete = constants.%I.generic]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//import_generic, loc5_13, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//import_generic, inst30 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//import_generic, inst31 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.003 = import_ref Main//import_generic, loc8_33, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//import_generic, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//import_generic, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//import_generic, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//import_generic, loc8_14, loaded [symbolic = @impl.08450a.1.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.29aca8.1: type = import_ref Main//import_generic, loc8_24, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.4be: type = import_ref Main//import_generic, loc8_32, loaded [symbolic = @impl.08450a.1.%I.type (constants.%I.type.325)]
|
||||
@@ -709,9 +709,9 @@ impl forall [T:! type] D as J(T*) {}
|
||||
// CHECK:STDOUT: %Main.D: type = import_ref Main//import_generic_decl, D, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %Main.J: %J.type.2b8 = import_ref Main//import_generic_decl, J, loaded [concrete = constants.%J.generic]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//import_generic_decl, loc5_13, loaded [symbolic = @J.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.ff5 = import_ref Main//import_generic_decl, inst30 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ff5 = import_ref Main//import_generic_decl, inst31 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//import_generic_decl, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//import_generic_decl, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//import_generic_decl, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//import_generic_decl, loc11_14, loaded [symbolic = @impl.199bba.1.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.aa9f8a.1: type = import_ref Main//import_generic_decl, loc11_24, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %Main.import_ref.ded: type = import_ref Main//import_generic_decl, loc11_32, loaded [symbolic = @impl.199bba.1.%J.type (constants.%J.type.b72)]
|
||||
|
||||
+39
-30
@@ -97,9 +97,9 @@ import library "interface";
|
||||
|
||||
class C6 { }
|
||||
impl C6 as I where .T = {};
|
||||
// CHECK:STDERR: fail_missing_on_definition.carbon:[[@LINE+12]]:12: error: associated constant T not given a value in impl of interface I [ImplAssociatedConstantNeedsValue]
|
||||
// CHECK:STDERR: fail_missing_on_definition.carbon:[[@LINE+12]]:1: error: associated constant T not given a value in impl of interface I [ImplAssociatedConstantNeedsValue]
|
||||
// CHECK:STDERR: impl C6 as I { }
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_missing_on_definition.carbon:[[@LINE-7]]:1: in import [InImport]
|
||||
// CHECK:STDERR: interface.carbon:3:19: note: associated constant declared here [AssociatedConstantHere]
|
||||
// CHECK:STDERR: interface I { let T:! type; }
|
||||
@@ -327,10 +327,10 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded
|
||||
// CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -359,6 +359,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I [from "interface.carbon"] {
|
||||
@@ -412,10 +413,10 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded
|
||||
// CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -444,6 +445,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: impl_decl @impl [concrete] {} {
|
||||
// CHECK:STDOUT: %C2.ref.loc6: type = name_ref C2, file.%C2.decl [concrete = constants.%C2]
|
||||
// CHECK:STDOUT: %I.ref.loc6: type = name_ref I, imports.%Main.I [concrete = constants.%I.type]
|
||||
@@ -514,10 +516,10 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded
|
||||
// CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -551,6 +553,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc10: <witness> = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I [from "interface.carbon"] {
|
||||
@@ -609,10 +612,10 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded
|
||||
// CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -641,6 +644,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc9: <witness> = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant.loc9: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: impl_decl @impl.2de [concrete] {} {
|
||||
// CHECK:STDOUT: %C4.ref: type = name_ref C4, file.%C4.decl [concrete = constants.%C4]
|
||||
// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type]
|
||||
@@ -658,6 +662,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc10: <witness> = impl_witness (constants.%empty_tuple.type) [concrete = constants.%impl_witness.2a6]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant.loc10: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I [from "interface.carbon"] {
|
||||
@@ -717,16 +722,16 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %Main.I = import_ref Main//interface, I, unloaded
|
||||
// CHECK:STDOUT: %Main.I3: type = import_ref Main//interface, I3, loaded [concrete = constants.%I3.type]
|
||||
// CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.148 = import_ref Main//interface, inst24 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.148 = import_ref Main//interface, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f5f: %I3.assoc_type = import_ref Main//interface, loc6_9, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.import_ref.680: %I3.assoc_type = import_ref Main//interface, loc7_9, loaded [concrete = constants.%assoc1]
|
||||
// CHECK:STDOUT: %Main.import_ref.181: %I3.assoc_type = import_ref Main//interface, loc8_9, loaded [concrete = constants.%assoc2]
|
||||
// CHECK:STDOUT: %Main.T1 = import_ref Main//interface, T1, unloaded
|
||||
// CHECK:STDOUT: %Main.T2 = import_ref Main//interface, T2, unloaded
|
||||
// CHECK:STDOUT: %Main.T3 = import_ref Main//interface, T3, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8a8474.1: %I3.type = import_ref Main//interface, inst24 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.8a8474.2: %I3.type = import_ref Main//interface, inst24 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.8a8474.3: %I3.type = import_ref Main//interface, inst24 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.8a8474.1: %I3.type = import_ref Main//interface, inst25 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.8a8474.2: %I3.type = import_ref Main//interface, inst25 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.8a8474.3: %I3.type = import_ref Main//interface, inst25 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -882,10 +887,10 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded
|
||||
// CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -914,6 +919,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc5: <witness> = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: impl_decl @impl.482 [concrete] {} {
|
||||
// CHECK:STDOUT: %C6.ref: type = name_ref C6, file.%C6.decl [concrete = constants.%C6]
|
||||
// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type]
|
||||
@@ -975,10 +981,10 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded
|
||||
// CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1016,6 +1022,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (<error>) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I [from "interface.carbon"] {
|
||||
@@ -1068,10 +1075,10 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded
|
||||
// CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.T = import_ref Main//interface, T, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1159,10 +1166,10 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded
|
||||
// CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.T = import_ref Main//interface, T, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1250,10 +1257,10 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded
|
||||
// CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.T = import_ref Main//interface, T, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1343,10 +1350,10 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded
|
||||
// CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1384,6 +1391,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I [from "interface.carbon"] {
|
||||
@@ -1440,10 +1448,10 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %Main.I = import_ref Main//interface, I, unloaded
|
||||
// CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded
|
||||
// CHECK:STDOUT: %Main.NonType: type = import_ref Main//interface, NonType, loaded [concrete = constants.%NonType.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.8b7 = import_ref Main//interface, inst38 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8b7 = import_ref Main//interface, inst39 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.9fa: %NonType.assoc_type = import_ref Main//interface, loc12_8, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.Y: %struct_type.a.225 = import_ref Main//interface, Y, loaded [concrete = %Y]
|
||||
// CHECK:STDOUT: %Main.import_ref.86c: %NonType.type = import_ref Main//interface, inst38 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.86c: %NonType.type = import_ref Main//interface, inst39 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1476,6 +1484,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%struct) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: %struct_type.a.225 = impl_witness_assoc_constant constants.%struct [concrete = constants.%struct]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @NonType [from "interface.carbon"] {
|
||||
@@ -1569,10 +1578,10 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.IF: type = import_ref Main//interface_with_function, IF, loaded [concrete = constants.%IF.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.a2a = import_ref Main//interface_with_function, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.a2a = import_ref Main//interface_with_function, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f22: %IF.assoc_type = import_ref Main//interface_with_function, loc3_22, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.F: %F.type.496 = import_ref Main//interface_with_function, F, loaded [concrete = constants.%F.1de]
|
||||
// CHECK:STDOUT: %Main.import_ref.f57: %IF.type = import_ref Main//interface_with_function, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.f57: %IF.type = import_ref Main//interface_with_function, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -122,10 +122,10 @@ fn F(x: (), y: ()) -> () {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.Add: type = import_ref Main//a, Add, loaded [concrete = constants.%Add.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.07c = import_ref Main//a, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.07c = import_ref Main//a, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f99: %Add.assoc_type = import_ref Main//a, loc5_41, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.Op: %Op.type.31b = import_ref Main//a, Op, loaded [concrete = constants.%Op.d59]
|
||||
// CHECK:STDOUT: %Main.import_ref.e5e: %Add.type = import_ref Main//a, inst16 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.e5e: %Add.type = import_ref Main//a, inst17 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -217,11 +217,11 @@ fn H() -> C({}).(I.F)() {}
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//import_generic, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//import_generic, loc4_9, loaded [symbolic = @C.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//import_generic, loc4_20, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//import_generic, inst24 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//import_generic, inst30 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//import_generic, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//import_generic, inst31 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c44: %I.assoc_type = import_ref Main//import_generic, loc7_9, loaded [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %Main.F = import_ref Main//import_generic, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//import_generic, inst30 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//import_generic, inst31 [no loc], loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.d91: <witness> = import_ref Main//import_generic, loc10_34, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.bbe)]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//import_generic, loc10_14, loaded [symbolic = @impl.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.499: type = import_ref Main//import_generic, loc10_27, loaded [symbolic = @impl.%C (constants.%C.f2e)]
|
||||
|
||||
+19
-19
@@ -446,19 +446,19 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %Main.C = import_ref Main//action, C, unloaded
|
||||
// CHECK:STDOUT: %Main.F = import_ref Main//action, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.1: <witness> = import_ref Main//action, loc9_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//action, inst59 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//action, inst60 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//action, loc4_18, loaded [symbolic = @Action.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.ddc = import_ref Main//action, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ddc = import_ref Main//action, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c55: @Action.%Action.assoc_type (%Action.assoc_type.32e) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.%assoc0 (constants.%assoc0.f18741.2)]
|
||||
// CHECK:STDOUT: %Main.Op = import_ref Main//action, Op, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.71c: <witness> = import_ref Main//action, loc12_21, loaded [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//action, loc8_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//action, inst54 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//action, inst55 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.984: type = import_ref Main//action, loc12_6, loaded [concrete = constants.%A]
|
||||
// CHECK:STDOUT: %Main.import_ref.bb2: type = import_ref Main//action, loc12_19, loaded [concrete = constants.%Action.type.cb0]
|
||||
// CHECK:STDOUT: %Main.import_ref.7b5 = import_ref Main//action, loc13_23, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//action, loc4_18, loaded [symbolic = @Action.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.835: @Action.%Action.type (%Action.type.cca) = import_ref Main//action, inst25 [no loc], loaded [symbolic = @Action.%Self (constants.%Self.e98)]
|
||||
// CHECK:STDOUT: %Main.import_ref.835: @Action.%Action.type (%Action.type.cca) = import_ref Main//action, inst26 [no loc], loaded [symbolic = @Action.%Self (constants.%Self.e98)]
|
||||
// CHECK:STDOUT: %Main.import_ref.0e3753.1 = import_ref Main//action, loc5_22, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -620,22 +620,22 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//action, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.F = import_ref Main//action, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.1: <witness> = import_ref Main//action, loc9_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//action, inst59 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//action, inst60 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//action, loc4_18, loaded [symbolic = @Action.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.ddc = import_ref Main//action, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ddc = import_ref Main//action, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c55: @Action.%Action.assoc_type (%Action.assoc_type.32e) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.%assoc0 (constants.%assoc0.f18)]
|
||||
// CHECK:STDOUT: %Main.Op = import_ref Main//action, Op, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.7a1 = import_ref Main//action, loc12_21, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//action, loc8_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//action, inst54 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//action, inst55 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.984: type = import_ref Main//action, loc12_6, loaded [concrete = constants.%A]
|
||||
// CHECK:STDOUT: %Main.import_ref.bb2: type = import_ref Main//action, loc12_19, loaded [concrete = constants.%Action.type.cb0]
|
||||
// CHECK:STDOUT: %Main.import_ref.7b5 = import_ref Main//action, loc13_23, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//action, loc4_18, loaded [symbolic = @Action.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.835: @Action.%Action.type (%Action.type.cca) = import_ref Main//action, inst25 [no loc], loaded [symbolic = @Action.%Self (constants.%Self.e98)]
|
||||
// CHECK:STDOUT: %Main.import_ref.835: @Action.%Action.type (%Action.type.cca) = import_ref Main//action, inst26 [no loc], loaded [symbolic = @Action.%Self (constants.%Self.e98)]
|
||||
// CHECK:STDOUT: %Main.import_ref.1f6: @Action.%Op.type (%Op.type.036) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.%Op (constants.%Op.6ed)]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.3: <witness> = import_ref Main//action, loc10_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//action, inst62 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//action, inst63 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1046,25 +1046,25 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %Main.A: type = import_ref Main//factory, A, loaded [concrete = constants.%A]
|
||||
// CHECK:STDOUT: %Main.B: type = import_ref Main//factory, B, loaded [concrete = constants.%B]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.1: <witness> = import_ref Main//factory, loc12_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//factory, inst78 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//factory, inst79 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.fbb = import_ref Main//factory, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.fbb = import_ref Main//factory, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.46c: @Factory.%Factory.assoc_type (%Factory.assoc_type.207) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.%assoc0 (constants.%assoc0.46d25f.2)]
|
||||
// CHECK:STDOUT: %Main.import_ref.2e4: @Factory.%Factory.assoc_type (%Factory.assoc_type.207) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.%assoc1 (constants.%assoc1.16541d.2)]
|
||||
// CHECK:STDOUT: %Main.Make = import_ref Main//factory, Make, unloaded
|
||||
// CHECK:STDOUT: %Main.Method = import_ref Main//factory, Method, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f8d: <witness> = import_ref Main//factory, loc14_22, loaded [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//factory, loc11_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//factory, inst73 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//factory, inst74 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.984: type = import_ref Main//factory, loc14_6, loaded [concrete = constants.%A]
|
||||
// CHECK:STDOUT: %Main.import_ref.bd2: type = import_ref Main//factory, loc14_20, loaded [concrete = constants.%Factory.type.a5d]
|
||||
// CHECK:STDOUT: %Main.import_ref.a27 = import_ref Main//factory, loc15_17, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.163 = import_ref Main//factory, loc16_31, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.91b53a.1: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst25 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)]
|
||||
// CHECK:STDOUT: %Main.import_ref.91b53a.1: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst26 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)]
|
||||
// CHECK:STDOUT: %Main.import_ref.21018a.1 = import_ref Main//factory, loc6_17, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.3: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.91b53a.2: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst25 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)]
|
||||
// CHECK:STDOUT: %Main.import_ref.91b53a.2: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst26 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)]
|
||||
// CHECK:STDOUT: %Main.import_ref.46fc3c.1 = import_ref Main//factory, loc8_31, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1289,25 +1289,25 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: import Core//default
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.1: <witness> = import_ref Main//factory, loc12_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//factory, inst78 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//factory, inst79 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.fbb = import_ref Main//factory, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.fbb = import_ref Main//factory, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.46c: @Factory.%Factory.assoc_type (%Factory.assoc_type.207) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.%assoc0 (constants.%assoc0.46d)]
|
||||
// CHECK:STDOUT: %Main.import_ref.2e4: @Factory.%Factory.assoc_type (%Factory.assoc_type.207) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.%assoc1 (constants.%assoc1.165)]
|
||||
// CHECK:STDOUT: %Main.Make = import_ref Main//factory, Make, unloaded
|
||||
// CHECK:STDOUT: %Main.Method = import_ref Main//factory, Method, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//factory, loc14_22, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//factory, loc11_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//factory, inst73 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//factory, inst74 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.984: type = import_ref Main//factory, loc14_6, loaded [concrete = constants.%A]
|
||||
// CHECK:STDOUT: %Main.import_ref.bd2: type = import_ref Main//factory, loc14_20, loaded [concrete = constants.%Factory.type.a5d]
|
||||
// CHECK:STDOUT: %Main.import_ref.a27 = import_ref Main//factory, loc15_17, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.163 = import_ref Main//factory, loc16_31, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.91b53a.1: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst25 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)]
|
||||
// CHECK:STDOUT: %Main.import_ref.91b53a.1: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst26 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)]
|
||||
// CHECK:STDOUT: %Main.import_ref.1aa: @Factory.%Make.type (%Make.type.598) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.%Make (constants.%Make.737)]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.3: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.91b53a.2: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst25 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)]
|
||||
// CHECK:STDOUT: %Main.import_ref.91b53a.2: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst26 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)]
|
||||
// CHECK:STDOUT: %Main.import_ref.5be: @Factory.%Method.type (%Method.type.7ee) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.%Method (constants.%Method.a71)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -143,7 +143,7 @@ impl () as D;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.A: type = import_ref Main//decl_in_api_definition_in_impl, A, loaded [concrete = constants.%A.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.b61 = import_ref Main//decl_in_api_definition_in_impl, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b61 = import_ref Main//decl_in_api_definition_in_impl, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//decl_in_api_definition_in_impl, loc10_7, loaded [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.831: type = import_ref Main//decl_in_api_definition_in_impl, loc10_12, loaded [concrete = constants.%A.type]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -244,7 +244,7 @@ impl () as D;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.B = import_ref Main//decl_only_in_api, B, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.420 = import_ref Main//decl_only_in_api, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.420 = import_ref Main//decl_only_in_api, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//decl_only_in_api, loc10_7, loaded [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.171: type = import_ref Main//decl_only_in_api, loc10_12, loaded [concrete = constants.%B.type]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -307,7 +307,7 @@ impl () as D;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//decl_in_api_decl_in_impl, C, loaded [concrete = constants.%C.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.721 = import_ref Main//decl_in_api_decl_in_impl, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.721 = import_ref Main//decl_in_api_decl_in_impl, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//decl_in_api_decl_in_impl, loc10_7, loaded [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.653: type = import_ref Main//decl_in_api_decl_in_impl, loc10_12, loaded [concrete = constants.%C.type]
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -394,6 +394,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc8: <witness> = impl_witness (constants.%i32, @impl.05c.%F.decl) [concrete = constants.%impl_witness.bcc]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant.loc8: type = impl_witness_assoc_constant constants.%i32 [concrete = constants.%i32]
|
||||
// CHECK:STDOUT: %CallMethod.decl: %CallMethod.type = fn_decl @CallMethod [concrete = constants.%CallMethod] {
|
||||
// CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x
|
||||
// CHECK:STDOUT: %x.param_patt: %empty_tuple.type = value_param_pattern %x.patt, call_param0
|
||||
@@ -428,6 +429,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc21: <witness> = impl_witness (constants.%C, @impl.f57.%F.decl) [concrete = constants.%impl_witness.192]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant.loc21: type = impl_witness_assoc_constant constants.%C [concrete = constants.%C]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @J {
|
||||
@@ -723,6 +725,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%i32, @impl.847.%F.decl) [concrete = constants.%impl_witness.56c]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%i32 [concrete = constants.%i32]
|
||||
// CHECK:STDOUT: %CallFunction.decl: %CallFunction.type = fn_decl @CallFunction [concrete = constants.%CallFunction] {
|
||||
// CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, call_param0
|
||||
@@ -1194,6 +1197,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%i32, @impl.2dd.%F.decl, @impl.2dd.%G.decl) [concrete = constants.%impl_witness.71e]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%i32 [concrete = constants.%i32]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: complete_type_witness = %complete_type
|
||||
// CHECK:STDOUT:
|
||||
@@ -2291,6 +2295,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%i32, <error>) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%i32 [concrete = constants.%i32]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: complete_type_witness = %complete_type
|
||||
// CHECK:STDOUT:
|
||||
@@ -2400,6 +2405,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc22: <witness> = impl_witness (constants.%empty_struct_type, <error>) [concrete = constants.%impl_witness.f71]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant.loc22: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: %C2.decl: type = class_decl @C2 [concrete = constants.%C2] {} {}
|
||||
// CHECK:STDOUT: impl_decl @impl.3df [concrete] {} {
|
||||
// CHECK:STDOUT: %C2.ref.loc31_6: type = name_ref C2, file.%C2.decl [concrete = constants.%C2]
|
||||
@@ -2417,6 +2423,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc31: <witness> = impl_witness (constants.%C2, <error>) [concrete = constants.%impl_witness.d84]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant.loc31: type = impl_witness_assoc_constant constants.%C2 [concrete = constants.%C2]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @J2 {
|
||||
@@ -2625,6 +2632,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%struct_type.a, <error>) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%struct_type.a [concrete = constants.%struct_type.a]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @K {
|
||||
@@ -2802,6 +2810,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%struct, @impl.%G.decl) [concrete = constants.%impl_witness]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: %struct_type.b.347 = impl_witness_assoc_constant constants.%struct [concrete = constants.%struct]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @M {
|
||||
@@ -2962,6 +2971,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc10: <witness> = impl_witness (constants.%struct.0f3, @impl.9c5.%G.decl) [concrete = constants.%impl_witness.ae0]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant.loc10: %struct_type.b.86f = impl_witness_assoc_constant constants.%struct.0f3 [concrete = constants.%struct.0f3]
|
||||
// CHECK:STDOUT: impl_decl @impl.f46 [concrete] {} {
|
||||
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic]
|
||||
// CHECK:STDOUT: %.loc16_9: %empty_tuple.type = tuple_literal ()
|
||||
@@ -2985,6 +2995,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness.loc16: <witness> = impl_witness (constants.%struct.c94, @impl.f46.%G.decl) [concrete = constants.%impl_witness.6b9]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant.loc16: %struct_type.b.86f = impl_witness_assoc_constant constants.%struct.c94 [concrete = constants.%struct.c94]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @M {
|
||||
@@ -3225,6 +3236,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%int_2.ef8, @impl.dd2.%F.decl) [concrete = constants.%impl_witness.d8a]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: %i32 = impl_witness_assoc_constant constants.%int_2.ef8 [concrete = constants.%int_2.ef8]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I {
|
||||
@@ -3434,6 +3446,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %T.loc9_14.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_14.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%C.f2e), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness.00e)]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%C.f2e [symbolic = @impl.%C.loc9_45.2 (constants.%C.f2e)]
|
||||
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+9
-9
@@ -546,13 +546,13 @@ fn Works() {
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc13_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//prelude, inst66 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//prelude, inst67 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//prelude, loc14_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)]
|
||||
// CHECK:STDOUT: %Core.Convert = import_ref Core//prelude, Convert, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//prelude, loc13_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//prelude, inst66 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//prelude, inst67 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//prelude, loc14_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.02e = import_ref Core//prelude, loc18_41, unloaded
|
||||
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.f80 = import_ref Core//prelude, loc21_36, unloaded
|
||||
@@ -1373,10 +1373,10 @@ fn Works() {
|
||||
// CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0.d45]
|
||||
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.51c: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
||||
@@ -1384,11 +1384,11 @@ fn Works() {
|
||||
// CHECK:STDOUT: %Core.import_ref.1e6: @impl.f92.%Op.type (%Op.type.f99) = import_ref Core//prelude, loc22_42, loaded [symbolic = @impl.f92.%Op (constants.%Op.05a)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.3: type = import_ref Core//prelude, loc13_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//prelude, inst66 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//prelude, inst67 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//prelude, loc14_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)]
|
||||
// CHECK:STDOUT: %Core.Convert = import_ref Core//prelude, Convert, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.4: type = import_ref Core//prelude, loc13_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//prelude, inst66 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//prelude, inst67 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//prelude, loc14_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1701,10 +1701,10 @@ fn Works() {
|
||||
// CHECK:STDOUT: .BitAnd = %Core.BitAnd
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0.d45]
|
||||
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f]
|
||||
// CHECK:STDOUT: %Core.import_ref.51c: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
||||
|
||||
@@ -68,7 +68,7 @@ fn UseEmpty(i: I) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//base, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.import_ref = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref = import_ref Main//base, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -95,7 +95,7 @@ fn UseEmpty(i: I) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.I: type = import_ref Main//export, I, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.import_ref = import_ref Main//export, inst19 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref = import_ref Main//export, inst20 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -324,6 +324,7 @@ interface C {
|
||||
// CHECK:STDOUT: %V.loc11_14.1: %J2.type = bind_symbolic_name V, 0 [symbolic = %V.loc11_14.2 (constants.%V)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (constants.%empty_tuple.type), @impl(constants.%V) [symbolic = @impl.%impl_witness (constants.%impl_witness.ec95d0.1)]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %J2.decl.loc13: type = interface_decl @J2 [concrete = constants.%J2.type] {} {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+2
-2
@@ -127,7 +127,7 @@ interface I {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst16
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst17
|
||||
// CHECK:STDOUT: witness = invalid
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -140,7 +140,7 @@ interface I {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst16
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst17
|
||||
// CHECK:STDOUT: witness = invalid
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -187,11 +187,11 @@ fn G(U:! Different) -> U.(Interface.T);
|
||||
// CHECK:STDOUT: import Core//default
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)]
|
||||
// CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst25 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst26 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -121,11 +121,11 @@ impl C as AddWith(C) {
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.AddWith: %AddWith.type.b35 = import_ref Main//a, AddWith, loaded [concrete = constants.%AddWith.generic]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//a, loc4_19, loaded [symbolic = @AddWith.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.476 = import_ref Main//a, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.476 = import_ref Main//a, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c77 = import_ref Main//a, loc5_9, unloaded
|
||||
// CHECK:STDOUT: %Main.F: @AddWith.%F.type (%F.type.fbc) = import_ref Main//a, F, loaded [symbolic = @AddWith.%F (constants.%F.be3)]
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//a, loc4_19, loaded [symbolic = @AddWith.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.5a4: @AddWith.%AddWith.type (%AddWith.type.bc7) = import_ref Main//a, inst25 [no loc], loaded [symbolic = @AddWith.%Self (constants.%Self.deb)]
|
||||
// CHECK:STDOUT: %Main.import_ref.5a4: @AddWith.%AddWith.type (%AddWith.type.bc7) = import_ref Main//a, inst26 [no loc], loaded [symbolic = @AddWith.%Self (constants.%Self.deb)]
|
||||
// CHECK:STDOUT: %Main.import_ref.0c5 = import_ref Main//a, loc5_9, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -181,13 +181,13 @@ var f: ForwardDeclared* = &f_ref.f;
|
||||
// CHECK:STDOUT: %Main.Basic: type = import_ref Main//a, Basic, loaded [concrete = constants.%Basic.type]
|
||||
// CHECK:STDOUT: %Main.ForwardDeclared: type = import_ref Main//a, ForwardDeclared, loaded [concrete = constants.%ForwardDeclared.type]
|
||||
// CHECK:STDOUT: %Main.f_ref: ref %struct_type.f = import_ref Main//a, f_ref, loaded
|
||||
// CHECK:STDOUT: %Main.import_ref.cc0 = import_ref Main//a, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.37f = import_ref Main//a, inst20 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.cc0 = import_ref Main//a, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.37f = import_ref Main//a, inst21 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3d5: %Basic.assoc_type = import_ref Main//a, loc8_8, loaded [concrete = constants.%assoc0.fee]
|
||||
// CHECK:STDOUT: %Main.import_ref.760: %Basic.assoc_type = import_ref Main//a, loc9_9, loaded [concrete = constants.%assoc1.4ea]
|
||||
// CHECK:STDOUT: %Main.T.44f = import_ref Main//a, T, unloaded
|
||||
// CHECK:STDOUT: %Main.F.eea = import_ref Main//a, F, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.52b = import_ref Main//a, inst34 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.52b = import_ref Main//a, inst35 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ad1: %ForwardDeclared.assoc_type = import_ref Main//a, loc16_8, loaded [concrete = constants.%assoc0.d40]
|
||||
// CHECK:STDOUT: %Main.import_ref.339: %ForwardDeclared.assoc_type = import_ref Main//a, loc17_9, loaded [concrete = constants.%assoc1.e3d]
|
||||
// CHECK:STDOUT: %Main.T.6ee = import_ref Main//a, T, unloaded
|
||||
|
||||
@@ -209,7 +209,7 @@ private interface Redecl {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Test.Def: type = import_ref Test//def, Def, loaded [concrete = constants.%Def.type]
|
||||
// CHECK:STDOUT: %Test.import_ref = import_ref Test//def, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Test.import_ref = import_ref Test//def, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -316,7 +316,7 @@ private interface Redecl {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Test.ForwardWithDef: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [concrete = constants.%ForwardWithDef.type]
|
||||
// CHECK:STDOUT: %Test.import_ref = import_ref Test//forward_with_def, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Test.import_ref = import_ref Test//forward_with_def, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -97,7 +97,7 @@ impl library "[[@TEST_NAME]]";
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.B = import_ref Main//b, B, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.420 = import_ref Main//b, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.420 = import_ref Main//b, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//b, loc7_7, loaded [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.171: type = import_ref Main//b, loc7_12, loaded [concrete = constants.%B.type]
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -606,7 +606,7 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %Main.Foo: %Foo.type.5380b8.1 = import_ref Main//two_file, Foo, loaded [concrete = constants.%Foo.generic.ec3175.1]
|
||||
// CHECK:STDOUT: %Main.Bar: %Bar.type.982aac.1 = import_ref Main//two_file, Bar, loaded [concrete = constants.%Bar.generic.4bda5e.1]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//two_file, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f97b44.1: %C = import_ref Main//two_file, loc7_15, loaded [symbolic = @Foo.1.%a (constants.%a)]
|
||||
// CHECK:STDOUT: %Main.import_ref.f97b44.2: %C = import_ref Main//two_file, loc8_15, loaded [symbolic = @Bar.1.%a (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1030,7 +1030,7 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//alias_two_file, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.Foo: %Foo.type.5380b8.1 = import_ref Main//alias_two_file, Foo, loaded [concrete = constants.%Foo.generic.ec3175.1]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//alias_two_file, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f97: %C = import_ref Main//alias_two_file, loc6_15, loaded [symbolic = @Foo.1.%a (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -565,12 +565,12 @@ impl i32 as Empty {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = constants.%C
|
||||
// CHECK:STDOUT: .F = %F.decl
|
||||
// CHECK:STDOUT: .x = <unexpected>.inst30.loc14_7
|
||||
// CHECK:STDOUT: .x = <unexpected>.inst31.loc14_7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F() -> %empty_tuple.type {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %x.ref: %empty_tuple.type = name_ref x, <unexpected>.inst30.loc14_7
|
||||
// CHECK:STDOUT: %x.ref: %empty_tuple.type = name_ref x, <unexpected>.inst31.loc14_7
|
||||
// CHECK:STDOUT: return %x.ref
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ fn F() {
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [concrete] {
|
||||
// CHECK:STDOUT: .Core = imports.%Core
|
||||
// CHECK:STDOUT: .n = <unexpected>.inst44.loc15_5
|
||||
// CHECK:STDOUT: .n = <unexpected>.inst45.loc15_5
|
||||
// CHECK:STDOUT: .F = %F.decl
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
|
||||
@@ -100,7 +100,7 @@ fn Run() {
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.import_ref.8f2: <witness> = import_ref Other//a, loc5_14, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.ca8 = import_ref Other//a, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.ca8 = import_ref Other//a, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -174,8 +174,8 @@ fn Run() {
|
||||
// CHECK:STDOUT: import Other//a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.F: %F.type = import_ref Other//b, F, loaded [concrete = constants.%F]
|
||||
// CHECK:STDOUT: %Other.import_ref.8db: <witness> = import_ref Other//b, inst29 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.bbd = import_ref Other//b, inst30 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.8db: <witness> = import_ref Other//b, inst30 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.bbd = import_ref Other//b, inst31 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.NS1: <namespace> = import_ref Other//b, NS1, loaded
|
||||
// CHECK:STDOUT: %NS1: <namespace> = namespace %Other.NS1, [concrete] {
|
||||
// CHECK:STDOUT: .A = %Other.A
|
||||
|
||||
@@ -102,7 +102,7 @@ fn F() { ()[()]; }
|
||||
// CHECK:STDOUT: import Core//core_wrong_index_with
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import_ref.8f2: <witness> = import_ref Core//core_wrong_index_with, loc4_18, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Core.import_ref.4c7 = import_ref Core//core_wrong_index_with, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.4c7 = import_ref Core//core_wrong_index_with, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -292,11 +292,11 @@ fn F() { ()[()]; }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.504 = import_ref Core//core_wrong_arg_count, IndexWith, loaded [concrete = constants.%IndexWith.generic]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//core_wrong_arg_count, loc4_21, loaded [symbolic = @IndexWith.%SubscriptType (constants.%SubscriptType)]
|
||||
// CHECK:STDOUT: %Core.import_ref.68a = import_ref Core//core_wrong_arg_count, inst25 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.68a = import_ref Core//core_wrong_arg_count, inst26 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.613: @IndexWith.%IndexWith.assoc_type (%IndexWith.assoc_type.290) = import_ref Core//core_wrong_arg_count, loc5_52, loaded [symbolic = @IndexWith.%assoc0 (constants.%assoc0.e1e)]
|
||||
// CHECK:STDOUT: %Core.At: @IndexWith.%At.type (%At.type.cf4) = import_ref Core//core_wrong_arg_count, At, loaded [symbolic = @IndexWith.%At (constants.%At.281)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//core_wrong_arg_count, loc4_21, loaded [symbolic = @IndexWith.%SubscriptType (constants.%SubscriptType)]
|
||||
// CHECK:STDOUT: %Core.import_ref.fb5: @IndexWith.%IndexWith.type (%IndexWith.type.bd2) = import_ref Core//core_wrong_arg_count, inst25 [no loc], loaded [symbolic = @IndexWith.%Self (constants.%Self.30a)]
|
||||
// CHECK:STDOUT: %Core.import_ref.fb5: @IndexWith.%IndexWith.type (%IndexWith.type.bd2) = import_ref Core//core_wrong_arg_count, inst26 [no loc], loaded [symbolic = @IndexWith.%Self (constants.%Self.30a)]
|
||||
// CHECK:STDOUT: %Core.import_ref.e99: @IndexWith.%At.type (%At.type.cf4) = import_ref Core//core_wrong_arg_count, loc5_52, loaded [symbolic = @IndexWith.%At (constants.%At.281)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -293,7 +293,7 @@ alias C = Other.C;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.56d: <witness> = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.276 = import_ref Other//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -325,7 +325,7 @@ alias C = Other.C;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.56d: <witness> = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.276 = import_ref Other//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -356,9 +356,9 @@ alias C = Other.C;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.ad3: <witness> = import_ref Other//export_name, inst21 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.ad3: <witness> = import_ref Other//export_name, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -396,7 +396,7 @@ alias C = Other.C;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.56d: <witness> = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.276 = import_ref Other//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -459,7 +459,7 @@ alias C = Other.C;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.56d: <witness> = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.276 = import_ref Other//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -522,7 +522,7 @@ alias C = Other.C;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.56d: <witness> = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.276 = import_ref Other//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -582,9 +582,9 @@ alias C = Other.C;
|
||||
// CHECK:STDOUT: import Other//export_name
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.ad3: <witness> = import_ref Other//export_name, inst21 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.ad3: <witness> = import_ref Other//export_name, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -644,9 +644,9 @@ alias C = Other.C;
|
||||
// CHECK:STDOUT: import Other//export_name_copy
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.ad3: <witness> = import_ref Other//export_name, inst21 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.ad3: <witness> = import_ref Other//export_name, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -705,9 +705,9 @@ alias C = Other.C;
|
||||
// CHECK:STDOUT: import Other//export_name_indirect
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//export_name_indirect, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.328: <witness> = import_ref Other//export_name_indirect, inst21 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.db8 = import_ref Other//export_name_indirect, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.3ef = import_ref Other//export_name_indirect, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.328: <witness> = import_ref Other//export_name_indirect, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.db8 = import_ref Other//export_name_indirect, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.3ef = import_ref Other//export_name_indirect, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -772,9 +772,9 @@ alias C = Other.C;
|
||||
// CHECK:STDOUT: import Other//base
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.ad3: <witness> = import_ref Other//export_name, inst21 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.ad3: <witness> = import_ref Other//export_name, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -895,9 +895,9 @@ alias C = Other.C;
|
||||
// CHECK:STDOUT: import Other//conflict
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Other.import_ref.ad3: <witness> = import_ref Other//export_name, inst21 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst22 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.ad3: <witness> = import_ref Other//export_name, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -302,7 +302,7 @@ export Poison;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -360,7 +360,7 @@ export Poison;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//export_export, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -415,7 +415,7 @@ export Poison;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -469,7 +469,7 @@ export Poison;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -523,7 +523,7 @@ export Poison;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -577,7 +577,7 @@ export Poison;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -631,7 +631,7 @@ export Poison;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -685,7 +685,7 @@ export Poison;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -751,7 +751,7 @@ export Poison;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -806,7 +806,7 @@ export Poison;
|
||||
// CHECK:STDOUT: %Main.c = import_ref Main//use_non_export_then_base, c, unloaded
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -193,7 +193,7 @@ var d: D = {.y = ()};
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.D = import_ref Main//base, D, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -227,7 +227,7 @@ var d: D = {.y = ()};
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.D = import_ref Main//base, D, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -274,9 +274,9 @@ var d: D = {.y = ()};
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//export_import_then_name, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export_import_then_name, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export_import_then_name, inst23 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -328,9 +328,9 @@ var d: D = {.y = ()};
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//export_name, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export_name, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export_name, inst23 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_name, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -382,9 +382,9 @@ var d: D = {.y = ()};
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//export_import_then_name, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export_import_then_name, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export_import_then_name, inst23 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -471,9 +471,9 @@ var d: D = {.y = ()};
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//export_import_then_name, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export_import_then_name, inst22 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export_import_then_name, inst23 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -530,11 +530,11 @@ var d: D = {.y = ()};
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//export_import_then_name, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.D: type = import_ref Main//base, D, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export_import_then_name, inst22 [indirect], loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst23 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export_import_then_name, inst23 [indirect], loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab: <witness> = import_ref Main//base, loc10_1, loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//base, inst28 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//base, inst29 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.950 = import_ref Main//base, loc9_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+40
-40
@@ -275,10 +275,10 @@ private export C;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.NSC: type = import_ref Main//base, NSC, loaded [concrete = constants.%NSC]
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab: <witness> = import_ref Main//base, loc11_1, loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.31c = import_ref Main//base, inst29 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.31c = import_ref Main//base, inst30 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.be6 = import_ref Main//base, loc10_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -345,12 +345,12 @@ private export C;
|
||||
// CHECK:STDOUT: .NSC = file.%NSC
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.NSC: type = import_ref Main//export, NSC, loaded [concrete = constants.%NSC]
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export, inst24 [indirect], loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export, inst26 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.63c: <witness> = import_ref Main//export, inst32 [indirect], loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.f0b = import_ref Main//export, inst33 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ebc = import_ref Main//export, inst34 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export, inst25 [indirect], loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst26 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export, inst27 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.63c: <witness> = import_ref Main//export, inst33 [indirect], loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.f0b = import_ref Main//export, inst34 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ebc = import_ref Main//export, inst35 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -407,12 +407,12 @@ private export C;
|
||||
// CHECK:STDOUT: .NSC = %Main.NSC
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.NSC: type = import_ref Main//export, NSC, loaded [concrete = constants.%NSC]
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export, inst24 [indirect], loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export, inst26 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.63c: <witness> = import_ref Main//export, inst32 [indirect], loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.f0b = import_ref Main//export, inst33 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ebc = import_ref Main//export, inst34 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export, inst25 [indirect], loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst26 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export, inst27 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.63c: <witness> = import_ref Main//export, inst33 [indirect], loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.f0b = import_ref Main//export, inst34 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ebc = import_ref Main//export, inst35 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -501,12 +501,12 @@ private export C;
|
||||
// CHECK:STDOUT: .NSC = %Main.NSC
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.NSC: type = import_ref Main//export_export, NSC, loaded [concrete = constants.%NSC]
|
||||
// CHECK:STDOUT: %Main.import_ref.328: <witness> = import_ref Main//export_export, inst24 [indirect], loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//export_export, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3ef = import_ref Main//export_export, inst26 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c12: <witness> = import_ref Main//export_export, inst32 [indirect], loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.1cb = import_ref Main//export_export, inst33 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b18 = import_ref Main//export_export, inst34 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.328: <witness> = import_ref Main//export_export, inst25 [indirect], loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//export_export, inst26 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3ef = import_ref Main//export_export, inst27 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c12: <witness> = import_ref Main//export_export, inst33 [indirect], loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.1cb = import_ref Main//export_export, inst34 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b18 = import_ref Main//export_export, inst35 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -596,12 +596,12 @@ private export C;
|
||||
// CHECK:STDOUT: .NSC = %Main.NSC
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.NSC: type = import_ref Main//export_export, NSC, loaded [concrete = constants.%NSC]
|
||||
// CHECK:STDOUT: %Main.import_ref.328: <witness> = import_ref Main//export_export, inst24 [indirect], loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//export_export, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3ef = import_ref Main//export_export, inst26 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c12: <witness> = import_ref Main//export_export, inst32 [indirect], loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.1cb = import_ref Main//export_export, inst33 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b18 = import_ref Main//export_export, inst34 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.328: <witness> = import_ref Main//export_export, inst25 [indirect], loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//export_export, inst26 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3ef = import_ref Main//export_export, inst27 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c12: <witness> = import_ref Main//export_export, inst33 [indirect], loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.1cb = import_ref Main//export_export, inst34 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b18 = import_ref Main//export_export, inst35 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -725,7 +725,7 @@ private export C;
|
||||
// CHECK:STDOUT: .NSC = %Main.NSC
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -768,10 +768,10 @@ private export C;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.NSC: type = import_ref Main//base, NSC, loaded [concrete = constants.%NSC]
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5ab: <witness> = import_ref Main//base, loc11_1, loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.31c = import_ref Main//base, inst29 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.31c = import_ref Main//base, inst30 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.be6 = import_ref Main//base, loc10_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -861,12 +861,12 @@ private export C;
|
||||
// CHECK:STDOUT: .NSC = %Main.NSC
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.NSC: type = import_ref Main//export, NSC, loaded [concrete = constants.%NSC]
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export, inst24 [indirect], loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export, inst26 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.63c: <witness> = import_ref Main//export, inst32 [indirect], loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.f0b = import_ref Main//export, inst33 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ebc = import_ref Main//export, inst34 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export, inst25 [indirect], loaded [concrete = constants.%complete_type.9be]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst26 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export, inst27 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.63c: <witness> = import_ref Main//export, inst33 [indirect], loaded [concrete = constants.%complete_type.9f4]
|
||||
// CHECK:STDOUT: %Main.import_ref.f0b = import_ref Main//export, inst34 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ebc = import_ref Main//export, inst35 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -966,7 +966,7 @@ private export C;
|
||||
// CHECK:STDOUT: .NSC = %Main.NSC
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1000,9 +1000,9 @@ private export C;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//repeat_export, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//repeat_export, inst24 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//repeat_export, inst25 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//repeat_export, inst26 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//repeat_export, inst25 [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//repeat_export, inst26 [indirect], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//repeat_export, inst27 [indirect], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1057,7 +1057,7 @@ private export C;
|
||||
// CHECK:STDOUT: .NSC = %Main.NSC
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ export C.n;
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Foo.C: type = import_ref Foo//a, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Foo.import_ref.9fc: <witness> = import_ref Foo//a, loc6_1, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Foo.import_ref.2c4 = import_ref Foo//a, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Foo.import_ref.2c4 = import_ref Foo//a, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Foo.import_ref.4cb = import_ref Foo//a, loc5_8, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+7
-7
@@ -334,9 +334,9 @@ import Other library "o1";
|
||||
// CHECK:STDOUT: %Main.C1: type = import_ref Main//mix_current_package, C1, loaded [concrete = constants.%C1]
|
||||
// CHECK:STDOUT: %Main.C2: type = import_ref Main//c2, C2, loaded [concrete = constants.%C2]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.1: <witness> = import_ref Main//c1, loc4_11, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.eb7 = import_ref Main//c1, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.eb7 = import_ref Main//c1, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//c2, loc4_11, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.5b0 = import_ref Main//c2, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.5b0 = import_ref Main//c2, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -416,7 +416,7 @@ import Other library "o1";
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Main.C1: type = import_ref Main//dup_c1, C1, loaded [concrete = constants.%C1]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//c1, loc4_11, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.eb7 = import_ref Main//c1, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.eb7 = import_ref Main//c1, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -483,7 +483,7 @@ import Other library "o1";
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.C: type = import_ref Main//use_ns, C, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//ns, loc5_13, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.2dd = import_ref Main//ns, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.2dd = import_ref Main//ns, inst17 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -556,10 +556,10 @@ import Other library "o1";
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.O1: type = import_ref Other//o1, O1, loaded [concrete = constants.%O1]
|
||||
// CHECK:STDOUT: %Other.import_ref.8f24d3.1: <witness> = import_ref Other//o1, loc4_11, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.481 = import_ref Other//o1, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.481 = import_ref Other//o1, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.O2: type = import_ref Other//o2, O2, loaded [concrete = constants.%O2]
|
||||
// CHECK:STDOUT: %Other.import_ref.8f24d3.2: <witness> = import_ref Other//o2, loc4_11, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.2eb = import_ref Other//o2, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.2eb = import_ref Other//o2, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -651,7 +651,7 @@ import Other library "o1";
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Other.O1: type = import_ref Other//o1, O1, loaded [concrete = constants.%O1]
|
||||
// CHECK:STDOUT: %Other.import_ref.8f2: <witness> = import_ref Other//o1, loc4_11, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Other.import_ref.481 = import_ref Other//o1, inst15 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Other.import_ref.481 = import_ref Other//o1, inst16 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -385,11 +385,11 @@ fn F0(n: i32) -> P.D {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//default, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc8_22, loaded [symbolic = @ImplicitAs.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst48 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst49 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc9_32, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)]
|
||||
// CHECK:STDOUT: %Core.Convert: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, Convert, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)]
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc8_22, loaded [symbolic = @ImplicitAs.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst48 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst49 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc9_32, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)]
|
||||
// CHECK:STDOUT: %Core.import_ref.de9: <witness> = import_ref Core//default, loc12_38, loaded [concrete = constants.%impl_witness.39c7]
|
||||
// CHECK:STDOUT: %Core.import_ref.872: type = import_ref Core//default, loc12_17, loaded [concrete = Core.IntLiteral]
|
||||
@@ -1184,19 +1184,19 @@ fn F0(n: i32) -> P.D {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %P.D: type = import_ref P//library, D, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %P.import_ref.7e5: <witness> = import_ref P//library, loc7_35, loaded [concrete = constants.%complete_type.682]
|
||||
// CHECK:STDOUT: %P.import_ref.cab = import_ref P//library, inst46 [no loc], unloaded
|
||||
// CHECK:STDOUT: %P.import_ref.cab = import_ref P//library, inst47 [no loc], unloaded
|
||||
// CHECK:STDOUT: %P.import_ref.a99 = import_ref P//library, loc7_16, unloaded
|
||||
// CHECK:STDOUT: %P.import_ref.9d2 = import_ref P//library, loc7_28, unloaded
|
||||
// CHECK:STDOUT: %P.C: %C.type = import_ref P//library, C, loaded [concrete = constants.%C.generic]
|
||||
// CHECK:STDOUT: %P.import_ref.85e: %i32.builtin = import_ref P//library, loc6_9, loaded [symbolic = @C.%N (constants.%N)]
|
||||
// CHECK:STDOUT: %P.import_ref.8f2: <witness> = import_ref P//library, loc6_19, loaded [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: %P.import_ref.d9b = import_ref P//library, inst41 [no loc], unloaded
|
||||
// CHECK:STDOUT: %P.import_ref.d9b = import_ref P//library, inst42 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc8_22, loaded [symbolic = @ImplicitAs.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst48 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst49 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc9_32, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)]
|
||||
// CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc8_22, loaded [symbolic = @ImplicitAs.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst48 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst49 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)]
|
||||
// CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc9_32, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)]
|
||||
// CHECK:STDOUT: %Core.import_ref.de9: <witness> = import_ref Core//default, loc12_38, loaded [concrete = constants.%impl_witness.39c]
|
||||
// CHECK:STDOUT: %Core.import_ref.872: type = import_ref Core//default, loc12_17, loaded [concrete = Core.IntLiteral]
|
||||
|
||||
+3
-3
@@ -328,7 +328,7 @@ var c_bad: C({.a = 3, .b = 4}) = F();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Implicit.import_ref.c81: %struct_type.a.b.5ca = import_ref Implicit//default, loc8_9, loaded [symbolic = @C.%S (constants.%S)]
|
||||
// CHECK:STDOUT: %Implicit.import_ref.8f2: <witness> = import_ref Implicit//default, loc8_34, loaded [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: %Implicit.import_ref.b8b = import_ref Implicit//default, inst1142 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Implicit.import_ref.b8b = import_ref Implicit//default, inst1143 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -505,7 +505,7 @@ var c_bad: C({.a = 3, .b = 4}) = F();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Implicit.import_ref.c81: %struct_type.a.b = import_ref Implicit//default, loc8_9, loaded [symbolic = @C.%S (constants.%S)]
|
||||
// CHECK:STDOUT: %Implicit.import_ref.8f2: <witness> = import_ref Implicit//default, loc8_34, loaded [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: %Implicit.import_ref.b8b = import_ref Implicit//default, inst1142 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Implicit.import_ref.b8b = import_ref Implicit//default, inst1143 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -622,7 +622,7 @@ var c_bad: C({.a = 3, .b = 4}) = F();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Implicit.import_ref.c81: %struct_type.a.b.5ca = import_ref Implicit//default, loc8_9, loaded [symbolic = @C.%S (constants.%S)]
|
||||
// CHECK:STDOUT: %Implicit.import_ref.8f2: <witness> = import_ref Implicit//default, loc8_34, loaded [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: %Implicit.import_ref.b8b = import_ref Implicit//default, inst1142 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Implicit.import_ref.b8b = import_ref Implicit//default, inst1143 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+3
-3
@@ -358,7 +358,7 @@ var c_bad: C((3, 4)) = F();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Implicit.import_ref.48d: %tuple.type.c2c = import_ref Implicit//default, loc7_9, loaded [symbolic = @C.%X (constants.%X)]
|
||||
// CHECK:STDOUT: %Implicit.import_ref.8f2: <witness> = import_ref Implicit//default, loc7_26, loaded [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: %Implicit.import_ref.964 = import_ref Implicit//default, inst1179 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Implicit.import_ref.964 = import_ref Implicit//default, inst1180 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -551,7 +551,7 @@ var c_bad: C((3, 4)) = F();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Implicit.import_ref.48d: %tuple.type.c2c = import_ref Implicit//default, loc7_9, loaded [symbolic = @C.%X (constants.%X)]
|
||||
// CHECK:STDOUT: %Implicit.import_ref.8f2: <witness> = import_ref Implicit//default, loc7_26, loaded [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: %Implicit.import_ref.964 = import_ref Implicit//default, inst1179 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Implicit.import_ref.964 = import_ref Implicit//default, inst1180 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -669,7 +669,7 @@ var c_bad: C((3, 4)) = F();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Implicit.import_ref.48d: %tuple.type.c2c = import_ref Implicit//default, loc7_9, loaded [symbolic = @C.%X (constants.%X)]
|
||||
// CHECK:STDOUT: %Implicit.import_ref.8f2: <witness> = import_ref Implicit//default, loc7_26, loaded [concrete = constants.%complete_type.357]
|
||||
// CHECK:STDOUT: %Implicit.import_ref.964 = import_ref Implicit//default, inst1179 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Implicit.import_ref.964 = import_ref Implicit//default, inst1180 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -496,8 +496,8 @@ let (a: {}, b: {}) = ({}, {}, {});
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self
|
||||
// CHECK:STDOUT: .x = <unexpected>.inst22.loc9_8
|
||||
// CHECK:STDOUT: .y = <unexpected>.inst26.loc9_15
|
||||
// CHECK:STDOUT: .x = <unexpected>.inst23.loc9_8
|
||||
// CHECK:STDOUT: .y = <unexpected>.inst27.loc9_15
|
||||
// CHECK:STDOUT: has_error
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT: }
|
||||
@@ -522,7 +522,7 @@ let (a: {}, b: {}) = ({}, {}, {});
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @C {
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %.loc9_20: %tuple.type = tuple_pattern (<unexpected>.inst21.loc9_9, <unexpected>.inst24.loc9_16)
|
||||
// CHECK:STDOUT: %.loc9_20: %tuple.type = tuple_pattern (<unexpected>.inst22.loc9_9, <unexpected>.inst25.loc9_16)
|
||||
// CHECK:STDOUT: %.loc9_3: %tuple.type = var_pattern %.loc9_20
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.var: ref %tuple.type = var <none>
|
||||
@@ -531,8 +531,8 @@ let (a: {}, b: {}) = ({}, {}, {});
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = constants.%C
|
||||
// CHECK:STDOUT: .x = <unexpected>.inst21.loc9_9
|
||||
// CHECK:STDOUT: .y = <unexpected>.inst24.loc9_16
|
||||
// CHECK:STDOUT: .x = <unexpected>.inst22.loc9_9
|
||||
// CHECK:STDOUT: .y = <unexpected>.inst25.loc9_16
|
||||
// CHECK:STDOUT: has_error
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -547,10 +547,10 @@ let (a: {}, b: {}) = ({}, {}, {});
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [concrete] {
|
||||
// CHECK:STDOUT: .x = <unexpected>.inst18.loc8_6
|
||||
// CHECK:STDOUT: .y = <unexpected>.inst22.loc8_13
|
||||
// CHECK:STDOUT: .a = <unexpected>.inst32.loc14_6
|
||||
// CHECK:STDOUT: .b = <unexpected>.inst36.loc14_13
|
||||
// CHECK:STDOUT: .x = <unexpected>.inst19.loc8_6
|
||||
// CHECK:STDOUT: .y = <unexpected>.inst23.loc8_13
|
||||
// CHECK:STDOUT: .a = <unexpected>.inst33.loc14_6
|
||||
// CHECK:STDOUT: .b = <unexpected>.inst37.loc14_13
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %x.patt: %empty_struct_type = binding_pattern x
|
||||
|
||||
@@ -35,7 +35,7 @@ interface I {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self
|
||||
// CHECK:STDOUT: .v = <unexpected>.inst21.loc16_7
|
||||
// CHECK:STDOUT: .v = <unexpected>.inst22.loc16_7
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+3
-3
@@ -610,8 +610,8 @@ fn NotEmptyStruct() {
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.8fd = import_ref Main//state_constraints, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//state_constraints, inst22 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8fd = import_ref Main//state_constraints, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//state_constraints, inst23 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.ce7 = import_ref Main//state_constraints, loc7_13, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.731 = import_ref Main//state_constraints, loc8_13, unloaded
|
||||
// CHECK:STDOUT: %Main.Member = import_ref Main//state_constraints, Member, unloaded
|
||||
@@ -715,7 +715,7 @@ fn NotEmptyStruct() {
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref = import_ref Main//state_constraints, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref = import_ref Main//state_constraints, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -1218,11 +1218,11 @@ let K: (E where .F = .Self.G) = bool;
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Main.import_ref.169 = import_ref Main//equal_constraint, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.169 = import_ref Main//equal_constraint, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.56b = import_ref Main//equal_constraint, loc5_8, unloaded
|
||||
// CHECK:STDOUT: %Main.P = import_ref Main//equal_constraint, P, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3bc: %N_where.type = import_ref Main//equal_constraint, loc8_10, loaded [symbolic = @Equal.1.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b61 = import_ref Main//nested_rewrites, inst18 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b61 = import_ref Main//nested_rewrites, inst19 [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.38f = import_ref Main//nested_rewrites, loc5_8, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.30f = import_ref Main//nested_rewrites, loc6_8, unloaded
|
||||
// CHECK:STDOUT: %Main.B = import_ref Main//nested_rewrites, B, unloaded
|
||||
|
||||
@@ -140,6 +140,10 @@ class TypeCompleter {
|
||||
auto BuildInfoForInst(SemIR::TypeId /*type_id*/, SemIR::ConstType inst) const
|
||||
-> SemIR::CompleteTypeInfo;
|
||||
|
||||
auto BuildInfoForInst(SemIR::TypeId /*type_id*/,
|
||||
SemIR::ImplWitnessAssociatedConstant inst) const
|
||||
-> SemIR::CompleteTypeInfo;
|
||||
|
||||
template <typename InstT>
|
||||
requires(InstT::Kind.constant_kind() ==
|
||||
SemIR::InstConstantKind::SymbolicOnly ||
|
||||
@@ -502,6 +506,12 @@ auto TypeCompleter::BuildInfoForInst(SemIR::TypeId /*type_id*/,
|
||||
return GetNestedInfo(context_->types().GetTypeIdForTypeInstId(inst.inner_id));
|
||||
}
|
||||
|
||||
auto TypeCompleter::BuildInfoForInst(
|
||||
SemIR::TypeId /*type_id*/, SemIR::ImplWitnessAssociatedConstant inst) const
|
||||
-> SemIR::CompleteTypeInfo {
|
||||
return GetNestedInfo(inst.type_id);
|
||||
}
|
||||
|
||||
// Builds and returns the value representation for the given type. All nested
|
||||
// types, as found by AddNestedIncompleteTypes, are known to be complete.
|
||||
auto TypeCompleter::BuildInfo(SemIR::TypeId type_id, SemIR::Inst inst) const
|
||||
|
||||
@@ -128,7 +128,9 @@ class TypeStructureBuilder {
|
||||
// The self type comes first in the type structure, so we push it last, as
|
||||
// the queue works from the back.
|
||||
Push(interface_constraint);
|
||||
PushInstId(self_inst_id);
|
||||
if (self_inst_id.has_value()) {
|
||||
PushInstId(self_inst_id);
|
||||
}
|
||||
BuildTypeStructure();
|
||||
|
||||
// TODO: This requires 4 SmallVector moves (two here and two in the
|
||||
@@ -266,6 +268,10 @@ class TypeStructureBuilder {
|
||||
PushInstId(const_type.inner_id);
|
||||
break;
|
||||
}
|
||||
case CARBON_KIND(SemIR::ImplWitnessAssociatedConstant assoc): {
|
||||
Push(assoc.type_id);
|
||||
break;
|
||||
}
|
||||
case CARBON_KIND(SemIR::PointerType pointer_type): {
|
||||
AppendStructural(TypeStructure::Structural::ConcreteOpenParen);
|
||||
Push(CloseType());
|
||||
|
||||
@@ -33,7 +33,7 @@ fn B() {
|
||||
// CHECK:STDOUT: ir0: {decl_id: inst<none>, is_export: false}
|
||||
// CHECK:STDOUT: import_ir_insts: {}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name0: inst14}}
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name0: inst15}}
|
||||
// CHECK:STDOUT: entity_names: {}
|
||||
// CHECK:STDOUT: functions:
|
||||
// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, body: [inst_block5]}
|
||||
@@ -49,38 +49,38 @@ fn B() {
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)}
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: 'type(inst15)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst16)}
|
||||
// CHECK:STDOUT: 'type(inst16)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst16)}
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst17)}
|
||||
// CHECK:STDOUT: 'type(inst17)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst17)}
|
||||
// CHECK:STDOUT: type_blocks:
|
||||
// CHECK:STDOUT: type_block0: {}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst14: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst15: {kind: FunctionType, arg0: function0, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst16: {kind: TupleType, arg0: type_block0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst17: {kind: StructValue, arg0: inst_block_empty, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst18: {kind: Return}
|
||||
// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst15: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst16)}
|
||||
// CHECK:STDOUT: inst16: {kind: FunctionType, arg0: function0, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst17: {kind: TupleType, arg0: type_block0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst18: {kind: StructValue, arg0: inst_block_empty, type: type(inst16)}
|
||||
// CHECK:STDOUT: inst19: {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: inst13: concrete_constant(inst13)
|
||||
// CHECK:STDOUT: inst14: concrete_constant(inst17)
|
||||
// CHECK:STDOUT: inst15: concrete_constant(inst15)
|
||||
// CHECK:STDOUT: inst14: concrete_constant(inst14)
|
||||
// CHECK:STDOUT: inst15: concrete_constant(inst18)
|
||||
// CHECK:STDOUT: inst16: concrete_constant(inst16)
|
||||
// CHECK:STDOUT: inst17: concrete_constant(inst17)
|
||||
// CHECK:STDOUT: inst18: concrete_constant(inst18)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
// CHECK:STDOUT: 0: inst14
|
||||
// CHECK:STDOUT: 0: inst15
|
||||
// CHECK:STDOUT: import_refs: {}
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block4: {}
|
||||
// CHECK:STDOUT: inst_block5:
|
||||
// CHECK:STDOUT: 0: inst18
|
||||
// CHECK:STDOUT: 0: inst19
|
||||
// CHECK:STDOUT: inst_block6:
|
||||
// CHECK:STDOUT: 0: inst13
|
||||
// CHECK:STDOUT: 1: inst14
|
||||
// CHECK:STDOUT: 0: inst14
|
||||
// CHECK:STDOUT: 1: inst15
|
||||
// CHECK:STDOUT: ...
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- a.carbon
|
||||
@@ -107,13 +107,13 @@ fn B() {
|
||||
// CHECK:STDOUT: sem_ir:
|
||||
// CHECK:STDOUT: import_irs:
|
||||
// CHECK:STDOUT: ir0: {decl_id: inst<none>, is_export: false}
|
||||
// CHECK:STDOUT: ir1: {decl_id: inst14, is_export: false}
|
||||
// CHECK:STDOUT: ir1: {decl_id: inst15, is_export: false}
|
||||
// CHECK:STDOUT: import_ir_insts:
|
||||
// CHECK:STDOUT: import_ir_inst0: {ir_id: ir1, inst_id: inst14}
|
||||
// CHECK:STDOUT: import_ir_inst1: {ir_id: ir1, inst_id: inst14}
|
||||
// CHECK:STDOUT: import_ir_inst0: {ir_id: ir1, inst_id: inst15}
|
||||
// CHECK:STDOUT: import_ir_inst1: {ir_id: ir1, inst_id: inst15}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name1: inst15, name0: inst16}}
|
||||
// CHECK:STDOUT: name_scope1: {inst: inst15, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst21}}
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name1: inst16, name0: inst17}}
|
||||
// CHECK:STDOUT: name_scope1: {inst: inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst22}}
|
||||
// CHECK:STDOUT: entity_names:
|
||||
// CHECK:STDOUT: entity_name0: {name: name1, parent_scope: name_scope1, index: -1, is_template: 0}
|
||||
// CHECK:STDOUT: functions:
|
||||
@@ -131,62 +131,62 @@ fn B() {
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)}
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: 'type(inst17)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst18)}
|
||||
// CHECK:STDOUT: 'type(inst18)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst18)}
|
||||
// CHECK:STDOUT: 'type(inst23)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst18)}
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)}
|
||||
// CHECK:STDOUT: 'type(inst19)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)}
|
||||
// CHECK:STDOUT: 'type(inst24)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)}
|
||||
// CHECK:STDOUT: type_blocks:
|
||||
// CHECK:STDOUT: type_block0: {}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst14: {kind: ImportDecl, arg0: name1}
|
||||
// CHECK:STDOUT: inst15: {kind: Namespace, arg0: name_scope1, arg1: inst14, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst16: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst17)}
|
||||
// CHECK:STDOUT: inst17: {kind: FunctionType, arg0: function0, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst18: {kind: TupleType, arg0: type_block0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst19: {kind: StructValue, arg0: inst_block_empty, type: type(inst17)}
|
||||
// CHECK:STDOUT: inst20: {kind: NameRef, arg0: name1, arg1: inst15, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst21: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name0, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst22: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst23: {kind: FunctionType, arg0: function1, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst24: {kind: StructValue, arg0: inst_block_empty, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst25: {kind: NameRef, arg0: name1, arg1: inst21, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst26: {kind: Call, arg0: inst25, arg1: inst_block_empty, type: type(inst18)}
|
||||
// CHECK:STDOUT: inst27: {kind: Return}
|
||||
// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst15: {kind: ImportDecl, arg0: name1}
|
||||
// CHECK:STDOUT: inst16: {kind: Namespace, arg0: name_scope1, arg1: inst15, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst17: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst18)}
|
||||
// CHECK:STDOUT: inst18: {kind: FunctionType, arg0: function0, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst19: {kind: TupleType, arg0: type_block0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst20: {kind: StructValue, arg0: inst_block_empty, type: type(inst18)}
|
||||
// CHECK:STDOUT: inst21: {kind: NameRef, arg0: name1, arg1: inst16, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst22: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name0, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst23: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst24: {kind: FunctionType, arg0: function1, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst25: {kind: StructValue, arg0: inst_block_empty, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst26: {kind: NameRef, arg0: name1, arg1: inst22, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst27: {kind: Call, arg0: inst26, arg1: inst_block_empty, type: type(inst19)}
|
||||
// CHECK:STDOUT: inst28: {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: inst13: concrete_constant(inst13)
|
||||
// CHECK:STDOUT: inst15: concrete_constant(inst15)
|
||||
// CHECK:STDOUT: inst16: concrete_constant(inst19)
|
||||
// CHECK:STDOUT: inst17: concrete_constant(inst17)
|
||||
// CHECK:STDOUT: inst14: concrete_constant(inst14)
|
||||
// CHECK:STDOUT: inst16: concrete_constant(inst16)
|
||||
// CHECK:STDOUT: inst17: concrete_constant(inst20)
|
||||
// CHECK:STDOUT: inst18: concrete_constant(inst18)
|
||||
// CHECK:STDOUT: inst19: concrete_constant(inst19)
|
||||
// CHECK:STDOUT: inst20: concrete_constant(inst15)
|
||||
// CHECK:STDOUT: inst21: concrete_constant(inst24)
|
||||
// CHECK:STDOUT: inst22: concrete_constant(inst24)
|
||||
// CHECK:STDOUT: inst23: concrete_constant(inst23)
|
||||
// CHECK:STDOUT: inst20: concrete_constant(inst20)
|
||||
// CHECK:STDOUT: inst21: concrete_constant(inst16)
|
||||
// CHECK:STDOUT: inst22: concrete_constant(inst25)
|
||||
// CHECK:STDOUT: inst23: concrete_constant(inst25)
|
||||
// CHECK:STDOUT: inst24: concrete_constant(inst24)
|
||||
// CHECK:STDOUT: inst25: concrete_constant(inst24)
|
||||
// CHECK:STDOUT: inst25: concrete_constant(inst25)
|
||||
// CHECK:STDOUT: inst26: concrete_constant(inst25)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
// CHECK:STDOUT: 0: inst16
|
||||
// CHECK:STDOUT: 0: inst17
|
||||
// CHECK:STDOUT: import_refs:
|
||||
// CHECK:STDOUT: 0: inst15
|
||||
// CHECK:STDOUT: 1: inst21
|
||||
// CHECK:STDOUT: 0: inst16
|
||||
// CHECK:STDOUT: 1: inst22
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block4: {}
|
||||
// CHECK:STDOUT: inst_block5:
|
||||
// CHECK:STDOUT: 0: inst20
|
||||
// CHECK:STDOUT: 1: inst25
|
||||
// CHECK:STDOUT: 2: inst26
|
||||
// CHECK:STDOUT: 3: inst27
|
||||
// CHECK:STDOUT: 0: inst21
|
||||
// CHECK:STDOUT: 1: inst26
|
||||
// CHECK:STDOUT: 2: inst27
|
||||
// CHECK:STDOUT: 3: inst28
|
||||
// CHECK:STDOUT: inst_block6:
|
||||
// CHECK:STDOUT: 0: inst13
|
||||
// CHECK:STDOUT: 1: inst14
|
||||
// CHECK:STDOUT: 2: inst16
|
||||
// CHECK:STDOUT: 0: inst14
|
||||
// CHECK:STDOUT: 1: inst15
|
||||
// CHECK:STDOUT: 2: inst17
|
||||
// CHECK:STDOUT: ...
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- b.carbon
|
||||
|
||||
+61
-61
@@ -33,7 +33,7 @@ fn B() {
|
||||
// CHECK:STDOUT: ir0: {decl_id: inst<none>, is_export: false}
|
||||
// CHECK:STDOUT: import_ir_insts: {}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name0: inst14}}
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name0: inst15}}
|
||||
// CHECK:STDOUT: entity_names: {}
|
||||
// CHECK:STDOUT: functions:
|
||||
// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, body: [inst_block5]}
|
||||
@@ -49,51 +49,51 @@ fn B() {
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)}
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: 'type(inst15)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst16)}
|
||||
// CHECK:STDOUT: 'type(inst16)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst16)}
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst17)}
|
||||
// CHECK:STDOUT: 'type(inst17)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst17)}
|
||||
// CHECK:STDOUT: type_blocks:
|
||||
// CHECK:STDOUT: type_block0: {}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst14: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst15: {kind: FunctionType, arg0: function0, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst16: {kind: TupleType, arg0: type_block0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst17: {kind: StructValue, arg0: inst_block_empty, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst18: {kind: Return}
|
||||
// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst15: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst16)}
|
||||
// CHECK:STDOUT: inst16: {kind: FunctionType, arg0: function0, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst17: {kind: TupleType, arg0: type_block0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst18: {kind: StructValue, arg0: inst_block_empty, type: type(inst16)}
|
||||
// CHECK:STDOUT: inst19: {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: inst13: concrete_constant(inst13)
|
||||
// CHECK:STDOUT: inst14: concrete_constant(inst17)
|
||||
// CHECK:STDOUT: inst15: concrete_constant(inst15)
|
||||
// CHECK:STDOUT: inst14: concrete_constant(inst14)
|
||||
// CHECK:STDOUT: inst15: concrete_constant(inst18)
|
||||
// CHECK:STDOUT: inst16: concrete_constant(inst16)
|
||||
// CHECK:STDOUT: inst17: concrete_constant(inst17)
|
||||
// CHECK:STDOUT: inst18: concrete_constant(inst18)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
// CHECK:STDOUT: 0: inst14
|
||||
// CHECK:STDOUT: 0: inst15
|
||||
// CHECK:STDOUT: import_refs: {}
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block4: {}
|
||||
// CHECK:STDOUT: inst_block5:
|
||||
// CHECK:STDOUT: 0: inst18
|
||||
// CHECK:STDOUT: 0: inst19
|
||||
// CHECK:STDOUT: inst_block6:
|
||||
// CHECK:STDOUT: 0: inst13
|
||||
// CHECK:STDOUT: 1: inst14
|
||||
// CHECK:STDOUT: 0: inst14
|
||||
// CHECK:STDOUT: 1: inst15
|
||||
// CHECK:STDOUT: ...
|
||||
// CHECK:STDOUT: ---
|
||||
// CHECK:STDOUT: filename: b.carbon
|
||||
// CHECK:STDOUT: sem_ir:
|
||||
// CHECK:STDOUT: import_irs:
|
||||
// CHECK:STDOUT: ir0: {decl_id: inst<none>, is_export: false}
|
||||
// CHECK:STDOUT: ir1: {decl_id: inst14, is_export: false}
|
||||
// CHECK:STDOUT: ir1: {decl_id: inst15, is_export: false}
|
||||
// CHECK:STDOUT: import_ir_insts:
|
||||
// CHECK:STDOUT: import_ir_inst0: {ir_id: ir1, inst_id: inst14}
|
||||
// CHECK:STDOUT: import_ir_inst1: {ir_id: ir1, inst_id: inst14}
|
||||
// CHECK:STDOUT: import_ir_inst0: {ir_id: ir1, inst_id: inst15}
|
||||
// CHECK:STDOUT: import_ir_inst1: {ir_id: ir1, inst_id: inst15}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name1: inst15, name0: inst16}}
|
||||
// CHECK:STDOUT: name_scope1: {inst: inst15, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst21}}
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name1: inst16, name0: inst17}}
|
||||
// CHECK:STDOUT: name_scope1: {inst: inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst22}}
|
||||
// CHECK:STDOUT: entity_names:
|
||||
// CHECK:STDOUT: entity_name0: {name: name1, parent_scope: name_scope1, index: -1, is_template: 0}
|
||||
// CHECK:STDOUT: functions:
|
||||
@@ -111,60 +111,60 @@ fn B() {
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)}
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: 'type(inst17)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst18)}
|
||||
// CHECK:STDOUT: 'type(inst18)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst18)}
|
||||
// CHECK:STDOUT: 'type(inst23)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst18)}
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)}
|
||||
// CHECK:STDOUT: 'type(inst19)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)}
|
||||
// CHECK:STDOUT: 'type(inst24)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)}
|
||||
// CHECK:STDOUT: type_blocks:
|
||||
// CHECK:STDOUT: type_block0: {}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst14: {kind: ImportDecl, arg0: name1}
|
||||
// CHECK:STDOUT: inst15: {kind: Namespace, arg0: name_scope1, arg1: inst14, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst16: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst17)}
|
||||
// CHECK:STDOUT: inst17: {kind: FunctionType, arg0: function0, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst18: {kind: TupleType, arg0: type_block0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst19: {kind: StructValue, arg0: inst_block_empty, type: type(inst17)}
|
||||
// CHECK:STDOUT: inst20: {kind: NameRef, arg0: name1, arg1: inst15, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst21: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name0, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst22: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst23: {kind: FunctionType, arg0: function1, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst24: {kind: StructValue, arg0: inst_block_empty, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst25: {kind: NameRef, arg0: name1, arg1: inst21, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst26: {kind: Call, arg0: inst25, arg1: inst_block_empty, type: type(inst18)}
|
||||
// CHECK:STDOUT: inst27: {kind: Return}
|
||||
// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst15: {kind: ImportDecl, arg0: name1}
|
||||
// CHECK:STDOUT: inst16: {kind: Namespace, arg0: name_scope1, arg1: inst15, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst17: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst18)}
|
||||
// CHECK:STDOUT: inst18: {kind: FunctionType, arg0: function0, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst19: {kind: TupleType, arg0: type_block0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst20: {kind: StructValue, arg0: inst_block_empty, type: type(inst18)}
|
||||
// CHECK:STDOUT: inst21: {kind: NameRef, arg0: name1, arg1: inst16, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst22: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name0, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst23: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst24: {kind: FunctionType, arg0: function1, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst25: {kind: StructValue, arg0: inst_block_empty, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst26: {kind: NameRef, arg0: name1, arg1: inst22, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst27: {kind: Call, arg0: inst26, arg1: inst_block_empty, type: type(inst19)}
|
||||
// CHECK:STDOUT: inst28: {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: inst13: concrete_constant(inst13)
|
||||
// CHECK:STDOUT: inst15: concrete_constant(inst15)
|
||||
// CHECK:STDOUT: inst16: concrete_constant(inst19)
|
||||
// CHECK:STDOUT: inst17: concrete_constant(inst17)
|
||||
// CHECK:STDOUT: inst14: concrete_constant(inst14)
|
||||
// CHECK:STDOUT: inst16: concrete_constant(inst16)
|
||||
// CHECK:STDOUT: inst17: concrete_constant(inst20)
|
||||
// CHECK:STDOUT: inst18: concrete_constant(inst18)
|
||||
// CHECK:STDOUT: inst19: concrete_constant(inst19)
|
||||
// CHECK:STDOUT: inst20: concrete_constant(inst15)
|
||||
// CHECK:STDOUT: inst21: concrete_constant(inst24)
|
||||
// CHECK:STDOUT: inst22: concrete_constant(inst24)
|
||||
// CHECK:STDOUT: inst23: concrete_constant(inst23)
|
||||
// CHECK:STDOUT: inst20: concrete_constant(inst20)
|
||||
// CHECK:STDOUT: inst21: concrete_constant(inst16)
|
||||
// CHECK:STDOUT: inst22: concrete_constant(inst25)
|
||||
// CHECK:STDOUT: inst23: concrete_constant(inst25)
|
||||
// CHECK:STDOUT: inst24: concrete_constant(inst24)
|
||||
// CHECK:STDOUT: inst25: concrete_constant(inst24)
|
||||
// CHECK:STDOUT: inst25: concrete_constant(inst25)
|
||||
// CHECK:STDOUT: inst26: concrete_constant(inst25)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
// CHECK:STDOUT: 0: inst16
|
||||
// CHECK:STDOUT: 0: inst17
|
||||
// CHECK:STDOUT: import_refs:
|
||||
// CHECK:STDOUT: 0: inst15
|
||||
// CHECK:STDOUT: 1: inst21
|
||||
// CHECK:STDOUT: 0: inst16
|
||||
// CHECK:STDOUT: 1: inst22
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block4: {}
|
||||
// CHECK:STDOUT: inst_block5:
|
||||
// CHECK:STDOUT: 0: inst20
|
||||
// CHECK:STDOUT: 1: inst25
|
||||
// CHECK:STDOUT: 2: inst26
|
||||
// CHECK:STDOUT: 3: inst27
|
||||
// CHECK:STDOUT: 0: inst21
|
||||
// CHECK:STDOUT: 1: inst26
|
||||
// CHECK:STDOUT: 2: inst27
|
||||
// CHECK:STDOUT: 3: inst28
|
||||
// CHECK:STDOUT: inst_block6:
|
||||
// CHECK:STDOUT: 0: inst13
|
||||
// CHECK:STDOUT: 1: inst14
|
||||
// CHECK:STDOUT: 2: inst16
|
||||
// CHECK:STDOUT: 0: inst14
|
||||
// CHECK:STDOUT: 1: inst15
|
||||
// CHECK:STDOUT: 2: inst17
|
||||
// CHECK:STDOUT: ...
|
||||
|
||||
+110
-110
@@ -23,11 +23,11 @@ fn Foo(n: ()) -> ((), ()) {
|
||||
// CHECK:STDOUT: ir0: {decl_id: inst<none>, is_export: false}
|
||||
// CHECK:STDOUT: import_ir_insts: {}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name0: inst33}}
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name0: inst34}}
|
||||
// CHECK:STDOUT: entity_names:
|
||||
// CHECK:STDOUT: entity_name0: {name: name1, parent_scope: name_scope<none>, index: -1, is_template: 0}
|
||||
// CHECK:STDOUT: functions:
|
||||
// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block7, return_slot_pattern: inst28, body: [inst_block10]}
|
||||
// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block7, return_slot_pattern: inst29, body: [inst_block10]}
|
||||
// CHECK:STDOUT: classes: {}
|
||||
// CHECK:STDOUT: generics: {}
|
||||
// CHECK:STDOUT: specifics: {}
|
||||
@@ -40,140 +40,140 @@ fn Foo(n: ()) -> ((), ()) {
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)}
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: 'type(inst34)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst14)}
|
||||
// CHECK:STDOUT: 'type(inst14)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst14)}
|
||||
// CHECK:STDOUT: 'type(inst22)':
|
||||
// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst36)}
|
||||
// CHECK:STDOUT: 'type(inst36)':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst36)}
|
||||
// CHECK:STDOUT: 'type(inst35)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst15)}
|
||||
// CHECK:STDOUT: 'type(inst15)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst15)}
|
||||
// CHECK:STDOUT: 'type(inst23)':
|
||||
// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst37)}
|
||||
// CHECK:STDOUT: 'type(inst37)':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst37)}
|
||||
// CHECK:STDOUT: type_blocks:
|
||||
// CHECK:STDOUT: type_block0: {}
|
||||
// CHECK:STDOUT: type_block1:
|
||||
// CHECK:STDOUT: 0: type(inst14)
|
||||
// CHECK:STDOUT: 1: type(inst14)
|
||||
// CHECK:STDOUT: 0: type(inst15)
|
||||
// CHECK:STDOUT: 1: type(inst15)
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst14: {kind: TupleType, arg0: type_block0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst15: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst16: {kind: Converted, arg0: inst15, arg1: inst14, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst17: {kind: BindName, arg0: entity_name0, arg1: inst29, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst18: {kind: BindingPattern, arg0: entity_name0, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst19: {kind: ValueParamPattern, arg0: inst18, arg1: call_param0, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst20: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst21: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst22: {kind: TupleType, arg0: type_block1, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst23: {kind: TupleLiteral, arg0: inst_block6, type: type(inst22)}
|
||||
// CHECK:STDOUT: inst24: {kind: Converted, arg0: inst20, arg1: inst14, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst25: {kind: Converted, arg0: inst21, arg1: inst14, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst26: {kind: Converted, arg0: inst23, arg1: inst22, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst27: {kind: ReturnSlotPattern, arg0: inst23, type: type(inst22)}
|
||||
// CHECK:STDOUT: inst28: {kind: OutParamPattern, arg0: inst27, arg1: call_param1, type: type(inst22)}
|
||||
// CHECK:STDOUT: inst29: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst30: {kind: SpliceBlock, arg0: inst_block4, arg1: inst16, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst31: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(inst22)}
|
||||
// CHECK:STDOUT: inst32: {kind: ReturnSlot, arg0: inst23, arg1: inst31, type: type(inst22)}
|
||||
// CHECK:STDOUT: inst33: {kind: FunctionDecl, arg0: function0, arg1: inst_block9, type: type(inst34)}
|
||||
// CHECK:STDOUT: inst34: {kind: FunctionType, arg0: function0, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst35: {kind: StructValue, arg0: inst_block_empty, type: type(inst34)}
|
||||
// CHECK:STDOUT: inst36: {kind: PointerType, arg0: inst22, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst37: {kind: NameRef, arg0: name1, arg1: inst17, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst38: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst39: {kind: TupleLiteral, arg0: inst_block11, type: type(inst22)}
|
||||
// CHECK:STDOUT: inst40: {kind: TupleAccess, arg0: inst32, arg1: element0, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst41: {kind: TupleInit, arg0: inst_block12, arg1: inst40, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst42: {kind: TupleValue, arg0: inst_block_empty, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst43: {kind: Converted, arg0: inst37, arg1: inst41, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst44: {kind: TupleAccess, arg0: inst32, arg1: element1, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst45: {kind: TupleInit, arg0: inst_block_empty, arg1: inst44, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst46: {kind: Converted, arg0: inst38, arg1: inst45, type: type(inst14)}
|
||||
// CHECK:STDOUT: inst47: {kind: TupleInit, arg0: inst_block13, arg1: inst32, type: type(inst22)}
|
||||
// CHECK:STDOUT: inst48: {kind: TupleValue, arg0: inst_block14, type: type(inst22)}
|
||||
// CHECK:STDOUT: inst49: {kind: Converted, arg0: inst39, arg1: inst47, type: type(inst22)}
|
||||
// CHECK:STDOUT: inst50: {kind: ReturnExpr, arg0: inst49, arg1: inst32}
|
||||
// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst15: {kind: TupleType, arg0: type_block0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst16: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst17: {kind: Converted, arg0: inst16, arg1: inst15, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst18: {kind: BindName, arg0: entity_name0, arg1: inst30, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst19: {kind: BindingPattern, arg0: entity_name0, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst20: {kind: ValueParamPattern, arg0: inst19, arg1: call_param0, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst21: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst22: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst23: {kind: TupleType, arg0: type_block1, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst24: {kind: TupleLiteral, arg0: inst_block6, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst25: {kind: Converted, arg0: inst21, arg1: inst15, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst26: {kind: Converted, arg0: inst22, arg1: inst15, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst27: {kind: Converted, arg0: inst24, arg1: inst23, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst28: {kind: ReturnSlotPattern, arg0: inst24, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst29: {kind: OutParamPattern, arg0: inst28, arg1: call_param1, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst30: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst31: {kind: SpliceBlock, arg0: inst_block4, arg1: inst17, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst32: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(inst23)}
|
||||
// CHECK:STDOUT: inst33: {kind: ReturnSlot, arg0: inst24, arg1: inst32, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst34: {kind: FunctionDecl, arg0: function0, arg1: inst_block9, type: type(inst35)}
|
||||
// CHECK:STDOUT: inst35: {kind: FunctionType, arg0: function0, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst36: {kind: StructValue, arg0: inst_block_empty, type: type(inst35)}
|
||||
// CHECK:STDOUT: inst37: {kind: PointerType, arg0: inst23, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst38: {kind: NameRef, arg0: name1, arg1: inst18, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst39: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst40: {kind: TupleLiteral, arg0: inst_block11, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst41: {kind: TupleAccess, arg0: inst33, arg1: element0, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst42: {kind: TupleInit, arg0: inst_block12, arg1: inst41, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst43: {kind: TupleValue, arg0: inst_block_empty, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst44: {kind: Converted, arg0: inst38, arg1: inst42, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst45: {kind: TupleAccess, arg0: inst33, arg1: element1, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst46: {kind: TupleInit, arg0: inst_block_empty, arg1: inst45, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst47: {kind: Converted, arg0: inst39, arg1: inst46, type: type(inst15)}
|
||||
// CHECK:STDOUT: inst48: {kind: TupleInit, arg0: inst_block13, arg1: inst33, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst49: {kind: TupleValue, arg0: inst_block14, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst50: {kind: Converted, arg0: inst40, arg1: inst48, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst51: {kind: ReturnExpr, arg0: inst50, arg1: inst33}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: inst13: concrete_constant(inst13)
|
||||
// CHECK:STDOUT: inst14: concrete_constant(inst14)
|
||||
// CHECK:STDOUT: inst16: concrete_constant(inst14)
|
||||
// CHECK:STDOUT: inst22: concrete_constant(inst22)
|
||||
// CHECK:STDOUT: inst24: concrete_constant(inst14)
|
||||
// CHECK:STDOUT: inst25: concrete_constant(inst14)
|
||||
// CHECK:STDOUT: inst26: concrete_constant(inst22)
|
||||
// CHECK:STDOUT: inst30: concrete_constant(inst14)
|
||||
// CHECK:STDOUT: inst33: concrete_constant(inst35)
|
||||
// CHECK:STDOUT: inst34: concrete_constant(inst34)
|
||||
// CHECK:STDOUT: inst15: concrete_constant(inst15)
|
||||
// CHECK:STDOUT: inst17: concrete_constant(inst15)
|
||||
// CHECK:STDOUT: inst23: concrete_constant(inst23)
|
||||
// CHECK:STDOUT: inst25: concrete_constant(inst15)
|
||||
// CHECK:STDOUT: inst26: concrete_constant(inst15)
|
||||
// CHECK:STDOUT: inst27: concrete_constant(inst23)
|
||||
// CHECK:STDOUT: inst31: concrete_constant(inst15)
|
||||
// CHECK:STDOUT: inst34: concrete_constant(inst36)
|
||||
// CHECK:STDOUT: inst35: concrete_constant(inst35)
|
||||
// CHECK:STDOUT: inst36: concrete_constant(inst36)
|
||||
// CHECK:STDOUT: inst41: concrete_constant(inst42)
|
||||
// CHECK:STDOUT: inst42: concrete_constant(inst42)
|
||||
// CHECK:STDOUT: inst43: concrete_constant(inst42)
|
||||
// CHECK:STDOUT: inst45: concrete_constant(inst42)
|
||||
// CHECK:STDOUT: inst46: concrete_constant(inst42)
|
||||
// CHECK:STDOUT: inst47: concrete_constant(inst48)
|
||||
// CHECK:STDOUT: inst48: concrete_constant(inst48)
|
||||
// CHECK:STDOUT: inst49: concrete_constant(inst48)
|
||||
// CHECK:STDOUT: inst37: concrete_constant(inst37)
|
||||
// CHECK:STDOUT: inst42: concrete_constant(inst43)
|
||||
// CHECK:STDOUT: inst43: concrete_constant(inst43)
|
||||
// CHECK:STDOUT: inst44: concrete_constant(inst43)
|
||||
// CHECK:STDOUT: inst46: concrete_constant(inst43)
|
||||
// CHECK:STDOUT: inst47: concrete_constant(inst43)
|
||||
// CHECK:STDOUT: inst48: concrete_constant(inst49)
|
||||
// CHECK:STDOUT: inst49: concrete_constant(inst49)
|
||||
// CHECK:STDOUT: inst50: concrete_constant(inst49)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
// CHECK:STDOUT: 0: inst33
|
||||
// CHECK:STDOUT: 0: inst34
|
||||
// CHECK:STDOUT: import_refs: {}
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block4:
|
||||
// CHECK:STDOUT: 0: inst15
|
||||
// CHECK:STDOUT: 1: inst16
|
||||
// CHECK:STDOUT: 0: inst16
|
||||
// CHECK:STDOUT: 1: inst17
|
||||
// CHECK:STDOUT: inst_block5:
|
||||
// CHECK:STDOUT: 0: inst19
|
||||
// CHECK:STDOUT: 0: inst20
|
||||
// CHECK:STDOUT: inst_block6:
|
||||
// CHECK:STDOUT: 0: inst20
|
||||
// CHECK:STDOUT: 1: inst21
|
||||
// CHECK:STDOUT: 0: inst21
|
||||
// CHECK:STDOUT: 1: inst22
|
||||
// CHECK:STDOUT: inst_block7:
|
||||
// CHECK:STDOUT: 0: inst29
|
||||
// CHECK:STDOUT: 1: inst31
|
||||
// CHECK:STDOUT: 0: inst30
|
||||
// CHECK:STDOUT: 1: inst32
|
||||
// CHECK:STDOUT: inst_block8:
|
||||
// CHECK:STDOUT: 0: inst18
|
||||
// CHECK:STDOUT: 1: inst19
|
||||
// CHECK:STDOUT: 2: inst27
|
||||
// CHECK:STDOUT: 3: inst28
|
||||
// CHECK:STDOUT: 0: inst19
|
||||
// CHECK:STDOUT: 1: inst20
|
||||
// CHECK:STDOUT: 2: inst28
|
||||
// CHECK:STDOUT: 3: inst29
|
||||
// CHECK:STDOUT: inst_block9:
|
||||
// CHECK:STDOUT: 0: inst20
|
||||
// CHECK:STDOUT: 1: inst21
|
||||
// CHECK:STDOUT: 2: inst23
|
||||
// CHECK:STDOUT: 3: inst24
|
||||
// CHECK:STDOUT: 4: inst25
|
||||
// CHECK:STDOUT: 5: inst26
|
||||
// CHECK:STDOUT: 6: inst29
|
||||
// CHECK:STDOUT: 7: inst30
|
||||
// CHECK:STDOUT: 8: inst17
|
||||
// CHECK:STDOUT: 9: inst31
|
||||
// CHECK:STDOUT: 10: inst32
|
||||
// CHECK:STDOUT: 0: inst21
|
||||
// CHECK:STDOUT: 1: inst22
|
||||
// CHECK:STDOUT: 2: inst24
|
||||
// CHECK:STDOUT: 3: inst25
|
||||
// CHECK:STDOUT: 4: inst26
|
||||
// CHECK:STDOUT: 5: inst27
|
||||
// CHECK:STDOUT: 6: inst30
|
||||
// CHECK:STDOUT: 7: inst31
|
||||
// CHECK:STDOUT: 8: inst18
|
||||
// CHECK:STDOUT: 9: inst32
|
||||
// CHECK:STDOUT: 10: inst33
|
||||
// CHECK:STDOUT: inst_block10:
|
||||
// CHECK:STDOUT: 0: inst37
|
||||
// CHECK:STDOUT: 1: inst38
|
||||
// CHECK:STDOUT: 2: inst39
|
||||
// CHECK:STDOUT: 3: inst40
|
||||
// CHECK:STDOUT: 4: inst41
|
||||
// CHECK:STDOUT: 5: inst43
|
||||
// CHECK:STDOUT: 6: inst44
|
||||
// CHECK:STDOUT: 7: inst45
|
||||
// CHECK:STDOUT: 8: inst46
|
||||
// CHECK:STDOUT: 9: inst47
|
||||
// CHECK:STDOUT: 10: inst49
|
||||
// CHECK:STDOUT: 11: inst50
|
||||
// CHECK:STDOUT: 0: inst38
|
||||
// CHECK:STDOUT: 1: inst39
|
||||
// CHECK:STDOUT: 2: inst40
|
||||
// CHECK:STDOUT: 3: inst41
|
||||
// CHECK:STDOUT: 4: inst42
|
||||
// CHECK:STDOUT: 5: inst44
|
||||
// CHECK:STDOUT: 6: inst45
|
||||
// CHECK:STDOUT: 7: inst46
|
||||
// CHECK:STDOUT: 8: inst47
|
||||
// CHECK:STDOUT: 9: inst48
|
||||
// CHECK:STDOUT: 10: inst50
|
||||
// CHECK:STDOUT: 11: inst51
|
||||
// CHECK:STDOUT: inst_block11:
|
||||
// CHECK:STDOUT: 0: inst37
|
||||
// CHECK:STDOUT: 1: inst38
|
||||
// CHECK:STDOUT: 0: inst38
|
||||
// CHECK:STDOUT: 1: inst39
|
||||
// CHECK:STDOUT: inst_block12: {}
|
||||
// CHECK:STDOUT: inst_block13:
|
||||
// CHECK:STDOUT: 0: inst43
|
||||
// CHECK:STDOUT: 1: inst46
|
||||
// CHECK:STDOUT: 0: inst44
|
||||
// CHECK:STDOUT: 1: inst47
|
||||
// CHECK:STDOUT: inst_block14:
|
||||
// CHECK:STDOUT: 0: inst42
|
||||
// CHECK:STDOUT: 1: inst42
|
||||
// CHECK:STDOUT: 0: inst43
|
||||
// CHECK:STDOUT: 1: inst43
|
||||
// CHECK:STDOUT: inst_block15:
|
||||
// CHECK:STDOUT: 0: inst13
|
||||
// CHECK:STDOUT: 1: inst33
|
||||
// CHECK:STDOUT: 0: inst14
|
||||
// CHECK:STDOUT: 1: inst34
|
||||
// CHECK:STDOUT: ...
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- raw_and_textual_ir.carbon
|
||||
|
||||
+147
-147
@@ -23,15 +23,15 @@ fn Foo[T:! type](n: T) -> (T, ()) {
|
||||
// CHECK:STDOUT: ir0: {decl_id: inst<none>, is_export: false}
|
||||
// CHECK:STDOUT: import_ir_insts: {}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name0: inst35}}
|
||||
// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name0: inst36}}
|
||||
// CHECK:STDOUT: entity_names:
|
||||
// CHECK:STDOUT: entity_name0: {name: name1, parent_scope: name_scope<none>, index: 0, is_template: 0}
|
||||
// CHECK:STDOUT: entity_name1: {name: name2, parent_scope: name_scope<none>, index: -1, is_template: 0}
|
||||
// CHECK:STDOUT: functions:
|
||||
// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block9, return_slot_pattern: inst31, body: [inst_block16]}
|
||||
// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block9, return_slot_pattern: inst32, body: [inst_block16]}
|
||||
// CHECK:STDOUT: classes: {}
|
||||
// CHECK:STDOUT: generics:
|
||||
// CHECK:STDOUT: generic0: {decl: inst35, bindings: inst_block12}
|
||||
// CHECK:STDOUT: generic0: {decl: inst36, bindings: inst_block12}
|
||||
// CHECK:STDOUT: specifics:
|
||||
// CHECK:STDOUT: specific0: {generic: generic0, args: inst_block13}
|
||||
// CHECK:STDOUT: struct_type_fields:
|
||||
@@ -43,10 +43,10 @@ fn Foo[T:! type](n: T) -> (T, ()) {
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)}
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: 'type(inst39)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst23)}
|
||||
// CHECK:STDOUT: 'type(inst23)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst23)}
|
||||
// CHECK:STDOUT: 'type(inst40)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst24)}
|
||||
// CHECK:STDOUT: 'type(inst24)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst24)}
|
||||
// CHECK:STDOUT: 'type(symbolic_constant0)':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(symbolic_constant0)}
|
||||
// CHECK:STDOUT: 'type(symbolic_constant2)':
|
||||
@@ -63,177 +63,177 @@ fn Foo[T:! type](n: T) -> (T, ()) {
|
||||
// CHECK:STDOUT: type_block0: {}
|
||||
// CHECK:STDOUT: type_block1:
|
||||
// CHECK:STDOUT: 0: type(TypeType)
|
||||
// CHECK:STDOUT: 1: type(inst23)
|
||||
// CHECK:STDOUT: 1: type(inst24)
|
||||
// CHECK:STDOUT: type_block2:
|
||||
// CHECK:STDOUT: 0: type(symbolic_constant0)
|
||||
// CHECK:STDOUT: 1: type(inst23)
|
||||
// CHECK:STDOUT: 1: type(inst24)
|
||||
// CHECK:STDOUT: type_block3:
|
||||
// CHECK:STDOUT: 0: type(symbolic_constant3)
|
||||
// CHECK:STDOUT: 1: type(inst23)
|
||||
// CHECK:STDOUT: 1: type(inst24)
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst14: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst15: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst16: {kind: SymbolicBindingPattern, arg0: entity_name0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst16: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst17: {kind: SymbolicBindingPattern, arg0: entity_name0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst18: {kind: NameRef, arg0: name1, arg1: inst14, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst19: {kind: BindName, arg0: entity_name1, arg1: inst32, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst20: {kind: BindingPattern, arg0: entity_name1, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst21: {kind: ValueParamPattern, arg0: inst20, arg1: call_param0, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst22: {kind: NameRef, arg0: name1, arg1: inst14, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst23: {kind: TupleType, arg0: type_block0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst24: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst25: {kind: TupleType, arg0: type_block1, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst26: {kind: TupleLiteral, arg0: inst_block8, type: type(inst25)}
|
||||
// CHECK:STDOUT: inst27: {kind: Converted, arg0: inst24, arg1: inst23, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst28: {kind: TupleType, arg0: type_block2, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst29: {kind: Converted, arg0: inst26, arg1: inst28, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst30: {kind: ReturnSlotPattern, arg0: inst26, type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst31: {kind: OutParamPattern, arg0: inst30, arg1: call_param1, type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst32: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst33: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst34: {kind: ReturnSlot, arg0: inst26, arg1: inst33, type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst35: {kind: FunctionDecl, arg0: function0, arg1: inst_block11, type: type(inst39)}
|
||||
// CHECK:STDOUT: inst36: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst37: {kind: SymbolicBindingPattern, arg0: entity_name0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst38: {kind: TupleType, arg0: type_block3, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst39: {kind: FunctionType, arg0: function0, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst40: {kind: StructValue, arg0: inst_block_empty, type: type(inst39)}
|
||||
// CHECK:STDOUT: inst41: {kind: PointerType, arg0: inst28, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst42: {kind: RequireCompleteType, arg0: type(symbolic_constant2), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst18: {kind: SymbolicBindingPattern, arg0: entity_name0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst19: {kind: NameRef, arg0: name1, arg1: inst15, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst20: {kind: BindName, arg0: entity_name1, arg1: inst33, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst21: {kind: BindingPattern, arg0: entity_name1, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst22: {kind: ValueParamPattern, arg0: inst21, arg1: call_param0, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst23: {kind: NameRef, arg0: name1, arg1: inst15, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst24: {kind: TupleType, arg0: type_block0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst25: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst26: {kind: TupleType, arg0: type_block1, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst27: {kind: TupleLiteral, arg0: inst_block8, type: type(inst26)}
|
||||
// CHECK:STDOUT: inst28: {kind: Converted, arg0: inst25, arg1: inst24, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst29: {kind: TupleType, arg0: type_block2, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst30: {kind: Converted, arg0: inst27, arg1: inst29, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst31: {kind: ReturnSlotPattern, arg0: inst27, type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst32: {kind: OutParamPattern, arg0: inst31, arg1: call_param1, type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst33: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst34: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst35: {kind: ReturnSlot, arg0: inst27, arg1: inst34, type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst36: {kind: FunctionDecl, arg0: function0, arg1: inst_block11, type: type(inst40)}
|
||||
// CHECK:STDOUT: inst37: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst38: {kind: SymbolicBindingPattern, arg0: entity_name0, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst39: {kind: TupleType, arg0: type_block3, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst40: {kind: FunctionType, arg0: function0, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst41: {kind: StructValue, arg0: inst_block_empty, type: type(inst40)}
|
||||
// CHECK:STDOUT: inst42: {kind: PointerType, arg0: inst29, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst43: {kind: RequireCompleteType, arg0: type(symbolic_constant2), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst44: {kind: RequireCompleteType, arg0: type(symbolic_constant3), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst45: {kind: RequireCompleteType, arg0: type(symbolic_constant0), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst46: {kind: NameRef, arg0: name2, arg1: inst19, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst47: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst48: {kind: TupleLiteral, arg0: inst_block17, type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst49: {kind: RequireCompleteType, arg0: type(symbolic_constant5), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst50: {kind: TupleAccess, arg0: inst34, arg1: element0, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst51: {kind: RequireCompleteType, arg0: type(symbolic_constant0), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst52: {kind: InitializeFrom, arg0: inst46, arg1: inst50, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst53: {kind: TupleAccess, arg0: inst34, arg1: element1, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst54: {kind: TupleInit, arg0: inst_block_empty, arg1: inst53, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst55: {kind: TupleValue, arg0: inst_block_empty, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst56: {kind: Converted, arg0: inst47, arg1: inst54, type: type(inst23)}
|
||||
// CHECK:STDOUT: inst57: {kind: TupleInit, arg0: inst_block18, arg1: inst34, type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst58: {kind: Converted, arg0: inst48, arg1: inst57, type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst59: {kind: ReturnExpr, arg0: inst58, arg1: inst34}
|
||||
// CHECK:STDOUT: inst60: {kind: RequireCompleteType, arg0: type(symbolic_constant5), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst61: {kind: RequireCompleteType, arg0: type(symbolic_constant3), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst44: {kind: RequireCompleteType, arg0: type(symbolic_constant2), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst45: {kind: RequireCompleteType, arg0: type(symbolic_constant3), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst46: {kind: RequireCompleteType, arg0: type(symbolic_constant0), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst47: {kind: NameRef, arg0: name2, arg1: inst20, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst48: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst49: {kind: TupleLiteral, arg0: inst_block17, type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst50: {kind: RequireCompleteType, arg0: type(symbolic_constant5), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst51: {kind: TupleAccess, arg0: inst35, arg1: element0, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst52: {kind: RequireCompleteType, arg0: type(symbolic_constant0), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst53: {kind: InitializeFrom, arg0: inst47, arg1: inst51, type: type(symbolic_constant3)}
|
||||
// CHECK:STDOUT: inst54: {kind: TupleAccess, arg0: inst35, arg1: element1, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst55: {kind: TupleInit, arg0: inst_block_empty, arg1: inst54, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst56: {kind: TupleValue, arg0: inst_block_empty, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst57: {kind: Converted, arg0: inst48, arg1: inst55, type: type(inst24)}
|
||||
// CHECK:STDOUT: inst58: {kind: TupleInit, arg0: inst_block18, arg1: inst35, type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst59: {kind: Converted, arg0: inst49, arg1: inst58, type: type(symbolic_constant5)}
|
||||
// CHECK:STDOUT: inst60: {kind: ReturnExpr, arg0: inst59, arg1: inst35}
|
||||
// CHECK:STDOUT: inst61: {kind: RequireCompleteType, arg0: type(symbolic_constant5), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst62: {kind: RequireCompleteType, arg0: type(symbolic_constant3), type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: inst13: concrete_constant(inst13)
|
||||
// CHECK:STDOUT: inst14: symbolic_constant3
|
||||
// CHECK:STDOUT: inst15: symbolic_constant0
|
||||
// CHECK:STDOUT: inst16: symbolic_constant4
|
||||
// CHECK:STDOUT: inst17: symbolic_constant1
|
||||
// CHECK:STDOUT: inst18: symbolic_constant3
|
||||
// CHECK:STDOUT: inst22: symbolic_constant3
|
||||
// CHECK:STDOUT: inst23: concrete_constant(inst23)
|
||||
// CHECK:STDOUT: inst25: concrete_constant(inst25)
|
||||
// CHECK:STDOUT: inst27: concrete_constant(inst23)
|
||||
// CHECK:STDOUT: inst28: symbolic_constant2
|
||||
// CHECK:STDOUT: inst29: symbolic_constant5
|
||||
// CHECK:STDOUT: inst35: concrete_constant(inst40)
|
||||
// CHECK:STDOUT: inst36: symbolic_constant3
|
||||
// CHECK:STDOUT: inst37: symbolic_constant4
|
||||
// CHECK:STDOUT: inst38: symbolic_constant5
|
||||
// CHECK:STDOUT: inst39: concrete_constant(inst39)
|
||||
// CHECK:STDOUT: inst14: concrete_constant(inst14)
|
||||
// CHECK:STDOUT: inst15: symbolic_constant3
|
||||
// CHECK:STDOUT: inst16: symbolic_constant0
|
||||
// CHECK:STDOUT: inst17: symbolic_constant4
|
||||
// CHECK:STDOUT: inst18: symbolic_constant1
|
||||
// CHECK:STDOUT: inst19: symbolic_constant3
|
||||
// CHECK:STDOUT: inst23: symbolic_constant3
|
||||
// CHECK:STDOUT: inst24: concrete_constant(inst24)
|
||||
// CHECK:STDOUT: inst26: concrete_constant(inst26)
|
||||
// CHECK:STDOUT: inst28: concrete_constant(inst24)
|
||||
// CHECK:STDOUT: inst29: symbolic_constant2
|
||||
// CHECK:STDOUT: inst30: symbolic_constant5
|
||||
// CHECK:STDOUT: inst36: concrete_constant(inst41)
|
||||
// CHECK:STDOUT: inst37: symbolic_constant3
|
||||
// CHECK:STDOUT: inst38: symbolic_constant4
|
||||
// CHECK:STDOUT: inst39: symbolic_constant5
|
||||
// CHECK:STDOUT: inst40: concrete_constant(inst40)
|
||||
// CHECK:STDOUT: inst41: symbolic_constant6
|
||||
// CHECK:STDOUT: inst42: symbolic_constant9
|
||||
// CHECK:STDOUT: inst43: symbolic_constant7
|
||||
// CHECK:STDOUT: inst44: symbolic_constant10
|
||||
// CHECK:STDOUT: inst45: symbolic_constant8
|
||||
// CHECK:STDOUT: inst49: symbolic_constant9
|
||||
// CHECK:STDOUT: inst51: symbolic_constant10
|
||||
// CHECK:STDOUT: inst54: concrete_constant(inst55)
|
||||
// CHECK:STDOUT: inst55: concrete_constant(inst55)
|
||||
// CHECK:STDOUT: inst56: concrete_constant(inst55)
|
||||
// CHECK:STDOUT: inst60: symbolic_constant9
|
||||
// CHECK:STDOUT: inst61: symbolic_constant10
|
||||
// CHECK:STDOUT: inst41: concrete_constant(inst41)
|
||||
// CHECK:STDOUT: inst42: symbolic_constant6
|
||||
// CHECK:STDOUT: inst43: symbolic_constant9
|
||||
// CHECK:STDOUT: inst44: symbolic_constant7
|
||||
// CHECK:STDOUT: inst45: symbolic_constant10
|
||||
// CHECK:STDOUT: inst46: symbolic_constant8
|
||||
// CHECK:STDOUT: inst50: symbolic_constant9
|
||||
// CHECK:STDOUT: inst52: symbolic_constant10
|
||||
// CHECK:STDOUT: inst55: concrete_constant(inst56)
|
||||
// CHECK:STDOUT: inst56: concrete_constant(inst56)
|
||||
// CHECK:STDOUT: inst57: concrete_constant(inst56)
|
||||
// CHECK:STDOUT: inst61: symbolic_constant9
|
||||
// CHECK:STDOUT: inst62: symbolic_constant10
|
||||
// CHECK:STDOUT: symbolic_constants:
|
||||
// CHECK:STDOUT: symbolic_constant0: {inst: inst15, generic: generic<none>, index: generic_inst<none>, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant1: {inst: inst17, generic: generic<none>, index: generic_inst<none>, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant2: {inst: inst28, generic: generic<none>, index: generic_inst<none>, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant3: {inst: inst15, generic: generic0, index: generic_inst_in_decl0, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant4: {inst: inst17, generic: generic0, index: generic_inst_in_decl1, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant5: {inst: inst28, generic: generic0, index: generic_inst_in_decl2, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant6: {inst: inst41, generic: generic<none>, index: generic_inst<none>, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant7: {inst: inst43, generic: generic<none>, index: generic_inst<none>, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant8: {inst: inst45, generic: generic<none>, index: generic_inst<none>, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant9: {inst: inst43, generic: generic0, index: generic_inst_in_def0, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant10: {inst: inst45, generic: generic0, index: generic_inst_in_def1, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant0: {inst: inst16, generic: generic<none>, index: generic_inst<none>, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant1: {inst: inst18, generic: generic<none>, index: generic_inst<none>, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant2: {inst: inst29, generic: generic<none>, index: generic_inst<none>, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant3: {inst: inst16, generic: generic0, index: generic_inst_in_decl0, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant4: {inst: inst18, generic: generic0, index: generic_inst_in_decl1, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant5: {inst: inst29, generic: generic0, index: generic_inst_in_decl2, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant6: {inst: inst42, generic: generic<none>, index: generic_inst<none>, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant7: {inst: inst44, generic: generic<none>, index: generic_inst<none>, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant8: {inst: inst46, generic: generic<none>, index: generic_inst<none>, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant9: {inst: inst44, generic: generic0, index: generic_inst_in_def0, kind: checked}
|
||||
// CHECK:STDOUT: symbolic_constant10: {inst: inst46, generic: generic0, index: generic_inst_in_def1, kind: checked}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
// CHECK:STDOUT: 0: inst35
|
||||
// CHECK:STDOUT: 0: inst36
|
||||
// CHECK:STDOUT: import_refs: {}
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block4: {}
|
||||
// CHECK:STDOUT: inst_block5:
|
||||
// CHECK:STDOUT: 0: inst16
|
||||
// CHECK:STDOUT: 0: inst17
|
||||
// CHECK:STDOUT: inst_block6:
|
||||
// CHECK:STDOUT: 0: inst18
|
||||
// CHECK:STDOUT: 0: inst19
|
||||
// CHECK:STDOUT: inst_block7:
|
||||
// CHECK:STDOUT: 0: inst21
|
||||
// CHECK:STDOUT: 0: inst22
|
||||
// CHECK:STDOUT: inst_block8:
|
||||
// CHECK:STDOUT: 0: inst22
|
||||
// CHECK:STDOUT: 1: inst24
|
||||
// CHECK:STDOUT: 0: inst23
|
||||
// CHECK:STDOUT: 1: inst25
|
||||
// CHECK:STDOUT: inst_block9:
|
||||
// CHECK:STDOUT: 0: inst32
|
||||
// CHECK:STDOUT: 1: inst33
|
||||
// CHECK:STDOUT: 0: inst33
|
||||
// CHECK:STDOUT: 1: inst34
|
||||
// CHECK:STDOUT: inst_block10:
|
||||
// CHECK:STDOUT: 0: inst16
|
||||
// CHECK:STDOUT: 1: inst20
|
||||
// CHECK:STDOUT: 2: inst21
|
||||
// CHECK:STDOUT: 3: inst30
|
||||
// CHECK:STDOUT: 4: inst31
|
||||
// CHECK:STDOUT: 0: inst17
|
||||
// CHECK:STDOUT: 1: inst21
|
||||
// CHECK:STDOUT: 2: inst22
|
||||
// CHECK:STDOUT: 3: inst31
|
||||
// CHECK:STDOUT: 4: inst32
|
||||
// CHECK:STDOUT: inst_block11:
|
||||
// CHECK:STDOUT: 0: inst22
|
||||
// CHECK:STDOUT: 1: inst24
|
||||
// CHECK:STDOUT: 2: inst26
|
||||
// CHECK:STDOUT: 3: inst27
|
||||
// CHECK:STDOUT: 4: inst29
|
||||
// CHECK:STDOUT: 5: inst14
|
||||
// CHECK:STDOUT: 6: inst32
|
||||
// CHECK:STDOUT: 7: inst18
|
||||
// CHECK:STDOUT: 8: inst19
|
||||
// CHECK:STDOUT: 9: inst33
|
||||
// CHECK:STDOUT: 10: inst34
|
||||
// CHECK:STDOUT: 0: inst23
|
||||
// CHECK:STDOUT: 1: inst25
|
||||
// CHECK:STDOUT: 2: inst27
|
||||
// CHECK:STDOUT: 3: inst28
|
||||
// CHECK:STDOUT: 4: inst30
|
||||
// CHECK:STDOUT: 5: inst15
|
||||
// CHECK:STDOUT: 6: inst33
|
||||
// CHECK:STDOUT: 7: inst19
|
||||
// CHECK:STDOUT: 8: inst20
|
||||
// CHECK:STDOUT: 9: inst34
|
||||
// CHECK:STDOUT: 10: inst35
|
||||
// CHECK:STDOUT: inst_block12:
|
||||
// CHECK:STDOUT: 0: inst14
|
||||
// CHECK:STDOUT: 0: inst15
|
||||
// CHECK:STDOUT: inst_block13:
|
||||
// CHECK:STDOUT: 0: inst15
|
||||
// CHECK:STDOUT: 0: inst16
|
||||
// CHECK:STDOUT: inst_block14:
|
||||
// CHECK:STDOUT: 0: inst36
|
||||
// CHECK:STDOUT: 1: inst37
|
||||
// CHECK:STDOUT: 2: inst38
|
||||
// CHECK:STDOUT: 0: inst37
|
||||
// CHECK:STDOUT: 1: inst38
|
||||
// CHECK:STDOUT: 2: inst39
|
||||
// CHECK:STDOUT: inst_block15:
|
||||
// CHECK:STDOUT: 0: inst15
|
||||
// CHECK:STDOUT: 1: inst17
|
||||
// CHECK:STDOUT: 2: inst28
|
||||
// CHECK:STDOUT: 0: inst16
|
||||
// CHECK:STDOUT: 1: inst18
|
||||
// CHECK:STDOUT: 2: inst29
|
||||
// CHECK:STDOUT: inst_block16:
|
||||
// CHECK:STDOUT: 0: inst46
|
||||
// CHECK:STDOUT: 1: inst47
|
||||
// CHECK:STDOUT: 2: inst48
|
||||
// CHECK:STDOUT: 3: inst50
|
||||
// CHECK:STDOUT: 4: inst52
|
||||
// CHECK:STDOUT: 5: inst53
|
||||
// CHECK:STDOUT: 6: inst54
|
||||
// CHECK:STDOUT: 7: inst56
|
||||
// CHECK:STDOUT: 8: inst57
|
||||
// CHECK:STDOUT: 9: inst58
|
||||
// CHECK:STDOUT: 10: inst59
|
||||
// CHECK:STDOUT: 0: inst47
|
||||
// CHECK:STDOUT: 1: inst48
|
||||
// CHECK:STDOUT: 2: inst49
|
||||
// CHECK:STDOUT: 3: inst51
|
||||
// CHECK:STDOUT: 4: inst53
|
||||
// CHECK:STDOUT: 5: inst54
|
||||
// CHECK:STDOUT: 6: inst55
|
||||
// CHECK:STDOUT: 7: inst57
|
||||
// CHECK:STDOUT: 8: inst58
|
||||
// CHECK:STDOUT: 9: inst59
|
||||
// CHECK:STDOUT: 10: inst60
|
||||
// CHECK:STDOUT: inst_block17:
|
||||
// CHECK:STDOUT: 0: inst46
|
||||
// CHECK:STDOUT: 1: inst47
|
||||
// CHECK:STDOUT: 0: inst47
|
||||
// CHECK:STDOUT: 1: inst48
|
||||
// CHECK:STDOUT: inst_block18:
|
||||
// CHECK:STDOUT: 0: inst52
|
||||
// CHECK:STDOUT: 1: inst56
|
||||
// CHECK:STDOUT: 0: inst53
|
||||
// CHECK:STDOUT: 1: inst57
|
||||
// CHECK:STDOUT: inst_block19:
|
||||
// CHECK:STDOUT: 0: inst60
|
||||
// CHECK:STDOUT: 1: inst61
|
||||
// CHECK:STDOUT: 0: inst61
|
||||
// CHECK:STDOUT: 1: inst62
|
||||
// CHECK:STDOUT: inst_block20:
|
||||
// CHECK:STDOUT: 0: inst13
|
||||
// CHECK:STDOUT: 1: inst35
|
||||
// CHECK:STDOUT: 0: inst14
|
||||
// CHECK:STDOUT: 1: inst36
|
||||
// CHECK:STDOUT: ...
|
||||
|
||||
@@ -565,6 +565,12 @@ static auto BuildTypeForInst(FileContext& context, SemIR::ConstType inst)
|
||||
context.sem_ir().types().GetTypeIdForTypeInstId(inst.inner_id));
|
||||
}
|
||||
|
||||
static auto BuildTypeForInst(FileContext& context,
|
||||
SemIR::ImplWitnessAssociatedConstant inst)
|
||||
-> llvm::Type* {
|
||||
return context.GetType(inst.type_id);
|
||||
}
|
||||
|
||||
static auto BuildTypeForInst(FileContext& /*context*/,
|
||||
SemIR::ErrorInst /*inst*/) -> llvm::Type* {
|
||||
// This is a complete type but uses of it should never be lowered.
|
||||
|
||||
@@ -78,6 +78,11 @@ auto GetExprCategory(const File& file, InstId inst_id) -> ExprCategory {
|
||||
continue;
|
||||
}
|
||||
|
||||
case CARBON_KIND(ImplWitnessAssociatedConstant inst): {
|
||||
inst_id = inst.inst_id;
|
||||
continue;
|
||||
}
|
||||
|
||||
case CARBON_KIND(SpecificConstant inst): {
|
||||
inst_id = inst.inst_id;
|
||||
continue;
|
||||
@@ -116,6 +121,7 @@ auto GetExprCategory(const File& file, InstId inst_id) -> ExprCategory {
|
||||
case LookupImplWitness::Kind:
|
||||
case ImplWitness::Kind:
|
||||
case ImplWitnessAccess::Kind:
|
||||
case ImplWitnessTablePlaceholder::Kind:
|
||||
case ImportCppDecl::Kind:
|
||||
case ImportDecl::Kind:
|
||||
case InstType::Kind:
|
||||
|
||||
@@ -74,6 +74,8 @@ CARBON_SEM_IR_INST_KIND(ImplDecl)
|
||||
CARBON_SEM_IR_INST_KIND(LookupImplWitness)
|
||||
CARBON_SEM_IR_INST_KIND(ImplWitness)
|
||||
CARBON_SEM_IR_INST_KIND(ImplWitnessAccess)
|
||||
CARBON_SEM_IR_INST_KIND(ImplWitnessAssociatedConstant)
|
||||
CARBON_SEM_IR_INST_KIND(ImplWitnessTablePlaceholder)
|
||||
CARBON_SEM_IR_INST_KIND(ImportCppDecl)
|
||||
CARBON_SEM_IR_INST_KIND(ImportDecl)
|
||||
CARBON_SEM_IR_INST_KIND(ImportRefLoaded)
|
||||
|
||||
@@ -701,6 +701,10 @@ auto InstNamer::CollectNamesInBlock(ScopeId top_scope_id,
|
||||
add_inst_name(out.TakeStr());
|
||||
continue;
|
||||
}
|
||||
case ImplWitnessAssociatedConstant::Kind: {
|
||||
add_inst_name("impl_witness_assoc_constant");
|
||||
continue;
|
||||
}
|
||||
case ImportCppDecl::Kind: {
|
||||
add_inst_name("Cpp.import_cpp");
|
||||
continue;
|
||||
|
||||
@@ -13,12 +13,19 @@ namespace Carbon::SemIR {
|
||||
// The canonical list of singleton kinds. The order of `TypeType` is
|
||||
// significant because other singletons use it as a type.
|
||||
static constexpr std::array SingletonInstKinds = {
|
||||
InstKind::TypeType, InstKind::AutoType,
|
||||
InstKind::BoolType, InstKind::BoundMethodType,
|
||||
InstKind::ErrorInst, InstKind::InstType,
|
||||
InstKind::IntLiteralType, InstKind::LegacyFloatType,
|
||||
InstKind::NamespaceType, InstKind::SpecificFunctionType,
|
||||
InstKind::StringType, InstKind::VtableType,
|
||||
InstKind::TypeType,
|
||||
InstKind::AutoType,
|
||||
InstKind::BoolType,
|
||||
InstKind::BoundMethodType,
|
||||
InstKind::ErrorInst,
|
||||
InstKind::ImplWitnessTablePlaceholder,
|
||||
InstKind::InstType,
|
||||
InstKind::IntLiteralType,
|
||||
InstKind::LegacyFloatType,
|
||||
InstKind::NamespaceType,
|
||||
InstKind::SpecificFunctionType,
|
||||
InstKind::StringType,
|
||||
InstKind::VtableType,
|
||||
InstKind::WitnessType,
|
||||
};
|
||||
|
||||
|
||||
@@ -688,6 +688,7 @@ struct FacetAccessType {
|
||||
.is_type = InstIsType::Always,
|
||||
.constant_kind = InstConstantKind::SymbolicOnly});
|
||||
|
||||
// Always the builtin type TypeType.
|
||||
TypeId type_id;
|
||||
// An instruction that evaluates to a `FacetValue`.
|
||||
InstId facet_value_inst_id;
|
||||
@@ -900,6 +901,18 @@ struct ImplWitness {
|
||||
|
||||
// Always the type of the builtin `WitnessType` singleton instruction.
|
||||
TypeId type_id;
|
||||
// The witness table with an instruction for each associated constant and
|
||||
// function in the impl declaration (and definition, if seen). The specific_id
|
||||
// should be applied to those instructions. Instructions will be
|
||||
// `ImplWitnessTablePlaceholder` until a value is seen for them.
|
||||
//
|
||||
// TODO: To avoid importing the table with every `ImplWitness`, split this
|
||||
// table out to a separate `ImplWitnessTable` instruction. It can still remain
|
||||
// as an AbsoluteInstBlockId there. The `ImplWitnessTable's constant_kind
|
||||
// should be `Unique` to avoid it being evaluated or substituted. The
|
||||
// `ImplWitnessTable` can also hold a reference back to the impl that the
|
||||
// witness is for via an `ImplId` which allows diagnostics to show the impl
|
||||
// from a given witness or witness access.
|
||||
AbsoluteInstBlockId elements_id;
|
||||
SpecificId specific_id;
|
||||
};
|
||||
@@ -919,6 +932,40 @@ struct ImplWitnessAccess {
|
||||
ElementIndex index;
|
||||
};
|
||||
|
||||
// An instruction that just points to an associated constant, which exists to
|
||||
// live inside the generic for an `impl` and be rewritten in the generic eval
|
||||
// block, unlike the instruction which it points to. This allows a symbolic
|
||||
// constant value of this instruction to be be substituted to be associated with
|
||||
// the generic.
|
||||
struct ImplWitnessAssociatedConstant {
|
||||
static constexpr auto Kind =
|
||||
InstKind::ImplWitnessAssociatedConstant.Define<Parse::NodeId>(
|
||||
{.ir_name = "impl_witness_assoc_constant",
|
||||
.is_type = InstIsType::Maybe,
|
||||
// TODO: For dynamic dispatch, we might want to lower witness tables
|
||||
// as constants.
|
||||
.is_lowered = false});
|
||||
|
||||
// The type of the `inst_id`.
|
||||
TypeId type_id;
|
||||
// The instruction of the associated constant.
|
||||
InstId inst_id;
|
||||
};
|
||||
|
||||
// A singleton placeholder instruction used in the `ImplWitness` table of
|
||||
// instructions for members of the impl. These are replaced as values are seen
|
||||
// for the witness table in the impl declaration or definition.
|
||||
struct ImplWitnessTablePlaceholder {
|
||||
static constexpr auto Kind =
|
||||
InstKind::ImplWitnessTablePlaceholder.Define<Parse::NodeId>(
|
||||
{.ir_name = "impl_witness_table_placeholder",
|
||||
.constant_kind = InstConstantKind::Unique,
|
||||
.is_lowered = false});
|
||||
static constexpr auto SingletonInstId = MakeSingletonInstId<Kind>();
|
||||
|
||||
TypeId type_id;
|
||||
};
|
||||
|
||||
// An `import Cpp` declaration.
|
||||
struct ImportCppDecl {
|
||||
static constexpr auto Kind =
|
||||
@@ -1836,6 +1883,8 @@ struct WhereExpr {
|
||||
// The type of `ImplWitness` and `ImplSymbolicType` instructions. The latter
|
||||
// will evaluate at some point during specific computation into the former, and
|
||||
// their types should not change in the process.
|
||||
//
|
||||
// Also the type of `RequireCompleteType` instructions.
|
||||
struct WitnessType {
|
||||
static constexpr auto Kind = InstKind::WitnessType.Define<Parse::NoneNodeId>(
|
||||
{.ir_name = "<witness>",
|
||||
|
||||
Reference in New Issue
Block a user