Remove index fields from ParamPatterns (#6815)

This is a step toward removing the index from `InitForm`, so that equal
form values always have equal representations.

---------

Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
This commit is contained in:
Geoff Romer
2026-03-03 00:19:47 +00:00
committed by GitHub
co-authored by Jon Ross-Perkins
parent 9ff6b0a682
commit 6dba8ee111
298 changed files with 1741 additions and 1747 deletions
+1 -2
View File
@@ -1331,8 +1331,7 @@ static auto GetReturnInfo(Context& context, SemIR::LocId loc_id,
MakeImportedLocIdAndInst(
context, return_type_import_ir_inst_id,
SemIR::OutParamPattern({.type_id = pattern_type_id,
.subpattern_id = return_slot_pattern_id,
.index = init_form->index})));
.subpattern_id = return_slot_pattern_id})));
return_patterns_id = context.inst_blocks().Add({param_pattern_id});
}
return {.return_type_inst_id = type_inst_id,
+2 -3
View File
@@ -40,7 +40,7 @@ auto AddReturnPatterns(Context& context, SemIR::LocId loc_id,
case SemIR::RefForm::Kind: {
break;
}
case CARBON_KIND(SemIR::InitForm init_form): {
case CARBON_KIND(SemIR::InitForm _): {
auto pattern_type_id =
GetPatternType(context, form_expr.type_component_id);
auto return_slot_pattern_id = AddPatternInst<SemIR::ReturnSlotPattern>(
@@ -50,8 +50,7 @@ auto AddReturnPatterns(Context& context, SemIR::LocId loc_id,
return_patterns.push_back(AddPatternInst<SemIR::OutParamPattern>(
context, SemIR::LocId(form_expr.form_inst_id),
{.type_id = pattern_type_id,
.subpattern_id = return_slot_pattern_id,
.index = init_form.index}));
.subpattern_id = return_slot_pattern_id}));
break;
}
case SemIR::ErrorInst::Kind: {
+6 -9
View File
@@ -280,24 +280,21 @@ static auto HandleAnyBindingPattern(Context& context, Parse::NodeId node_id,
if (node_kind == Parse::NodeKind::LetBindingPattern ||
node_kind == Parse::NodeKind::FormBindingPattern) {
auto type_id = context.insts().GetAttachedType(result_inst_id);
// Allocate a dummy index to preserve index of subsequent `InitForm`s.
// TODO: Remove this once we remove `InitForm::index`.
context.full_pattern_stack().NextCallParamIndex();
if (is_ref) {
result_inst_id = AddPatternInst<SemIR::RefParamPattern>(
context, node_id,
{.type_id = type_id,
.subpattern_id = result_inst_id,
.index = context.full_pattern_stack().NextCallParamIndex()});
{.type_id = type_id, .subpattern_id = result_inst_id});
} else if (node_kind == Parse::NodeKind::FormBindingPattern) {
result_inst_id = AddPatternInst<SemIR::FormParamPattern>(
context, node_id,
{.type_id = type_id,
.subpattern_id = result_inst_id,
.index = context.full_pattern_stack().NextCallParamIndex()});
{.type_id = type_id, .subpattern_id = result_inst_id});
} else {
result_inst_id = AddPatternInst<SemIR::ValueParamPattern>(
context, node_id,
{.type_id = type_id,
.subpattern_id = result_inst_id,
.index = context.full_pattern_stack().NextCallParamIndex()});
{.type_id = type_id, .subpattern_id = result_inst_id});
}
}
context.node_stack().Push(node_id, result_inst_id);
+4 -3
View File
@@ -107,11 +107,12 @@ auto HandleParseNode(Context& context, Parse::VariablePatternId node_id)
switch (context.full_pattern_stack().CurrentKind()) {
case FullPatternStack::Kind::ExplicitParamList:
case FullPatternStack::Kind::ImplicitParamList:
// Allocate a dummy index to preserve index of subsequent `InitForm`s.
// TODO: Remove this once we remove `InitForm::index`.
context.full_pattern_stack().NextCallParamIndex();
subpattern_id = AddPatternInst<SemIR::VarParamPattern>(
context, node_id,
{.type_id = type_id,
.subpattern_id = subpattern_id,
.index = context.full_pattern_stack().NextCallParamIndex()});
{.type_id = type_id, .subpattern_id = subpattern_id});
break;
case FullPatternStack::Kind::NameBindingDecl:
break;
+1 -2
View File
@@ -1561,8 +1561,7 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, ParamPatternT inst,
resolver, import_inst_id,
{.type_id =
resolver.local_types().GetTypeIdForTypeConstantId(type_const_id),
.subpattern_id = subpattern_id,
.index = inst.index});
.subpattern_id = subpattern_id});
}
static auto TryResolveTypedInst(ImportRefResolver& resolver,
+7 -6
View File
@@ -165,15 +165,16 @@ auto AddParamPattern(Context& context, SemIR::LocId loc_id,
const auto& param_pattern_kind =
is_ref ? SemIR::RefParamPattern::Kind : SemIR::ValueParamPattern::Kind;
// Allocate a dummy index to preserve index of subsequent `InitForm`s.
// TODO: Remove this once we remove `InitForm::index`.
context.full_pattern_stack().NextCallParamIndex();
pattern_id = AddPatternInst(
context,
SemIR::LocIdAndInst::UncheckedLoc(
loc_id,
SemIR::AnyParamPattern{
.kind = param_pattern_kind,
.type_id = context.insts().Get(pattern_id).type_id(),
.subpattern_id = pattern_id,
.index = context.full_pattern_stack().NextCallParamIndex()}));
loc_id, SemIR::AnyParamPattern{
.kind = param_pattern_kind,
.type_id = context.insts().Get(pattern_id).type_id(),
.subpattern_id = pattern_id}));
return pattern_id;
}
+1 -5
View File
@@ -419,10 +419,6 @@ auto MatchContext::DoEmitPatternMatch(Context& context,
switch (kind_) {
case MatchKind::Caller: {
CARBON_CHECK(
static_cast<size_t>(param_pattern.index.index) == call_args_.size(),
"Parameters out of order; expecting {0} but got {1}",
call_args_.size(), param_pattern.index.index);
CARBON_CHECK(entry.scrutinee_id.has_value());
if (entry.scrutinee_id == SemIR::ErrorInst::InstId) {
call_args_.push_back(SemIR::ErrorInst::InstId);
@@ -446,7 +442,7 @@ auto MatchContext::DoEmitPatternMatch(Context& context,
.kind = ParamKindFor(context, param_pattern, entry, form_kind),
.type_id =
ExtractScrutineeType(context.sem_ir(), param_pattern.type_id),
.index = param_pattern.index,
.index = SemIR::CallParamIndex(call_params_.size()),
.pretty_name_id = SemIR::GetPrettyNameFromPatternId(
context.sem_ir(), entry.pattern_id)};
auto param_id =
+1 -1
View File
@@ -117,7 +117,7 @@ library "[[@TEST_NAME]]";
// CHECK:STDOUT: file {
// CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] {
// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc17_12.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc17_12.2: type = converted %.loc17_12.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
+3 -3
View File
@@ -145,7 +145,7 @@ fn F(c: C) { c.(I.Op)(); }
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %I.WithSelf.Op.decl: @I.WithSelf.%I.WithSelf.Op.type (%I.WithSelf.Op.type.71c) = fn_decl @I.WithSelf.Op [symbolic = @I.WithSelf.%I.WithSelf.Op (constants.%I.WithSelf.Op.ae1)] {
// CHECK:STDOUT: %self.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc8_22.1: type = splice_block %.loc8_22.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] {
@@ -258,7 +258,7 @@ fn F(c: C) { c.(I.Op)(); }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
@@ -374,7 +374,7 @@ fn F(c: C) { c.(I.Op)(); }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
+6 -6
View File
@@ -46,9 +46,9 @@ fn C(r#if: ()) -> () {
// CHECK:STDOUT: }
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %n.patt: %pattern_type = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc14_17.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc14_17.2: type = converted %.loc14_17.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
@@ -64,9 +64,9 @@ fn C(r#if: ()) -> () {
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {
// CHECK:STDOUT: %n.patt: %pattern_type = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc18_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc18_19.2: type = converted %.loc18_19.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
@@ -82,9 +82,9 @@ fn C(r#if: ()) -> () {
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] {
// CHECK:STDOUT: %if.patt: %pattern_type = value_binding_pattern r#if [concrete]
// CHECK:STDOUT: %if.param_patt: %pattern_type = value_param_pattern %if.patt, call_param0 [concrete]
// CHECK:STDOUT: %if.param_patt: %pattern_type = value_param_pattern %if.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc22_20.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc22_20.2: type = converted %.loc22_20.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
@@ -155,7 +155,7 @@ fn G(x: Cpp.X) {
// CHECK:STDOUT: inst60000017: {kind: ValueBinding, arg0: entity_name60000000, arg1: inst6000001B, type: type(inst60000015)}
// CHECK:STDOUT: inst60000018: {kind: PatternType, arg0: inst60000015, type: type(TypeType)}
// CHECK:STDOUT: inst60000019: {kind: ValueBindingPattern, arg0: entity_name60000000, type: type(inst60000018)}
// CHECK:STDOUT: inst6000001A: {kind: ValueParamPattern, arg0: inst60000019, arg1: call_param0, type: type(inst60000018)}
// CHECK:STDOUT: inst6000001A: {kind: ValueParamPattern, arg0: inst60000019, type: type(inst60000018)}
// CHECK:STDOUT: inst6000001B: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst60000015)}
// CHECK:STDOUT: inst6000001C: {kind: SpliceBlock, arg0: inst_block60000005, arg1: inst60000016, type: type(TypeType)}
// CHECK:STDOUT: inst6000001D: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block6000000A, type: type(inst6000001E)}
@@ -186,7 +186,7 @@ fn G(x: Cpp.X) {
// CHECK:STDOUT: inst60000036: {kind: NameRef, arg0: name1, arg1: inst60000017, type: type(inst60000015)}
// CHECK:STDOUT: inst60000037: {kind: ValueBinding, arg0: entity_name60000001, arg1: inst6000003A, type: type(inst60000015)}
// CHECK:STDOUT: inst60000038: {kind: ValueBindingPattern, arg0: entity_name60000001, type: type(inst60000018)}
// CHECK:STDOUT: inst60000039: {kind: ValueParamPattern, arg0: inst60000038, arg1: call_param0, type: type(inst60000018)}
// CHECK:STDOUT: inst60000039: {kind: ValueParamPattern, arg0: inst60000038, type: type(inst60000018)}
// CHECK:STDOUT: inst6000003A: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst60000015)}
// CHECK:STDOUT: inst6000003B: {kind: FunctionDecl, arg0: function60000003, arg1: inst_block60000012, type: type(inst6000003C)}
// CHECK:STDOUT: inst6000003C: {kind: FunctionType, arg0: function60000003, arg1: specific<none>, type: type(TypeType)}
@@ -194,7 +194,7 @@ fn G(x: Cpp.X) {
// CHECK:STDOUT: inst6000003E: {kind: ValueBinding, arg0: entity_name60000002, arg1: inst60000042, type: type(inst60000020)}
// CHECK:STDOUT: inst6000003F: {kind: PatternType, arg0: inst60000020, type: type(TypeType)}
// CHECK:STDOUT: inst60000040: {kind: ValueBindingPattern, arg0: entity_name60000002, type: type(inst6000003F)}
// CHECK:STDOUT: inst60000041: {kind: ValueParamPattern, arg0: inst60000040, arg1: call_param0, type: type(inst6000003F)}
// CHECK:STDOUT: inst60000041: {kind: ValueParamPattern, arg0: inst60000040, type: type(inst6000003F)}
// CHECK:STDOUT: inst60000042: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst60000020)}
// CHECK:STDOUT: inst60000043: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block60000018, type: type(inst60000044)}
// CHECK:STDOUT: inst60000044: {kind: FunctionType, arg0: function60000004, arg1: specific<none>, type: type(TypeType)}
+12 -12
View File
@@ -480,7 +480,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) {
// CHECK:STDOUT: inst60000020: {kind: PatternType, arg0: inst6000001D, type: type(TypeType)}
// CHECK:STDOUT: inst60000021: {kind: ValueBindingPattern, arg0: entity_name60000002, type: type(symbolic_constant60000006)}
// CHECK:STDOUT: inst60000022: {kind: PatternType, arg0: inst6000001E, type: type(TypeType)}
// CHECK:STDOUT: inst60000023: {kind: ValueParamPattern, arg0: inst60000021, arg1: call_param0, type: type(symbolic_constant60000006)}
// CHECK:STDOUT: inst60000023: {kind: ValueParamPattern, arg0: inst60000021, type: type(symbolic_constant60000006)}
// CHECK:STDOUT: inst60000024: {kind: NameRef, arg0: name1, arg1: inst60000016, type: type(TypeType)}
// CHECK:STDOUT: inst60000025: {kind: PointerType, arg0: inst60000024, type: type(TypeType)}
// CHECK:STDOUT: inst60000026: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
@@ -501,7 +501,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) {
// CHECK:STDOUT: inst60000035: {kind: PatternType, arg0: inst6000002F, type: type(TypeType)}
// CHECK:STDOUT: inst60000036: {kind: ReturnSlotPattern, arg0: inst60000030, type: type(symbolic_constant6000000E)}
// CHECK:STDOUT: inst60000037: {kind: PatternType, arg0: inst60000031, type: type(TypeType)}
// CHECK:STDOUT: inst60000038: {kind: OutParamPattern, arg0: inst60000036, arg1: call_param1, type: type(symbolic_constant6000000E)}
// CHECK:STDOUT: inst60000038: {kind: OutParamPattern, arg0: inst60000036, type: type(symbolic_constant6000000E)}
// CHECK:STDOUT: inst60000039: {kind: SpliceBlock, arg0: inst_block60000005, arg1: inst60000015, type: type(TypeType)}
// CHECK:STDOUT: inst6000003A: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(symbolic_constant60000004)}
// CHECK:STDOUT: inst6000003B: {kind: SpliceBlock, arg0: inst_block60000007, arg1: inst6000001C, type: type(TypeType)}
@@ -537,9 +537,9 @@ fn Foo[T:! type](p: T*) -> (T*, ()) {
// CHECK:STDOUT: inst60000059: {kind: SymbolicBindingType, arg0: entity_name60000004, arg1: inst60000052, type: type(TypeType)}
// CHECK:STDOUT: inst6000005A: {kind: PatternType, arg0: inst60000059, type: type(TypeType)}
// CHECK:STDOUT: inst6000005B: {kind: ReturnSlotPattern, arg0: inst<none>, type: type(symbolic_constant6000001B)}
// CHECK:STDOUT: inst6000005C: {kind: OutParamPattern, arg0: inst6000005B, arg1: call_param1, type: type(symbolic_constant6000001B)}
// CHECK:STDOUT: inst6000005C: {kind: OutParamPattern, arg0: inst6000005B, type: type(symbolic_constant6000001B)}
// CHECK:STDOUT: inst6000005D: {kind: ValueBindingPattern, arg0: entity_name60000008, type: type(symbolic_constant6000001B)}
// CHECK:STDOUT: inst6000005E: {kind: ValueParamPattern, arg0: inst6000005D, arg1: call_param0, type: type(symbolic_constant6000001B)}
// CHECK:STDOUT: inst6000005E: {kind: ValueParamPattern, arg0: inst6000005D, type: type(symbolic_constant6000001B)}
// CHECK:STDOUT: inst6000005F: {kind: InitForm, arg0: inst60000059, arg1: call_param1, type: type(inst(FormType))}
// CHECK:STDOUT: inst60000060: {kind: ImportRefLoaded, arg0: import_ir_instB, arg1: entity_name<none>, type: type(TypeType)}
// CHECK:STDOUT: inst60000061: {kind: ImportRefLoaded, arg0: import_ir_instC, arg1: entity_name<none>, type: type(inst(FormType))}
@@ -569,9 +569,9 @@ fn Foo[T:! type](p: T*) -> (T*, ()) {
// CHECK:STDOUT: inst60000079: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000031)}
// CHECK:STDOUT: inst6000007A: {kind: PatternType, arg0: inst60000073, type: type(TypeType)}
// CHECK:STDOUT: inst6000007B: {kind: ReturnSlotPattern, arg0: inst<none>, type: type(symbolic_constant60000036)}
// CHECK:STDOUT: inst6000007C: {kind: OutParamPattern, arg0: inst6000007B, arg1: call_param1, type: type(symbolic_constant60000036)}
// CHECK:STDOUT: inst6000007C: {kind: OutParamPattern, arg0: inst6000007B, type: type(symbolic_constant60000036)}
// CHECK:STDOUT: inst6000007D: {kind: ValueBindingPattern, arg0: entity_name6000000F, type: type(symbolic_constant60000036)}
// CHECK:STDOUT: inst6000007E: {kind: ValueParamPattern, arg0: inst6000007D, arg1: call_param0, type: type(symbolic_constant60000036)}
// CHECK:STDOUT: inst6000007E: {kind: ValueParamPattern, arg0: inst6000007D, type: type(symbolic_constant60000036)}
// CHECK:STDOUT: inst6000007F: {kind: InitForm, arg0: inst60000073, arg1: call_param1, type: type(inst(FormType))}
// CHECK:STDOUT: inst60000080: {kind: ImportRefLoaded, arg0: import_ir_inst20, arg1: entity_name<none>, type: type(TypeType)}
// CHECK:STDOUT: inst60000081: {kind: ImportRefLoaded, arg0: import_ir_inst21, arg1: entity_name<none>, type: type(inst(FormType))}
@@ -641,9 +641,9 @@ fn Foo[T:! type](p: T*) -> (T*, ()) {
// CHECK:STDOUT: inst600000C1: {kind: FunctionType, arg0: function60000003, arg1: specific6000000B, type: type(TypeType)}
// CHECK:STDOUT: inst600000C2: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000070)}
// CHECK:STDOUT: inst600000C3: {kind: ReturnSlotPattern, arg0: inst<none>, type: type(symbolic_constant60000074)}
// CHECK:STDOUT: inst600000C4: {kind: OutParamPattern, arg0: inst600000C3, arg1: call_param1, type: type(symbolic_constant60000074)}
// CHECK:STDOUT: inst600000C4: {kind: OutParamPattern, arg0: inst600000C3, type: type(symbolic_constant60000074)}
// CHECK:STDOUT: inst600000C5: {kind: ValueBindingPattern, arg0: entity_name6000001A, type: type(symbolic_constant60000074)}
// CHECK:STDOUT: inst600000C6: {kind: ValueParamPattern, arg0: inst600000C5, arg1: call_param0, type: type(symbolic_constant60000074)}
// CHECK:STDOUT: inst600000C6: {kind: ValueParamPattern, arg0: inst600000C5, type: type(symbolic_constant60000074)}
// CHECK:STDOUT: inst600000C7: {kind: InitForm, arg0: inst6000001D, arg1: call_param1, type: type(inst(FormType))}
// CHECK:STDOUT: inst600000C8: {kind: ImportRefLoaded, arg0: import_ir_inst59, arg1: entity_name<none>, type: type(TypeType)}
// CHECK:STDOUT: inst600000C9: {kind: ImportRefLoaded, arg0: import_ir_inst5A, arg1: entity_name<none>, type: type(inst(FormType))}
@@ -678,9 +678,9 @@ fn Foo[T:! type](p: T*) -> (T*, ()) {
// CHECK:STDOUT: inst600000E6: {kind: TupleValue, arg0: inst_block6000004C, type: type(inst600000E5)}
// CHECK:STDOUT: inst600000E7: {kind: PatternType, arg0: inst600000DE, type: type(TypeType)}
// CHECK:STDOUT: inst600000E8: {kind: ReturnSlotPattern, arg0: inst<none>, type: type(symbolic_constant6000008F)}
// CHECK:STDOUT: inst600000E9: {kind: OutParamPattern, arg0: inst600000E8, arg1: call_param1, type: type(symbolic_constant6000008F)}
// CHECK:STDOUT: inst600000E9: {kind: OutParamPattern, arg0: inst600000E8, type: type(symbolic_constant6000008F)}
// CHECK:STDOUT: inst600000EA: {kind: ValueBindingPattern, arg0: entity_name6000001E, type: type(symbolic_constant6000008F)}
// CHECK:STDOUT: inst600000EB: {kind: ValueParamPattern, arg0: inst600000EA, arg1: call_param0, type: type(symbolic_constant6000008F)}
// CHECK:STDOUT: inst600000EB: {kind: ValueParamPattern, arg0: inst600000EA, type: type(symbolic_constant6000008F)}
// CHECK:STDOUT: inst600000EC: {kind: InitForm, arg0: inst600000DE, arg1: call_param1, type: type(inst(FormType))}
// CHECK:STDOUT: inst600000ED: {kind: ImportRefLoaded, arg0: import_ir_inst74, arg1: entity_name<none>, type: type(TypeType)}
// CHECK:STDOUT: inst600000EE: {kind: ImportRefLoaded, arg0: import_ir_inst75, arg1: entity_name<none>, type: type(inst(FormType))}
@@ -746,9 +746,9 @@ fn Foo[T:! type](p: T*) -> (T*, ()) {
// CHECK:STDOUT: inst6000012A: {kind: TupleValue, arg0: inst_block60000069, type: type(inst60000129)}
// CHECK:STDOUT: inst6000012B: {kind: PatternType, arg0: inst60000122, type: type(TypeType)}
// CHECK:STDOUT: inst6000012C: {kind: ReturnSlotPattern, arg0: inst<none>, type: type(symbolic_constant600000E2)}
// CHECK:STDOUT: inst6000012D: {kind: OutParamPattern, arg0: inst6000012C, arg1: call_param1, type: type(symbolic_constant600000E2)}
// CHECK:STDOUT: inst6000012D: {kind: OutParamPattern, arg0: inst6000012C, type: type(symbolic_constant600000E2)}
// CHECK:STDOUT: inst6000012E: {kind: ValueBindingPattern, arg0: entity_name6000002D, type: type(symbolic_constant600000E2)}
// CHECK:STDOUT: inst6000012F: {kind: ValueParamPattern, arg0: inst6000012E, arg1: call_param0, type: type(symbolic_constant600000E2)}
// CHECK:STDOUT: inst6000012F: {kind: ValueParamPattern, arg0: inst6000012E, type: type(symbolic_constant600000E2)}
// CHECK:STDOUT: inst60000130: {kind: InitForm, arg0: inst60000122, arg1: call_param1, type: type(inst(FormType))}
// CHECK:STDOUT: inst60000131: {kind: ImportRefLoaded, arg0: import_ir_instA4, arg1: entity_name<none>, type: type(TypeType)}
// CHECK:STDOUT: inst60000132: {kind: ImportRefLoaded, arg0: import_ir_instA5, arg1: entity_name<none>, type: type(inst(FormType))}
@@ -71,7 +71,7 @@ fn Foo(n: ()) -> ((), ()) {
// CHECK:STDOUT: inst60000014: {kind: ValueBinding, arg0: entity_name60000000, arg1: inst60000026, type: type(inst60000010)}
// CHECK:STDOUT: inst60000015: {kind: PatternType, arg0: inst60000010, type: type(TypeType)}
// CHECK:STDOUT: inst60000016: {kind: ValueBindingPattern, arg0: entity_name60000000, type: type(inst60000015)}
// CHECK:STDOUT: inst60000017: {kind: ValueParamPattern, arg0: inst60000016, arg1: call_param0, type: type(inst60000015)}
// CHECK:STDOUT: inst60000017: {kind: ValueParamPattern, arg0: inst60000016, type: type(inst60000015)}
// CHECK:STDOUT: inst60000018: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst60000010)}
// CHECK:STDOUT: inst60000019: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst60000010)}
// CHECK:STDOUT: inst6000001A: {kind: TupleType, arg0: inst_block60000008, type: type(TypeType)}
@@ -85,7 +85,7 @@ fn Foo(n: ()) -> ((), ()) {
// CHECK:STDOUT: inst60000022: {kind: InitForm, arg0: inst6000001A, arg1: call_param1, type: type(inst(FormType))}
// CHECK:STDOUT: inst60000023: {kind: PatternType, arg0: inst6000001A, type: type(TypeType)}
// CHECK:STDOUT: inst60000024: {kind: ReturnSlotPattern, arg0: inst60000020, type: type(inst60000023)}
// CHECK:STDOUT: inst60000025: {kind: OutParamPattern, arg0: inst60000024, arg1: call_param1, type: type(inst60000023)}
// CHECK:STDOUT: inst60000025: {kind: OutParamPattern, arg0: inst60000024, type: type(inst60000023)}
// CHECK:STDOUT: inst60000026: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst60000010)}
// CHECK:STDOUT: inst60000027: {kind: SpliceBlock, arg0: inst_block60000005, arg1: inst60000013, type: type(TypeType)}
// CHECK:STDOUT: inst60000028: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(inst6000001A)}
@@ -244,9 +244,9 @@ fn Foo(n: ()) -> ((), ()) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] {
// CHECK:STDOUT: %n.patt: %pattern_type.cb1 = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.cb1 = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.cb1 = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.5b8 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.5b8 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.5b8 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc16_20: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc16_24: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
+8 -8
View File
@@ -114,9 +114,9 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null";
// CHECK:STDOUT: file {
// CHECK:STDOUT: %TestEmptyStruct.decl: %TestEmptyStruct.type = fn_decl @TestEmptyStruct [concrete = constants.%TestEmptyStruct] {
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = value_binding_pattern s [concrete]
// CHECK:STDOUT: %s.param_patt: %pattern_type.b42 = value_param_pattern %s.patt, call_param0 [concrete]
// CHECK:STDOUT: %s.param_patt: %pattern_type.b42 = value_param_pattern %s.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc11_45.1: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %.loc11_45.2: Core.Form = init_form %.loc11_45.1, call_param1 [concrete = constants.%.fff]
@@ -136,9 +136,9 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null";
// CHECK:STDOUT: }
// CHECK:STDOUT: %TestC.decl: %TestC.type = fn_decl @TestC [concrete = constants.%TestC] {
// CHECK:STDOUT: %c.patt: %pattern_type.b78 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.b78 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.b78 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc15_34.1: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %.loc15_34.2: Core.Form = init_form %.loc15_34.1, call_param1 [concrete = constants.%.fff]
@@ -202,9 +202,9 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null";
// CHECK:STDOUT: file {
// CHECK:STDOUT: %TestEmptyStruct.decl: %TestEmptyStruct.type = fn_decl @TestEmptyStruct [concrete = constants.%TestEmptyStruct] {
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = value_binding_pattern s [concrete]
// CHECK:STDOUT: %s.param_patt: %pattern_type.b42 = value_param_pattern %s.patt, call_param0 [concrete]
// CHECK:STDOUT: %s.param_patt: %pattern_type.b42 = value_param_pattern %s.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc10_45.1: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %.loc10_45.2: Core.Form = init_form %.loc10_45.1, call_param1 [concrete = constants.%.fff]
@@ -224,9 +224,9 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null";
// CHECK:STDOUT: }
// CHECK:STDOUT: %TestC.decl: %TestC.type = fn_decl @TestC [concrete = constants.%TestC] {
// CHECK:STDOUT: %c.patt: %pattern_type.b78 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.b78 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.b78 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc14_34.1: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %.loc14_34.2: Core.Form = init_form %.loc14_34.1, call_param1 [concrete = constants.%.fff]
+10 -10
View File
@@ -371,7 +371,7 @@ fn CallReturnAbstract() {
// CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %_.patt: <error> = ref_binding_pattern _ [concrete]
// CHECK:STDOUT: %_.param_patt: <error> = var_param_pattern %_.patt, call_param0 [concrete]
// CHECK:STDOUT: %_.param_patt: <error> = var_param_pattern %_.patt [concrete]
// CHECK:STDOUT: %_.var_patt: <error> = var_pattern %_.param_patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %_.param: ref <error> = ref_param call_param0
@@ -421,7 +421,7 @@ fn CallReturnAbstract() {
// CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %Abstract = value_param call_param0
// CHECK:STDOUT: %Abstract.ref.loc6: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
@@ -526,7 +526,7 @@ fn CallReturnAbstract() {
// CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {}
// CHECK:STDOUT: %Param.decl: %Param.type = fn_decl @Param [concrete = constants.%Param] {
// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %Abstract = value_param call_param0
// CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
@@ -534,7 +534,7 @@ fn CallReturnAbstract() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {
// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %Abstract = value_param call_param0
// CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
@@ -603,7 +603,7 @@ fn CallReturnAbstract() {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] {
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived]
// CHECK:STDOUT: %.loc12: Core.Form = init_form %Derived.ref, call_param0 [concrete = constants.%.6db]
@@ -691,9 +691,9 @@ fn CallReturnAbstract() {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Return.decl: %Return.type = fn_decl @Return [concrete = constants.%Return] {
// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Abstract.ref.loc19_27: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
// CHECK:STDOUT: %.loc19: Core.Form = init_form %Abstract.ref.loc19_27, call_param1 [concrete = constants.%.927]
@@ -776,9 +776,9 @@ fn CallReturnAbstract() {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] {
// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = value_binding_pattern d [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt, call_param0 [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc13_27.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc13_27.2: type = converted %.loc13_27.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type]
@@ -1004,7 +1004,7 @@ fn CallReturnAbstract() {
// CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {}
// CHECK:STDOUT: %ReturnAbstract.decl: %ReturnAbstract.type = fn_decl @ReturnAbstract [concrete = constants.%ReturnAbstract] {
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
// CHECK:STDOUT: %.loc6: Core.Form = init_form %Abstract.ref, call_param0 [concrete = constants.%.399]
@@ -218,7 +218,7 @@ var v5: {.m: Abstract};
// CHECK:STDOUT: %Abstract3.decl: type = class_decl @Abstract3 [concrete = constants.%Abstract3] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.patt: %pattern_type.7de = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.7de = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.7de = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %Abstract3 = value_param call_param0
// CHECK:STDOUT: %Abstract3.ref.loc6: type = name_ref Abstract3, file.%Abstract3.decl [concrete = constants.%Abstract3]
@@ -274,7 +274,7 @@ fn Var5() {
// CHECK:STDOUT: %Abstract3.decl: type = class_decl @Abstract3 [concrete = constants.%Abstract3] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.patt: %pattern_type.7de = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.7de = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.7de = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %Abstract3 = value_param call_param0
// CHECK:STDOUT: %Abstract3.ref.loc6: type = name_ref Abstract3, file.%Abstract3.decl [concrete = constants.%Abstract3]
@@ -245,7 +245,7 @@ class A {
// CHECK:STDOUT: %SOME_INTERNAL_CONSTANT: %i32 = value_binding SOME_INTERNAL_CONSTANT, %.loc6_45.2
// CHECK:STDOUT: %Circle.SomeInternalFunction.decl: %Circle.SomeInternalFunction.type = fn_decl @Circle.SomeInternalFunction [concrete = constants.%Circle.SomeInternalFunction] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -254,7 +254,7 @@ class A {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Circle.Make.decl: %Circle.Make.type = fn_decl @Circle.Make [concrete = constants.%Circle.Make] {
// CHECK:STDOUT: %return.patt: %pattern_type.fcb = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.fcb = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.fcb = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Circle [concrete = constants.%Circle]
// CHECK:STDOUT: %.loc12: Core.Form = init_form %Self.ref, call_param0 [concrete = constants.%.61a]
@@ -477,9 +477,9 @@ class A {
// CHECK:STDOUT: %.loc5: %Circle.elem = field_decl radius, element0 [concrete]
// CHECK:STDOUT: %Circle.GetRadius.decl: %Circle.GetRadius.type = fn_decl @Circle.GetRadius [concrete = constants.%Circle.GetRadius] {
// CHECK:STDOUT: %self.patt: %pattern_type.fcb = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.fcb = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.fcb = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc7: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -491,7 +491,7 @@ class A {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Circle.SomeInternalFunction.decl: %Circle.SomeInternalFunction.type = fn_decl @Circle.SomeInternalFunction [concrete = constants.%Circle.SomeInternalFunction] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc11: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -500,9 +500,9 @@ class A {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Circle.Compute.decl: %Circle.Compute.type = fn_decl @Circle.Compute [concrete = constants.%Circle.Compute] {
// CHECK:STDOUT: %self.patt: %pattern_type.fcb = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.fcb = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.fcb = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
+3 -3
View File
@@ -461,7 +461,7 @@ private class Redecl {}
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.patt: %pattern_type = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %ptr = value_param call_param0
// CHECK:STDOUT: %.loc4: type = splice_block %ptr [concrete = constants.%ptr] {
@@ -501,7 +501,7 @@ private class Redecl {}
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.patt: <error> = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: <error> = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: <error> = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: <error> = value_param call_param0
// CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = <error>] {
@@ -539,7 +539,7 @@ private class Redecl {}
// CHECK:STDOUT: %Test.import = import Test
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.patt: <error> = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: <error> = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: <error> = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: <error> = value_param call_param0
// CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = <error>] {
@@ -362,9 +362,9 @@ class B {
// CHECK:STDOUT: %.loc10: %Circle.elem = base_decl %Shape.ref, element0 [concrete]
// CHECK:STDOUT: %Circle.GetPosition.decl: %Circle.GetPosition.type = fn_decl @Circle.GetPosition [concrete = constants.%Circle.GetPosition] {
// CHECK:STDOUT: %self.patt: %pattern_type.fcb = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.fcb = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.fcb = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc12_36: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %i32.loc12_41: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -494,7 +494,7 @@ class B {
// CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete]
// CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc10: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -517,9 +517,9 @@ class B {
// CHECK:STDOUT: %.loc14: %C.elem = base_decl %B.ref, element0 [concrete]
// CHECK:STDOUT: %C.G.decl: %C.G.type = fn_decl @C.G [concrete = constants.%C.G] {
// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc15_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc15_26.2: type = converted %.loc15_26.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
@@ -650,7 +650,7 @@ class B {
// CHECK:STDOUT: %SOME_CONSTANT: %i32 = value_binding SOME_CONSTANT, %.loc5_38.2
// CHECK:STDOUT: %A.SomeProtectedFunction.decl: %A.SomeProtectedFunction.type = fn_decl @A.SomeProtectedFunction [concrete = constants.%A.SomeProtectedFunction] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -672,7 +672,7 @@ class B {
// CHECK:STDOUT: %.loc12: %B.elem = base_decl %A.ref, element0 [concrete]
// CHECK:STDOUT: %B.G.decl: %B.G.type = fn_decl @B.G [concrete = constants.%B.G] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc14: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -681,7 +681,7 @@ class B {
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.H.decl: %B.H.type = fn_decl @B.H [concrete = constants.%B.H] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -790,9 +790,9 @@ class B {
// CHECK:STDOUT: %.loc9: %Square.elem = base_decl %Shape.ref, element0 [concrete]
// CHECK:STDOUT: %Square.GetPosition.decl: %Square.GetPosition.type = fn_decl @Square.GetPosition [concrete = constants.%Square.GetPosition] {
// CHECK:STDOUT: %self.patt: %pattern_type.1d2 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1d2 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1d2 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc11: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -1127,7 +1127,7 @@ class B {
// CHECK:STDOUT: %.loc16: %C.elem = base_decl %B.ref, element0 [concrete]
// CHECK:STDOUT: %C.G1.decl: %C.G1.type = fn_decl @C.G1 [concrete = constants.%C.G1] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -1385,7 +1385,7 @@ class B {
// CHECK:STDOUT: %.loc14: %B.elem = field_decl internal, element0 [concrete]
// CHECK:STDOUT: %B.G.decl: %B.G.type = fn_decl @B.G [concrete = constants.%B.G] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -1394,9 +1394,9 @@ class B {
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.SomeFunc.decl: %B.SomeFunc.type = fn_decl @B.SomeFunc [concrete = constants.%B.SomeFunc] {
// CHECK:STDOUT: %self.patt: %pattern_type.1f4 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc36: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -1494,7 +1494,7 @@ class B {
// CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete]
// CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.1f4 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %B = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B]
@@ -1576,7 +1576,7 @@ class B {
// CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete]
// CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.1f4 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %B = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B]
+2 -2
View File
@@ -49,7 +49,7 @@ fn G(x: X) {
// CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {}
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %x.patt: %pattern_type = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %X = value_param call_param0
// CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -60,7 +60,7 @@ fn G(x: X) {
// CHECK:STDOUT: class @X {
// CHECK:STDOUT: %X.F.decl: %X.F.type = fn_decl @X.F [concrete = constants.%X.F] {
// CHECK:STDOUT: %self.patt: %pattern_type = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %X = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%X [concrete = constants.%X]
+1 -1
View File
@@ -175,7 +175,7 @@ interface I {
// CHECK:STDOUT: %AdaptNotExtend.decl: type = class_decl @AdaptNotExtend [concrete = constants.%AdaptNotExtend] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.patt: %pattern_type = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %AdaptNotExtend = value_param call_param0
// CHECK:STDOUT: %AdaptNotExtend.ref: type = name_ref AdaptNotExtend, file.%AdaptNotExtend.decl [concrete = constants.%AdaptNotExtend]
+16 -16
View File
@@ -224,9 +224,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %AdaptCopyable.decl: type = class_decl @AdaptCopyable [concrete = constants.%AdaptCopyable] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.patt: %pattern_type.e78 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.e78 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.e78 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.e78 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.e78 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.e78 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AdaptCopyable.ref.loc8_27: type = name_ref AdaptCopyable, file.%AdaptCopyable.decl [concrete = constants.%AdaptCopyable]
// CHECK:STDOUT: %.loc8: Core.Form = init_form %AdaptCopyable.ref.loc8_27, call_param1 [concrete = constants.%.ec9]
@@ -238,9 +238,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InTuple.decl: %InTuple.type = fn_decl @InTuple [concrete = constants.%InTuple] {
// CHECK:STDOUT: %c.patt: %pattern_type.87f = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.87f = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.87f = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.87f = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.87f = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.87f = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AdaptCopyable.ref.loc27_41: type = name_ref AdaptCopyable, file.%AdaptCopyable.decl [concrete = constants.%AdaptCopyable]
// CHECK:STDOUT: %u32.loc27_56: type = type_literal constants.%u32 [concrete = constants.%u32]
@@ -400,9 +400,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %AdaptTuple.decl: type = class_decl @AdaptTuple [concrete = constants.%AdaptTuple] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.patt: %pattern_type.6cd = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.6cd = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.6cd = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.6cd = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6cd = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6cd = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AdaptTuple.ref.loc8_24: type = name_ref AdaptTuple, file.%AdaptTuple.decl [concrete = constants.%AdaptTuple]
// CHECK:STDOUT: %.loc8: Core.Form = init_form %AdaptTuple.ref.loc8_24, call_param1 [concrete = constants.%.d3a]
@@ -414,9 +414,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InTuple.decl: %InTuple.type = fn_decl @InTuple [concrete = constants.%InTuple] {
// CHECK:STDOUT: %c.patt: %pattern_type.6f4 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.6f4 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.6f4 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.6f4 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6f4 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6f4 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AdaptTuple.ref.loc13_38: type = name_ref AdaptTuple, file.%AdaptTuple.decl [concrete = constants.%AdaptTuple]
// CHECK:STDOUT: %u32.loc13_50: type = type_literal constants.%u32 [concrete = constants.%u32]
@@ -646,9 +646,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %AdaptNoncopyable.decl: type = class_decl @AdaptNoncopyable [concrete = constants.%AdaptNoncopyable] {} {}
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %a.patt: %pattern_type.92b = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.92b = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.92b = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.92b = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.92b = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.92b = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AdaptNoncopyable.ref.loc12_30: type = name_ref AdaptNoncopyable, file.%AdaptNoncopyable.decl [concrete = constants.%AdaptNoncopyable]
// CHECK:STDOUT: %.loc12: Core.Form = init_form %AdaptNoncopyable.ref.loc12_30, call_param1 [concrete = constants.%.0e5]
@@ -762,9 +762,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %AdaptNoncopyableIndirect.decl: type = class_decl @AdaptNoncopyableIndirect [concrete = constants.%AdaptNoncopyableIndirect] {} {}
// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] {
// CHECK:STDOUT: %a.patt: %pattern_type.ca6 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.ca6 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.ca6 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.ca6 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.ca6 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.ca6 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AdaptNoncopyableIndirect.ref.loc12_38: type = name_ref AdaptNoncopyableIndirect, file.%AdaptNoncopyableIndirect.decl [concrete = constants.%AdaptNoncopyableIndirect]
// CHECK:STDOUT: %.loc12: Core.Form = init_form %AdaptNoncopyableIndirect.ref.loc12_38, call_param1 [concrete = constants.%.5e2]
@@ -924,9 +924,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %AdaptStruct.decl: type = class_decl @AdaptStruct [concrete = constants.%AdaptStruct] {} {}
// CHECK:STDOUT: %I.decl: %I.type = fn_decl @I [concrete = constants.%I] {
// CHECK:STDOUT: %g.patt: %pattern_type.341 = value_binding_pattern g [concrete]
// CHECK:STDOUT: %g.param_patt: %pattern_type.341 = value_param_pattern %g.patt, call_param0 [concrete]
// CHECK:STDOUT: %g.param_patt: %pattern_type.341 = value_param_pattern %g.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.341 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.341 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.341 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AdaptStruct.ref.loc8_25: type = name_ref AdaptStruct, file.%AdaptStruct.decl [concrete = constants.%AdaptStruct]
// CHECK:STDOUT: %.loc8: Core.Form = init_form %AdaptStruct.ref.loc8_25, call_param1 [concrete = constants.%.b3b]
@@ -938,9 +938,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InTuple.decl: %InTuple.type = fn_decl @InTuple [concrete = constants.%InTuple] {
// CHECK:STDOUT: %c.patt: %pattern_type.b13 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.b13 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.b13 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.b13 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.b13 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.b13 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AdaptStruct.ref.loc13_39: type = name_ref AdaptStruct, file.%AdaptStruct.decl [concrete = constants.%AdaptStruct]
// CHECK:STDOUT: %u32.loc13_52: type = type_literal constants.%u32 [concrete = constants.%u32]
+15 -15
View File
@@ -189,7 +189,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %SomeClassAdapter.decl.loc15: type = class_decl @SomeClassAdapter [concrete = constants.%SomeClassAdapter] {} {}
// CHECK:STDOUT: %TestStaticMemberFunction.decl: %TestStaticMemberFunction.type = fn_decl @TestStaticMemberFunction [concrete = constants.%TestStaticMemberFunction] {
// CHECK:STDOUT: %a.patt: %pattern_type.31a = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0
// CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [concrete = constants.%SomeClassAdapter]
@@ -197,7 +197,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %TestAdapterMethod.decl: %TestAdapterMethod.type = fn_decl @TestAdapterMethod [concrete = constants.%TestAdapterMethod] {
// CHECK:STDOUT: %a.patt: %pattern_type.31a = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0
// CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [concrete = constants.%SomeClassAdapter]
@@ -227,7 +227,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %SomeClass.StaticMemberFunction.decl: %SomeClass.StaticMemberFunction.type = fn_decl @SomeClass.StaticMemberFunction [concrete = constants.%SomeClass.StaticMemberFunction] {} {}
// CHECK:STDOUT: %SomeClass.AdapterMethod.decl: %SomeClass.AdapterMethod.type = fn_decl @SomeClass.AdapterMethod [concrete = constants.%SomeClass.AdapterMethod] {
// CHECK:STDOUT: %self.patt: %pattern_type.31a = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.31a = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.31a = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %SomeClassAdapter = value_param call_param0
// CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [concrete = constants.%SomeClassAdapter]
@@ -305,7 +305,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %SomeClassAdapter.decl: type = class_decl @SomeClassAdapter [concrete = constants.%SomeClassAdapter] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.patt: %pattern_type.31a = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0
// CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl [concrete = constants.%SomeClassAdapter]
@@ -316,7 +316,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: class @SomeClass {
// CHECK:STDOUT: %SomeClass.F.decl: %SomeClass.F.type = fn_decl @SomeClass.F [concrete = constants.%SomeClass.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.ea0 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.ea0 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.ea0 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %SomeClass = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%SomeClass [concrete = constants.%SomeClass]
@@ -399,9 +399,9 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %SomeClassAdapter.decl: type = class_decl @SomeClassAdapter [concrete = constants.%SomeClassAdapter] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.patt: %pattern_type.31a = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.31a = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc13: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -485,9 +485,9 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %StructAdapter.decl: type = class_decl @StructAdapter [concrete = constants.%StructAdapter] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.patt: %pattern_type.7d8 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.7d8 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.7d8 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -559,9 +559,9 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %TupleAdapter.decl: type = class_decl @TupleAdapter [concrete = constants.%TupleAdapter] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.patt: %pattern_type.3a8 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.3a8 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.3a8 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -639,9 +639,9 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %MakeInt.decl: %MakeInt.type = fn_decl @MakeInt [concrete = constants.%MakeInt] {
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = value_binding_pattern N [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern %N.patt, call_param0 [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern %N.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc4_37.1: type = type_literal type [concrete = type]
// CHECK:STDOUT: %.loc4_37.2: Core.Form = init_form %.loc4_37.1, call_param1 [concrete = constants.%.b38]
@@ -660,9 +660,9 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %IntAdapter.decl: type = class_decl @IntAdapter [concrete = constants.%IntAdapter] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.patt: %pattern_type.f40 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.f40 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.f40 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc10: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
+4 -4
View File
@@ -209,7 +209,7 @@ var e: C = MakeAdaptC();
// CHECK:STDOUT: %c: %C = value_binding c, @__global_init.%.loc17_14.2
// CHECK:STDOUT: %MakeC.decl: %MakeC.type = fn_decl @MakeC [concrete = constants.%MakeC] {
// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %.loc19: Core.Form = init_form %C.ref, call_param0 [concrete = constants.%.768]
@@ -218,7 +218,7 @@ var e: C = MakeAdaptC();
// CHECK:STDOUT: }
// CHECK:STDOUT: %MakeAdaptC.decl: %MakeAdaptC.type = fn_decl @MakeAdaptC [concrete = constants.%MakeAdaptC] {
// CHECK:STDOUT: %return.patt: %pattern_type.507 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.507 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.507 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AdaptC.ref: type = name_ref AdaptC, file.%AdaptC.decl [concrete = constants.%AdaptC]
// CHECK:STDOUT: %.loc21: Core.Form = init_form %AdaptC.ref, call_param0 [concrete = constants.%.bec]
@@ -415,7 +415,7 @@ var e: C = MakeAdaptC();
// CHECK:STDOUT: %c: %C = value_binding c, <error> [concrete = <error>]
// CHECK:STDOUT: %MakeC.decl: %MakeC.type = fn_decl @MakeC [concrete = constants.%MakeC] {
// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %.loc35: Core.Form = init_form %C.ref, call_param0 [concrete = constants.%.768]
@@ -424,7 +424,7 @@ var e: C = MakeAdaptC();
// CHECK:STDOUT: }
// CHECK:STDOUT: %MakeAdaptC.decl: %MakeAdaptC.type = fn_decl @MakeAdaptC [concrete = constants.%MakeAdaptC] {
// CHECK:STDOUT: %return.patt: %pattern_type.507 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.507 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.507 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AdaptC.ref: type = name_ref AdaptC, file.%AdaptC.decl [concrete = constants.%AdaptC]
// CHECK:STDOUT: %.loc37: Core.Form = init_form %AdaptC.ref, call_param0 [concrete = constants.%.bec]
+7 -7
View File
@@ -107,9 +107,9 @@ fn Run() -> i32 {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc25_23: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25_23, call_param1 [concrete = constants.%.e54]
@@ -121,7 +121,7 @@ fn Run() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc29: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -133,9 +133,9 @@ fn Run() -> i32 {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc16_19: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16_19, call_param1 [concrete = constants.%.e54]
@@ -147,9 +147,9 @@ fn Run() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc20_19: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32.loc20_19, call_param1 [concrete = constants.%.e54]
@@ -72,9 +72,9 @@ class C {
// CHECK:STDOUT: class @C {
// CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] {
// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc16_17: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
+8 -8
View File
@@ -126,9 +126,9 @@ fn AccessBaseIndirect(p: Derived*) -> i32* {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %AccessDerived.decl: %AccessDerived.type = fn_decl @AccessDerived [concrete = constants.%AccessDerived] {
// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = value_binding_pattern d [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt, call_param0 [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc28: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -140,9 +140,9 @@ fn AccessBaseIndirect(p: Derived*) -> i32* {
// CHECK:STDOUT: }
// CHECK:STDOUT: %AccessBase.decl: %AccessBase.type = fn_decl @AccessBase [concrete = constants.%AccessBase] {
// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = value_binding_pattern d [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt, call_param0 [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc32: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -154,9 +154,9 @@ fn AccessBaseIndirect(p: Derived*) -> i32* {
// CHECK:STDOUT: }
// CHECK:STDOUT: %AccessDerivedIndirect.decl: %AccessDerivedIndirect.type = fn_decl @AccessDerivedIndirect [concrete = constants.%AccessDerivedIndirect] {
// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %ptr.loc36_45: type = ptr_type %i32 [concrete = constants.%ptr.235]
@@ -172,9 +172,9 @@ fn AccessBaseIndirect(p: Derived*) -> i32* {
// CHECK:STDOUT: }
// CHECK:STDOUT: %AccessBaseIndirect.decl: %AccessBaseIndirect.type = fn_decl @AccessBaseIndirect [concrete = constants.%AccessBaseIndirect] {
// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %ptr.loc40_42: type = ptr_type %i32 [concrete = constants.%ptr.235]
+2 -2
View File
@@ -59,9 +59,9 @@ fn F(p: Class*) -> Class* { return p; }
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %p.patt: %pattern_type.018 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.018 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.018 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.018 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Class.ref.loc17_20: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %ptr.loc17_25: type = ptr_type %Class.ref.loc17_20 [concrete = constants.%ptr.8e5]
+14 -14
View File
@@ -201,9 +201,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %Adapter.decl: type = class_decl @Adapter [concrete = constants.%Adapter] {} {}
// CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] {
// CHECK:STDOUT: %a.patt: %pattern_type.bf2 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc12: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc12: Core.Form = init_form %i32.loc12, call_param1 [concrete = constants.%.e54]
@@ -360,9 +360,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %ImportedAccess.decl: %ImportedAccess.type = fn_decl @ImportedAccess [concrete = constants.%ImportedAccess] {
// CHECK:STDOUT: %a.patt: %pattern_type.bf2 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.501 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.501 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.501 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32.loc6, call_param1 [concrete = constants.%.bb0]
@@ -499,9 +499,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %Adapter.decl: type = class_decl @Adapter [concrete = constants.%Adapter] {} {}
// CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] {
// CHECK:STDOUT: %a.patt: %pattern_type.bf2 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc12: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -743,9 +743,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %ImportedAccess.decl: %ImportedAccess.type = fn_decl @ImportedAccess [concrete = constants.%ImportedAccess] {
// CHECK:STDOUT: %a.patt: %pattern_type.bf2 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.bf2 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.501 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.501 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.501 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32, call_param1 [concrete = constants.%.bb0]
@@ -878,9 +878,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Convert.decl: %Convert.type = fn_decl @Convert [concrete = constants.%Convert] {
// CHECK:STDOUT: %a.patt: %pattern_type.1fb = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.1fb = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.1fb = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc8_32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc8_32: Core.Form = init_form %i32.loc8_32, call_param1 [concrete = constants.%.e54]
@@ -1015,9 +1015,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %ImportedConvert.decl: %ImportedConvert.type = fn_decl @ImportedConvert [concrete = constants.%ImportedConvert] {
// CHECK:STDOUT: %a.patt: %pattern_type.1fb = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.1fb = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.1fb = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc6_40: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc6_40: Core.Form = init_form %i32.loc6_40, call_param1 [concrete = constants.%.e54]
@@ -1034,9 +1034,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
// CHECK:STDOUT: %ImportedConvertLocal.decl: %ImportedConvertLocal.type = fn_decl @ImportedConvertLocal [concrete = constants.%ImportedConvertLocal] {
// CHECK:STDOUT: %a.patt: %pattern_type.014 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.014 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.014 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc14_43: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -172,9 +172,9 @@ fn H() {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %DoubleFieldAccess.decl: %DoubleFieldAccess.type = fn_decl @DoubleFieldAccess [concrete = constants.%DoubleFieldAccess] {
// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = value_binding_pattern d [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt, call_param0 [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -355,9 +355,9 @@ fn H() {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %ImportedDoubleFieldAccess.decl: %ImportedDoubleFieldAccess.type = fn_decl @ImportedDoubleFieldAccess [concrete = constants.%ImportedDoubleFieldAccess] {
// CHECK:STDOUT: %d.patt: %pattern_type.9f6 = value_binding_pattern d [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt, call_param0 [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.9f6 = value_param_pattern %d.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.501 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.501 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.501 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32, call_param1 [concrete = constants.%.bb0]
@@ -641,7 +641,7 @@ fn H() {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %X.G.decl: @X.%X.G.type (%X.G.type.20eb90.1) = fn_decl @X.G [symbolic = @X.%X.G (constants.%X.G.f9f685.1)] {
// CHECK:STDOUT: %return.patt: @X.G.%pattern_type (%pattern_type.51d) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @X.G.%pattern_type (%pattern_type.51d) = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: @X.G.%pattern_type (%pattern_type.51d) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %U.ref: type = name_ref U, @X.%U.loc4_14.2 [symbolic = %U (constants.%U)]
// CHECK:STDOUT: %.loc5_13.3: Core.Form = init_form %U.ref, call_param0 [symbolic = %.loc5_13.2 (constants.%.41b)]
+4 -4
View File
@@ -123,9 +123,9 @@ class Declaration(T:! type);
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Class.GetAddr.decl: @Class.%Class.GetAddr.type (%Class.GetAddr.type) = fn_decl @Class.GetAddr [symbolic = @Class.%Class.GetAddr (constants.%Class.GetAddr)] {
// CHECK:STDOUT: %self.patt: @Class.GetAddr.%pattern_type.loc6_18 (%pattern_type.893) = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.GetAddr.%pattern_type.loc6_18 (%pattern_type.893) = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.GetAddr.%pattern_type.loc6_18 (%pattern_type.893) = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: @Class.GetAddr.%pattern_type.loc6_32 (%pattern_type.65a) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.GetAddr.%pattern_type.loc6_32 (%pattern_type.65a) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.GetAddr.%pattern_type.loc6_32 (%pattern_type.65a) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.035)]
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
@@ -143,9 +143,9 @@ class Declaration(T:! type);
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.GetValue.decl: @Class.%Class.GetValue.type (%Class.GetValue.type) = fn_decl @Class.GetValue [symbolic = @Class.%Class.GetValue (constants.%Class.GetValue)] {
// CHECK:STDOUT: %self.patt: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.893) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.893) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.893) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: @Class.GetValue.%pattern_type.loc10_29 (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.GetValue.%pattern_type.loc10_29 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.GetValue.%pattern_type.loc10_29 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.035)]
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
+4 -4
View File
@@ -640,7 +640,7 @@ class Outer(T:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Inner.A.decl: @Inner.%Inner.A.type (%Inner.A.type.c2f) = fn_decl @Inner.A [symbolic = @Inner.%Inner.A (constants.%Inner.A.07b)] {
// CHECK:STDOUT: %return.patt: @Inner.A.%pattern_type (%pattern_type.130) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Inner.A.%pattern_type (%pattern_type.130) = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: @Inner.A.%pattern_type (%pattern_type.130) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic]
// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2_13.2 [symbolic = %T (constants.%T)]
@@ -651,7 +651,7 @@ class Outer(T:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Inner.B.decl: @Inner.%Inner.B.type (%Inner.B.type.f42) = fn_decl @Inner.B [symbolic = @Inner.%Inner.B (constants.%Inner.B.b14)] {
// CHECK:STDOUT: %return.patt: @Inner.B.%pattern_type (%pattern_type.760) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Inner.B.%pattern_type (%pattern_type.760) = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: @Inner.B.%pattern_type (%pattern_type.760) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic]
// CHECK:STDOUT: %U.ref: type = name_ref U, @Inner.%U.loc3_15.2 [symbolic = %U (constants.%U)]
@@ -662,7 +662,7 @@ class Outer(T:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Inner.C.decl: @Inner.%Inner.C.type (%Inner.C.type.912) = fn_decl @Inner.C [symbolic = @Inner.%Inner.C (constants.%Inner.C.125)] {
// CHECK:STDOUT: %return.patt: @Inner.C.%pattern_type (%pattern_type.81e) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Inner.C.%pattern_type (%pattern_type.81e) = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: @Inner.C.%pattern_type (%pattern_type.81e) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc10_15: @Inner.C.%Inner.type (%Inner.type.e0d) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.ada)]
// CHECK:STDOUT: %Inner.ref: @Inner.C.%Inner.type (%Inner.type.e0d) = name_ref Inner, %.loc10_15 [symbolic = %Inner.generic (constants.%Inner.generic.ada)]
@@ -674,7 +674,7 @@ class Outer(T:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Inner.D.decl: @Inner.%Inner.D.type (%Inner.D.type.cd0) = fn_decl @Inner.D [symbolic = @Inner.%Inner.D (constants.%Inner.D.147)] {
// CHECK:STDOUT: %return.patt: @Inner.D.%pattern_type (%pattern_type.0d1) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Inner.D.%pattern_type (%pattern_type.0d1) = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: @Inner.D.%pattern_type (%pattern_type.0d1) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc13_15: @Inner.D.%Inner.type (%Inner.type.e0d) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.ada)]
// CHECK:STDOUT: %Inner.ref: @Inner.D.%Inner.type (%Inner.type.e0d) = name_ref Inner, %.loc13_15 [symbolic = %Inner.generic (constants.%Inner.generic.ada)]
@@ -136,9 +136,9 @@ fn F(a: A(0)*) {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Int.decl: %Int.type.b3e = fn_decl @Int.loc2 [concrete = constants.%Int.d6d] {
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = value_binding_pattern N [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern %N.patt, call_param0 [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern %N.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc2_33.1: type = type_literal type [concrete = type]
// CHECK:STDOUT: %.loc2_33.2: Core.Form = init_form %.loc2_33.1, call_param1 [concrete = constants.%.b38]
@@ -166,7 +166,7 @@ fn F(a: A(0)*) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.patt: %pattern_type.f32 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.f32 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.f32 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %ptr.0e2 = value_param call_param0
// CHECK:STDOUT: %.loc12_13: type = splice_block %ptr.loc12 [concrete = constants.%ptr.0e2] {
+6 -6
View File
@@ -134,9 +134,9 @@ fn H(U:! Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.patt: %pattern_type.1c2 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.1c2 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.1c2 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc9_24: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc9_24: Core.Form = init_form %i32.loc9_24, call_param1 [concrete = constants.%.e54]
@@ -153,9 +153,9 @@ fn H(U:! Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %T.patt: %pattern_type.ce2 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %c.patt: @G.%pattern_type.loc13_21 (%pattern_type.c542f5.1) = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: @G.%pattern_type.loc13_21 (%pattern_type.c542f5.1) = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: @G.%pattern_type.loc13_21 (%pattern_type.c542f5.1) = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: @G.%pattern_type.loc13_34 (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc13_34 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc13_34 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc13_37: %Copy.type = name_ref T, %T.loc13_6.2 [symbolic = %T.loc13_6.1 (constants.%T.035)]
// CHECK:STDOUT: %T.as_type.loc13_37: type = facet_access_type %T.ref.loc13_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
@@ -182,9 +182,9 @@ fn H(U:! Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] {
// CHECK:STDOUT: %U.patt: %pattern_type.ce2 = symbolic_binding_pattern U, 0 [concrete]
// CHECK:STDOUT: %c.patt: @H.%pattern_type.loc17_21 (%pattern_type.c542f5.2) = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: @H.%pattern_type.loc17_21 (%pattern_type.c542f5.2) = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: @H.%pattern_type.loc17_21 (%pattern_type.c542f5.2) = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: @H.%pattern_type.loc17_34 (%pattern_type.9b9f0c.3) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @H.%pattern_type.loc17_34 (%pattern_type.9b9f0c.3) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @H.%pattern_type.loc17_34 (%pattern_type.9b9f0c.3) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %U.ref.loc17_37: %Copy.type = name_ref U, %U.loc17_6.2 [symbolic = %U.loc17_6.1 (constants.%U.035)]
// CHECK:STDOUT: %U.as_type.loc17_37: type = facet_access_type %U.ref.loc17_37 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)]
+5 -5
View File
@@ -177,7 +177,7 @@ class Class(U:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %return.patt: %pattern_type.cb5 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb5 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb5 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, file.%CompleteClass.decl [concrete = constants.%CompleteClass.generic]
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -208,7 +208,7 @@ class Class(U:! type) {
// CHECK:STDOUT: %.loc7: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem) = field_decl n, element0 [concrete]
// CHECK:STDOUT: %CompleteClass.F.decl: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type) = fn_decl @CompleteClass.F [symbolic = @CompleteClass.%CompleteClass.F (constants.%CompleteClass.F)] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc8_13: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -361,7 +361,7 @@ class Class(U:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %return.patt: %pattern_type.b91 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.b91 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.b91 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, imports.%Main.CompleteClass [concrete = constants.%CompleteClass.generic]
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -548,7 +548,7 @@ class Class(U:! type) {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %UseMethod.decl: %UseMethod.type = fn_decl @UseMethod [concrete = constants.%UseMethod] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5, call_param0 [concrete = constants.%.437]
@@ -557,7 +557,7 @@ class Class(U:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %UseField.decl: %UseField.type = fn_decl @UseField [concrete = constants.%UseField] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc10: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc10: Core.Form = init_form %i32.loc10, call_param0 [concrete = constants.%.437]
+8 -8
View File
@@ -125,9 +125,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %InitFromStructGeneric.decl: %InitFromStructGeneric.type = fn_decl @InitFromStructGeneric [concrete = constants.%InitFromStructGeneric] {
// CHECK:STDOUT: %T.patt: %pattern_type.ce2 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %x.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %return.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc9_50: %Copy.type = name_ref T, %T.loc9_26.2 [symbolic = %T.loc9_26.1 (constants.%T.035)]
// CHECK:STDOUT: %T.as_type.loc9_50: type = facet_access_type %T.ref.loc9_50 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
@@ -151,9 +151,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InitFromStructSpecific.decl: %InitFromStructSpecific.type = fn_decl @InitFromStructSpecific [concrete = constants.%InitFromStructSpecific] {
// CHECK:STDOUT: %x.patt: %pattern_type.7ce = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.7ce = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.7ce = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc14_38: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc14: Core.Form = init_form %i32.loc14_38, call_param1 [concrete = constants.%.e54]
@@ -343,9 +343,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %InitFromAdaptedGeneric.decl: %InitFromAdaptedGeneric.type = fn_decl @InitFromAdaptedGeneric [concrete = constants.%InitFromAdaptedGeneric] {
// CHECK:STDOUT: %T.patt: %pattern_type.ce2 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %x.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %return.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc9_51: %Copy.type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.035)]
// CHECK:STDOUT: %T.as_type.loc9_51: type = facet_access_type %T.ref.loc9_51 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
@@ -369,9 +369,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InitFromAdaptedSpecific.decl: %InitFromAdaptedSpecific.type = fn_decl @InitFromAdaptedSpecific [concrete = constants.%InitFromAdaptedSpecific] {
// CHECK:STDOUT: %x.patt: %pattern_type.7ce = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.7ce = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.7ce = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc13_39: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc13: Core.Form = init_form %i32.loc13_39, call_param1 [concrete = constants.%.e54]
@@ -114,9 +114,9 @@ class C(T:! Core.Copy) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] {
// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc6_17: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.035)]
// CHECK:STDOUT: %T.as_type.loc6_17: type = facet_access_type %T.ref.loc6_17 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
@@ -134,9 +134,9 @@ class C(T:! Core.Copy) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: @Class.%Class.G.type (%Class.G.type) = fn_decl @Class.G [symbolic = @Class.%Class.G (constants.%Class.G)] {
// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc10_8 (%pattern_type.893) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc10_8 (%pattern_type.893) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc10_8 (%pattern_type.893) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc10_22 (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc10_22 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc10_22 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.035)]
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
@@ -163,9 +163,9 @@ fn Generic(unused T:! ()).WrongType() {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [symbolic = constants.%Class.F] {
// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc11_18: type = splice_block %Copy.ref [concrete = constants.%Copy.type] {
// CHECK:STDOUT: <elided>
@@ -189,9 +189,9 @@ fn Generic(unused T:! ()).WrongType() {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [symbolic = constants.%Class.G] {
// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.893) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.893) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.893) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc15_18: type = splice_block %Copy.ref [concrete = constants.%Copy.type] {
// CHECK:STDOUT: <elided>
@@ -232,9 +232,9 @@ fn Generic(unused T:! ()).WrongType() {}
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] {
// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc6_17: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T.loc6 (constants.%T.035)]
// CHECK:STDOUT: %T.as_type.loc6_17: type = facet_access_type %T.ref.loc6_17 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
@@ -252,9 +252,9 @@ fn Generic(unused T:! ()).WrongType() {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: @Class.%Class.G.type (%Class.G.type) = fn_decl @Class.G [symbolic = @Class.%Class.G (constants.%Class.G)] {
// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.893) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.893) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.893) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.9b9f0c.2) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.9b9f0c.2) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc7: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T.loc7 (constants.%T.035)]
// CHECK:STDOUT: %T.as_type.loc7: type = facet_access_type %T.ref.loc7 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
@@ -412,9 +412,9 @@ fn Generic(unused T:! ()).WrongType() {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [symbolic = constants.%B.F] {
// CHECK:STDOUT: %self.patt: @B.F.%pattern_type.loc7_10 (%pattern_type.830) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @B.F.%pattern_type.loc7_10 (%pattern_type.830) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @B.F.%pattern_type.loc7_10 (%pattern_type.830) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %a.patt: @B.F.%pattern_type.loc7_22 (%pattern_type.51d) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @B.F.%pattern_type.loc7_22 (%pattern_type.51d) = value_param_pattern %a.patt, call_param1 [concrete]
// CHECK:STDOUT: %a.param_patt: @B.F.%pattern_type.loc7_22 (%pattern_type.51d) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc11_10.1: type = splice_block %.loc11_10.2 [concrete = type] {
// CHECK:STDOUT: <elided>
@@ -477,9 +477,9 @@ fn Generic(unused T:! ()).WrongType() {}
// CHECK:STDOUT: class {
// CHECK:STDOUT: %B.F.decl: @B.%B.F.type (%B.F.type) = fn_decl @B.F [symbolic = @B.%B.F (constants.%B.F)] {
// CHECK:STDOUT: %self.patt: @B.F.%pattern_type.loc7_10 (%pattern_type.830) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @B.F.%pattern_type.loc7_10 (%pattern_type.830) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @B.F.%pattern_type.loc7_10 (%pattern_type.830) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %a.patt: @B.F.%pattern_type.loc7_22 (%pattern_type.51d) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @B.F.%pattern_type.loc7_22 (%pattern_type.51d) = value_param_pattern %a.patt, call_param1 [concrete]
// CHECK:STDOUT: %a.param_patt: @B.F.%pattern_type.loc7_22 (%pattern_type.51d) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc7: @B.F.%B (%B) = value_param call_param0
// CHECK:STDOUT: %.loc7_16.1: type = splice_block %Self.ref.loc7 [symbolic = %B (constants.%B)] {
+10 -10
View File
@@ -181,7 +181,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc12: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc12: Core.Form = init_form %i32.loc12, call_param0 [concrete = constants.%.437]
@@ -202,9 +202,9 @@ fn Test() -> i32 {
// CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [symbolic = @Outer.%Inner (constants.%Inner.bcf)] {} {}
// CHECK:STDOUT: %Outer.F.decl: @Outer.%Outer.F.type (%Outer.F.type.2fb) = fn_decl @Outer.F [symbolic = @Outer.%Outer.F (constants.%Outer.F.5e3)] {
// CHECK:STDOUT: %n.patt: @Outer.F.%pattern_type.loc9_8 (%pattern_type.9b9f0c.2) = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: @Outer.F.%pattern_type.loc9_8 (%pattern_type.9b9f0c.2) = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: @Outer.F.%pattern_type.loc9_8 (%pattern_type.9b9f0c.2) = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %return.patt: @Outer.F.%pattern_type.loc9_14 (%pattern_type.611) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Outer.F.%pattern_type.loc9_14 (%pattern_type.611) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @Outer.F.%pattern_type.loc9_14 (%pattern_type.611) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_17.2: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%T.035) [symbolic = %Inner (constants.%Inner.bcf)]
// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc9_17.2 [symbolic = %Inner (constants.%Inner.bcf)]
@@ -532,7 +532,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {}
// CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc22: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc22: Core.Form = init_form %i32.loc22, call_param0 [concrete = constants.%.437]
@@ -554,9 +554,9 @@ fn Test() -> i32 {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %Inner.WithSelf.F.decl: @Inner.WithSelf.%Inner.WithSelf.F.type (%Inner.WithSelf.F.type.675) = fn_decl @Inner.WithSelf.F [symbolic = @Inner.WithSelf.%Inner.WithSelf.F (constants.%Inner.WithSelf.F.06f)] {
// CHECK:STDOUT: %self.patt: @Inner.WithSelf.F.%pattern_type.loc6_10 (%pattern_type.72a) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_10 (%pattern_type.72a) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_10 (%pattern_type.72a) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: @Inner.WithSelf.F.%pattern_type.loc6_24 (%pattern_type.51d) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_24 (%pattern_type.51d) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_24 (%pattern_type.51d) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %.loc6_27.2: Core.Form = init_form %T.ref, call_param1 [symbolic = %.loc6_27.1 (constants.%.3cf)]
@@ -598,9 +598,9 @@ fn Test() -> i32 {
// CHECK:STDOUT: impl: %Self.ref as %Inner.ref {
// CHECK:STDOUT: %C.as.Inner.impl.F.decl: @C.as.Inner.impl.%C.as.Inner.impl.F.type (%C.as.Inner.impl.F.type.72e) = fn_decl @C.as.Inner.impl.F [symbolic = @C.as.Inner.impl.%C.as.Inner.impl.F (constants.%C.as.Inner.impl.F.28d)] {
// CHECK:STDOUT: %self.patt: @C.as.Inner.impl.F.%pattern_type.loc11_12 (%pattern_type.fe7) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @C.as.Inner.impl.F.%pattern_type.loc11_12 (%pattern_type.fe7) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @C.as.Inner.impl.F.%pattern_type.loc11_12 (%pattern_type.fe7) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: @C.as.Inner.impl.F.%pattern_type.loc11_23 (%pattern_type.51d) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @C.as.Inner.impl.F.%pattern_type.loc11_23 (%pattern_type.51d) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @C.as.Inner.impl.F.%pattern_type.loc11_23 (%pattern_type.51d) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %.loc11_26.3: Core.Form = init_form %T.ref, call_param1 [symbolic = %.loc11_26.2 (constants.%.3cf)]
@@ -628,9 +628,9 @@ fn Test() -> i32 {
// CHECK:STDOUT: impl @D.as.Inner.impl: %Self.ref as %Inner.ref {
// CHECK:STDOUT: %D.as.Inner.impl.F.decl: %D.as.Inner.impl.F.type = fn_decl @D.as.Inner.impl.F [concrete = constants.%D.as.Inner.impl.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.9c8 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9c8 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9c8 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -117,9 +117,9 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] {
// CHECK:STDOUT: %c.patt: %pattern_type.36c = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.36c = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.36c = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.b74 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.b74 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.b74 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %A.ref.loc23_39: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %B.ref.loc23: type = name_ref B, file.%B.decl [concrete = constants.%B]
@@ -138,9 +138,9 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallGenericMethodWithNonDeducedParam.decl: %CallGenericMethodWithNonDeducedParam.type = fn_decl @CallGenericMethodWithNonDeducedParam [concrete = constants.%CallGenericMethodWithNonDeducedParam] {
// CHECK:STDOUT: %c.patt: %pattern_type.36c = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.36c = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.36c = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.b74 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.b74 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.b74 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %A.ref.loc27_58: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %B.ref.loc27: type = name_ref B, file.%B.decl [concrete = constants.%B]
@@ -188,7 +188,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) {
// CHECK:STDOUT: %Class.Get.decl: @Class.%Class.Get.type (%Class.Get.type.ab7) = fn_decl @Class.Get [symbolic = @Class.%Class.Get (constants.%Class.Get.ecd)] {
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete]
// CHECK:STDOUT: %return.patt: @Class.Get.%pattern_type (%pattern_type.eee) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.Get.%pattern_type (%pattern_type.eee) = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.Get.%pattern_type (%pattern_type.eee) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc18_13.2 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %U.ref.loc19_27: type = name_ref U, %U.loc19_10.2 [symbolic = %U.loc19_10.1 (constants.%U)]
@@ -205,10 +205,10 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.GetNoDeduce.decl: @Class.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.cf2) = fn_decl @Class.GetNoDeduce [symbolic = @Class.%Class.GetNoDeduce (constants.%Class.GetNoDeduce.1a5)] {
// CHECK:STDOUT: %x.patt: @Class.GetNoDeduce.%pattern_type.loc20_18 (%pattern_type.51d) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @Class.GetNoDeduce.%pattern_type.loc20_18 (%pattern_type.51d) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @Class.GetNoDeduce.%pattern_type.loc20_18 (%pattern_type.51d) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete]
// CHECK:STDOUT: %return.patt: @Class.GetNoDeduce.%pattern_type.loc20_34 (%pattern_type.eee) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.GetNoDeduce.%pattern_type.loc20_34 (%pattern_type.eee) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.GetNoDeduce.%pattern_type.loc20_34 (%pattern_type.eee) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc20_38: type = name_ref T, @Class.%T.loc18_13.2 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %U.ref.loc20_41: type = name_ref U, %U.loc20_24.2 [symbolic = %U.loc20_24.1 (constants.%U)]
+2 -2
View File
@@ -98,7 +98,7 @@ class Class(T:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Class.MakeSelf.decl: @Class.%Class.MakeSelf.type (%Class.MakeSelf.type) = fn_decl @Class.MakeSelf [symbolic = @Class.%Class.MakeSelf (constants.%Class.MakeSelf)] {
// CHECK:STDOUT: %return.patt: @Class.MakeSelf.%pattern_type (%pattern_type.466) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.MakeSelf.%pattern_type (%pattern_type.466) = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.MakeSelf.%pattern_type (%pattern_type.466) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc18_20.2: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)]
// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc18_20.2 [symbolic = %Class (constants.%Class)]
@@ -108,7 +108,7 @@ class Class(T:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.MakeClass.decl: @Class.%Class.MakeClass.type (%Class.MakeClass.type) = fn_decl @Class.MakeClass [symbolic = @Class.%Class.MakeClass (constants.%Class.MakeClass)] {
// CHECK:STDOUT: %return.patt: @Class.MakeClass.%pattern_type (%pattern_type.466) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.MakeClass.%pattern_type (%pattern_type.466) = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: @Class.MakeClass.%pattern_type (%pattern_type.466) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic]
// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_13.2 [symbolic = %T (constants.%T)]
+2 -2
View File
@@ -123,7 +123,7 @@ fn Run() {
// CHECK:STDOUT: class @ForwardDeclared {
// CHECK:STDOUT: %ForwardDeclared.F.decl: %ForwardDeclared.F.type = fn_decl @ForwardDeclared.F [concrete = constants.%ForwardDeclared.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.af1 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.af1 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.af1 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %ForwardDeclared = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%ForwardDeclared [concrete = constants.%ForwardDeclared]
@@ -131,7 +131,7 @@ fn Run() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %ForwardDeclared.G.decl: %ForwardDeclared.G.type = fn_decl @ForwardDeclared.G [concrete = constants.%ForwardDeclared.G] {
// CHECK:STDOUT: %self.patt: %pattern_type.af1 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.af1 = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.af1 = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %ForwardDeclared = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%ForwardDeclared [concrete = constants.%ForwardDeclared]
+3 -3
View File
@@ -148,7 +148,7 @@ class Derived {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] {
// CHECK:STDOUT: %return.patt: %pattern_type.db9 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.db9 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.db9 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived]
// CHECK:STDOUT: %.loc13: Core.Form = init_form %Derived.ref, call_param0 [concrete = constants.%.b42]
@@ -157,9 +157,9 @@ class Derived {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] {
// CHECK:STDOUT: %d.patt: %pattern_type.db9 = value_binding_pattern d [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.db9 = value_param_pattern %d.patt, call_param0 [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.db9 = value_param_pattern %d.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc17_27: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %i32.loc17_32: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -90,9 +90,9 @@ fn Access(p: Derived*) -> i32* {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] {
// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.fe8 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %ptr.loc28_30: type = ptr_type %i32 [concrete = constants.%ptr.235]
@@ -96,7 +96,7 @@ fn Call(p: Derived*) {
// CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {}
// CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.101 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc21: ref %Base = ref_param call_param0
// CHECK:STDOUT: %Self.ref.loc21: type = name_ref Self, constants.%Base [concrete = constants.%Base]
@@ -105,7 +105,7 @@ fn Call(p: Derived*) {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {
// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %ptr.f74 = value_param call_param0
// CHECK:STDOUT: %.loc29: type = splice_block %ptr [concrete = constants.%ptr.f74] {
@@ -121,7 +121,7 @@ fn Call(p: Derived*) {
// CHECK:STDOUT: %.loc16: %Base.elem = field_decl a, element0 [concrete]
// CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.101 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc18: ref %Base = ref_param call_param0
// CHECK:STDOUT: %Self.ref.loc18: type = name_ref Self, constants.%Base [concrete = constants.%Base]
@@ -105,9 +105,9 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: %Derived.decl.loc22: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {
// CHECK:STDOUT: %a.patt: %pattern_type.9f6 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.9f6 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.9f6 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc29: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -119,9 +119,9 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallIndirect.decl: %CallIndirect.type = fn_decl @CallIndirect [concrete = constants.%CallIndirect] {
// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc33_33: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -136,9 +136,9 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %PassDerivedToBase.decl: %PassDerivedToBase.type = fn_decl @PassDerivedToBase [concrete = constants.%PassDerivedToBase] {
// CHECK:STDOUT: %a.patt: %pattern_type.9f6 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.9f6 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.9f6 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc37: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -150,9 +150,9 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %PassDerivedToBaseIndirect.decl: %PassDerivedToBaseIndirect.type = fn_decl @PassDerivedToBaseIndirect [concrete = constants.%PassDerivedToBaseIndirect] {
// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc41_46: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -172,7 +172,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: %.loc23: %Derived.elem = base_decl %Base.ref, element0 [concrete]
// CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -180,7 +180,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Derived.G.decl: %Derived.G.type = fn_decl @Derived.G [concrete = constants.%Derived.G] {
// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -201,9 +201,9 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: class @Base {
// CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -215,9 +215,9 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Base.G.decl: %Base.G.type = fn_decl @Base.G [concrete = constants.%Base.G] {
// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc19: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -98,13 +98,13 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {}
// CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {
// CHECK:STDOUT: %a.patt: %pattern_type.f29 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.f29 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.f29 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.191 = value_binding_pattern b [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.191 = value_param_pattern %b.patt, call_param1 [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.191 = value_param_pattern %b.patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.506 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.506 = value_param_pattern %c.patt, call_param2 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.506 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type.415 = value_binding_pattern d [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.415 = value_param_pattern %d.patt, call_param3 [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.415 = value_param_pattern %d.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %ptr.643 = value_param call_param0
// CHECK:STDOUT: %.loc33_13: type = splice_block %ptr.loc33_13 [concrete = constants.%ptr.643] {
@@ -136,7 +136,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: class @A {
// CHECK:STDOUT: %A.F.decl: %A.F.type = fn_decl @A.F [concrete = constants.%A.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.1ab = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1ab = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %A = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%A [concrete = constants.%A]
@@ -155,7 +155,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: %.loc20: %B.elem = base_decl %A.ref, element0 [concrete]
// CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.1f4 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1f4 = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %B = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B]
@@ -177,7 +177,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: %.loc25: %C.elem = base_decl %B.ref, element0 [concrete]
// CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C]
@@ -215,9 +215,9 @@ fn PassConstB(p: const B) {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %ConvertCToB.decl: %ConvertCToB.type = fn_decl @ConvertCToB [concrete = constants.%ConvertCToB] {
// CHECK:STDOUT: %p.patt: %pattern_type.506 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.191 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.191 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.191 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B]
// CHECK:STDOUT: %ptr.loc19_27: type = ptr_type %B.ref [concrete = constants.%ptr.27c]
@@ -233,9 +233,9 @@ fn PassConstB(p: const B) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %ConvertBToA.decl: %ConvertBToA.type = fn_decl @ConvertBToA [concrete = constants.%ConvertBToA] {
// CHECK:STDOUT: %p.patt: %pattern_type.191 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.191 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.191 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.f29 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %ptr.loc20_27: type = ptr_type %A.ref [concrete = constants.%ptr.643]
@@ -251,9 +251,9 @@ fn PassConstB(p: const B) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %ConvertCToA.decl: %ConvertCToA.type = fn_decl @ConvertCToA [concrete = constants.%ConvertCToA] {
// CHECK:STDOUT: %p.patt: %pattern_type.506 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.f29 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %ptr.loc21_27: type = ptr_type %A.ref [concrete = constants.%ptr.643]
@@ -269,7 +269,7 @@ fn PassConstB(p: const B) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %ConvertValue.decl: %ConvertValue.type = fn_decl @ConvertValue [concrete = constants.%ConvertValue] {
// CHECK:STDOUT: %c.patt: %pattern_type.7c7 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.7c7 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
@@ -277,9 +277,9 @@ fn PassConstB(p: const B) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %ConvertRef.decl: %ConvertRef.type = fn_decl @ConvertRef [concrete = constants.%ConvertRef] {
// CHECK:STDOUT: %c.patt: %pattern_type.506 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.506 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.506 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.f29 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.f29 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %A.ref.loc27: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %ptr.loc27_26: type = ptr_type %A.ref.loc27 [concrete = constants.%ptr.643]
@@ -85,7 +85,7 @@ fn Run() {
// CHECK:STDOUT: class @Base {
// CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Base = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base]
@@ -93,7 +93,7 @@ fn Run() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Base.Unused.decl: %Base.Unused.type = fn_decl @Base.Unused [concrete = constants.%Base.Unused] {
// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Base = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base]
@@ -122,9 +122,9 @@ fn Call(p: Derived*) -> i32 {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Derived.SelfBase.decl: %Derived.SelfBase.type = fn_decl @Derived.SelfBase [concrete = constants.%Derived.SelfBase] {
// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc26: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc26: Core.Form = init_form %i32.loc26, call_param1 [concrete = constants.%.e54]
@@ -136,7 +136,7 @@ fn Call(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Derived.RefSelfBase.decl: %Derived.RefSelfBase.type = fn_decl @Derived.RefSelfBase [concrete = constants.%Derived.RefSelfBase] {
// CHECK:STDOUT: %self.patt: %pattern_type.101 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc30: ref %Base = ref_param call_param0
// CHECK:STDOUT: %Base.ref.loc30: type = name_ref Base, file.%Base.decl [concrete = constants.%Base]
@@ -144,9 +144,9 @@ fn Call(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {
// CHECK:STDOUT: %p.patt: %pattern_type.0dd = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.0dd = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc34_25: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -178,9 +178,9 @@ fn Call(p: Derived*) -> i32 {
// CHECK:STDOUT: %.loc20: %Derived.elem = base_decl %Base.ref, element0 [concrete]
// CHECK:STDOUT: %Derived.SelfBase.decl: %Derived.SelfBase.type = fn_decl @Derived.SelfBase [concrete = constants.%Derived.SelfBase] {
// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc22: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc22: Core.Form = init_form %i32.loc22, call_param1 [concrete = constants.%.e54]
@@ -192,7 +192,7 @@ fn Call(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Derived.RefSelfBase.decl: %Derived.RefSelfBase.type = fn_decl @Derived.RefSelfBase [concrete = constants.%Derived.RefSelfBase] {
// CHECK:STDOUT: %self.patt: %pattern_type.101 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc23: ref %Base = ref_param call_param0
// CHECK:STDOUT: %Base.ref.loc23: type = name_ref Base, file.%Base.decl [concrete = constants.%Base]
+6 -6
View File
@@ -96,11 +96,11 @@ fn MakeReorder(n: i32, next: Class*) -> Class {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] {
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %next.patt: %pattern_type.018 = value_binding_pattern next [concrete]
// CHECK:STDOUT: %next.param_patt: %pattern_type.018 = value_param_pattern %next.patt, call_param1 [concrete]
// CHECK:STDOUT: %next.param_patt: %pattern_type.018 = value_param_pattern %next.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Class.ref.loc20_34: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %.loc20_34: Core.Form = init_form %Class.ref.loc20_34, call_param2 [concrete = constants.%.7f7]
@@ -118,11 +118,11 @@ fn MakeReorder(n: i32, next: Class*) -> Class {
// CHECK:STDOUT: }
// CHECK:STDOUT: %MakeReorder.decl: %MakeReorder.type = fn_decl @MakeReorder [concrete = constants.%MakeReorder] {
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %next.patt: %pattern_type.018 = value_binding_pattern next [concrete]
// CHECK:STDOUT: %next.param_patt: %pattern_type.018 = value_param_pattern %next.patt, call_param1 [concrete]
// CHECK:STDOUT: %next.param_patt: %pattern_type.018 = value_param_pattern %next.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Class.ref.loc24_41: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %.loc24_41: Core.Form = init_form %Class.ref.loc24_41, call_param2 [concrete = constants.%.7f7]
+1 -1
View File
@@ -106,7 +106,7 @@ fn F() -> i32 {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
+2 -2
View File
@@ -74,7 +74,7 @@ fn MakeOuter() -> Outer {
// CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [concrete = constants.%Inner] {} {}
// CHECK:STDOUT: %MakeInner.decl: %MakeInner.type = fn_decl @MakeInner [concrete = constants.%MakeInner] {
// CHECK:STDOUT: %return.patt: %pattern_type.84b = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.84b = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.84b = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, file.%Inner.decl [concrete = constants.%Inner]
// CHECK:STDOUT: %.loc20: Core.Form = init_form %Inner.ref, call_param0 [concrete = constants.%.97a]
@@ -84,7 +84,7 @@ fn MakeOuter() -> Outer {
// CHECK:STDOUT: %Outer.decl: type = class_decl @Outer [concrete = constants.%Outer] {} {}
// CHECK:STDOUT: %MakeOuter.decl: %MakeOuter.type = fn_decl @MakeOuter [concrete = constants.%MakeOuter] {
// CHECK:STDOUT: %return.patt: %pattern_type.9ae = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.9ae = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.9ae = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer]
// CHECK:STDOUT: %.loc27: Core.Form = init_form %Outer.ref, call_param0 [concrete = constants.%.d28]
+2 -2
View File
@@ -117,7 +117,7 @@ class A {
// CHECK:STDOUT: class @A {
// CHECK:STDOUT: %A.F.decl: %A.F.type = fn_decl @A.F [concrete = constants.%A.F] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -135,7 +135,7 @@ class A {
// CHECK:STDOUT: class @B {
// CHECK:STDOUT: %B.Make.decl: %B.Make.type = fn_decl @B.Make [concrete = constants.%B.Make] {
// CHECK:STDOUT: %return.patt: %pattern_type.971 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.971 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.971 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Self.ref.loc18: type = name_ref Self, constants.%B [concrete = constants.%B]
// CHECK:STDOUT: %.loc18: Core.Form = init_form %Self.ref.loc18, call_param0 [concrete = constants.%.171]
@@ -64,9 +64,9 @@ fn Class(T:! type).F[unused self: Self](unused n: T) {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [symbolic = constants.%Class.F] {
// CHECK:STDOUT: %self.patt: @Class.F.%pattern_type.loc17_8 (%pattern_type.466) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.F.%pattern_type.loc17_8 (%pattern_type.466) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.F.%pattern_type.loc17_8 (%pattern_type.466) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type.loc17_20 (%pattern_type.51d) = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type.loc17_20 (%pattern_type.51d) = value_param_pattern %n.patt, call_param1 [concrete]
// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type.loc17_20 (%pattern_type.51d) = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc20_14.1: type = splice_block %.loc20_14.2 [concrete = type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -102,9 +102,9 @@ fn Class(T:! type).F[unused self: Self](unused n: T) {}
// CHECK:STDOUT: %.loc16: @Class.%Class.elem (%Class.elem) = field_decl a, element0 [concrete]
// CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] {
// CHECK:STDOUT: %self.patt: @Class.F.%pattern_type.loc17_8 (%pattern_type.466) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.F.%pattern_type.loc17_8 (%pattern_type.466) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Class.F.%pattern_type.loc17_8 (%pattern_type.466) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type.loc17_20 (%pattern_type.51d) = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type.loc17_20 (%pattern_type.51d) = value_param_pattern %n.patt, call_param1 [concrete]
// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type.loc17_20 (%pattern_type.51d) = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc17: @Class.F.%Class (%Class) = value_param call_param0
// CHECK:STDOUT: %.loc17_14.1: type = splice_block %Self.ref.loc17 [symbolic = %Class (constants.%Class)] {
+19 -19
View File
@@ -176,9 +176,9 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc24: Core.Form = init_form %i32.loc24, call_param1 [concrete = constants.%.e54]
@@ -190,9 +190,9 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {
// CHECK:STDOUT: %c.patt: %pattern_type.904 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.904 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.904 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc28: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -204,9 +204,9 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallAlias.decl: %CallAlias.type = fn_decl @CallAlias [concrete = constants.%CallAlias] {
// CHECK:STDOUT: %c.patt: %pattern_type.904 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.904 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.904 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc34: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -218,7 +218,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallOnConstBoundMethod.decl: %CallOnConstBoundMethod.type = fn_decl @CallOnConstBoundMethod [concrete = constants.%CallOnConstBoundMethod] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc38: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -227,7 +227,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallWithRef.decl: %CallWithRef.type = fn_decl @CallWithRef [concrete = constants.%CallWithRef] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc42: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -236,9 +236,9 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallFThroughPointer.decl: %CallFThroughPointer.type = fn_decl @CallFThroughPointer [concrete = constants.%CallFThroughPointer] {
// CHECK:STDOUT: %p.patt: %pattern_type.018 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc47_38: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -253,9 +253,9 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallGThroughPointer.decl: %CallGThroughPointer.type = fn_decl @CallGThroughPointer [concrete = constants.%CallGThroughPointer] {
// CHECK:STDOUT: %p.patt: %pattern_type.018 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc51_38: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -270,7 +270,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] {
// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %.loc55: Core.Form = init_form %Class.ref, call_param0 [concrete = constants.%.ddd]
@@ -279,7 +279,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallFOnInitializingExpr.decl: %CallFOnInitializingExpr.type = fn_decl @CallFOnInitializingExpr [concrete = constants.%CallFOnInitializingExpr] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc57: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -288,7 +288,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallGOnInitializingExpr.decl: %CallGOnInitializingExpr.type = fn_decl @CallGOnInitializingExpr [concrete = constants.%CallGOnInitializingExpr] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc61: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -300,9 +300,9 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16, call_param1 [concrete = constants.%.e54]
@@ -314,9 +314,9 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc17: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
+2 -2
View File
@@ -65,7 +65,7 @@ fn Run() -> i32 {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc19: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -77,7 +77,7 @@ fn Run() -> i32 {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
+1 -1
View File
@@ -129,7 +129,7 @@ fn F(a: Outer*) {
// CHECK:STDOUT: %Outer.decl: type = class_decl @Outer [concrete = constants.%Outer] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.patt: %pattern_type.cd9 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.cd9 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.cd9 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %ptr.56b = value_param call_param0
// CHECK:STDOUT: %.loc45: type = splice_block %ptr.loc45 [concrete = constants.%ptr.56b] {
+3 -3
View File
@@ -91,9 +91,9 @@ fn G(o: Outer) {
// CHECK:STDOUT: %Outer.decl: type = class_decl @Outer [concrete = constants.%Outer] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %oi.patt: %pattern_type.86a = value_binding_pattern oi [concrete]
// CHECK:STDOUT: %oi.param_patt: %pattern_type.86a = value_param_pattern %oi.patt, call_param0 [concrete]
// CHECK:STDOUT: %oi.param_patt: %pattern_type.86a = value_param_pattern %oi.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc21_26: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -108,7 +108,7 @@ fn G(o: Outer) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %o.patt: %pattern_type.9ae = value_binding_pattern o [concrete]
// CHECK:STDOUT: %o.param_patt: %pattern_type.9ae = value_param_pattern %o.patt, call_param0 [concrete]
// CHECK:STDOUT: %o.param_patt: %pattern_type.9ae = value_param_pattern %o.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %o.param: %Outer = value_param call_param0
// CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer]
+9 -9
View File
@@ -188,7 +188,7 @@ fn F[T:! type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.e97 = value_param call_param0
// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.2 [concrete = constants.%.e97] {
@@ -214,7 +214,7 @@ fn F[T:! type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.e97 = value_param call_param0
// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.2 [concrete = constants.%.e97] {
@@ -240,7 +240,7 @@ fn F[T:! type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %p.patt: %pattern_type = ref_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = var_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = var_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %p.var_patt: %pattern_type = var_pattern %p.param_patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: ref %.e97 = ref_param call_param0
@@ -267,7 +267,7 @@ fn F[T:! type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.e97 = value_param call_param0
// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.e97] {
@@ -293,7 +293,7 @@ fn F[T:! type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.d37 = value_param call_param0
// CHECK:STDOUT: %.loc13_9.1: type = splice_block %.loc13_9.2 [concrete = constants.%.d37] {
@@ -319,7 +319,7 @@ fn F[T:! type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.e97 = value_param call_param0
// CHECK:STDOUT: %.loc13_9.1: type = splice_block %.loc13_9.2 [concrete = constants.%.e97] {
@@ -348,7 +348,7 @@ fn F[T:! type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.42f = value_param call_param0
// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.3 [concrete = constants.%.42f] {
@@ -378,7 +378,7 @@ fn F[T:! type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.be9 = value_param call_param0
// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.be9] {
@@ -406,7 +406,7 @@ fn F[T:! type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %p.patt: %pattern_type = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.d45 = value_param call_param0
// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.d45] {
+4 -4
View File
@@ -51,9 +51,9 @@ fn Class.F[unused self: Self](unused b: ()) {}
// CHECK:STDOUT: %Class.decl.loc17: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.cb1 = value_binding_pattern b [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern %b.patt, call_param1 [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern %b.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc21: %Class = value_param call_param0
// CHECK:STDOUT: %Self.ref.loc21: type = name_ref Self, constants.%Class [concrete = constants.%Class]
@@ -70,9 +70,9 @@ fn Class.F[unused self: Self](unused b: ()) {}
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.cb1 = value_binding_pattern b [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern %b.patt, call_param1 [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern %b.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc18: %Class = value_param call_param0
// CHECK:STDOUT: %Self.ref.loc18: type = name_ref Self, constants.%Class [concrete = constants.%Class]
+3 -3
View File
@@ -58,7 +58,7 @@ fn Class.F() -> i32 {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc20: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32.loc20, call_param0 [concrete = constants.%.437]
@@ -70,7 +70,7 @@ fn Class.F() -> i32 {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16, call_param0 [concrete = constants.%.437]
@@ -79,7 +79,7 @@ fn Class.F() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc17: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
+2 -2
View File
@@ -82,7 +82,7 @@ class Class {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -91,7 +91,7 @@ class Class {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
+3 -3
View File
@@ -104,7 +104,7 @@ fn Run() {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -117,7 +117,7 @@ fn Run() {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -126,7 +126,7 @@ fn Run() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
+4 -4
View File
@@ -77,7 +77,7 @@ fn F(c: Class, p: Class*) {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] {
// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %.loc19: Core.Form = init_form %Class.ref, call_param0 [concrete = constants.%.ddd]
@@ -86,9 +86,9 @@ fn F(c: Class, p: Class*) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.patt: %pattern_type.904 = value_binding_pattern c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.904 = value_param_pattern %c.patt, call_param0 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.904 = value_param_pattern %c.patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.018 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern %p.patt, call_param1 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.018 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %Class = value_param call_param0
// CHECK:STDOUT: %Class.ref.loc21_9: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
@@ -105,7 +105,7 @@ fn F(c: Class, p: Class*) {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %Class = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Class [concrete = constants.%Class]
+10 -10
View File
@@ -83,9 +83,9 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.patt.loc21_16: %pattern_type.904 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt.loc21_20: %pattern_type.904 = ref_param_pattern %self.patt.loc21_16, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt.loc21_20: %pattern_type.904 = ref_param_pattern %self.patt.loc21_16 [concrete]
// CHECK:STDOUT: %self.patt.loc21_28: %pattern_type.7ce = value_binding_pattern r#self [concrete]
// CHECK:STDOUT: %self.param_patt.loc21_34: %pattern_type.7ce = value_param_pattern %self.patt.loc21_28, call_param1 [concrete]
// CHECK:STDOUT: %self.param_patt.loc21_34: %pattern_type.7ce = value_param_pattern %self.patt.loc21_28 [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc21_20: ref %Class = ref_param call_param0
// CHECK:STDOUT: %Self.ref.loc21: type = name_ref Self, constants.%Class [concrete = constants.%Class]
@@ -96,11 +96,11 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %self.patt.loc25_12: %pattern_type.904 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt.loc25_16: %pattern_type.904 = value_param_pattern %self.patt.loc25_12, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt.loc25_16: %pattern_type.904 = value_param_pattern %self.patt.loc25_12 [concrete]
// CHECK:STDOUT: %self.patt.loc25_24: %pattern_type.7ce = value_binding_pattern r#self [concrete]
// CHECK:STDOUT: %self.param_patt.loc25_30: %pattern_type.7ce = value_param_pattern %self.patt.loc25_24, call_param1 [concrete]
// CHECK:STDOUT: %self.param_patt.loc25_30: %pattern_type.7ce = value_param_pattern %self.patt.loc25_24 [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc25_41: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %i32.loc25_46: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -121,9 +121,9 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.patt.loc21_16: %pattern_type.904 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt.loc21_20: %pattern_type.904 = ref_param_pattern %self.patt.loc21_16, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt.loc21_20: %pattern_type.904 = ref_param_pattern %self.patt.loc21_16 [concrete]
// CHECK:STDOUT: %self.patt.loc21_28: %pattern_type.7ce = value_binding_pattern r#self [concrete]
// CHECK:STDOUT: %self.param_patt.loc21_34: %pattern_type.7ce = value_param_pattern %self.patt.loc21_28, call_param1 [concrete]
// CHECK:STDOUT: %self.param_patt.loc21_34: %pattern_type.7ce = value_param_pattern %self.patt.loc21_28 [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc16_16: ref %Class = ref_param call_param0
// CHECK:STDOUT: %Self.ref.loc16: type = name_ref Self, constants.%Class [concrete = constants.%Class]
@@ -134,11 +134,11 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %self.patt.loc25_12: %pattern_type.904 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt.loc25_16: %pattern_type.904 = value_param_pattern %self.patt.loc25_12, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt.loc25_16: %pattern_type.904 = value_param_pattern %self.patt.loc25_12 [concrete]
// CHECK:STDOUT: %self.patt.loc25_24: %pattern_type.7ce = value_binding_pattern r#self [concrete]
// CHECK:STDOUT: %self.param_patt.loc25_30: %pattern_type.7ce = value_param_pattern %self.patt.loc25_24, call_param1 [concrete]
// CHECK:STDOUT: %self.param_patt.loc25_30: %pattern_type.7ce = value_param_pattern %self.patt.loc25_24 [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.511 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.511 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc17_37: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %i32.loc17_42: type = type_literal constants.%i32 [concrete = constants.%i32]
+4 -4
View File
@@ -84,9 +84,9 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {}
// CHECK:STDOUT: %MemberNamedSelf.decl: type = class_decl @MemberNamedSelf [concrete = constants.%MemberNamedSelf] {} {}
// CHECK:STDOUT: %MemberNamedSelf.F.decl: %MemberNamedSelf.F.type = fn_decl @MemberNamedSelf.F [concrete = constants.%MemberNamedSelf.F] {
// CHECK:STDOUT: %x.patt: %pattern_type.4b2 = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.4b2 = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.4b2 = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %y.patt: %pattern_type.f56 = value_binding_pattern y [concrete]
// CHECK:STDOUT: %y.param_patt: %pattern_type.f56 = value_param_pattern %y.patt, call_param1 [concrete]
// CHECK:STDOUT: %y.param_patt: %pattern_type.f56 = value_param_pattern %y.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param.loc28: %MemberNamedSelf = value_param call_param0
// CHECK:STDOUT: %Self.ref.loc28_32: type = name_ref Self, constants.%MemberNamedSelf [concrete = constants.%MemberNamedSelf]
@@ -111,9 +111,9 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {}
// CHECK:STDOUT: %Self.decl: type = class_decl @Self [concrete = constants.%Self.0d4] {} {}
// CHECK:STDOUT: %MemberNamedSelf.F.decl: %MemberNamedSelf.F.type = fn_decl @MemberNamedSelf.F [concrete = constants.%MemberNamedSelf.F] {
// CHECK:STDOUT: %x.patt: %pattern_type.4b2 = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.4b2 = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.4b2 = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %y.patt: %pattern_type.f56 = value_binding_pattern y [concrete]
// CHECK:STDOUT: %y.param_patt: %pattern_type.f56 = value_param_pattern %y.patt, call_param1 [concrete]
// CHECK:STDOUT: %y.param_patt: %pattern_type.f56 = value_param_pattern %y.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param.loc25: %MemberNamedSelf = value_param call_param0
// CHECK:STDOUT: %Self.ref.loc25_11: type = name_ref Self, constants.%MemberNamedSelf [concrete = constants.%MemberNamedSelf]
+9 -9
View File
@@ -99,9 +99,9 @@ class Class {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc11: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc11: Core.Form = init_form %i32.loc11, call_param1 [concrete = constants.%.e54]
@@ -113,9 +113,9 @@ class Class {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15, call_param1 [concrete = constants.%.e54]
@@ -130,9 +130,9 @@ class Class {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5, call_param1 [concrete = constants.%.e54]
@@ -144,9 +144,9 @@ class Class {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32.loc6, call_param1 [concrete = constants.%.e54]
@@ -230,7 +230,7 @@ class Class {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.ref: %Class = name_ref self, %self
// CHECK:STDOUT: %.loc12: type = converted %self.ref, <error> [concrete = <error>]
+5 -5
View File
@@ -81,9 +81,9 @@ fn Class.F[self: Self]() -> i32 {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25, call_param1 [concrete = constants.%.e54]
@@ -98,9 +98,9 @@ fn Class.F[self: Self]() -> i32 {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.904 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.904 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16, call_param1 [concrete = constants.%.e54]
@@ -112,7 +112,7 @@ fn Class.F[self: Self]() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.Make.decl: %Class.Make.type = fn_decl @Class.Make [concrete = constants.%Class.Make] {
// CHECK:STDOUT: %return.patt: %pattern_type.904 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.904 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Self.ref.loc17: type = name_ref Self, constants.%Class [concrete = constants.%Class]
// CHECK:STDOUT: %.loc17: Core.Form = init_form %Self.ref.loc17, call_param0 [concrete = constants.%.ddd]
+2 -2
View File
@@ -1150,7 +1150,7 @@ fn Base.F[ref self: Base]() {
// CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {}
// CHECK:STDOUT: %Base.F.decl: %Base.F.type.c66019.2 = fn_decl @Base.F.loc17 [concrete = constants.%Base.F.811e28.2] {
// CHECK:STDOUT: %self.patt: %pattern_type = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0
// CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base]
@@ -1164,7 +1164,7 @@ fn Base.F[ref self: Base]() {
// CHECK:STDOUT: %.loc5_8: %Base.elem = field_decl a, element0 [concrete]
// CHECK:STDOUT: %Base.F.decl: %Base.F.type.c66019.1 = fn_decl @Base.F.loc7 [concrete = constants.%Base.F.811e28.1] {
// CHECK:STDOUT: %self.patt: %pattern_type = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base]
+68 -68
View File
@@ -557,7 +557,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @Base {
// CHECK:STDOUT: %Base.H.decl: %Base.H.type = fn_decl @Base.H [concrete = constants.%Base.H] {
// CHECK:STDOUT: %self.patt: %pattern_type.dec = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.dec = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.dec = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Base = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base]
@@ -576,7 +576,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @Abstract {
// CHECK:STDOUT: %Abstract.J.decl: %Abstract.J.type = fn_decl @Abstract.J [concrete = constants.%Abstract.J] {
// CHECK:STDOUT: %self.patt: %pattern_type.3c9 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.3c9 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.3c9 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Abstract = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Abstract [concrete = constants.%Abstract]
@@ -584,7 +584,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Abstract.K.decl: %Abstract.K.type = fn_decl @Abstract.K [concrete = constants.%Abstract.K] {
// CHECK:STDOUT: %self.patt: %pattern_type.3c9 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.3c9 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.3c9 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Abstract = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Abstract [concrete = constants.%Abstract]
@@ -689,7 +689,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc7: %Derived.elem = base_decl %Base.ref, element0 [concrete]
// CHECK:STDOUT: %Derived.H.decl: %Derived.H.type = fn_decl @Derived.H [concrete = constants.%Derived.H] {
// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -812,7 +812,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @Derived {
// CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -991,7 +991,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @A1 {
// CHECK:STDOUT: %A1.F.decl: %A1.F.type = fn_decl @A1.F [concrete = constants.%A1.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.258 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.258 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.258 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %A1 = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%A1 [concrete = constants.%A1]
@@ -1012,7 +1012,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc9: %A2.elem = base_decl %A1.ref, element0 [concrete]
// CHECK:STDOUT: %A2.F.decl: %A2.F.type = fn_decl @A2.F [concrete = constants.%A2.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.f23 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.f23 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.f23 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %A2 = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%A2 [concrete = constants.%A2]
@@ -1127,7 +1127,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @B1 {
// CHECK:STDOUT: %B1.F.decl: %B1.F.type = fn_decl @B1.F [concrete = constants.%B1.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.748 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.748 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.748 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %B1 = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B1 [concrete = constants.%B1]
@@ -1148,7 +1148,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc9: %B2.elem = base_decl %B1.ref, element0 [concrete]
// CHECK:STDOUT: %B2.F.decl: %B2.F.type = fn_decl @B2.F [concrete = constants.%B2.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.8b5 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.8b5 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.8b5 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %B2 = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B2 [concrete = constants.%B2]
@@ -1172,7 +1172,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc14: %C.elem = base_decl %B2.ref, element0 [concrete]
// CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.7c7 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.7c7 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %C = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C]
@@ -1324,7 +1324,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @C {
// CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] {
// CHECK:STDOUT: %self.patt: %pattern_type = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %C = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C]
@@ -1445,7 +1445,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc6: %Base.elem = field_decl m2, element2 [concrete]
// CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Base = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base]
@@ -1622,7 +1622,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc8: %Derived.elem = base_decl %Base.ref, element1 [concrete]
// CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] {
// CHECK:STDOUT: %self.patt: %pattern_type = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -1694,7 +1694,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @AbstractBase {
// CHECK:STDOUT: %AbstractBase.F.decl: %AbstractBase.F.type = fn_decl @AbstractBase.F [concrete = constants.%AbstractBase.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.079 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.079 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.079 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %AbstractBase = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%AbstractBase [concrete = constants.%AbstractBase]
@@ -1730,7 +1730,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc13: %Derived.elem = base_decl %AbstractIntermediate.ref, element0 [concrete]
// CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -1814,7 +1814,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @VirtualBase {
// CHECK:STDOUT: %VirtualBase.F.decl: %VirtualBase.F.type = fn_decl @VirtualBase.F [concrete = constants.%VirtualBase.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.012 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.012 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.012 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %VirtualBase = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%VirtualBase [concrete = constants.%VirtualBase]
@@ -1850,7 +1850,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc13: %Derived.elem = base_decl %VirtualIntermediate.ref, element0 [concrete]
// CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -1934,7 +1934,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @Base {
// CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Base = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base]
@@ -1955,9 +1955,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc9: %Derived.elem = base_decl %Base.ref, element0 [concrete]
// CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %v.patt: %pattern_type.7ce = value_binding_pattern v [concrete]
// CHECK:STDOUT: %v.param_patt: %pattern_type.7ce = value_param_pattern %v.patt, call_param1 [concrete]
// CHECK:STDOUT: %v.param_patt: %pattern_type.7ce = value_param_pattern %v.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -2062,9 +2062,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: impl @T2.as.ImplicitAs.impl: %T2.ref as %ImplicitAs.type {
// CHECK:STDOUT: %T2.as.ImplicitAs.impl.Convert.decl: %T2.as.ImplicitAs.impl.Convert.type = fn_decl @T2.as.ImplicitAs.impl.Convert [concrete = constants.%T2.as.ImplicitAs.impl.Convert] {
// CHECK:STDOUT: %self.patt: %pattern_type.b8b = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.b8b = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.b8b = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.818 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.818 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.818 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1]
// CHECK:STDOUT: %.loc11: Core.Form = init_form %T1.ref, call_param1 [concrete = constants.%.cdb]
@@ -2102,9 +2102,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @Base {
// CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.101 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.101 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.818 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.818 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.818 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1]
// CHECK:STDOUT: %.loc17: Core.Form = init_form %T1.ref, call_param1 [concrete = constants.%.cdb]
@@ -2131,9 +2131,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc21: %Derived.elem = base_decl %Base.ref, element0 [concrete]
// CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.b8b = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.b8b = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.b8b = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T2.ref: type = name_ref T2, file.%T2.decl [concrete = constants.%T2]
// CHECK:STDOUT: %.loc29: Core.Form = init_form %T2.ref, call_param1 [concrete = constants.%.82b]
@@ -2232,7 +2232,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F)] {
// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Base.F.%Base (%Base) = value_param call_param0
// CHECK:STDOUT: %.loc12_22.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base)] {
@@ -2362,9 +2362,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type.0f1) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F.cd3)] {
// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type.loc8_23 (%pattern_type.2f0) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc8_23 (%pattern_type.2f0) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc8_23 (%pattern_type.2f0) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %t.patt: @Base.F.%pattern_type.loc8_42 (%pattern_type.51d) = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc8_42 (%pattern_type.51d) = value_param_pattern %t.patt, call_param1 [concrete]
// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc8_42 (%pattern_type.51d) = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Base.F.%Base (%Base.d0c) = value_param call_param0
// CHECK:STDOUT: %.loc8_29.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base.d0c)] {
@@ -2397,9 +2397,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc12: %Derived.elem = base_decl %Base, element0 [concrete]
// CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %t.patt: %pattern_type.818 = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: %pattern_type.818 = value_param_pattern %t.patt, call_param1 [concrete]
// CHECK:STDOUT: %t.param_patt: %pattern_type.818 = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -2602,7 +2602,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @T1 {
// CHECK:STDOUT: %T1.F1.decl: %T1.F1.type = fn_decl @T1.F1 [concrete = constants.%T1.F1] {
// CHECK:STDOUT: %self.patt: %pattern_type.818 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.818 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.818 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %T1 = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%T1 [concrete = constants.%T1]
@@ -2623,7 +2623,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc9: %T2.elem = base_decl %T1.ref, element0 [concrete]
// CHECK:STDOUT: %T2.F1.decl: %T2.F1.type = fn_decl @T2.F1 [concrete = constants.%T2.F1] {
// CHECK:STDOUT: %self.patt: %pattern_type.b8b = ref_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.b8b = ref_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.b8b = ref_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %T2 = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%T2 [concrete = constants.%T2]
@@ -2688,7 +2688,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @T1 {
// CHECK:STDOUT: %T1.F.decl: %T1.F.type = fn_decl @T1.F [concrete = constants.%T1.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.818 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.818 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.818 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %T1 = value_param call_param0
@@ -2770,7 +2770,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F)] {
// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.253) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 1 [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1) = value_param call_param0
@@ -2870,7 +2870,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F)] {
// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.253) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1) = value_param call_param0
// CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %T1 (constants.%T1)] {
@@ -2985,9 +2985,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F)] {
// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type.loc5_23 (%pattern_type.253) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type.loc5_23 (%pattern_type.253) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type.loc5_23 (%pattern_type.253) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %t.patt: @T1.F.%pattern_type.loc5_42 (%pattern_type.51d) = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: @T1.F.%pattern_type.loc5_42 (%pattern_type.51d) = value_param_pattern %t.patt, call_param1 [concrete]
// CHECK:STDOUT: %t.param_patt: @T1.F.%pattern_type.loc5_42 (%pattern_type.51d) = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1) = value_param call_param0
// CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %T1 (constants.%T1)] {
@@ -3090,7 +3090,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %Modifiers.import = import Modifiers
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %b.patt: %pattern_type = value_binding_pattern b [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type = value_param_pattern %b.patt, call_param0 [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type = value_param_pattern %b.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %b.param: %Base = value_param call_param0
// CHECK:STDOUT: %.loc6: type = splice_block %Base.ref [concrete = constants.%Base] {
@@ -3175,7 +3175,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class @NonGenericBase {
// CHECK:STDOUT: %NonGenericBase.F1.decl: %NonGenericBase.F1.type = fn_decl @NonGenericBase.F1 [concrete = constants.%NonGenericBase.F1] {
// CHECK:STDOUT: %self.patt: %pattern_type.126 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.126 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.126 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %NonGenericBase = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%NonGenericBase [concrete = constants.%NonGenericBase]
@@ -3183,7 +3183,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %NonGenericBase.F2.decl: %NonGenericBase.F2.type = fn_decl @NonGenericBase.F2 [concrete = constants.%NonGenericBase.F2] {
// CHECK:STDOUT: %self.patt: %pattern_type.126 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.126 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.126 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %NonGenericBase = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%NonGenericBase [concrete = constants.%NonGenericBase]
@@ -3218,7 +3218,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc10: @GenericDerived.%GenericDerived.elem (%GenericDerived.elem) = base_decl %NonGenericBase.ref, element0 [concrete]
// CHECK:STDOUT: %GenericDerived.F2.decl: @GenericDerived.%GenericDerived.F2.type (%GenericDerived.F2.type) = fn_decl @GenericDerived.F2 [symbolic = @GenericDerived.%GenericDerived.F2 (constants.%GenericDerived.F2)] {
// CHECK:STDOUT: %self.patt: @GenericDerived.F2.%pattern_type (%pattern_type.945) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @GenericDerived.F2.%pattern_type (%pattern_type.945) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @GenericDerived.F2.%pattern_type (%pattern_type.945) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @GenericDerived.F2.%GenericDerived (%GenericDerived) = value_param call_param0
// CHECK:STDOUT: %.loc11_31.1: type = splice_block %Self.ref [symbolic = %GenericDerived (constants.%GenericDerived)] {
@@ -3229,7 +3229,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %GenericDerived.F3.decl: @GenericDerived.%GenericDerived.F3.type (%GenericDerived.F3.type) = fn_decl @GenericDerived.F3 [symbolic = @GenericDerived.%GenericDerived.F3 (constants.%GenericDerived.F3)] {
// CHECK:STDOUT: %self.patt: @GenericDerived.F3.%pattern_type (%pattern_type.945) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @GenericDerived.F3.%pattern_type (%pattern_type.945) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @GenericDerived.F3.%pattern_type (%pattern_type.945) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @GenericDerived.F3.%GenericDerived (%GenericDerived) = value_param call_param0
// CHECK:STDOUT: %.loc12_30.1: type = splice_block %Self.ref [symbolic = %GenericDerived (constants.%GenericDerived)] {
@@ -3421,7 +3421,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %GenericBase.F1.decl: @GenericBase.%GenericBase.F1.type (%GenericBase.F1.type.c30) = fn_decl @GenericBase.F1 [symbolic = @GenericBase.%GenericBase.F1 (constants.%GenericBase.F1.5f6)] {
// CHECK:STDOUT: %self.patt: @GenericBase.F1.%pattern_type (%pattern_type.3f7) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @GenericBase.F1.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @GenericBase.F1.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @GenericBase.F1.%GenericBase (%GenericBase.5e3) = value_param call_param0
// CHECK:STDOUT: %.loc5_30.1: type = splice_block %Self.ref [symbolic = %GenericBase (constants.%GenericBase.5e3)] {
@@ -3432,7 +3432,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %GenericBase.F2.decl: @GenericBase.%GenericBase.F2.type (%GenericBase.F2.type.3d4) = fn_decl @GenericBase.F2 [symbolic = @GenericBase.%GenericBase.F2 (constants.%GenericBase.F2.9ed)] {
// CHECK:STDOUT: %self.patt: @GenericBase.F2.%pattern_type (%pattern_type.3f7) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @GenericBase.F2.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @GenericBase.F2.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @GenericBase.F2.%GenericBase (%GenericBase.5e3) = value_param call_param0
// CHECK:STDOUT: %.loc6_30.1: type = splice_block %Self.ref [symbolic = %GenericBase (constants.%GenericBase.5e3)] {
@@ -3464,7 +3464,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc12: %NonGenericDerived.elem = base_decl %GenericBase, element0 [concrete]
// CHECK:STDOUT: %NonGenericDerived.F2.decl: %NonGenericDerived.F2.type = fn_decl @NonGenericDerived.F2 [concrete = constants.%NonGenericDerived.F2] {
// CHECK:STDOUT: %self.patt: %pattern_type.c19 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.c19 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.c19 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %NonGenericDerived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%NonGenericDerived [concrete = constants.%NonGenericDerived]
@@ -3472,7 +3472,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %NonGenericDerived.F3.decl: %NonGenericDerived.F3.type = fn_decl @NonGenericDerived.F3 [concrete = constants.%NonGenericDerived.F3] {
// CHECK:STDOUT: %self.patt: %pattern_type.c19 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.c19 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.c19 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %NonGenericDerived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%NonGenericDerived [concrete = constants.%NonGenericDerived]
@@ -3682,9 +3682,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type.0f1) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F.cd3)] {
// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %t.patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.cf5) = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.cf5) = value_param_pattern %t.patt, call_param1 [concrete]
// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.cf5) = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Base.F.%Base.loc5_29 (%Base.d0c) = value_param call_param0
// CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %Base.loc5_29 (constants.%Base.d0c)] {
@@ -3725,9 +3725,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc9: %D1.elem = base_decl %Base, element0 [concrete]
// CHECK:STDOUT: %D1.F.decl: %D1.F.type = fn_decl @D1.F [concrete = constants.%D1.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.7f9 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.7f9 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.7f9 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %t.patt: %pattern_type.912 = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: %pattern_type.912 = value_param_pattern %t.patt, call_param1 [concrete]
// CHECK:STDOUT: %t.param_patt: %pattern_type.912 = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %D1 = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%D1 [concrete = constants.%D1]
@@ -3912,9 +3912,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type.0f1) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F.cd3)] {
// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %t.patt: %pattern_type.c16 = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: %pattern_type.c16 = value_param_pattern %t.patt, call_param1 [concrete]
// CHECK:STDOUT: %t.param_patt: %pattern_type.c16 = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Base.F.%Base (%Base.d0c) = value_param call_param0
// CHECK:STDOUT: %.loc8_29.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base.d0c)] {
@@ -3950,9 +3950,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc12: %D1.elem = base_decl %Base, element0 [concrete]
// CHECK:STDOUT: %D1.F.decl: %D1.F.type = fn_decl @D1.F [concrete = constants.%D1.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.7f9 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.7f9 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.7f9 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %t.patt: %pattern_type.64c = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: %pattern_type.64c = value_param_pattern %t.patt, call_param1 [concrete]
// CHECK:STDOUT: %t.param_patt: %pattern_type.64c = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %D1 = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%D1 [concrete = constants.%D1]
@@ -4125,9 +4125,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F)] {
// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %t.patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.4f4) = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.4f4) = value_param_pattern %t.patt, call_param1 [concrete]
// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.4f4) = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Base.F.%Base (%Base) = value_param call_param0
// CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base)] {
@@ -4176,9 +4176,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc8: @Derived.%Derived.elem (%Derived.elem) = base_decl %Base.loc8_22.1, element0 [concrete]
// CHECK:STDOUT: %Derived.F.decl: @Derived.%Derived.F.type (%Derived.F.type) = fn_decl @Derived.F [symbolic = @Derived.%Derived.F (constants.%Derived.F)] {
// CHECK:STDOUT: %self.patt: @Derived.F.%pattern_type.loc16_24 (%pattern_type.b9d) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Derived.F.%pattern_type.loc16_24 (%pattern_type.b9d) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Derived.F.%pattern_type.loc16_24 (%pattern_type.b9d) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %t.patt: @Derived.F.%pattern_type.loc16_43 (%pattern_type.51d) = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: @Derived.F.%pattern_type.loc16_43 (%pattern_type.51d) = value_param_pattern %t.patt, call_param1 [concrete]
// CHECK:STDOUT: %t.param_patt: @Derived.F.%pattern_type.loc16_43 (%pattern_type.51d) = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Derived.F.%Derived (%Derived) = value_param call_param0
// CHECK:STDOUT: %.loc16_30.1: type = splice_block %Self.ref [symbolic = %Derived (constants.%Derived)] {
@@ -4387,9 +4387,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type.0f1) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F.cd3)] {
// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type.loc5_23 (%pattern_type.2f0) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %t.patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.51d) = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.51d) = value_param_pattern %t.patt, call_param1 [concrete]
// CHECK:STDOUT: %t.param_patt: @Base.F.%pattern_type.loc5_42 (%pattern_type.51d) = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Base.F.%Base (%Base.d0c) = value_param call_param0
// CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base.d0c)] {
@@ -4437,9 +4437,9 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc8: @Derived.%Derived.elem (%Derived.elem) = base_decl %Base.loc8_23.1, element0 [concrete]
// CHECK:STDOUT: %Derived.F.decl: @Derived.%Derived.F.type (%Derived.F.type) = fn_decl @Derived.F [symbolic = @Derived.%Derived.F (constants.%Derived.F)] {
// CHECK:STDOUT: %self.patt: @Derived.F.%pattern_type.loc9_24 (%pattern_type.b9d) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Derived.F.%pattern_type.loc9_24 (%pattern_type.b9d) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Derived.F.%pattern_type.loc9_24 (%pattern_type.b9d) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %t.patt: @Derived.F.%pattern_type.loc9_43 (%pattern_type.4f4) = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: @Derived.F.%pattern_type.loc9_43 (%pattern_type.4f4) = value_param_pattern %t.patt, call_param1 [concrete]
// CHECK:STDOUT: %t.param_patt: @Derived.F.%pattern_type.loc9_43 (%pattern_type.4f4) = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Derived.F.%Derived (%Derived) = value_param call_param0
// CHECK:STDOUT: %.loc9_30.1: type = splice_block %Self.ref [symbolic = %Derived (constants.%Derived)] {
@@ -4656,7 +4656,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type.0f1) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F.cd3)] {
// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Base.F.%Base (%Base.d0c) = value_param call_param0
// CHECK:STDOUT: %.loc5_23.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base.d0c)] {
@@ -4686,7 +4686,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: %.loc11: %Derived.elem = base_decl %Base, element0 [concrete]
// CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] {
// CHECK:STDOUT: %self.patt: %pattern_type.9f6 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.9f6 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -4808,7 +4808,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Base.F.decl: @Base.%Base.F.type (%Base.F.type) = fn_decl @Base.F [symbolic = @Base.%Base.F (constants.%Base.F)] {
// CHECK:STDOUT: %self.patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @Base.F.%pattern_type (%pattern_type.2f0) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Base.F.%Base (%Base) = value_param call_param0
// CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base)] {
@@ -5095,7 +5095,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type.e39697.1) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F.9b864d.1)] {
// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.253617.1) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253617.1) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253617.1) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1.6d4458.1) = value_param call_param0
// CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %T1 (constants.%T1.6d4458.1)] {
@@ -5295,7 +5295,7 @@ class T2(G2:! type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type.e39697.1) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F.9b864d.1)] {
// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.253617.1) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253617.1) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.253617.1) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1.6d4458.1) = value_param call_param0
// CHECK:STDOUT: %.loc5_29.1: type = splice_block %Self.ref [symbolic = %T1 (constants.%T1.6d4458.1)] {
+6 -6
View File
@@ -208,9 +208,9 @@ fn PassConstReferenceToReference(p: const X*) {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %p.patt: %pattern_type.559 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.559 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.559 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.559 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.559 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.559 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref.loc6_29: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %const.loc6_23: type = const_type %C.ref.loc6_29 [concrete = constants.%const.0e5]
@@ -230,9 +230,9 @@ fn PassConstReferenceToReference(p: const X*) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {
// CHECK:STDOUT: %p.patt: %pattern_type.665 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.665 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.665 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.665 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.665 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.665 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref.loc10_31: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %ptr.loc10_32: type = ptr_type %C.ref.loc10_31 [concrete = constants.%ptr.31e]
@@ -304,9 +304,9 @@ fn PassConstReferenceToReference(p: const X*) {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %p.patt: %pattern_type.559 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.559 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.559 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.559 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.559 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.559 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref.loc11_36: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %const.loc11_30: type = const_type %C.ref.loc11_36 [concrete = constants.%const.0e5]
+17 -17
View File
@@ -209,9 +209,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc6_16 (%pattern_type.b3f) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.b3f) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.b3f) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_32 (%pattern_type.51d) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_32 (%pattern_type.51d) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_32 (%pattern_type.51d) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc6_35: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)]
// CHECK:STDOUT: %.loc6_35.3: Core.Form = init_form %T.ref.loc6_35, call_param1 [symbolic = %.loc6_35.2 (constants.%.3cf)]
@@ -232,7 +232,7 @@ fn G() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %.loc8_11.2: Core.Form = init_form %C.ref.loc8, call_param0 [concrete = constants.%.768]
@@ -436,9 +436,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete]
// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.cc9) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.cc9) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.cc9) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc6_55: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -463,7 +463,7 @@ fn G() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -630,7 +630,7 @@ fn G() {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 1 [concrete]
// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.4d8) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.4d8) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.4d8) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc6_10.1: type = splice_block %.loc6_10.2 [concrete = type] {
// CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -811,9 +811,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc6_16 (%pattern_type.b42) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.b42) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.b42) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_32 (%pattern_type.51d1c4.1) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_32 (%pattern_type.51d1c4.1) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_32 (%pattern_type.51d1c4.1) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc6_35: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)]
// CHECK:STDOUT: %.loc6_35.3: Core.Form = init_form %T.ref.loc6_35, call_param1 [symbolic = %.loc6_35.2 (constants.%.3cf2c9.1)]
@@ -834,7 +834,7 @@ fn G() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %.loc8_11.2: Core.Form = init_form %C.ref.loc8, call_param0 [concrete = constants.%.768]
@@ -1043,9 +1043,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete]
// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.cc9) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.cc9) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.cc9) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc7_55: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -1070,7 +1070,7 @@ fn G() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc9: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -1281,9 +1281,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0 [concrete]
// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.0fb) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.0fb) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.0fb) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc6_41: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc6_41: Core.Form = init_form %i32.loc6_41, call_param1 [concrete = constants.%.e54]
@@ -1311,7 +1311,7 @@ fn G() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
@@ -1470,7 +1470,7 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0 [concrete]
// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.0fb) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.0fb) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.0fb) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc5_10: type = splice_block %i32 [concrete = constants.%i32] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
+2 -2
View File
@@ -156,7 +156,7 @@ fn F(unused U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %C.Create.decl: @C.%C.Create.type (%C.Create.type.c11) = fn_decl @C.Create [symbolic = @C.%C.Create (constants.%C.Create.723)] {
// CHECK:STDOUT: %value.patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_binding_pattern value [concrete]
// CHECK:STDOUT: %value.param_patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern %value.patt, call_param0 [concrete]
// CHECK:STDOUT: %value.param_patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern %value.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %value.param: @C.Create.%T (%T) = value_param call_param0
// CHECK:STDOUT: %T.ref: type = name_ref T, @C.%T.loc4_9.2 [symbolic = %T (constants.%T)]
@@ -368,7 +368,7 @@ fn F(unused U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %C.Create.decl: @C.%C.Create.type (%C.Create.type.c11) = fn_decl @C.Create [symbolic = @C.%C.Create (constants.%C.Create.723)] {
// CHECK:STDOUT: %value.patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_binding_pattern value [concrete]
// CHECK:STDOUT: %value.param_patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern %value.patt, call_param0 [concrete]
// CHECK:STDOUT: %value.param_patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern %value.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %value.param: @C.Create.%T (%T) = value_param call_param0
// CHECK:STDOUT: %T.ref: type = name_ref T, @C.%T.loc4_9.2 [symbolic = %T (constants.%T)]
+15 -15
View File
@@ -128,9 +128,9 @@ fn G() -> i32 {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc7_16 (%pattern_type.3d5) = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc7_16 (%pattern_type.3d5) = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc7_16 (%pattern_type.3d5) = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_25 (%pattern_type.51d) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_25 (%pattern_type.51d) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_25 (%pattern_type.51d) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc7_28: type = name_ref T, %T.loc7_6.2 [symbolic = %T.loc7_6.1 (constants.%T)]
// CHECK:STDOUT: %.loc7_28.3: Core.Form = init_form %T.ref.loc7_28, call_param1 [symbolic = %.loc7_28.2 (constants.%.3cf)]
@@ -151,9 +151,9 @@ fn G() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.patt: %pattern_type.a7e = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.a7e = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.a7e = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %D.ref.loc9_18: type = name_ref D, file.%D.decl [concrete = constants.%D]
// CHECK:STDOUT: %.loc9_18.2: Core.Form = init_form %D.ref.loc9_18, call_param1 [concrete = constants.%.c40]
@@ -318,9 +318,9 @@ fn G() -> i32 {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %p.patt: @F.%pattern_type (%pattern_type.7be) = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type (%pattern_type.7be) = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type (%pattern_type.7be) = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %.loc7_28.2: Core.Form = init_form %C.ref, call_param1 [concrete = constants.%.b89]
@@ -341,9 +341,9 @@ fn G() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.patt: %pattern_type.767 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.767 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.767 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref.loc9_18: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %.loc9_18.2: Core.Form = init_form %C.ref.loc9_18, call_param1 [concrete = constants.%.b89]
@@ -520,9 +520,9 @@ fn G() -> i32 {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete]
// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc13_26 (%pattern_type.0d1) = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc13_26 (%pattern_type.0d1) = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc13_26 (%pattern_type.0d1) = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc13_48 (%pattern_type.eee) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc13_48 (%pattern_type.eee) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc13_48 (%pattern_type.eee) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc13_52: type = name_ref T, %T.loc13_6.2 [symbolic = %T.loc13_6.1 (constants.%T)]
// CHECK:STDOUT: %U.ref.loc13_55: type = name_ref U, %U.loc13_16.2 [symbolic = %U.loc13_16.1 (constants.%U)]
@@ -555,9 +555,9 @@ fn G() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.patt: %pattern_type.204 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.204 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.204 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.881 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.881 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.881 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref.loc15_32: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %D.ref.loc15_35: type = name_ref D, file.%D.decl [concrete = constants.%D]
@@ -850,9 +850,9 @@ fn G() -> i32 {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0 [concrete]
// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.43d) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.43d) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.43d) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc6_44: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc6_44: Core.Form = init_form %i32.loc6_44, call_param1 [concrete = constants.%.e54]
@@ -873,7 +873,7 @@ fn G() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32, call_param0 [concrete = constants.%.437]
+8 -8
View File
@@ -97,9 +97,9 @@ fn G(a: f64) -> Core.IntLiteral() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete]
// CHECK:STDOUT: %n.patt: @F.%pattern_type (%pattern_type.764) = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: @F.%pattern_type (%pattern_type.764) = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: @F.%pattern_type (%pattern_type.764) = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Core.ref.loc4_55: <namespace> = name_ref Core, imports.%Core [concrete = imports.%Core]
// CHECK:STDOUT: %IntLiteral.ref.loc4_59: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral]
@@ -129,9 +129,9 @@ fn G(a: f64) -> Core.IntLiteral() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %a.patt: %pattern_type.95b = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.95b = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.95b = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Core.ref: <namespace> = name_ref Core, imports.%Core [concrete = imports.%Core]
// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral]
@@ -252,9 +252,9 @@ fn G(a: f64) -> Core.IntLiteral() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete]
// CHECK:STDOUT: %n.patt: @F.%pattern_type (%pattern_type.7d0) = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: @F.%pattern_type (%pattern_type.7d0) = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: @F.%pattern_type (%pattern_type.7d0) = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Core.ref.loc4_57: <namespace> = name_ref Core, imports.%Core [concrete = imports.%Core]
// CHECK:STDOUT: %IntLiteral.ref.loc4_61: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral]
@@ -284,9 +284,9 @@ fn G(a: f64) -> Core.IntLiteral() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %a.patt: %pattern_type.0ae = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.0ae = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.0ae = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Core.ref: <namespace> = name_ref Core, imports.%Core [concrete = imports.%Core]
// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral]
+12 -12
View File
@@ -113,9 +113,9 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete]
// CHECK:STDOUT: %pair.patt: @F.%pattern_type.loc7_26 (%pattern_type.eee) = value_binding_pattern pair [concrete]
// CHECK:STDOUT: %pair.param_patt: @F.%pattern_type.loc7_26 (%pattern_type.eee) = value_param_pattern %pair.patt, call_param0 [concrete]
// CHECK:STDOUT: %pair.param_patt: @F.%pattern_type.loc7_26 (%pattern_type.eee) = value_param_pattern %pair.patt [concrete]
// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_40 (%pattern_type.946) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_40 (%pattern_type.946) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_40 (%pattern_type.946) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %U.ref.loc7_43: type = name_ref U, %U.loc7_16.2 [symbolic = %U.loc7_16.1 (constants.%U)]
// CHECK:STDOUT: %.loc7_43.3: Core.Form = init_form %U.ref.loc7_43, call_param1 [symbolic = %.loc7_43.2 (constants.%.4b7)]
@@ -142,9 +142,9 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %pair.patt: %pattern_type.881 = value_binding_pattern pair [concrete]
// CHECK:STDOUT: %pair.param_patt: %pattern_type.881 = value_param_pattern %pair.patt, call_param0 [concrete]
// CHECK:STDOUT: %pair.param_patt: %pattern_type.881 = value_param_pattern %pair.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %D.ref.loc9_23: type = name_ref D, file.%D.decl [concrete = constants.%D]
// CHECK:STDOUT: %.loc9_23.2: Core.Form = init_form %D.ref.loc9_23, call_param1 [concrete = constants.%.c40]
@@ -358,9 +358,9 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %A.patt: %pattern_type.7ce = symbolic_binding_pattern A, 0 [concrete]
// CHECK:STDOUT: %B.patt: %pattern_type.7ce = symbolic_binding_pattern B, 1 [concrete]
// CHECK:STDOUT: %h.patt: @F.%pattern_type (%pattern_type.dc2) = value_binding_pattern h [concrete]
// CHECK:STDOUT: %h.param_patt: @F.%pattern_type (%pattern_type.dc2) = value_param_pattern %h.patt, call_param0 [concrete]
// CHECK:STDOUT: %h.param_patt: @F.%pattern_type (%pattern_type.dc2) = value_param_pattern %h.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc6_54: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc6_54: Core.Form = init_form %i32.loc6_54, call_param1 [concrete = constants.%.e54]
@@ -390,9 +390,9 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %h.patt: %pattern_type.530 = value_binding_pattern h [concrete]
// CHECK:STDOUT: %h.param_patt: %pattern_type.530 = value_param_pattern %h.patt, call_param0 [concrete]
// CHECK:STDOUT: %h.param_patt: %pattern_type.530 = value_param_pattern %h.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc8_29: Core.Form = init_form %i32, call_param1 [concrete = constants.%.e54]
@@ -559,9 +559,9 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %pair.patt: @F.%pattern_type.loc7_16 (%pattern_type.c3f) = value_binding_pattern pair [concrete]
// CHECK:STDOUT: %pair.param_patt: @F.%pattern_type.loc7_16 (%pattern_type.c3f) = value_param_pattern %pair.patt, call_param0 [concrete]
// CHECK:STDOUT: %pair.param_patt: @F.%pattern_type.loc7_16 (%pattern_type.c3f) = value_param_pattern %pair.patt [concrete]
// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_30 (%pattern_type.51d) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_30 (%pattern_type.51d) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_30 (%pattern_type.51d) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc7_33: type = name_ref T, %T.loc7_6.2 [symbolic = %T.loc7_6.1 (constants.%T)]
// CHECK:STDOUT: %.loc7_33.2: Core.Form = init_form %T.ref.loc7_33, call_param1 [symbolic = %.loc7_33.1 (constants.%.3cf)]
@@ -583,9 +583,9 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %pair.patt: %pattern_type.881 = value_binding_pattern pair [concrete]
// CHECK:STDOUT: %pair.param_patt: %pattern_type.881 = value_param_pattern %pair.patt, call_param0 [concrete]
// CHECK:STDOUT: %pair.param_patt: %pattern_type.881 = value_param_pattern %pair.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.9c8 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.9c8 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %D.ref.loc9_23: type = name_ref D, file.%D.decl [concrete = constants.%D]
// CHECK:STDOUT: %.loc9_23: Core.Form = init_form %D.ref.loc9_23, call_param1 [concrete = constants.%.c40]
+16 -16
View File
@@ -115,9 +115,9 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_23 (%pattern_type.51d) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_23 (%pattern_type.51d) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_23 (%pattern_type.51d) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)]
// CHECK:STDOUT: %.loc6_26.3: Core.Form = init_form %T.ref.loc6_26, call_param1 [symbolic = %.loc6_26.2 (constants.%.3cf)]
@@ -137,9 +137,9 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.patt: %pattern_type.506 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref.loc8_16: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %.loc8_16.2: Core.Form = init_form %C.ref.loc8_16, call_param1 [concrete = constants.%.b89]
@@ -271,9 +271,9 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_29 (%pattern_type.51d) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_29 (%pattern_type.51d) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_29 (%pattern_type.51d) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)]
// CHECK:STDOUT: %.loc6_32.3: Core.Form = init_form %T.ref.loc6_32, call_param1 [symbolic = %.loc6_32.2 (constants.%.3cf)]
@@ -294,9 +294,9 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.patt: %pattern_type.6eb = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.6eb = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.6eb = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7c7 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c7 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref.loc8_22: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %.loc8_22.2: Core.Form = init_form %C.ref.loc8_22, call_param1 [concrete = constants.%.b89]
@@ -431,9 +431,9 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_23 (%pattern_type.51d) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_23 (%pattern_type.51d) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_23 (%pattern_type.51d) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)]
// CHECK:STDOUT: %.loc6_26.3: Core.Form = init_form %T.ref.loc6_26, call_param1 [symbolic = %.loc6_26.2 (constants.%.3cf)]
@@ -453,9 +453,9 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.patt: %pattern_type.6eb = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.6eb = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.6eb = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.03b = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.03b = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.03b = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref.loc8_28: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %const.loc8_22: type = const_type %C.ref.loc8_28 [concrete = constants.%const]
@@ -587,9 +587,9 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_29 (%pattern_type.51d) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_29 (%pattern_type.51d) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_29 (%pattern_type.51d) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)]
// CHECK:STDOUT: %.loc6_32.3: Core.Form = init_form %T.ref.loc6_32, call_param1 [symbolic = %.loc6_32.2 (constants.%.3cf)]
@@ -610,9 +610,9 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.patt: %pattern_type.506 = value_binding_pattern p [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern %p.patt, call_param0 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.506 = value_param_pattern %p.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.03b = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.03b = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.03b = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %C.ref.loc8_22: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %const: type = const_type %C.ref.loc8_22 [concrete = constants.%const.0e5]
@@ -185,9 +185,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.f1e = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc8_27 (%pattern_type.17d) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc8_27 (%pattern_type.17d) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc8_27 (%pattern_type.17d) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc8_51 (%pattern_type.e66) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc8_51 (%pattern_type.e66) = value_param_pattern %a.patt, call_param1 [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc8_51 (%pattern_type.e66) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc8_17.1: type = splice_block %.loc8_17.3 [concrete = constants.%tuple.type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -390,9 +390,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.7f2 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc8_29 (%pattern_type.2de) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc8_29 (%pattern_type.2de) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc8_29 (%pattern_type.2de) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc8_53 (%pattern_type.92c) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc8_53 (%pattern_type.92c) = value_param_pattern %a.patt, call_param1 [concrete]
// CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc8_53 (%pattern_type.92c) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc8_19: type = splice_block %struct_type.t [concrete = constants.%struct_type.t] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -613,9 +613,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.904 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.3b8c03.1) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.3b8c03.1) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.3b8c03.1) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %a.patt: <error> = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: <error> = value_param_pattern %a.patt, call_param1 [concrete]
// CHECK:STDOUT: %a.param_patt: <error> = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc21_10: type = splice_block %Class.ref [concrete = constants.%Class] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -881,9 +881,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.dcb = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.342) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.342) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.342) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %a.patt: <error> = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: <error> = value_param_pattern %a.patt, call_param1 [concrete]
// CHECK:STDOUT: %a.param_patt: <error> = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc12_23: type = splice_block %array_type [concrete = constants.%array_type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
+5 -5
View File
@@ -528,9 +528,9 @@ fn F2(U:! Z) {
// CHECK:STDOUT: %Use.decl: %Use.type = fn_decl @Use [concrete = constants.%Use] {
// CHECK:STDOUT: %T.patt: %pattern_type.9d9 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %x.patt: @Use.%pattern_type (%pattern_type.422) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @Use.%pattern_type (%pattern_type.422) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @Use.%pattern_type (%pattern_type.422) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: %return.patt: @Use.%pattern_type (%pattern_type.422) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @Use.%pattern_type (%pattern_type.422) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @Use.%pattern_type (%pattern_type.422) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref.loc9_24: %I.type = name_ref T, %T.loc9_8.2 [symbolic = %T.loc9_8.1 (constants.%T)]
// CHECK:STDOUT: %T.as_type.loc9_24: type = facet_access_type %T.ref.loc9_24 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
@@ -715,7 +715,7 @@ fn F2(U:! Z) {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %AA.patt: %pattern_type.dc8 = symbolic_binding_pattern AA, 0 [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AA.ref: %A_where.type = name_ref AA, %AA.loc6_6.2 [symbolic = %AA.loc6_6.1 (constants.%AA)]
// CHECK:STDOUT: %AA.as_type: type = facet_access_type %AA.ref [symbolic = %AA.binding.as_type (constants.%AA.binding.as_type)]
@@ -853,7 +853,7 @@ fn F2(U:! Z) {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %AB.patt: %pattern_type.77e = symbolic_binding_pattern AB, 0 [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AB.ref: %facet_type.82c = name_ref AB, %AB.loc14_6.2 [symbolic = %AB.loc14_6.1 (constants.%AB)]
// CHECK:STDOUT: %AB.as_type: type = facet_access_type %AB.ref [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)]
@@ -898,7 +898,7 @@ fn F2(U:! Z) {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %AB.patt: %pattern_type.77e = symbolic_binding_pattern AB, 0 [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %AB.ref: %facet_type.82c = name_ref AB, %AB.loc18_6.2 [symbolic = %AB.loc18_6.1 (constants.%AB)]
// CHECK:STDOUT: %AB.as_type: type = facet_access_type %AB.ref [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)]
@@ -177,7 +177,7 @@ fn F() {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %T.patt: %pattern_type.773 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %t.patt: @G.%pattern_type (%pattern_type.2ee) = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: @G.%pattern_type (%pattern_type.2ee) = value_param_pattern %t.patt, call_param0 [concrete]
// CHECK:STDOUT: %t.param_patt: @G.%pattern_type (%pattern_type.2ee) = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc33_20.1: type = splice_block %.loc33_20.3 [concrete = constants.%facet_type.dc7] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -502,7 +502,7 @@ fn G() {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type.loc15_39 (%pattern_type.c49) = symbolic_binding_pattern U, 1 [concrete]
// CHECK:STDOUT: %t.patt: @CallGenericMethod.%pattern_type.loc15_62 (%pattern_type.51d) = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: @CallGenericMethod.%pattern_type.loc15_62 (%pattern_type.51d) = value_param_pattern %t.patt, call_param0 [concrete]
// CHECK:STDOUT: %t.param_patt: @CallGenericMethod.%pattern_type.loc15_62 (%pattern_type.51d) = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc15_26.1: type = splice_block %.loc15_26.2 [concrete = type] {
// CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -76,7 +76,7 @@ fn F() {
// CHECK:STDOUT: %WalkAnimal.decl: %WalkAnimal.type = fn_decl @WalkAnimal [concrete = constants.%WalkAnimal] {
// CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %a.patt: @WalkAnimal.%pattern_type (%pattern_type.892) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @WalkAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @WalkAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc17_19: type = splice_block %Animal.ref [concrete = constants.%Animal.type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -207,9 +207,9 @@ fn B() {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type.loc15_32 (%pattern_type.c49) = symbolic_binding_pattern U, 1 [concrete]
// CHECK:STDOUT: %a.patt: @CallGenericMethod.%pattern_type.loc15_55 (%pattern_type.46f) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @CallGenericMethod.%pattern_type.loc15_55 (%pattern_type.46f) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @CallGenericMethod.%pattern_type.loc15_55 (%pattern_type.46f) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %s.patt: @CallGenericMethod.%pattern_type.loc15_68 (%pattern_type.51d) = value_binding_pattern s [concrete]
// CHECK:STDOUT: %s.param_patt: @CallGenericMethod.%pattern_type.loc15_68 (%pattern_type.51d) = value_param_pattern %s.patt, call_param1 [concrete]
// CHECK:STDOUT: %s.param_patt: @CallGenericMethod.%pattern_type.loc15_68 (%pattern_type.51d) = value_param_pattern %s.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc15_26.1: type = splice_block %.loc15_26.2 [concrete = type] {
// CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -565,7 +565,7 @@ fn B() {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %T.patt: %pattern_type.eee = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.826) = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.826) = value_param_pattern %t.patt, call_param0 [concrete]
// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.826) = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_18.1: type = splice_block %I.type [concrete = constants.%I.type.5f7] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -830,7 +830,7 @@ fn B() {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %T.patt: %pattern_type.24a = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.ced) = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.ced) = value_param_pattern %t.patt, call_param0 [concrete]
// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.ced) = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_18.1: type = splice_block %I.type [concrete = constants.%I.type.7b9] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -1067,7 +1067,7 @@ fn B() {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %T.patt: %pattern_type.9d9 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.422) = value_binding_pattern t [concrete]
// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.422) = value_param_pattern %t.patt, call_param0 [concrete]
// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.422) = value_param_pattern %t.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_10: type = splice_block %I.ref [concrete = constants.%I.type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -154,7 +154,7 @@ fn CallsWithTypeExplicit(U:! type) {
// CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] {
// CHECK:STDOUT: %T.patt: %pattern_type.0dc = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.93e) = value_binding_pattern e [concrete]
// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern %e.patt, call_param0 [concrete]
// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern %e.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc6_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -172,7 +172,7 @@ fn CallsWithTypeExplicit(U:! type) {
// CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] {
// CHECK:STDOUT: %U.patt: %pattern_type.37f = symbolic_binding_pattern U, 0 [concrete]
// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.256) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.256) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.256) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.3 [concrete = constants.%facet_type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -359,7 +359,7 @@ fn CallsWithTypeExplicit(U:! type) {
// CHECK:STDOUT: %FeedTame.decl: %FeedTame.type = fn_decl @FeedTame [concrete = constants.%FeedTame] {
// CHECK:STDOUT: %V.patt: %pattern_type.fa7 = symbolic_binding_pattern V, 0 [concrete]
// CHECK:STDOUT: %v.patt: @FeedTame.%pattern_type (%pattern_type.795) = value_binding_pattern v [concrete]
// CHECK:STDOUT: %v.param_patt: @FeedTame.%pattern_type (%pattern_type.795) = value_param_pattern %v.patt, call_param0 [concrete]
// CHECK:STDOUT: %v.param_patt: @FeedTame.%pattern_type (%pattern_type.795) = value_param_pattern %v.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc7_22.1: type = splice_block %.loc7_22.3 [concrete = constants.%facet_type.2db] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -383,7 +383,7 @@ fn CallsWithTypeExplicit(U:! type) {
// CHECK:STDOUT: %HandleTameAnimal.decl: %HandleTameAnimal.type = fn_decl @HandleTameAnimal [concrete = constants.%HandleTameAnimal] {
// CHECK:STDOUT: %W.patt: %pattern_type.fb4 = symbolic_binding_pattern W, 0 [concrete]
// CHECK:STDOUT: %w.patt: @HandleTameAnimal.%pattern_type (%pattern_type.e8e) = value_binding_pattern w [concrete]
// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal.%pattern_type (%pattern_type.e8e) = value_param_pattern %w.patt, call_param0 [concrete]
// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal.%pattern_type (%pattern_type.e8e) = value_param_pattern %w.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_39.1: type = splice_block %.loc9_39.3 [concrete = constants.%facet_type.206] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -612,7 +612,7 @@ fn CallsWithTypeExplicit(U:! type) {
// CHECK:STDOUT: %FeedTame2.decl: %FeedTame2.type = fn_decl @FeedTame2 [concrete = constants.%FeedTame2] {
// CHECK:STDOUT: %V.patt: %pattern_type.fa7 = symbolic_binding_pattern V, 0 [concrete]
// CHECK:STDOUT: %v.patt: @FeedTame2.%pattern_type (%pattern_type.795) = value_binding_pattern v [concrete]
// CHECK:STDOUT: %v.param_patt: @FeedTame2.%pattern_type (%pattern_type.795) = value_param_pattern %v.patt, call_param0 [concrete]
// CHECK:STDOUT: %v.param_patt: @FeedTame2.%pattern_type (%pattern_type.795) = value_param_pattern %v.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.3 [concrete = constants.%facet_type.2db] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -636,7 +636,7 @@ fn CallsWithTypeExplicit(U:! type) {
// CHECK:STDOUT: %HandleTameAnimal2.decl: %HandleTameAnimal2.type = fn_decl @HandleTameAnimal2 [concrete = constants.%HandleTameAnimal2] {
// CHECK:STDOUT: %W.patt: %pattern_type.310 = symbolic_binding_pattern W, 0 [concrete]
// CHECK:STDOUT: %w.patt: @HandleTameAnimal2.%pattern_type (%pattern_type.da7) = value_binding_pattern w [concrete]
// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal2.%pattern_type (%pattern_type.da7) = value_param_pattern %w.patt, call_param0 [concrete]
// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal2.%pattern_type (%pattern_type.da7) = value_param_pattern %w.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc11_33.1: type = splice_block %.loc11_33.3 [concrete = constants.%facet_type.afc] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -847,7 +847,7 @@ fn CallsWithTypeExplicit(U:! type) {
// CHECK:STDOUT: %TakesA.decl: %TakesA.type = fn_decl @TakesA [concrete = constants.%TakesA] {
// CHECK:STDOUT: %T.patt: %pattern_type.faf = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %x.patt: @TakesA.%pattern_type (%pattern_type.057cf4.1) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @TakesA.%pattern_type (%pattern_type.057cf4.1) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @TakesA.%pattern_type (%pattern_type.057cf4.1) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc7_15: type = splice_block %A.ref [concrete = constants.%A.type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39]
@@ -865,7 +865,7 @@ fn CallsWithTypeExplicit(U:! type) {
// CHECK:STDOUT: %WithExtraWhere.decl: %WithExtraWhere.type = fn_decl @WithExtraWhere [concrete = constants.%WithExtraWhere] {
// CHECK:STDOUT: %U.patt: %pattern_type.faf = symbolic_binding_pattern U, 0 [concrete]
// CHECK:STDOUT: %y.patt: @WithExtraWhere.%pattern_type (%pattern_type.057cf4.2) = value_binding_pattern y [concrete]
// CHECK:STDOUT: %y.param_patt: @WithExtraWhere.%pattern_type (%pattern_type.057cf4.2) = value_param_pattern %y.patt, call_param0 [concrete]
// CHECK:STDOUT: %y.param_patt: @WithExtraWhere.%pattern_type (%pattern_type.057cf4.2) = value_param_pattern %y.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_25.1: type = splice_block %.loc9_25.2 [concrete = constants.%A.type] {
// CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39]
@@ -1010,7 +1010,7 @@ fn CallsWithTypeExplicit(U:! type) {
// CHECK:STDOUT: %TakesTypeDeduced.decl: %TakesTypeDeduced.type = fn_decl @TakesTypeDeduced [concrete = constants.%TakesTypeDeduced] {
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %x.patt: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc3_25.1: type = splice_block %.loc3_25.2 [concrete = type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39]
@@ -1024,7 +1024,7 @@ fn CallsWithTypeExplicit(U:! type) {
// CHECK:STDOUT: %CallsWithExtraWhere.decl: %CallsWithExtraWhere.type = fn_decl @CallsWithExtraWhere [concrete = constants.%CallsWithExtraWhere] {
// CHECK:STDOUT: %U.patt: %pattern_type.9a5 = symbolic_binding_pattern U, 0 [concrete]
// CHECK:STDOUT: %y.patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.349) = value_binding_pattern y [concrete]
// CHECK:STDOUT: %y.param_patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.349) = value_param_pattern %y.patt, call_param0 [concrete]
// CHECK:STDOUT: %y.param_patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.349) = value_param_pattern %y.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc4_33.1: type = splice_block %.loc4_33.2 [concrete = constants.%type] {
// CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39]
@@ -1220,7 +1220,7 @@ fn CallsWithTypeExplicit(U:! type) {
// CHECK:STDOUT: %TakesExtraWhereDeduced.decl: %TakesExtraWhereDeduced.type = fn_decl @TakesExtraWhereDeduced [concrete = constants.%TakesExtraWhereDeduced] {
// CHECK:STDOUT: %T.patt: %pattern_type.9a5 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %x.patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.349) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.349) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.349) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc3_36.1: type = splice_block %.loc3_36.2 [concrete = constants.%type] {
// CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39]
@@ -1245,7 +1245,7 @@ fn CallsWithTypeExplicit(U:! type) {
// CHECK:STDOUT: %CallsWithType.decl: %CallsWithType.type = fn_decl @CallsWithType [concrete = constants.%CallsWithType] {
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete]
// CHECK:STDOUT: %y.patt: @CallsWithType.%pattern_type (%pattern_type.51d) = value_binding_pattern y [concrete]
// CHECK:STDOUT: %y.param_patt: @CallsWithType.%pattern_type (%pattern_type.51d) = value_param_pattern %y.patt, call_param0 [concrete]
// CHECK:STDOUT: %y.param_patt: @CallsWithType.%pattern_type (%pattern_type.51d) = value_param_pattern %y.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc4_22.1: type = splice_block %.loc4_22.2 [concrete = type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39]
@@ -90,7 +90,7 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] {
// CHECK:STDOUT: %T.patt: %pattern_type.0dc = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.93e) = value_binding_pattern e [concrete]
// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern %e.patt, call_param0 [concrete]
// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern %e.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc20_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -108,7 +108,7 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] {
// CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc22_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -194,9 +194,9 @@ fn F() {
// CHECK:STDOUT: %Food.patt: %pattern_type.b51 = symbolic_binding_pattern Food, 0 [concrete]
// CHECK:STDOUT: %T.patt: @Feed.%pattern_type.loc31_24 (%pattern_type.350) = symbolic_binding_pattern T, 1 [concrete]
// CHECK:STDOUT: %e.patt: @Feed.%pattern_type.loc31_47 (%pattern_type.2b9) = value_binding_pattern e [concrete]
// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type.loc31_47 (%pattern_type.2b9) = value_param_pattern %e.patt, call_param0 [concrete]
// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type.loc31_47 (%pattern_type.2b9) = value_param_pattern %e.patt [concrete]
// CHECK:STDOUT: %food.patt: @Feed.%pattern_type.loc31_60 (%pattern_type.12a) = value_binding_pattern food [concrete]
// CHECK:STDOUT: %food.param_patt: @Feed.%pattern_type.loc31_60 (%pattern_type.12a) = value_param_pattern %food.patt, call_param1 [concrete]
// CHECK:STDOUT: %food.param_patt: @Feed.%pattern_type.loc31_60 (%pattern_type.12a) = value_param_pattern %food.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc31_16: type = splice_block %Edible.ref [concrete = constants.%Edible.type] {
// CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -231,9 +231,9 @@ fn F() {
// CHECK:STDOUT: %A.patt: %pattern_type.e10 = symbolic_binding_pattern A, 0 [concrete]
// CHECK:STDOUT: %Food.patt: %pattern_type.b51 = symbolic_binding_pattern Food, 1 [concrete]
// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type.loc32_44 (%pattern_type.892) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type.loc32_44 (%pattern_type.892) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type.loc32_44 (%pattern_type.892) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %food.patt: @HandleAnimal.%pattern_type.loc32_50 (%pattern_type.9ed) = value_binding_pattern food [concrete]
// CHECK:STDOUT: %food.param_patt: @HandleAnimal.%pattern_type.loc32_50 (%pattern_type.9ed) = value_param_pattern %food.patt, call_param1 [concrete]
// CHECK:STDOUT: %food.param_patt: @HandleAnimal.%pattern_type.loc32_50 (%pattern_type.9ed) = value_param_pattern %food.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc32_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] {
// CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -83,7 +83,7 @@ fn F() {
// CHECK:STDOUT: %FeedAnimal.decl: %FeedAnimal.type = fn_decl @FeedAnimal [concrete = constants.%FeedAnimal] {
// CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %a.patt: @FeedAnimal.%pattern_type (%pattern_type.892) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @FeedAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @FeedAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc17_19: type = splice_block %Animal.ref [concrete = constants.%Animal.type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -101,7 +101,7 @@ fn F() {
// CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] {
// CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc19_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
+1 -1
View File
@@ -63,7 +63,7 @@ fn G() { F(Animal); }
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %e.patt: %pattern_type = value_binding_pattern e [concrete]
// CHECK:STDOUT: %e.param_patt: %pattern_type = value_param_pattern %e.patt, call_param0 [concrete]
// CHECK:STDOUT: %e.param_patt: %pattern_type = value_param_pattern %e.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %e.param: %Eats.type = value_param call_param0
// CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type]
@@ -72,7 +72,7 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] {
// CHECK:STDOUT: %T.patt: %pattern_type.0dc = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.93e) = value_binding_pattern e [concrete]
// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern %e.patt, call_param0 [concrete]
// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern %e.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc18_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -90,7 +90,7 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] {
// CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc27_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] {
// CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -137,7 +137,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) {
// CHECK:STDOUT: %T.patt: %pattern_type.f1e = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %A.patt: @F.%pattern_type.loc27_27 (%pattern_type.e66) = symbolic_binding_pattern A, 1 [concrete]
// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc27_43 (%pattern_type.17d) = value_binding_pattern x [concrete]
// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc27_43 (%pattern_type.17d) = value_param_pattern %x.patt, call_param0 [concrete]
// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc27_43 (%pattern_type.17d) = value_param_pattern %x.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc27_17.1: type = splice_block %.loc27_17.3 [concrete = constants.%tuple.type] {
// CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -163,7 +163,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %holds_to.patt: %pattern_type.c6f = value_binding_pattern holds_to [concrete]
// CHECK:STDOUT: %holds_to.param_patt: %pattern_type.c6f = value_param_pattern %holds_to.patt, call_param0 [concrete]
// CHECK:STDOUT: %holds_to.param_patt: %pattern_type.c6f = value_param_pattern %holds_to.patt [concrete]
// CHECK:STDOUT: %from.patt: %pattern_type.6bd = symbolic_binding_pattern from, 0 [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %holds_to.param: %HoldsType.0ca = value_param call_param0
@@ -187,9 +187,9 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) {
// CHECK:STDOUT: impl @RuntimeConvertFrom.as.ImplicitAs.impl: %RuntimeConvertFrom.ref as %ImplicitAs.type {
// CHECK:STDOUT: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.decl: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.type = fn_decl @RuntimeConvertFrom.as.ImplicitAs.impl.Convert [concrete = constants.%RuntimeConvertFrom.as.ImplicitAs.impl.Convert] {
// CHECK:STDOUT: %self.patt: %pattern_type.6bd = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.6bd = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.6bd = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.c89 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.c89 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.c89 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %RuntimeConvertTo.ref: type = name_ref RuntimeConvertTo, file.%RuntimeConvertTo.decl [concrete = constants.%RuntimeConvertTo]
// CHECK:STDOUT: %.loc24_38: Core.Form = init_form %RuntimeConvertTo.ref, call_param1 [concrete = constants.%.382]
+2 -2
View File
@@ -400,7 +400,7 @@ fn F[U:! Core.Destroy where .Self impls I(.Self)](u: U) {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.033 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc8_6.2 [symbolic = %T.loc8_6.1 (constants.%T.706)]
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
@@ -437,7 +437,7 @@ fn F[U:! Core.Destroy where .Self impls I(.Self)](u: U) {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %T.patt: %pattern_type.033 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc12_6.2 [symbolic = %T.loc12_6.1 (constants.%T.706)]
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
@@ -54,7 +54,7 @@ fn G(_:! I(.Self) where .I1 = ()) {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt: %pattern_type.033 = symbolic_binding_pattern T, 0 [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc18_6.2 [symbolic = %T.loc18_6.1 (constants.%T.706)]
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)]
+10 -10
View File
@@ -278,9 +278,9 @@ fn Read(y:! Core.IntLiteral()) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Range.decl: %Range.type = fn_decl @Range [concrete = constants.%Range] {
// CHECK:STDOUT: %end.patt: %pattern_type.7ce = value_binding_pattern end [concrete]
// CHECK:STDOUT: %end.param_patt: %pattern_type.7ce = value_param_pattern %end.patt, call_param0 [concrete]
// CHECK:STDOUT: %end.param_patt: %pattern_type.7ce = value_param_pattern %end.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.615 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.615 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.615 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %IntRange.ref.loc26: %IntRange.type = name_ref IntRange, file.%IntRange.decl [concrete = constants.%IntRange.generic]
// CHECK:STDOUT: %int_32.loc26: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
@@ -316,9 +316,9 @@ fn Read(y:! Core.IntLiteral()) {
// CHECK:STDOUT: impl: %Self.ref as %.loc9_24 {
// CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor.decl: @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.NewCursor.type (%IntRange.as.Iterate.impl.NewCursor.type) = fn_decl @IntRange.as.Iterate.impl.NewCursor [symbolic = @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.NewCursor (constants.%IntRange.as.Iterate.impl.NewCursor)] {
// CHECK:STDOUT: %self.patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_18 (%pattern_type.b16) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_18 (%pattern_type.b16) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_18 (%pattern_type.b16) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_32 (%pattern_type.764eab.1) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_32 (%pattern_type.764eab.1) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_32 (%pattern_type.764eab.1) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Core.ref: <namespace> = name_ref Core, imports.%Core [concrete = imports.%Core]
// CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic]
@@ -336,11 +336,11 @@ fn Read(y:! Core.IntLiteral()) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %IntRange.as.Iterate.impl.Next.decl: @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.Next.type (%IntRange.as.Iterate.impl.Next.type) = fn_decl @IntRange.as.Iterate.impl.Next [symbolic = @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.Next (constants.%IntRange.as.Iterate.impl.Next)] {
// CHECK:STDOUT: %self.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_13 (%pattern_type.b16) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_13 (%pattern_type.b16) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_13 (%pattern_type.b16) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %cursor.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_25 (%pattern_type.bda) = value_binding_pattern cursor [concrete]
// CHECK:STDOUT: %cursor.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_25 (%pattern_type.bda) = value_param_pattern %cursor.patt, call_param1 [concrete]
// CHECK:STDOUT: %cursor.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_25 (%pattern_type.bda) = value_param_pattern %cursor.patt [concrete]
// CHECK:STDOUT: %return.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_47 (%pattern_type.0c2) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_47 (%pattern_type.0c2) = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_47 (%pattern_type.0c2) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Core.ref.loc11_50: <namespace> = name_ref Core, imports.%Core [concrete = imports.%Core]
// CHECK:STDOUT: %Optional.ref.loc11: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic]
@@ -400,11 +400,11 @@ fn Read(y:! Core.IntLiteral()) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %IntRange.Make.decl: @IntRange.%IntRange.Make.type (%IntRange.Make.type.1df) = fn_decl @IntRange.Make [symbolic = @IntRange.%IntRange.Make (constants.%IntRange.Make.8a9)] {
// CHECK:STDOUT: %start.patt: @IntRange.Make.%pattern_type.loc5_11 (%pattern_type.764eab.1) = value_binding_pattern start [concrete]
// CHECK:STDOUT: %start.param_patt: @IntRange.Make.%pattern_type.loc5_11 (%pattern_type.764eab.1) = value_param_pattern %start.patt, call_param0 [concrete]
// CHECK:STDOUT: %start.param_patt: @IntRange.Make.%pattern_type.loc5_11 (%pattern_type.764eab.1) = value_param_pattern %start.patt [concrete]
// CHECK:STDOUT: %end.patt: @IntRange.Make.%pattern_type.loc5_11 (%pattern_type.764eab.1) = value_binding_pattern end [concrete]
// CHECK:STDOUT: %end.param_patt: @IntRange.Make.%pattern_type.loc5_11 (%pattern_type.764eab.1) = value_param_pattern %end.patt, call_param1 [concrete]
// CHECK:STDOUT: %end.param_patt: @IntRange.Make.%pattern_type.loc5_11 (%pattern_type.764eab.1) = value_param_pattern %end.patt [concrete]
// CHECK:STDOUT: %return.patt: @IntRange.Make.%pattern_type.loc5_49 (%pattern_type.b16) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @IntRange.Make.%pattern_type.loc5_49 (%pattern_type.b16) = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: @IntRange.Make.%pattern_type.loc5_49 (%pattern_type.b16) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc5_52.2: type = specific_constant constants.%IntRange.265, @IntRange(constants.%N) [symbolic = %IntRange (constants.%IntRange.265)]
// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc5_52.2 [symbolic = %IntRange (constants.%IntRange.265)]
+12 -12
View File
@@ -95,7 +95,7 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: }
// CHECK:STDOUT: %IntLiteral.decl: %IntLiteral.type = fn_decl @IntLiteral [concrete = constants.%IntLiteral] {
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc4_20.1: type = type_literal type [concrete = type]
// CHECK:STDOUT: %.loc4_20.2: Core.Form = init_form %.loc4_20.1, call_param0 [concrete = constants.%.824]
@@ -105,9 +105,9 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: %MyIntLiteral.decl: type = class_decl @MyIntLiteral [concrete = constants.%MyIntLiteral] {} {}
// CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] {
// CHECK:STDOUT: %N.patt: %pattern_type.d59 = value_binding_pattern N [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.d59 = value_param_pattern %N.patt, call_param0 [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.d59 = value_param_pattern %N.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc10_28.1: type = type_literal type [concrete = type]
// CHECK:STDOUT: %.loc10_28.2: Core.Form = init_form %.loc10_28.1, call_param1 [concrete = constants.%.b38]
@@ -120,9 +120,9 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: %MyInt32.decl: type = class_decl @MyInt32 [concrete = constants.%MyInt32] {} {}
// CHECK:STDOUT: %MyInt32.Make.decl: %MyInt32.Make.type = fn_decl @MyInt32.Make [concrete = constants.%MyInt32.Make] {
// CHECK:STDOUT: %a.patt: %pattern_type.d59 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.d59 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.d59 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.4d1 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.4d1 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.4d1 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %MyInt32.ref.loc18: type = name_ref MyInt32, file.%MyInt32.decl [concrete = constants.%MyInt32]
// CHECK:STDOUT: %.loc18: Core.Form = init_form %MyInt32.ref.loc18, call_param1 [concrete = constants.%.000]
@@ -134,11 +134,11 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: }
// CHECK:STDOUT: %MyAdd.decl: %MyAdd.type = fn_decl @MyAdd [concrete = constants.%MyAdd] {
// CHECK:STDOUT: %a.patt: %pattern_type.4d1 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.4d1 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.4d1 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.4d1 = value_binding_pattern b [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.4d1 = value_param_pattern %b.patt, call_param1 [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.4d1 = value_param_pattern %b.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.4d1 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.4d1 = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.4d1 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %MyInt32.ref.loc20_37: type = name_ref MyInt32, file.%MyInt32.decl [concrete = constants.%MyInt32]
// CHECK:STDOUT: %.loc20: Core.Form = init_form %MyInt32.ref.loc20_37, call_param2 [concrete = constants.%.5d8]
@@ -186,9 +186,9 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: adapt_decl %.loc13_32.2 [concrete]
// CHECK:STDOUT: %MyInt32.Make.decl: %MyInt32.Make.type = fn_decl @MyInt32.Make [concrete = constants.%MyInt32.Make] {
// CHECK:STDOUT: %a.patt: %pattern_type.d59 = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.d59 = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.d59 = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.4d1 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.4d1 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.4d1 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %MyInt32.ref.loc15: type = name_ref MyInt32, file.%MyInt32.decl [concrete = constants.%MyInt32]
// CHECK:STDOUT: %.loc15: Core.Form = init_form %MyInt32.ref.loc15, call_param1 [concrete = constants.%.000]
@@ -265,9 +265,9 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: %MyIntLiteral.decl: type = class_decl @MyIntLiteral [concrete = constants.%MyIntLiteral] {} {}
// CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] {
// CHECK:STDOUT: %N.patt: %pattern_type.d59 = value_binding_pattern N [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.d59 = value_param_pattern %N.patt, call_param0 [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.d59 = value_param_pattern %N.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc12_28.1: type = type_literal type [concrete = type]
// CHECK:STDOUT: %.loc12_28.2: Core.Form = init_form %.loc12_28.1, call_param1 [concrete = constants.%.b38]
+6 -6
View File
@@ -98,11 +98,11 @@ fn RuntimeCall(a: i32, b: i32) -> i32 {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Add.decl: %Add.type = fn_decl @Add [concrete = constants.%Add] {
// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt, call_param1 [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc15_27: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_27, call_param2 [concrete = constants.%.8ef]
@@ -154,11 +154,11 @@ fn RuntimeCall(a: i32, b: i32) -> i32 {
// CHECK:STDOUT: %arr: ref %array_type = ref_binding arr, %arr.var [concrete = %arr.var]
// CHECK:STDOUT: %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [concrete = constants.%RuntimeCall] {
// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt, call_param1 [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc19_35: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc19: Core.Form = init_form %i32.loc19_35, call_param2 [concrete = constants.%.8ef]
@@ -166,7 +166,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: }
// CHECK:STDOUT: %IntLiteral.decl: %IntLiteral.type = fn_decl @IntLiteral [concrete = constants.%IntLiteral] {
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt, call_param0 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc4_20.1: type = type_literal type [concrete = type]
// CHECK:STDOUT: %.loc4_20.2: Core.Form = init_form %.loc4_20.1, call_param0 [concrete = constants.%.824]
@@ -175,9 +175,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: }
// CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] {
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = value_binding_pattern N [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern %N.patt, call_param0 [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern %N.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc5_28.1: type = type_literal type [concrete = type]
// CHECK:STDOUT: %.loc5_28.2: Core.Form = init_form %.loc5_28.1, call_param1 [concrete = constants.%.b38]
@@ -268,11 +268,11 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %AddWith.WithSelf.Op.decl: @AddWith.WithSelf.%AddWith.WithSelf.Op.type (%AddWith.WithSelf.Op.type.65a) = fn_decl @AddWith.WithSelf.Op [symbolic = @AddWith.WithSelf.%AddWith.WithSelf.Op (constants.%AddWith.WithSelf.Op.647)] {
// CHECK:STDOUT: %self.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %other.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_binding_pattern other [concrete]
// CHECK:STDOUT: %other.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_param_pattern %other.patt, call_param1 [concrete]
// CHECK:STDOUT: %other.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_param_pattern %other.patt [concrete]
// CHECK:STDOUT: %return.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc8_37.2: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.26b) = specific_constant @AddWith.%Self.loc7_29.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.a37)]
// CHECK:STDOUT: %Self.ref.loc8_37: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.26b) = name_ref Self, %.loc8_37.2 [symbolic = %Self (constants.%Self.a37)]
@@ -323,9 +323,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %As.WithSelf.Convert.decl: @As.WithSelf.%As.WithSelf.Convert.type (%As.WithSelf.Convert.type.aef) = fn_decl @As.WithSelf.Convert [symbolic = @As.WithSelf.%As.WithSelf.Convert (constants.%As.WithSelf.Convert.a95)] {
// CHECK:STDOUT: %self.patt: @As.WithSelf.Convert.%pattern_type.loc12_14 (%pattern_type.24e) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_14 (%pattern_type.24e) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_14 (%pattern_type.24e) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: @As.WithSelf.Convert.%pattern_type.loc12_28 (%pattern_type.51d) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_28 (%pattern_type.51d) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_28 (%pattern_type.51d) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: type = name_ref T, @As.%T.loc11_14.2 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %.loc12_31.2: Core.Form = init_form %T.ref, call_param1 [symbolic = %.loc12_31.1 (constants.%.3cf)]
@@ -367,9 +367,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.f6b) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.de0)] {
// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_14 (%pattern_type.8de) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_14 (%pattern_type.8de) = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_14 (%pattern_type.8de) = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_28 (%pattern_type.51d) = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_28 (%pattern_type.51d) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_28 (%pattern_type.51d) = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: type = name_ref T, @ImplicitAs.%T.loc15_22.2 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %.loc16_31.2: Core.Form = init_form %T.ref, call_param1 [symbolic = %.loc16_31.1 (constants.%.3cf)]
@@ -400,11 +400,11 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: impl @i32.builtin.as.AddWith.impl: %.loc19_6 as %AddWith.type {
// CHECK:STDOUT: %i32.builtin.as.AddWith.impl.Op.decl: %i32.builtin.as.AddWith.impl.Op.type = fn_decl @i32.builtin.as.AddWith.impl.Op [concrete = constants.%i32.builtin.as.AddWith.impl.Op] {
// CHECK:STDOUT: %self.patt: %pattern_type.956 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.956 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.956 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %other.patt: %pattern_type.956 = value_binding_pattern other [concrete]
// CHECK:STDOUT: %other.param_patt: %pattern_type.956 = value_param_pattern %other.patt, call_param1 [concrete]
// CHECK:STDOUT: %other.param_patt: %pattern_type.956 = value_param_pattern %other.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %Self.ref.loc20_37: type = name_ref Self, @i32.builtin.as.AddWith.impl.%.loc19_6 [concrete = constants.%i32.builtin]
// CHECK:STDOUT: %.loc20: Core.Form = init_form %Self.ref.loc20_37, call_param2 [concrete = constants.%.2f6]
@@ -428,9 +428,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: impl @Core.IntLiteral.as.As.impl: %.loc23_17.2 as %As.type {
// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.decl: %Core.IntLiteral.as.As.impl.Convert.type = fn_decl @Core.IntLiteral.as.As.impl.Convert [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] {
// CHECK:STDOUT: %self.patt: %pattern_type.dc0 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.dc0 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.dc0 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc24_31.1: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin]
// CHECK:STDOUT: %.loc24_31.2: Core.Form = init_form %.loc24_31.1, call_param1 [concrete = constants.%.8a4]
@@ -451,9 +451,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: impl @Core.IntLiteral.as.ImplicitAs.impl: %.loc27_17.2 as %ImplicitAs.type {
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.decl: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = fn_decl @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] {
// CHECK:STDOUT: %self.patt: %pattern_type.dc0 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.dc0 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.dc0 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc28_31.1: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin]
// CHECK:STDOUT: %.loc28_31.2: Core.Form = init_form %.loc28_31.1, call_param1 [concrete = constants.%.8a4]
@@ -474,9 +474,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: impl @i32.builtin.as.ImplicitAs.impl: %.loc31_6 as %ImplicitAs.type {
// CHECK:STDOUT: %i32.builtin.as.ImplicitAs.impl.Convert.decl: %i32.builtin.as.ImplicitAs.impl.Convert.type = fn_decl @i32.builtin.as.ImplicitAs.impl.Convert [concrete = constants.%i32.builtin.as.ImplicitAs.impl.Convert] {
// CHECK:STDOUT: %self.patt: %pattern_type.956 = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.956 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.956 = value_param_pattern %self.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [concrete = constants.%IntLiteral]
// CHECK:STDOUT: %IntLiteral.call: init type = call %IntLiteral.ref() [concrete = Core.IntLiteral]
@@ -44,11 +44,11 @@ fn Add(a: i32, b: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Add.decl: %Add.type = fn_decl @Add [concrete = constants.%Add] {
// CHECK:STDOUT: %a.patt: %pattern_type.7ce = value_binding_pattern a [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt, call_param0 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.7ce = value_binding_pattern b [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt, call_param1 [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc15_27: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_27, call_param2 [concrete = constants.%.8ef]
@@ -99,11 +99,11 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %A.decl.loc15: %A.type.8165c1.1 = fn_decl @A.loc15 [concrete = constants.%A.8aef9d.1] {
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete]
// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt, call_param1 [concrete]
// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc15_25: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_25, call_param2 [concrete = constants.%.8ef]
@@ -118,11 +118,11 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: }
// CHECK:STDOUT: %A.decl.loc23: %A.type.8165c1.2 = fn_decl @A.loc23 [concrete = constants.%A.8aef9d.2] {
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete]
// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt, call_param1 [concrete]
// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc23_32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc23: Core.Form = init_form %i32.loc23_32, call_param2 [concrete = constants.%.8ef]
@@ -137,11 +137,11 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.decl.loc25: %B.type.d6bcfe.1 = fn_decl @B.loc25 [concrete = constants.%B.5d732e.1] {
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete]
// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt, call_param1 [concrete]
// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc25_32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25_32, call_param2 [concrete = constants.%.8ef]
@@ -156,11 +156,11 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.decl.loc33: %B.type.d6bcfe.2 = fn_decl @B.loc33 [concrete = constants.%B.5d732e.2] {
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete]
// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt, call_param1 [concrete]
// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc33_25: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc33: Core.Form = init_form %i32.loc33_25, call_param2 [concrete = constants.%.8ef]
@@ -175,11 +175,11 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.decl.loc35: %C.type.0036b9.1 = fn_decl @C.loc35 [concrete = constants.%C.6a91b4.1] {
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete]
// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt, call_param1 [concrete]
// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc35_25: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc35: Core.Form = init_form %i32.loc35_25, call_param2 [concrete = constants.%.8ef]
@@ -194,11 +194,11 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.decl.loc43: %C.type.0036b9.2 = fn_decl @C.loc43 [concrete = constants.%C.6a91b4.2] {
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = value_binding_pattern n [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt [concrete]
// CHECK:STDOUT: %m.patt: %pattern_type.7ce = value_binding_pattern m [concrete]
// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt, call_param1 [concrete]
// CHECK:STDOUT: %m.param_patt: %pattern_type.7ce = value_param_pattern %m.patt [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %i32.loc43_25: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %.loc43: Core.Form = init_form %i32.loc43_25, call_param2 [concrete = constants.%.8ef]

Some files were not shown because too many files have changed in this diff Show More