mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 07:54:41 +01:00
Remove param_refs and implicit_param_refs (#4479)
This introduces `calling_convention_param_ids`, a single block that consolidates all the information that was being used by consumers of `param_refs` and `implicit_param_refs`, in a form that's easier to produce and typically easier to consume. See also [this Discord discussion](https://discord.com/channels/655572317891461132/655578254970716160/1300545448909738125) regarding the decision to keep the return slot last in the SemIR calling convention, even though it goes first in the LLVM calling convention. --------- Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
This commit is contained in:
co-authored by
Jon Ross-Perkins
parent
17272cf93c
commit
4f816dd03f
@@ -46,7 +46,7 @@ static auto ResolveCalleeInCall(Context& context, SemIR::LocId loc_id,
|
||||
llvm::ArrayRef<SemIR::InstId> arg_ids)
|
||||
-> std::optional<SemIR::SpecificId> {
|
||||
// Check that the arity matches.
|
||||
auto params = context.inst_blocks().GetOrEmpty(entity.param_refs_id);
|
||||
auto params = context.inst_blocks().GetOrEmpty(entity.param_patterns_id);
|
||||
if (arg_ids.size() != params.size()) {
|
||||
CARBON_DIAGNOSTIC(CallArgCountMismatch, Error,
|
||||
"{0} argument{0:s} passed to "
|
||||
|
||||
@@ -101,10 +101,9 @@ class DeclNameStack {
|
||||
.first_param_node_id = name.first_param_node_id,
|
||||
.last_param_node_id = name.last_param_node_id,
|
||||
.pattern_block_id = name.pattern_block_id,
|
||||
.implicit_param_refs_id = name.implicit_params_id,
|
||||
.implicit_param_patterns_id = name.implicit_param_patterns_id,
|
||||
.param_refs_id = name.params_id,
|
||||
.param_patterns_id = name.param_patterns_id,
|
||||
.call_params_id = name.call_params_id,
|
||||
.is_extern = is_extern,
|
||||
.extern_library_id = extern_library,
|
||||
.non_owning_decl_id =
|
||||
|
||||
@@ -41,10 +41,9 @@ auto GlobalInit::Finalize() -> void {
|
||||
.first_param_node_id = Parse::NodeId::Invalid,
|
||||
.last_param_node_id = Parse::NodeId::Invalid,
|
||||
.pattern_block_id = SemIR::InstBlockId::Empty,
|
||||
.implicit_param_refs_id = SemIR::InstBlockId::Invalid,
|
||||
.implicit_param_patterns_id = SemIR::InstBlockId::Invalid,
|
||||
.param_refs_id = SemIR::InstBlockId::Empty,
|
||||
.param_patterns_id = SemIR::InstBlockId::Empty,
|
||||
.call_params_id = SemIR::InstBlockId::Empty,
|
||||
.is_extern = false,
|
||||
.extern_library_id = SemIR::LibraryNameId::Invalid,
|
||||
.non_owning_decl_id = SemIR::InstId::Invalid,
|
||||
|
||||
@@ -182,10 +182,8 @@ static auto BuildFunctionDecl(Context& context,
|
||||
}
|
||||
|
||||
auto name = PopNameComponent(context, return_slot_pattern_id);
|
||||
if (!name.params_id.is_valid()) {
|
||||
CARBON_CHECK(!name.param_patterns_id.is_valid());
|
||||
if (!name.param_patterns_id.is_valid()) {
|
||||
context.TODO(node_id, "function with positional parameters");
|
||||
name.params_id = SemIR::InstBlockId::Empty;
|
||||
name.param_patterns_id = SemIR::InstBlockId::Empty;
|
||||
}
|
||||
|
||||
@@ -341,26 +339,28 @@ static auto HandleFunctionDefinitionAfterSignature(
|
||||
CheckFunctionReturnType(context, function.return_slot_id, function,
|
||||
SemIR::SpecificId::Invalid);
|
||||
|
||||
auto params_to_complete =
|
||||
context.inst_blocks().GetOrEmpty(function.call_params_id);
|
||||
if (function.return_slot_id.is_valid()) {
|
||||
// Exclude the return slot because it's diagnosed above.
|
||||
params_to_complete = params_to_complete.drop_back();
|
||||
}
|
||||
// Check the parameter types are complete.
|
||||
for (auto param_ref_id : llvm::concat<const SemIR::InstId>(
|
||||
context.inst_blocks().GetOrEmpty(function.implicit_param_refs_id),
|
||||
context.inst_blocks().GetOrEmpty(function.param_refs_id))) {
|
||||
for (auto param_ref_id : params_to_complete) {
|
||||
if (param_ref_id == SemIR::InstId::BuiltinErrorInst) {
|
||||
continue;
|
||||
}
|
||||
auto param_info =
|
||||
SemIR::Function::GetParamFromParamRefId(context.sem_ir(), param_ref_id);
|
||||
|
||||
// The parameter types need to be complete.
|
||||
context.TryToCompleteType(param_info.inst.type_id, [&] {
|
||||
CARBON_DIAGNOSTIC(
|
||||
IncompleteTypeInFunctionParam, Error,
|
||||
"parameter has incomplete type {0} in function definition",
|
||||
TypeOfInstId);
|
||||
return context.emitter().Build(param_info.inst_id,
|
||||
IncompleteTypeInFunctionParam,
|
||||
param_info.inst_id);
|
||||
});
|
||||
context.TryToCompleteType(
|
||||
context.insts().GetAs<SemIR::AnyParam>(param_ref_id).type_id, [&] {
|
||||
CARBON_DIAGNOSTIC(
|
||||
IncompleteTypeInFunctionParam, Error,
|
||||
"parameter has incomplete type {0} in function definition",
|
||||
TypeOfInstId);
|
||||
return context.emitter().Build(
|
||||
param_ref_id, IncompleteTypeInFunctionParam, param_ref_id);
|
||||
});
|
||||
}
|
||||
|
||||
context.node_stack().Push(node_id, function_id);
|
||||
|
||||
@@ -198,14 +198,14 @@ static auto PopImplIntroducerAndParamsAsNameComponent(
|
||||
auto [implicit_params_loc_id, implicit_param_patterns_id] =
|
||||
context.node_stack().PopWithNodeIdIf<Parse::NodeKind::ImplForall>();
|
||||
|
||||
ParameterBlocks parameter_blocks{
|
||||
.implicit_params_id = SemIR::InstBlockId::Invalid,
|
||||
.params_id = SemIR::InstBlockId::Invalid,
|
||||
.return_slot_id = SemIR::InstId::Invalid};
|
||||
if (implicit_param_patterns_id) {
|
||||
parameter_blocks =
|
||||
// Emit the `forall` match. This shouldn't produce any `Call` params,
|
||||
// because `impl`s are never actually called at runtime.
|
||||
auto parameter_blocks =
|
||||
CalleePatternMatch(context, *implicit_param_patterns_id,
|
||||
SemIR::InstBlockId::Invalid, SemIR::InstId::Invalid);
|
||||
CARBON_CHECK(parameter_blocks.call_params_id == SemIR::InstBlockId::Empty);
|
||||
CARBON_CHECK(parameter_blocks.return_slot_id == SemIR::InstId::Invalid);
|
||||
}
|
||||
|
||||
Parse::NodeId first_param_node_id =
|
||||
@@ -218,12 +218,11 @@ static auto PopImplIntroducerAndParamsAsNameComponent(
|
||||
.first_param_node_id = first_param_node_id,
|
||||
.last_param_node_id = last_param_node_id,
|
||||
.implicit_params_loc_id = implicit_params_loc_id,
|
||||
.implicit_params_id = parameter_blocks.implicit_params_id,
|
||||
.implicit_param_patterns_id =
|
||||
implicit_param_patterns_id.value_or(SemIR::InstBlockId::Invalid),
|
||||
.params_loc_id = Parse::NodeId::Invalid,
|
||||
.params_id = SemIR::InstBlockId::Invalid,
|
||||
.param_patterns_id = SemIR::InstBlockId::Invalid,
|
||||
.call_params_id = SemIR::InstBlockId::Invalid,
|
||||
.return_slot_pattern_id = SemIR::InstId::Invalid,
|
||||
.return_slot_id = SemIR::InstId::Invalid,
|
||||
.pattern_block_id = context.pattern_block_stack().Pop(),
|
||||
|
||||
@@ -667,27 +667,6 @@ class ImportRefResolver {
|
||||
return specific_id;
|
||||
}
|
||||
|
||||
// Adds unresolved constants for each parameter's type to work_stack_.
|
||||
auto LoadLocalParamConstantIds(SemIR::InstBlockId param_refs_id) -> void {
|
||||
if (!param_refs_id.is_valid() ||
|
||||
param_refs_id == SemIR::InstBlockId::Empty) {
|
||||
return;
|
||||
}
|
||||
|
||||
const auto& param_refs = import_ir_.inst_blocks().Get(param_refs_id);
|
||||
for (auto inst_id : param_refs) {
|
||||
GetLocalConstantId(import_ir_.insts().Get(inst_id).type_id());
|
||||
|
||||
// If the parameter is a symbolic binding, build the BindSymbolicName
|
||||
// constant.
|
||||
auto bind_id = inst_id;
|
||||
auto bind_inst = import_ir_.insts().Get(bind_id);
|
||||
if (bind_inst.Is<SemIR::BindSymbolicName>()) {
|
||||
GetLocalConstantId(bind_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Adds unresolved constants for each parameter's type to work_stack_.
|
||||
auto LoadLocalPatternConstantIds(SemIR::InstBlockId param_patterns_id)
|
||||
-> void {
|
||||
@@ -718,10 +697,11 @@ class ImportRefResolver {
|
||||
}
|
||||
}
|
||||
|
||||
// Returns a version of param_refs_id localized to the current IR.
|
||||
// Returns a version of param_patterns_id localized to the current IR.
|
||||
//
|
||||
// Must only be called after a call to GetLocalParamConstantIds(param_refs_id)
|
||||
// has completed without adding any new work to work_stack_.
|
||||
// Must only be called after a call to
|
||||
// LoadLocalPatternConstantIds(param_patterns_id) has completed without adding
|
||||
// any new work to work_stack_.
|
||||
//
|
||||
// TODO: This is inconsistent with the rest of this class, which expects
|
||||
// the relevant constants to be explicitly passed in. That makes it
|
||||
@@ -730,81 +710,6 @@ class ImportRefResolver {
|
||||
// take a holistic look at how to balance those concerns. For example,
|
||||
// could the same function be used to load the constants and use them, with
|
||||
// a parameter to select between the two?
|
||||
auto GetLocalParamRefsId(SemIR::InstBlockId param_refs_id)
|
||||
-> SemIR::InstBlockId {
|
||||
if (!param_refs_id.is_valid() ||
|
||||
param_refs_id == SemIR::InstBlockId::Empty) {
|
||||
return param_refs_id;
|
||||
}
|
||||
const auto& param_refs = import_ir_.inst_blocks().Get(param_refs_id);
|
||||
llvm::SmallVector<SemIR::InstId> new_param_refs;
|
||||
for (auto ref_id : param_refs) {
|
||||
// Figure out the param structure. This echoes
|
||||
// Function::GetParamFromParamRefId, and could use that function if we
|
||||
// added `bool addr` and `InstId bind_inst_id` to its return `ParamInfo`.
|
||||
// TODO: Consider a different parameter handling to simplify import logic.
|
||||
auto inst = import_ir_.insts().Get(ref_id);
|
||||
|
||||
auto bind_id = ref_id;
|
||||
auto param_id = ref_id;
|
||||
|
||||
auto bind_inst = inst.As<SemIR::AnyBindName>();
|
||||
param_id = bind_inst.value_id;
|
||||
inst = import_ir_.insts().Get(param_id);
|
||||
auto param_inst = inst.As<SemIR::ValueParam>();
|
||||
|
||||
// Rebuild the param instruction.
|
||||
auto entity_name =
|
||||
import_ir_.entity_names().Get(bind_inst.entity_name_id);
|
||||
auto name_id = GetLocalNameId(entity_name.name_id);
|
||||
auto type_id = context_.GetTypeIdForTypeConstant(
|
||||
GetLocalConstantIdChecked(param_inst.type_id));
|
||||
|
||||
auto new_param_id = context_.AddInstInNoBlock<SemIR::ValueParam>(
|
||||
AddImportIRInst(param_id),
|
||||
{.type_id = type_id,
|
||||
.runtime_index = param_inst.runtime_index,
|
||||
.pretty_name_id = GetLocalNameId(param_inst.pretty_name_id)});
|
||||
switch (bind_inst.kind) {
|
||||
case SemIR::BindName::Kind: {
|
||||
auto entity_name_id = context_.entity_names().Add(
|
||||
{.name_id = name_id,
|
||||
.parent_scope_id = SemIR::NameScopeId::Invalid,
|
||||
.bind_index = SemIR::CompileTimeBindIndex::Invalid});
|
||||
new_param_id = context_.AddInstInNoBlock<SemIR::BindName>(
|
||||
AddImportIRInst(bind_id), {.type_id = type_id,
|
||||
.entity_name_id = entity_name_id,
|
||||
.value_id = new_param_id});
|
||||
break;
|
||||
}
|
||||
case SemIR::BindSymbolicName::Kind: {
|
||||
// We already imported a constant value for this symbolic binding.
|
||||
// We can reuse most of it, but update the value to point to our
|
||||
// specific parameter, and preserve the constant value.
|
||||
auto new_bind_inst = context_.insts().GetAs<SemIR::BindSymbolicName>(
|
||||
context_.constant_values().GetInstId(
|
||||
GetLocalConstantIdChecked(bind_id)));
|
||||
new_bind_inst.value_id = new_param_id;
|
||||
new_param_id = context_.AddInstInNoBlock(AddImportIRInst(bind_id),
|
||||
new_bind_inst);
|
||||
context_.constant_values().Set(new_param_id,
|
||||
GetLocalConstantIdChecked(bind_id));
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
CARBON_FATAL("Unexpected kind: {0}", bind_inst.kind);
|
||||
}
|
||||
}
|
||||
new_param_refs.push_back(new_param_id);
|
||||
}
|
||||
return context_.inst_blocks().Add(new_param_refs);
|
||||
}
|
||||
|
||||
// Returns a version of param_patterns_id localized to the current IR.
|
||||
//
|
||||
// Must only be called after a call to
|
||||
// LoadLocalPatternConstantIds(param_patterns_id) has completed without adding
|
||||
// any new work to work_stack_.
|
||||
auto GetLocalParamPatternsId(SemIR::InstBlockId param_patterns_id)
|
||||
-> SemIR::InstBlockId {
|
||||
if (!param_patterns_id.is_valid() ||
|
||||
@@ -1035,19 +940,14 @@ class ImportRefResolver {
|
||||
.first_param_node_id = Parse::NodeId::Invalid,
|
||||
.last_param_node_id = Parse::NodeId::Invalid,
|
||||
.pattern_block_id = SemIR::InstBlockId::Invalid,
|
||||
.implicit_param_refs_id = import_base.implicit_param_refs_id.is_valid()
|
||||
? SemIR::InstBlockId::Empty
|
||||
: SemIR::InstBlockId::Invalid,
|
||||
.implicit_param_patterns_id =
|
||||
import_base.implicit_param_patterns_id.is_valid()
|
||||
? SemIR::InstBlockId::Empty
|
||||
: SemIR::InstBlockId::Invalid,
|
||||
.param_refs_id = import_base.param_refs_id.is_valid()
|
||||
? SemIR::InstBlockId::Empty
|
||||
: SemIR::InstBlockId::Invalid,
|
||||
.param_patterns_id = import_base.param_patterns_id.is_valid()
|
||||
? SemIR::InstBlockId::Empty
|
||||
: SemIR::InstBlockId::Invalid,
|
||||
.call_params_id = SemIR::InstBlockId::Invalid,
|
||||
.is_extern = import_base.is_extern,
|
||||
.extern_library_id = extern_library_id,
|
||||
.non_owning_decl_id = import_base.non_owning_decl_id.is_valid()
|
||||
@@ -1527,9 +1427,7 @@ class ImportRefResolver {
|
||||
|
||||
// Load constants for the definition.
|
||||
auto parent_scope_id = GetLocalNameScopeId(import_class.parent_scope_id);
|
||||
LoadLocalParamConstantIds(import_class.implicit_param_refs_id);
|
||||
LoadLocalPatternConstantIds(import_class.implicit_param_patterns_id);
|
||||
LoadLocalParamConstantIds(import_class.param_refs_id);
|
||||
LoadLocalPatternConstantIds(import_class.param_patterns_id);
|
||||
auto generic_data = GetLocalGenericData(import_class.generic_id);
|
||||
auto self_const_id = GetLocalConstantId(import_class.self_type_id);
|
||||
@@ -1547,11 +1445,8 @@ class ImportRefResolver {
|
||||
|
||||
auto& new_class = context_.classes().Get(class_id);
|
||||
new_class.parent_scope_id = parent_scope_id;
|
||||
new_class.implicit_param_refs_id =
|
||||
GetLocalParamRefsId(import_class.implicit_param_refs_id);
|
||||
new_class.implicit_param_patterns_id =
|
||||
GetLocalParamPatternsId(import_class.implicit_param_patterns_id);
|
||||
new_class.param_refs_id = GetLocalParamRefsId(import_class.param_refs_id);
|
||||
new_class.param_patterns_id =
|
||||
GetLocalParamPatternsId(import_class.param_patterns_id);
|
||||
SetGenericData(import_class.generic_id, new_class.generic_id, generic_data);
|
||||
@@ -1705,9 +1600,7 @@ class ImportRefResolver {
|
||||
import_ir_.insts().Get(import_function.return_slot_id).type_id());
|
||||
}
|
||||
auto parent_scope_id = GetLocalNameScopeId(import_function.parent_scope_id);
|
||||
LoadLocalParamConstantIds(import_function.implicit_param_refs_id);
|
||||
LoadLocalPatternConstantIds(import_function.implicit_param_patterns_id);
|
||||
LoadLocalParamConstantIds(import_function.param_refs_id);
|
||||
LoadLocalPatternConstantIds(import_function.param_patterns_id);
|
||||
auto generic_data = GetLocalGenericData(import_function.generic_id);
|
||||
|
||||
@@ -1718,12 +1611,8 @@ class ImportRefResolver {
|
||||
// Add the function declaration.
|
||||
auto& new_function = context_.functions().Get(function_id);
|
||||
new_function.parent_scope_id = parent_scope_id;
|
||||
new_function.implicit_param_refs_id =
|
||||
GetLocalParamRefsId(import_function.implicit_param_refs_id);
|
||||
new_function.implicit_param_patterns_id =
|
||||
GetLocalParamPatternsId(import_function.implicit_param_patterns_id);
|
||||
new_function.param_refs_id =
|
||||
GetLocalParamRefsId(import_function.param_refs_id);
|
||||
new_function.param_patterns_id =
|
||||
GetLocalParamPatternsId(import_function.param_patterns_id);
|
||||
new_function.return_slot_pattern_id =
|
||||
@@ -1874,7 +1763,6 @@ class ImportRefResolver {
|
||||
|
||||
// Load constants for the definition.
|
||||
auto parent_scope_id = GetLocalNameScopeId(import_impl.parent_scope_id);
|
||||
LoadLocalParamConstantIds(import_impl.implicit_param_refs_id);
|
||||
LoadLocalPatternConstantIds(import_impl.implicit_param_patterns_id);
|
||||
auto generic_data = GetLocalGenericData(import_impl.generic_id);
|
||||
auto self_const_id = GetLocalConstantId(
|
||||
@@ -1888,12 +1776,8 @@ class ImportRefResolver {
|
||||
|
||||
auto& new_impl = context_.impls().Get(impl_id);
|
||||
new_impl.parent_scope_id = parent_scope_id;
|
||||
new_impl.implicit_param_refs_id =
|
||||
GetLocalParamRefsId(import_impl.implicit_param_refs_id);
|
||||
new_impl.implicit_param_patterns_id =
|
||||
GetLocalParamPatternsId(import_impl.implicit_param_patterns_id);
|
||||
CARBON_CHECK(!import_impl.param_refs_id.is_valid() &&
|
||||
!new_impl.param_refs_id.is_valid());
|
||||
SetGenericData(import_impl.generic_id, new_impl.generic_id, generic_data);
|
||||
|
||||
// Create instructions for self and constraint to hold the symbolic constant
|
||||
@@ -2043,9 +1927,7 @@ class ImportRefResolver {
|
||||
|
||||
auto parent_scope_id =
|
||||
GetLocalNameScopeId(import_interface.parent_scope_id);
|
||||
LoadLocalParamConstantIds(import_interface.implicit_param_refs_id);
|
||||
LoadLocalPatternConstantIds(import_interface.implicit_param_patterns_id);
|
||||
LoadLocalParamConstantIds(import_interface.param_refs_id);
|
||||
LoadLocalPatternConstantIds(import_interface.param_patterns_id);
|
||||
auto generic_data = GetLocalGenericData(import_interface.generic_id);
|
||||
|
||||
@@ -2060,12 +1942,8 @@ class ImportRefResolver {
|
||||
|
||||
auto& new_interface = context_.interfaces().Get(interface_id);
|
||||
new_interface.parent_scope_id = parent_scope_id;
|
||||
new_interface.implicit_param_refs_id =
|
||||
GetLocalParamRefsId(import_interface.implicit_param_refs_id);
|
||||
new_interface.implicit_param_patterns_id =
|
||||
GetLocalParamPatternsId(import_interface.implicit_param_patterns_id);
|
||||
new_interface.param_refs_id =
|
||||
GetLocalParamRefsId(import_interface.param_refs_id);
|
||||
new_interface.param_patterns_id =
|
||||
GetLocalParamPatternsId(import_interface.param_patterns_id);
|
||||
SetGenericData(import_interface.generic_id, new_interface.generic_id,
|
||||
|
||||
@@ -43,7 +43,7 @@ auto PopNameComponent(Context& context, SemIR::InstId return_slot_pattern_id)
|
||||
implicit_param_patterns_id = SemIR::InstBlockId::Invalid;
|
||||
}
|
||||
|
||||
auto [implicit_params_id, params_id, return_slot_id] =
|
||||
auto [call_params_id, return_slot_id] =
|
||||
CalleePatternMatch(context, *implicit_param_patterns_id,
|
||||
*param_patterns_id, return_slot_pattern_id);
|
||||
|
||||
@@ -54,11 +54,10 @@ auto PopNameComponent(Context& context, SemIR::InstId return_slot_pattern_id)
|
||||
.first_param_node_id = first_param_node_id,
|
||||
.last_param_node_id = last_param_node_id,
|
||||
.implicit_params_loc_id = implicit_params_loc_id,
|
||||
.implicit_params_id = implicit_params_id,
|
||||
.implicit_param_patterns_id = *implicit_param_patterns_id,
|
||||
.params_loc_id = params_loc_id,
|
||||
.params_id = params_id,
|
||||
.param_patterns_id = *param_patterns_id,
|
||||
.call_params_id = call_params_id,
|
||||
.return_slot_pattern_id = return_slot_pattern_id,
|
||||
.return_slot_id = return_slot_id,
|
||||
.pattern_block_id = context.pattern_block_stack().Pop(),
|
||||
@@ -70,18 +69,17 @@ auto PopNameComponent(Context& context, SemIR::InstId return_slot_pattern_id)
|
||||
auto PopNameComponentWithoutParams(Context& context, Lex::TokenKind introducer)
|
||||
-> NameComponent {
|
||||
NameComponent name = PopNameComponent(context);
|
||||
if (name.implicit_params_id.is_valid() || name.params_id.is_valid()) {
|
||||
if (name.call_params_id.is_valid()) {
|
||||
CARBON_DIAGNOSTIC(UnexpectedDeclNameParams, Error,
|
||||
"`{0}` declaration cannot have parameters",
|
||||
Lex::TokenKind);
|
||||
// Point to the lexically first parameter list in the diagnostic.
|
||||
context.emitter().Emit(name.implicit_params_id.is_valid()
|
||||
context.emitter().Emit(name.implicit_param_patterns_id.is_valid()
|
||||
? name.implicit_params_loc_id
|
||||
: name.params_loc_id,
|
||||
UnexpectedDeclNameParams, introducer);
|
||||
|
||||
name.implicit_params_id = SemIR::InstBlockId::Invalid;
|
||||
name.params_id = SemIR::InstBlockId::Invalid;
|
||||
name.call_params_id = SemIR::InstBlockId::Invalid;
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
@@ -28,14 +28,18 @@ struct NameComponent {
|
||||
|
||||
// The implicit parameter list.
|
||||
Parse::NodeId implicit_params_loc_id;
|
||||
SemIR::InstBlockId implicit_params_id;
|
||||
SemIR::InstBlockId implicit_param_patterns_id;
|
||||
|
||||
// The explicit parameter list.
|
||||
Parse::NodeId params_loc_id;
|
||||
SemIR::InstBlockId params_id;
|
||||
SemIR::InstBlockId param_patterns_id;
|
||||
|
||||
// The `Call` parameters of the entity, if it's a function (see the
|
||||
// corresponding member of SemIR::EntityWithParamsBase).
|
||||
// TODO: This is only used for function declarations. Should it go somewhere
|
||||
// else?
|
||||
SemIR::InstBlockId call_params_id;
|
||||
|
||||
// The return slot.
|
||||
// TODO: These are only used for function declarations. Should they go
|
||||
// somewhere else?
|
||||
|
||||
@@ -161,7 +161,11 @@ auto MatchContext::EmitPatternMatch(Context& context,
|
||||
bind_name.value_id = entry.scrutinee_id;
|
||||
context.ReplaceInstBeforeConstantUse(bind_name_id, bind_name);
|
||||
context.inst_block_stack().AddInstId(bind_name_id);
|
||||
results_.push_back(bind_name_id);
|
||||
if (context.insts()
|
||||
.GetAs<SemIR::AnyParam>(entry.scrutinee_id)
|
||||
.runtime_index.is_valid()) {
|
||||
results_.push_back(entry.scrutinee_id);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CARBON_KIND(SemIR::AddrPattern addr_pattern): {
|
||||
@@ -280,6 +284,7 @@ auto MatchContext::EmitPatternMatch(Context& context,
|
||||
pattern.loc_id, {.type_id = return_slot_pattern.type_id,
|
||||
.type_inst_id = return_slot_pattern.type_inst_id,
|
||||
.storage_id = entry.scrutinee_id});
|
||||
results_.push_back(entry.scrutinee_id);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
@@ -293,20 +298,19 @@ auto CalleePatternMatch(Context& context,
|
||||
SemIR::InstBlockId param_patterns_id,
|
||||
SemIR::InstId return_slot_pattern_id)
|
||||
-> ParameterBlocks {
|
||||
auto params_id = SemIR::InstBlockId::Invalid;
|
||||
auto implicit_params_id = SemIR::InstBlockId::Invalid;
|
||||
if (!return_slot_pattern_id.is_valid() && !param_patterns_id.is_valid() &&
|
||||
!implicit_param_patterns_id.is_valid()) {
|
||||
return {.call_params_id = SemIR::InstBlockId::Invalid,
|
||||
.return_slot_id = SemIR::InstId::Invalid};
|
||||
}
|
||||
|
||||
MatchContext match(MatchKind::Callee);
|
||||
|
||||
if (implicit_param_patterns_id.is_valid()) {
|
||||
// We add work to the stack in reverse so that the results will be produced
|
||||
// in the original order.
|
||||
for (SemIR::InstId inst_id :
|
||||
llvm::reverse(context.inst_blocks().Get(implicit_param_patterns_id))) {
|
||||
match.AddWork(
|
||||
{.pattern_id = inst_id, .scrutinee_id = SemIR::InstId::Invalid});
|
||||
}
|
||||
implicit_params_id = match.DoWork(context);
|
||||
// We add work to the stack in reverse so that the results will be produced
|
||||
// in the original order.
|
||||
if (return_slot_pattern_id.is_valid()) {
|
||||
match.AddWork({.pattern_id = return_slot_pattern_id,
|
||||
.scrutinee_id = SemIR::InstId::Invalid});
|
||||
}
|
||||
|
||||
if (param_patterns_id.is_valid()) {
|
||||
@@ -315,17 +319,17 @@ auto CalleePatternMatch(Context& context,
|
||||
match.AddWork(
|
||||
{.pattern_id = inst_id, .scrutinee_id = SemIR::InstId::Invalid});
|
||||
}
|
||||
params_id = match.DoWork(context);
|
||||
}
|
||||
|
||||
if (return_slot_pattern_id.is_valid()) {
|
||||
match.AddWork({.pattern_id = return_slot_pattern_id,
|
||||
.scrutinee_id = SemIR::InstId::Invalid});
|
||||
CARBON_CHECK(match.DoWork(context) == SemIR::InstBlockId::Empty);
|
||||
if (implicit_param_patterns_id.is_valid()) {
|
||||
for (SemIR::InstId inst_id :
|
||||
llvm::reverse(context.inst_blocks().Get(implicit_param_patterns_id))) {
|
||||
match.AddWork(
|
||||
{.pattern_id = inst_id, .scrutinee_id = SemIR::InstId::Invalid});
|
||||
}
|
||||
}
|
||||
|
||||
return {.implicit_params_id = implicit_params_id,
|
||||
.params_id = params_id,
|
||||
return {.call_params_id = match.DoWork(context),
|
||||
.return_slot_id = match.return_slot_id()};
|
||||
}
|
||||
|
||||
|
||||
@@ -10,15 +10,14 @@
|
||||
|
||||
namespace Carbon::Check {
|
||||
|
||||
// The pattern-match counterparts of the patterns passed to CalleePatternMatch.
|
||||
// The outputs of CalleePatternMatch.
|
||||
// TODO: Rename or remove this struct.
|
||||
struct ParameterBlocks {
|
||||
// The implicit parameter list.
|
||||
SemIR::InstBlockId implicit_params_id;
|
||||
|
||||
// The explicit parameter list.
|
||||
SemIR::InstBlockId params_id;
|
||||
// The `Call` parameters of the function.
|
||||
SemIR::InstBlockId call_params_id;
|
||||
|
||||
// The return slot.
|
||||
// TODO: Drop this and just use the last element of above?
|
||||
SemIR::InstId return_slot_id;
|
||||
};
|
||||
|
||||
@@ -29,16 +28,13 @@ struct ParameterBlocks {
|
||||
// between the two: pattern insts that are descendants of a `ParamPattern`
|
||||
// are matched by the callee, and pattern insts that have a `ParamPattern`
|
||||
// as a descendant are matched by the caller.
|
||||
//
|
||||
// "Calling convention arguments" are the values actually passed from caller to
|
||||
// callee at the semantic IR level, and "calling convention parameters" are
|
||||
// the corresponding semantic placeholders that they bind to.
|
||||
|
||||
// Emits the pattern-match IR for the declaration of a parameterized entity with
|
||||
// the given implicit and explicit parameter patterns, and the given return slot
|
||||
// pattern (any of which may be invalid if not applicable). This IR performs the
|
||||
// callee side of pattern matching, starting at the `ParamPattern` insts, and
|
||||
// matching them against the corresponding calling-convention parameters.
|
||||
// matching them against the corresponding `Call` parameters (see
|
||||
// entity_with_params_base.h for the definition of that term).
|
||||
auto CalleePatternMatch(Context& context,
|
||||
SemIR::InstBlockId implicit_param_patterns_id,
|
||||
SemIR::InstBlockId param_patterns_id,
|
||||
@@ -46,9 +42,8 @@ auto CalleePatternMatch(Context& context,
|
||||
-> ParameterBlocks;
|
||||
|
||||
// Emits the pattern-match IR for matching the given arguments with the given
|
||||
// parameter patterns, and returns an inst block with one inst for each
|
||||
// calling convention argument. This IR performs the caller side of pattern
|
||||
// matching.
|
||||
// parameter patterns, and returns an inst block of the arguments that should
|
||||
// be passed to the `Call` inst.
|
||||
auto CallerPatternMatch(Context& context, SemIR::SpecificId specific_id,
|
||||
SemIR::InstId self_pattern_id,
|
||||
SemIR::InstBlockId param_patterns_id,
|
||||
|
||||
@@ -117,7 +117,8 @@ fn Foo(n: ()) -> ((), ()) {
|
||||
// CHECK:STDOUT: 0: inst+7
|
||||
// CHECK:STDOUT: 1: inst+8
|
||||
// CHECK:STDOUT: block6:
|
||||
// CHECK:STDOUT: 0: inst+4
|
||||
// CHECK:STDOUT: 0: inst+16
|
||||
// CHECK:STDOUT: 1: inst+17
|
||||
// CHECK:STDOUT: block7:
|
||||
// CHECK:STDOUT: 0: inst+5
|
||||
// CHECK:STDOUT: 1: inst+6
|
||||
|
||||
+17
-18
@@ -28,12 +28,12 @@ fn Foo[T:! type](n: T) -> (T, ()) {
|
||||
// CHECK:STDOUT: entity_name0: {name: name1, parent_scope: name_scope<invalid>, index: comp_time_bind0}
|
||||
// CHECK:STDOUT: entity_name1: {name: name2, parent_scope: name_scope<invalid>, index: comp_time_bind<invalid>}
|
||||
// CHECK:STDOUT: functions:
|
||||
// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, return_slot_pattern: inst+19, return_slot: inst+23, body: [block15]}
|
||||
// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, return_slot_pattern: inst+19, return_slot: inst+23, body: [block14]}
|
||||
// CHECK:STDOUT: classes: {}
|
||||
// CHECK:STDOUT: generics:
|
||||
// CHECK:STDOUT: generic0: {decl: inst+24, bindings: block11}
|
||||
// CHECK:STDOUT: generic0: {decl: inst+24, bindings: block10}
|
||||
// CHECK:STDOUT: specifics:
|
||||
// CHECK:STDOUT: specific0: {generic: generic0, args: block13}
|
||||
// CHECK:STDOUT: specific0: {generic: generic0, args: block12}
|
||||
// CHECK:STDOUT: struct_type_fields:
|
||||
// CHECK:STDOUT: type_block0: {}
|
||||
// CHECK:STDOUT: types:
|
||||
@@ -83,7 +83,7 @@ fn Foo[T:! type](n: T) -> (T, ()) {
|
||||
// CHECK:STDOUT: 'inst+21': {kind: ValueParam, arg0: runtime_param0, arg1: name2, type: type(symbolicConstant3)}
|
||||
// CHECK:STDOUT: 'inst+22': {kind: OutParam, arg0: runtime_param1, arg1: nameReturnSlot, type: type(symbolicConstant5)}
|
||||
// CHECK:STDOUT: 'inst+23': {kind: ReturnSlot, arg0: inst+14, arg1: inst+22, type: type(symbolicConstant5)}
|
||||
// CHECK:STDOUT: 'inst+24': {kind: FunctionDecl, arg0: function0, arg1: block10, type: type(inst+28)}
|
||||
// CHECK:STDOUT: 'inst+24': {kind: FunctionDecl, arg0: function0, arg1: block9, type: type(inst+28)}
|
||||
// CHECK:STDOUT: 'inst+25': {kind: BindSymbolicName, arg0: entity_name0, arg1: inst<invalid>, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+26': {kind: SymbolicBindingPattern, arg0: entity_name0, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+27': {kind: TupleType, arg0: type_block3, type: typeTypeType}
|
||||
@@ -92,14 +92,14 @@ fn Foo[T:! type](n: T) -> (T, ()) {
|
||||
// CHECK:STDOUT: 'inst+30': {kind: PointerType, arg0: type(symbolicConstant2), type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+31': {kind: NameRef, arg0: name2, arg1: inst+7, type: type(symbolicConstant3)}
|
||||
// CHECK:STDOUT: 'inst+32': {kind: TupleLiteral, arg0: empty, type: type(inst+11)}
|
||||
// CHECK:STDOUT: 'inst+33': {kind: TupleLiteral, arg0: block16, type: type(symbolicConstant5)}
|
||||
// CHECK:STDOUT: 'inst+33': {kind: TupleLiteral, arg0: block15, type: type(symbolicConstant5)}
|
||||
// CHECK:STDOUT: 'inst+34': {kind: TupleAccess, arg0: inst+23, arg1: element0, type: type(symbolicConstant3)}
|
||||
// CHECK:STDOUT: 'inst+35': {kind: InitializeFrom, arg0: inst+31, arg1: inst+34, type: type(symbolicConstant3)}
|
||||
// CHECK:STDOUT: 'inst+36': {kind: TupleAccess, arg0: inst+23, arg1: element1, type: type(inst+11)}
|
||||
// CHECK:STDOUT: 'inst+37': {kind: TupleInit, arg0: empty, arg1: inst+36, type: type(inst+11)}
|
||||
// CHECK:STDOUT: 'inst+38': {kind: TupleValue, arg0: empty, type: type(inst+11)}
|
||||
// CHECK:STDOUT: 'inst+39': {kind: Converted, arg0: inst+32, arg1: inst+37, type: type(inst+11)}
|
||||
// CHECK:STDOUT: 'inst+40': {kind: TupleInit, arg0: block17, arg1: inst+23, type: type(symbolicConstant5)}
|
||||
// CHECK:STDOUT: 'inst+40': {kind: TupleInit, arg0: block16, arg1: inst+23, type: type(symbolicConstant5)}
|
||||
// CHECK:STDOUT: 'inst+41': {kind: Converted, arg0: inst+33, arg1: inst+40, type: type(symbolicConstant5)}
|
||||
// CHECK:STDOUT: 'inst+42': {kind: ReturnExpr, arg0: inst+41, arg1: inst+23}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
@@ -148,17 +148,16 @@ fn Foo[T:! type](n: T) -> (T, ()) {
|
||||
// CHECK:STDOUT: 0: inst+10
|
||||
// CHECK:STDOUT: 1: inst+12
|
||||
// CHECK:STDOUT: block7:
|
||||
// CHECK:STDOUT: 0: inst+1
|
||||
// CHECK:STDOUT: 0: inst+21
|
||||
// CHECK:STDOUT: 1: inst+22
|
||||
// CHECK:STDOUT: block8:
|
||||
// CHECK:STDOUT: 0: inst+7
|
||||
// CHECK:STDOUT: block9:
|
||||
// CHECK:STDOUT: 0: inst+3
|
||||
// CHECK:STDOUT: 1: inst+5
|
||||
// CHECK:STDOUT: 2: inst+8
|
||||
// CHECK:STDOUT: 3: inst+9
|
||||
// CHECK:STDOUT: 4: inst+18
|
||||
// CHECK:STDOUT: 5: inst+19
|
||||
// CHECK:STDOUT: block10:
|
||||
// CHECK:STDOUT: block9:
|
||||
// CHECK:STDOUT: 0: inst+6
|
||||
// CHECK:STDOUT: 1: inst+10
|
||||
// CHECK:STDOUT: 2: inst+12
|
||||
@@ -171,19 +170,19 @@ fn Foo[T:! type](n: T) -> (T, ()) {
|
||||
// CHECK:STDOUT: 9: inst+7
|
||||
// CHECK:STDOUT: 10: inst+22
|
||||
// CHECK:STDOUT: 11: inst+23
|
||||
// CHECK:STDOUT: block11:
|
||||
// CHECK:STDOUT: block10:
|
||||
// CHECK:STDOUT: 0: inst+1
|
||||
// CHECK:STDOUT: block12:
|
||||
// CHECK:STDOUT: block11:
|
||||
// CHECK:STDOUT: 0: inst+25
|
||||
// CHECK:STDOUT: 1: inst+26
|
||||
// CHECK:STDOUT: 2: inst+27
|
||||
// CHECK:STDOUT: block13:
|
||||
// CHECK:STDOUT: block12:
|
||||
// CHECK:STDOUT: 0: inst+2
|
||||
// CHECK:STDOUT: block14:
|
||||
// CHECK:STDOUT: block13:
|
||||
// CHECK:STDOUT: 0: inst+2
|
||||
// CHECK:STDOUT: 1: inst+2
|
||||
// CHECK:STDOUT: 2: inst+16
|
||||
// CHECK:STDOUT: block15:
|
||||
// CHECK:STDOUT: block14:
|
||||
// CHECK:STDOUT: 0: inst+31
|
||||
// CHECK:STDOUT: 1: inst+32
|
||||
// CHECK:STDOUT: 2: inst+33
|
||||
@@ -195,13 +194,13 @@ fn Foo[T:! type](n: T) -> (T, ()) {
|
||||
// CHECK:STDOUT: 8: inst+40
|
||||
// CHECK:STDOUT: 9: inst+41
|
||||
// CHECK:STDOUT: 10: inst+42
|
||||
// CHECK:STDOUT: block16:
|
||||
// CHECK:STDOUT: block15:
|
||||
// CHECK:STDOUT: 0: inst+31
|
||||
// CHECK:STDOUT: 1: inst+32
|
||||
// CHECK:STDOUT: block17:
|
||||
// CHECK:STDOUT: block16:
|
||||
// CHECK:STDOUT: 0: inst+35
|
||||
// CHECK:STDOUT: 1: inst+39
|
||||
// CHECK:STDOUT: block18:
|
||||
// CHECK:STDOUT: block17:
|
||||
// CHECK:STDOUT: 0: inst+0
|
||||
// CHECK:STDOUT: 1: inst+24
|
||||
// CHECK:STDOUT: ...
|
||||
|
||||
@@ -111,7 +111,7 @@ var dyn: Float(dyn_size);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: %Float.type = import_ref Main//types, inst+29, loaded [template = constants.%Float]
|
||||
// CHECK:STDOUT: %import_ref.1: %Float.type = import_ref Main//types, inst+27, loaded [template = constants.%Float]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.2
|
||||
// CHECK:STDOUT: .Int = %import_ref.38
|
||||
@@ -201,7 +201,7 @@ var dyn: Float(dyn_size);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: %Float.type = import_ref Main//types, inst+29, loaded [template = constants.%Float]
|
||||
// CHECK:STDOUT: %import_ref.1: %Float.type = import_ref Main//types, inst+27, loaded [template = constants.%Float]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.2
|
||||
// CHECK:STDOUT: .Int = %import_ref.38
|
||||
|
||||
+315
-315
@@ -832,27 +832,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+33, loaded [template = constants.%NegateI32]
|
||||
// CHECK:STDOUT: %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+60, loaded [template = constants.%SubI32]
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4: %IntLiteral.type = import_ref Main//int_ops, inst+106, loaded [template = constants.%IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.5: %Int32ToInt32.type = import_ref Main//int_ops, inst+125, loaded [template = constants.%Int32ToInt32]
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+144, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9: %IntLiteralToIntLiteral.type = import_ref Main//int_ops, inst+201, loaded [template = constants.%IntLiteralToIntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20: %Int32ToIntLiteral.type = import_ref Main//int_ops, inst+416, loaded [template = constants.%Int32ToIntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+31, loaded [template = constants.%NegateI32]
|
||||
// CHECK:STDOUT: %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+58, loaded [template = constants.%SubI32]
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4: %IntLiteral.type = import_ref Main//int_ops, inst+102, loaded [template = constants.%IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.5: %Int32ToInt32.type = import_ref Main//int_ops, inst+121, loaded [template = constants.%Int32ToInt32]
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9: %IntLiteralToIntLiteral.type = import_ref Main//int_ops, inst+197, loaded [template = constants.%IntLiteralToIntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20: %Int32ToIntLiteral.type = import_ref Main//int_ops, inst+412, loaded [template = constants.%Int32ToIntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -1024,27 +1024,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+144, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7: %Uint32ToInt32.type = import_ref Main//int_ops, inst+163, loaded [template = constants.%Uint32ToInt32]
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7: %Uint32ToInt32.type = import_ref Main//int_ops, inst+159, loaded [template = constants.%Uint32ToInt32]
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .UInt = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -1194,27 +1194,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+33, loaded [template = constants.%NegateI32]
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+144, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+222, loaded [template = constants.%Int32ToInt16]
|
||||
// CHECK:STDOUT: %import_ref.11: %Int32ToUint16.type = import_ref Main//int_ops, inst+242, loaded [template = constants.%Int32ToUint16]
|
||||
// CHECK:STDOUT: %import_ref.12: %Uint32ToInt16.type = import_ref Main//int_ops, inst+261, loaded [template = constants.%Uint32ToInt16]
|
||||
// CHECK:STDOUT: %import_ref.13: %Uint32ToUint16.type = import_ref Main//int_ops, inst+280, loaded [template = constants.%Uint32ToUint16]
|
||||
// CHECK:STDOUT: %import_ref.14: %IntLiteralToInt16.type = import_ref Main//int_ops, inst+299, loaded [template = constants.%IntLiteralToInt16]
|
||||
// CHECK:STDOUT: %import_ref.15: %IntLiteralToUint16.type = import_ref Main//int_ops, inst+318, loaded [template = constants.%IntLiteralToUint16]
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20: %Int32ToIntLiteral.type = import_ref Main//int_ops, inst+416, loaded [template = constants.%Int32ToIntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+31, loaded [template = constants.%NegateI32]
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+218, loaded [template = constants.%Int32ToInt16]
|
||||
// CHECK:STDOUT: %import_ref.11: %Int32ToUint16.type = import_ref Main//int_ops, inst+238, loaded [template = constants.%Int32ToUint16]
|
||||
// CHECK:STDOUT: %import_ref.12: %Uint32ToInt16.type = import_ref Main//int_ops, inst+257, loaded [template = constants.%Uint32ToInt16]
|
||||
// CHECK:STDOUT: %import_ref.13: %Uint32ToUint16.type = import_ref Main//int_ops, inst+276, loaded [template = constants.%Uint32ToUint16]
|
||||
// CHECK:STDOUT: %import_ref.14: %IntLiteralToInt16.type = import_ref Main//int_ops, inst+295, loaded [template = constants.%IntLiteralToInt16]
|
||||
// CHECK:STDOUT: %import_ref.15: %IntLiteralToUint16.type = import_ref Main//int_ops, inst+314, loaded [template = constants.%IntLiteralToUint16]
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20: %Int32ToIntLiteral.type = import_ref Main//int_ops, inst+412, loaded [template = constants.%Int32ToIntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .UInt = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -1569,27 +1569,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: %AddU32.type = import_ref Main//int_ops, inst+99, loaded [template = constants.%AddU32]
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+144, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18: %Uint32ToInt64.type = import_ref Main//int_ops, inst+378, loaded [template = constants.%Uint32ToInt64]
|
||||
// CHECK:STDOUT: %import_ref.19: %Uint32ToUint64.type = import_ref Main//int_ops, inst+397, loaded [template = constants.%Uint32ToUint64]
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: %AddU32.type = import_ref Main//int_ops, inst+95, loaded [template = constants.%AddU32]
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18: %Uint32ToInt64.type = import_ref Main//int_ops, inst+374, loaded [template = constants.%Uint32ToInt64]
|
||||
// CHECK:STDOUT: %import_ref.19: %Uint32ToUint64.type = import_ref Main//int_ops, inst+393, loaded [template = constants.%Uint32ToUint64]
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .UInt = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -1830,27 +1830,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+33, loaded [template = constants.%NegateI32]
|
||||
// CHECK:STDOUT: %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+60, loaded [template = constants.%SubI32]
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+144, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16: %Int32ToInt64.type = import_ref Main//int_ops, inst+339, loaded [template = constants.%Int32ToInt64]
|
||||
// CHECK:STDOUT: %import_ref.17: %Int32ToUint64.type = import_ref Main//int_ops, inst+359, loaded [template = constants.%Int32ToUint64]
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+31, loaded [template = constants.%NegateI32]
|
||||
// CHECK:STDOUT: %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+58, loaded [template = constants.%SubI32]
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16: %Int32ToInt64.type = import_ref Main//int_ops, inst+335, loaded [template = constants.%Int32ToInt64]
|
||||
// CHECK:STDOUT: %import_ref.17: %Int32ToUint64.type = import_ref Main//int_ops, inst+355, loaded [template = constants.%Int32ToUint64]
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .UInt = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -2018,27 +2018,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: %AddU32.type = import_ref Main//int_ops, inst+99, loaded [template = constants.%AddU32]
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+144, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7: %Uint32ToInt32.type = import_ref Main//int_ops, inst+163, loaded [template = constants.%Uint32ToInt32]
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: %AddU32.type = import_ref Main//int_ops, inst+95, loaded [template = constants.%AddU32]
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7: %Uint32ToInt32.type = import_ref Main//int_ops, inst+159, loaded [template = constants.%Uint32ToInt32]
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -2146,27 +2146,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+144, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+222, loaded [template = constants.%Int32ToInt16]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+218, loaded [template = constants.%Int32ToInt16]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -2251,27 +2251,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+144, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11: %Int32ToUint16.type = import_ref Main//int_ops, inst+242, loaded [template = constants.%Int32ToUint16]
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11: %Int32ToUint16.type = import_ref Main//int_ops, inst+238, loaded [template = constants.%Int32ToUint16]
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .UInt = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -2360,27 +2360,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+144, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: %Uint32ToInt16.type = import_ref Main//int_ops, inst+261, loaded [template = constants.%Uint32ToInt16]
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: %Uint32ToInt16.type = import_ref Main//int_ops, inst+257, loaded [template = constants.%Uint32ToInt16]
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -2475,27 +2475,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+144, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13: %Uint32ToUint16.type = import_ref Main//int_ops, inst+280, loaded [template = constants.%Uint32ToUint16]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13: %Uint32ToUint16.type = import_ref Main//int_ops, inst+276, loaded [template = constants.%Uint32ToUint16]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .UInt = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -2593,27 +2593,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+60, loaded [template = constants.%SubI32]
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+144, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11: %Int32ToUint16.type = import_ref Main//int_ops, inst+242, loaded [template = constants.%Int32ToUint16]
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+58, loaded [template = constants.%SubI32]
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11: %Int32ToUint16.type = import_ref Main//int_ops, inst+238, loaded [template = constants.%Int32ToUint16]
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .UInt = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -2717,27 +2717,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+60, loaded [template = constants.%SubI32]
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+144, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+58, loaded [template = constants.%SubI32]
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .UInt = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -2842,27 +2842,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+60, loaded [template = constants.%SubI32]
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+144, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17: %Int32ToUint64.type = import_ref Main//int_ops, inst+359, loaded [template = constants.%Int32ToUint64]
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+58, loaded [template = constants.%SubI32]
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17: %Int32ToUint64.type = import_ref Main//int_ops, inst+355, loaded [template = constants.%Int32ToUint64]
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .UInt = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -2963,27 +2963,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+33, loaded [template = constants.%NegateI32]
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+125, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+144, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+222, loaded [template = constants.%Int32ToInt16]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+339, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+31, loaded [template = constants.%NegateI32]
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+218, loaded [template = constants.%Int32ToInt16]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
@@ -3079,27 +3079,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+99, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+106, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5: %Int32ToInt32.type = import_ref Main//int_ops, inst+125, loaded [template = constants.%Int32ToInt32]
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+144, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+163, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+201, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+222, loaded [template = constants.%Int32ToInt16]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+261, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+280, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+299, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+318, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16: %Int32ToInt64.type = import_ref Main//int_ops, inst+339, loaded [template = constants.%Int32ToInt64]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+359, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+378, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+397, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+416, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+435, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5: %Int32ToInt32.type = import_ref Main//int_ops, inst+121, loaded [template = constants.%Int32ToInt32]
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+218, loaded [template = constants.%Int32ToInt16]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16: %Int32ToInt64.type = import_ref Main//int_ops, inst+335, loaded [template = constants.%Int32ToInt64]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.22
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.23
|
||||
|
||||
@@ -323,9 +323,9 @@ var m: Int(1000000000);
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//types, inst+7, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: %Int.type = import_ref Main//types, inst+23, loaded [template = constants.%Int]
|
||||
// CHECK:STDOUT: %import_ref.3: %F.type = import_ref Main//use_types, inst+37, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %import_ref.4: %G.type = import_ref Main//use_types, inst+62, loaded [template = constants.%G]
|
||||
// CHECK:STDOUT: %import_ref.5: %Symbolic.type = import_ref Main//use_types, inst+102, loaded [template = constants.%Symbolic]
|
||||
// CHECK:STDOUT: %import_ref.3: %F.type = import_ref Main//use_types, inst+35, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %import_ref.4: %G.type = import_ref Main//use_types, inst+60, loaded [template = constants.%G]
|
||||
// CHECK:STDOUT: %import_ref.5: %Symbolic.type = import_ref Main//use_types, inst+100, loaded [template = constants.%Symbolic]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ fn Main() {
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.38: %Print.type.2 = import_ref Core//prelude, inst+57, loaded [template = constants.%Print.2]
|
||||
// CHECK:STDOUT: %import_ref.38: %Print.type.2 = import_ref Core//prelude, inst+55, loaded [template = constants.%Print.2]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -267,20 +267,20 @@ fn H() {
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//extend_generic_base, inst+9, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//extend_generic_base, inst+26, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: type = import_ref Main//extend_generic_base, inst+50, loaded [template = constants.%Derived]
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//extend_generic_base, inst+80, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: type = import_ref Main//extend_generic_base, inst+48, loaded [template = constants.%Derived]
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//extend_generic_base, inst+78, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.12
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//extend_generic_base, inst+27, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %.17 = import_ref Main//extend_generic_base, inst+46, loaded [template = %.1]
|
||||
// CHECK:STDOUT: %import_ref.6: %.17 = import_ref Main//extend_generic_base, inst+44, loaded [template = %.1]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//extend_generic_base, inst+15, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: @Base.%.1 (%.9) = import_ref Main//extend_generic_base, inst+18, loaded [template = %.2]
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//extend_generic_base, inst+51, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//extend_generic_base, inst+63, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11: type = import_ref Main//extend_generic_base, inst+54, loaded [template = constants.%Base.3]
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//extend_generic_base, inst+49, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//extend_generic_base, inst+61, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11: type = import_ref Main//extend_generic_base, inst+52, loaded [template = constants.%Base.3]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+101
-101
@@ -365,41 +365,41 @@ class Class(U:! type) {
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//foo, inst+77, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5: @ImplicitAs.%.1 (%.2) = import_ref Main//foo, inst+78, loaded [symbolic = @ImplicitAs.%.2 (constants.%.34)]
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//foo, inst+79, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7: type = import_ref Main//foo, inst+124, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Main//foo, inst+125, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.9: <witness> = import_ref Main//foo, inst+126, loaded [symbolic = @impl.1.%.1 (constants.%.4)]
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//foo, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11: type = import_ref Main//foo, inst+154, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Main//foo, inst+155, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//foo, inst+156, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14: type = import_ref Main//foo, inst+183, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Main//foo, inst+184, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//foo, inst+185, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18: type = import_ref Main//foo, inst+215, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Main//foo, inst+216, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//foo, inst+217, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//foo, inst+247, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Main//foo, inst+248, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Main//foo, inst+249, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24: type = import_ref Main//foo, inst+255, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Main//foo, inst+256, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.26 = import_ref Main//foo, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Main//foo, inst+273, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28: type = import_ref Main//foo, inst+312, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Main//foo, inst+313, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.30 = import_ref Main//foo, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.31: type = import_ref Main//foo, inst+341, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Main//foo, inst+342, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.33 = import_ref Main//foo, inst+343, unloaded
|
||||
// CHECK:STDOUT: %import_ref.35: type = import_ref Main//foo, inst+373, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Main//foo, inst+374, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.37 = import_ref Main//foo, inst+375, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//foo, inst+73, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5: @ImplicitAs.%.1 (%.2) = import_ref Main//foo, inst+74, loaded [symbolic = @ImplicitAs.%.2 (constants.%.34)]
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//foo, inst+75, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7: type = import_ref Main//foo, inst+116, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Main//foo, inst+117, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.9: <witness> = import_ref Main//foo, inst+118, loaded [symbolic = @impl.1.%.1 (constants.%.4)]
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//foo, inst+89, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11: type = import_ref Main//foo, inst+142, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Main//foo, inst+143, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//foo, inst+144, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14: type = import_ref Main//foo, inst+167, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Main//foo, inst+168, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//foo, inst+169, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18: type = import_ref Main//foo, inst+195, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Main//foo, inst+196, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//foo, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//foo, inst+223, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Main//foo, inst+224, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Main//foo, inst+225, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24: type = import_ref Main//foo, inst+229, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Main//foo, inst+230, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.26 = import_ref Main//foo, inst+231, unloaded
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Main//foo, inst+245, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28: type = import_ref Main//foo, inst+280, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Main//foo, inst+281, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.30 = import_ref Main//foo, inst+282, unloaded
|
||||
// CHECK:STDOUT: %import_ref.31: type = import_ref Main//foo, inst+305, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Main//foo, inst+306, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.33 = import_ref Main//foo, inst+307, unloaded
|
||||
// CHECK:STDOUT: %import_ref.35: type = import_ref Main//foo, inst+333, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Main//foo, inst+334, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.37 = import_ref Main//foo, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Main//foo, inst+25, unloaded
|
||||
// CHECK:STDOUT: %import_ref.39 = import_ref Main//foo, inst+44, unloaded
|
||||
// CHECK:STDOUT: %import_ref.40 = import_ref Main//foo, inst+53, unloaded
|
||||
// CHECK:STDOUT: %import_ref.39 = import_ref Main//foo, inst+42, unloaded
|
||||
// CHECK:STDOUT: %import_ref.40 = import_ref Main//foo, inst+51, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1113,15 +1113,15 @@ class Class(U:! type) {
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//foo, inst+9, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: %CompleteClass.type = import_ref Main//foo, inst+20, loaded [template = constants.%CompleteClass.1]
|
||||
// CHECK:STDOUT: %import_ref.3: %F.type.3 = import_ref Main//foo, inst+419, loaded [template = constants.%F.3]
|
||||
// CHECK:STDOUT: %import_ref.3: %F.type.3 = import_ref Main//foo, inst+377, loaded [template = constants.%F.3]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.4
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//foo, inst+25, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: @CompleteClass.%.1 (%.4) = import_ref Main//foo, inst+44, loaded [template = %.1]
|
||||
// CHECK:STDOUT: %import_ref.7: @CompleteClass.%F.type (%F.type.1) = import_ref Main//foo, inst+53, loaded [symbolic = @CompleteClass.%F (constants.%F.1)]
|
||||
// CHECK:STDOUT: %import_ref.6: @CompleteClass.%.1 (%.4) = import_ref Main//foo, inst+42, loaded [template = %.1]
|
||||
// CHECK:STDOUT: %import_ref.7: @CompleteClass.%F.type (%F.type.1) = import_ref Main//foo, inst+51, loaded [symbolic = @CompleteClass.%F (constants.%F.1)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1345,7 +1345,7 @@ class Class(U:! type) {
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//foo, inst+9, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: %CompleteClass.type = import_ref Main//foo, inst+20, loaded [template = constants.%CompleteClass.1]
|
||||
// CHECK:STDOUT: %import_ref.3: %F.type.3 = import_ref Main//foo, inst+419, loaded [template = constants.%F.3]
|
||||
// CHECK:STDOUT: %import_ref.3: %F.type.3 = import_ref Main//foo, inst+377, loaded [template = constants.%F.3]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.7
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.8
|
||||
@@ -1353,36 +1353,36 @@ class Class(U:! type) {
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//foo, inst+25, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//foo, inst+44, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//foo, inst+53, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14: type = import_ref Main//foo, inst+124, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Main//foo, inst+125, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//foo, inst+126, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17: type = import_ref Main//foo, inst+154, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.18: type = import_ref Main//foo, inst+155, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.5)]
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//foo, inst+156, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Main//foo, inst+183, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.21: type = import_ref Main//foo, inst+184, loaded [template = constants.%ImplicitAs.type.6]
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Main//foo, inst+185, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24: type = import_ref Main//foo, inst+215, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Main//foo, inst+216, loaded [template = constants.%ImplicitAs.type.6]
|
||||
// CHECK:STDOUT: %import_ref.26 = import_ref Main//foo, inst+217, unloaded
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Main//foo, inst+247, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Main//foo, inst+248, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29 = import_ref Main//foo, inst+249, unloaded
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Main//foo, inst+255, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.31: type = import_ref Main//foo, inst+256, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.32 = import_ref Main//foo, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.33 = import_ref Main//foo, inst+273, unloaded
|
||||
// CHECK:STDOUT: %import_ref.34: type = import_ref Main//foo, inst+312, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.35: type = import_ref Main//foo, inst+313, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.36 = import_ref Main//foo, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Main//foo, inst+341, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.38: type = import_ref Main//foo, inst+342, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.39 = import_ref Main//foo, inst+343, unloaded
|
||||
// CHECK:STDOUT: %import_ref.41: type = import_ref Main//foo, inst+373, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.42: type = import_ref Main//foo, inst+374, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.43 = import_ref Main//foo, inst+375, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//foo, inst+42, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//foo, inst+51, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14: type = import_ref Main//foo, inst+116, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Main//foo, inst+117, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//foo, inst+118, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17: type = import_ref Main//foo, inst+142, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.18: type = import_ref Main//foo, inst+143, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.5)]
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//foo, inst+144, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Main//foo, inst+167, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.21: type = import_ref Main//foo, inst+168, loaded [template = constants.%ImplicitAs.type.6]
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Main//foo, inst+169, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24: type = import_ref Main//foo, inst+195, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Main//foo, inst+196, loaded [template = constants.%ImplicitAs.type.6]
|
||||
// CHECK:STDOUT: %import_ref.26 = import_ref Main//foo, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Main//foo, inst+223, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Main//foo, inst+224, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29 = import_ref Main//foo, inst+225, unloaded
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Main//foo, inst+229, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.31: type = import_ref Main//foo, inst+230, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.32 = import_ref Main//foo, inst+231, unloaded
|
||||
// CHECK:STDOUT: %import_ref.33 = import_ref Main//foo, inst+245, unloaded
|
||||
// CHECK:STDOUT: %import_ref.34: type = import_ref Main//foo, inst+280, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.35: type = import_ref Main//foo, inst+281, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.36 = import_ref Main//foo, inst+282, unloaded
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Main//foo, inst+305, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.38: type = import_ref Main//foo, inst+306, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.39 = import_ref Main//foo, inst+307, unloaded
|
||||
// CHECK:STDOUT: %import_ref.41: type = import_ref Main//foo, inst+333, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.42: type = import_ref Main//foo, inst+334, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.43 = import_ref Main//foo, inst+335, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1994,43 +1994,43 @@ class Class(U:! type) {
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: %Class.type = import_ref Main//foo, inst+9, loaded [template = constants.%Class.1]
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//foo, inst+20, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//foo, inst+419, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//foo, inst+377, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//foo, inst+77, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//foo, inst+78, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//foo, inst+79, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7: type = import_ref Main//foo, inst+124, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Main//foo, inst+125, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//foo, inst+126, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//foo, inst+95, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11: type = import_ref Main//foo, inst+154, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Main//foo, inst+155, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//foo, inst+156, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14: type = import_ref Main//foo, inst+183, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Main//foo, inst+184, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//foo, inst+185, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18: type = import_ref Main//foo, inst+215, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Main//foo, inst+216, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//foo, inst+217, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//foo, inst+247, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Main//foo, inst+248, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Main//foo, inst+249, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24: type = import_ref Main//foo, inst+255, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Main//foo, inst+256, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.26 = import_ref Main//foo, inst+257, unloaded
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Main//foo, inst+273, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28: type = import_ref Main//foo, inst+312, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Main//foo, inst+313, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.30 = import_ref Main//foo, inst+314, unloaded
|
||||
// CHECK:STDOUT: %import_ref.31: type = import_ref Main//foo, inst+341, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Main//foo, inst+342, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.33 = import_ref Main//foo, inst+343, unloaded
|
||||
// CHECK:STDOUT: %import_ref.35: type = import_ref Main//foo, inst+373, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Main//foo, inst+374, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.37 = import_ref Main//foo, inst+375, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//foo, inst+73, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//foo, inst+74, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//foo, inst+75, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7: type = import_ref Main//foo, inst+116, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Main//foo, inst+117, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//foo, inst+118, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Main//foo, inst+89, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11: type = import_ref Main//foo, inst+142, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Main//foo, inst+143, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.13 = import_ref Main//foo, inst+144, unloaded
|
||||
// CHECK:STDOUT: %import_ref.14: type = import_ref Main//foo, inst+167, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Main//foo, inst+168, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.16 = import_ref Main//foo, inst+169, unloaded
|
||||
// CHECK:STDOUT: %import_ref.18: type = import_ref Main//foo, inst+195, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Main//foo, inst+196, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//foo, inst+197, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//foo, inst+223, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Main//foo, inst+224, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Main//foo, inst+225, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24: type = import_ref Main//foo, inst+229, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Main//foo, inst+230, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.26 = import_ref Main//foo, inst+231, unloaded
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Main//foo, inst+245, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28: type = import_ref Main//foo, inst+280, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Main//foo, inst+281, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.30 = import_ref Main//foo, inst+282, unloaded
|
||||
// CHECK:STDOUT: %import_ref.31: type = import_ref Main//foo, inst+305, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Main//foo, inst+306, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.33 = import_ref Main//foo, inst+307, unloaded
|
||||
// CHECK:STDOUT: %import_ref.35: type = import_ref Main//foo, inst+333, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Main//foo, inst+334, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.37 = import_ref Main//foo, inst+335, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+10
-10
@@ -190,8 +190,8 @@ fn Run() {
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: type = import_ref Main//a, inst+3, loaded [template = constants.%Empty]
|
||||
// CHECK:STDOUT: %import_ref.2: type = import_ref Main//a, inst+8, loaded [template = constants.%Field]
|
||||
// CHECK:STDOUT: %import_ref.3: type = import_ref Main//a, inst+33, loaded [template = constants.%ForwardDeclared.1]
|
||||
// CHECK:STDOUT: %import_ref.4: type = import_ref Main//a, inst+56, loaded [template = constants.%Incomplete]
|
||||
// CHECK:STDOUT: %import_ref.3: type = import_ref Main//a, inst+31, loaded [template = constants.%ForwardDeclared.1]
|
||||
// CHECK:STDOUT: %import_ref.4: type = import_ref Main//a, inst+54, loaded [template = constants.%Incomplete]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.8
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
@@ -199,13 +199,13 @@ fn Run() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//a, inst+4, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Main//a, inst+9, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7: %.37 = import_ref Main//a, inst+29, loaded [template = %.1]
|
||||
// CHECK:STDOUT: %import_ref.44 = import_ref Main//a, inst+34, unloaded
|
||||
// CHECK:STDOUT: %import_ref.45: %F.type = import_ref Main//a, inst+41, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %import_ref.46: %G.type = import_ref Main//a, inst+52, loaded [template = constants.%G]
|
||||
// CHECK:STDOUT: %import_ref.47 = import_ref Main//a, inst+34, unloaded
|
||||
// CHECK:STDOUT: %import_ref.48 = import_ref Main//a, inst+41, unloaded
|
||||
// CHECK:STDOUT: %import_ref.49 = import_ref Main//a, inst+52, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7: %.37 = import_ref Main//a, inst+27, loaded [template = %.1]
|
||||
// CHECK:STDOUT: %import_ref.44 = import_ref Main//a, inst+32, unloaded
|
||||
// CHECK:STDOUT: %import_ref.45: %F.type = import_ref Main//a, inst+39, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %import_ref.46: %G.type = import_ref Main//a, inst+50, loaded [template = constants.%G]
|
||||
// CHECK:STDOUT: %import_ref.47 = import_ref Main//a, inst+32, unloaded
|
||||
// CHECK:STDOUT: %import_ref.48 = import_ref Main//a, inst+39, unloaded
|
||||
// CHECK:STDOUT: %import_ref.49 = import_ref Main//a, inst+50, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -316,5 +316,5 @@ fn Run() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F[%self.param_patt: %ForwardDeclared.1]();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @G[addr <unexpected>.inst+443: %.42]();
|
||||
// CHECK:STDOUT: fn @G[addr <unexpected>.inst+399: %.42]();
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+6
-6
@@ -165,7 +165,7 @@ fn Run() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//a, inst+3, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: type = import_ref Main//a, inst+49, loaded [template = constants.%Child]
|
||||
// CHECK:STDOUT: %import_ref.2: type = import_ref Main//a, inst+47, loaded [template = constants.%Child]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.11
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
@@ -174,11 +174,11 @@ fn Run() {
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//a, inst+4, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Main//a, inst+10, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Main//a, inst+19, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %.44 = import_ref Main//a, inst+40, loaded [template = %.1]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//a, inst+45, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//a, inst+50, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//a, inst+54, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: type = import_ref Main//a, inst+51, loaded [template = constants.%Base]
|
||||
// CHECK:STDOUT: %import_ref.6: %.44 = import_ref Main//a, inst+38, loaded [template = %.1]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//a, inst+43, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//a, inst+48, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Main//a, inst+52, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: type = import_ref Main//a, inst+49, loaded [template = constants.%Base]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+3
-3
@@ -109,9 +109,9 @@ var a_ptr: const i32* = a_ptr_ref;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Implicit//default, inst+27, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: ref %.2 = import_ref Implicit//default, inst+36, loaded
|
||||
// CHECK:STDOUT: %import_ref.3: ref %.3 = import_ref Implicit//default, inst+48, loaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Implicit//default, inst+25, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: ref %.2 = import_ref Implicit//default, inst+34, loaded
|
||||
// CHECK:STDOUT: %import_ref.3: ref %.3 = import_ref Implicit//default, inst+46, loaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.4
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
|
||||
+25
-25
@@ -487,14 +487,14 @@ import library "extern_api";
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: %A.type = import_ref Main//api, inst+3, loaded [template = constants.%A]
|
||||
// CHECK:STDOUT: %import_ref.2: %B.type = import_ref Main//api, inst+36, loaded [template = constants.%B]
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Main//api, inst+61, loaded [template = constants.%C]
|
||||
// CHECK:STDOUT: %import_ref.4: %D.type = import_ref Main//api, inst+64, loaded [template = constants.%D]
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//api, inst+67, loaded
|
||||
// CHECK:STDOUT: %import_ref.2: %B.type = import_ref Main//api, inst+34, loaded [template = constants.%B]
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Main//api, inst+59, loaded [template = constants.%C]
|
||||
// CHECK:STDOUT: %import_ref.4: %D.type = import_ref Main//api, inst+62, loaded [template = constants.%D]
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//api, inst+65, loaded
|
||||
// CHECK:STDOUT: %NS: <namespace> = namespace %import_ref.5, [template] {
|
||||
// CHECK:STDOUT: .E = %import_ref.6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.6: %E.type = import_ref Main//api, inst+68, loaded [template = constants.%E]
|
||||
// CHECK:STDOUT: %import_ref.6: %E.type = import_ref Main//api, inst+66, loaded [template = constants.%E]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.7
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.8
|
||||
@@ -628,7 +628,7 @@ import library "extern_api";
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//api, inst+67, loaded
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//api, inst+65, loaded
|
||||
// CHECK:STDOUT: %NS: <namespace> = namespace %import_ref.5, [template] {
|
||||
// CHECK:STDOUT: .E = file.%E.decl
|
||||
// CHECK:STDOUT: }
|
||||
@@ -799,7 +799,7 @@ import library "extern_api";
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//extern_api, inst+67, loaded
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//extern_api, inst+65, loaded
|
||||
// CHECK:STDOUT: %NS: <namespace> = namespace %import_ref.5, [template] {
|
||||
// CHECK:STDOUT: .E = file.%E.decl
|
||||
// CHECK:STDOUT: }
|
||||
@@ -970,14 +970,14 @@ import library "extern_api";
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: %A.type = import_ref Main//api, inst+3, loaded [template = constants.%A]
|
||||
// CHECK:STDOUT: %import_ref.2: %B.type = import_ref Main//api, inst+36, loaded [template = constants.%B]
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Main//api, inst+61, loaded [template = constants.%C]
|
||||
// CHECK:STDOUT: %import_ref.4: %D.type = import_ref Main//api, inst+64, loaded [template = constants.%D]
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//api, inst+67, loaded
|
||||
// CHECK:STDOUT: %import_ref.2: %B.type = import_ref Main//api, inst+34, loaded [template = constants.%B]
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Main//api, inst+59, loaded [template = constants.%C]
|
||||
// CHECK:STDOUT: %import_ref.4: %D.type = import_ref Main//api, inst+62, loaded [template = constants.%D]
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//api, inst+65, loaded
|
||||
// CHECK:STDOUT: %NS: <namespace> = namespace %import_ref.5, [template] {
|
||||
// CHECK:STDOUT: .E = %import_ref.6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.6: %E.type = import_ref Main//api, inst+68, loaded [template = constants.%E]
|
||||
// CHECK:STDOUT: %import_ref.6: %E.type = import_ref Main//api, inst+66, loaded [template = constants.%E]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.12
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.13
|
||||
@@ -1111,14 +1111,14 @@ import library "extern_api";
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: %A.type = import_ref Main//extern_api, inst+3, loaded [template = constants.%A]
|
||||
// CHECK:STDOUT: %import_ref.2: %B.type = import_ref Main//extern_api, inst+36, loaded [template = constants.%B]
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Main//extern_api, inst+61, loaded [template = constants.%C]
|
||||
// CHECK:STDOUT: %import_ref.4: %D.type = import_ref Main//extern_api, inst+64, loaded [template = constants.%D]
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//extern_api, inst+67, loaded
|
||||
// CHECK:STDOUT: %import_ref.2: %B.type = import_ref Main//extern_api, inst+34, loaded [template = constants.%B]
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Main//extern_api, inst+59, loaded [template = constants.%C]
|
||||
// CHECK:STDOUT: %import_ref.4: %D.type = import_ref Main//extern_api, inst+62, loaded [template = constants.%D]
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//extern_api, inst+65, loaded
|
||||
// CHECK:STDOUT: %NS: <namespace> = namespace %import_ref.5, [template] {
|
||||
// CHECK:STDOUT: .E = %import_ref.6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.6: %E.type = import_ref Main//extern_api, inst+68, loaded [template = constants.%E]
|
||||
// CHECK:STDOUT: %import_ref.6: %E.type = import_ref Main//extern_api, inst+66, loaded [template = constants.%E]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.12
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.13
|
||||
@@ -1222,10 +1222,10 @@ import library "extern_api";
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//api, inst+3, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//api, inst+36, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//api, inst+61, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//api, inst+64, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//api, inst+67, loaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//api, inst+34, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//api, inst+59, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//api, inst+62, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//api, inst+65, loaded
|
||||
// CHECK:STDOUT: %NS: <namespace> = namespace %import_ref.5, [template] {
|
||||
// CHECK:STDOUT: .E = %import_ref.6
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1252,10 +1252,10 @@ import library "extern_api";
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//extern_api, inst+3, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//extern_api, inst+36, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//extern_api, inst+61, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//extern_api, inst+64, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//extern_api, inst+67, loaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//extern_api, inst+34, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//extern_api, inst+59, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//extern_api, inst+62, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5: <namespace> = import_ref Main//extern_api, inst+65, loaded
|
||||
// CHECK:STDOUT: %NS: <namespace> = namespace %import_ref.5, [template] {
|
||||
// CHECK:STDOUT: .E = %import_ref.6
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -271,9 +271,9 @@ fn D() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: %A.type = import_ref Main//fns, inst+3, loaded [template = constants.%A]
|
||||
// CHECK:STDOUT: %import_ref.2: %B.type = import_ref Main//fns, inst+37, loaded [template = constants.%B]
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Main//fns, inst+64, loaded [template = constants.%C]
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//fns, inst+75, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: %B.type = import_ref Main//fns, inst+35, loaded [template = constants.%B]
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Main//fns, inst+62, loaded [template = constants.%C]
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//fns, inst+73, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.5
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.6
|
||||
@@ -365,8 +365,8 @@ fn D() {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//fns, inst+64, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//fns, inst+75, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//fns, inst+62, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//fns, inst+73, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.5
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
@@ -447,8 +447,8 @@ fn D() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Main//fns, inst+3, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//fns, inst+37, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//fns, inst+64, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//fns, inst+35, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//fns, inst+62, unloaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
|
||||
@@ -61,7 +61,7 @@ class C {
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [template] {
|
||||
// CHECK:STDOUT: .Core = imports.%Core
|
||||
// CHECK:STDOUT: .x = <unexpected>.inst+21.loc23_5
|
||||
// CHECK:STDOUT: .x = <unexpected>.inst+19.loc23_5
|
||||
// CHECK:STDOUT: .C = %C.decl
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
@@ -78,7 +78,7 @@ class C {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = constants.%C
|
||||
// CHECK:STDOUT: .n = <unexpected>.inst+413.loc37_8
|
||||
// CHECK:STDOUT: .n = <unexpected>.inst+369.loc37_8
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @__global_init() {
|
||||
|
||||
+1
-1
@@ -72,6 +72,6 @@ impl i32 as I {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @impl: %.loc13_6.3 as %I.ref.loc13 {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = <unexpected>.inst+27.loc13_15
|
||||
// CHECK:STDOUT: witness = <unexpected>.inst+25.loc13_15
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -152,7 +152,7 @@ import PackageGenericInterface;
|
||||
fn M() {
|
||||
var obj: PackageHasParam.AnyParam(
|
||||
PackageGenericInterface.GenericInterface) = {};
|
||||
// CHECK:STDERR: fail_todo_use_generic_interface_as_param.carbon:[[@LINE+4]]:3: error: cannot access member of interface `Y` in type `AnyParam(<cannot stringify inst+41 kind StructValue>)` that does not implement that interface [MissingImplInMemberAccess]
|
||||
// CHECK:STDERR: fail_todo_use_generic_interface_as_param.carbon:[[@LINE+4]]:3: error: cannot access member of interface `Y` in type `AnyParam(<cannot stringify inst+37 kind StructValue>)` that does not implement that interface [MissingImplInMemberAccess]
|
||||
// CHECK:STDERR: obj.(PackageHasParam.Y.K)();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
|
||||
+2
-2
@@ -58,8 +58,8 @@ var or_: F(true or true);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: %.loc42_17: bool = block_arg <unexpected instblockref block25> [template = constants.%.3]
|
||||
// CHECK:STDOUT: %F.call: init type = call <unexpected>.inst+80.loc42_10(%.loc42_17)
|
||||
// CHECK:STDOUT: %.loc42_17: bool = block_arg <unexpected instblockref block23> [template = constants.%.3]
|
||||
// CHECK:STDOUT: %F.call: init type = call <unexpected>.inst+76.loc42_10(%.loc42_17)
|
||||
// CHECK:STDOUT: %.loc42_24.1: type = value_of_initializer %F.call
|
||||
// CHECK:STDOUT: %.loc42_24.2: type = converted %F.call, %.loc42_24.1
|
||||
// CHECK:STDOUT: %or_.var: ref <error> = var or_
|
||||
|
||||
@@ -146,44 +146,44 @@ var b: i32 = a;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: ref %i32 = import_ref Main//lib, inst+22, loaded
|
||||
// CHECK:STDOUT: %import_ref.1: ref %i32 = import_ref Main//lib, inst+20, loaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.36
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//lib, inst+37, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//lib, inst+38, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//lib, inst+39, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5: type = import_ref Main//lib, inst+84, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.6: type = import_ref Main//lib, inst+85, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//lib, inst+86, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//lib, inst+55, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Main//lib, inst+114, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.10: type = import_ref Main//lib, inst+115, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//lib, inst+116, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Main//lib, inst+143, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Main//lib, inst+144, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//lib, inst+145, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Main//lib, inst+175, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.17: type = import_ref Main//lib, inst+176, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//lib, inst+177, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//lib, inst+207, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//lib, inst+208, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//lib, inst+209, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22: type = import_ref Main//lib, inst+215, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.23: type = import_ref Main//lib, inst+216, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Main//lib, inst+217, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25 = import_ref Main//lib, inst+233, unloaded
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Main//lib, inst+272, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.27: type = import_ref Main//lib, inst+273, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Main//lib, inst+274, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Main//lib, inst+301, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Main//lib, inst+302, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Main//lib, inst+303, unloaded
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Main//lib, inst+333, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.34: type = import_ref Main//lib, inst+334, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.35 = import_ref Main//lib, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Main//lib, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Main//lib, inst+34, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Main//lib, inst+35, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5: type = import_ref Main//lib, inst+76, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.6: type = import_ref Main//lib, inst+77, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Main//lib, inst+78, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Main//lib, inst+49, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Main//lib, inst+102, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.10: type = import_ref Main//lib, inst+103, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Main//lib, inst+104, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Main//lib, inst+127, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Main//lib, inst+128, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Main//lib, inst+129, unloaded
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Main//lib, inst+155, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.17: type = import_ref Main//lib, inst+156, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.18 = import_ref Main//lib, inst+157, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Main//lib, inst+183, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Main//lib, inst+184, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Main//lib, inst+185, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22: type = import_ref Main//lib, inst+189, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.23: type = import_ref Main//lib, inst+190, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Main//lib, inst+191, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25 = import_ref Main//lib, inst+205, unloaded
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Main//lib, inst+240, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.27: type = import_ref Main//lib, inst+241, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Main//lib, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Main//lib, inst+265, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Main//lib, inst+266, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Main//lib, inst+267, unloaded
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Main//lib, inst+293, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.34: type = import_ref Main//lib, inst+294, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.35 = import_ref Main//lib, inst+295, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+34
-34
@@ -158,45 +158,45 @@ var a: i32* = a_ref;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Implicit//default, inst+22, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: ref %.22 = import_ref Implicit//default, inst+374, loaded
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Implicit//default, inst+20, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: ref %.22 = import_ref Implicit//default, inst+332, loaded
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.37
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Implicit//default, inst+37, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Implicit//default, inst+38, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+39, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: type = import_ref Implicit//default, inst+84, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.7: type = import_ref Implicit//default, inst+85, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Implicit//default, inst+86, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Implicit//default, inst+55, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: type = import_ref Implicit//default, inst+114, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.11: type = import_ref Implicit//default, inst+115, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Implicit//default, inst+116, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+143, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.14: type = import_ref Implicit//default, inst+144, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Implicit//default, inst+145, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17: type = import_ref Implicit//default, inst+175, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.18: type = import_ref Implicit//default, inst+176, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Implicit//default, inst+177, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Implicit//default, inst+207, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+208, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+209, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23: type = import_ref Implicit//default, inst+215, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.24: type = import_ref Implicit//default, inst+216, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.25 = import_ref Implicit//default, inst+217, unloaded
|
||||
// CHECK:STDOUT: %import_ref.26 = import_ref Implicit//default, inst+233, unloaded
|
||||
// CHECK:STDOUT: %import_ref.27: type = import_ref Implicit//default, inst+272, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.28: type = import_ref Implicit//default, inst+273, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.29 = import_ref Implicit//default, inst+274, unloaded
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+301, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.31: type = import_ref Implicit//default, inst+302, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.32 = import_ref Implicit//default, inst+303, unloaded
|
||||
// CHECK:STDOUT: %import_ref.34: type = import_ref Implicit//default, inst+333, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.35: type = import_ref Implicit//default, inst+334, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.36 = import_ref Implicit//default, inst+335, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref Implicit//default, inst+33, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Implicit//default, inst+34, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+35, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: type = import_ref Implicit//default, inst+76, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.7: type = import_ref Implicit//default, inst+77, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.8 = import_ref Implicit//default, inst+78, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Implicit//default, inst+49, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: type = import_ref Implicit//default, inst+102, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.11: type = import_ref Implicit//default, inst+103, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.12 = import_ref Implicit//default, inst+104, unloaded
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+127, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.14: type = import_ref Implicit//default, inst+128, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.15 = import_ref Implicit//default, inst+129, unloaded
|
||||
// CHECK:STDOUT: %import_ref.17: type = import_ref Implicit//default, inst+155, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.18: type = import_ref Implicit//default, inst+156, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.19 = import_ref Implicit//default, inst+157, unloaded
|
||||
// CHECK:STDOUT: %import_ref.20 = import_ref Implicit//default, inst+183, unloaded
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+184, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+185, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23: type = import_ref Implicit//default, inst+189, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.24: type = import_ref Implicit//default, inst+190, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.25 = import_ref Implicit//default, inst+191, unloaded
|
||||
// CHECK:STDOUT: %import_ref.26 = import_ref Implicit//default, inst+205, unloaded
|
||||
// CHECK:STDOUT: %import_ref.27: type = import_ref Implicit//default, inst+240, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.28: type = import_ref Implicit//default, inst+241, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.29 = import_ref Implicit//default, inst+242, unloaded
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+265, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.31: type = import_ref Implicit//default, inst+266, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.32 = import_ref Implicit//default, inst+267, unloaded
|
||||
// CHECK:STDOUT: %import_ref.34: type = import_ref Implicit//default, inst+293, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.35: type = import_ref Implicit//default, inst+294, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.36 = import_ref Implicit//default, inst+295, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+31
-31
@@ -1146,12 +1146,12 @@ fn F0(n: i32) -> P.D {
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.8
|
||||
// CHECK:STDOUT: import Core//default
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.2: type = import_ref P//library, inst+36, loaded [template = constants.%D]
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref P//library, inst+37, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref P//library, inst+43, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref P//library, inst+48, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %C.type = import_ref P//library, inst+27, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref P//library, inst+32, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2: type = import_ref P//library, inst+34, loaded [template = constants.%D]
|
||||
// CHECK:STDOUT: %import_ref.3 = import_ref P//library, inst+35, unloaded
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref P//library, inst+41, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref P//library, inst+46, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: %C.type = import_ref P//library, inst+25, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref P//library, inst+30, unloaded
|
||||
// CHECK:STDOUT: %import_ref.9 = import_ref Core//default, inst+36, unloaded
|
||||
// CHECK:STDOUT: %import_ref.10: @ImplicitAs.%.1 (%.10) = import_ref Core//default, inst+60, loaded [symbolic = @ImplicitAs.%.2 (constants.%.15)]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Core//default, inst+52, unloaded
|
||||
@@ -1159,31 +1159,31 @@ fn F0(n: i32) -> P.D {
|
||||
// CHECK:STDOUT: %import_ref.14: type = import_ref Core//default, inst+71, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Core//default, inst+79, loaded [template = constants.%ImplicitAs.type.3]
|
||||
// CHECK:STDOUT: %import_ref.16: <witness> = import_ref Core//default, inst+103, loaded [template = constants.%.16]
|
||||
// CHECK:STDOUT: %import_ref.17: type = import_ref P//library, inst+156, loaded [template = constants.%C.3]
|
||||
// CHECK:STDOUT: %import_ref.18: type = import_ref P//library, inst+161, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.19: <witness> = import_ref P//library, inst+182, loaded [template = constants.%.29]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref P//library, inst+199, loaded [template = constants.%C.4]
|
||||
// CHECK:STDOUT: %import_ref.21: type = import_ref P//library, inst+204, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.22: <witness> = import_ref P//library, inst+220, loaded [template = constants.%.32]
|
||||
// CHECK:STDOUT: %import_ref.23: type = import_ref P//library, inst+236, loaded [template = constants.%C.5]
|
||||
// CHECK:STDOUT: %import_ref.24: type = import_ref P//library, inst+241, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.25: <witness> = import_ref P//library, inst+257, loaded [template = constants.%.35]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref P//library, inst+273, loaded [template = constants.%C.6]
|
||||
// CHECK:STDOUT: %import_ref.27: type = import_ref P//library, inst+278, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.28: <witness> = import_ref P//library, inst+294, loaded [template = constants.%.38]
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref P//library, inst+310, loaded [template = constants.%C.7]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref P//library, inst+315, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.31: <witness> = import_ref P//library, inst+331, loaded [template = constants.%.41]
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref P//library, inst+347, loaded [template = constants.%C.8]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref P//library, inst+352, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.34: <witness> = import_ref P//library, inst+368, loaded [template = constants.%.44]
|
||||
// CHECK:STDOUT: %import_ref.35: type = import_ref P//library, inst+384, loaded [template = constants.%C.9]
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref P//library, inst+389, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.37: <witness> = import_ref P//library, inst+405, loaded [template = constants.%.47]
|
||||
// CHECK:STDOUT: %import_ref.38: type = import_ref P//library, inst+421, loaded [template = constants.%C.10]
|
||||
// CHECK:STDOUT: %import_ref.39: type = import_ref P//library, inst+426, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.40: <witness> = import_ref P//library, inst+442, loaded [template = constants.%.50]
|
||||
// CHECK:STDOUT: %import_ref.41: %Make.type = import_ref P//library, inst+57, loaded [template = constants.%Make]
|
||||
// CHECK:STDOUT: %import_ref.17: type = import_ref P//library, inst+148, loaded [template = constants.%C.3]
|
||||
// CHECK:STDOUT: %import_ref.18: type = import_ref P//library, inst+153, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.19: <witness> = import_ref P//library, inst+174, loaded [template = constants.%.29]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref P//library, inst+191, loaded [template = constants.%C.4]
|
||||
// CHECK:STDOUT: %import_ref.21: type = import_ref P//library, inst+196, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.22: <witness> = import_ref P//library, inst+212, loaded [template = constants.%.32]
|
||||
// CHECK:STDOUT: %import_ref.23: type = import_ref P//library, inst+228, loaded [template = constants.%C.5]
|
||||
// CHECK:STDOUT: %import_ref.24: type = import_ref P//library, inst+233, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.25: <witness> = import_ref P//library, inst+249, loaded [template = constants.%.35]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref P//library, inst+265, loaded [template = constants.%C.6]
|
||||
// CHECK:STDOUT: %import_ref.27: type = import_ref P//library, inst+270, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.28: <witness> = import_ref P//library, inst+286, loaded [template = constants.%.38]
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref P//library, inst+302, loaded [template = constants.%C.7]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref P//library, inst+307, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.31: <witness> = import_ref P//library, inst+323, loaded [template = constants.%.41]
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref P//library, inst+339, loaded [template = constants.%C.8]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref P//library, inst+344, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.34: <witness> = import_ref P//library, inst+360, loaded [template = constants.%.44]
|
||||
// CHECK:STDOUT: %import_ref.35: type = import_ref P//library, inst+376, loaded [template = constants.%C.9]
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref P//library, inst+381, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.37: <witness> = import_ref P//library, inst+397, loaded [template = constants.%.47]
|
||||
// CHECK:STDOUT: %import_ref.38: type = import_ref P//library, inst+413, loaded [template = constants.%C.10]
|
||||
// CHECK:STDOUT: %import_ref.39: type = import_ref P//library, inst+418, loaded [template = constants.%ImplicitAs.type.4]
|
||||
// CHECK:STDOUT: %import_ref.40: <witness> = import_ref P//library, inst+434, loaded [template = constants.%.50]
|
||||
// CHECK:STDOUT: %import_ref.41: %Make.type = import_ref P//library, inst+55, loaded [template = constants.%Make]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+113
-113
@@ -43,10 +43,10 @@ var c_bad: C({.c = 1, .d = 2}) = F();
|
||||
// --- fail_bad_value.impl.carbon
|
||||
|
||||
impl package Implicit;
|
||||
// CHECK:STDERR: fail_bad_value.impl.carbon:[[@LINE+6]]:1: error: cannot implicitly convert from `C(<cannot stringify inst+400 kind StructValue>)` to `C(<cannot stringify inst+388 kind StructValue>)` [ImplicitAsConversionFailure]
|
||||
// CHECK:STDERR: fail_bad_value.impl.carbon:[[@LINE+6]]:1: error: cannot implicitly convert from `C(<cannot stringify inst+358 kind StructValue>)` to `C(<cannot stringify inst+346 kind StructValue>)` [ImplicitAsConversionFailure]
|
||||
// CHECK:STDERR: var c_bad: C({.a = 3, .b = 4}) = F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_bad_value.impl.carbon:[[@LINE+3]]:1: note: type `C(<cannot stringify inst+400 kind StructValue>)` does not implement interface `ImplicitAs(C(<cannot stringify inst+388 kind StructValue>))` [MissingImplInMemberAccessNote]
|
||||
// CHECK:STDERR: fail_bad_value.impl.carbon:[[@LINE+3]]:1: note: type `C(<cannot stringify inst+358 kind StructValue>)` does not implement interface `ImplicitAs(C(<cannot stringify inst+346 kind StructValue>))` [MissingImplInMemberAccessNote]
|
||||
// CHECK:STDERR: var c_bad: C({.a = 3, .b = 4}) = F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
var c_bad: C({.a = 3, .b = 4}) = F();
|
||||
@@ -369,49 +369,49 @@ var c_bad: C({.a = 3, .b = 4}) = F();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: ref %.22 = import_ref Implicit//default, inst+24, loaded
|
||||
// CHECK:STDOUT: %import_ref.2: ref %.24 = import_ref Implicit//default, inst+399, loaded
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Implicit//default, inst+458, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Implicit//default, inst+502, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %import_ref.1: ref %.22 = import_ref Implicit//default, inst+22, loaded
|
||||
// CHECK:STDOUT: %import_ref.2: ref %.24 = import_ref Implicit//default, inst+357, loaded
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Implicit//default, inst+416, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Implicit//default, inst+460, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.39
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.41
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+42, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: @ImplicitAs.%.1 (%.2) = import_ref Implicit//default, inst+43, loaded [symbolic = @ImplicitAs.%.2 (constants.%.37)]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Implicit//default, inst+44, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Implicit//default, inst+89, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Implicit//default, inst+90, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.10: <witness> = import_ref Implicit//default, inst+91, loaded [symbolic = @impl.1.%.1 (constants.%.4)]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Implicit//default, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Implicit//default, inst+119, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+120, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Implicit//default, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Implicit//default, inst+148, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Implicit//default, inst+149, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Implicit//default, inst+150, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Implicit//default, inst+180, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Implicit//default, inst+181, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+212, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Implicit//default, inst+213, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Implicit//default, inst+214, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Implicit//default, inst+220, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Implicit//default, inst+221, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Implicit//default, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Implicit//default, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Implicit//default, inst+277, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+278, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Implicit//default, inst+279, unloaded
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Implicit//default, inst+306, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Implicit//default, inst+307, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.34 = import_ref Implicit//default, inst+308, unloaded
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Implicit//default, inst+338, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Implicit//default, inst+339, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Implicit//default, inst+340, unloaded
|
||||
// CHECK:STDOUT: %import_ref.40 = import_ref Implicit//default, inst+463, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+38, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: @ImplicitAs.%.1 (%.2) = import_ref Implicit//default, inst+39, loaded [symbolic = @ImplicitAs.%.2 (constants.%.37)]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Implicit//default, inst+40, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Implicit//default, inst+81, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Implicit//default, inst+82, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.10: <witness> = import_ref Implicit//default, inst+83, loaded [symbolic = @impl.1.%.1 (constants.%.4)]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Implicit//default, inst+54, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Implicit//default, inst+107, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+108, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Implicit//default, inst+109, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Implicit//default, inst+132, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Implicit//default, inst+133, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Implicit//default, inst+134, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Implicit//default, inst+160, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Implicit//default, inst+161, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+162, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+188, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Implicit//default, inst+189, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Implicit//default, inst+190, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Implicit//default, inst+194, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Implicit//default, inst+195, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Implicit//default, inst+196, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Implicit//default, inst+210, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Implicit//default, inst+245, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+246, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Implicit//default, inst+247, unloaded
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Implicit//default, inst+270, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Implicit//default, inst+271, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.34 = import_ref Implicit//default, inst+272, unloaded
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Implicit//default, inst+298, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Implicit//default, inst+299, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Implicit//default, inst+300, unloaded
|
||||
// CHECK:STDOUT: %import_ref.40 = import_ref Implicit//default, inst+421, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1172,47 +1172,47 @@ var c_bad: C({.a = 3, .b = 4}) = F();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Implicit//default, inst+24, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Implicit//default, inst+399, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Implicit//default, inst+458, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Implicit//default, inst+502, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Implicit//default, inst+22, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Implicit//default, inst+357, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Implicit//default, inst+416, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Implicit//default, inst+460, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+42, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Implicit//default, inst+43, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Implicit//default, inst+44, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Implicit//default, inst+89, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Implicit//default, inst+90, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Implicit//default, inst+91, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Implicit//default, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Implicit//default, inst+119, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+120, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Implicit//default, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Implicit//default, inst+148, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Implicit//default, inst+149, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Implicit//default, inst+150, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Implicit//default, inst+180, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Implicit//default, inst+181, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+212, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Implicit//default, inst+213, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Implicit//default, inst+214, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Implicit//default, inst+220, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Implicit//default, inst+221, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Implicit//default, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Implicit//default, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Implicit//default, inst+277, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+278, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Implicit//default, inst+279, unloaded
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Implicit//default, inst+306, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Implicit//default, inst+307, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.34 = import_ref Implicit//default, inst+308, unloaded
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Implicit//default, inst+338, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Implicit//default, inst+339, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Implicit//default, inst+340, unloaded
|
||||
// CHECK:STDOUT: %import_ref.39 = import_ref Implicit//default, inst+463, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+38, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Implicit//default, inst+39, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Implicit//default, inst+40, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Implicit//default, inst+81, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Implicit//default, inst+82, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Implicit//default, inst+83, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Implicit//default, inst+54, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Implicit//default, inst+107, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+108, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Implicit//default, inst+109, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Implicit//default, inst+132, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Implicit//default, inst+133, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Implicit//default, inst+134, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Implicit//default, inst+160, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Implicit//default, inst+161, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+162, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+188, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Implicit//default, inst+189, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Implicit//default, inst+190, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Implicit//default, inst+194, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Implicit//default, inst+195, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Implicit//default, inst+196, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Implicit//default, inst+210, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Implicit//default, inst+245, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+246, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Implicit//default, inst+247, unloaded
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Implicit//default, inst+270, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Implicit//default, inst+271, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.34 = import_ref Implicit//default, inst+272, unloaded
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Implicit//default, inst+298, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Implicit//default, inst+299, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Implicit//default, inst+300, unloaded
|
||||
// CHECK:STDOUT: %import_ref.39 = import_ref Implicit//default, inst+421, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1892,48 +1892,48 @@ var c_bad: C({.a = 3, .b = 4}) = F();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Implicit//default, inst+24, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Implicit//default, inst+399, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Implicit//default, inst+458, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Implicit//default, inst+502, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Implicit//default, inst+22, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Implicit//default, inst+357, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Implicit//default, inst+416, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Implicit//default, inst+460, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.40
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+42, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: @ImplicitAs.%.1 (%.2) = import_ref Implicit//default, inst+43, loaded [symbolic = @ImplicitAs.%.2 (constants.%.31)]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Implicit//default, inst+44, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Implicit//default, inst+89, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Implicit//default, inst+90, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.10: <witness> = import_ref Implicit//default, inst+91, loaded [symbolic = @impl.1.%.1 (constants.%.4)]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Implicit//default, inst+60, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Implicit//default, inst+119, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+120, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Implicit//default, inst+121, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Implicit//default, inst+148, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Implicit//default, inst+149, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Implicit//default, inst+150, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Implicit//default, inst+180, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Implicit//default, inst+181, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+182, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+212, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Implicit//default, inst+213, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Implicit//default, inst+214, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Implicit//default, inst+220, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Implicit//default, inst+221, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Implicit//default, inst+222, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Implicit//default, inst+238, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Implicit//default, inst+277, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+278, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Implicit//default, inst+279, unloaded
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Implicit//default, inst+306, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Implicit//default, inst+307, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.34 = import_ref Implicit//default, inst+308, unloaded
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Implicit//default, inst+338, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Implicit//default, inst+339, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Implicit//default, inst+340, unloaded
|
||||
// CHECK:STDOUT: %import_ref.39 = import_ref Implicit//default, inst+463, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+38, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: @ImplicitAs.%.1 (%.2) = import_ref Implicit//default, inst+39, loaded [symbolic = @ImplicitAs.%.2 (constants.%.31)]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Implicit//default, inst+40, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Implicit//default, inst+81, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Implicit//default, inst+82, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.10: <witness> = import_ref Implicit//default, inst+83, loaded [symbolic = @impl.1.%.1 (constants.%.4)]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Implicit//default, inst+54, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Implicit//default, inst+107, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+108, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Implicit//default, inst+109, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Implicit//default, inst+132, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Implicit//default, inst+133, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Implicit//default, inst+134, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Implicit//default, inst+160, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Implicit//default, inst+161, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+162, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+188, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Implicit//default, inst+189, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Implicit//default, inst+190, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Implicit//default, inst+194, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Implicit//default, inst+195, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Implicit//default, inst+196, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Implicit//default, inst+210, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Implicit//default, inst+245, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+246, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Implicit//default, inst+247, unloaded
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Implicit//default, inst+270, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Implicit//default, inst+271, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.34 = import_ref Implicit//default, inst+272, unloaded
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Implicit//default, inst+298, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Implicit//default, inst+299, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Implicit//default, inst+300, unloaded
|
||||
// CHECK:STDOUT: %import_ref.39 = import_ref Implicit//default, inst+421, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+113
-113
@@ -45,10 +45,10 @@ var c_bad: C((1, 2, 3)) = F();
|
||||
|
||||
impl package Implicit;
|
||||
|
||||
// CHECK:STDERR: fail_bad_value.impl.carbon:[[@LINE+6]]:1: error: cannot implicitly convert from `C(<cannot stringify inst+400 kind TupleValue>)` to `C(<cannot stringify inst+388 kind TupleValue>)` [ImplicitAsConversionFailure]
|
||||
// CHECK:STDERR: fail_bad_value.impl.carbon:[[@LINE+6]]:1: error: cannot implicitly convert from `C(<cannot stringify inst+358 kind TupleValue>)` to `C(<cannot stringify inst+346 kind TupleValue>)` [ImplicitAsConversionFailure]
|
||||
// CHECK:STDERR: var c_bad: C((3, 4)) = F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_bad_value.impl.carbon:[[@LINE+3]]:1: note: type `C(<cannot stringify inst+400 kind TupleValue>)` does not implement interface `ImplicitAs(C(<cannot stringify inst+388 kind TupleValue>))` [MissingImplInMemberAccessNote]
|
||||
// CHECK:STDERR: fail_bad_value.impl.carbon:[[@LINE+3]]:1: note: type `C(<cannot stringify inst+358 kind TupleValue>)` does not implement interface `ImplicitAs(C(<cannot stringify inst+346 kind TupleValue>))` [MissingImplInMemberAccessNote]
|
||||
// CHECK:STDERR: var c_bad: C((3, 4)) = F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
var c_bad: C((3, 4)) = F();
|
||||
@@ -400,49 +400,49 @@ var c_bad: C((3, 4)) = F();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1: ref %tuple.type.2 = import_ref Implicit//default, inst+26, loaded
|
||||
// CHECK:STDOUT: %import_ref.2: ref %tuple.type.8 = import_ref Implicit//default, inst+412, loaded
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Implicit//default, inst+495, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Implicit//default, inst+529, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %import_ref.1: ref %tuple.type.2 = import_ref Implicit//default, inst+24, loaded
|
||||
// CHECK:STDOUT: %import_ref.2: ref %tuple.type.8 = import_ref Implicit//default, inst+370, loaded
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Implicit//default, inst+453, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Implicit//default, inst+487, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .Int = %import_ref.39
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.41
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+44, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: @ImplicitAs.%.1 (%.2) = import_ref Implicit//default, inst+45, loaded [symbolic = @ImplicitAs.%.2 (constants.%.31)]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Implicit//default, inst+46, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Implicit//default, inst+91, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Implicit//default, inst+92, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.10: <witness> = import_ref Implicit//default, inst+93, loaded [symbolic = @impl.1.%.1 (constants.%.4)]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Implicit//default, inst+62, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Implicit//default, inst+121, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+122, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Implicit//default, inst+123, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Implicit//default, inst+150, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Implicit//default, inst+151, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Implicit//default, inst+152, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Implicit//default, inst+182, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Implicit//default, inst+183, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+184, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+214, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Implicit//default, inst+215, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Implicit//default, inst+216, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Implicit//default, inst+222, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Implicit//default, inst+223, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Implicit//default, inst+224, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Implicit//default, inst+240, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Implicit//default, inst+279, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+280, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Implicit//default, inst+281, unloaded
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Implicit//default, inst+308, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Implicit//default, inst+309, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.34 = import_ref Implicit//default, inst+310, unloaded
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Implicit//default, inst+340, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Implicit//default, inst+341, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Implicit//default, inst+342, unloaded
|
||||
// CHECK:STDOUT: %import_ref.40 = import_ref Implicit//default, inst+500, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+40, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: @ImplicitAs.%.1 (%.2) = import_ref Implicit//default, inst+41, loaded [symbolic = @ImplicitAs.%.2 (constants.%.31)]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Implicit//default, inst+42, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Implicit//default, inst+83, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Implicit//default, inst+84, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.10: <witness> = import_ref Implicit//default, inst+85, loaded [symbolic = @impl.1.%.1 (constants.%.4)]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Implicit//default, inst+56, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Implicit//default, inst+109, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+110, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Implicit//default, inst+111, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Implicit//default, inst+134, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Implicit//default, inst+135, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Implicit//default, inst+136, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Implicit//default, inst+162, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Implicit//default, inst+163, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+164, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+190, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Implicit//default, inst+191, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Implicit//default, inst+192, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Implicit//default, inst+196, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Implicit//default, inst+197, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Implicit//default, inst+198, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Implicit//default, inst+212, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Implicit//default, inst+247, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+248, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Implicit//default, inst+249, unloaded
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Implicit//default, inst+272, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Implicit//default, inst+273, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.34 = import_ref Implicit//default, inst+274, unloaded
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Implicit//default, inst+300, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Implicit//default, inst+301, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Implicit//default, inst+302, unloaded
|
||||
// CHECK:STDOUT: %import_ref.40 = import_ref Implicit//default, inst+458, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1221,47 +1221,47 @@ var c_bad: C((3, 4)) = F();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Implicit//default, inst+26, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Implicit//default, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Implicit//default, inst+495, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Implicit//default, inst+529, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Implicit//default, inst+24, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Implicit//default, inst+370, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Implicit//default, inst+453, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Implicit//default, inst+487, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+44, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Implicit//default, inst+45, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Implicit//default, inst+46, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Implicit//default, inst+91, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Implicit//default, inst+92, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Implicit//default, inst+93, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Implicit//default, inst+62, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Implicit//default, inst+121, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+122, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Implicit//default, inst+123, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Implicit//default, inst+150, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Implicit//default, inst+151, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Implicit//default, inst+152, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Implicit//default, inst+182, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Implicit//default, inst+183, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+184, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+214, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Implicit//default, inst+215, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Implicit//default, inst+216, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Implicit//default, inst+222, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Implicit//default, inst+223, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Implicit//default, inst+224, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Implicit//default, inst+240, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Implicit//default, inst+279, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+280, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Implicit//default, inst+281, unloaded
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Implicit//default, inst+308, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Implicit//default, inst+309, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.34 = import_ref Implicit//default, inst+310, unloaded
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Implicit//default, inst+340, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Implicit//default, inst+341, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Implicit//default, inst+342, unloaded
|
||||
// CHECK:STDOUT: %import_ref.39 = import_ref Implicit//default, inst+500, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+40, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Implicit//default, inst+41, unloaded
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Implicit//default, inst+42, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Implicit//default, inst+83, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Implicit//default, inst+84, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.10 = import_ref Implicit//default, inst+85, unloaded
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Implicit//default, inst+56, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Implicit//default, inst+109, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+110, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Implicit//default, inst+111, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Implicit//default, inst+134, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Implicit//default, inst+135, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Implicit//default, inst+136, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Implicit//default, inst+162, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Implicit//default, inst+163, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+164, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+190, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Implicit//default, inst+191, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Implicit//default, inst+192, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Implicit//default, inst+196, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Implicit//default, inst+197, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Implicit//default, inst+198, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Implicit//default, inst+212, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Implicit//default, inst+247, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+248, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Implicit//default, inst+249, unloaded
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Implicit//default, inst+272, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Implicit//default, inst+273, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.34 = import_ref Implicit//default, inst+274, unloaded
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Implicit//default, inst+300, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Implicit//default, inst+301, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Implicit//default, inst+302, unloaded
|
||||
// CHECK:STDOUT: %import_ref.39 = import_ref Implicit//default, inst+458, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -1942,48 +1942,48 @@ var c_bad: C((3, 4)) = F();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Implicit//default, inst+26, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Implicit//default, inst+412, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Implicit//default, inst+495, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Implicit//default, inst+529, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %import_ref.1 = import_ref Implicit//default, inst+24, unloaded
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Implicit//default, inst+370, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: %C.type = import_ref Implicit//default, inst+453, loaded [template = constants.%C.1]
|
||||
// CHECK:STDOUT: %import_ref.4: %F.type = import_ref Implicit//default, inst+487, loaded [template = constants.%F]
|
||||
// CHECK:STDOUT: %Core: <namespace> = namespace file.%Core.import, [template] {
|
||||
// CHECK:STDOUT: .ImplicitAs = %import_ref.40
|
||||
// CHECK:STDOUT: import Core//prelude
|
||||
// CHECK:STDOUT: import Core//prelude/...
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+44, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: @ImplicitAs.%.1 (%.2) = import_ref Implicit//default, inst+45, loaded [symbolic = @ImplicitAs.%.2 (constants.%.29)]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Implicit//default, inst+46, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Implicit//default, inst+91, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Implicit//default, inst+92, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.10: <witness> = import_ref Implicit//default, inst+93, loaded [symbolic = @impl.1.%.1 (constants.%.4)]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Implicit//default, inst+62, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Implicit//default, inst+121, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+122, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Implicit//default, inst+123, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Implicit//default, inst+150, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Implicit//default, inst+151, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Implicit//default, inst+152, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Implicit//default, inst+182, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Implicit//default, inst+183, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+184, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+214, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Implicit//default, inst+215, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Implicit//default, inst+216, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Implicit//default, inst+222, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Implicit//default, inst+223, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Implicit//default, inst+224, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Implicit//default, inst+240, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Implicit//default, inst+279, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+280, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Implicit//default, inst+281, unloaded
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Implicit//default, inst+308, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Implicit//default, inst+309, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.34 = import_ref Implicit//default, inst+310, unloaded
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Implicit//default, inst+340, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Implicit//default, inst+341, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Implicit//default, inst+342, unloaded
|
||||
// CHECK:STDOUT: %import_ref.39 = import_ref Implicit//default, inst+500, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Implicit//default, inst+40, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6: @ImplicitAs.%.1 (%.2) = import_ref Implicit//default, inst+41, loaded [symbolic = @ImplicitAs.%.2 (constants.%.29)]
|
||||
// CHECK:STDOUT: %import_ref.7 = import_ref Implicit//default, inst+42, unloaded
|
||||
// CHECK:STDOUT: %import_ref.8: type = import_ref Implicit//default, inst+83, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.9: type = import_ref Implicit//default, inst+84, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.10: <witness> = import_ref Implicit//default, inst+85, loaded [symbolic = @impl.1.%.1 (constants.%.4)]
|
||||
// CHECK:STDOUT: %import_ref.11 = import_ref Implicit//default, inst+56, unloaded
|
||||
// CHECK:STDOUT: %import_ref.12: type = import_ref Implicit//default, inst+109, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.13: type = import_ref Implicit//default, inst+110, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.14 = import_ref Implicit//default, inst+111, unloaded
|
||||
// CHECK:STDOUT: %import_ref.15: type = import_ref Implicit//default, inst+134, loaded [symbolic = @impl.3.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.16: type = import_ref Implicit//default, inst+135, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.17 = import_ref Implicit//default, inst+136, unloaded
|
||||
// CHECK:STDOUT: %import_ref.19: type = import_ref Implicit//default, inst+162, loaded [symbolic = @impl.4.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.20: type = import_ref Implicit//default, inst+163, loaded [template = constants.%ImplicitAs.type.5]
|
||||
// CHECK:STDOUT: %import_ref.21 = import_ref Implicit//default, inst+164, unloaded
|
||||
// CHECK:STDOUT: %import_ref.22 = import_ref Implicit//default, inst+190, unloaded
|
||||
// CHECK:STDOUT: %import_ref.23 = import_ref Implicit//default, inst+191, unloaded
|
||||
// CHECK:STDOUT: %import_ref.24 = import_ref Implicit//default, inst+192, unloaded
|
||||
// CHECK:STDOUT: %import_ref.25: type = import_ref Implicit//default, inst+196, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.26: type = import_ref Implicit//default, inst+197, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
|
||||
// CHECK:STDOUT: %import_ref.27 = import_ref Implicit//default, inst+198, unloaded
|
||||
// CHECK:STDOUT: %import_ref.28 = import_ref Implicit//default, inst+212, unloaded
|
||||
// CHECK:STDOUT: %import_ref.29: type = import_ref Implicit//default, inst+247, loaded [template = Core.IntLiteral]
|
||||
// CHECK:STDOUT: %import_ref.30: type = import_ref Implicit//default, inst+248, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
|
||||
// CHECK:STDOUT: %import_ref.31 = import_ref Implicit//default, inst+249, unloaded
|
||||
// CHECK:STDOUT: %import_ref.32: type = import_ref Implicit//default, inst+272, loaded [symbolic = @impl.7.%iN (constants.%iN)]
|
||||
// CHECK:STDOUT: %import_ref.33: type = import_ref Implicit//default, inst+273, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.34 = import_ref Implicit//default, inst+274, unloaded
|
||||
// CHECK:STDOUT: %import_ref.36: type = import_ref Implicit//default, inst+300, loaded [symbolic = @impl.8.%uN (constants.%uN)]
|
||||
// CHECK:STDOUT: %import_ref.37: type = import_ref Implicit//default, inst+301, loaded [template = constants.%As.type.5]
|
||||
// CHECK:STDOUT: %import_ref.38 = import_ref Implicit//default, inst+302, unloaded
|
||||
// CHECK:STDOUT: %import_ref.39 = import_ref Implicit//default, inst+458, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -326,35 +326,9 @@ auto FileContext::BuildFunctionDefinition(SemIR::FunctionId function_id)
|
||||
// TODO: This duplicates the mapping between sem_ir instructions and LLVM
|
||||
// function parameters that was already computed in BuildFunctionDecl.
|
||||
// We should only do that once.
|
||||
auto implicit_param_refs =
|
||||
sem_ir().inst_blocks().GetOrEmpty(function.implicit_param_refs_id);
|
||||
auto param_refs = sem_ir().inst_blocks().GetOrEmpty(function.param_refs_id);
|
||||
auto call_param_ids =
|
||||
sem_ir().inst_blocks().GetOrEmpty(function.call_params_id);
|
||||
int param_index = 0;
|
||||
// The SemIR calling-convention parameters of the function, in order of
|
||||
// runtime index. This is a transitional step toward generating this list
|
||||
// in the check phase, which is why we're using the runtime index order
|
||||
// even though it's less convenient for this usage.
|
||||
llvm::SmallVector<SemIR::InstId> calling_convention_param_ids;
|
||||
// This is an upper bound on the size because `self` and the return slot
|
||||
// are the only runtime parameters that don't appear in the explicit
|
||||
// parameter list.
|
||||
calling_convention_param_ids.reserve(param_refs.size() + 2);
|
||||
bool has_return_slot =
|
||||
SemIR::ReturnTypeInfo::ForFunction(sem_ir(), function, specific_id)
|
||||
.has_return_slot();
|
||||
for (auto param_ref_id :
|
||||
llvm::concat<const SemIR::InstId>(implicit_param_refs, param_refs)) {
|
||||
auto param_info =
|
||||
SemIR::Function::GetParamFromParamRefId(sem_ir(), param_ref_id);
|
||||
if (param_info.inst.runtime_index.is_valid()) {
|
||||
calling_convention_param_ids.push_back(param_info.inst_id);
|
||||
}
|
||||
}
|
||||
if (has_return_slot) {
|
||||
auto return_slot =
|
||||
sem_ir().insts().GetAs<SemIR::ReturnSlot>(function.return_slot_id);
|
||||
calling_convention_param_ids.push_back(return_slot.storage_id);
|
||||
}
|
||||
|
||||
// TODO: Find a way to ensure this code and the function-call lowering use
|
||||
// the same parameter ordering.
|
||||
@@ -375,16 +349,23 @@ auto FileContext::BuildFunctionDefinition(SemIR::FunctionId function_id)
|
||||
function_lowering.SetLocal(param_id, param_value);
|
||||
};
|
||||
|
||||
// The subset of calling_convention_param_id that is in sequential order.
|
||||
llvm::ArrayRef<SemIR::InstId> sequential_param_ids =
|
||||
calling_convention_param_ids;
|
||||
|
||||
// The LLVM calling convention has the return slot first rather than last.
|
||||
if (has_return_slot) {
|
||||
lower_param(calling_convention_param_ids.back());
|
||||
|
||||
sequential_param_ids = sequential_param_ids.drop_back();
|
||||
// The subset of call_param_ids that is already in the order that the LLVM
|
||||
// calling convention expects.
|
||||
llvm::ArrayRef<SemIR::InstId> sequential_param_ids;
|
||||
if (function.return_slot_id.is_valid()) {
|
||||
// The LLVM calling convention has the return slot first rather than last.
|
||||
// Note that this queries whether there is a return slot at the LLVM level,
|
||||
// whereas `function.return_slot_id.is_valid()` queries whether there is a
|
||||
// return slot at the SemIR level.
|
||||
if (SemIR::ReturnTypeInfo::ForFunction(sem_ir(), function, specific_id)
|
||||
.has_return_slot()) {
|
||||
lower_param(call_param_ids.back());
|
||||
}
|
||||
sequential_param_ids = call_param_ids.drop_back();
|
||||
} else {
|
||||
sequential_param_ids = call_param_ids;
|
||||
}
|
||||
|
||||
for (auto param_id : sequential_param_ids) {
|
||||
lower_param(param_id);
|
||||
}
|
||||
|
||||
@@ -45,10 +45,9 @@ struct EntityWithParamsBase {
|
||||
first_param_node_id = definition.first_param_node_id;
|
||||
last_param_node_id = definition.last_param_node_id;
|
||||
pattern_block_id = definition.pattern_block_id;
|
||||
implicit_param_refs_id = definition.implicit_param_refs_id;
|
||||
implicit_param_patterns_id = definition.implicit_param_patterns_id;
|
||||
param_refs_id = definition.param_refs_id;
|
||||
param_patterns_id = definition.param_patterns_id;
|
||||
call_params_id = definition.call_params_id;
|
||||
definition_id = definition.definition_id;
|
||||
}
|
||||
|
||||
@@ -99,26 +98,30 @@ struct EntityWithParamsBase {
|
||||
// A block containing the pattern insts for the parameter lists.
|
||||
InstBlockId pattern_block_id;
|
||||
|
||||
// A block containing, for each implicit parameter, a reference to the
|
||||
// instruction in the entity's declaration block that depends on all other
|
||||
// pattern-match insts pertaining to that parameter.
|
||||
InstBlockId implicit_param_refs_id;
|
||||
|
||||
// A block containing, for each implicit parameter, a reference to the
|
||||
// instruction in the entity's pattern block that depends on all other
|
||||
// pattern insts pertaining to that parameter.
|
||||
InstBlockId implicit_param_patterns_id;
|
||||
|
||||
// A block containing, for each explicit parameter, a reference to the
|
||||
// instruction in the entity's declaration block that depends on all other
|
||||
// pattern-match insts pertaining to that parameter.
|
||||
InstBlockId param_refs_id;
|
||||
|
||||
// A block containing, for each explicit parameter, a reference to the
|
||||
// instruction in the entity's pattern block that depends on all other
|
||||
// pattern insts pertaining to that parameter.
|
||||
InstBlockId param_patterns_id;
|
||||
|
||||
// If this entity is a function, this block consists of references to the
|
||||
// `AnyParam` insts that represent the function's `Call` parameters. The
|
||||
// "`Call` parameters" are the parameters corresponding to the arguments that
|
||||
// are passed to a `Call` inst, so they do not include compile-time
|
||||
// parameters, but they do include the return slot.
|
||||
//
|
||||
// The parameters appear in declaration order: `self` (if present), then the
|
||||
// explicit runtime parameters, then the return slot (which is "declared" by
|
||||
// the function's return type declaration). This is not populated on imported
|
||||
// functions, because it is relevant only for a function definition.
|
||||
//
|
||||
// TODO: Can this be moved to `Function`, since it is not applicable to other
|
||||
// kinds of entities?
|
||||
InstBlockId call_params_id;
|
||||
|
||||
// True if declarations are `extern`.
|
||||
bool is_extern;
|
||||
|
||||
|
||||
@@ -102,20 +102,6 @@ auto Function::GetNameFromPatternId(const File& sem_ir, InstId pattern_id)
|
||||
return sem_ir.entity_names().Get(binding_pattern.entity_name_id).name_id;
|
||||
}
|
||||
|
||||
auto Function::GetParamFromParamRefId(const File& sem_ir, InstId param_ref_id)
|
||||
-> ParamInfo {
|
||||
auto ref = sem_ir.insts().Get(param_ref_id);
|
||||
|
||||
auto bind_name = ref.TryAs<AnyBindName>();
|
||||
if (bind_name) {
|
||||
param_ref_id = bind_name->value_id;
|
||||
ref = sem_ir.insts().Get(param_ref_id);
|
||||
} else {
|
||||
CARBON_FATAL();
|
||||
}
|
||||
return {param_ref_id, ref.As<AnyParam>(), bind_name};
|
||||
}
|
||||
|
||||
auto Function::GetDeclaredReturnType(const File& file,
|
||||
SpecificId specific_id) const -> TypeId {
|
||||
if (!return_slot_id.is_valid()) {
|
||||
|
||||
@@ -92,17 +92,6 @@ struct Function : public EntityWithParamsBase,
|
||||
static auto GetNameFromPatternId(const File& sem_ir, InstId param_pattern_id)
|
||||
-> SemIR::NameId;
|
||||
|
||||
// Given a parameter reference instruction from `param_refs_id` or
|
||||
// `implicit_param_refs_id`, returns a `ParamInfo` value with the
|
||||
// corresponding instruction, its ID, and the name binding, if present.
|
||||
struct ParamInfo {
|
||||
InstId inst_id;
|
||||
AnyParam inst;
|
||||
std::optional<AnyBindName> bind_name;
|
||||
};
|
||||
static auto GetParamFromParamRefId(const File& sem_ir, InstId param_ref_id)
|
||||
-> ParamInfo;
|
||||
|
||||
// Gets the declared return type for a specific version of this function, or
|
||||
// the canonical return type for the original declaration no specific is
|
||||
// specified. Returns `Invalid` if no return type was specified, in which
|
||||
|
||||
@@ -254,6 +254,8 @@ constexpr CompileTimeBindIndex CompileTimeBindIndex::Invalid =
|
||||
// arguments passed to them at runtime. In a `call` instruction, a runtime
|
||||
// argument will have the position in the argument list corresponding to its
|
||||
// runtime parameter index.
|
||||
// TODO: Rename this to CallParamIndex, for consistency with the "`Call`
|
||||
// parameters" terminology in EntityWithParamsBase.
|
||||
struct RuntimeParamIndex : public IndexBase,
|
||||
public Printable<RuntimeParamIndex> {
|
||||
// An explicitly invalid index.
|
||||
|
||||
@@ -453,10 +453,8 @@ struct Call {
|
||||
|
||||
TypeId type_id;
|
||||
InstId callee_id;
|
||||
// The arguments block contains IDs for the following arguments, in order:
|
||||
// - The argument for each implicit parameter.
|
||||
// - The argument for each explicit parameter.
|
||||
// - The argument for the return slot, if present.
|
||||
// Runtime arguments in lexical order of the parameter declarations, followed
|
||||
// by the argument for the return slot, if present.
|
||||
InstBlockId args_id;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user