Emit NameBindingDecl after the initializer (if any) (#7467)

In some cases the pattern block can depend on the initializer, so it
must be sequenced after it. See #7469 for a more detailed explanation of
why this is necessary.
This commit is contained in:
Geoff Romer
2026-07-07 19:18:33 +00:00
committed by GitHub
parent ae3c4266d4
commit 8945305dfc
310 changed files with 3375 additions and 3366 deletions
+13 -4
View File
@@ -157,7 +157,6 @@ static auto EndFullPattern(Context& context) -> void {
context.pattern_block_stack().PopAndDiscard();
return;
}
auto pattern_block_id = context.pattern_block_stack().Pop();
// For non-static class fields, a `FieldDecl` has been created; skip
// creating a name binding and var storage.
@@ -165,9 +164,6 @@ static auto EndFullPattern(Context& context) -> void {
return;
}
AddInst<SemIR::NameBindingDecl>(context, context.node_stack().PeekNodeId(),
{.pattern_block_id = pattern_block_id});
// Emit storage for any `var`s in the pattern now.
bool returned =
context.decl_introducer_state_stack().innermost().modifier_set.HasAnyOf(
@@ -341,6 +337,13 @@ auto HandleParseNode(Context& context, Parse::LetDeclId node_id) -> bool {
context.emitter().Emit(LocIdForDiagnostics::TokenOnly(node_id),
ExpectedInitializerAfterLet);
}
auto pattern_block_id = context.pattern_block_stack().Pop();
if (!InNonStaticFieldDecl(context)) {
AddInst<SemIR::NameBindingDecl>(context, node_id,
{.pattern_block_id = pattern_block_id});
}
context.full_pattern_stack().PopFullPattern();
return true;
}
@@ -412,6 +415,12 @@ auto HandleParseNode(Context& context, Parse::VariableDeclId node_id) -> bool {
LocalPatternMatch(context, decl_info.pattern_id, decl_info.init_id);
auto pattern_block_id = context.pattern_block_stack().Pop();
if (!InNonStaticFieldDecl(context)) {
AddInst<SemIR::NameBindingDecl>(context, node_id,
{.pattern_block_id = pattern_block_id});
}
context.full_pattern_stack().PopFullPattern();
context.decl_introducer_state_stack().Pop<Lex::TokenKind::Var>();
+3 -3
View File
@@ -190,9 +190,6 @@ extern alias C = Class;
// CHECK:STDOUT: %b: type = alias_binding b, %a.ref [concrete = constants.%C]
// CHECK:STDOUT: %b.ref: type = name_ref b, %b [concrete = constants.%C]
// CHECK:STDOUT: %c: type = alias_binding c, %b.ref [concrete = constants.%C]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type = value_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc10_13.1: ref %C = temporary_storage
// CHECK:STDOUT: %.loc10_13.2: init %C to %.loc10_13.1 = class_init () [concrete = constants.%C.val]
// CHECK:STDOUT: %.loc10_13.3: init %C = converted @__global_init.%.loc10, %.loc10_13.2 [concrete = constants.%C.val]
@@ -200,6 +197,9 @@ extern alias C = Class;
// CHECK:STDOUT: %.loc10_13.5: %C = acquire_value %.loc10_13.4 [concrete = constants.%C.val]
// CHECK:STDOUT: %c.ref: type = name_ref c, %c [concrete = constants.%C]
// CHECK:STDOUT: %d: %C = wrapper_binding d, %.loc10_13.5
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type = value_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+2 -2
View File
@@ -66,11 +66,11 @@ let a_test: bool = a;
// CHECK:STDOUT: file {
// CHECK:STDOUT: %false: bool = bool_literal false [concrete = constants.%false]
// CHECK:STDOUT: %a: bool = alias_binding a, %false [concrete = constants.%false]
// CHECK:STDOUT: %.loc7: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %a_test: bool = wrapper_binding a_test, @__global_init.%a.ref
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a_test.patt: %pattern_type = value_binding_pattern a_test [concrete = constants.%a_test.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %a_test: bool = wrapper_binding a_test, @__global_init.%a.ref
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+12 -12
View File
@@ -212,13 +212,13 @@ var d: D* = &c;
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %d.var: ref %C = var_storage %d.var_patt [concrete]
// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C]
// CHECK:STDOUT: %d: ref %C = wrapper_binding d, %d.var [concrete = %d.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %C = var_storage %d.var_patt [concrete]
// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C]
// CHECK:STDOUT: %d: ref %C = wrapper_binding d, %d.var [concrete = %d.var]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "export.carbon"] {
@@ -261,13 +261,13 @@ var d: D* = &c;
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %c.var: ref <error> = var_storage %c.var_patt [concrete = <error>]
// CHECK:STDOUT: %C.ref: <error> = name_ref C, <error> [concrete = <error>]
// CHECK:STDOUT: %c: <error> = wrapper_binding c, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: <error> = ref_binding_pattern c [concrete = <error>]
// CHECK:STDOUT: %c.var_patt: <error> = var_pattern %c.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref <error> = var_storage %c.var_patt [concrete = <error>]
// CHECK:STDOUT: %C.ref: <error> = name_ref C, <error> [concrete = <error>]
// CHECK:STDOUT: %c: <error> = wrapper_binding c, <error> [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -333,16 +333,12 @@ var d: D* = &c;
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.98b = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.98b = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %C = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
// CHECK:STDOUT: %c: ref %C = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.fcb = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.fcb = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.98b = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %ptr.6b6 = var_storage %d.var_patt [concrete]
// CHECK:STDOUT: %.loc8: type = splice_block %ptr [concrete = constants.%ptr.6b6] {
@@ -350,6 +346,10 @@ var d: D* = &c;
// CHECK:STDOUT: %ptr: type = ptr_type %D.ref [concrete = constants.%ptr.6b6]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d: ref %ptr.6b6 = wrapper_binding d, %d.var [concrete = %d.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.fcb = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.fcb = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "export_orig.carbon"] {
+24 -24
View File
@@ -108,16 +108,16 @@ var c: () = a_alias_alias;
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, %C.decl [concrete = constants.%C]
// CHECK:STDOUT: %c_alias: type = alias_binding c_alias, %C.ref.loc6 [concrete = constants.%C]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.fcb = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.fcb = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %ptr = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %.loc8: type = splice_block %ptr [concrete = constants.%ptr] {
// CHECK:STDOUT: %C.ref.loc8: type = name_ref C, %C.decl [concrete = constants.%C]
// CHECK:STDOUT: %ptr: type = ptr_type %C.ref.loc8 [concrete = constants.%ptr]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %ptr = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.fcb = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.fcb = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C {
@@ -190,16 +190,16 @@ var c: () = a_alias_alias;
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %c_alias.ref.loc6: type = name_ref c_alias, imports.%Main.c_alias [concrete = constants.%C]
// CHECK:STDOUT: %c_alias_alias: type = alias_binding c_alias_alias, %c_alias.ref.loc6 [concrete = constants.%C]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.fcb = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.fcb = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %ptr = var_storage %b.var_patt [concrete]
// CHECK:STDOUT: %.loc8: type = splice_block %ptr [concrete = constants.%ptr] {
// CHECK:STDOUT: %c_alias.ref.loc8: type = name_ref c_alias, imports.%Main.c_alias [concrete = constants.%C]
// CHECK:STDOUT: %ptr: type = ptr_type %c_alias.ref.loc8 [concrete = constants.%ptr]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: ref %ptr = wrapper_binding b, %b.var [concrete = %b.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.fcb = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.fcb = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "class1.carbon"] {
@@ -266,16 +266,16 @@ var c: () = a_alias_alias;
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.fcb = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.fcb = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %ptr = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %.loc6: type = splice_block %ptr [concrete = constants.%ptr] {
// CHECK:STDOUT: %c_alias_alias.ref: type = name_ref c_alias_alias, imports.%Main.c_alias_alias [concrete = constants.%C]
// CHECK:STDOUT: %ptr: type = ptr_type %c_alias_alias.ref [concrete = constants.%ptr]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: ref %ptr = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.fcb = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.fcb = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "class2.carbon"] {
@@ -321,16 +321,16 @@ var c: () = a_alias_alias;
// CHECK:STDOUT: .a_alias = %a_alias
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %empty_tuple.type = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %.loc4_9.1: type = splice_block %.loc4_9.3 [concrete = constants.%empty_tuple.type] {
// CHECK:STDOUT: %.loc4_9.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc4_9.3: type = converted %.loc4_9.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %empty_tuple.type = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.ref: ref %empty_tuple.type = name_ref a, %a [concrete = %a.var]
// CHECK:STDOUT: %a_alias: ref %empty_tuple.type = alias_binding a_alias, %a.ref [concrete = %a.var]
// CHECK:STDOUT: }
@@ -378,16 +378,16 @@ var c: () = a_alias_alias;
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %a_alias.ref: ref %empty_tuple.type = name_ref a_alias, imports.%Main.a_alias [concrete = imports.%a.var]
// CHECK:STDOUT: %a_alias_alias: ref %empty_tuple.type = alias_binding a_alias_alias, %a_alias.ref [concrete = imports.%a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %empty_tuple.type = var_storage %b.var_patt [concrete]
// CHECK:STDOUT: %.loc8_9.1: type = splice_block %.loc8_9.3 [concrete = constants.%empty_tuple.type] {
// CHECK:STDOUT: %.loc8_9.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc8_9.3: type = converted %.loc8_9.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: ref %empty_tuple.type = wrapper_binding b, %b.var [concrete = %b.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -430,16 +430,16 @@ var c: () = a_alias_alias;
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %empty_tuple.type = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.3 [concrete = constants.%empty_tuple.type] {
// CHECK:STDOUT: %.loc6_9.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc6_9.3: type = converted %.loc6_9.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: ref %empty_tuple.type = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+10 -10
View File
@@ -110,13 +110,13 @@ var inst: Test.A = {};
// CHECK:STDOUT: }
// CHECK:STDOUT: %Test.import = import Test
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %inst.var: ref %C = var_storage %inst.var_patt [concrete]
// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Test.A [concrete = constants.%C]
// CHECK:STDOUT: %inst: ref %C = wrapper_binding inst, %inst.var [concrete = %inst.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %inst.patt: %pattern_type = ref_binding_pattern inst [concrete = constants.%inst.patt]
// CHECK:STDOUT: %inst.var_patt: %pattern_type = var_pattern %inst.patt [concrete = constants.%inst.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %inst.var: ref %C = var_storage %inst.var_patt [concrete]
// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Test.A [concrete = constants.%C]
// CHECK:STDOUT: %inst: ref %C = wrapper_binding inst, %inst.var [concrete = %inst.var]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "def.carbon"] {
@@ -153,13 +153,13 @@ var inst: Test.A = {};
// CHECK:STDOUT: .inst = %inst
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %inst.var: ref <error> = var_storage %inst.var_patt [concrete = <error>]
// CHECK:STDOUT: %A.ref: <error> = name_ref A, <error> [concrete = <error>]
// CHECK:STDOUT: %inst: <error> = wrapper_binding inst, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %inst.patt: <error> = ref_binding_pattern inst [concrete = <error>]
// CHECK:STDOUT: %inst.var_patt: <error> = var_pattern %inst.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %inst.var: ref <error> = var_storage %inst.var_patt [concrete = <error>]
// CHECK:STDOUT: %A.ref: <error> = name_ref A, <error> [concrete = <error>]
// CHECK:STDOUT: %inst: <error> = wrapper_binding inst, <error> [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -189,16 +189,16 @@ var inst: Test.A = {};
// CHECK:STDOUT: .inst = %inst
// CHECK:STDOUT: }
// CHECK:STDOUT: %Test.import = import Test
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %inst.patt: <error> = ref_binding_pattern inst [concrete = <error>]
// CHECK:STDOUT: %inst.var_patt: <error> = var_pattern %inst.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %inst.var: ref <error> = var_storage %inst.var_patt [concrete = <error>]
// CHECK:STDOUT: %.1: <error> = splice_block <error> [concrete = <error>] {
// CHECK:STDOUT: %Test.ref: <namespace> = name_ref Test, imports.%Test [concrete = imports.%Test]
// CHECK:STDOUT: %A.ref: <error> = name_ref A, <error> [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %inst: <error> = wrapper_binding inst, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %inst.patt: <error> = ref_binding_pattern inst [concrete = <error>]
// CHECK:STDOUT: %inst.var_patt: <error> = var_pattern %inst.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+10 -10
View File
@@ -126,34 +126,34 @@ var a_val: a = {.v = b_val.v};
// CHECK:STDOUT: .a_val = %a_val
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d_val.patt: %pattern_type = ref_binding_pattern d_val [concrete = constants.%d_val.patt]
// CHECK:STDOUT: %d_val.var_patt: %pattern_type = var_pattern %d_val.patt [concrete = constants.%d_val.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d_val.var: ref %C = var_storage %d_val.var_patt [concrete]
// CHECK:STDOUT: %d.ref: type = name_ref d, imports.%Main.d [concrete = constants.%C]
// CHECK:STDOUT: %d_val: ref %C = wrapper_binding d_val, %d_val.var [concrete = %d_val.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c_val.patt: %pattern_type = ref_binding_pattern c_val [concrete = constants.%c_val.patt]
// CHECK:STDOUT: %c_val.var_patt: %pattern_type = var_pattern %c_val.patt [concrete = constants.%c_val.var_patt]
// CHECK:STDOUT: %d_val.patt: %pattern_type = ref_binding_pattern d_val [concrete = constants.%d_val.patt]
// CHECK:STDOUT: %d_val.var_patt: %pattern_type = var_pattern %d_val.patt [concrete = constants.%d_val.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c_val.var: ref %C = var_storage %c_val.var_patt [concrete]
// CHECK:STDOUT: %c.ref: type = name_ref c, imports.%Main.c [concrete = constants.%C]
// CHECK:STDOUT: %c_val: ref %C = wrapper_binding c_val, %c_val.var [concrete = %c_val.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b_val.patt: %pattern_type = ref_binding_pattern b_val [concrete = constants.%b_val.patt]
// CHECK:STDOUT: %b_val.var_patt: %pattern_type = var_pattern %b_val.patt [concrete = constants.%b_val.var_patt]
// CHECK:STDOUT: %c_val.patt: %pattern_type = ref_binding_pattern c_val [concrete = constants.%c_val.patt]
// CHECK:STDOUT: %c_val.var_patt: %pattern_type = var_pattern %c_val.patt [concrete = constants.%c_val.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b_val.var: ref %C = var_storage %b_val.var_patt [concrete]
// CHECK:STDOUT: %b.ref: type = name_ref b, imports.%Main.b [concrete = constants.%C]
// CHECK:STDOUT: %b_val: ref %C = wrapper_binding b_val, %b_val.var [concrete = %b_val.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a_val.patt: %pattern_type = ref_binding_pattern a_val [concrete = constants.%a_val.patt]
// CHECK:STDOUT: %a_val.var_patt: %pattern_type = var_pattern %a_val.patt [concrete = constants.%a_val.var_patt]
// CHECK:STDOUT: %b_val.patt: %pattern_type = ref_binding_pattern b_val [concrete = constants.%b_val.patt]
// CHECK:STDOUT: %b_val.var_patt: %pattern_type = var_pattern %b_val.patt [concrete = constants.%b_val.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a_val.var: ref %C = var_storage %a_val.var_patt [concrete]
// CHECK:STDOUT: %a.ref: type = name_ref a, imports.%Main.a [concrete = constants.%C]
// CHECK:STDOUT: %a_val: ref %C = wrapper_binding a_val, %a_val.var [concrete = %a_val.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a_val.patt: %pattern_type = ref_binding_pattern a_val [concrete = constants.%a_val.patt]
// CHECK:STDOUT: %a_val.var_patt: %pattern_type = var_pattern %a_val.patt [concrete = constants.%a_val.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "a.carbon"] {
+22 -22
View File
@@ -126,10 +126,6 @@ var a: array(1, 1);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.035 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.035 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %array_type = var_storage %b.var_patt [concrete]
// CHECK:STDOUT: %.loc6_19: type = splice_block %array_type [concrete = constants.%array_type] {
// CHECK:STDOUT: %.loc6_15.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
@@ -138,6 +134,10 @@ var a: array(1, 1);
// CHECK:STDOUT: %array_type: type = array_type %int_3, %.loc6_15.2 [concrete = constants.%array_type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: ref %array_type = wrapper_binding b, %b.var [concrete = %b.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.035 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.035 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -193,10 +193,6 @@ var a: array(1, 1);
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.c3e = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.c3e = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref %array_type = var_storage %v.var_patt
// CHECK:STDOUT: %F.ref.loc10_40: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
// CHECK:STDOUT: %.loc10_48.1: ref %tuple.type.a8c = splice_block %.loc10_48.6 {
@@ -224,6 +220,10 @@ var a: array(1, 1);
// CHECK:STDOUT: %array_type: type = array_type %int_2, %.loc10_31.2 [concrete = constants.%array_type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: ref %array_type = wrapper_binding v, %v.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.c3e = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.c3e = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %v.var, constants.%Destroy.Op.1a2547.4
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var)
// CHECK:STDOUT: <elided>
@@ -282,10 +282,6 @@ var a: array(1, 1);
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.035 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.035 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %array_type = var_storage %a.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%array_type, (constants.%DefaultOrUnformed.impl_witness.3c6) [concrete = constants.%DefaultOrUnformed.facet.b2c]
// CHECK:STDOUT: %.loc7_29.1: %DefaultOrUnformed.type = converted constants.%array_type, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.b2c]
@@ -303,8 +299,8 @@ var a: array(1, 1);
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %array_type = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.8c1 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.8c1 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.035 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.035 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %tuple.type = var_storage %b.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%tuple.type, (constants.%DefaultOrUnformed.impl_witness.762) [concrete = constants.%DefaultOrUnformed.facet.38b]
@@ -326,6 +322,10 @@ var a: array(1, 1);
// CHECK:STDOUT: %.loc8_28.6: type = converted %.loc8_28.2, constants.%tuple.type [concrete = constants.%tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: ref %tuple.type = wrapper_binding b, %b.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.8c1 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.8c1 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc8: <bound method> = bound_method %b.var, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%b.var)
// CHECK:STDOUT: %Destroy.Op.bound.loc7: <bound method> = bound_method %a.var, constants.%Destroy.Op.1a2547.3
@@ -368,10 +368,6 @@ var a: array(1, 1);
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Run() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %t.patt: %pattern_type.fe8 = ref_binding_pattern t [concrete = constants.%t.patt]
// CHECK:STDOUT: %t.var_patt: %pattern_type.fe8 = var_pattern %t.patt [concrete = constants.%t.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %t.var: ref %array_type = var_storage %t.var_patt
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
// CHECK:STDOUT: %F.call: init %tuple.type = call %F.ref()
@@ -393,6 +389,10 @@ var a: array(1, 1);
// CHECK:STDOUT: %array_type: type = array_type %int_1, %.loc8_24.2 [concrete = constants.%array_type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %t: ref %array_type = wrapper_binding t, %t.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %t.patt: %pattern_type.fe8 = ref_binding_pattern t [concrete = constants.%t.patt]
// CHECK:STDOUT: %t.var_patt: %pattern_type.fe8 = var_pattern %t.patt [concrete = constants.%t.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc8_34: <bound method> = bound_method %.loc8_34.2, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call.loc8_34: init %empty_tuple.type = call %Destroy.Op.bound.loc8_34(%.loc8_34.2)
// CHECK:STDOUT: %Destroy.Op.bound.loc8_3: <bound method> = bound_method %t.var, constants.%Destroy.Op.1a2547.3
@@ -445,10 +445,6 @@ var a: array(1, 1);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.3db = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.3db = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %array_type = var_storage %b.var_patt [concrete]
// CHECK:STDOUT: %.loc9_19: type = splice_block %array_type [concrete = constants.%array_type] {
// CHECK:STDOUT: %.loc9_15.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
@@ -457,6 +453,10 @@ var a: array(1, 1);
// CHECK:STDOUT: %array_type: type = array_type %int_9, %.loc9_15.2 [concrete = constants.%array_type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: ref %array_type = wrapper_binding b, %b.var [concrete = %b.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.3db = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.3db = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+3 -3
View File
@@ -144,9 +144,6 @@ fn F() -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F() -> out %return.param: %i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.97e = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type]
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.ref, (constants.%I.impl_witness) [concrete = constants.%I.facet]
@@ -161,6 +158,9 @@ fn F() -> i32 {
// CHECK:STDOUT: %array_type: type = array_type %int_1, %i32.loc7 [concrete = constants.%array_type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: %array_type = wrapper_binding a, %impl.elem0.loc7
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.97e = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
// CHECK:STDOUT:
+8 -8
View File
@@ -113,10 +113,6 @@ fn H() { G(3); }
// CHECK:STDOUT:
// CHECK:STDOUT: fn() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %arr.patt.loc7_17.1: @G.%pattern_type (%pattern_type.bd6) = ref_binding_pattern arr [symbolic = %arr.patt.loc7_17.2 (constants.%arr.patt.770)]
// CHECK:STDOUT: %arr.var_patt.loc7_3.1: @G.%pattern_type (%pattern_type.bd6) = var_pattern %arr.patt.loc7_17.1 [symbolic = %arr.var_patt.loc7_3.2 (constants.%arr.var_patt.5fc)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %arr.var: ref @G.%array_type.loc7_29.2 (%array_type.1b3) = var_storage %arr.var_patt.loc7_3.1
// CHECK:STDOUT: %.loc7_34.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc7_34.2: init @G.%array_type.loc7_29.2 (%array_type.1b3) to %arr.var = array_init () [symbolic = %array (constants.%array.ca4)]
@@ -128,6 +124,10 @@ fn H() { G(3); }
// CHECK:STDOUT: %array_type.loc7_29.1: type = array_type %int_0, %T.ref [symbolic = %array_type.loc7_29.2 (constants.%array_type.1b3)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %arr: ref @G.%array_type.loc7_29.2 (%array_type.1b3) = wrapper_binding arr, %arr.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %arr.patt.loc7_17.1: @G.%pattern_type (%pattern_type.bd6) = ref_binding_pattern arr [symbolic = %arr.patt.loc7_17.2 (constants.%arr.patt.770)]
// CHECK:STDOUT: %arr.var_patt.loc7_3.1: @G.%pattern_type (%pattern_type.bd6) = var_pattern %arr.patt.loc7_17.1 [symbolic = %arr.var_patt.loc7_3.2 (constants.%arr.var_patt.5fc)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %impl.elem0.loc7_3.1: @G.%.loc7_3.4 (%.1e5) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0)]
// CHECK:STDOUT: %bound_method.loc7_3.1: <bound method> = bound_method %arr.var, %impl.elem0.loc7_3.1
// CHECK:STDOUT: %Destroy.facet.loc7_3.1: %Destroy.type = facet_value constants.%array_type.1b3, (constants.%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc7_3.3 (constants.%Destroy.facet.a52)]
@@ -220,10 +220,6 @@ fn H() { G(3); }
// CHECK:STDOUT:
// CHECK:STDOUT: fn() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %arr.patt: <error> = ref_binding_pattern arr [concrete = <error>]
// CHECK:STDOUT: %arr.var_patt: <error> = var_pattern %arr.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %arr.var: ref <error> = var_storage %arr.var_patt [concrete = <error>]
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1]
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2]
@@ -232,6 +228,10 @@ fn H() { G(3); }
// CHECK:STDOUT: assign %arr.var, <error>
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: %arr: <error> = wrapper_binding arr, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %arr.patt: <error> = ref_binding_pattern arr [concrete = <error>]
// CHECK:STDOUT: %arr.var_patt: <error> = var_pattern %arr.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
// CHECK:STDOUT: }
+18 -18
View File
@@ -189,13 +189,10 @@ var b: B = {.x = ()} as B;
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b_val.patt: %pattern_type.e39 = value_binding_pattern b_val [concrete = constants.%b_val.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.ref.loc22: type = name_ref B, %B.decl [concrete = constants.%B]
// CHECK:STDOUT: %b_val: %B = wrapper_binding b_val, @__global_init.%.loc22_22.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b_ptr.patt: %pattern_type.3c8 = value_binding_pattern b_ptr [concrete = constants.%b_ptr.patt]
// CHECK:STDOUT: %b_val.patt: %pattern_type.e39 = value_binding_pattern b_val [concrete = constants.%b_val.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc23: type = splice_block %ptr [concrete = constants.%ptr.432] {
// CHECK:STDOUT: %B.ref.loc23: type = name_ref B, %B.decl [concrete = constants.%B]
@@ -203,12 +200,15 @@ var b: B = {.x = ()} as B;
// CHECK:STDOUT: }
// CHECK:STDOUT: %b_ptr: %ptr.432 = wrapper_binding b_ptr, @__global_init.%addr
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b_factory.patt: %pattern_type.e39 = ref_binding_pattern b_factory [concrete = constants.%b_factory.patt]
// CHECK:STDOUT: %b_factory.var_patt: %pattern_type.e39 = var_pattern %b_factory.patt [concrete = constants.%b_factory.var_patt]
// CHECK:STDOUT: %b_ptr.patt: %pattern_type.3c8 = value_binding_pattern b_ptr [concrete = constants.%b_ptr.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b_factory.var: ref %B = var_storage %b_factory.var_patt [concrete]
// CHECK:STDOUT: %B.ref.loc25: type = name_ref B, %B.decl [concrete = constants.%B]
// CHECK:STDOUT: %b_factory: ref %B = wrapper_binding b_factory, %b_factory.var [concrete = %b_factory.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b_factory.patt: %pattern_type.e39 = ref_binding_pattern b_factory [concrete = constants.%b_factory.patt]
// CHECK:STDOUT: %b_factory.var_patt: %pattern_type.e39 = var_pattern %b_factory.patt [concrete = constants.%b_factory.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -268,16 +268,16 @@ var b: B = {.x = ()} as B;
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %A.ref: type = name_ref A, %A.decl [concrete = constants.%A]
// CHECK:STDOUT: %a: %A = wrapper_binding a, @__global_init.%.loc9_23.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete = constants.%n.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %n: %i32 = wrapper_binding n, @__global_init.%.loc10_16.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete = constants.%n.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -313,11 +313,11 @@ var b: B = {.x = ()} as B;
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %D.ref: type = name_ref D, %D.decl [concrete = constants.%D]
// CHECK:STDOUT: %d: %D = wrapper_binding d, @__global_init.%.loc10_15.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type = value_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %D.ref: type = name_ref D, %D.decl [concrete = constants.%D]
// CHECK:STDOUT: %d: %D = wrapper_binding d, @__global_init.%.loc10_15.2
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -371,13 +371,13 @@ var b: B = {.x = ()} as B;
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b_value.patt: %pattern_type.e39 = value_binding_pattern b_value [concrete = constants.%b_value.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc14_42.1: ref %B = temporary @__global_init.%.loc14_34.3, @__global_init.%.loc14_42.2 [concrete = constants.%.07b]
// CHECK:STDOUT: %.loc14_42.2: %B = acquire_value %.loc14_42.1 [concrete = constants.%B.val]
// CHECK:STDOUT: %B.ref: type = name_ref B, %B.decl [concrete = constants.%B]
// CHECK:STDOUT: %b_value: %B = wrapper_binding b_value, %.loc14_42.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b_value.patt: %pattern_type.e39 = value_binding_pattern b_value [concrete = constants.%b_value.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -427,9 +427,6 @@ var b: B = {.x = ()} as B;
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F(%a.param: %A) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a_value.patt: %pattern_type = value_binding_pattern a_value [concrete = constants.%a_value.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.ref: %A = name_ref a, %a
// CHECK:STDOUT: %.loc14_35: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %Noncopyable.ref: type = name_ref Noncopyable, file.%Noncopyable.decl [concrete = constants.%Noncopyable]
@@ -443,6 +440,9 @@ var b: B = {.x = ()} as B;
// CHECK:STDOUT: %.loc14_52.2: %A = converted %.loc14_30.2, %.loc14_52.1
// CHECK:STDOUT: %A.ref.loc14_23: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %a_value: %A = wrapper_binding a_value, %.loc14_52.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a_value.patt: %pattern_type = value_binding_pattern a_value [concrete = constants.%a_value.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
// CHECK:STDOUT:
+22 -22
View File
@@ -182,11 +182,11 @@ let n: {.x: ()} = {.x = ()} as {.x = ()};
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc5: type = type_literal type [concrete = type]
// CHECK:STDOUT: %t: type = wrapper_binding t, @__global_init.%.loc5_24.3
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %t.patt: %pattern_type = value_binding_pattern t [concrete = constants.%t.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc5: type = type_literal type [concrete = type]
// CHECK:STDOUT: %t: type = wrapper_binding t, @__global_init.%.loc5_24.3
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -224,9 +224,6 @@ let n: {.x: ()} = {.x = ()} as {.x = ()};
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Let() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.3ee = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Make.ref.loc13_27: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make]
// CHECK:STDOUT: %.loc13_32.1: ref %X = temporary_storage
// CHECK:STDOUT: %Make.call.loc13_32: init %X to %.loc13_32.1 = call %Make.ref.loc13_27()
@@ -251,6 +248,9 @@ let n: {.x: ()} = {.x = ()} as {.x = ()};
// CHECK:STDOUT: %.loc13_22.3: type = converted %.loc13_22.2, constants.%tuple.type.359 [concrete = constants.%tuple.type.359]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: %tuple.type.359 = wrapper_binding a, %.loc13_41.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.3ee = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc13_40: <bound method> = bound_method %.loc13_40.2, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call.loc13_40: init %empty_tuple.type = call %Destroy.Op.bound.loc13_40(%.loc13_40.2)
// CHECK:STDOUT: %Destroy.Op.bound.loc13_32: <bound method> = bound_method %.loc13_32.2, constants.%Destroy.Op.1a2547.2
@@ -267,10 +267,6 @@ let n: {.x: ()} = {.x = ()} as {.x = ()};
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Var() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.3ee = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.3ee = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %tuple.type.359 = var_storage %b.var_patt
// CHECK:STDOUT: %Make.ref.loc20_27: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make]
// CHECK:STDOUT: %tuple.elem0: ref %X = tuple_access %b.var, element0
@@ -293,6 +289,10 @@ let n: {.x: ()} = {.x = ()} as {.x = ()};
// CHECK:STDOUT: %.loc20_22.3: type = converted %.loc20_22.2, constants.%tuple.type.359 [concrete = constants.%tuple.type.359]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: ref %tuple.type.359 = wrapper_binding b, %b.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.3ee = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.3ee = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %b.var, constants.%Destroy.Op.1a2547.3
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%b.var)
// CHECK:STDOUT: <elided>
@@ -324,21 +324,18 @@ let n: {.x: ()} = {.x = ()} as {.x = ()};
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Value(%n.param: %X) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %m.patt: %pattern_type.6cb = value_binding_pattern m [concrete = constants.%m.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %n.ref: %X = name_ref n, %n
// CHECK:STDOUT: %X.ref.loc10_26: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %X.ref.loc10_17: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %m: %X = wrapper_binding m, %n.ref
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %m.patt: %pattern_type.6cb = value_binding_pattern m [concrete = constants.%m.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Reference(%p.param: %ptr.db8) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %q.patt: %pattern_type.990 = value_binding_pattern q [concrete = constants.%q.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %p.ref: %ptr.db8 = name_ref p, %p
// CHECK:STDOUT: %.loc16_24: ref %X = deref %p.ref
// CHECK:STDOUT: %X.ref.loc16_30: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -348,15 +345,14 @@ let n: {.x: ()} = {.x = ()} as {.x = ()};
// CHECK:STDOUT: %ptr.loc16: type = ptr_type %X.ref.loc16_17 [concrete = constants.%ptr.db8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %q: %ptr.db8 = wrapper_binding q, %addr
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %q.patt: %pattern_type.990 = value_binding_pattern q [concrete = constants.%q.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Initializing() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.6cb = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type.6cb = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x.var: ref %X = var_storage %x.var_patt
// CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make]
// CHECK:STDOUT: %.loc24: ref %X = splice_block %x.var {}
@@ -365,6 +361,10 @@ let n: {.x: ()} = {.x = ()} as {.x = ()};
// CHECK:STDOUT: assign %x.var, %Make.call
// CHECK:STDOUT: %X.ref.loc24_17: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %x: ref %X = wrapper_binding x, %x.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.6cb = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type.6cb = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %x.var, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var)
// CHECK:STDOUT: <elided>
@@ -401,13 +401,13 @@ let n: {.x: ()} = {.x = ()} as {.x = ()};
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %n.patt: %pattern_type.7ab = value_binding_pattern n [concrete = constants.%n.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc19_29.1: ref %Y = temporary @__global_init.%.loc19_29.1, @__global_init.%.loc19_29.2
// CHECK:STDOUT: %.loc19_29.2: %Y = acquire_value %.loc19_29.1
// CHECK:STDOUT: %Y.ref: type = name_ref Y, %Y.decl [concrete = constants.%Y]
// CHECK:STDOUT: %n: %Y = wrapper_binding n, %.loc19_29.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %n.patt: %pattern_type.7ab = value_binding_pattern n [concrete = constants.%n.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+16 -16
View File
@@ -118,10 +118,6 @@ fn Use() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Use() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.dfd = ref_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: %i.var_patt: %pattern_type.dfd = var_pattern %i.patt [concrete = constants.%i.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i.var: ref %const = var_storage %i.var_patt
// CHECK:STDOUT: %Init.ref: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init]
// CHECK:STDOUT: %.loc14_3: ref %const = splice_block %i.var {}
@@ -137,7 +133,8 @@ fn Use() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %i: ref %const = wrapper_binding i, %i.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.dfd = value_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %i.patt: %pattern_type.dfd = ref_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: %i.var_patt: %pattern_type.dfd = var_pattern %i.patt [concrete = constants.%i.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %value.ref: %X = name_ref value, file.%value
// CHECK:STDOUT: %X.ref.loc15_42: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -150,7 +147,7 @@ fn Use() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: %const = wrapper_binding v, %.loc15_33.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.7f7 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %v.patt: %pattern_type.dfd = value_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %reference.ref: ref %X = name_ref reference, file.%reference [concrete = file.%reference.var]
// CHECK:STDOUT: %X.ref.loc16_49: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -165,7 +162,7 @@ fn Use() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: %ptr.faf = wrapper_binding a, %addr
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.7f7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.7f7 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.ref: %ptr.db8 = name_ref ptr, file.%ptr.loc9_8
// CHECK:STDOUT: %X.ref.loc17_41: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -179,6 +176,9 @@ fn Use() {
// CHECK:STDOUT: %ptr.loc17_24: type = ptr_type %const.loc17_17 [concrete = constants.%ptr.faf]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: %ptr.faf = wrapper_binding b, %.loc17_32.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.7f7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %i.var, constants.%Destroy.Op.1a2547.3
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%i.var)
// CHECK:STDOUT: <elided>
@@ -220,10 +220,6 @@ fn Use() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Use() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.6cb = ref_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: %i.var_patt: %pattern_type.6cb = var_pattern %i.patt [concrete = constants.%i.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i.var: ref %X = var_storage %i.var_patt
// CHECK:STDOUT: %Init.ref: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init]
// CHECK:STDOUT: %.loc12_3: ref %X = splice_block %i.var {}
@@ -235,7 +231,8 @@ fn Use() {
// CHECK:STDOUT: %X.ref.loc12_17: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %i: ref %X = wrapper_binding i, %i.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.6cb = value_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %i.patt: %pattern_type.6cb = ref_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: %i.var_patt: %pattern_type.6cb = var_pattern %i.patt [concrete = constants.%i.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %value.ref: %const = name_ref value, file.%value
// CHECK:STDOUT: %X.ref.loc13_30: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -243,6 +240,9 @@ fn Use() {
// CHECK:STDOUT: %.loc13_27.2: %X = converted %value.ref, %.loc13_27.1
// CHECK:STDOUT: %X.ref.loc13_17: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %v: %X = wrapper_binding v, %.loc13_27.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.6cb = value_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %i.var, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%i.var)
// CHECK:STDOUT: <elided>
@@ -276,9 +276,6 @@ fn Use() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Use() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.990 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %reference.ref: ref %const = name_ref reference, file.%reference [concrete = file.%reference.var]
// CHECK:STDOUT: %X.ref.loc11_44: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %.loc11_41.1: ref %X = as_compatible %reference.ref [concrete = constants.%reference.var]
@@ -290,7 +287,7 @@ fn Use() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: %ptr.db8 = wrapper_binding a, %addr
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.990 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.990 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.ref: %ptr.faf = name_ref ptr, file.%ptr.loc7_8
// CHECK:STDOUT: %X.ref.loc12_36: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -302,6 +299,9 @@ fn Use() {
// CHECK:STDOUT: %ptr.loc12_18: type = ptr_type %X.ref.loc12_17 [concrete = constants.%ptr.db8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: %ptr.db8 = wrapper_binding b, %.loc12_33.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.990 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
// CHECK:STDOUT:
+14 -14
View File
@@ -163,9 +163,6 @@ fn Use() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Use() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.abe = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %reference.ref: ref %X = name_ref reference, file.%reference [concrete = file.%reference.var]
// CHECK:STDOUT: %Core.ref.loc12_57: <namespace> = name_ref Core, imports.%Core [concrete = imports.%Core]
// CHECK:STDOUT: %MaybeUnformed.ref.loc12_61: %MaybeUnformed.type = name_ref MaybeUnformed, imports.%Core.MaybeUnformed [concrete = constants.%MaybeUnformed.generic]
@@ -183,7 +180,7 @@ fn Use() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: %ptr.b8c = wrapper_binding a, %addr
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.abe = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.abe = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.ref: %ptr.db8 = name_ref ptr, file.%ptr.loc7_8
// CHECK:STDOUT: %Core.ref.loc13_49: <namespace> = name_ref Core, imports.%Core [concrete = imports.%Core]
@@ -201,6 +198,9 @@ fn Use() {
// CHECK:STDOUT: %ptr.loc13_38: type = ptr_type %MaybeUnformed.loc13_37 [concrete = constants.%ptr.b8c]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: %ptr.b8c = wrapper_binding b, %.loc13_46.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.abe = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -247,10 +247,6 @@ fn Use() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Use() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.009 = ref_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: %i.var_patt: %pattern_type.009 = var_pattern %i.patt [concrete = constants.%i.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i.var: ref %MaybeUnformed.198 = var_storage %i.var_patt
// CHECK:STDOUT: %Init.ref: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init]
// CHECK:STDOUT: %.loc19_46: ref %X = temporary_storage
@@ -269,7 +265,8 @@ fn Use() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %i: ref %MaybeUnformed.198 = wrapper_binding i, %i.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.009 = value_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %i.patt: %pattern_type.009 = ref_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: %i.var_patt: %pattern_type.009 = var_pattern %i.patt [concrete = constants.%i.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %value.ref: %X = name_ref value, file.%value
// CHECK:STDOUT: %Core.ref.loc27_50: <namespace> = name_ref Core, imports.%Core [concrete = imports.%Core]
@@ -284,6 +281,9 @@ fn Use() {
// CHECK:STDOUT: %MaybeUnformed.loc27_37: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.198]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: %MaybeUnformed.198 = wrapper_binding v, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.009 = value_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %i.var, constants.%Destroy.Op.1a2547.4
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%i.var)
// CHECK:STDOUT: <elided>
@@ -329,9 +329,6 @@ fn Use() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Use() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.6cb = value_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %value.ref: %MaybeUnformed.198 = name_ref value, file.%value
// CHECK:STDOUT: %X.ref.loc13_37: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %.loc13_34.1: %X = as_compatible %value.ref
@@ -339,7 +336,7 @@ fn Use() {
// CHECK:STDOUT: %X.ref.loc13_17: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %v: %X = wrapper_binding v, %.loc13_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.990 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %v.patt: %pattern_type.6cb = value_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %reference.ref: ref %MaybeUnformed.198 = name_ref reference, file.%reference [concrete = file.%reference.var]
// CHECK:STDOUT: %X.ref.loc14_44: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -352,7 +349,7 @@ fn Use() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: %ptr.db8 = wrapper_binding a, %addr
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.990 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.990 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.ref: %ptr.b8c = name_ref ptr, file.%ptr.loc9_8
// CHECK:STDOUT: %X.ref.loc15_36: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -364,6 +361,9 @@ fn Use() {
// CHECK:STDOUT: %ptr.loc15_18: type = ptr_type %X.ref.loc15_17 [concrete = constants.%ptr.db8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: %ptr.db8 = wrapper_binding b, %.loc15_33.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.990 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
// CHECK:STDOUT:
+20 -20
View File
@@ -132,10 +132,6 @@ fn Use() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Use() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.53b = ref_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: %i.var_patt: %pattern_type.53b = var_pattern %i.patt [concrete = constants.%i.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i.var: ref %.d74 = var_storage %i.var_patt
// CHECK:STDOUT: %Init.ref: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init]
// CHECK:STDOUT: %.loc14_3: ref %.d74 = splice_block %i.var {}
@@ -151,7 +147,8 @@ fn Use() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %i: ref %.d74 = wrapper_binding i, %i.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.53b = value_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %i.patt: %pattern_type.53b = ref_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: %i.var_patt: %pattern_type.53b = var_pattern %i.patt [concrete = constants.%i.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %value.ref: %X = name_ref value, file.%value
// CHECK:STDOUT: %X.ref.loc15_46: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -164,7 +161,7 @@ fn Use() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: %.d74 = wrapper_binding v, %.loc15_35.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.12c = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %v.patt: %pattern_type.53b = value_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %reference.ref: ref %X = name_ref reference, file.%reference [concrete = file.%reference.var]
// CHECK:STDOUT: %X.ref.loc16_53: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -179,7 +176,7 @@ fn Use() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: %ptr.44a = wrapper_binding a, %addr
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.12c = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.12c = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.ref: %ptr.db8 = name_ref ptr, file.%ptr.loc9_8
// CHECK:STDOUT: %X.ref.loc17_45: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -193,6 +190,9 @@ fn Use() {
// CHECK:STDOUT: %ptr.loc17_26: type = ptr_type %.loc17_17 [concrete = constants.%ptr.44a]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: %ptr.44a = wrapper_binding b, %.loc17_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.12c = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %i.var, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%i.var)
// CHECK:STDOUT: <elided>
@@ -232,10 +232,6 @@ fn Use() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Use() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.6cb = ref_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: %i.var_patt: %pattern_type.6cb = var_pattern %i.patt [concrete = constants.%i.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i.var: ref %X = var_storage %i.var_patt
// CHECK:STDOUT: %Init.ref.loc10: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init]
// CHECK:STDOUT: %.loc10_3.1: ref %X = splice_block %i.var {}
@@ -246,8 +242,8 @@ fn Use() {
// CHECK:STDOUT: %X.ref.loc10: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %i: ref %X = wrapper_binding i, %i.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %j.patt: %pattern_type.6cb = ref_binding_pattern j [concrete = constants.%j.patt]
// CHECK:STDOUT: %j.var_patt: %pattern_type.6cb = var_pattern %j.patt [concrete = constants.%j.var_patt]
// CHECK:STDOUT: %i.patt: %pattern_type.6cb = ref_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: %i.var_patt: %pattern_type.6cb = var_pattern %i.patt [concrete = constants.%i.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %j.var: ref %X = var_storage %j.var_patt
// CHECK:STDOUT: %Init.ref.loc11: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init]
@@ -260,8 +256,8 @@ fn Use() {
// CHECK:STDOUT: %X.ref.loc11_17: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %j: ref %X = wrapper_binding j, %j.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %k.patt: %pattern_type.6cb = ref_binding_pattern k [concrete = constants.%k.patt]
// CHECK:STDOUT: %k.var_patt: %pattern_type.6cb = var_pattern %k.patt [concrete = constants.%k.var_patt]
// CHECK:STDOUT: %j.patt: %pattern_type.6cb = ref_binding_pattern j [concrete = constants.%j.patt]
// CHECK:STDOUT: %j.var_patt: %pattern_type.6cb = var_pattern %j.patt [concrete = constants.%j.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %k.var: ref %X = var_storage %k.var_patt
// CHECK:STDOUT: %Init.ref.loc12: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init]
@@ -273,6 +269,10 @@ fn Use() {
// CHECK:STDOUT: assign %k.var, %.loc12_35.2
// CHECK:STDOUT: %X.ref.loc12_17: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %k: ref %X = wrapper_binding k, %k.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %k.patt: %pattern_type.6cb = ref_binding_pattern k [concrete = constants.%k.patt]
// CHECK:STDOUT: %k.var_patt: %pattern_type.6cb = var_pattern %k.patt [concrete = constants.%k.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc12: <bound method> = bound_method %k.var, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call.loc12: init %empty_tuple.type = call %Destroy.Op.bound.loc12(%k.var)
// CHECK:STDOUT: %Destroy.Op.bound.loc11: <bound method> = bound_method %j.var, constants.%Destroy.Op.1a2547.2
@@ -307,9 +307,6 @@ fn Use() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Use() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.6cb = value_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %value.ref: %.d74 = name_ref value, file.%value
// CHECK:STDOUT: %X.ref.loc14_37: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %.loc14_34.1: %X = as_compatible %value.ref
@@ -317,7 +314,7 @@ fn Use() {
// CHECK:STDOUT: %X.ref.loc14_17: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %v: %X = wrapper_binding v, %.loc14_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.990 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %v.patt: %pattern_type.6cb = value_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %reference.ref: ref %.d74 = name_ref reference, file.%reference [concrete = file.%reference.var]
// CHECK:STDOUT: %X.ref.loc15_44: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -330,7 +327,7 @@ fn Use() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: %ptr.db8 = wrapper_binding a, %addr
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.990 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.990 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.ref: %ptr.44a = name_ref ptr, file.%ptr.loc10_8
// CHECK:STDOUT: %X.ref.loc16_36: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -342,6 +339,9 @@ fn Use() {
// CHECK:STDOUT: %ptr.loc16_18: type = ptr_type %X.ref.loc16_17 [concrete = constants.%ptr.db8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: %ptr.db8 = wrapper_binding b, %.loc16_33.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.990 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
// CHECK:STDOUT:
+4 -4
View File
@@ -51,10 +51,6 @@ fn Convert(unused t: ()) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Convert(%t.param: %empty_tuple.type) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.6cb = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type.6cb = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x.var: ref %X = var_storage %x.var_patt
// CHECK:STDOUT: %.loc12_22.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %impl.elem0: %.ce8 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert]
@@ -67,6 +63,10 @@ fn Convert(unused t: ()) {
// CHECK:STDOUT: assign %x.var, %.loc12_3.2
// CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X]
// CHECK:STDOUT: %x: ref %X = wrapper_binding x, %x.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.6cb = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type.6cb = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %x.var, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%x.var)
// CHECK:STDOUT: <elided>
+4 -4
View File
@@ -143,10 +143,6 @@ library "[[@TEST_NAME]]";
// CHECK:STDOUT:
// CHECK:STDOUT: fn @C() -> out %return.param: %empty_tuple.type {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.cb1 = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.cb1 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %empty_tuple.type = var_storage %c.var_patt
// CHECK:STDOUT: %.loc18_16.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc18_16.2: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple]
@@ -157,6 +153,10 @@ library "[[@TEST_NAME]]";
// CHECK:STDOUT: %.loc18_11.3: type = converted %.loc18_11.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: ref %empty_tuple.type = wrapper_binding c, %c.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.cb1 = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.cb1 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.ref.loc19: ref %empty_tuple.type = name_ref c, %c
// CHECK:STDOUT: %B.ref: %B.type = name_ref B, file.%B.decl [concrete = constants.%B]
// CHECK:STDOUT: %B.call: init %empty_tuple.type = call %B.ref()
@@ -39,10 +39,6 @@ fn A() {
// CHECK:STDOUT: <elided>
// CHECK:STDOUT:
// CHECK:STDOUT: !if.then:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %n.patt.loc18_17: %pattern_type.cb1 = ref_binding_pattern n [concrete = constants.%n.patt.785a0d.1]
// CHECK:STDOUT: %n.var_patt.loc18_5: %pattern_type.cb1 = var_pattern %n.patt.loc18_17 [concrete = constants.%n.var_patt.961036.1]
// CHECK:STDOUT: }
// CHECK:STDOUT: %n.var.loc18_5: ref %empty_tuple.type = var_storage %n.var_patt.loc18_5
// CHECK:STDOUT: %.loc18_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc18_25.2: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple]
@@ -53,13 +49,13 @@ fn A() {
// CHECK:STDOUT: %.loc18_20.3: type = converted %.loc18_20.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %n.loc18_17: ref %empty_tuple.type = wrapper_binding n, %n.var.loc18_5
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %n.patt.loc18_17: %pattern_type.cb1 = ref_binding_pattern n [concrete = constants.%n.patt.785a0d.1]
// CHECK:STDOUT: %n.var_patt.loc18_5: %pattern_type.cb1 = var_pattern %n.patt.loc18_17 [concrete = constants.%n.var_patt.961036.1]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT:
// CHECK:STDOUT: !if.else:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %n.patt.loc18_49: %pattern_type.cb1 = ref_binding_pattern n [concrete = constants.%n.patt.785a0d.2]
// CHECK:STDOUT: %n.var_patt.loc18_37: %pattern_type.cb1 = var_pattern %n.patt.loc18_49 [concrete = constants.%n.var_patt.961036.2]
// CHECK:STDOUT: }
// CHECK:STDOUT: %n.var.loc18_37: ref %empty_tuple.type = var_storage %n.var_patt.loc18_37
// CHECK:STDOUT: %.loc18_57.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc18_57.2: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple]
@@ -70,6 +66,10 @@ fn A() {
// CHECK:STDOUT: %.loc18_52.3: type = converted %.loc18_52.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %n.loc18_49: ref %empty_tuple.type = wrapper_binding n, %n.var.loc18_37
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %n.patt.loc18_49: %pattern_type.cb1 = ref_binding_pattern n [concrete = constants.%n.patt.785a0d.2]
// CHECK:STDOUT: %n.var_patt.loc18_37: %pattern_type.cb1 = var_pattern %n.patt.loc18_49 [concrete = constants.%n.var_patt.961036.2]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT:
// CHECK:STDOUT: !if.done:
+6 -6
View File
@@ -69,20 +69,20 @@ var b: i32 = ((2));
// CHECK:STDOUT: .b = %b
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %i32 = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %i32.loc14: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %a: ref %i32 = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.6b6 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %i32 = var_storage %b.var_patt [concrete]
// CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %b: ref %i32 = wrapper_binding b, %b.var [concrete = %b.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.6b6 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+8 -8
View File
@@ -61,10 +61,6 @@ var d: C(false == false) = True();
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.2ef = ref_binding_pattern a [concrete = constants.%a.patt.8de]
// CHECK:STDOUT: %a.var_patt: %pattern_type.2ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %C.ac4 = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %.loc12_24.1: type = splice_block %C.loc12 [concrete = constants.%C.ac4] {
// CHECK:STDOUT: %C.ref.loc12: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic]
@@ -77,6 +73,10 @@ var d: C(false == false) = True();
// CHECK:STDOUT: %C.loc12: type = class_type @C, @C(constants.%true) [concrete = constants.%C.ac4]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %C.ac4 = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.2ef = ref_binding_pattern a [concrete = constants.%a.patt.8de]
// CHECK:STDOUT: %a.var_patt: %pattern_type.2ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -117,10 +117,6 @@ var d: C(false == false) = True();
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.2ef = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.2ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %C.ac4 = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %.loc10_22.1: type = splice_block %C.loc10 [concrete = constants.%C.ac4] {
// CHECK:STDOUT: %C.ref.loc10: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic]
@@ -134,6 +130,10 @@ var d: C(false == false) = True();
// CHECK:STDOUT: %C.loc10: type = class_type @C, @C(constants.%true) [concrete = constants.%C.ac4]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %C.ac4 = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.2ef = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.2ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+3 -3
View File
@@ -41,9 +41,6 @@ let b: Bool() = false;
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_13.1: type = splice_block %.loc7_13.3 [concrete = bool] {
// CHECK:STDOUT: %Bool.ref: %Bool.type = name_ref Bool, imports.%Main.Bool [concrete = constants.%Bool]
// CHECK:STDOUT: %Bool.call: init type = call %Bool.ref() [concrete = bool]
@@ -51,6 +48,9 @@ let b: Bool() = false;
// CHECK:STDOUT: %.loc7_13.3: type = converted %Bool.call, %.loc7_13.2 [concrete = bool]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: bool = wrapper_binding b, @__global_init.%false
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+8 -8
View File
@@ -62,10 +62,6 @@ var d: C(false != false) = False();
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.794 = ref_binding_pattern a [concrete = constants.%a.patt.c70]
// CHECK:STDOUT: %a.var_patt: %pattern_type.794 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %C.4b2 = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %.loc12_25.1: type = splice_block %C.loc12 [concrete = constants.%C.4b2] {
// CHECK:STDOUT: %C.ref.loc12: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic]
@@ -78,6 +74,10 @@ var d: C(false != false) = False();
// CHECK:STDOUT: %C.loc12: type = class_type @C, @C(constants.%false) [concrete = constants.%C.4b2]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %C.4b2 = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.794 = ref_binding_pattern a [concrete = constants.%a.patt.c70]
// CHECK:STDOUT: %a.var_patt: %pattern_type.794 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -119,10 +119,6 @@ var d: C(false != false) = False();
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.794 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.794 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %C.4b2 = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %.loc10_22.1: type = splice_block %C.loc10 [concrete = constants.%C.4b2] {
// CHECK:STDOUT: %C.ref.loc10: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic]
@@ -136,6 +132,10 @@ var d: C(false != false) = False();
// CHECK:STDOUT: %C.loc10: type = class_type @C, @C(constants.%false) [concrete = constants.%C.4b2]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %C.4b2 = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.794 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.794 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+5 -5
View File
@@ -91,27 +91,27 @@ let c: CharLiteral = AddCharInt('a', Negate(98));
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.8c6 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc12_39.1: Core.CharLiteral = value_of_initializer @__global_init.%AddCharInt.call.loc12 [concrete = constants.%.711]
// CHECK:STDOUT: %.loc12_39.2: Core.CharLiteral = converted @__global_init.%AddCharInt.call.loc12, %.loc12_39.1 [concrete = constants.%.711]
// CHECK:STDOUT: %CharLiteral.ref.loc12: type = name_ref CharLiteral, %CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %a: Core.CharLiteral = wrapper_binding a, %.loc12_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.8c6 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.8c6 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc15_44.1: Core.CharLiteral = value_of_initializer @__global_init.%AddCharInt.call.loc15 [concrete = constants.%.ae7]
// CHECK:STDOUT: %.loc15_44.2: Core.CharLiteral = converted @__global_init.%AddCharInt.call.loc15, %.loc15_44.1 [concrete = constants.%.ae7]
// CHECK:STDOUT: %CharLiteral.ref.loc15: type = name_ref CharLiteral, %CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %b: Core.CharLiteral = wrapper_binding b, %.loc15_44.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.8c6 = value_binding_pattern c [concrete = constants.%c.patt.c30]
// CHECK:STDOUT: %b.patt: %pattern_type.8c6 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc16_44.1: Core.CharLiteral = value_of_initializer @__global_init.%AddCharInt.call.loc16 [concrete = constants.%.a8b]
// CHECK:STDOUT: %.loc16_44.2: Core.CharLiteral = converted @__global_init.%AddCharInt.call.loc16, %.loc16_44.1 [concrete = constants.%.a8b]
// CHECK:STDOUT: %CharLiteral.ref.loc16: type = name_ref CharLiteral, %CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %c: Core.CharLiteral = wrapper_binding c, %.loc16_44.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.8c6 = value_binding_pattern c [concrete = constants.%c.patt.c30]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -120,9 +120,6 @@ let c: UInt(8) = ToChar('\u{1E15}');
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.456 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_29.1: %u8.builtin = value_of_initializer @__global_init.%ToChar.call.loc6 [concrete = constants.%int_0]
// CHECK:STDOUT: %.loc6_29.2: %u8.builtin = converted @__global_init.%ToChar.call.loc6, %.loc6_29.1 [concrete = constants.%int_0]
// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.3 [concrete = constants.%u8.builtin] {
@@ -134,7 +131,7 @@ let c: UInt(8) = ToChar('\u{1E15}');
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: %u8.builtin = wrapper_binding a, %.loc6_29.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.456 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.456 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_28.1: %u8.builtin = value_of_initializer @__global_init.%ToChar.call.loc7 [concrete = constants.%int_98]
// CHECK:STDOUT: %.loc7_28.2: %u8.builtin = converted @__global_init.%ToChar.call.loc7, %.loc7_28.1 [concrete = constants.%int_98]
@@ -147,7 +144,7 @@ let c: UInt(8) = ToChar('\u{1E15}');
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: %u8.builtin = wrapper_binding b, %.loc7_28.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.456 = value_binding_pattern c [concrete = constants.%c.patt.7eb]
// CHECK:STDOUT: %b.patt: %pattern_type.456 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc8_33.1: %u8.builtin = value_of_initializer @__global_init.%ToChar.call.loc8 [concrete = constants.%int_127]
// CHECK:STDOUT: %.loc8_33.2: %u8.builtin = converted @__global_init.%ToChar.call.loc8, %.loc8_33.1 [concrete = constants.%int_127]
@@ -159,6 +156,9 @@ let c: UInt(8) = ToChar('\u{1E15}');
// CHECK:STDOUT: %.loc8_14.3: type = converted %UInt.call.loc8, %.loc8_14.2 [concrete = constants.%u8.builtin]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: %u8.builtin = wrapper_binding c, %.loc8_33.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.456 = value_binding_pattern c [concrete = constants.%c.patt.7eb]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -105,48 +105,48 @@ let g: u8 = ConvertToU8('\u{100}');
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc14_30.1: %i32 = value_of_initializer @__global_init.%ConvertToI32.call [concrete = constants.%int_97]
// CHECK:STDOUT: %.loc14_30.2: %i32 = converted @__global_init.%ConvertToI32.call, %.loc14_30.1 [concrete = constants.%int_97]
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %a: %i32 = wrapper_binding a, %.loc14_30.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.668 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc15_30.1: %u32 = value_of_initializer @__global_init.%ConvertToU32.call [concrete = constants.%int_98]
// CHECK:STDOUT: %.loc15_30.2: %u32 = converted @__global_init.%ConvertToU32.call, %.loc15_30.1 [concrete = constants.%int_98]
// CHECK:STDOUT: %u32: type = type_literal constants.%u32 [concrete = constants.%u32]
// CHECK:STDOUT: %b: %u32 = wrapper_binding b, %.loc15_30.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.f57 = value_binding_pattern c [concrete = constants.%c.patt.a8f]
// CHECK:STDOUT: %b.patt: %pattern_type.668 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc16_39.1: %i64 = value_of_initializer @__global_init.%ConvertToI64.call [concrete = constants.%int_1114111]
// CHECK:STDOUT: %.loc16_39.2: %i64 = converted @__global_init.%ConvertToI64.call, %.loc16_39.1 [concrete = constants.%int_1114111]
// CHECK:STDOUT: %i64: type = type_literal constants.%i64 [concrete = constants.%i64]
// CHECK:STDOUT: %c: %i64 = wrapper_binding c, %.loc16_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.b35 = value_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.f57 = value_binding_pattern c [concrete = constants.%c.patt.a8f]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc17_31.1: %u64 = value_of_initializer @__global_init.%ConvertToU64.call [concrete = constants.%int_0]
// CHECK:STDOUT: %.loc17_31.2: %u64 = converted @__global_init.%ConvertToU64.call, %.loc17_31.1 [concrete = constants.%int_0]
// CHECK:STDOUT: %u64: type = type_literal constants.%u64 [concrete = constants.%u64]
// CHECK:STDOUT: %d: %u64 = wrapper_binding d, %.loc17_31.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %e.patt: %pattern_type.186 = value_binding_pattern e [concrete = constants.%e.patt]
// CHECK:STDOUT: %d.patt: %pattern_type.b35 = value_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc19_33.1: %u8 = value_of_initializer @__global_init.%ConvertToU8.call.loc19 [concrete = constants.%int_128]
// CHECK:STDOUT: %.loc19_33.2: %u8 = converted @__global_init.%ConvertToU8.call.loc19, %.loc19_33.1 [concrete = constants.%int_128]
// CHECK:STDOUT: %u8.loc19: type = type_literal constants.%u8 [concrete = constants.%u8]
// CHECK:STDOUT: %e: %u8 = wrapper_binding e, %.loc19_33.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %f.patt: %pattern_type.186 = value_binding_pattern f [concrete = constants.%f.patt]
// CHECK:STDOUT: %e.patt: %pattern_type.186 = value_binding_pattern e [concrete = constants.%e.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc20_33.1: %u8 = value_of_initializer @__global_init.%ConvertToU8.call.loc20 [concrete = constants.%int_255]
// CHECK:STDOUT: %.loc20_33.2: %u8 = converted @__global_init.%ConvertToU8.call.loc20, %.loc20_33.1 [concrete = constants.%int_255]
// CHECK:STDOUT: %u8.loc20: type = type_literal constants.%u8 [concrete = constants.%u8]
// CHECK:STDOUT: %f: %u8 = wrapper_binding f, %.loc20_33.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %f.patt: %pattern_type.186 = value_binding_pattern f [concrete = constants.%f.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+4 -4
View File
@@ -37,20 +37,20 @@ let b: bool = Eq('a', 'b');
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete = constants.%a.patt.567]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc21_26.1: bool = value_of_initializer @__global_init.%Eq.call.loc21 [concrete = constants.%true]
// CHECK:STDOUT: %.loc21_26.2: bool = converted @__global_init.%Eq.call.loc21, %.loc21_26.1 [concrete = constants.%true]
// CHECK:STDOUT: %.loc21_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %a: bool = wrapper_binding a, %.loc21_26.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt.438]
// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete = constants.%a.patt.567]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc22_26.1: bool = value_of_initializer @__global_init.%Eq.call.loc22 [concrete = constants.%false]
// CHECK:STDOUT: %.loc22_26.2: bool = converted @__global_init.%Eq.call.loc22, %.loc22_26.1 [concrete = constants.%false]
// CHECK:STDOUT: %.loc22_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %b: bool = wrapper_binding b, %.loc22_26.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt.438]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -37,20 +37,20 @@ let b: bool = Greater('a', 'b');
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete = constants.%a.patt.567]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc21_31.1: bool = value_of_initializer @__global_init.%Greater.call.loc21 [concrete = constants.%true]
// CHECK:STDOUT: %.loc21_31.2: bool = converted @__global_init.%Greater.call.loc21, %.loc21_31.1 [concrete = constants.%true]
// CHECK:STDOUT: %.loc21_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %a: bool = wrapper_binding a, %.loc21_31.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt.438]
// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete = constants.%a.patt.567]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc22_31.1: bool = value_of_initializer @__global_init.%Greater.call.loc22 [concrete = constants.%false]
// CHECK:STDOUT: %.loc22_31.2: bool = converted @__global_init.%Greater.call.loc22, %.loc22_31.1 [concrete = constants.%false]
// CHECK:STDOUT: %.loc22_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %b: bool = wrapper_binding b, %.loc22_31.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt.438]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -39,27 +39,27 @@ let c: bool = GreaterEq('a', 'b');
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete = constants.%a.patt.567]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc21_33.1: bool = value_of_initializer @__global_init.%GreaterEq.call.loc21 [concrete = constants.%true]
// CHECK:STDOUT: %.loc21_33.2: bool = converted @__global_init.%GreaterEq.call.loc21, %.loc21_33.1 [concrete = constants.%true]
// CHECK:STDOUT: %.loc21_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %a: bool = wrapper_binding a, %.loc21_33.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt.438]
// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete = constants.%a.patt.567]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc22_33.1: bool = value_of_initializer @__global_init.%GreaterEq.call.loc22 [concrete = constants.%true]
// CHECK:STDOUT: %.loc22_33.2: bool = converted @__global_init.%GreaterEq.call.loc22, %.loc22_33.1 [concrete = constants.%true]
// CHECK:STDOUT: %.loc22_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %b: bool = wrapper_binding b, %.loc22_33.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.831 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt.438]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc23_33.1: bool = value_of_initializer @__global_init.%GreaterEq.call.loc23 [concrete = constants.%false]
// CHECK:STDOUT: %.loc23_33.2: bool = converted @__global_init.%GreaterEq.call.loc23, %.loc23_33.1 [concrete = constants.%false]
// CHECK:STDOUT: %.loc23_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %c: bool = wrapper_binding c, %.loc23_33.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.831 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+4 -4
View File
@@ -37,20 +37,20 @@ let b: bool = Less('b', 'a');
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete = constants.%a.patt.567]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc21_28.1: bool = value_of_initializer @__global_init.%Less.call.loc21 [concrete = constants.%true]
// CHECK:STDOUT: %.loc21_28.2: bool = converted @__global_init.%Less.call.loc21, %.loc21_28.1 [concrete = constants.%true]
// CHECK:STDOUT: %.loc21_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %a: bool = wrapper_binding a, %.loc21_28.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt.438]
// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete = constants.%a.patt.567]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc22_28.1: bool = value_of_initializer @__global_init.%Less.call.loc22 [concrete = constants.%false]
// CHECK:STDOUT: %.loc22_28.2: bool = converted @__global_init.%Less.call.loc22, %.loc22_28.1 [concrete = constants.%false]
// CHECK:STDOUT: %.loc22_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %b: bool = wrapper_binding b, %.loc22_28.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt.438]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -39,27 +39,27 @@ let c: bool = LessEq('b', 'a');
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete = constants.%a.patt.567]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc21_30.1: bool = value_of_initializer @__global_init.%LessEq.call.loc21 [concrete = constants.%true]
// CHECK:STDOUT: %.loc21_30.2: bool = converted @__global_init.%LessEq.call.loc21, %.loc21_30.1 [concrete = constants.%true]
// CHECK:STDOUT: %.loc21_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %a: bool = wrapper_binding a, %.loc21_30.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt.438]
// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete = constants.%a.patt.567]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc22_30.1: bool = value_of_initializer @__global_init.%LessEq.call.loc22 [concrete = constants.%true]
// CHECK:STDOUT: %.loc22_30.2: bool = converted @__global_init.%LessEq.call.loc22, %.loc22_30.1 [concrete = constants.%true]
// CHECK:STDOUT: %.loc22_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %b: bool = wrapper_binding b, %.loc22_30.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.831 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt.438]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc23_30.1: bool = value_of_initializer @__global_init.%LessEq.call.loc23 [concrete = constants.%false]
// CHECK:STDOUT: %.loc23_30.2: bool = converted @__global_init.%LessEq.call.loc23, %.loc23_30.1 [concrete = constants.%false]
// CHECK:STDOUT: %.loc23_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %c: bool = wrapper_binding c, %.loc23_30.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.831 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -46,21 +46,21 @@ let not_8_bit: CharLiteral = '\u{1E15}';
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ascii_x.patt: %pattern_type = value_binding_pattern ascii_x [concrete = constants.%ascii_x.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %CharLiteral.ref.loc7: type = name_ref CharLiteral, imports.%Main.CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %ascii_x: Core.CharLiteral = wrapper_binding ascii_x, @__global_init.%.loc7
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %not_7_bit.patt: %pattern_type = value_binding_pattern not_7_bit [concrete = constants.%not_7_bit.patt]
// CHECK:STDOUT: %ascii_x.patt: %pattern_type = value_binding_pattern ascii_x [concrete = constants.%ascii_x.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %CharLiteral.ref.loc8: type = name_ref CharLiteral, imports.%Main.CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %not_7_bit: Core.CharLiteral = wrapper_binding not_7_bit, @__global_init.%.loc8
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %not_8_bit.patt: %pattern_type = value_binding_pattern not_8_bit [concrete = constants.%not_8_bit.patt]
// CHECK:STDOUT: %not_7_bit.patt: %pattern_type = value_binding_pattern not_7_bit [concrete = constants.%not_7_bit.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %CharLiteral.ref.loc9: type = name_ref CharLiteral, imports.%Main.CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %not_8_bit: Core.CharLiteral = wrapper_binding not_8_bit, @__global_init.%.loc9
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %not_8_bit.patt: %pattern_type = value_binding_pattern not_8_bit [concrete = constants.%not_8_bit.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+4 -4
View File
@@ -37,20 +37,20 @@ let b: bool = Neq('a', 'a');
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete = constants.%a.patt.567]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc21_27.1: bool = value_of_initializer @__global_init.%Neq.call.loc21 [concrete = constants.%true]
// CHECK:STDOUT: %.loc21_27.2: bool = converted @__global_init.%Neq.call.loc21, %.loc21_27.1 [concrete = constants.%true]
// CHECK:STDOUT: %.loc21_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %a: bool = wrapper_binding a, %.loc21_27.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt.438]
// CHECK:STDOUT: %a.patt: %pattern_type.831 = value_binding_pattern a [concrete = constants.%a.patt.567]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc22_27.1: bool = value_of_initializer @__global_init.%Neq.call.loc22 [concrete = constants.%false]
// CHECK:STDOUT: %.loc22_27.2: bool = converted @__global_init.%Neq.call.loc22, %.loc22_27.1 [concrete = constants.%false]
// CHECK:STDOUT: %.loc22_8: type = type_literal bool [concrete = bool]
// CHECK:STDOUT: %b: bool = wrapper_binding b, %.loc22_27.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.831 = value_binding_pattern b [concrete = constants.%b.patt.438]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -59,48 +59,48 @@ let min: i32 = SubCharCharToI32('\u{0}', '\u{10FFFF}');
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.dc0 = value_binding_pattern a [concrete = constants.%a.patt.b0e]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc24_53.1: Core.IntLiteral = value_of_initializer @__global_init.%SubCharCharToIntLiteral.call.loc24 [concrete = constants.%int_1.5b8]
// CHECK:STDOUT: %.loc24_53.2: Core.IntLiteral = converted @__global_init.%SubCharCharToIntLiteral.call.loc24, %.loc24_53.1 [concrete = constants.%int_1.5b8]
// CHECK:STDOUT: %IntLiteral.ref.loc24: type = name_ref IntLiteral, %IntLiteral [concrete = Core.IntLiteral]
// CHECK:STDOUT: %a: Core.IntLiteral = wrapper_binding a, %.loc24_53.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = value_binding_pattern b [concrete = constants.%b.patt.3f7]
// CHECK:STDOUT: %a.patt: %pattern_type.dc0 = value_binding_pattern a [concrete = constants.%a.patt.b0e]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc25_39.1: %i32 = value_of_initializer @__global_init.%SubCharCharToI32.call.loc25 [concrete = constants.%int_1.0c6]
// CHECK:STDOUT: %.loc25_39.2: %i32 = converted @__global_init.%SubCharCharToI32.call.loc25, %.loc25_39.1 [concrete = constants.%int_1.0c6]
// CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %b: %i32 = wrapper_binding b, %.loc25_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.dc0 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = value_binding_pattern b [concrete = constants.%b.patt.3f7]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc26_53.1: Core.IntLiteral = value_of_initializer @__global_init.%SubCharCharToIntLiteral.call.loc26 [concrete = constants.%int_-1.638]
// CHECK:STDOUT: %.loc26_53.2: Core.IntLiteral = converted @__global_init.%SubCharCharToIntLiteral.call.loc26, %.loc26_53.1 [concrete = constants.%int_-1.638]
// CHECK:STDOUT: %IntLiteral.ref.loc26: type = name_ref IntLiteral, %IntLiteral [concrete = Core.IntLiteral]
// CHECK:STDOUT: %c: Core.IntLiteral = wrapper_binding c, %.loc26_53.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.6b6 = value_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.dc0 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc27_39.1: %i32 = value_of_initializer @__global_init.%SubCharCharToI32.call.loc27 [concrete = constants.%int_-1.4ef]
// CHECK:STDOUT: %.loc27_39.2: %i32 = converted @__global_init.%SubCharCharToI32.call.loc27, %.loc27_39.1 [concrete = constants.%int_-1.4ef]
// CHECK:STDOUT: %i32.loc27: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %d: %i32 = wrapper_binding d, %.loc27_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %max.patt: %pattern_type.6b6 = value_binding_pattern max [concrete = constants.%max.patt]
// CHECK:STDOUT: %d.patt: %pattern_type.6b6 = value_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc28_54.1: %i32 = value_of_initializer @__global_init.%SubCharCharToI32.call.loc28 [concrete = constants.%int_1114111]
// CHECK:STDOUT: %.loc28_54.2: %i32 = converted @__global_init.%SubCharCharToI32.call.loc28, %.loc28_54.1 [concrete = constants.%int_1114111]
// CHECK:STDOUT: %i32.loc28: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %max: %i32 = wrapper_binding max, %.loc28_54.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %min.patt: %pattern_type.6b6 = value_binding_pattern min [concrete = constants.%min.patt]
// CHECK:STDOUT: %max.patt: %pattern_type.6b6 = value_binding_pattern max [concrete = constants.%max.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc29_54.1: %i32 = value_of_initializer @__global_init.%SubCharCharToI32.call.loc29 [concrete = constants.%int_-1114111]
// CHECK:STDOUT: %.loc29_54.2: %i32 = converted @__global_init.%SubCharCharToI32.call.loc29, %.loc29_54.1 [concrete = constants.%int_-1114111]
// CHECK:STDOUT: %i32.loc29: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %min: %i32 = wrapper_binding min, %.loc29_54.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %min.patt: %pattern_type.6b6 = value_binding_pattern min [concrete = constants.%min.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -76,27 +76,27 @@ let b: CharLiteral = SubCharInt('\u{10FFFF}', Negate(1));
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.8c6 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc13_39.1: Core.CharLiteral = value_of_initializer @__global_init.%SubCharInt.call.loc13 [concrete = constants.%.54f]
// CHECK:STDOUT: %.loc13_39.2: Core.CharLiteral = converted @__global_init.%SubCharInt.call.loc13, %.loc13_39.1 [concrete = constants.%.54f]
// CHECK:STDOUT: %CharLiteral.ref.loc13: type = name_ref CharLiteral, %CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %a: Core.CharLiteral = wrapper_binding a, %.loc13_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.8c6 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.8c6 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc16_52.1: Core.CharLiteral = value_of_initializer @__global_init.%SubCharInt.call.loc16 [concrete = constants.%.ae7]
// CHECK:STDOUT: %.loc16_52.2: Core.CharLiteral = converted @__global_init.%SubCharInt.call.loc16, %.loc16_52.1 [concrete = constants.%.ae7]
// CHECK:STDOUT: %CharLiteral.ref.loc16: type = name_ref CharLiteral, %CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %b: Core.CharLiteral = wrapper_binding b, %.loc16_52.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.8c6 = value_binding_pattern c [concrete = constants.%c.patt.c30]
// CHECK:STDOUT: %b.patt: %pattern_type.8c6 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc17_52.1: Core.CharLiteral = value_of_initializer @__global_init.%SubCharInt.call.loc17 [concrete = constants.%.a8b]
// CHECK:STDOUT: %.loc17_52.2: Core.CharLiteral = converted @__global_init.%SubCharInt.call.loc17, %.loc17_52.1 [concrete = constants.%.a8b]
// CHECK:STDOUT: %CharLiteral.ref.loc17: type = name_ref CharLiteral, %CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %c: Core.CharLiteral = wrapper_binding c, %.loc17_52.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.8c6 = value_binding_pattern c [concrete = constants.%c.patt.c30]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+33 -33
View File
@@ -135,13 +135,13 @@ let b: f64 = Float32ToFloat64(1.0e30);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %f.patt: %pattern_type = value_binding_pattern f [concrete = constants.%f.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_53.1: Core.FloatLiteral = value_of_initializer @__global_init.%FloatLiteralToFloatLiteral.call [concrete = constants.%float]
// CHECK:STDOUT: %.loc6_53.2: Core.FloatLiteral = converted @__global_init.%FloatLiteralToFloatLiteral.call, %.loc6_53.1 [concrete = constants.%float]
// CHECK:STDOUT: %FloatLiteral.ref: type = name_ref FloatLiteral, imports.%Main.FloatLiteral [concrete = Core.FloatLiteral]
// CHECK:STDOUT: %f: Core.FloatLiteral = wrapper_binding f, %.loc6_53.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %f.patt: %pattern_type = value_binding_pattern f [concrete = constants.%f.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -179,34 +179,34 @@ let b: f64 = Float32ToFloat64(1.0e30);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete = constants.%a.patt.ae8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_39.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc6 [concrete = constants.%float.895]
// CHECK:STDOUT: %.loc6_39.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc6, %.loc6_39.1 [concrete = constants.%float.895]
// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %a: %f64.dc1 = wrapper_binding a, %.loc6_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete = constants.%a.patt.ae8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_39.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc7 [concrete = constants.%float.3b9]
// CHECK:STDOUT: %.loc7_39.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc7, %.loc7_39.1 [concrete = constants.%float.3b9]
// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %b: %f64.dc1 = wrapper_binding b, %.loc7_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc8_43.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc8 [concrete = constants.%float.672]
// CHECK:STDOUT: %.loc8_43.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc8, %.loc8_43.1 [concrete = constants.%float.672]
// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %c: %f64.dc1 = wrapper_binding c, %.loc8_43.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.fb7 = value_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc10_43.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc10 [concrete = constants.%float.7ae]
// CHECK:STDOUT: %.loc10_43.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc10, %.loc10_43.1 [concrete = constants.%float.7ae]
// CHECK:STDOUT: %f64.loc10: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %d: %f64.dc1 = wrapper_binding d, %.loc10_43.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.fb7 = value_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -253,34 +253,34 @@ let b: f64 = Float32ToFloat64(1.0e30);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_39.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc6 [concrete = constants.%float.5cd]
// CHECK:STDOUT: %.loc6_39.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc6, %.loc6_39.1 [concrete = constants.%float.5cd]
// CHECK:STDOUT: %f32.loc6: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %a: %f32.c73 = wrapper_binding a, %.loc6_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_39.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc7 [concrete = constants.%float.943]
// CHECK:STDOUT: %.loc7_39.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc7, %.loc7_39.1 [concrete = constants.%float.943]
// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %b: %f32.c73 = wrapper_binding b, %.loc7_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc8_42.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc8 [concrete = constants.%float.c47]
// CHECK:STDOUT: %.loc8_42.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc8, %.loc8_42.1 [concrete = constants.%float.c47]
// CHECK:STDOUT: %f32.loc8: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %c: %f32.c73 = wrapper_binding c, %.loc8_42.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.240 = value_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc10_42.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc10 [concrete = constants.%float.021]
// CHECK:STDOUT: %.loc10_42.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc10, %.loc10_42.1 [concrete = constants.%float.021]
// CHECK:STDOUT: %f32.loc10: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %d: %f32.c73 = wrapper_binding d, %.loc10_42.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.240 = value_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -343,27 +343,27 @@ let b: f64 = Float32ToFloat64(1.0e30);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete = constants.%a.patt.ae8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_34.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc6 [concrete = constants.%float.895]
// CHECK:STDOUT: %.loc6_34.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call.loc6, %.loc6_34.1 [concrete = constants.%float.895]
// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %a: %f64.dc1 = wrapper_binding a, %.loc6_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete = constants.%a.patt.ae8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_34.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc7 [concrete = constants.%float.3b9]
// CHECK:STDOUT: %.loc7_34.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call.loc7, %.loc7_34.1 [concrete = constants.%float.3b9]
// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %b: %f64.dc1 = wrapper_binding b, %.loc7_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc8_38.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc8 [concrete = constants.%float.672]
// CHECK:STDOUT: %.loc8_38.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call.loc8, %.loc8_38.1 [concrete = constants.%float.672]
// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %c: %f64.dc1 = wrapper_binding c, %.loc8_38.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -444,27 +444,27 @@ let b: f64 = Float32ToFloat64(1.0e30);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_34.1: %f32.c73 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc6 [concrete = constants.%float.5cd]
// CHECK:STDOUT: %.loc6_34.2: %f32.c73 = converted @__global_init.%Float32ToFloat32.call.loc6, %.loc6_34.1 [concrete = constants.%float.5cd]
// CHECK:STDOUT: %f32.loc6: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %a: %f32.c73 = wrapper_binding a, %.loc6_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_34.1: %f32.c73 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc7 [concrete = constants.%float.943]
// CHECK:STDOUT: %.loc7_34.2: %f32.c73 = converted @__global_init.%Float32ToFloat32.call.loc7, %.loc7_34.1 [concrete = constants.%float.943]
// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %b: %f32.c73 = wrapper_binding b, %.loc7_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc8_37.1: %f32.c73 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc8 [concrete = constants.%float.c47]
// CHECK:STDOUT: %.loc8_37.2: %f32.c73 = converted @__global_init.%Float32ToFloat32.call.loc8, %.loc8_37.1 [concrete = constants.%float.c47]
// CHECK:STDOUT: %f32.loc8: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %c: %f32.c73 = wrapper_binding c, %.loc8_37.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -544,20 +544,20 @@ let b: f64 = Float32ToFloat64(1.0e30);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_34.1: %f32.c73 = value_of_initializer @__global_init.%Float64ToFloat32.call.loc7 [concrete = constants.%float.943]
// CHECK:STDOUT: %.loc7_34.2: %f32.c73 = converted @__global_init.%Float64ToFloat32.call.loc7, %.loc7_34.1 [concrete = constants.%float.943]
// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %a: %f32.c73 = wrapper_binding a, %.loc7_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc9_37.1: %f32.c73 = value_of_initializer @__global_init.%Float64ToFloat32.call.loc9 [concrete = constants.%float.021]
// CHECK:STDOUT: %.loc9_37.2: %f32.c73 = converted @__global_init.%Float64ToFloat32.call.loc9, %.loc9_37.1 [concrete = constants.%float.021]
// CHECK:STDOUT: %f32.loc9: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %b: %f32.c73 = wrapper_binding b, %.loc9_37.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -627,20 +627,20 @@ let b: f64 = Float32ToFloat64(1.0e30);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete = constants.%a.patt.ae8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_34.1: %f64.dc1 = value_of_initializer @__global_init.%Float32ToFloat64.call.loc7 [concrete = constants.%float.3b9]
// CHECK:STDOUT: %.loc7_34.2: %f64.dc1 = converted @__global_init.%Float32ToFloat64.call.loc7, %.loc7_34.1 [concrete = constants.%float.3b9]
// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %a: %f64.dc1 = wrapper_binding a, %.loc7_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete = constants.%a.patt.ae8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc8_37.1: %f64.dc1 = value_of_initializer @__global_init.%Float32ToFloat64.call.loc8 [concrete = constants.%float.84e]
// CHECK:STDOUT: %.loc8_37.2: %f64.dc1 = converted @__global_init.%Float32ToFloat64.call.loc8, %.loc8_37.1 [concrete = constants.%float.84e]
// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %b: %f64.dc1 = wrapper_binding b, %.loc8_37.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -171,13 +171,13 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %f.patt: %pattern_type = value_binding_pattern f [concrete = constants.%f.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_53.1: Core.FloatLiteral = value_of_initializer @__global_init.%FloatLiteralToFloatLiteral.call [concrete = constants.%float]
// CHECK:STDOUT: %.loc6_53.2: Core.FloatLiteral = converted @__global_init.%FloatLiteralToFloatLiteral.call, %.loc6_53.1 [concrete = constants.%float]
// CHECK:STDOUT: %FloatLiteral.ref: type = name_ref FloatLiteral, imports.%Main.FloatLiteral [concrete = Core.FloatLiteral]
// CHECK:STDOUT: %f: Core.FloatLiteral = wrapper_binding f, %.loc6_53.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %f.patt: %pattern_type = value_binding_pattern f [concrete = constants.%f.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -212,27 +212,27 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete = constants.%a.patt.ae8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_39.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc6 [concrete = constants.%float.895]
// CHECK:STDOUT: %.loc6_39.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc6, %.loc6_39.1 [concrete = constants.%float.895]
// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %a: %f64.dc1 = wrapper_binding a, %.loc6_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete = constants.%a.patt.ae8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_39.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc7 [concrete = constants.%float.3b9]
// CHECK:STDOUT: %.loc7_39.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc7, %.loc7_39.1 [concrete = constants.%float.3b9]
// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %b: %f64.dc1 = wrapper_binding b, %.loc7_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc8_43.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc8 [concrete = constants.%float.672]
// CHECK:STDOUT: %.loc8_43.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc8, %.loc8_43.1 [concrete = constants.%float.672]
// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %c: %f64.dc1 = wrapper_binding c, %.loc8_43.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -273,27 +273,27 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_39.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc6 [concrete = constants.%float.5cd]
// CHECK:STDOUT: %.loc6_39.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc6, %.loc6_39.1 [concrete = constants.%float.5cd]
// CHECK:STDOUT: %f32.loc6: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %a: %f32.c73 = wrapper_binding a, %.loc6_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_39.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc7 [concrete = constants.%float.943]
// CHECK:STDOUT: %.loc7_39.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc7, %.loc7_39.1 [concrete = constants.%float.943]
// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %b: %f32.c73 = wrapper_binding b, %.loc7_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc8_42.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc8 [concrete = constants.%float.c47]
// CHECK:STDOUT: %.loc8_42.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc8, %.loc8_42.1 [concrete = constants.%float.c47]
// CHECK:STDOUT: %f32.loc8: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %c: %f32.c73 = wrapper_binding c, %.loc8_42.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -353,27 +353,27 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete = constants.%a.patt.ae8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_34.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc6 [concrete = constants.%float.895]
// CHECK:STDOUT: %.loc6_34.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call.loc6, %.loc6_34.1 [concrete = constants.%float.895]
// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %a: %f64.dc1 = wrapper_binding a, %.loc6_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete = constants.%a.patt.ae8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_34.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc7 [concrete = constants.%float.3b9]
// CHECK:STDOUT: %.loc7_34.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call.loc7, %.loc7_34.1 [concrete = constants.%float.3b9]
// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %b: %f64.dc1 = wrapper_binding b, %.loc7_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc8_38.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc8 [concrete = constants.%float.672]
// CHECK:STDOUT: %.loc8_38.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call.loc8, %.loc8_38.1 [concrete = constants.%float.672]
// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %c: %f64.dc1 = wrapper_binding c, %.loc8_38.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -454,27 +454,27 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_34.1: %f32.c73 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc6 [concrete = constants.%float.5cd]
// CHECK:STDOUT: %.loc6_34.2: %f32.c73 = converted @__global_init.%Float32ToFloat32.call.loc6, %.loc6_34.1 [concrete = constants.%float.5cd]
// CHECK:STDOUT: %f32.loc6: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %a: %f32.c73 = wrapper_binding a, %.loc6_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_34.1: %f32.c73 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc7 [concrete = constants.%float.943]
// CHECK:STDOUT: %.loc7_34.2: %f32.c73 = converted @__global_init.%Float32ToFloat32.call.loc7, %.loc7_34.1 [concrete = constants.%float.943]
// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %b: %f32.c73 = wrapper_binding b, %.loc7_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc8_37.1: %f32.c73 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc8 [concrete = constants.%float.c47]
// CHECK:STDOUT: %.loc8_37.2: %f32.c73 = converted @__global_init.%Float32ToFloat32.call.loc8, %.loc8_37.1 [concrete = constants.%float.c47]
// CHECK:STDOUT: %f32.loc8: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %c: %f32.c73 = wrapper_binding c, %.loc8_37.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -548,13 +548,13 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_34.1: %f32.c73 = value_of_initializer @__global_init.%Float64ToFloat32.call [concrete = constants.%float.943]
// CHECK:STDOUT: %.loc6_34.2: %f32.c73 = converted @__global_init.%Float64ToFloat32.call, %.loc6_34.1 [concrete = constants.%float.943]
// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %a: %f32.c73 = wrapper_binding a, %.loc6_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -618,27 +618,27 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc11_37.1: %f32.c73 = value_of_initializer @__global_init.%Float64ToFloat32.call [concrete = <error>]
// CHECK:STDOUT: %.loc11_37.2: %f32.c73 = converted @__global_init.%Float64ToFloat32.call, %.loc11_37.1 [concrete = <error>]
// CHECK:STDOUT: %f32.loc11: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %a: %f32.c73 = wrapper_binding a, %.loc11_37.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete = constants.%a.patt.895]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc16_42.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call [concrete = <error>]
// CHECK:STDOUT: %.loc16_42.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call, %.loc16_42.1 [concrete = <error>]
// CHECK:STDOUT: %f32.loc16: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %b: %f32.c73 = wrapper_binding b, %.loc16_42.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc21_43.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call [concrete = <error>]
// CHECK:STDOUT: %.loc21_43.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call, %.loc21_43.1 [concrete = <error>]
// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %c: %f64.dc1 = wrapper_binding c, %.loc21_43.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -704,20 +704,20 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete = constants.%a.patt.ae8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_34.1: %f64.dc1 = value_of_initializer @__global_init.%Float32ToFloat64.call.loc6 [concrete = constants.%float.3b9]
// CHECK:STDOUT: %.loc6_34.2: %f64.dc1 = converted @__global_init.%Float32ToFloat64.call.loc6, %.loc6_34.1 [concrete = constants.%float.3b9]
// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %a: %f64.dc1 = wrapper_binding a, %.loc6_34.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete = constants.%a.patt.ae8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_37.1: %f64.dc1 = value_of_initializer @__global_init.%Float32ToFloat64.call.loc7 [concrete = constants.%float.84e]
// CHECK:STDOUT: %.loc7_37.2: %f64.dc1 = converted @__global_init.%Float32ToFloat64.call.loc7, %.loc7_37.1 [concrete = constants.%float.84e]
// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %b: %f64.dc1 = wrapper_binding b, %.loc7_37.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -779,9 +779,6 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %not_constant_64.patt: %pattern_type.fb7 = value_binding_pattern not_constant_64 [concrete = constants.%not_constant_64.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %impl.elem0: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0]
// CHECK:STDOUT: %bound_method.loc6_28.1: <bound method> = bound_method @__global_init.%float, %impl.elem0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound]
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn]
@@ -792,12 +789,15 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64);
// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %not_constant_64: %f64.dc1 = wrapper_binding not_constant_64, %.loc6_28.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %convert_not_constant.patt: %pattern_type.fb7 = value_binding_pattern convert_not_constant [concrete = constants.%convert_not_constant.patt]
// CHECK:STDOUT: %not_constant_64.patt: %pattern_type.fb7 = value_binding_pattern not_constant_64 [concrete = constants.%not_constant_64.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc15_65.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call
// CHECK:STDOUT: %.loc15_65.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call, %.loc15_65.1
// CHECK:STDOUT: %f64.loc15: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %convert_not_constant: %f64.dc1 = wrapper_binding convert_not_constant, %.loc15_65.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %convert_not_constant.patt: %pattern_type.fb7 = value_binding_pattern convert_not_constant [concrete = constants.%convert_not_constant.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+21 -21
View File
@@ -323,43 +323,40 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0));
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %overflow.patt: %pattern_type.6b6 = value_binding_pattern overflow [concrete = constants.%overflow.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc9_49.1: %i32 = value_of_initializer @__global_init.%ConvertF64ToI32.call.loc9 [concrete = <error>]
// CHECK:STDOUT: %.loc9_49.2: %i32 = converted @__global_init.%ConvertF64ToI32.call.loc9, %.loc9_49.1 [concrete = <error>]
// CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %overflow: %i32 = wrapper_binding overflow, %.loc9_49.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %underflow.patt: %pattern_type.6b6 = value_binding_pattern underflow [concrete = constants.%underflow.patt]
// CHECK:STDOUT: %overflow.patt: %pattern_type.6b6 = value_binding_pattern overflow [concrete = constants.%overflow.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc15_58.1: %i32 = value_of_initializer @__global_init.%ConvertF64ToI32.call.loc15 [concrete = <error>]
// CHECK:STDOUT: %.loc15_58.2: %i32 = converted @__global_init.%ConvertF64ToI32.call.loc15, %.loc15_58.1 [concrete = <error>]
// CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %underflow: %i32 = wrapper_binding underflow, %.loc15_58.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %unsigned_neg.patt: %pattern_type.668 = value_binding_pattern unsigned_neg [concrete = constants.%unsigned_neg.patt]
// CHECK:STDOUT: %underflow.patt: %pattern_type.6b6 = value_binding_pattern underflow [concrete = constants.%underflow.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc21_52.1: %u32 = value_of_initializer @__global_init.%ConvertF64ToU32.call [concrete = <error>]
// CHECK:STDOUT: %.loc21_52.2: %u32 = converted @__global_init.%ConvertF64ToU32.call, %.loc21_52.1 [concrete = <error>]
// CHECK:STDOUT: %u32.loc21: type = type_literal constants.%u32 [concrete = constants.%u32]
// CHECK:STDOUT: %unsigned_neg: %u32 = wrapper_binding unsigned_neg, %.loc21_52.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %literal_overflow.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow [concrete = constants.%literal_overflow.patt]
// CHECK:STDOUT: %unsigned_neg.patt: %pattern_type.668 = value_binding_pattern unsigned_neg [concrete = constants.%unsigned_neg.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc27_66.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc27 [concrete = <error>]
// CHECK:STDOUT: %.loc27_66.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc27, %.loc27_66.1 [concrete = <error>]
// CHECK:STDOUT: %i32.loc27: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %literal_overflow: %i32 = wrapper_binding literal_overflow, %.loc27_66.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %giant_literal_overflow.patt: %pattern_type.6b6 = value_binding_pattern giant_literal_overflow [concrete = constants.%giant_literal_overflow.patt]
// CHECK:STDOUT: %literal_overflow.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow [concrete = constants.%literal_overflow.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc33_71.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc33 [concrete = <error>]
// CHECK:STDOUT: %.loc33_71.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc33, %.loc33_71.1 [concrete = <error>]
// CHECK:STDOUT: %i32.loc33: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %giant_literal_overflow: %i32 = wrapper_binding giant_literal_overflow, %.loc33_71.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %giant_literal_to_int_literal_overflow.patt: %pattern_type.dc0 = value_binding_pattern giant_literal_to_int_literal_overflow [concrete = constants.%giant_literal_to_int_literal_overflow.patt]
// CHECK:STDOUT: %giant_literal_overflow.patt: %pattern_type.6b6 = value_binding_pattern giant_literal_overflow [concrete = constants.%giant_literal_overflow.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc40_106.1: Core.IntLiteral = value_of_initializer @__global_init.%ConvertFloatLiteralToIntLiteral.call.loc40 [concrete = <error>]
// CHECK:STDOUT: %.loc40_106.2: Core.IntLiteral = converted @__global_init.%ConvertFloatLiteralToIntLiteral.call.loc40, %.loc40_106.1 [concrete = <error>]
@@ -369,14 +366,14 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0));
// CHECK:STDOUT: }
// CHECK:STDOUT: %giant_literal_to_int_literal_overflow: Core.IntLiteral = wrapper_binding giant_literal_to_int_literal_overflow, %.loc40_106.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %giant_exponent_literal_overflow.patt: %pattern_type.6b6 = value_binding_pattern giant_exponent_literal_overflow [concrete = constants.%giant_exponent_literal_overflow.patt]
// CHECK:STDOUT: %giant_literal_to_int_literal_overflow.patt: %pattern_type.dc0 = value_binding_pattern giant_literal_to_int_literal_overflow [concrete = constants.%giant_literal_to_int_literal_overflow.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc47_107.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc47 [concrete = <error>]
// CHECK:STDOUT: %.loc47_107.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc47, %.loc47_107.1 [concrete = <error>]
// CHECK:STDOUT: %i32.loc47: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %giant_exponent_literal_overflow: %i32 = wrapper_binding giant_exponent_literal_overflow, %.loc47_107.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %giant_exponent_literal_to_int_literal_overflow.patt: %pattern_type.dc0 = value_binding_pattern giant_exponent_literal_to_int_literal_overflow [concrete = constants.%giant_exponent_literal_to_int_literal_overflow.patt]
// CHECK:STDOUT: %giant_exponent_literal_overflow.patt: %pattern_type.6b6 = value_binding_pattern giant_exponent_literal_overflow [concrete = constants.%giant_exponent_literal_overflow.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc55_141.1: Core.IntLiteral = value_of_initializer @__global_init.%ConvertFloatLiteralToIntLiteral.call.loc55 [concrete = <error>]
// CHECK:STDOUT: %.loc55_141.2: Core.IntLiteral = converted @__global_init.%ConvertFloatLiteralToIntLiteral.call.loc55, %.loc55_141.1 [concrete = <error>]
@@ -386,54 +383,57 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0));
// CHECK:STDOUT: }
// CHECK:STDOUT: %giant_exponent_literal_to_int_literal_overflow: Core.IntLiteral = wrapper_binding giant_exponent_literal_to_int_literal_overflow, %.loc55_141.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %literal_overflow_large_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_large_mantissa [concrete = constants.%literal_overflow_large_mantissa.patt]
// CHECK:STDOUT: %giant_exponent_literal_to_int_literal_overflow.patt: %pattern_type.dc0 = value_binding_pattern giant_exponent_literal_to_int_literal_overflow [concrete = constants.%giant_exponent_literal_to_int_literal_overflow.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc62_82.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc62 [concrete = <error>]
// CHECK:STDOUT: %.loc62_82.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc62, %.loc62_82.1 [concrete = <error>]
// CHECK:STDOUT: %i32.loc62: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %literal_overflow_large_mantissa: %i32 = wrapper_binding literal_overflow_large_mantissa, %.loc62_82.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %literal_overflow_med_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_med_mantissa [concrete = constants.%literal_overflow_med_mantissa.patt]
// CHECK:STDOUT: %literal_overflow_large_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_large_mantissa [concrete = constants.%literal_overflow_large_mantissa.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc69_80.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc69 [concrete = <error>]
// CHECK:STDOUT: %.loc69_80.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc69, %.loc69_80.1 [concrete = <error>]
// CHECK:STDOUT: %i32.loc69: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %literal_overflow_med_mantissa: %i32 = wrapper_binding literal_overflow_med_mantissa, %.loc69_80.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %literal_overflow_hex_med_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_hex_med_mantissa [concrete = constants.%literal_overflow_hex_med_mantissa.patt]
// CHECK:STDOUT: %literal_overflow_med_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_med_mantissa [concrete = constants.%literal_overflow_med_mantissa.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc76_85.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc76 [concrete = <error>]
// CHECK:STDOUT: %.loc76_85.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc76, %.loc76_85.1 [concrete = <error>]
// CHECK:STDOUT: %i32.loc76: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %literal_overflow_hex_med_mantissa: %i32 = wrapper_binding literal_overflow_hex_med_mantissa, %.loc76_85.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %literal_overflow_small_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_small_mantissa [concrete = constants.%literal_overflow_small_mantissa.patt]
// CHECK:STDOUT: %literal_overflow_hex_med_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_hex_med_mantissa [concrete = constants.%literal_overflow_hex_med_mantissa.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc83_75.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc83 [concrete = <error>]
// CHECK:STDOUT: %.loc83_75.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc83, %.loc83_75.1 [concrete = <error>]
// CHECK:STDOUT: %i32.loc83: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %literal_overflow_small_mantissa: %i32 = wrapper_binding literal_overflow_small_mantissa, %.loc83_75.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %literal_overflow_bin_small_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_bin_small_mantissa [concrete = constants.%literal_overflow_bin_small_mantissa.patt]
// CHECK:STDOUT: %literal_overflow_small_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_small_mantissa [concrete = constants.%literal_overflow_small_mantissa.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc90_81.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc90 [concrete = <error>]
// CHECK:STDOUT: %.loc90_81.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc90, %.loc90_81.1 [concrete = <error>]
// CHECK:STDOUT: %i32.loc90: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %literal_overflow_bin_small_mantissa: %i32 = wrapper_binding literal_overflow_bin_small_mantissa, %.loc90_81.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %literal_overflow_unsigned_neg.patt: %pattern_type.668 = value_binding_pattern literal_overflow_unsigned_neg [concrete = constants.%literal_overflow_unsigned_neg.patt]
// CHECK:STDOUT: %literal_overflow_bin_small_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_bin_small_mantissa [concrete = constants.%literal_overflow_bin_small_mantissa.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc97_72.1: %u32 = value_of_initializer @__global_init.%ConvertFloatLiteralToU32.call.loc97 [concrete = <error>]
// CHECK:STDOUT: %.loc97_72.2: %u32 = converted @__global_init.%ConvertFloatLiteralToU32.call.loc97, %.loc97_72.1 [concrete = <error>]
// CHECK:STDOUT: %u32.loc97: type = type_literal constants.%u32 [concrete = constants.%u32]
// CHECK:STDOUT: %literal_overflow_unsigned_neg: %u32 = wrapper_binding literal_overflow_unsigned_neg, %.loc97_72.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %literal_overflow_bin_unsigned_neg.patt: %pattern_type.668 = value_binding_pattern literal_overflow_bin_unsigned_neg [concrete = constants.%literal_overflow_bin_unsigned_neg.patt]
// CHECK:STDOUT: %literal_overflow_unsigned_neg.patt: %pattern_type.668 = value_binding_pattern literal_overflow_unsigned_neg [concrete = constants.%literal_overflow_unsigned_neg.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc104_79.1: %u32 = value_of_initializer @__global_init.%ConvertFloatLiteralToU32.call.loc104 [concrete = <error>]
// CHECK:STDOUT: %.loc104_79.2: %u32 = converted @__global_init.%ConvertFloatLiteralToU32.call.loc104, %.loc104_79.1 [concrete = <error>]
// CHECK:STDOUT: %u32.loc104: type = type_literal constants.%u32 [concrete = constants.%u32]
// CHECK:STDOUT: %literal_overflow_bin_unsigned_neg: %u32 = wrapper_binding literal_overflow_bin_unsigned_neg, %.loc104_79.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %literal_overflow_bin_unsigned_neg.patt: %pattern_type.668 = value_binding_pattern literal_overflow_bin_unsigned_neg [concrete = constants.%literal_overflow_bin_unsigned_neg.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -566,20 +566,20 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0));
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %nan_val.patt: %pattern_type.6b6 = value_binding_pattern nan_val [concrete = constants.%nan_val.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc9_49.1: %i32 = value_of_initializer @__global_init.%ConvertF64ToI32.call.loc9 [concrete = <error>]
// CHECK:STDOUT: %.loc9_49.2: %i32 = converted @__global_init.%ConvertF64ToI32.call.loc9, %.loc9_49.1 [concrete = <error>]
// CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %nan_val: %i32 = wrapper_binding nan_val, %.loc9_49.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %inf_val.patt: %pattern_type.6b6 = value_binding_pattern inf_val [concrete = constants.%inf_val.patt]
// CHECK:STDOUT: %nan_val.patt: %pattern_type.6b6 = value_binding_pattern nan_val [concrete = constants.%nan_val.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc15_49.1: %i32 = value_of_initializer @__global_init.%ConvertF64ToI32.call.loc15 [concrete = <error>]
// CHECK:STDOUT: %.loc15_49.2: %i32 = converted @__global_init.%ConvertF64ToI32.call.loc15, %.loc15_49.1 [concrete = <error>]
// CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %inf_val: %i32 = wrapper_binding inf_val, %.loc15_49.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %inf_val.patt: %pattern_type.6b6 = value_binding_pattern inf_val [concrete = constants.%inf_val.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -40,11 +40,11 @@ let f: FloatLiteral = 1.0;
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %FloatLiteral.ref: type = name_ref FloatLiteral, imports.%Main.FloatLiteral [concrete = Core.FloatLiteral]
// CHECK:STDOUT: %f: Core.FloatLiteral = wrapper_binding f, @__global_init.%float
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %f.patt: %pattern_type = value_binding_pattern f [concrete = constants.%f.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %FloatLiteral.ref: type = name_ref FloatLiteral, imports.%Main.FloatLiteral [concrete = Core.FloatLiteral]
// CHECK:STDOUT: %f: Core.FloatLiteral = wrapper_binding f, @__global_init.%float
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+2 -2
View File
@@ -42,11 +42,11 @@ let f: Form = form(var ());
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %Form.ref: type = name_ref Form, imports.%Main.Form [concrete = Core.Form]
// CHECK:STDOUT: %f: Core.Form = wrapper_binding f, @__global_init.%.loc7_20
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %f.patt: %pattern_type = value_binding_pattern f [concrete = constants.%f.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Form.ref: type = name_ref Form, imports.%Main.Form [concrete = Core.Form]
// CHECK:STDOUT: %f: Core.Form = wrapper_binding f, @__global_init.%.loc7_20
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -85,13 +85,13 @@ let c: CharLiteral = AddIntChar(Negate(98), 'a');
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.8c6 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc12_39.1: Core.CharLiteral = value_of_initializer @__global_init.%AddIntChar.call [concrete = constants.%.711]
// CHECK:STDOUT: %.loc12_39.2: Core.CharLiteral = converted @__global_init.%AddIntChar.call, %.loc12_39.1 [concrete = constants.%.711]
// CHECK:STDOUT: %CharLiteral.ref: type = name_ref CharLiteral, %CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %a: Core.CharLiteral = wrapper_binding a, %.loc12_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.8c6 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -117,27 +117,27 @@ let c: CharLiteral = ConvertFromIntLiteral(0x110000);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.8c6 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc14_46.1: Core.CharLiteral = value_of_initializer @__global_init.%ConvertFromIntLiteral.call [concrete = constants.%.54f]
// CHECK:STDOUT: %.loc14_46.2: Core.CharLiteral = converted @__global_init.%ConvertFromIntLiteral.call, %.loc14_46.1 [concrete = constants.%.54f]
// CHECK:STDOUT: %CharLiteral.ref.loc14: type = name_ref CharLiteral, %CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %a: Core.CharLiteral = wrapper_binding a, %.loc14_46.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.8c6 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.8c6 = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc15_39.1: Core.CharLiteral = value_of_initializer @__global_init.%ConvertFromI32.call [concrete = constants.%.711]
// CHECK:STDOUT: %.loc15_39.2: Core.CharLiteral = converted @__global_init.%ConvertFromI32.call, %.loc15_39.1 [concrete = constants.%.711]
// CHECK:STDOUT: %CharLiteral.ref.loc15: type = name_ref CharLiteral, %CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %b: Core.CharLiteral = wrapper_binding b, %.loc15_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.8c6 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.8c6 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc16_39.1: Core.CharLiteral = value_of_initializer @__global_init.%ConvertFromU32.call [concrete = constants.%.b9b]
// CHECK:STDOUT: %.loc16_39.2: Core.CharLiteral = converted @__global_init.%ConvertFromU32.call, %.loc16_39.1 [concrete = constants.%.b9b]
// CHECK:STDOUT: %CharLiteral.ref.loc16: type = name_ref CharLiteral, %CharLiteral [concrete = Core.CharLiteral]
// CHECK:STDOUT: %c: Core.CharLiteral = wrapper_binding c, %.loc16_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.8c6 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -314,27 +314,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %SizePreserving.patt: %pattern_type.668 = value_binding_pattern SizePreserving [concrete = constants.%SizePreserving.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc6_42.1: %u32 = value_of_initializer @__global_init.%Int32ToUint32.call [concrete = constants.%int_1.92d]
// CHECK:STDOUT: %.loc6_42.2: %u32 = converted @__global_init.%Int32ToUint32.call, %.loc6_42.1 [concrete = constants.%int_1.92d]
// CHECK:STDOUT: %u32: type = type_literal constants.%u32 [concrete = constants.%u32]
// CHECK:STDOUT: %SizePreserving: %u32 = wrapper_binding SizePreserving, %.loc6_42.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %Narrowing.patt: %pattern_type.203 = value_binding_pattern Narrowing [concrete = constants.%Narrowing.patt]
// CHECK:STDOUT: %SizePreserving.patt: %pattern_type.668 = value_binding_pattern SizePreserving [concrete = constants.%SizePreserving.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_36.1: %i16 = value_of_initializer @__global_init.%Int32ToInt16.call [concrete = constants.%int_1.d17]
// CHECK:STDOUT: %.loc7_36.2: %i16 = converted @__global_init.%Int32ToInt16.call, %.loc7_36.1 [concrete = constants.%int_1.d17]
// CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16]
// CHECK:STDOUT: %Narrowing: %i16 = wrapper_binding Narrowing, %.loc7_36.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %Widening.patt: %pattern_type.f57 = value_binding_pattern Widening [concrete = constants.%Widening.patt]
// CHECK:STDOUT: %Narrowing.patt: %pattern_type.203 = value_binding_pattern Narrowing [concrete = constants.%Narrowing.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc8_35.1: %i64 = value_of_initializer @__global_init.%Int32ToInt64.call [concrete = constants.%int_1.d98]
// CHECK:STDOUT: %.loc8_35.2: %i64 = converted @__global_init.%Int32ToInt64.call, %.loc8_35.1 [concrete = constants.%int_1.d98]
// CHECK:STDOUT: %i64: type = type_literal constants.%i64 [concrete = constants.%i64]
// CHECK:STDOUT: %Widening: %i64 = wrapper_binding Widening, %.loc8_35.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %Widening.patt: %pattern_type.f57 = value_binding_pattern Widening [concrete = constants.%Widening.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+5 -5
View File
@@ -84,13 +84,13 @@ let invalid: f64 = ConvertIntLiteralToFloatLiteral(-1) as f64;
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %overflow.patt: %pattern_type.fb7 = value_binding_pattern overflow [concrete = constants.%overflow.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc9_354.1: %f64.dc1 = value_of_initializer @__global_init.%ConvertIntLiteralToF64.call [concrete = <error>]
// CHECK:STDOUT: %.loc9_354.2: %f64.dc1 = converted @__global_init.%ConvertIntLiteralToF64.call, %.loc9_354.1 [concrete = <error>]
// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %overflow: %f64.dc1 = wrapper_binding overflow, %.loc9_354.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %overflow.patt: %pattern_type.fb7 = value_binding_pattern overflow [concrete = constants.%overflow.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -143,11 +143,11 @@ let invalid: f64 = ConvertIntLiteralToFloatLiteral(-1) as f64;
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %invalid: %f64.dc1 = wrapper_binding invalid, @__global_init.%.loc9_56.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %invalid.patt: %pattern_type.fb7 = value_binding_pattern invalid [concrete = constants.%invalid.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1]
// CHECK:STDOUT: %invalid: %f64.dc1 = wrapper_binding invalid, @__global_init.%.loc9_56.2 [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -60,13 +60,13 @@ let lossy: f32 = ConvertIntLiteralToF32(123456789);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %lossy.patt: %pattern_type.240 = value_binding_pattern lossy [concrete = constants.%lossy.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc9_50.1: %f32.c73 = value_of_initializer @__global_init.%ConvertIntLiteralToF32.call [concrete = <error>]
// CHECK:STDOUT: %.loc9_50.2: %f32.c73 = converted @__global_init.%ConvertIntLiteralToF32.call, %.loc9_50.1 [concrete = <error>]
// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73]
// CHECK:STDOUT: %lossy: %f32.c73 = wrapper_binding lossy, %.loc9_50.2 [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %lossy.patt: %pattern_type.240 = value_binding_pattern lossy [concrete = constants.%lossy.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -117,19 +117,19 @@ fn ColonBangParam(T:! type) -> type = "maybe_unformed.make_type";
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %t.patt: %pattern_type = value_binding_pattern t [concrete = constants.%t.patt.10b]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc7_16: type = converted @__global_init.%.loc7, constants.%empty_struct_type [concrete = constants.%empty_struct_type]
// CHECK:STDOUT: %.loc7_8: type = type_literal type [concrete = type]
// CHECK:STDOUT: %t: type = wrapper_binding t, %.loc7_16
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %u.patt: %pattern_type = value_binding_pattern u [concrete = constants.%u.patt]
// CHECK:STDOUT: %t.patt: %pattern_type = value_binding_pattern t [concrete = constants.%t.patt.10b]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc8_21.1: type = value_of_initializer @__global_init.%Make.call
// CHECK:STDOUT: %.loc8_21.2: type = converted @__global_init.%Make.call, %.loc8_21.1
// CHECK:STDOUT: %.loc8_8: type = type_literal type [concrete = type]
// CHECK:STDOUT: %u: type = wrapper_binding u, %.loc8_21.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %u.patt: %pattern_type = value_binding_pattern u [concrete = constants.%u.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+4 -4
View File
@@ -130,16 +130,16 @@ fn NoOp() -> {} = "no_op";
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x.var: ref %empty_tuple.type = var_storage %x.var_patt [concrete]
// CHECK:STDOUT: %.loc7_9.1: type = splice_block %.loc7_9.3 [concrete = constants.%empty_tuple.type] {
// CHECK:STDOUT: %.loc7_9.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc7_9.3: type = converted %.loc7_9.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x: ref %empty_tuple.type = wrapper_binding x, %x.var [concrete = %x.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+8 -8
View File
@@ -86,9 +86,6 @@ fn NotPointer() -> MakeUnformed({}) = "pointer.make_null";
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = value_binding_pattern s [concrete = constants.%s.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc11_48.1: %.b2d = value_of_initializer @__global_init.%MakeNullEmptyStruct.call
// CHECK:STDOUT: %.loc11_48.2: %.b2d = converted @__global_init.%MakeNullEmptyStruct.call, %.loc11_48.1
// CHECK:STDOUT: %.loc11_24.1: type = splice_block %.loc11_24.3 [concrete = constants.%.b2d] {
@@ -102,7 +99,7 @@ fn NotPointer() -> MakeUnformed({}) = "pointer.make_null";
// CHECK:STDOUT: }
// CHECK:STDOUT: %s: %.b2d = wrapper_binding s, %.loc11_48.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.e22 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = value_binding_pattern s [concrete = constants.%s.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc12_37.1: %.9e8 = value_of_initializer @__global_init.%MakeNullC.call
// CHECK:STDOUT: %.loc12_37.2: %.9e8 = converted @__global_init.%MakeNullC.call, %.loc12_37.1
@@ -115,6 +112,9 @@ fn NotPointer() -> MakeUnformed({}) = "pointer.make_null";
// CHECK:STDOUT: %.loc12_23.3: type = converted %MakeUnformed.call.loc12, %.loc12_23.2 [concrete = constants.%.9e8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: %.9e8 = wrapper_binding c, %.loc12_37.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.e22 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -149,9 +149,6 @@ fn NotPointer() -> MakeUnformed({}) = "pointer.make_null";
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = value_binding_pattern s [concrete = constants.%s.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc10_39.1: %.b2d = value_of_initializer @__global_init.%MakeNull.call.loc10
// CHECK:STDOUT: %.loc10_39.2: %.b2d = converted @__global_init.%MakeNull.call.loc10, %.loc10_39.1
// CHECK:STDOUT: %.loc10_24.1: type = splice_block %.loc10_24.3 [concrete = constants.%.b2d] {
@@ -165,7 +162,7 @@ fn NotPointer() -> MakeUnformed({}) = "pointer.make_null";
// CHECK:STDOUT: }
// CHECK:STDOUT: %s: %.b2d = wrapper_binding s, %.loc10_39.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.e22 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = value_binding_pattern s [concrete = constants.%s.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc11_37.1: %.9e8 = value_of_initializer @__global_init.%MakeNull.call.loc11
// CHECK:STDOUT: %.loc11_37.2: %.9e8 = converted @__global_init.%MakeNull.call.loc11, %.loc11_37.1
@@ -178,6 +175,9 @@ fn NotPointer() -> MakeUnformed({}) = "pointer.make_null";
// CHECK:STDOUT: %.loc11_23.3: type = converted %MakeUnformed.call.loc11, %.loc11_23.2 [concrete = constants.%.9e8]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: %.9e8 = wrapper_binding c, %.loc11_37.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.e22 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+4 -4
View File
@@ -53,9 +53,6 @@ fn Main() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Main() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete = constants.%n.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ReadChar.ref.loc8: %ReadChar.type.fc4 = name_ref ReadChar, file.%ReadChar.decl [concrete = constants.%ReadChar.c25]
// CHECK:STDOUT: %ReadChar.call.loc8: init %i32 = call %ReadChar.ref.loc8()
// CHECK:STDOUT: %.loc8_32.1: %i32 = value_of_initializer %ReadChar.call.loc8
@@ -63,7 +60,7 @@ fn Main() {
// CHECK:STDOUT: %i32.loc8: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %n: %i32 = wrapper_binding n, %.loc8_32.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = value_binding_pattern m [concrete = constants.%m.patt]
// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete = constants.%n.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.ref: <namespace> = name_ref Core, imports.%Core [concrete = imports.%Core]
// CHECK:STDOUT: %ReadChar.ref.loc9: %ReadChar.type.490 = name_ref ReadChar, imports.%Core.ReadChar [concrete = constants.%ReadChar.3b5]
@@ -72,6 +69,9 @@ fn Main() {
// CHECK:STDOUT: %.loc9_37.2: %i32 = converted %ReadChar.call.loc9, %.loc9_37.1
// CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %m: %i32 = wrapper_binding m, %.loc9_37.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = value_binding_pattern m [concrete = constants.%m.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
// CHECK:STDOUT:
+8 -8
View File
@@ -95,11 +95,11 @@ let never: Never = {};
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %Always.decl: type = class_decl @Always [concrete = constants.%Always] {} {}
// CHECK:STDOUT: %Always.ref: type = name_ref Always, %Always.decl [concrete = constants.%Always]
// CHECK:STDOUT: %mood: %Always = wrapper_binding mood, @__global_init.%Sunny.ref
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %mood.patt: %pattern_type = value_binding_pattern mood [concrete = constants.%mood.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Always.ref: type = name_ref Always, %Always.decl [concrete = constants.%Always]
// CHECK:STDOUT: %mood: %Always = wrapper_binding mood, @__global_init.%Sunny.ref
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @Always {
@@ -213,26 +213,26 @@ let never: Never = {};
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %Ordering.decl: type = class_decl @Ordering [concrete = constants.%Ordering] {} {}
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %less.patt: %pattern_type.542 = value_binding_pattern less [concrete = constants.%less.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Ordering.ref.loc11: type = name_ref Ordering, %Ordering.decl [concrete = constants.%Ordering]
// CHECK:STDOUT: %less: %Ordering = wrapper_binding less, @__global_init.%Less.ref
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %equiv.patt: %pattern_type.542 = value_binding_pattern equiv [concrete = constants.%equiv.patt]
// CHECK:STDOUT: %less.patt: %pattern_type.542 = value_binding_pattern less [concrete = constants.%less.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Ordering.ref.loc12: type = name_ref Ordering, %Ordering.decl [concrete = constants.%Ordering]
// CHECK:STDOUT: %equiv: %Ordering = wrapper_binding equiv, @__global_init.%Equivalent.ref
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %greater.patt: %pattern_type.542 = value_binding_pattern greater [concrete = constants.%greater.patt]
// CHECK:STDOUT: %equiv.patt: %pattern_type.542 = value_binding_pattern equiv [concrete = constants.%equiv.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Ordering.ref.loc13: type = name_ref Ordering, %Ordering.decl [concrete = constants.%Ordering]
// CHECK:STDOUT: %greater: %Ordering = wrapper_binding greater, @__global_init.%Greater.ref
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %inc.patt: %pattern_type.542 = value_binding_pattern inc [concrete = constants.%inc.patt]
// CHECK:STDOUT: %greater.patt: %pattern_type.542 = value_binding_pattern greater [concrete = constants.%greater.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Ordering.ref.loc14: type = name_ref Ordering, %Ordering.decl [concrete = constants.%Ordering]
// CHECK:STDOUT: %inc: %Ordering = wrapper_binding inc, @__global_init.%Incomparable.ref
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %inc.patt: %pattern_type.542 = value_binding_pattern inc [concrete = constants.%inc.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @Ordering {
+13 -13
View File
@@ -326,14 +326,14 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Var() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: <error> = ref_binding_pattern v [concrete = <error>]
// CHECK:STDOUT: %v.var_patt: <error> = var_pattern %v.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref <error> = var_storage %v.var_patt [concrete = <error>]
// CHECK:STDOUT: assign %v.var, <error>
// CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
// CHECK:STDOUT: %v: <error> = wrapper_binding v, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: <error> = ref_binding_pattern v [concrete = <error>]
// CHECK:STDOUT: %v.var_patt: <error> = var_pattern %v.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -434,12 +434,12 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F(%a.param: %Abstract) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %l.patt: %pattern_type = value_binding_pattern l [concrete = constants.%l.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.ref: %Abstract = name_ref a, %a
// CHECK:STDOUT: %Abstract.ref.loc7: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
// CHECK:STDOUT: %l: %Abstract = wrapper_binding l, %a.ref
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %l.patt: %pattern_type = value_binding_pattern l [concrete = constants.%l.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -914,9 +914,6 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %l.patt: %pattern_type.169 = value_binding_pattern l [concrete = constants.%l.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc15_29.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc15_29.2: ref %Abstract = temporary_storage
// CHECK:STDOUT: %.loc15_29.3: init %Abstract to %.loc15_29.2 = class_init () [concrete = constants.%Abstract.val]
@@ -925,6 +922,9 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: %.loc15_29.6: %Abstract = acquire_value %.loc15_29.5 [concrete = constants.%Abstract.val]
// CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
// CHECK:STDOUT: %l: %Abstract = wrapper_binding l, %.loc15_29.6
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %l.patt: %pattern_type.169 = value_binding_pattern l [concrete = constants.%l.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -1000,9 +1000,6 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %l.patt: %pattern_type.169 = value_binding_pattern l [concrete = constants.%l.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc17_38.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct.a40]
// CHECK:STDOUT: %.loc17_39.1: %struct_type.base.f5e = struct_literal (%.loc17_38.1) [concrete = constants.%struct]
// CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived]
@@ -1020,6 +1017,9 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: %.loc17_41.6: %Abstract = acquire_value %.loc17_41.5
// CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
// CHECK:STDOUT: %l: %Abstract = wrapper_binding l, %.loc17_41.6
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %l.patt: %pattern_type.169 = value_binding_pattern l [concrete = constants.%l.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -167,16 +167,16 @@ var v5: {.m: Abstract};
// CHECK:STDOUT: .v = %v
// CHECK:STDOUT: }
// CHECK:STDOUT: %Abstract2.decl: type = class_decl @Abstract2 [concrete = constants.%Abstract2] {} {}
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: <error> = ref_binding_pattern v [concrete = <error>]
// CHECK:STDOUT: %v.var_patt: <error> = var_pattern %v.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref <error> = var_storage %v.var_patt [concrete = <error>]
// CHECK:STDOUT: %.loc12: type = splice_block %struct_type.m2 [concrete = constants.%struct_type.m2.bb3] {
// CHECK:STDOUT: %Abstract2.ref: type = name_ref Abstract2, %Abstract2.decl [concrete = constants.%Abstract2]
// CHECK:STDOUT: %struct_type.m2: type = struct_type {.m2: %Abstract2} [concrete = constants.%struct_type.m2.bb3]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: <error> = wrapper_binding v, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: <error> = ref_binding_pattern v [concrete = <error>]
// CHECK:STDOUT: %v.var_patt: <error> = var_pattern %v.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @Abstract2 {
@@ -235,9 +235,6 @@ var v5: {.m: Abstract};
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F(%a.param: %Abstract3) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %l.patt: %pattern_type.2be = value_binding_pattern l [concrete = constants.%l.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.ref: %Abstract3 = name_ref a, %a
// CHECK:STDOUT: %.loc7_44.1: %struct_type.m3.937 = struct_literal (%a.ref)
// CHECK:STDOUT: %struct: %struct_type.m3.937 = struct_value (%a.ref)
@@ -247,6 +244,9 @@ var v5: {.m: Abstract};
// CHECK:STDOUT: %struct_type.m3: type = struct_type {.m3: %Abstract3} [concrete = constants.%struct_type.m3.937]
// CHECK:STDOUT: }
// CHECK:STDOUT: %l: %struct_type.m3.937 = wrapper_binding l, %.loc7_44.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %l.patt: %pattern_type.2be = value_binding_pattern l [concrete = constants.%l.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -268,10 +268,6 @@ var v5: {.m: Abstract};
// CHECK:STDOUT: }
// CHECK:STDOUT: %Abstract4.decl: type = class_decl @Abstract4 [concrete = constants.%Abstract4] {} {}
// CHECK:STDOUT: %Abstract5.decl: type = class_decl @Abstract5 [concrete = constants.%Abstract5] {} {}
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v2.patt: <error> = ref_binding_pattern v2 [concrete = <error>]
// CHECK:STDOUT: %v2.var_patt: <error> = var_pattern %v2.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v2.var: ref <error> = var_storage %v2.var_patt [concrete = <error>]
// CHECK:STDOUT: %.loc13: type = splice_block %struct_type.m4.m5 [concrete = constants.%struct_type.m4.m5.5e1] {
// CHECK:STDOUT: %Abstract4.ref: type = name_ref Abstract4, %Abstract4.decl [concrete = constants.%Abstract4]
@@ -279,6 +275,10 @@ var v5: {.m: Abstract};
// CHECK:STDOUT: %struct_type.m4.m5: type = struct_type {.m4: %Abstract4, .m5: %Abstract5} [concrete = constants.%struct_type.m4.m5.5e1]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v2: <error> = wrapper_binding v2, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v2.patt: <error> = ref_binding_pattern v2 [concrete = <error>]
// CHECK:STDOUT: %v2.var_patt: <error> = var_pattern %v2.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @Abstract4 {
@@ -320,10 +320,6 @@ var v5: {.m: Abstract};
// CHECK:STDOUT: .v3 = %v3
// CHECK:STDOUT: }
// CHECK:STDOUT: %Abstract6.decl: type = class_decl @Abstract6 [concrete = constants.%Abstract6] {} {}
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v3.patt: <error> = ref_binding_pattern v3 [concrete = <error>]
// CHECK:STDOUT: %v3.var_patt: <error> = var_pattern %v3.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v3.var: ref <error> = var_storage %v3.var_patt [concrete = <error>]
// CHECK:STDOUT: %.loc12_33: type = splice_block %struct_type.m6.c1 [concrete = constants.%struct_type.m6.c1.a63] {
// CHECK:STDOUT: %Abstract6.ref: type = name_ref Abstract6, %Abstract6.decl [concrete = constants.%Abstract6]
@@ -332,6 +328,10 @@ var v5: {.m: Abstract};
// CHECK:STDOUT: %struct_type.m6.c1: type = struct_type {.m6: %Abstract6, .c1: %empty_tuple.type} [concrete = constants.%struct_type.m6.c1.a63]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v3: <error> = wrapper_binding v3, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v3.patt: <error> = ref_binding_pattern v3 [concrete = <error>]
// CHECK:STDOUT: %v3.var_patt: <error> = var_pattern %v3.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @Abstract6 {
@@ -365,10 +365,6 @@ var v5: {.m: Abstract};
// CHECK:STDOUT: .v4 = %v4
// CHECK:STDOUT: }
// CHECK:STDOUT: %Abstract7.decl: type = class_decl @Abstract7 [concrete = constants.%Abstract7] {} {}
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v4.patt: <error> = ref_binding_pattern v4 [concrete = <error>]
// CHECK:STDOUT: %v4.var_patt: <error> = var_pattern %v4.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v4.var: ref <error> = var_storage %v4.var_patt [concrete = <error>]
// CHECK:STDOUT: %.loc12_33: type = splice_block %struct_type.c2.m7 [concrete = constants.%struct_type.c2.m7.518] {
// CHECK:STDOUT: %.loc12_16.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
@@ -377,6 +373,10 @@ var v5: {.m: Abstract};
// CHECK:STDOUT: %struct_type.c2.m7: type = struct_type {.c2: %empty_tuple.type, .m7: %Abstract7} [concrete = constants.%struct_type.c2.m7.518]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v4: <error> = wrapper_binding v4, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v4.patt: <error> = ref_binding_pattern v4 [concrete = <error>]
// CHECK:STDOUT: %v4.var_patt: <error> = var_pattern %v4.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @Abstract7 {
@@ -437,16 +437,16 @@ var v5: {.m: Abstract};
// CHECK:STDOUT: .v5 = %v5
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v5.patt: <error> = ref_binding_pattern v5 [concrete = <error>]
// CHECK:STDOUT: %v5.var_patt: <error> = var_pattern %v5.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v5.var: ref <error> = var_storage %v5.var_patt [concrete = <error>]
// CHECK:STDOUT: %.loc13: type = splice_block %struct_type.m [concrete = constants.%struct_type.m.b92] {
// CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, imports.%Main.Abstract [concrete = constants.%Abstract]
// CHECK:STDOUT: %struct_type.m: type = struct_type {.m: %Abstract} [concrete = constants.%struct_type.m.b92]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v5: <error> = wrapper_binding v5, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v5.patt: <error> = ref_binding_pattern v5 [concrete = <error>]
// CHECK:STDOUT: %v5.var_patt: <error> = var_pattern %v5.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @Abstract [from "lib.carbon"] {
@@ -215,10 +215,6 @@ fn Var5() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Var() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: <error> = ref_binding_pattern v [concrete = <error>]
// CHECK:STDOUT: %v.var_patt: <error> = var_pattern %v.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref <error> = var_storage %v.var_patt [concrete = <error>]
// CHECK:STDOUT: assign %v.var, <error>
// CHECK:STDOUT: %.loc13_28.1: type = splice_block %.loc13_28.3 [concrete = constants.%tuple.type.ea9] {
@@ -227,6 +223,10 @@ fn Var5() {
// CHECK:STDOUT: %.loc13_28.3: type = converted %.loc13_28.2, constants.%tuple.type.ea9 [concrete = constants.%tuple.type.ea9]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: <error> = wrapper_binding v, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: <error> = ref_binding_pattern v [concrete = <error>]
// CHECK:STDOUT: %v.var_patt: <error> = var_pattern %v.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -283,9 +283,6 @@ fn Var5() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F(%a.param: %Abstract3) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %l.patt: %pattern_type.ac0 = value_binding_pattern l [concrete = constants.%l.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.ref: %Abstract3 = name_ref a, %a
// CHECK:STDOUT: %.loc7_35.1: %tuple.type.4cc = tuple_literal (%a.ref)
// CHECK:STDOUT: %tuple: %tuple.type.4cc = tuple_value (%a.ref)
@@ -296,6 +293,9 @@ fn Var5() {
// CHECK:STDOUT: %.loc7_28.3: type = converted %.loc7_28.2, constants.%tuple.type.4cc [concrete = constants.%tuple.type.4cc]
// CHECK:STDOUT: }
// CHECK:STDOUT: %l: %tuple.type.4cc = wrapper_binding l, %.loc7_35.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %l.patt: %pattern_type.ac0 = value_binding_pattern l [concrete = constants.%l.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -354,10 +354,6 @@ fn Var5() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Var2() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v2.patt: <error> = ref_binding_pattern v2 [concrete = <error>]
// CHECK:STDOUT: %v2.var_patt: <error> = var_pattern %v2.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v2.var: ref <error> = var_storage %v2.var_patt [concrete = <error>]
// CHECK:STDOUT: assign %v2.var, <error>
// CHECK:STDOUT: %.loc14_39.1: type = splice_block %.loc14_39.3 [concrete = constants.%tuple.type.417] {
@@ -367,6 +363,10 @@ fn Var5() {
// CHECK:STDOUT: %.loc14_39.3: type = converted %.loc14_39.2, constants.%tuple.type.417 [concrete = constants.%tuple.type.417]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v2: <error> = wrapper_binding v2, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v2.patt: <error> = ref_binding_pattern v2 [concrete = <error>]
// CHECK:STDOUT: %v2.var_patt: <error> = var_pattern %v2.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -415,10 +415,6 @@ fn Var5() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Var3() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v3.patt: <error> = ref_binding_pattern v3 [concrete = <error>]
// CHECK:STDOUT: %v3.var_patt: <error> = var_pattern %v3.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v3.var: ref <error> = var_storage %v3.var_patt [concrete = <error>]
// CHECK:STDOUT: assign %v3.var, <error>
// CHECK:STDOUT: %.loc13_32.1: type = splice_block %.loc13_32.4 [concrete = constants.%tuple.type.427] {
@@ -429,6 +425,10 @@ fn Var5() {
// CHECK:STDOUT: %.loc13_32.4: type = converted %.loc13_32.2, constants.%tuple.type.427 [concrete = constants.%tuple.type.427]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v3: <error> = wrapper_binding v3, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v3.patt: <error> = ref_binding_pattern v3 [concrete = <error>]
// CHECK:STDOUT: %v3.var_patt: <error> = var_pattern %v3.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -477,10 +477,6 @@ fn Var5() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Var4() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v4.patt: <error> = ref_binding_pattern v4 [concrete = <error>]
// CHECK:STDOUT: %v4.var_patt: <error> = var_pattern %v4.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v4.var: ref <error> = var_storage %v4.var_patt [concrete = <error>]
// CHECK:STDOUT: assign %v4.var, <error>
// CHECK:STDOUT: %.loc13_32.1: type = splice_block %.loc13_32.4 [concrete = constants.%tuple.type.9db] {
@@ -491,6 +487,10 @@ fn Var5() {
// CHECK:STDOUT: %.loc13_32.4: type = converted %.loc13_32.2, constants.%tuple.type.9db [concrete = constants.%tuple.type.9db]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v4: <error> = wrapper_binding v4, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v4.patt: <error> = ref_binding_pattern v4 [concrete = <error>]
// CHECK:STDOUT: %v4.var_patt: <error> = var_pattern %v4.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -572,10 +572,6 @@ fn Var5() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Var5() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v5.patt: <error> = ref_binding_pattern v5 [concrete = <error>]
// CHECK:STDOUT: %v5.var_patt: <error> = var_pattern %v5.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v5.var: ref <error> = var_storage %v5.var_patt [concrete = <error>]
// CHECK:STDOUT: assign %v5.var, <error>
// CHECK:STDOUT: %.loc14_28.1: type = splice_block %.loc14_28.3 [concrete = constants.%tuple.type.763] {
@@ -584,6 +580,10 @@ fn Var5() {
// CHECK:STDOUT: %.loc14_28.3: type = converted %.loc14_28.2, constants.%tuple.type.763 [concrete = constants.%tuple.type.763]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v5: <error> = wrapper_binding v5, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v5.patt: <error> = ref_binding_pattern v5 [concrete = <error>]
// CHECK:STDOUT: %v5.var_patt: <error> = var_pattern %v5.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
+23 -23
View File
@@ -237,9 +237,6 @@ class A {
// CHECK:STDOUT:
// CHECK:STDOUT: class @Circle {
// CHECK:STDOUT: %.loc5: %Circle.elem = field_decl radius, element0 [concrete]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %SOME_INTERNAL_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_INTERNAL_CONSTANT [concrete = constants.%SOME_INTERNAL_CONSTANT.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b]
// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
// CHECK:STDOUT: %bound_method.loc6_45.1: <bound method> = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c]
@@ -250,6 +247,9 @@ class A {
// CHECK:STDOUT: %.loc6_45.2: %i32 = converted %int_5, %.loc6_45.1 [concrete = constants.%int_5.eef]
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %SOME_INTERNAL_CONSTANT: %i32 = wrapper_binding SOME_INTERNAL_CONSTANT, %.loc6_45.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %SOME_INTERNAL_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_INTERNAL_CONSTANT [concrete = constants.%SOME_INTERNAL_CONSTANT.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Circle.SomeInternalFunction.decl: %Circle.SomeInternalFunction.type = fn_decl @Circle.SomeInternalFunction [concrete = constants.%Circle.SomeInternalFunction] {
// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete = constants.%return.param_patt.a9a]
// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete = constants.%return.patt.e1b]
@@ -310,9 +310,6 @@ class A {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Run() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %circle.patt: %pattern_type.f70 = value_binding_pattern circle [concrete = constants.%circle.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Circle.ref.loc18_24: type = name_ref Circle, file.%Circle.decl [concrete = constants.%Circle]
// CHECK:STDOUT: %Make.ref: %Circle.Make.type = name_ref Make, @Circle.%Circle.Make.decl [concrete = constants.%Circle.Make]
// CHECK:STDOUT: %.loc18_36.1: ref %Circle = temporary_storage
@@ -322,12 +319,15 @@ class A {
// CHECK:STDOUT: %Circle.ref.loc18_15: type = name_ref Circle, file.%Circle.decl [concrete = constants.%Circle]
// CHECK:STDOUT: %circle: %Circle = wrapper_binding circle, %.loc18_36.3
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %radius.patt: %pattern_type.6b6 = value_binding_pattern radius [concrete = constants.%radius.patt.a1f]
// CHECK:STDOUT: %circle.patt: %pattern_type.f70 = value_binding_pattern circle [concrete = constants.%circle.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %circle.ref.loc26: %Circle = name_ref circle, %circle
// CHECK:STDOUT: %radius.ref.loc26: <error> = name_ref radius, <error> [concrete = <error>]
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %radius: %i32 = wrapper_binding radius, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %radius.patt: %pattern_type.6b6 = value_binding_pattern radius [concrete = constants.%radius.patt.a1f]
// CHECK:STDOUT: }
// CHECK:STDOUT: %circle.ref.loc34: %Circle = name_ref circle, %circle
// CHECK:STDOUT: %radius.ref.loc34: <error> = name_ref radius, <error> [concrete = <error>]
// CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b]
@@ -407,13 +407,13 @@ class A {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Run() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete = constants.%x.patt.939]
// CHECK:STDOUT: }
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %x.ref: <error> = name_ref x, <error> [concrete = <error>]
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %x: %i32 = wrapper_binding x, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete = constants.%x.patt.939]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -634,17 +634,14 @@ class A {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {}
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %x: %i32 = wrapper_binding x, @__global_init.%x.ref
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete = constants.%x.patt.d88]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %x: %i32 = wrapper_binding x, @__global_init.%x.ref
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @A {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete = constants.%x.patt.86b]
// CHECK:STDOUT: }
// CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b]
// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
// CHECK:STDOUT: %bound_method.loc5_16.1: <bound method> = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound]
@@ -655,6 +652,9 @@ class A {
// CHECK:STDOUT: %.loc5_16.2: %i32 = converted %int_5, %.loc5_16.1 [concrete = constants.%int_5.eef]
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %x: %i32 = wrapper_binding x, %.loc5_16.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete = constants.%x.patt.86b]
// CHECK:STDOUT: }
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357]
// CHECK:STDOUT: complete_type_witness = %complete_type
// CHECK:STDOUT:
@@ -726,22 +726,19 @@ class A {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {}
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete = constants.%x.patt.d88]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %x: %i32 = wrapper_binding x, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = value_binding_pattern y [concrete = constants.%y.patt.f4d]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete = constants.%x.patt.d88]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %y: %i32 = wrapper_binding y, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = value_binding_pattern y [concrete = constants.%y.patt.f4d]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @A {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete = constants.%x.patt.86b]
// CHECK:STDOUT: }
// CHECK:STDOUT: %int_5.loc5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b]
// CHECK:STDOUT: %impl.elem0.loc5: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
// CHECK:STDOUT: %bound_method.loc5_26.1: <bound method> = bound_method %int_5.loc5, %impl.elem0.loc5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound]
@@ -753,7 +750,7 @@ class A {
// CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %x: %i32 = wrapper_binding x, %.loc5_26.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = value_binding_pattern y [concrete = constants.%y.patt.e0b]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete = constants.%x.patt.86b]
// CHECK:STDOUT: }
// CHECK:STDOUT: %int_5.loc6: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b]
// CHECK:STDOUT: %impl.elem0.loc6: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
@@ -765,6 +762,9 @@ class A {
// CHECK:STDOUT: %.loc6_24.2: %i32 = converted %int_5.loc6, %.loc6_24.1 [concrete = constants.%int_5.eef]
// CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %y: %i32 = wrapper_binding y, %.loc6_24.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = value_binding_pattern y [concrete = constants.%y.patt.e0b]
// CHECK:STDOUT: }
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357]
// CHECK:STDOUT: complete_type_witness = %complete_type
// CHECK:STDOUT:
+20 -20
View File
@@ -228,13 +228,13 @@ private class Redecl {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %Test.import = import Test
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %c.var: ref %Def = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %Def.ref: type = name_ref Def, imports.%Test.Def [concrete = constants.%Def]
// CHECK:STDOUT: %c: ref %Def = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %Def = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %Def.ref: type = name_ref Def, imports.%Test.Def [concrete = constants.%Def]
// CHECK:STDOUT: %c: ref %Def = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @Def [from "def.carbon"] {
@@ -266,13 +266,13 @@ private class Redecl {}
// CHECK:STDOUT: .c = %c
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %c.var: ref <error> = var_storage %c.var_patt [concrete = <error>]
// CHECK:STDOUT: %Def.ref: <error> = name_ref Def, <error> [concrete = <error>]
// CHECK:STDOUT: %c: <error> = wrapper_binding c, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: <error> = ref_binding_pattern c [concrete = <error>]
// CHECK:STDOUT: %c.var_patt: <error> = var_pattern %c.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref <error> = var_storage %c.var_patt [concrete = <error>]
// CHECK:STDOUT: %Def.ref: <error> = name_ref Def, <error> [concrete = <error>]
// CHECK:STDOUT: %c: <error> = wrapper_binding c, <error> [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -302,16 +302,16 @@ private class Redecl {}
// CHECK:STDOUT: .c = %c
// CHECK:STDOUT: }
// CHECK:STDOUT: %Test.import = import Test
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: <error> = ref_binding_pattern c [concrete = <error>]
// CHECK:STDOUT: %c.var_patt: <error> = var_pattern %c.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref <error> = var_storage %c.var_patt [concrete = <error>]
// CHECK:STDOUT: %.1: <error> = splice_block <error> [concrete = <error>] {
// CHECK:STDOUT: %Test.ref: <namespace> = name_ref Test, imports.%Test [concrete = imports.%Test]
// CHECK:STDOUT: %Def.ref: <error> = name_ref Def, <error> [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: <error> = wrapper_binding c, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: <error> = ref_binding_pattern c [concrete = <error>]
// CHECK:STDOUT: %c.var_patt: <error> = var_pattern %c.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -347,13 +347,13 @@ private class Redecl {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %Test.import = import Test
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %c.var: ref %ForwardWithDef = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %ForwardWithDef.ref: type = name_ref ForwardWithDef, imports.%Test.ForwardWithDef [concrete = constants.%ForwardWithDef]
// CHECK:STDOUT: %c: ref %ForwardWithDef = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %ForwardWithDef = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %ForwardWithDef.ref: type = name_ref ForwardWithDef, imports.%Test.ForwardWithDef [concrete = constants.%ForwardWithDef]
// CHECK:STDOUT: %c: ref %ForwardWithDef = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @ForwardWithDef [from "forward_with_def.carbon"] {
@@ -385,13 +385,13 @@ private class Redecl {}
// CHECK:STDOUT: .c = %c
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %c.var: ref <error> = var_storage %c.var_patt [concrete = <error>]
// CHECK:STDOUT: %ForwardWithDef.ref: <error> = name_ref ForwardWithDef, <error> [concrete = <error>]
// CHECK:STDOUT: %c: <error> = wrapper_binding c, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: <error> = ref_binding_pattern c [concrete = <error>]
// CHECK:STDOUT: %c.var_patt: <error> = var_pattern %c.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref <error> = var_storage %c.var_patt [concrete = <error>]
// CHECK:STDOUT: %ForwardWithDef.ref: <error> = name_ref ForwardWithDef, <error> [concrete = <error>]
// CHECK:STDOUT: %c: <error> = wrapper_binding c, <error> [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -421,16 +421,16 @@ private class Redecl {}
// CHECK:STDOUT: .c = %c
// CHECK:STDOUT: }
// CHECK:STDOUT: %Test.import = import Test
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: <error> = ref_binding_pattern c [concrete = <error>]
// CHECK:STDOUT: %c.var_patt: <error> = var_pattern %c.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref <error> = var_storage %c.var_patt [concrete = <error>]
// CHECK:STDOUT: %.1: <error> = splice_block <error> [concrete = <error>] {
// CHECK:STDOUT: %Test.ref: <namespace> = name_ref Test, imports.%Test [concrete = imports.%Test]
// CHECK:STDOUT: %ForwardWithDef.ref: <error> = name_ref ForwardWithDef, <error> [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: <error> = wrapper_binding c, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: <error> = ref_binding_pattern c [concrete = <error>]
// CHECK:STDOUT: %c.var_patt: <error> = var_pattern %c.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -649,9 +649,6 @@ class B {
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @A {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %SOME_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_CONSTANT [concrete = constants.%SOME_CONSTANT.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b]
// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
// CHECK:STDOUT: %bound_method.loc5_38.1: <bound method> = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound]
@@ -662,6 +659,9 @@ class B {
// CHECK:STDOUT: %.loc5_38.2: %i32 = converted %int_5, %.loc5_38.1 [concrete = constants.%int_5.eef]
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %SOME_CONSTANT: %i32 = wrapper_binding SOME_CONSTANT, %.loc5_38.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %SOME_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_CONSTANT [concrete = constants.%SOME_CONSTANT.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %A.SomeProtectedFunction.decl: %A.SomeProtectedFunction.type = fn_decl @A.SomeProtectedFunction [concrete = constants.%A.SomeProtectedFunction] {
// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete = constants.%return.param_patt.a9a]
// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete = constants.%return.patt.e1b]
@@ -1115,9 +1115,6 @@ class B {
// CHECK:STDOUT: class @B {
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %SOME_PRIVATE_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_PRIVATE_CONSTANT [concrete = constants.%SOME_PRIVATE_CONSTANT.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %int_86: Core.IntLiteral = int_value 86 [concrete = constants.%int_86.bd3]
// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
// CHECK:STDOUT: %bound_method.loc11_44.1: <bound method> = bound_method %int_86, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound]
@@ -1128,6 +1125,9 @@ class B {
// CHECK:STDOUT: %.loc11_44.2: %i32 = converted %int_86, %.loc11_44.1 [concrete = constants.%int_86.81c]
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %SOME_PRIVATE_CONSTANT: %i32 = wrapper_binding SOME_PRIVATE_CONSTANT, %.loc11_44.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %SOME_PRIVATE_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_PRIVATE_CONSTANT [concrete = constants.%SOME_PRIVATE_CONSTANT.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.Fb.decl: %B.Fb.type = fn_decl @B.Fb [concrete = constants.%B.Fb] {} {}
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness constants.%struct_type.base.cb7 [concrete = constants.%complete_type.d5e]
// CHECK:STDOUT: complete_type_witness = %complete_type
@@ -1349,9 +1349,6 @@ class B {
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @A {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %SOME_PROTECTED_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_PROTECTED_CONSTANT [concrete = constants.%SOME_PROTECTED_CONSTANT.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %int_5.loc5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b]
// CHECK:STDOUT: %impl.elem0.loc5: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
// CHECK:STDOUT: %bound_method.loc5_48.1: <bound method> = bound_method %int_5.loc5, %impl.elem0.loc5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound]
@@ -1363,7 +1360,7 @@ class B {
// CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %SOME_PROTECTED_CONSTANT: %i32 = wrapper_binding SOME_PROTECTED_CONSTANT, %.loc5_48.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %SOME_PRIVATE_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_PRIVATE_CONSTANT [concrete = constants.%SOME_PRIVATE_CONSTANT.patt]
// CHECK:STDOUT: %SOME_PROTECTED_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_PROTECTED_CONSTANT [concrete = constants.%SOME_PROTECTED_CONSTANT.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %int_5.loc6: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b]
// CHECK:STDOUT: %impl.elem0.loc6: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
@@ -1375,6 +1372,9 @@ class B {
// CHECK:STDOUT: %.loc6_44.2: %i32 = converted %int_5.loc6, %.loc6_44.1 [concrete = constants.%int_5.eef]
// CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %SOME_PRIVATE_CONSTANT: %i32 = wrapper_binding SOME_PRIVATE_CONSTANT, %.loc6_44.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %SOME_PRIVATE_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_PRIVATE_CONSTANT [concrete = constants.%SOME_PRIVATE_CONSTANT.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357]
// CHECK:STDOUT: complete_type_witness = %complete_type
// CHECK:STDOUT:
@@ -1385,9 +1385,6 @@ class B {
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @Internal {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %INTERNAL_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern INTERNAL_CONSTANT [concrete = constants.%INTERNAL_CONSTANT.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b]
// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
// CHECK:STDOUT: %bound_method.loc10_42.1: <bound method> = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound]
@@ -1398,6 +1395,9 @@ class B {
// CHECK:STDOUT: %.loc10_42.2: %i32 = converted %int_5, %.loc10_42.1 [concrete = constants.%int_5.eef]
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %INTERNAL_CONSTANT: %i32 = wrapper_binding INTERNAL_CONSTANT, %.loc10_42.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %INTERNAL_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern INTERNAL_CONSTANT [concrete = constants.%INTERNAL_CONSTANT.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357]
// CHECK:STDOUT: complete_type_witness = %complete_type
// CHECK:STDOUT:
+32 -32
View File
@@ -285,15 +285,15 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F(%c.param: %AdaptCopyable) -> out %return.param: %AdaptCopyable {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.3b9 = ref_binding_pattern d [concrete = constants.%d.patt.467]
// CHECK:STDOUT: %d.var_patt: %pattern_type.3b9 = var_pattern %d.patt [concrete = constants.%d.var_patt.b13]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %AdaptCopyable = var_storage %d.var_patt
// CHECK:STDOUT: %c.ref: %AdaptCopyable = name_ref c, %c
// CHECK:STDOUT: assign %d.var, <error>
// CHECK:STDOUT: %AdaptCopyable.ref.loc16: type = name_ref AdaptCopyable, file.%AdaptCopyable.decl [concrete = constants.%AdaptCopyable]
// CHECK:STDOUT: %d: ref %AdaptCopyable = wrapper_binding d, %d.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.3b9 = ref_binding_pattern d [concrete = constants.%d.patt.467]
// CHECK:STDOUT: %d.var_patt: %pattern_type.3b9 = var_pattern %d.patt [concrete = constants.%d.var_patt.b13]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.ref: ref %AdaptCopyable = name_ref d, %d
// CHECK:STDOUT: %.loc24: %AdaptCopyable = acquire_value %d.ref
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %d.var, constants.%Destroy.Op.1a2547.3
@@ -315,10 +315,6 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @InTuple(%c.param: %tuple.type.28f) -> out %return.param: %tuple.type.28f {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.c42 = ref_binding_pattern d [concrete = constants.%d.patt.e01]
// CHECK:STDOUT: %d.var_patt: %pattern_type.c42 = var_pattern %d.patt [concrete = constants.%d.var_patt.d22]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %tuple.type.28f = var_storage %d.var_patt
// CHECK:STDOUT: %c.ref: %tuple.type.28f = name_ref c, %c
// CHECK:STDOUT: %tuple.elem0.loc35: %AdaptCopyable = tuple_access %c.ref, element0
@@ -330,6 +326,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %.loc35_29.3: type = converted %.loc35_29.2, constants.%tuple.type.28f [concrete = constants.%tuple.type.28f]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d: ref %tuple.type.28f = wrapper_binding d, %d.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.c42 = ref_binding_pattern d [concrete = constants.%d.patt.e01]
// CHECK:STDOUT: %d.var_patt: %pattern_type.c42 = var_pattern %d.patt [concrete = constants.%d.var_patt.d22]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.ref: ref %tuple.type.28f = name_ref d, %d
// CHECK:STDOUT: %tuple.elem0.loc43: ref %AdaptCopyable = tuple_access %d.ref, element0
// CHECK:STDOUT: %.loc43: %AdaptCopyable = acquire_value %tuple.elem0.loc43
@@ -498,10 +498,6 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F(%c.param: %AdaptTuple) -> out %return.param: %AdaptTuple {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.ea1 = ref_binding_pattern d [concrete = constants.%d.patt.bc4]
// CHECK:STDOUT: %d.var_patt: %pattern_type.ea1 = var_pattern %d.patt [concrete = constants.%d.var_patt.69e]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %AdaptTuple = var_storage %d.var_patt
// CHECK:STDOUT: %c.ref: %AdaptTuple = name_ref c, %c
// CHECK:STDOUT: %.loc9_3.1: %tuple.type.e55 = as_compatible %c.ref
@@ -528,6 +524,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: assign %d.var, %.loc9_3.7
// CHECK:STDOUT: %AdaptTuple.ref.loc9: type = name_ref AdaptTuple, file.%AdaptTuple.decl [concrete = constants.%AdaptTuple]
// CHECK:STDOUT: %d: ref %AdaptTuple = wrapper_binding d, %d.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.ea1 = ref_binding_pattern d [concrete = constants.%d.patt.bc4]
// CHECK:STDOUT: %d.var_patt: %pattern_type.ea1 = var_pattern %d.patt [concrete = constants.%d.var_patt.69e]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.ref: ref %AdaptTuple = name_ref d, %d
// CHECK:STDOUT: %.loc10_11.1: ref %tuple.type.e55 = as_compatible %d.ref
// CHECK:STDOUT: %tuple.elem0.loc10_11.1: ref %i32 = tuple_access %.loc10_11.1, element0
@@ -576,10 +576,6 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @InTuple(%c.param: %tuple.type.e88) -> out %return.param: %tuple.type.e88 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.996 = ref_binding_pattern d [concrete = constants.%d.patt.be1]
// CHECK:STDOUT: %d.var_patt: %pattern_type.996 = var_pattern %d.patt [concrete = constants.%d.var_patt.898]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %tuple.type.e88 = var_storage %d.var_patt
// CHECK:STDOUT: %c.ref: %tuple.type.e88 = name_ref c, %c
// CHECK:STDOUT: %tuple.elem0.loc14_30.1: %AdaptTuple = tuple_access %c.ref, element0
@@ -623,6 +619,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %.loc14_26.3: type = converted %.loc14_26.2, constants.%tuple.type.e88 [concrete = constants.%tuple.type.e88]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d: ref %tuple.type.e88 = wrapper_binding d, %d.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.996 = ref_binding_pattern d [concrete = constants.%d.patt.be1]
// CHECK:STDOUT: %d.var_patt: %pattern_type.996 = var_pattern %d.patt [concrete = constants.%d.var_patt.898]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.ref: ref %tuple.type.e88 = name_ref d, %d
// CHECK:STDOUT: %tuple.elem0.loc15_10.1: ref %AdaptTuple = tuple_access %d.ref, element0
// CHECK:STDOUT: %.loc15_10.1: ref %tuple.type.e55 = as_compatible %tuple.elem0.loc15_10.1
@@ -759,15 +759,15 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G(%a.param: %AdaptNoncopyable) -> out %return.param: %AdaptNoncopyable {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.d14 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.d14 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %AdaptNoncopyable = var_storage %b.var_patt
// CHECK:STDOUT: %a.ref: %AdaptNoncopyable = name_ref a, %a
// CHECK:STDOUT: assign %b.var, <error>
// CHECK:STDOUT: %AdaptNoncopyable.ref.loc20: type = name_ref AdaptNoncopyable, file.%AdaptNoncopyable.decl [concrete = constants.%AdaptNoncopyable]
// CHECK:STDOUT: %b: ref %AdaptNoncopyable = wrapper_binding b, %b.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.d14 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.d14 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.ref: ref %AdaptNoncopyable = name_ref b, %b
// CHECK:STDOUT: %.loc28: %AdaptNoncopyable = acquire_value %b.ref
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %b.var, constants.%Destroy.Op.1a2547.3
@@ -896,10 +896,6 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @H(%a.param: %AdaptNoncopyableIndirect) -> out %return.param: %AdaptNoncopyableIndirect {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.be3 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.be3 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %AdaptNoncopyableIndirect = var_storage %b.var_patt
// CHECK:STDOUT: %a.ref: %AdaptNoncopyableIndirect = name_ref a, %a
// CHECK:STDOUT: %.loc23_3.1: %tuple.type.227 = as_compatible %a.ref
@@ -916,6 +912,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: assign %b.var, <error>
// CHECK:STDOUT: %AdaptNoncopyableIndirect.ref.loc23: type = name_ref AdaptNoncopyableIndirect, file.%AdaptNoncopyableIndirect.decl [concrete = constants.%AdaptNoncopyableIndirect]
// CHECK:STDOUT: %b: ref %AdaptNoncopyableIndirect = wrapper_binding b, %b.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.be3 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.be3 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.ref: ref %AdaptNoncopyableIndirect = name_ref b, %b
// CHECK:STDOUT: %.loc34_11.1: ref %tuple.type.227 = as_compatible %b.ref
// CHECK:STDOUT: %tuple.elem0.loc34_11.1: ref %i32 = tuple_access %.loc34_11.1, element0
@@ -1105,10 +1105,6 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @I(%g.param: %AdaptStruct) -> out %return.param: %AdaptStruct {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %h.patt: %pattern_type.27f = ref_binding_pattern h [concrete = constants.%h.patt]
// CHECK:STDOUT: %h.var_patt: %pattern_type.27f = var_pattern %h.patt [concrete = constants.%h.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %h.var: ref %AdaptStruct = var_storage %h.var_patt
// CHECK:STDOUT: %g.ref: %AdaptStruct = name_ref g, %g
// CHECK:STDOUT: %.loc9_3.1: %struct_type.e.f = as_compatible %g.ref
@@ -1135,6 +1131,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: assign %h.var, %.loc9_3.11
// CHECK:STDOUT: %AdaptStruct.ref.loc9: type = name_ref AdaptStruct, file.%AdaptStruct.decl [concrete = constants.%AdaptStruct]
// CHECK:STDOUT: %h: ref %AdaptStruct = wrapper_binding h, %h.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %h.patt: %pattern_type.27f = ref_binding_pattern h [concrete = constants.%h.patt]
// CHECK:STDOUT: %h.var_patt: %pattern_type.27f = var_pattern %h.patt [concrete = constants.%h.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %h.ref: ref %AdaptStruct = name_ref h, %h
// CHECK:STDOUT: %.loc10_11.1: ref %struct_type.e.f = as_compatible %h.ref
// CHECK:STDOUT: %.loc10_11.2: ref %i32 = struct_access %.loc10_11.1, element0
@@ -1183,10 +1183,6 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @InTuple(%c.param: %tuple.type.e00) -> out %return.param: %tuple.type.e00 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.418 = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.418 = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %tuple.type.e00 = var_storage %d.var_patt
// CHECK:STDOUT: %c.ref: %tuple.type.e00 = name_ref c, %c
// CHECK:STDOUT: %tuple.elem0.loc14_31.1: %AdaptStruct = tuple_access %c.ref, element0
@@ -1230,6 +1226,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %.loc14_27.3: type = converted %.loc14_27.2, constants.%tuple.type.e00 [concrete = constants.%tuple.type.e00]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d: ref %tuple.type.e00 = wrapper_binding d, %d.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.418 = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.418 = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.ref: ref %tuple.type.e00 = name_ref d, %d
// CHECK:STDOUT: %tuple.elem0.loc15_10.1: ref %AdaptStruct = tuple_access %d.ref, element0
// CHECK:STDOUT: %.loc15_10.1: ref %struct_type.e.f = as_compatible %tuple.elem0.loc15_10.1
+22 -22
View File
@@ -183,9 +183,6 @@ var e: C = MakeAdaptC();
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
// CHECK:STDOUT: %AdaptC.decl: type = class_decl @AdaptC [concrete = constants.%AdaptC] {} {}
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.98b = value_binding_pattern a [concrete = constants.%a.patt.c32]
// CHECK:STDOUT: }
// CHECK:STDOUT: %impl.elem0.loc13_27.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
// CHECK:STDOUT: %bound_method.loc13_27.1: <bound method> = bound_method @__global_init.%int_1, %impl.elem0.loc13_27.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094]
// CHECK:STDOUT: %specific_fn.loc13_27.1: <specific function> = specific_function %impl.elem0.loc13_27.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
@@ -210,15 +207,18 @@ var e: C = MakeAdaptC();
// CHECK:STDOUT: %C.ref.loc13: type = name_ref C, %C.decl [concrete = constants.%C]
// CHECK:STDOUT: %a: %C = wrapper_binding a, %.loc13_27.11
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.720 = value_binding_pattern b [concrete = constants.%b.patt.658]
// CHECK:STDOUT: %a.patt: %pattern_type.98b = value_binding_pattern a [concrete = constants.%a.patt.c32]
// CHECK:STDOUT: }
// CHECK:STDOUT: %AdaptC.ref.loc15: type = name_ref AdaptC, %AdaptC.decl [concrete = constants.%AdaptC]
// CHECK:STDOUT: %b: %AdaptC = wrapper_binding b, @__global_init.%.loc15_19.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.98b = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.720 = value_binding_pattern b [concrete = constants.%b.patt.658]
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.ref.loc17: type = name_ref C, %C.decl [concrete = constants.%C]
// CHECK:STDOUT: %c: %C = wrapper_binding c, @__global_init.%.loc17_14.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.98b = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %MakeC.decl: %MakeC.type = fn_decl @MakeC [concrete = constants.%MakeC] {
// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete = constants.%return.param_patt.89a]
// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref [concrete = constants.%return.patt.e4a]
@@ -237,20 +237,20 @@ var e: C = MakeAdaptC();
// CHECK:STDOUT: %return.param: ref %AdaptC = out_param call_param0
// CHECK:STDOUT: %return: ref %AdaptC = return_slot %return.param
// CHECK:STDOUT: }
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.720 = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.720 = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %AdaptC = var_storage %d.var_patt [concrete]
// CHECK:STDOUT: %AdaptC.ref.loc23: type = name_ref AdaptC, %AdaptC.decl [concrete = constants.%AdaptC]
// CHECK:STDOUT: %d: ref %AdaptC = wrapper_binding d, %d.var [concrete = %d.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %e.patt: %pattern_type.98b = ref_binding_pattern e [concrete = constants.%e.patt]
// CHECK:STDOUT: %e.var_patt: %pattern_type.98b = var_pattern %e.patt [concrete = constants.%e.var_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.720 = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.720 = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %e.var: ref %C = var_storage %e.var_patt [concrete]
// CHECK:STDOUT: %C.ref.loc25: type = name_ref C, %C.decl [concrete = constants.%C]
// CHECK:STDOUT: %e: ref %C = wrapper_binding e, %e.var [concrete = %e.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %e.patt: %pattern_type.98b = ref_binding_pattern e [concrete = constants.%e.patt]
// CHECK:STDOUT: %e.var_patt: %pattern_type.98b = var_pattern %e.patt [concrete = constants.%e.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C {
@@ -397,9 +397,6 @@ var e: C = MakeAdaptC();
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
// CHECK:STDOUT: %AdaptC.decl: type = class_decl @AdaptC [concrete = constants.%AdaptC] {} {}
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.98b = value_binding_pattern a [concrete = constants.%a.patt.c32]
// CHECK:STDOUT: }
// CHECK:STDOUT: %impl.elem0.loc13_27.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
// CHECK:STDOUT: %bound_method.loc13_27.1: <bound method> = bound_method @__global_init.%int_1, %impl.elem0.loc13_27.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094]
// CHECK:STDOUT: %specific_fn.loc13_27.1: <specific function> = specific_function %impl.elem0.loc13_27.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
@@ -424,17 +421,20 @@ var e: C = MakeAdaptC();
// CHECK:STDOUT: %C.ref.loc13: type = name_ref C, %C.decl [concrete = constants.%C]
// CHECK:STDOUT: %a: %C = wrapper_binding a, %.loc13_27.11
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.720 = value_binding_pattern b [concrete = constants.%b.patt.658]
// CHECK:STDOUT: %a.patt: %pattern_type.98b = value_binding_pattern a [concrete = constants.%a.patt.c32]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc24: %AdaptC = converted @__global_init.%a.ref, <error> [concrete = <error>]
// CHECK:STDOUT: %AdaptC.ref.loc24: type = name_ref AdaptC, %AdaptC.decl [concrete = constants.%AdaptC]
// CHECK:STDOUT: %b: %AdaptC = wrapper_binding b, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.98b = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.720 = value_binding_pattern b [concrete = constants.%b.patt.658]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc33: %C = converted @__global_init.%b.ref, <error> [concrete = <error>]
// CHECK:STDOUT: %C.ref.loc33: type = name_ref C, %C.decl [concrete = constants.%C]
// CHECK:STDOUT: %c: %C = wrapper_binding c, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.98b = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %MakeC.decl: %MakeC.type = fn_decl @MakeC [concrete = constants.%MakeC] {
// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete = constants.%return.param_patt.89a]
// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref [concrete = constants.%return.patt.e4a]
@@ -453,20 +453,20 @@ var e: C = MakeAdaptC();
// CHECK:STDOUT: %return.param: ref %AdaptC = out_param call_param0
// CHECK:STDOUT: %return: ref %AdaptC = return_slot %return.param
// CHECK:STDOUT: }
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.720 = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.720 = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %AdaptC = var_storage %d.var_patt [concrete]
// CHECK:STDOUT: %AdaptC.ref.loc46: type = name_ref AdaptC, %AdaptC.decl [concrete = constants.%AdaptC]
// CHECK:STDOUT: %d: ref %AdaptC = wrapper_binding d, %d.var [concrete = %d.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %e.patt: %pattern_type.98b = ref_binding_pattern e [concrete = constants.%e.patt]
// CHECK:STDOUT: %e.var_patt: %pattern_type.98b = var_pattern %e.patt [concrete = constants.%e.var_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.720 = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.720 = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %e.var: ref %C = var_storage %e.var_patt [concrete]
// CHECK:STDOUT: %C.ref.loc55: type = name_ref C, %C.decl [concrete = constants.%C]
// CHECK:STDOUT: %e: ref %C = wrapper_binding e, %e.var [concrete = %e.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %e.patt: %pattern_type.98b = ref_binding_pattern e [concrete = constants.%e.patt]
// CHECK:STDOUT: %e.var_patt: %pattern_type.98b = var_pattern %e.patt [concrete = constants.%e.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C {
+16 -16
View File
@@ -223,16 +223,16 @@ var c: Other.C = {};
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Other.import = import Other
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %C = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %.loc6: type = splice_block %C.ref [concrete = constants.%C] {
// CHECK:STDOUT: %Other.ref: <namespace> = name_ref Other, imports.%Other [concrete = imports.%Other]
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Other.C [concrete = constants.%C]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: ref %C = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "other_define.carbon"] {
@@ -279,16 +279,16 @@ var c: Other.C = {};
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Other.import = import Other
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: <error> = ref_binding_pattern c [concrete = <error>]
// CHECK:STDOUT: %c.var_patt: <error> = var_pattern %c.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref <error> = var_storage %c.var_patt [concrete = <error>]
// CHECK:STDOUT: %.loc14: type = splice_block %C.ref [concrete = constants.%C] {
// CHECK:STDOUT: %Other.ref: <namespace> = name_ref Other, imports.%Other [concrete = imports.%Other]
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Other.C [concrete = constants.%C]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: <error> = wrapper_binding c, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: <error> = ref_binding_pattern c [concrete = <error>]
// CHECK:STDOUT: %c.var_patt: <error> = var_pattern %c.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "other_extern.carbon"];
@@ -336,16 +336,16 @@ var c: Other.C = {};
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Other.import = import Other
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %C = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %.loc19: type = splice_block %C.ref [concrete = constants.%C] {
// CHECK:STDOUT: %Other.ref: <namespace> = name_ref Other, imports.%Other [concrete = imports.%Other]
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Other.C [concrete = constants.%C]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: ref %C = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "other_define.carbon"] {
@@ -400,16 +400,16 @@ var c: Other.C = {};
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Other.import = import Other
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %C = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %.loc19: type = splice_block %C.ref [concrete = constants.%C] {
// CHECK:STDOUT: %Other.ref: <namespace> = name_ref Other, imports.%Other [concrete = imports.%Other]
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Other.C [concrete = constants.%C]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: ref %C = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "other_define.carbon"] {
+26 -26
View File
@@ -126,10 +126,6 @@ fn G() { F({}); }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %A = var_storage %a.var_patt
// CHECK:STDOUT: %.loc10_22.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc10_22.2: init %A to %a.var = class_init () [concrete = constants.%A.val]
@@ -138,8 +134,8 @@ fn G() { F({}); }
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %a: ref %A = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.e39 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.e39 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %B = var_storage %b.var_patt
// CHECK:STDOUT: %.loc11_22.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
@@ -149,8 +145,8 @@ fn G() { F({}); }
// CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B]
// CHECK:STDOUT: %b: ref %B = wrapper_binding b, %b.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.98b = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.98b = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.e39 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.e39 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %C = var_storage %c.var_patt
// CHECK:STDOUT: %.loc12_22.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
@@ -159,6 +155,10 @@ fn G() { F({}); }
// CHECK:STDOUT: assign %c.var, %.loc12_3
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %c: ref %C = wrapper_binding c, %c.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.98b = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.98b = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc12: <bound method> = bound_method %c.var, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call.loc12: init %empty_tuple.type = call %Destroy.Op.bound.loc12(%c.var)
// CHECK:STDOUT: %Destroy.Op.bound.loc11: <bound method> = bound_method %b.var, constants.%Destroy.Op.1a2547.3
@@ -223,10 +223,6 @@ fn G() { F({}); }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %A = var_storage %a.var_patt
// CHECK:STDOUT: %.loc10_22.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc10_22.2: init %A to %a.var = class_init () [concrete = constants.%A.val]
@@ -235,8 +231,8 @@ fn G() { F({}); }
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %a: ref %A = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.e39 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.e39 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %B = var_storage %b.var_patt
// CHECK:STDOUT: %.loc11_22.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
@@ -245,14 +241,14 @@ fn G() { F({}); }
// CHECK:STDOUT: assign %b.var, %.loc11_3
// CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B]
// CHECK:STDOUT: %b: ref %B = wrapper_binding b, %b.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.e39 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.e39 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true]
// CHECK:STDOUT: if %true br !if.then else br !if.else
// CHECK:STDOUT:
// CHECK:STDOUT: !if.then:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.98b = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.98b = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %C = var_storage %c.var_patt
// CHECK:STDOUT: %.loc13_24.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc13_24.2: init %C to %c.var = class_init () [concrete = constants.%C.val]
@@ -260,6 +256,10 @@ fn G() { F({}); }
// CHECK:STDOUT: assign %c.var, %.loc13_5
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %c: ref %C = wrapper_binding c, %c.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.98b = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.98b = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: br !if.else
// CHECK:STDOUT:
// CHECK:STDOUT: !if.else:
@@ -386,10 +386,6 @@ fn G() { F({}); }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.6fa = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.6fa = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %D.dee = var_storage %a.var_patt
// CHECK:STDOUT: %.loc9_25.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc9_25.2: init %D.dee to %a.var = class_init () [concrete = constants.%D.val]
@@ -401,6 +397,10 @@ fn G() { F({}); }
// CHECK:STDOUT: %D: type = class_type @D, @D(constants.%C) [concrete = constants.%D.dee]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %D.dee = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.6fa = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.6fa = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %a.var, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var)
// CHECK:STDOUT: return
@@ -487,10 +487,6 @@ fn G() { F({}); }
// CHECK:STDOUT:
// CHECK:STDOUT: fn() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt.loc7_15.1: @F.%pattern_type (%pattern_type.ebe) = ref_binding_pattern v [template = %v.patt.loc7_15.2 (constants.%v.patt.f9d)]
// CHECK:STDOUT: %v.var_patt.loc7_3.1: @F.%pattern_type (%pattern_type.ebe) = var_pattern %v.patt.loc7_15.1 [template = %v.var_patt.loc7_3.2 (constants.%v.var_patt.ca3)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref @F.%C.loc7_20.2 (%C.1d0) = var_storage %v.var_patt.loc7_3.1
// CHECK:STDOUT: %.loc7_25.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc7_25.2: init @F.%C.loc7_20.2 (%C.1d0) to %v.var = class_init () [template = %C.val (constants.%C.val.d4f)]
@@ -502,6 +498,10 @@ fn G() { F({}); }
// CHECK:STDOUT: %C.loc7_20.1: type = class_type @C, @C(constants.%T) [template = %C.loc7_20.2 (constants.%C.1d0)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: ref @F.%C.loc7_20.2 (%C.1d0) = wrapper_binding v, %v.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt.loc7_15.1: @F.%pattern_type (%pattern_type.ebe) = ref_binding_pattern v [template = %v.patt.loc7_15.2 (constants.%v.patt.f9d)]
// CHECK:STDOUT: %v.var_patt.loc7_3.1: @F.%pattern_type (%pattern_type.ebe) = var_pattern %v.patt.loc7_15.1 [template = %v.var_patt.loc7_3.2 (constants.%v.var_patt.ca3)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %impl.elem0.loc7_3.1: @F.%.loc7_3.4 (%.cb3) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc7_3.2 (constants.%impl.elem0)]
// CHECK:STDOUT: %bound_method.loc7_3.1: <bound method> = bound_method %v.var, %impl.elem0.loc7_3.1
// CHECK:STDOUT: %Destroy.facet.loc7_3.1: %Destroy.type = facet_value constants.%C.1d0, (constants.%Destroy.lookup_impl_witness) [template = %Destroy.facet.loc7_3.3 (constants.%Destroy.facet.19f)]
+3 -3
View File
@@ -119,13 +119,13 @@ var c: C = {};
// CHECK:STDOUT: .c = %c
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %c.var: ref %C = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
// CHECK:STDOUT: %c: ref %C = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %C = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
// CHECK:STDOUT: %c: ref %C = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "export.carbon"] {
@@ -75,9 +75,6 @@ var x: Class = {};
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %A.patt: %pattern_type = value_binding_pattern A [concrete = constants.%A.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.ref.loc9: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %.loc9_11.1: type = splice_block %.loc9_11.2 [concrete = type] {
// CHECK:STDOUT: %.Self.loc9: %type = symbolic_binding .Self [symbolic_self = constants.%.Self]
@@ -85,7 +82,7 @@ var x: Class = {};
// CHECK:STDOUT: }
// CHECK:STDOUT: %A: type = wrapper_binding A, %Class.ref.loc9
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %B.patt: %pattern_type = value_binding_pattern B [concrete = constants.%B.patt]
// CHECK:STDOUT: %A.patt: %pattern_type = value_binding_pattern A [concrete = constants.%A.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.ref.loc15: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %.loc15_20.1: type = splice_block %.loc15_20.2 [concrete = type] {
@@ -93,6 +90,9 @@ var x: Class = {};
// CHECK:STDOUT: %.loc15_20.2: type = type_literal type [concrete = type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %B: type = wrapper_binding B, %Class.ref.loc15
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %B.patt: %pattern_type = value_binding_pattern B [concrete = constants.%B.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type]
// CHECK:STDOUT: complete_type_witness = %complete_type
// CHECK:STDOUT:
+10 -10
View File
@@ -144,10 +144,6 @@ fn Run() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Run() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.f15 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %Class = var_storage %c.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.4e8) [concrete = constants.%DefaultOrUnformed.facet]
// CHECK:STDOUT: %.loc21_15.1: %DefaultOrUnformed.type = converted constants.%Class, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet]
@@ -159,6 +155,10 @@ fn Run() {
// CHECK:STDOUT: assign %c.var, %T.as.DefaultOrUnformed.impl.Op.call
// CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %c: ref %Class = wrapper_binding c, %c.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.f15 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.ref.loc22: ref %Class = name_ref c, %c
// CHECK:STDOUT: %j.ref.loc22: %Class.elem = name_ref j, @Class.%.loc16 [concrete = @Class.%.loc16]
// CHECK:STDOUT: %.loc22_4: ref %i32 = class_element_access %c.ref.loc22, element0
@@ -181,10 +181,6 @@ fn Run() {
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23: init %i32 = call %bound_method.loc23_7.2(%int_2) [concrete = constants.%int_2.295]
// CHECK:STDOUT: %.loc23_7: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_2.295]
// CHECK:STDOUT: assign %.loc23_4, %.loc23_7
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %cj.patt: %pattern_type.6b6 = ref_binding_pattern cj [concrete = constants.%cj.patt]
// CHECK:STDOUT: %cj.var_patt: %pattern_type.6b6 = var_pattern %cj.patt [concrete = constants.%cj.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %cj.var: ref %i32 = var_storage %cj.var_patt
// CHECK:STDOUT: %c.ref.loc24: ref %Class = name_ref c, %c
// CHECK:STDOUT: %j.ref.loc24: %Class.elem = name_ref j, @Class.%.loc16 [concrete = @Class.%.loc16]
@@ -199,8 +195,8 @@ fn Run() {
// CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %cj: ref %i32 = wrapper_binding cj, %cj.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ck.patt: %pattern_type.6b6 = ref_binding_pattern ck [concrete = constants.%ck.patt]
// CHECK:STDOUT: %ck.var_patt: %pattern_type.6b6 = var_pattern %ck.patt [concrete = constants.%ck.var_patt]
// CHECK:STDOUT: %cj.patt: %pattern_type.6b6 = ref_binding_pattern cj [concrete = constants.%cj.patt]
// CHECK:STDOUT: %cj.var_patt: %pattern_type.6b6 = var_pattern %cj.patt [concrete = constants.%cj.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ck.var: ref %i32 = var_storage %ck.var_patt
// CHECK:STDOUT: %c.ref.loc25: ref %Class = name_ref c, %c
@@ -215,6 +211,10 @@ fn Run() {
// CHECK:STDOUT: assign %ck.var, %Int.as.Copy.impl.Op.call.loc25
// CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %ck: ref %i32 = wrapper_binding ck, %ck.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ck.patt: %pattern_type.6b6 = ref_binding_pattern ck [concrete = constants.%ck.patt]
// CHECK:STDOUT: %ck.var_patt: %pattern_type.6b6 = var_pattern %ck.patt [concrete = constants.%ck.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc25: <bound method> = bound_method %ck.var, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call.loc25: init %empty_tuple.type = call %Destroy.Op.bound.loc25(%ck.var)
// CHECK:STDOUT: %Destroy.Op.bound.loc24: <bound method> = bound_method %cj.var, constants.%Destroy.Op.1a2547.2
@@ -146,10 +146,6 @@ fn Test() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Test() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %cv.patt: %pattern_type.f15 = ref_binding_pattern cv [concrete = constants.%cv.patt]
// CHECK:STDOUT: %cv.var_patt: %pattern_type.f15 = var_pattern %cv.patt [concrete = constants.%cv.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %cv.var: ref %Class = var_storage %cv.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.4e8) [concrete = constants.%DefaultOrUnformed.facet]
// CHECK:STDOUT: %.loc21_16.1: %DefaultOrUnformed.type = converted constants.%Class, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet]
@@ -161,6 +157,10 @@ fn Test() {
// CHECK:STDOUT: assign %cv.var, %T.as.DefaultOrUnformed.impl.Op.call
// CHECK:STDOUT: %Class.ref.loc21: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %cv: ref %Class = wrapper_binding cv, %cv.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %cv.patt: %pattern_type.f15 = ref_binding_pattern cv [concrete = constants.%cv.patt]
// CHECK:STDOUT: %cv.var_patt: %pattern_type.f15 = var_pattern %cv.patt [concrete = constants.%cv.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %cv.ref.loc22: ref %Class = name_ref cv, %cv
// CHECK:STDOUT: %j.ref.loc22: %Class.elem = name_ref j, @Class.%.loc16 [concrete = @Class.%.loc16]
// CHECK:STDOUT: %.loc22_5: ref %i32 = class_element_access %cv.ref.loc22, element0
@@ -183,16 +183,12 @@ fn Test() {
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23: init %i32 = call %bound_method.loc23_8.2(%int_2) [concrete = constants.%int_2.295]
// CHECK:STDOUT: %.loc23_8: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_2.295]
// CHECK:STDOUT: assign %.loc23_5, %.loc23_8
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %cv.ref.loc24: ref %Class = name_ref cv, %cv
// CHECK:STDOUT: %.loc24: %Class = acquire_value %cv.ref.loc24
// CHECK:STDOUT: %Class.ref.loc24: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %c: %Class = wrapper_binding c, %.loc24
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %cj.patt: %pattern_type.6b6 = ref_binding_pattern cj [concrete = constants.%cj.patt]
// CHECK:STDOUT: %cj.var_patt: %pattern_type.6b6 = var_pattern %cj.patt [concrete = constants.%cj.var_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = value_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %cj.var: ref %i32 = var_storage %cj.var_patt
// CHECK:STDOUT: %c.ref.loc25: %Class = name_ref c, %c
@@ -208,8 +204,8 @@ fn Test() {
// CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %cj: ref %i32 = wrapper_binding cj, %cj.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ck.patt: %pattern_type.6b6 = ref_binding_pattern ck [concrete = constants.%ck.patt]
// CHECK:STDOUT: %ck.var_patt: %pattern_type.6b6 = var_pattern %ck.patt [concrete = constants.%ck.var_patt]
// CHECK:STDOUT: %cj.patt: %pattern_type.6b6 = ref_binding_pattern cj [concrete = constants.%cj.patt]
// CHECK:STDOUT: %cj.var_patt: %pattern_type.6b6 = var_pattern %cj.patt [concrete = constants.%cj.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ck.var: ref %i32 = var_storage %ck.var_patt
// CHECK:STDOUT: %c.ref.loc26: %Class = name_ref c, %c
@@ -224,6 +220,10 @@ fn Test() {
// CHECK:STDOUT: assign %ck.var, %Int.as.Copy.impl.Op.call.loc26
// CHECK:STDOUT: %i32.loc26: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %ck: ref %i32 = wrapper_binding ck, %ck.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ck.patt: %pattern_type.6b6 = ref_binding_pattern ck [concrete = constants.%ck.patt]
// CHECK:STDOUT: %ck.var_patt: %pattern_type.6b6 = var_pattern %ck.patt [concrete = constants.%ck.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc26: <bound method> = bound_method %ck.var, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call.loc26: init %empty_tuple.type = call %Destroy.Op.bound.loc26(%ck.var)
// CHECK:STDOUT: %Destroy.Op.bound.loc25: <bound method> = bound_method %cj.var, constants.%Destroy.Op.1a2547.2
@@ -123,13 +123,13 @@ var C: Class = {};
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %C.var: ref %Class = var_storage %C.var_patt [concrete]
// CHECK:STDOUT: %Class.ref: type = name_ref Class, %Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %C: ref %Class = wrapper_binding C, %C.var [concrete = %C.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %C.patt: %pattern_type.f15 = ref_binding_pattern C [concrete = constants.%C.patt]
// CHECK:STDOUT: %C.var_patt: %pattern_type.f15 = var_pattern %C.patt [concrete = constants.%C.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.var: ref %Class = var_storage %C.var_patt [concrete]
// CHECK:STDOUT: %Class.ref: type = name_ref Class, %Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %C: ref %Class = wrapper_binding C, %C.var [concrete = %C.var]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @Class {
+6 -6
View File
@@ -108,20 +108,20 @@ fn F() {
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %static_field.patt: %pattern_type.6b6 = ref_binding_pattern static_field [concrete = constants.%static_field.patt]
// CHECK:STDOUT: %static_field.var_patt: %pattern_type.6b6 = var_pattern %static_field.patt [concrete = constants.%static_field.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %static_field.var: ref %i32 = var_storage %static_field.var_patt [concrete]
// CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %static_field: ref %i32 = wrapper_binding static_field, %static_field.var [concrete = %static_field.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %static_field_with_init.patt: %pattern_type.6b6 = ref_binding_pattern static_field_with_init [concrete = constants.%static_field_with_init.patt]
// CHECK:STDOUT: %static_field_with_init.var_patt: %pattern_type.6b6 = var_pattern %static_field_with_init.patt [concrete = constants.%static_field_with_init.var_patt]
// CHECK:STDOUT: %static_field.patt: %pattern_type.6b6 = ref_binding_pattern static_field [concrete = constants.%static_field.patt]
// CHECK:STDOUT: %static_field.var_patt: %pattern_type.6b6 = var_pattern %static_field.patt [concrete = constants.%static_field.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %static_field_with_init.var: ref %i32 = var_storage %static_field_with_init.var_patt [concrete]
// CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %static_field_with_init: ref %i32 = wrapper_binding static_field_with_init, %static_field_with_init.var [concrete = %static_field_with_init.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %static_field_with_init.patt: %pattern_type.6b6 = ref_binding_pattern static_field_with_init [concrete = constants.%static_field_with_init.patt]
// CHECK:STDOUT: %static_field_with_init.var_patt: %pattern_type.6b6 = var_pattern %static_field_with_init.patt [concrete = constants.%static_field_with_init.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357]
// CHECK:STDOUT: complete_type_witness = %complete_type
// CHECK:STDOUT:
@@ -759,9 +759,6 @@ fn H() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.6b6 = value_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic]
// CHECK:STDOUT: %i32.loc13_25: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.3b7]
@@ -773,6 +770,9 @@ fn H() {
// CHECK:STDOUT: %.loc13_32.2: %i32 = converted %X.G.call, %.loc13_32.1
// CHECK:STDOUT: %i32.loc13_17: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %i: %i32 = wrapper_binding i, %.loc13_32.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.6b6 = value_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -977,9 +977,6 @@ fn H() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @H() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %j.patt: %pattern_type.6b6 = value_binding_pattern j [concrete = constants.%j.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C.generic]
// CHECK:STDOUT: %i32.loc7_25: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.3b7]
@@ -991,6 +988,9 @@ fn H() {
// CHECK:STDOUT: %.loc7_32.2: %i32 = converted %X.G.call, %.loc7_32.1
// CHECK:STDOUT: %i32.loc7_17: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %j: %i32 = wrapper_binding j, %.loc7_32.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %j.patt: %pattern_type.6b6 = value_binding_pattern j [concrete = constants.%j.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
+18 -18
View File
@@ -197,10 +197,6 @@ class Outer(T:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %N.loc4_24.2: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.ce9)]
// CHECK:STDOUT: }
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.081 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.081 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %Class.4f7 = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %.loc6_21.1: type = splice_block %Class.loc6 [concrete = constants.%Class.4f7] {
// CHECK:STDOUT: %Class.ref.loc6: %Class.type = name_ref Class, %Class.decl [concrete = constants.%Class.generic]
@@ -218,8 +214,8 @@ class Outer(T:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %Class.4f7 = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.a95 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.a95 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.081 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.081 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %Class.958 = var_storage %b.var_patt [concrete]
// CHECK:STDOUT: %.loc9_19.1: type = splice_block %Class.loc9 [concrete = constants.%Class.958] {
@@ -237,6 +233,10 @@ class Outer(T:! type) {
// CHECK:STDOUT: %Class.loc9: type = class_type @Class, @Class(constants.%empty_tuple.type, constants.%int_0.3c0) [concrete = constants.%Class.958]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: ref %Class.958 = wrapper_binding b, %b.var [concrete = %b.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.a95 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.a95 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic class @Class(%T.loc4_14.2: type, %N.loc4_24.2: %i32) {
@@ -356,10 +356,6 @@ class Outer(T:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %N.loc4_24.2: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.ce9)]
// CHECK:STDOUT: }
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: <error> = ref_binding_pattern a [concrete = <error>]
// CHECK:STDOUT: %a.var_patt: <error> = var_pattern %a.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref <error> = var_storage %a.var_patt [concrete = <error>]
// CHECK:STDOUT: %.1: <error> = splice_block <error> [concrete = <error>] {
// CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, %Class.decl [concrete = constants.%Class.generic]
@@ -367,6 +363,10 @@ class Outer(T:! type) {
// CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete = constants.%ptr]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: <error> = wrapper_binding a, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: <error> = ref_binding_pattern a [concrete = <error>]
// CHECK:STDOUT: %a.var_patt: <error> = var_pattern %a.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic class @Class(%T.loc4_14.2: type, %N.loc4_24.2: %i32) {
@@ -455,10 +455,6 @@ class Outer(T:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %N.loc4_24.2: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.ce9)]
// CHECK:STDOUT: }
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: <error> = ref_binding_pattern a [concrete = <error>]
// CHECK:STDOUT: %a.var_patt: <error> = var_pattern %a.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref <error> = var_storage %a.var_patt [concrete = <error>]
// CHECK:STDOUT: %.1: <error> = splice_block <error> [concrete = <error>] {
// CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, %Class.decl [concrete = constants.%Class.generic]
@@ -468,6 +464,10 @@ class Outer(T:! type) {
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: <error> = wrapper_binding a, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: <error> = ref_binding_pattern a [concrete = <error>]
// CHECK:STDOUT: %a.var_patt: <error> = var_pattern %a.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic class @Class(%T.loc4_14.2: type, %N.loc4_24.2: %i32) {
@@ -559,10 +559,6 @@ class Outer(T:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %N.loc4_24.2: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.ce9)]
// CHECK:STDOUT: }
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: <error> = ref_binding_pattern a [concrete = <error>]
// CHECK:STDOUT: %a.var_patt: <error> = var_pattern %a.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref <error> = var_storage %a.var_patt [concrete = <error>]
// CHECK:STDOUT: %.1: <error> = splice_block <error> [concrete = <error>] {
// CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, %Class.decl [concrete = constants.%Class.generic]
@@ -572,6 +568,10 @@ class Outer(T:! type) {
// CHECK:STDOUT: %.loc16: type = converted %int_5, <error> [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: <error> = wrapper_binding a, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: <error> = ref_binding_pattern a [concrete = <error>]
// CHECK:STDOUT: %a.var_patt: <error> = var_pattern %a.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic class @Class(%T.loc4_14.2: type, %N.loc4_24.2: %i32) {
@@ -231,9 +231,6 @@ fn F(a: A(0)*) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F(%a.param: %ptr.4dd) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.3c8 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.ref: %ptr.4dd = name_ref a, %a
// CHECK:STDOUT: %.loc20_22.1: ref %A.32a = deref %a.ref
// CHECK:STDOUT: %.loc20_22.2: ref %B = class_element_access %.loc20_22.1, element0
@@ -244,6 +241,9 @@ fn F(a: A(0)*) {
// CHECK:STDOUT: %ptr.loc20: type = ptr_type %B.ref [concrete = constants.%ptr.432]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: %ptr.432 = wrapper_binding b, %.loc20_22.3
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.3c8 = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -168,16 +168,12 @@ class Foo[T:! type];
// CHECK:STDOUT: %T.loc8_10.2: type = symbolic_binding T, 0 [symbolic = %T.loc8_10.1 (constants.%T)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {}
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.2dc = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.2dc = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %NotGenericNoParams = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %NotGenericNoParams.ref: type = name_ref NotGenericNoParams, %NotGenericNoParams.decl [concrete = constants.%NotGenericNoParams]
// CHECK:STDOUT: %a: ref %NotGenericNoParams = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.8e7 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.8e7 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.2dc = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.2dc = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %NotGenericButParams = var_storage %b.var_patt [concrete]
// CHECK:STDOUT: %.loc16: type = splice_block %NotGenericButParams [concrete = constants.%NotGenericButParams] {
@@ -186,8 +182,8 @@ class Foo[T:! type];
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: ref %NotGenericButParams = wrapper_binding b, %b.var [concrete = %b.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.053 = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.053 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.8e7 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.8e7 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %GenericAndParams.421 = var_storage %c.var_patt [concrete]
// CHECK:STDOUT: %.loc17: type = splice_block %GenericAndParams.loc17 [concrete = constants.%GenericAndParams.421] {
@@ -197,8 +193,8 @@ class Foo[T:! type];
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: ref %GenericAndParams.421 = wrapper_binding c, %c.var [concrete = %c.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.a4a = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.a4a = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.053 = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.053 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %GenericNoParams.ee8 = var_storage %d.var_patt [concrete]
// CHECK:STDOUT: %.loc18_12.1: type = splice_block %GenericNoParams.ref [concrete = constants.%GenericNoParams.ee8] {
@@ -210,8 +206,8 @@ class Foo[T:! type];
// CHECK:STDOUT: }
// CHECK:STDOUT: %d: ref %GenericNoParams.ee8 = wrapper_binding d, %d.var [concrete = %d.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %e.patt: %pattern_type.4e2 = ref_binding_pattern e [concrete = constants.%e.patt]
// CHECK:STDOUT: %e.var_patt: %pattern_type.4e2 = var_pattern %e.patt [concrete = constants.%e.var_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.a4a = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.a4a = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %e.var: ref %GenericAndParams.353 = var_storage %e.var_patt [concrete]
// CHECK:STDOUT: %.loc19_31: type = splice_block %GenericAndParams.loc19 [concrete = constants.%GenericAndParams.353] {
@@ -224,6 +220,10 @@ class Foo[T:! type];
// CHECK:STDOUT: %GenericAndParams.loc19: type = class_type @GenericAndParams.loc10, @GenericAndParams.loc10(constants.%X, constants.%X) [concrete = constants.%GenericAndParams.353]
// CHECK:STDOUT: }
// CHECK:STDOUT: %e: ref %GenericAndParams.353 = wrapper_binding e, %e.var [concrete = %e.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %e.patt: %pattern_type.4e2 = ref_binding_pattern e [concrete = constants.%e.patt]
// CHECK:STDOUT: %e.var_patt: %pattern_type.4e2 = var_pattern %e.patt [concrete = constants.%e.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @NotGenericNoParams {
+12 -12
View File
@@ -614,10 +614,6 @@ class Class(U:! type) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @UseMethod() -> out %return.param: %i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.97d = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.97d = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref %CompleteClass.d55 = var_storage %v.var_patt
// CHECK:STDOUT: %F.ref.loc6: %F.type = name_ref F, imports.%Main.F [concrete = constants.%F]
// CHECK:STDOUT: %.loc6_3: ref %CompleteClass.d55 = splice_block %v.var {}
@@ -629,6 +625,10 @@ class Class(U:! type) {
// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.d55]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: ref %CompleteClass.d55 = wrapper_binding v, %v.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.97d = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.97d = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.ref: ref %CompleteClass.d55 = name_ref v, %v
// CHECK:STDOUT: %.loc7: %CompleteClass.F.type.dac = specific_constant imports.%Main.import_ref.895, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.F.623]
// CHECK:STDOUT: %F.ref.loc7: %CompleteClass.F.type.dac = name_ref F, %.loc7 [concrete = constants.%CompleteClass.F.623]
@@ -666,10 +666,6 @@ class Class(U:! type) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @UseField() -> out %return.param: %i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.97d = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.97d = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref %CompleteClass.d55 = var_storage %v.var_patt
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%Main.F [concrete = constants.%F]
// CHECK:STDOUT: %.loc11_3: ref %CompleteClass.d55 = splice_block %v.var {}
@@ -681,6 +677,10 @@ class Class(U:! type) {
// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.d55]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: ref %CompleteClass.d55 = wrapper_binding v, %v.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.97d = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.97d = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.ref: ref %CompleteClass.d55 = name_ref v, %v
// CHECK:STDOUT: %n.ref: %CompleteClass.elem.2cc = name_ref n, imports.%Main.import_ref.111 [concrete = imports.%.5a2]
// CHECK:STDOUT: %.loc12_11.1: ref %i32 = class_element_access %v.ref, element0
@@ -823,10 +823,6 @@ class Class(U:! type) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Use() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.ff3 = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.ff3 = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref %CompleteClass.22b = var_storage %v.var_patt
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%Main.F [concrete = constants.%F]
// CHECK:STDOUT: %.loc13_41: ref %CompleteClass.d55 = temporary_storage
@@ -840,6 +836,10 @@ class Class(U:! type) {
// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%ptr.d08) [concrete = constants.%CompleteClass.22b]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: ref %CompleteClass.22b = wrapper_binding v, %v.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.ff3 = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.ff3 = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %v.var, constants.%Destroy.Op.1a2547.4
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var)
// CHECK:STDOUT: return
+8 -8
View File
@@ -248,10 +248,6 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%x.param: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b)) -> out %return.param: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt.loc10_8.1: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.0b6) = ref_binding_pattern v [symbolic = %v.patt.loc10_8.2 (constants.%v.patt.ef6)]
// CHECK:STDOUT: %v.var_patt.loc10_3.1: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.0b6) = var_pattern %v.patt.loc10_8.1 [symbolic = %v.var_patt.loc10_3.2 (constants.%v.var_patt.8cf)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.55b) = var_storage %v.var_patt.loc10_3.1
// CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) = name_ref x, %x
// CHECK:STDOUT: %.loc10_28.1: @InitFromStructGeneric.%struct_type.k (%struct_type.k.aa4) = struct_literal (%x.ref)
@@ -278,6 +274,10 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %Class.loc10_17.1: type = class_type @Class, @Class(constants.%Destroy.facet.16e) [symbolic = %Class.loc10_17.2 (constants.%Class.55b)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.55b) = wrapper_binding v, %v.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt.loc10_8.1: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.0b6) = ref_binding_pattern v [symbolic = %v.patt.loc10_8.2 (constants.%v.patt.ef6)]
// CHECK:STDOUT: %v.var_patt.loc10_3.1: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.0b6) = var_pattern %v.patt.loc10_8.1 [symbolic = %v.var_patt.loc10_3.2 (constants.%v.var_patt.8cf)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.ref: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.55b) = name_ref v, %v
// CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%Class.elem (%Class.elem.b97) = name_ref k, @Class.%.loc5 [concrete = @Class.%.loc5]
// CHECK:STDOUT: %.loc11_11.1: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) = class_element_access %v.ref, element0
@@ -307,10 +307,6 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @InitFromStructSpecific(%x.param: %i32) -> out %return.param: %i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.82c = ref_binding_pattern v [concrete = constants.%v.patt.675]
// CHECK:STDOUT: %v.var_patt: %pattern_type.82c = var_pattern %v.patt [concrete = constants.%v.var_patt.68c]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref %Class.a32 = var_storage %v.var_patt
// CHECK:STDOUT: %x.ref: %i32 = name_ref x, %x
// CHECK:STDOUT: %.loc15_30.1: %struct_type.k.e7c = struct_literal (%x.ref)
@@ -332,6 +328,10 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%Destroy.facet.d07) [concrete = constants.%Class.a32]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: ref %Class.a32 = wrapper_binding v, %v.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.82c = ref_binding_pattern v [concrete = constants.%v.patt.675]
// CHECK:STDOUT: %v.var_patt: %pattern_type.82c = var_pattern %v.patt [concrete = constants.%v.var_patt.68c]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.ref: ref %Class.a32 = name_ref v, %v
// CHECK:STDOUT: %k.ref: %Class.elem.8f3 = name_ref k, @Class.%.loc5 [concrete = @Class.%.loc5]
// CHECK:STDOUT: %.loc16_11.1: ref %i32 = class_element_access %v.ref, element0
+8 -8
View File
@@ -314,10 +314,6 @@ fn Test() -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Test() -> out %return.param: %i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.1e8 = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.1e8 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %Inner.096 = var_storage %c.var_patt
// CHECK:STDOUT: %Outer.ref.loc13_29: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic]
// CHECK:STDOUT: %i32.loc13_35: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -352,6 +348,10 @@ fn Test() -> i32 {
// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc13_20.2 [concrete = constants.%Inner.096]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: ref %Inner.096 = wrapper_binding c, %c.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.1e8 = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.1e8 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.ref: ref %Inner.096 = name_ref c, %c
// CHECK:STDOUT: %n.ref: %Inner.elem.362 = name_ref n, @Inner.%.loc6 [concrete = @Inner.%.loc6]
// CHECK:STDOUT: %.loc14_11.1: ref %i32 = class_element_access %c.ref, element0
@@ -842,10 +842,6 @@ fn Test() -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Test() -> out %return.param: %i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.9d0 = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.9d0 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %C.b7f = var_storage %c.var_patt
// CHECK:STDOUT: %.loc23_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc23_26.2: init %C.b7f to %c.var = class_init () [concrete = constants.%C.val]
@@ -859,6 +855,10 @@ fn Test() -> i32 {
// CHECK:STDOUT: %C.ref: type = name_ref C, %.loc23_20.2 [concrete = constants.%C.b7f]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: ref %C.b7f = wrapper_binding c, %c.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.9d0 = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.9d0 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.ref: ref %C.b7f = name_ref c, %c
// CHECK:STDOUT: %Outer.ref.loc24: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic]
// CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32]
+6 -6
View File
@@ -207,10 +207,6 @@ class Class(T:! type) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt.loc21_17.1: @Class.F.%pattern_type (%pattern_type.36e) = ref_binding_pattern c [symbolic = %c.patt.loc21_17.2 (constants.%c.patt)]
// CHECK:STDOUT: %c.var_patt.loc21_5.1: @Class.F.%pattern_type (%pattern_type.36e) = var_pattern %c.patt.loc21_17.1 [symbolic = %c.var_patt.loc21_5.2 (constants.%c.var_patt)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref @Class.F.%Class.loc21_26.2 (%Class) = var_storage %c.var_patt.loc21_5.1
// CHECK:STDOUT: %.loc21_30: @Class.F.%Class.MakeSelf.type (%Class.MakeSelf.type) = specific_constant @Class.%Class.MakeSelf.decl, @Class(constants.%T) [symbolic = %Class.MakeSelf (constants.%Class.MakeSelf)]
// CHECK:STDOUT: %MakeSelf.ref: @Class.F.%Class.MakeSelf.type (%Class.MakeSelf.type) = name_ref MakeSelf, %.loc21_30 [symbolic = %Class.MakeSelf (constants.%Class.MakeSelf)]
@@ -225,8 +221,8 @@ class Class(T:! type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: ref @Class.F.%Class.loc21_26.2 (%Class) = wrapper_binding c, %c.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %s.patt.loc22_17.1: @Class.F.%pattern_type (%pattern_type.36e) = ref_binding_pattern s [symbolic = %s.patt.loc22_17.2 (constants.%s.patt)]
// CHECK:STDOUT: %s.var_patt.loc22_5.1: @Class.F.%pattern_type (%pattern_type.36e) = var_pattern %s.patt.loc22_17.1 [symbolic = %s.var_patt.loc22_5.2 (constants.%s.var_patt)]
// CHECK:STDOUT: %c.patt.loc21_17.1: @Class.F.%pattern_type (%pattern_type.36e) = ref_binding_pattern c [symbolic = %c.patt.loc21_17.2 (constants.%c.patt)]
// CHECK:STDOUT: %c.var_patt.loc21_5.1: @Class.F.%pattern_type (%pattern_type.36e) = var_pattern %c.patt.loc21_17.1 [symbolic = %c.var_patt.loc21_5.2 (constants.%c.var_patt)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %s.var: ref @Class.F.%Class.loc21_26.2 (%Class) = var_storage %s.var_patt.loc22_5.1
// CHECK:STDOUT: %.loc22_26: @Class.F.%Class.MakeClass.type (%Class.MakeClass.type) = specific_constant @Class.%Class.MakeClass.decl, @Class(constants.%T) [symbolic = %Class.MakeClass (constants.%Class.MakeClass)]
@@ -240,6 +236,10 @@ class Class(T:! type) {
// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc22_19.2 [symbolic = %Class.loc21_26.2 (constants.%Class)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %s: ref @Class.F.%Class.loc21_26.2 (%Class) = wrapper_binding s, %s.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %s.patt.loc22_17.1: @Class.F.%pattern_type (%pattern_type.36e) = ref_binding_pattern s [symbolic = %s.patt.loc22_17.2 (constants.%s.patt)]
// CHECK:STDOUT: %s.var_patt.loc22_5.1: @Class.F.%pattern_type (%pattern_type.36e) = var_pattern %s.patt.loc22_17.1 [symbolic = %s.var_patt.loc22_5.2 (constants.%s.var_patt)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %impl.elem0.loc22_5.1: @Class.F.%.loc22_5.4 (%.73f) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.2 (constants.%impl.elem0)]
// CHECK:STDOUT: %bound_method.loc22_5.1: <bound method> = bound_method %s.var, %impl.elem0.loc22_5.1
// CHECK:STDOUT: %Destroy.facet.loc22_5.1: %Destroy.type = facet_value constants.%Class, (constants.%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc22_5.3 (constants.%Destroy.facet.86d)]
+20 -20
View File
@@ -137,16 +137,12 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D);
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %NoParams.decl: type = class_decl @NoParams [concrete = constants.%NoParams] {} {}
// CHECK:STDOUT: %EmptyParams.decl: %EmptyParams.type = class_decl @EmptyParams [concrete = constants.%EmptyParams.generic] {} {}
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.c07 = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.c07 = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref %NoParams = var_storage %v.var_patt [concrete]
// CHECK:STDOUT: %NoParams.ref: type = name_ref NoParams, %NoParams.decl [concrete = constants.%NoParams]
// CHECK:STDOUT: %v: ref %NoParams = wrapper_binding v, %v.var [concrete = %v.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %w.patt: %pattern_type.c83 = ref_binding_pattern w [concrete = constants.%w.patt]
// CHECK:STDOUT: %w.var_patt: %pattern_type.c83 = var_pattern %w.patt [concrete = constants.%w.var_patt]
// CHECK:STDOUT: %v.patt: %pattern_type.c07 = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.c07 = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %w.var: ref %EmptyParams = var_storage %w.var_patt [concrete]
// CHECK:STDOUT: %.loc15: type = splice_block %EmptyParams [concrete = constants.%EmptyParams] {
@@ -154,6 +150,10 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D);
// CHECK:STDOUT: %EmptyParams: type = class_type @EmptyParams [concrete = constants.%EmptyParams]
// CHECK:STDOUT: }
// CHECK:STDOUT: %w: ref %EmptyParams = wrapper_binding w, %w.var [concrete = %w.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %w.patt: %pattern_type.c83 = ref_binding_pattern w [concrete = constants.%w.patt]
// CHECK:STDOUT: %w.var_patt: %pattern_type.c83 = var_pattern %w.patt [concrete = constants.%w.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @NoParams {
@@ -268,10 +268,6 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D);
// CHECK:STDOUT: }
// CHECK:STDOUT: %T.loc4_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T.67d)]
// CHECK:STDOUT: }
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.e03 = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.e03 = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref %Outer.2d6 = var_storage %v.var_patt [concrete]
// CHECK:STDOUT: %.loc9_17: type = splice_block %Outer.loc9 [concrete = constants.%Outer.2d6] {
// CHECK:STDOUT: %Outer.ref.loc9: %Outer.type = name_ref Outer, %Outer.decl [concrete = constants.%Outer.generic]
@@ -282,8 +278,8 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D);
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: ref %Outer.2d6 = wrapper_binding v, %v.var [concrete = %v.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %w.patt: %pattern_type.85f = ref_binding_pattern w [concrete = constants.%w.patt]
// CHECK:STDOUT: %w.var_patt: %pattern_type.85f = var_pattern %w.patt [concrete = constants.%w.var_patt]
// CHECK:STDOUT: %v.patt: %pattern_type.e03 = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.e03 = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %w.var: ref %Inner.61f = var_storage %w.var_patt [concrete]
// CHECK:STDOUT: %.loc19_35: type = splice_block %Inner [concrete = constants.%Inner.61f] {
@@ -300,6 +296,10 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D);
// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(constants.%ptr.c28, constants.%ptr.e4c) [concrete = constants.%Inner.61f]
// CHECK:STDOUT: }
// CHECK:STDOUT: %w: ref %Inner.61f = wrapper_binding w, %w.var [concrete = %w.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %w.patt: %pattern_type.85f = ref_binding_pattern w [concrete = constants.%w.patt]
// CHECK:STDOUT: %w.var_patt: %pattern_type.85f = var_pattern %w.patt [concrete = constants.%w.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic class @Outer(%T.loc4_14.2: type) {
@@ -457,10 +457,6 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D);
// CHECK:STDOUT: }
// CHECK:STDOUT: %N.loc4_10.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_10.1 (constants.%N.37f)]
// CHECK:STDOUT: }
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.b05 = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.b05 = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref %C.ece = var_storage %v.var_patt [concrete]
// CHECK:STDOUT: %.loc13_13.1: type = splice_block %C [concrete = constants.%C.ece] {
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic]
@@ -475,6 +471,10 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D);
// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_123.2bf) [concrete = constants.%C.ece]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: ref %C.ece = wrapper_binding v, %v.var [concrete = %v.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.b05 = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.b05 = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic class @C(%N.loc4_10.2: %i32) {
@@ -609,10 +609,6 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D);
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.loc9_10.2: %D = symbolic_binding F, 0 [symbolic = %F.loc9_10.1 (constants.%F)]
// CHECK:STDOUT: }
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %g.patt: %pattern_type.e71 = ref_binding_pattern g [concrete = constants.%g.patt]
// CHECK:STDOUT: %g.var_patt: %pattern_type.e71 = var_pattern %g.patt [concrete = constants.%g.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %g.var: ref %E.7b7 = var_storage %g.var_patt [concrete]
// CHECK:STDOUT: %.loc18_26.1: type = splice_block %E [concrete = constants.%E.7b7] {
// CHECK:STDOUT: %E.ref: %E.type = name_ref E, %E.decl [concrete = constants.%E.generic]
@@ -643,6 +639,10 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D);
// CHECK:STDOUT: %E: type = class_type @E, @E(constants.%D.val.b1d) [concrete = constants.%E.7b7]
// CHECK:STDOUT: }
// CHECK:STDOUT: %g: ref %E.7b7 = wrapper_binding g, %g.var [concrete = %g.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %g.patt: %pattern_type.e71 = ref_binding_pattern g [concrete = constants.%g.patt]
// CHECK:STDOUT: %g.var_patt: %pattern_type.e71 = var_pattern %g.patt [concrete = constants.%g.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @D {
+16 -16
View File
@@ -344,10 +344,6 @@ fn Run() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Run() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.47a = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.47a = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %Empty = var_storage %a.var_patt
// CHECK:STDOUT: %.loc7_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc7_26.2: init %Empty to %a.var = class_init () [concrete = constants.%Empty.val]
@@ -356,8 +352,8 @@ fn Run() {
// CHECK:STDOUT: %Empty.ref: type = name_ref Empty, imports.%Main.Empty [concrete = constants.%Empty]
// CHECK:STDOUT: %a: ref %Empty = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.f17 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.f17 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.47a = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.47a = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %Field = var_storage %b.var_patt
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8]
@@ -375,6 +371,10 @@ fn Run() {
// CHECK:STDOUT: assign %b.var, %.loc9_3
// CHECK:STDOUT: %Field.ref: type = name_ref Field, imports.%Main.Field [concrete = constants.%Field]
// CHECK:STDOUT: %b: ref %Field = wrapper_binding b, %b.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.f17 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.f17 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.ref: ref %Field = name_ref b, %b
// CHECK:STDOUT: %x.ref: %Field.elem = name_ref x, imports.%Main.import_ref.5c1 [concrete = imports.%.860]
// CHECK:STDOUT: %.loc10_4: ref %i32 = class_element_access %b.ref, element0
@@ -386,10 +386,6 @@ fn Run() {
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10: init %i32 = call %bound_method.loc10_7.2(%int_2) [concrete = constants.%int_2.295]
// CHECK:STDOUT: %.loc10_7: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10 [concrete = constants.%int_2.295]
// CHECK:STDOUT: assign %.loc10_4, %.loc10_7
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.bdf = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.bdf = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %ForwardDeclared.08bd4c.1 = var_storage %c.var_patt
// CHECK:STDOUT: %.loc12_29.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc12_29.2: init %ForwardDeclared.08bd4c.1 to %c.var = class_init () [concrete = constants.%ForwardDeclared.val]
@@ -397,6 +393,10 @@ fn Run() {
// CHECK:STDOUT: assign %c.var, %.loc12_3
// CHECK:STDOUT: %ForwardDeclared.ref.loc12: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [concrete = constants.%ForwardDeclared.08bd4c.1]
// CHECK:STDOUT: %c: ref %ForwardDeclared.08bd4c.1 = wrapper_binding c, %c.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.bdf = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.bdf = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.ref.loc13: ref %ForwardDeclared.08bd4c.1 = name_ref c, %c
// CHECK:STDOUT: %F.ref: %ForwardDeclared.F.type = name_ref F, imports.%Main.import_ref.bc9 [concrete = constants.%ForwardDeclared.F]
// CHECK:STDOUT: %ForwardDeclared.F.bound: <bound method> = bound_method %c.ref.loc13, %F.ref
@@ -406,10 +406,6 @@ fn Run() {
// CHECK:STDOUT: %G.ref: %ForwardDeclared.G.type = name_ref G, imports.%Main.import_ref.341 [concrete = constants.%ForwardDeclared.G]
// CHECK:STDOUT: %ForwardDeclared.G.bound: <bound method> = bound_method %c.ref.loc14, %G.ref
// CHECK:STDOUT: %ForwardDeclared.G.call: init %empty_tuple.type = call %ForwardDeclared.G.bound(%c.ref.loc14)
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.8cd = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.8cd = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %ptr.11e = var_storage %d.var_patt
// CHECK:STDOUT: %c.ref.loc16: ref %ForwardDeclared.08bd4c.1 = name_ref c, %c
// CHECK:STDOUT: %addr: %ptr.11e = addr_of %c.ref.loc16
@@ -425,8 +421,8 @@ fn Run() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %d: ref %ptr.11e = wrapper_binding d, %d.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %e.patt: %pattern_type.bae = ref_binding_pattern e [concrete = constants.%e.patt]
// CHECK:STDOUT: %e.var_patt: %pattern_type.bae = var_pattern %e.patt [concrete = constants.%e.var_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.8cd = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.8cd = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %e.var: ref %ptr.06d = var_storage %e.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr.06d, (constants.%DefaultOrUnformed.impl_witness.3a6) [concrete = constants.%DefaultOrUnformed.facet]
@@ -441,6 +437,10 @@ fn Run() {
// CHECK:STDOUT: %ptr.loc18: type = ptr_type %Incomplete.ref [concrete = constants.%ptr.06d]
// CHECK:STDOUT: }
// CHECK:STDOUT: %e: ref %ptr.06d = wrapper_binding e, %e.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %e.patt: %pattern_type.bae = ref_binding_pattern e [concrete = constants.%e.patt]
// CHECK:STDOUT: %e.var_patt: %pattern_type.bae = var_pattern %e.patt [concrete = constants.%e.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc18: <bound method> = bound_method %e.var, constants.%Destroy.Op.1a2547.1
// CHECK:STDOUT: %Destroy.Op.call.loc18: init %empty_tuple.type = call %Destroy.Op.bound.loc18(%e.var)
// CHECK:STDOUT: %Destroy.Op.bound.loc16: <bound method> = bound_method %d.var, constants.%Destroy.Op.1a2547.2
+36 -36
View File
@@ -193,16 +193,12 @@ var ptr: E* = &value;
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, imports.%Main.C [concrete = constants.%C]
// CHECK:STDOUT: %D: type = alias_binding D, %C.ref.loc6 [concrete = constants.%C]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b_val.patt: %pattern_type.98b = ref_binding_pattern b_val [concrete = constants.%b_val.patt]
// CHECK:STDOUT: %b_val.var_patt: %pattern_type.98b = var_pattern %b_val.patt [concrete = constants.%b_val.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b_val.var: ref %C = var_storage %b_val.var_patt [concrete]
// CHECK:STDOUT: %C.ref.loc8: type = name_ref C, imports.%Main.C [concrete = constants.%C]
// CHECK:STDOUT: %b_val: ref %C = wrapper_binding b_val, %b_val.var [concrete = %b_val.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b_ptr.patt: %pattern_type.fcb = ref_binding_pattern b_ptr [concrete = constants.%b_ptr.patt]
// CHECK:STDOUT: %b_ptr.var_patt: %pattern_type.fcb = var_pattern %b_ptr.patt [concrete = constants.%b_ptr.var_patt]
// CHECK:STDOUT: %b_val.patt: %pattern_type.98b = ref_binding_pattern b_val [concrete = constants.%b_val.patt]
// CHECK:STDOUT: %b_val.var_patt: %pattern_type.98b = var_pattern %b_val.patt [concrete = constants.%b_val.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b_ptr.var: ref %ptr.6b6 = var_storage %b_ptr.var_patt [concrete]
// CHECK:STDOUT: %.loc9: type = splice_block %ptr [concrete = constants.%ptr.6b6] {
@@ -210,6 +206,10 @@ var ptr: E* = &value;
// CHECK:STDOUT: %ptr: type = ptr_type %D.ref [concrete = constants.%ptr.6b6]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b_ptr: ref %ptr.6b6 = wrapper_binding b_ptr, %b_ptr.var [concrete = %b_ptr.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b_ptr.patt: %pattern_type.fcb = ref_binding_pattern b_ptr [concrete = constants.%b_ptr.patt]
// CHECK:STDOUT: %b_ptr.var_patt: %pattern_type.fcb = var_pattern %b_ptr.patt [concrete = constants.%b_ptr.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "a.carbon"] {
@@ -293,16 +293,12 @@ var ptr: E* = &value;
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, imports.%Main.C [concrete = constants.%C]
// CHECK:STDOUT: %E: type = alias_binding E, %C.ref.loc6 [concrete = constants.%C]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c_val.patt: %pattern_type.98b = ref_binding_pattern c_val [concrete = constants.%c_val.patt]
// CHECK:STDOUT: %c_val.var_patt: %pattern_type.98b = var_pattern %c_val.patt [concrete = constants.%c_val.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c_val.var: ref %C = var_storage %c_val.var_patt [concrete]
// CHECK:STDOUT: %C.ref.loc8: type = name_ref C, imports.%Main.C [concrete = constants.%C]
// CHECK:STDOUT: %c_val: ref %C = wrapper_binding c_val, %c_val.var [concrete = %c_val.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c_ptr.patt: %pattern_type.fcb = ref_binding_pattern c_ptr [concrete = constants.%c_ptr.patt]
// CHECK:STDOUT: %c_ptr.var_patt: %pattern_type.fcb = var_pattern %c_ptr.patt [concrete = constants.%c_ptr.var_patt]
// CHECK:STDOUT: %c_val.patt: %pattern_type.98b = ref_binding_pattern c_val [concrete = constants.%c_val.patt]
// CHECK:STDOUT: %c_val.var_patt: %pattern_type.98b = var_pattern %c_val.patt [concrete = constants.%c_val.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c_ptr.var: ref %ptr.6b6 = var_storage %c_ptr.var_patt [concrete]
// CHECK:STDOUT: %.loc9: type = splice_block %ptr [concrete = constants.%ptr.6b6] {
@@ -310,6 +306,10 @@ var ptr: E* = &value;
// CHECK:STDOUT: %ptr: type = ptr_type %E.ref [concrete = constants.%ptr.6b6]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c_ptr: ref %ptr.6b6 = wrapper_binding c_ptr, %c_ptr.var [concrete = %c_ptr.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c_ptr.patt: %pattern_type.fcb = ref_binding_pattern c_ptr [concrete = constants.%c_ptr.patt]
// CHECK:STDOUT: %c_ptr.var_patt: %pattern_type.fcb = var_pattern %c_ptr.patt [concrete = constants.%c_ptr.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "a.carbon"] {
@@ -396,16 +396,12 @@ var ptr: E* = &value;
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %value.patt: %pattern_type.98b = ref_binding_pattern value [concrete = constants.%value.patt]
// CHECK:STDOUT: %value.var_patt: %pattern_type.98b = var_pattern %value.patt [concrete = constants.%value.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %value.var: ref %C = var_storage %value.var_patt [concrete]
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
// CHECK:STDOUT: %value: ref %C = wrapper_binding value, %value.var [concrete = %value.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = ref_binding_pattern ptr [concrete = constants.%ptr.patt]
// CHECK:STDOUT: %ptr.var_patt: %pattern_type.fcb = var_pattern %ptr.patt [concrete = constants.%ptr.var_patt]
// CHECK:STDOUT: %value.patt: %pattern_type.98b = ref_binding_pattern value [concrete = constants.%value.patt]
// CHECK:STDOUT: %value.var_patt: %pattern_type.98b = var_pattern %value.patt [concrete = constants.%value.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.var: ref %ptr.6b6 = var_storage %ptr.var_patt [concrete]
// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8_11 [concrete = constants.%ptr.6b6] {
@@ -413,6 +409,10 @@ var ptr: E* = &value;
// CHECK:STDOUT: %ptr.loc8_11: type = ptr_type %D.ref [concrete = constants.%ptr.6b6]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.loc8_8: ref %ptr.6b6 = wrapper_binding ptr, %ptr.var [concrete = %ptr.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = ref_binding_pattern ptr [concrete = constants.%ptr.patt]
// CHECK:STDOUT: %ptr.var_patt: %pattern_type.fcb = var_pattern %ptr.patt [concrete = constants.%ptr.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "a.carbon"] {
@@ -499,16 +499,12 @@ var ptr: E* = &value;
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %value.patt: %pattern_type.98b = ref_binding_pattern value [concrete = constants.%value.patt]
// CHECK:STDOUT: %value.var_patt: %pattern_type.98b = var_pattern %value.patt [concrete = constants.%value.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %value.var: ref %C = var_storage %value.var_patt [concrete]
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
// CHECK:STDOUT: %value: ref %C = wrapper_binding value, %value.var [concrete = %value.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = ref_binding_pattern ptr [concrete = constants.%ptr.patt]
// CHECK:STDOUT: %ptr.var_patt: %pattern_type.fcb = var_pattern %ptr.patt [concrete = constants.%ptr.var_patt]
// CHECK:STDOUT: %value.patt: %pattern_type.98b = ref_binding_pattern value [concrete = constants.%value.patt]
// CHECK:STDOUT: %value.var_patt: %pattern_type.98b = var_pattern %value.patt [concrete = constants.%value.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.var: ref %ptr.6b6 = var_storage %ptr.var_patt [concrete]
// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8_11 [concrete = constants.%ptr.6b6] {
@@ -516,6 +512,10 @@ var ptr: E* = &value;
// CHECK:STDOUT: %ptr.loc8_11: type = ptr_type %D.ref [concrete = constants.%ptr.6b6]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.loc8_8: ref %ptr.6b6 = wrapper_binding ptr, %ptr.var [concrete = %ptr.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = ref_binding_pattern ptr [concrete = constants.%ptr.patt]
// CHECK:STDOUT: %ptr.var_patt: %pattern_type.fcb = var_pattern %ptr.patt [concrete = constants.%ptr.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "a.carbon"] {
@@ -606,16 +606,12 @@ var ptr: E* = &value;
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %value.patt: %pattern_type.98b = ref_binding_pattern value [concrete = constants.%value.patt]
// CHECK:STDOUT: %value.var_patt: %pattern_type.98b = var_pattern %value.patt [concrete = constants.%value.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %value.var: ref %C = var_storage %value.var_patt [concrete]
// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C]
// CHECK:STDOUT: %value: ref %C = wrapper_binding value, %value.var [concrete = %value.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = ref_binding_pattern ptr [concrete = constants.%ptr.patt]
// CHECK:STDOUT: %ptr.var_patt: %pattern_type.fcb = var_pattern %ptr.patt [concrete = constants.%ptr.var_patt]
// CHECK:STDOUT: %value.patt: %pattern_type.98b = ref_binding_pattern value [concrete = constants.%value.patt]
// CHECK:STDOUT: %value.var_patt: %pattern_type.98b = var_pattern %value.patt [concrete = constants.%value.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.var: ref %ptr.6b6 = var_storage %ptr.var_patt [concrete]
// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8_11 [concrete = constants.%ptr.6b6] {
@@ -623,6 +619,10 @@ var ptr: E* = &value;
// CHECK:STDOUT: %ptr.loc8_11: type = ptr_type %E.ref [concrete = constants.%ptr.6b6]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.loc8_8: ref %ptr.6b6 = wrapper_binding ptr, %ptr.var [concrete = %ptr.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = ref_binding_pattern ptr [concrete = constants.%ptr.patt]
// CHECK:STDOUT: %ptr.var_patt: %pattern_type.fcb = var_pattern %ptr.patt [concrete = constants.%ptr.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "b.carbon"] {
@@ -713,16 +713,12 @@ var ptr: E* = &value;
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %value.patt: %pattern_type.98b = ref_binding_pattern value [concrete = constants.%value.patt]
// CHECK:STDOUT: %value.var_patt: %pattern_type.98b = var_pattern %value.patt [concrete = constants.%value.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %value.var: ref %C = var_storage %value.var_patt [concrete]
// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C]
// CHECK:STDOUT: %value: ref %C = wrapper_binding value, %value.var [concrete = %value.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = ref_binding_pattern ptr [concrete = constants.%ptr.patt]
// CHECK:STDOUT: %ptr.var_patt: %pattern_type.fcb = var_pattern %ptr.patt [concrete = constants.%ptr.var_patt]
// CHECK:STDOUT: %value.patt: %pattern_type.98b = ref_binding_pattern value [concrete = constants.%value.patt]
// CHECK:STDOUT: %value.var_patt: %pattern_type.98b = var_pattern %value.patt [concrete = constants.%value.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.var: ref %ptr.6b6 = var_storage %ptr.var_patt [concrete]
// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8_11 [concrete = constants.%ptr.6b6] {
@@ -730,6 +726,10 @@ var ptr: E* = &value;
// CHECK:STDOUT: %ptr.loc8_11: type = ptr_type %E.ref [concrete = constants.%ptr.6b6]
// CHECK:STDOUT: }
// CHECK:STDOUT: %ptr.loc8_8: ref %ptr.6b6 = wrapper_binding ptr, %ptr.var [concrete = %ptr.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = ref_binding_pattern ptr [concrete = constants.%ptr.patt]
// CHECK:STDOUT: %ptr.var_patt: %pattern_type.fcb = var_pattern %ptr.patt [concrete = constants.%ptr.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "b.carbon"] {
+4 -4
View File
@@ -132,10 +132,6 @@ fn Run() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Run() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.c3e = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.c3e = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %ptr = var_storage %a.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr, (constants.%DefaultOrUnformed.impl_witness.961) [concrete = constants.%DefaultOrUnformed.facet]
// CHECK:STDOUT: %.loc7_23.1: %DefaultOrUnformed.type = converted constants.%ptr, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet]
@@ -149,6 +145,10 @@ fn Run() {
// CHECK:STDOUT: %ptr: type = ptr_type %Cycle.ref [concrete = constants.%ptr]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %ptr = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.c3e = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.c3e = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %a.var, constants.%Destroy.Op
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var)
// CHECK:STDOUT: return
+4 -4
View File
@@ -77,10 +77,6 @@ fn Run() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Cycle.decl.loc4: type = class_decl @Cycle [concrete = constants.%Cycle] {} {}
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.38c = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.38c = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %struct_type.b = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %.loc6: type = splice_block %struct_type.b [concrete = constants.%struct_type.b] {
// CHECK:STDOUT: %Cycle.ref: type = name_ref Cycle, %Cycle.decl.loc4 [concrete = constants.%Cycle]
@@ -88,6 +84,10 @@ fn Run() {
// CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %ptr} [concrete = constants.%struct_type.b]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %struct_type.b = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.38c = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.38c = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Cycle.decl.loc8: type = class_decl @Cycle [concrete = constants.%Cycle] {} {}
// CHECK:STDOUT: }
// CHECK:STDOUT:
+20 -20
View File
@@ -279,16 +279,16 @@ var x: () = D.C.F();
// CHECK:STDOUT: .x = %x
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x.var: ref %empty_tuple.type = var_storage %x.var_patt [concrete]
// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.3 [concrete = constants.%empty_tuple.type] {
// CHECK:STDOUT: %.loc6_9.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc6_9.3: type = converted %.loc6_9.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x: ref %empty_tuple.type = wrapper_binding x, %x.var [concrete = %x.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "a.carbon"] {
@@ -338,16 +338,16 @@ var x: () = D.C.F();
// CHECK:STDOUT: .x = %x
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x.var: ref %empty_tuple.type = var_storage %x.var_patt [concrete]
// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.3 [concrete = constants.%empty_tuple.type] {
// CHECK:STDOUT: %.loc6_9.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc6_9.3: type = converted %.loc6_9.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x: ref %empty_tuple.type = wrapper_binding x, %x.var [concrete = %x.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "c.carbon"] {
@@ -397,16 +397,16 @@ var x: () = D.C.F();
// CHECK:STDOUT: .x = %x
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x.var: ref %empty_tuple.type = var_storage %x.var_patt [concrete]
// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.3 [concrete = constants.%empty_tuple.type] {
// CHECK:STDOUT: %.loc6_9.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc6_9.3: type = converted %.loc6_9.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x: ref %empty_tuple.type = wrapper_binding x, %x.var [concrete = %x.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C [from "c.carbon"] {
@@ -460,16 +460,16 @@ var x: () = D.C.F();
// CHECK:STDOUT: .x = %x
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x.var: ref %empty_tuple.type = var_storage %x.var_patt [concrete]
// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.3 [concrete = constants.%empty_tuple.type] {
// CHECK:STDOUT: %.loc6_9.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc6_9.3: type = converted %.loc6_9.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x: ref %empty_tuple.type = wrapper_binding x, %x.var [concrete = %x.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @D [from "e.carbon"] {
@@ -532,16 +532,16 @@ var x: () = D.C.F();
// CHECK:STDOUT: .x = %x
// CHECK:STDOUT: }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x.var: ref %empty_tuple.type = var_storage %x.var_patt [concrete]
// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.3 [concrete = constants.%empty_tuple.type] {
// CHECK:STDOUT: %.loc6_9.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
// CHECK:STDOUT: %.loc6_9.3: type = converted %.loc6_9.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x: ref %empty_tuple.type = wrapper_binding x, %x.var [concrete = %x.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type = ref_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type = var_pattern %x.patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @D [from "e.carbon"] {
@@ -370,9 +370,6 @@ fn PassPartialB(b: partial B) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @ConvertValue(%c.param: %C) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = value_binding_pattern a [concrete = constants.%a.patt.bb7b23.1]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.ref: %C = name_ref c, %c
// CHECK:STDOUT: %.loc24_21.1: %A = as_compatible %c.ref
// CHECK:STDOUT: %.loc24_21.2: ref %B = class_element_access %.loc24_21.1, element0
@@ -381,6 +378,9 @@ fn PassPartialB(b: partial B) {
// CHECK:STDOUT: %.loc24_21.5: %A = acquire_value %.loc24_21.4
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %a: %A = wrapper_binding a, %.loc24_21.5
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = value_binding_pattern a [concrete = constants.%a.patt.bb7b23.1]
// CHECK:STDOUT: }
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -404,9 +404,6 @@ fn PassPartialB(b: partial B) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @ConvertInit() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = value_binding_pattern a [concrete = constants.%a.patt.bb7b23.2]
// CHECK:STDOUT: }
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8]
// CHECK:STDOUT: %.loc32_46.1: %struct_type.a.a6c = struct_literal (%int_1) [concrete = constants.%struct.48c]
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc]
@@ -457,6 +454,9 @@ fn PassPartialB(b: partial B) {
// CHECK:STDOUT: %.loc32_66.7: %A = acquire_value %.loc32_66.6
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %a: %A = wrapper_binding a, %.loc32_66.7
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = value_binding_pattern a [concrete = constants.%a.patt.bb7b23.2]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.320)
// CHECK:STDOUT: return
// CHECK:STDOUT: }
@@ -253,10 +253,6 @@ fn Run() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Run() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.860 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.860 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %Child = var_storage %a.var_patt
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6]
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8]
@@ -287,6 +283,10 @@ fn Run() {
// CHECK:STDOUT: assign %a.var, %.loc7_3
// CHECK:STDOUT: %Child.ref: type = name_ref Child, imports.%Main.Child [concrete = constants.%Child]
// CHECK:STDOUT: %a: ref %Child = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.860 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.860 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.ref.loc8: ref %Child = name_ref a, %a
// CHECK:STDOUT: %x.ref: %Base.elem = name_ref x, imports.%Main.import_ref.230 [concrete = imports.%.11f]
// CHECK:STDOUT: %.loc8_4.1: ref %Base = as_compatible %a.ref.loc8
+4 -4
View File
@@ -145,10 +145,6 @@ fn G() -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G() -> out %return.param: %i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.f15 = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.f15 = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref %Class = var_storage %v.var_patt
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8]
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc]
@@ -176,6 +172,10 @@ fn G() -> i32 {
// CHECK:STDOUT: assign %v.var, %.loc26_35
// CHECK:STDOUT: %Class.ref.loc26_10: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %v: ref %Class = wrapper_binding v, %v.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.f15 = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.f15 = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %v.var, constants.%Destroy.Op.1a2547.4
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var)
+4 -4
View File
@@ -182,10 +182,6 @@ class A {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @B.Make() -> out %return.param: %B {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.6f2 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.6f2 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8]
// CHECK:STDOUT: %.loc19_39.1: %struct_type.n.44a = struct_literal (%int_1) [concrete = constants.%struct]
// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
@@ -201,6 +197,10 @@ class A {
// CHECK:STDOUT: assign %return.param, %.loc19_18
// CHECK:STDOUT: %Self.ref.loc19: type = name_ref Self, constants.%B [concrete = constants.%B]
// CHECK:STDOUT: %b: ref %B = wrapper_binding b, %return.param
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.6f2 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.6f2 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc19_23: %B = acquire_value %b
// CHECK:STDOUT: return %.loc19_23 to %return.param
// CHECK:STDOUT: }
+4 -4
View File
@@ -448,10 +448,6 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @CallWithRef() -> out %return.param: %i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = ref_binding_pattern c [concrete = constants.%c.patt.345]
// CHECK:STDOUT: %c.var_patt: %pattern_type.f15 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %Class = var_storage %c.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.4e8) [concrete = constants.%DefaultOrUnformed.facet]
// CHECK:STDOUT: %.loc43_15.1: %DefaultOrUnformed.type = converted constants.%Class, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet]
@@ -463,6 +459,10 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: assign %c.var, %T.as.DefaultOrUnformed.impl.Op.call
// CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %c: ref %Class = wrapper_binding c, %c.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = ref_binding_pattern c [concrete = constants.%c.patt.345]
// CHECK:STDOUT: %c.var_patt: %pattern_type.f15 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.ref: ref %Class = name_ref c, %c
// CHECK:STDOUT: %G.ref: %Class.G.type = name_ref G, @Class.%Class.G.decl [concrete = constants.%Class.G]
// CHECK:STDOUT: %Class.G.bound: <bound method> = bound_method %c.ref, %G.ref
+4 -4
View File
@@ -113,10 +113,6 @@ fn Run() -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Run() -> out %return.param: %i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.f15 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %Class = var_storage %c.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.4e8) [concrete = constants.%DefaultOrUnformed.facet]
// CHECK:STDOUT: %.loc20_15.1: %DefaultOrUnformed.type = converted constants.%Class, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet]
@@ -128,6 +124,10 @@ fn Run() -> i32 {
// CHECK:STDOUT: assign %c.var, %T.as.DefaultOrUnformed.impl.Op.call
// CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
// CHECK:STDOUT: %c: ref %Class = wrapper_binding c, %c.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = ref_binding_pattern c [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.var_patt: %pattern_type.f15 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.ref: ref %Class = name_ref c, %c
// CHECK:STDOUT: %F.ref: %Class.F.type = name_ref F, @Class.%Class.F.decl [concrete = constants.%Class.F]
// CHECK:STDOUT: %Class.F.call: init %i32 = call %F.ref()
+14 -14
View File
@@ -736,10 +736,6 @@ class T2(G2:! type) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Use() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.746 = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.746 = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %Derived = var_storage %d.var_patt
// CHECK:STDOUT: %.loc15_37.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc15_38.1: %struct_type.base.f5e = struct_literal (%.loc15_37.1) [concrete = constants.%struct.6b1]
@@ -760,6 +756,10 @@ class T2(G2:! type) {
// CHECK:STDOUT: assign %d.var, %.loc15_3
// CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived]
// CHECK:STDOUT: %d: ref %Derived = wrapper_binding d, %d.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.746 = ref_binding_pattern d [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.var_patt: %pattern_type.746 = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %d.var, constants.%Destroy.Op.1a2547.5
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%d.var)
// CHECK:STDOUT: <elided>
@@ -821,10 +821,6 @@ class T2(G2:! type) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.b8d = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.b8d = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref %Base = var_storage %v.var_patt
// CHECK:STDOUT: %.loc8_35.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc8_35.2: ref %ptr.454 = class_element_access %v.var, element0
@@ -838,6 +834,10 @@ class T2(G2:! type) {
// CHECK:STDOUT: %Base.ref: type = name_ref Base, imports.%Modifiers.Base [concrete = constants.%Base]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: ref %Base = wrapper_binding v, %v.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt: %pattern_type.b8d = ref_binding_pattern v [concrete = constants.%v.patt]
// CHECK:STDOUT: %v.var_patt: %pattern_type.b8d = var_pattern %v.patt [concrete = constants.%v.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %v.var, constants.%Destroy.Op.1a2547.3
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%v.var)
// CHECK:STDOUT: <elided>
@@ -923,10 +923,6 @@ class T2(G2:! type) {
// CHECK:STDOUT: fn @F() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b1.patt: %pattern_type.912 = ref_binding_pattern b1 [concrete = constants.%b1.patt]
// CHECK:STDOUT: %b1.var_patt: %pattern_type.912 = var_pattern %b1.patt [concrete = constants.%b1.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b1.var: ref %Base = var_storage %b1.var_patt
// CHECK:STDOUT: %i.ref.loc14_25: ref %i32 = name_ref i, %i
// CHECK:STDOUT: %i.ref.loc14_34: ref %i32 = name_ref i, %i
@@ -956,8 +952,8 @@ class T2(G2:! type) {
// CHECK:STDOUT: %Base.ref.loc14: type = name_ref Base, file.%Base.decl [concrete = constants.%Base]
// CHECK:STDOUT: %b1: ref %Base = wrapper_binding b1, %b1.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b2.patt: %pattern_type.912 = ref_binding_pattern b2 [concrete = constants.%b2.patt]
// CHECK:STDOUT: %b2.var_patt: %pattern_type.912 = var_pattern %b2.patt [concrete = constants.%b2.var_patt]
// CHECK:STDOUT: %b1.patt: %pattern_type.912 = ref_binding_pattern b1 [concrete = constants.%b1.patt]
// CHECK:STDOUT: %b1.var_patt: %pattern_type.912 = var_pattern %b1.patt [concrete = constants.%b1.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b2.var: ref %Base = var_storage %b2.var_patt
// CHECK:STDOUT: %int_3.loc15: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba]
@@ -987,6 +983,10 @@ class T2(G2:! type) {
// CHECK:STDOUT: assign %b2.var, %.loc15_3
// CHECK:STDOUT: %Base.ref.loc15: type = name_ref Base, file.%Base.decl [concrete = constants.%Base]
// CHECK:STDOUT: %b2: ref %Base = wrapper_binding b2, %b2.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b2.patt: %pattern_type.912 = ref_binding_pattern b2 [concrete = constants.%b2.patt]
// CHECK:STDOUT: %b2.var_patt: %pattern_type.912 = var_pattern %b2.patt [concrete = constants.%b2.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: %Destroy.Op.bound.loc15: <bound method> = bound_method %b2.var, constants.%Destroy.Op.1a2547.5
// CHECK:STDOUT: %Destroy.Op.call.loc15: init %empty_tuple.type = call %Destroy.Op.bound.loc15(%b2.var)
+21 -21
View File
@@ -213,10 +213,6 @@ fn F(a: Outer*) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Outer.F() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %o.patt: %pattern_type.d6c = ref_binding_pattern o [concrete = constants.%o.patt.a05f50.1]
// CHECK:STDOUT: %o.var_patt: %pattern_type.d6c = var_pattern %o.patt [concrete = constants.%o.var_patt.6496fb.1]
// CHECK:STDOUT: }
// CHECK:STDOUT: %o.var: ref %Outer = var_storage %o.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet.loc18: %DefaultOrUnformed.type = facet_value constants.%Outer, (constants.%DefaultOrUnformed.impl_witness.474) [concrete = constants.%DefaultOrUnformed.facet.1fd]
// CHECK:STDOUT: %.loc18_24.1: %DefaultOrUnformed.type = converted constants.%Outer, %DefaultOrUnformed.facet.loc18 [concrete = constants.%DefaultOrUnformed.facet.1fd]
@@ -229,8 +225,8 @@ fn F(a: Outer*) {
// CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer]
// CHECK:STDOUT: %o: ref %Outer = wrapper_binding o, %o.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete = constants.%i.patt.539460.1]
// CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete = constants.%i.var_patt.15311d.1]
// CHECK:STDOUT: %o.patt: %pattern_type.d6c = ref_binding_pattern o [concrete = constants.%o.patt.a05f50.1]
// CHECK:STDOUT: %o.var_patt: %pattern_type.d6c = var_pattern %o.patt [concrete = constants.%o.var_patt.6496fb.1]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i.var: ref %Inner = var_storage %i.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%Inner, (constants.%DefaultOrUnformed.impl_witness.b1a) [concrete = constants.%DefaultOrUnformed.facet.eb3]
@@ -243,6 +239,10 @@ fn F(a: Outer*) {
// CHECK:STDOUT: assign %i.var, %T.as.DefaultOrUnformed.impl.Op.call.loc19
// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, @Outer.%Inner.decl [concrete = constants.%Inner]
// CHECK:STDOUT: %i: ref %Inner = wrapper_binding i, %i.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete = constants.%i.patt.539460.1]
// CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete = constants.%i.var_patt.15311d.1]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc19: <bound method> = bound_method %i.var, constants.%Destroy.Op.1a2547.4
// CHECK:STDOUT: %Destroy.Op.call.loc19: init %empty_tuple.type = call %Destroy.Op.bound.loc19(%i.var)
// CHECK:STDOUT: %Destroy.Op.bound.loc18: <bound method> = bound_method %o.var, constants.%Destroy.Op.1a2547.6
@@ -252,10 +252,6 @@ fn F(a: Outer*) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Inner.G() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %o.patt: %pattern_type.d6c = ref_binding_pattern o [concrete = constants.%o.patt.a05f50.2]
// CHECK:STDOUT: %o.var_patt: %pattern_type.d6c = var_pattern %o.patt [concrete = constants.%o.var_patt.6496fb.2]
// CHECK:STDOUT: }
// CHECK:STDOUT: %o.var: ref %Outer = var_storage %o.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet.loc29: %DefaultOrUnformed.type = facet_value constants.%Outer, (constants.%DefaultOrUnformed.impl_witness.474) [concrete = constants.%DefaultOrUnformed.facet.1fd]
// CHECK:STDOUT: %.loc29_26.1: %DefaultOrUnformed.type = converted constants.%Outer, %DefaultOrUnformed.facet.loc29 [concrete = constants.%DefaultOrUnformed.facet.1fd]
@@ -268,8 +264,8 @@ fn F(a: Outer*) {
// CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer]
// CHECK:STDOUT: %o: ref %Outer = wrapper_binding o, %o.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete = constants.%i.patt.539460.2]
// CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete = constants.%i.var_patt.15311d.2]
// CHECK:STDOUT: %o.patt: %pattern_type.d6c = ref_binding_pattern o [concrete = constants.%o.patt.a05f50.2]
// CHECK:STDOUT: %o.var_patt: %pattern_type.d6c = var_pattern %o.patt [concrete = constants.%o.var_patt.6496fb.2]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i.var: ref %Inner = var_storage %i.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet.loc30: %DefaultOrUnformed.type = facet_value constants.%Inner, (constants.%DefaultOrUnformed.impl_witness.b1a) [concrete = constants.%DefaultOrUnformed.facet.eb3]
@@ -282,6 +278,10 @@ fn F(a: Outer*) {
// CHECK:STDOUT: assign %i.var, %T.as.DefaultOrUnformed.impl.Op.call.loc30
// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, @Outer.%Inner.decl [concrete = constants.%Inner]
// CHECK:STDOUT: %i: ref %Inner = wrapper_binding i, %i.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete = constants.%i.patt.539460.2]
// CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete = constants.%i.var_patt.15311d.2]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc30: <bound method> = bound_method %i.var, constants.%Destroy.Op.1a2547.4
// CHECK:STDOUT: %Destroy.Op.call.loc30: init %empty_tuple.type = call %Destroy.Op.bound.loc30(%i.var)
// CHECK:STDOUT: %Destroy.Op.bound.loc29: <bound method> = bound_method %o.var, constants.%Destroy.Op.1a2547.6
@@ -291,10 +291,6 @@ fn F(a: Outer*) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Outer.H() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %o.patt: %pattern_type.d6c = ref_binding_pattern o [concrete = constants.%o.patt.a05f50.3]
// CHECK:STDOUT: %o.var_patt: %pattern_type.d6c = var_pattern %o.patt [concrete = constants.%o.var_patt.6496fb.3]
// CHECK:STDOUT: }
// CHECK:STDOUT: %o.var: ref %Outer = var_storage %o.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet.loc36: %DefaultOrUnformed.type = facet_value constants.%Outer, (constants.%DefaultOrUnformed.impl_witness.474) [concrete = constants.%DefaultOrUnformed.facet.1fd]
// CHECK:STDOUT: %.loc36_24.1: %DefaultOrUnformed.type = converted constants.%Outer, %DefaultOrUnformed.facet.loc36 [concrete = constants.%DefaultOrUnformed.facet.1fd]
@@ -307,8 +303,8 @@ fn F(a: Outer*) {
// CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer]
// CHECK:STDOUT: %o: ref %Outer = wrapper_binding o, %o.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete = constants.%i.patt.539460.3]
// CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete = constants.%i.var_patt.15311d.3]
// CHECK:STDOUT: %o.patt: %pattern_type.d6c = ref_binding_pattern o [concrete = constants.%o.patt.a05f50.3]
// CHECK:STDOUT: %o.var_patt: %pattern_type.d6c = var_pattern %o.patt [concrete = constants.%o.var_patt.6496fb.3]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i.var: ref %Inner = var_storage %i.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet.loc37: %DefaultOrUnformed.type = facet_value constants.%Inner, (constants.%DefaultOrUnformed.impl_witness.b1a) [concrete = constants.%DefaultOrUnformed.facet.eb3]
@@ -321,6 +317,10 @@ fn F(a: Outer*) {
// CHECK:STDOUT: assign %i.var, %T.as.DefaultOrUnformed.impl.Op.call.loc37
// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, @Outer.%Inner.decl [concrete = constants.%Inner]
// CHECK:STDOUT: %i: ref %Inner = wrapper_binding i, %i.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete = constants.%i.patt.539460.3]
// CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete = constants.%i.var_patt.15311d.3]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc37: <bound method> = bound_method %i.var, constants.%Destroy.Op.1a2547.4
// CHECK:STDOUT: %Destroy.Op.call.loc37: init %empty_tuple.type = call %Destroy.Op.bound.loc37(%i.var)
// CHECK:STDOUT: %Destroy.Op.bound.loc36: <bound method> = bound_method %o.var, constants.%Destroy.Op.1a2547.6
@@ -354,9 +354,6 @@ fn F(a: Outer*) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F(%a.param: %ptr.286) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.36a = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.ref.loc46: %ptr.286 = name_ref a, %a
// CHECK:STDOUT: %.loc46_26: ref %Outer = deref %a.ref.loc46
// CHECK:STDOUT: %pi.ref.loc46: %Outer.elem.fe3 = name_ref pi, @Outer.%.loc42 [concrete = @Outer.%.loc42]
@@ -368,6 +365,9 @@ fn F(a: Outer*) {
// CHECK:STDOUT: %ptr.loc46: type = ptr_type %Inner.ref [concrete = constants.%ptr.001]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: %ptr.001 = wrapper_binding b, %.loc46_29.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.36a = value_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.ref.loc48_3: %ptr.286 = name_ref a, %a
// CHECK:STDOUT: %.loc48_4.1: ref %Outer = deref %a.ref.loc48_3
// CHECK:STDOUT: %po.ref.loc48: %Outer.elem.3ef = name_ref po, @Outer.%.loc40 [concrete = @Outer.%.loc40]
+4 -4
View File
@@ -174,10 +174,6 @@ fn G(o: Outer) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G(%o.param: %Outer) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete = constants.%i.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i.var: ref %Inner = var_storage %i.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Inner, (constants.%DefaultOrUnformed.impl_witness.b1a) [concrete = constants.%DefaultOrUnformed.facet]
// CHECK:STDOUT: %.loc26_24.1: %DefaultOrUnformed.type = converted constants.%Inner, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet]
@@ -192,6 +188,10 @@ fn G(o: Outer) {
// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, @Outer.%Inner.decl [concrete = constants.%Inner]
// CHECK:STDOUT: }
// CHECK:STDOUT: %i: ref %Inner = wrapper_binding i, %i.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete = constants.%i.patt]
// CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete = constants.%i.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %i.var, constants.%Destroy.Op.1a2547.4
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%i.var)
// CHECK:STDOUT: return
+10 -10
View File
@@ -253,10 +253,6 @@ class A {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @D.DF() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete = constants.%a.patt.17c]
// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %A = var_storage %a.var_patt
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8]
// CHECK:STDOUT: %.loc33_32.1: %struct_type.a.a6c = struct_literal (%int_1) [concrete = constants.%struct.48c]
@@ -274,8 +270,8 @@ class A {
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %a: ref %A = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.e78 = ref_binding_pattern b [concrete = constants.%b.patt.245]
// CHECK:STDOUT: %b.var_patt: %pattern_type.e78 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete = constants.%a.patt.17c]
// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %B = var_storage %b.var_patt
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc]
@@ -294,8 +290,8 @@ class A {
// CHECK:STDOUT: %B.ref: type = name_ref B, @A.%B.decl [concrete = constants.%B]
// CHECK:STDOUT: %b: ref %B = wrapper_binding b, %b.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %c.patt: %pattern_type.ca8 = ref_binding_pattern c [concrete = constants.%c.patt.a75]
// CHECK:STDOUT: %c.var_patt: %pattern_type.ca8 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.e78 = ref_binding_pattern b [concrete = constants.%b.patt.245]
// CHECK:STDOUT: %b.var_patt: %pattern_type.e78 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.var: ref %C = var_storage %c.var_patt
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba]
@@ -314,8 +310,8 @@ class A {
// CHECK:STDOUT: %C.ref: type = name_ref C, @B.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %c: ref %C = wrapper_binding c, %c.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.a0b = ref_binding_pattern d [concrete = constants.%d.patt.60f]
// CHECK:STDOUT: %d.var_patt: %pattern_type.a0b = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.ca8 = ref_binding_pattern c [concrete = constants.%c.patt.a75]
// CHECK:STDOUT: %c.var_patt: %pattern_type.ca8 = var_pattern %c.patt [concrete = constants.%c.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d.var: ref %D = var_storage %d.var_patt
// CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1]
@@ -333,6 +329,10 @@ class A {
// CHECK:STDOUT: assign %d.var, %.loc36_7
// CHECK:STDOUT: %D.ref: type = name_ref D, @C.%D.decl [concrete = constants.%D]
// CHECK:STDOUT: %d: ref %D = wrapper_binding d, %d.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %d.patt: %pattern_type.a0b = ref_binding_pattern d [concrete = constants.%d.patt.60f]
// CHECK:STDOUT: %d.var_patt: %pattern_type.a0b = var_pattern %d.patt [concrete = constants.%d.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %AF.ref: %A.AF.type = name_ref AF, @A.%A.AF.decl [concrete = constants.%A.AF]
// CHECK:STDOUT: %A.AF.call: init %empty_tuple.type = call %AF.ref()
// CHECK:STDOUT: %BF.ref: %B.BF.type = name_ref BF, @B.%B.BF.decl [concrete = constants.%B.BF]
+6 -6
View File
@@ -182,10 +182,6 @@ fn Run() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Run() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %i32 = var_storage %a.var_patt
// CHECK:STDOUT: %F.ref.loc30: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
// CHECK:STDOUT: %F.call: init %i32 = call %F.ref.loc30()
@@ -193,8 +189,8 @@ fn Run() {
// CHECK:STDOUT: %i32.loc30: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %a: ref %i32 = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.6b6 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %i32 = var_storage %b.var_patt
// CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
@@ -203,6 +199,10 @@ fn Run() {
// CHECK:STDOUT: assign %b.var, %Class.F.call
// CHECK:STDOUT: %i32.loc31: type = type_literal constants.%i32 [concrete = constants.%i32]
// CHECK:STDOUT: %b: ref %i32 = wrapper_binding b, %b.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = ref_binding_pattern b [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.var_patt: %pattern_type.6b6 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc31: <bound method> = bound_method %b.var, constants.%Destroy.Op.1a2547.2
// CHECK:STDOUT: %Destroy.Op.call.loc31: init %empty_tuple.type = call %Destroy.Op.bound.loc31(%b.var)
// CHECK:STDOUT: %Destroy.Op.bound.loc30: <bound method> = bound_method %a.var, constants.%Destroy.Op.1a2547.2
+6 -6
View File
@@ -161,10 +161,6 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {}
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Class.F() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %Self.patt: %pattern_type.8c5 = ref_binding_pattern r#Self [concrete = constants.%Self.patt]
// CHECK:STDOUT: %Self.var_patt: %pattern_type.8c5 = var_pattern %Self.patt [concrete = constants.%Self.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Self.var: ref %ptr.7ee = var_storage %Self.var_patt
// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr.7ee, (constants.%DefaultOrUnformed.impl_witness.a7b) [concrete = constants.%DefaultOrUnformed.facet]
// CHECK:STDOUT: %.loc17_22.1: %DefaultOrUnformed.type = converted constants.%ptr.7ee, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet]
@@ -179,8 +175,8 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %Self: ref %ptr.7ee = wrapper_binding r#Self, %Self.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = ref_binding_pattern p [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.var_patt: %pattern_type.8c5 = var_pattern %p.patt [concrete = constants.%p.var_patt]
// CHECK:STDOUT: %Self.patt: %pattern_type.8c5 = ref_binding_pattern r#Self [concrete = constants.%Self.patt]
// CHECK:STDOUT: %Self.var_patt: %pattern_type.8c5 = var_pattern %Self.patt [concrete = constants.%Self.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %p.var: ref %ptr.7ee = var_storage %p.var_patt
// CHECK:STDOUT: %Self.ref.loc18_27: ref %ptr.7ee = name_ref r#Self, %Self
@@ -196,6 +192,10 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {}
// CHECK:STDOUT: %ptr.loc18: type = ptr_type %Self.ref.loc18_19 [concrete = constants.%ptr.7ee]
// CHECK:STDOUT: }
// CHECK:STDOUT: %p: ref %ptr.7ee = wrapper_binding p, %p.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = ref_binding_pattern p [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.var_patt: %pattern_type.8c5 = var_pattern %p.patt [concrete = constants.%p.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound.loc18: <bound method> = bound_method %p.var, constants.%Destroy.Op
// CHECK:STDOUT: %Destroy.Op.call.loc18: init %empty_tuple.type = call %Destroy.Op.bound.loc18(%p.var)
// CHECK:STDOUT: %Destroy.Op.bound.loc17: <bound method> = bound_method %Self.var, constants.%Destroy.Op
+4 -4
View File
@@ -166,10 +166,6 @@ fn Class.F(self) -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Class.Make() -> out %return.param: %Class {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %s.patt: %pattern_type.f15 = ref_binding_pattern s [concrete = constants.%s.patt]
// CHECK:STDOUT: %s.var_patt: %pattern_type.f15 = var_pattern %s.patt [concrete = constants.%s.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.4e8) [concrete = constants.%DefaultOrUnformed.facet]
// CHECK:STDOUT: %.loc18_25.1: %DefaultOrUnformed.type = converted constants.%Class, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet]
// CHECK:STDOUT: %as_type: type = facet_access_type %.loc18_25.1 [concrete = constants.%Class]
@@ -180,6 +176,10 @@ fn Class.F(self) -> i32 {
// CHECK:STDOUT: assign %return.param, %T.as.DefaultOrUnformed.impl.Op.call
// CHECK:STDOUT: %Self.ref.loc18: type = name_ref Self, constants.%Class [concrete = constants.%Class]
// CHECK:STDOUT: %s: ref %Class = wrapper_binding s, %return.param
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %s.patt: %pattern_type.f15 = ref_binding_pattern s [concrete = constants.%s.patt]
// CHECK:STDOUT: %s.var_patt: %pattern_type.f15 = var_pattern %s.patt [concrete = constants.%s.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %s.ref.loc19_5: ref %Class = name_ref s, %s
// CHECK:STDOUT: %s.ref.loc19_16: ref %Class = name_ref s, %s
// CHECK:STDOUT: %addr: %ptr.7ee = addr_of %s.ref.loc19_16
+6 -6
View File
@@ -73,10 +73,6 @@ var a_ptr: const C* = a_ptr_ref;
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.7d2 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.7d2 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %ptr.77f = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %.loc6: type = splice_block %ptr.loc6 [concrete = constants.%ptr.77f] {
// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, imports.%Main.C [concrete = constants.%C]
@@ -85,8 +81,8 @@ var a_ptr: const C* = a_ptr_ref;
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %ptr.77f = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a_ptr.patt: %pattern_type.7d2 = ref_binding_pattern a_ptr [concrete = constants.%a_ptr.patt]
// CHECK:STDOUT: %a_ptr.var_patt: %pattern_type.7d2 = var_pattern %a_ptr.patt [concrete = constants.%a_ptr.var_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.7d2 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.7d2 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a_ptr.var: ref %ptr.77f = var_storage %a_ptr.var_patt [concrete]
// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.77f] {
@@ -95,6 +91,10 @@ var a_ptr: const C* = a_ptr_ref;
// CHECK:STDOUT: %ptr.loc7: type = ptr_type %const.loc7 [concrete = constants.%ptr.77f]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a_ptr: ref %ptr.77f = wrapper_binding a_ptr, %a_ptr.var [concrete = %a_ptr.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a_ptr.patt: %pattern_type.7d2 = ref_binding_pattern a_ptr [concrete = constants.%a_ptr.patt]
// CHECK:STDOUT: %a_ptr.var_patt: %pattern_type.7d2 = var_pattern %a_ptr.patt [concrete = constants.%a_ptr.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+24 -24
View File
@@ -287,10 +287,6 @@ fn G() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G() -> out %return.param: %C {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete = constants.%a.patt.b51]
// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %array_type.9a3 = var_storage %a.var_patt
// CHECK:STDOUT: %.loc9_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc9_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
@@ -317,6 +313,10 @@ fn G() {
// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref.loc9 [concrete = constants.%array_type.9a3]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %array_type.9a3 = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete = constants.%a.patt.b51]
// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
// CHECK:STDOUT: %a.ref: ref %array_type.9a3 = name_ref a, %a
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.e0d]
@@ -543,10 +543,6 @@ fn G() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G() -> out %return.param: %i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete = constants.%a.patt.b51]
// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %array_type.9a3 = var_storage %a.var_patt
// CHECK:STDOUT: %.loc9_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc9_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
@@ -573,6 +569,10 @@ fn G() {
// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref [concrete = constants.%array_type.9a3]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %array_type.9a3 = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete = constants.%a.patt.b51]
// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
// CHECK:STDOUT: %a.ref: ref %array_type.9a3 = name_ref a, %a
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%int_3.1ba) [concrete = constants.%F.specific_fn]
@@ -742,10 +742,6 @@ fn G() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete = constants.%a.patt.b51]
// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %array_type.9a3 = var_storage %a.var_patt
// CHECK:STDOUT: %.loc9_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc9_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
@@ -772,6 +768,10 @@ fn G() {
// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref [concrete = constants.%array_type.9a3]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %array_type.9a3 = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete = constants.%a.patt.b51]
// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
// CHECK:STDOUT: %a.ref: ref %array_type.9a3 = name_ref a, %a
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%C, constants.%int_3) [concrete = constants.%F.specific_fn]
@@ -967,10 +967,6 @@ fn G() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G() -> out %return.param: %C {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete = constants.%a.patt.b51]
// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %array_type.9a3 = var_storage %a.var_patt
// CHECK:STDOUT: %.loc10_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc10_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
@@ -997,6 +993,10 @@ fn G() {
// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref.loc10 [concrete = constants.%array_type.9a3]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %array_type.9a3 = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete = constants.%a.patt.b51]
// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
// CHECK:STDOUT: %a.ref: ref %array_type.9a3 = name_ref a, %a
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.e0d]
@@ -1236,10 +1236,6 @@ fn G() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G() -> out %return.param: %i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.0ed = ref_binding_pattern a [concrete = constants.%a.patt.7d5]
// CHECK:STDOUT: %a.var_patt: %pattern_type.0ed = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %array_type.cec = var_storage %a.var_patt
// CHECK:STDOUT: %.loc11_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc11_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
@@ -1266,6 +1262,10 @@ fn G() {
// CHECK:STDOUT: %array_type: type = array_type %int_3, %D.ref [concrete = constants.%array_type.cec]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %array_type.cec = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.0ed = ref_binding_pattern a [concrete = constants.%a.patt.7d5]
// CHECK:STDOUT: %a.var_patt: %pattern_type.0ed = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
// CHECK:STDOUT: %a.ref: ref %array_type.cec = name_ref a, %a
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%int_3.1ba) [concrete = constants.%F.specific_fn]
@@ -1495,10 +1495,6 @@ fn G() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G() -> out %return.param: %i32 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete = constants.%a.patt.b51]
// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %array_type.9a3 = var_storage %a.var_patt
// CHECK:STDOUT: %.loc9_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %.loc9_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
@@ -1525,6 +1521,10 @@ fn G() {
// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref [concrete = constants.%array_type.9a3]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %array_type.9a3 = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete = constants.%a.patt.b51]
// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
// CHECK:STDOUT: %a.ref: ref %array_type.9a3 = name_ref a, %a
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %a.var, constants.%Destroy.Op.1a2547.3
+26 -26
View File
@@ -152,10 +152,6 @@ fn G(N:! i32) {
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %tuple_copy.patt: %pattern_type.394 = ref_binding_pattern tuple_copy [concrete = constants.%tuple_copy.patt]
// CHECK:STDOUT: %tuple_copy.var_patt: %pattern_type.394 = var_pattern %tuple_copy.patt [concrete = constants.%tuple_copy.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %tuple_copy.var: ref %tuple.type.e55 = var_storage %tuple_copy.var_patt [concrete]
// CHECK:STDOUT: %.loc4_26.1: type = splice_block %.loc4_26.3 [concrete = constants.%tuple.type.e55] {
// CHECK:STDOUT: %i32.loc4_18: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -165,8 +161,8 @@ fn G(N:! i32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %tuple_copy: ref %tuple.type.e55 = wrapper_binding tuple_copy, %tuple_copy.var [concrete = %tuple_copy.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %struct_copy.patt: %pattern_type.9c3 = ref_binding_pattern struct_copy [concrete = constants.%struct_copy.patt]
// CHECK:STDOUT: %struct_copy.var_patt: %pattern_type.9c3 = var_pattern %struct_copy.patt [concrete = constants.%struct_copy.var_patt]
// CHECK:STDOUT: %tuple_copy.patt: %pattern_type.394 = ref_binding_pattern tuple_copy [concrete = constants.%tuple_copy.patt]
// CHECK:STDOUT: %tuple_copy.var_patt: %pattern_type.394 = var_pattern %tuple_copy.patt [concrete = constants.%tuple_copy.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %struct_copy.var: ref %struct_type.a.b.c = var_storage %struct_copy.var_patt [concrete]
// CHECK:STDOUT: %.loc6: type = splice_block %struct_type.a.b.c [concrete = constants.%struct_type.a.b.c] {
@@ -177,8 +173,8 @@ fn G(N:! i32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %struct_copy: ref %struct_type.a.b.c = wrapper_binding struct_copy, %struct_copy.var [concrete = %struct_copy.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %tuple_index.patt: %pattern_type.97e = ref_binding_pattern tuple_index [concrete = constants.%tuple_index.patt]
// CHECK:STDOUT: %tuple_index.var_patt: %pattern_type.97e = var_pattern %tuple_index.patt [concrete = constants.%tuple_index.var_patt]
// CHECK:STDOUT: %struct_copy.patt: %pattern_type.9c3 = ref_binding_pattern struct_copy [concrete = constants.%struct_copy.patt]
// CHECK:STDOUT: %struct_copy.var_patt: %pattern_type.9c3 = var_pattern %struct_copy.patt [concrete = constants.%struct_copy.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %tuple_index.var: ref %array_type = var_storage %tuple_index.var_patt [concrete]
// CHECK:STDOUT: %.loc8: type = splice_block %array_type.loc8 [concrete = constants.%array_type] {
@@ -188,8 +184,8 @@ fn G(N:! i32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %tuple_index: ref %array_type = wrapper_binding tuple_index, %tuple_index.var [concrete = %tuple_index.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %struct_access.patt: %pattern_type.97e = ref_binding_pattern struct_access [concrete = constants.%struct_access.patt]
// CHECK:STDOUT: %struct_access.var_patt: %pattern_type.97e = var_pattern %struct_access.patt [concrete = constants.%struct_access.var_patt]
// CHECK:STDOUT: %tuple_index.patt: %pattern_type.97e = ref_binding_pattern tuple_index [concrete = constants.%tuple_index.patt]
// CHECK:STDOUT: %tuple_index.var_patt: %pattern_type.97e = var_pattern %tuple_index.patt [concrete = constants.%tuple_index.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %struct_access.var: ref %array_type = var_storage %struct_access.var_patt [concrete]
// CHECK:STDOUT: %.loc10: type = splice_block %array_type.loc10 [concrete = constants.%array_type] {
@@ -198,6 +194,10 @@ fn G(N:! i32) {
// CHECK:STDOUT: %array_type.loc10: type = array_type %int_1.loc10, %i32.loc10 [concrete = constants.%array_type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %struct_access: ref %array_type = wrapper_binding struct_access, %struct_access.var [concrete = %struct_access.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %struct_access.patt: %pattern_type.97e = ref_binding_pattern struct_access [concrete = constants.%struct_access.patt]
// CHECK:STDOUT: %struct_access.var_patt: %pattern_type.97e = var_pattern %struct_access.patt [concrete = constants.%struct_access.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -412,10 +412,6 @@ fn G(N:! i32) {
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %array_index.patt: %pattern_type.97e = ref_binding_pattern array_index [concrete = constants.%array_index.patt]
// CHECK:STDOUT: %array_index.var_patt: %pattern_type.97e = var_pattern %array_index.patt [concrete = constants.%array_index.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %array_index.var: ref %array_type.d27 = var_storage %array_index.var_patt [concrete]
// CHECK:STDOUT: %.loc9: type = splice_block %array_type [concrete = constants.%array_type.d27] {
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -423,6 +419,10 @@ fn G(N:! i32) {
// CHECK:STDOUT: %array_type: type = array_type %int_1, %i32 [concrete = constants.%array_type.d27]
// CHECK:STDOUT: }
// CHECK:STDOUT: %array_index: ref %array_type.d27 = wrapper_binding array_index, %array_index.var [concrete = %array_index.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %array_index.patt: %pattern_type.97e = ref_binding_pattern array_index [concrete = constants.%array_index.patt]
// CHECK:STDOUT: %array_index.var_patt: %pattern_type.97e = var_pattern %array_index.patt [concrete = constants.%array_index.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -670,10 +670,6 @@ fn G(N:! i32) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %u.patt.loc6_15.1: @F.%pattern_type.loc6 (%pattern_type.02b) = ref_binding_pattern u [symbolic = %u.patt.loc6_15.2 (constants.%u.patt)]
// CHECK:STDOUT: %u.var_patt.loc6_3.1: @F.%pattern_type.loc6 (%pattern_type.02b) = var_pattern %u.patt.loc6_15.1 [symbolic = %u.var_patt.loc6_3.2 (constants.%u.var_patt)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %u.var: ref @F.%tuple.type (%tuple.type.cd5) = var_storage %u.var_patt.loc6_3.1
// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6_30.1: %DefaultOrUnformed.type = facet_value constants.%tuple.type.cd5, (constants.%DefaultOrUnformed.lookup_impl_witness.2ab) [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.c98)]
// CHECK:STDOUT: %.loc6_30.1: %DefaultOrUnformed.type = converted constants.%tuple.type.cd5, %DefaultOrUnformed.facet.loc6_30.1 [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.c98)]
@@ -698,8 +694,8 @@ fn G(N:! i32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %u: ref @F.%tuple.type (%tuple.type.cd5) = wrapper_binding u, %u.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %v.patt.loc7_15.1: @F.%pattern_type.loc7 (%pattern_type.915) = ref_binding_pattern v [symbolic = %v.patt.loc7_15.2 (constants.%v.patt)]
// CHECK:STDOUT: %v.var_patt.loc7_3.1: @F.%pattern_type.loc7 (%pattern_type.915) = var_pattern %v.patt.loc7_15.1 [symbolic = %v.var_patt.loc7_3.2 (constants.%v.var_patt)]
// CHECK:STDOUT: %u.patt.loc6_15.1: @F.%pattern_type.loc6 (%pattern_type.02b) = ref_binding_pattern u [symbolic = %u.patt.loc6_15.2 (constants.%u.patt)]
// CHECK:STDOUT: %u.var_patt.loc6_3.1: @F.%pattern_type.loc6 (%pattern_type.02b) = var_pattern %u.patt.loc6_15.1 [symbolic = %u.var_patt.loc6_3.2 (constants.%u.var_patt)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.var: ref @F.%struct_type.a.loc7_23.2 (%struct_type.a) = var_storage %v.var_patt.loc7_3.1
// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7_24.1: %DefaultOrUnformed.type = facet_value constants.%struct_type.a, (constants.%DefaultOrUnformed.lookup_impl_witness.53f) [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.103)]
@@ -718,8 +714,8 @@ fn G(N:! i32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %v: ref @F.%struct_type.a.loc7_23.2 (%struct_type.a) = wrapper_binding v, %v.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %w.patt.loc8_15.1: @F.%pattern_type.loc8 (%pattern_type.78a) = ref_binding_pattern w [symbolic = %w.patt.loc8_15.2 (constants.%w.patt)]
// CHECK:STDOUT: %w.var_patt.loc8_3.1: @F.%pattern_type.loc8 (%pattern_type.78a) = var_pattern %w.patt.loc8_15.1 [symbolic = %w.var_patt.loc8_3.2 (constants.%w.var_patt)]
// CHECK:STDOUT: %v.patt.loc7_15.1: @F.%pattern_type.loc7 (%pattern_type.915) = ref_binding_pattern v [symbolic = %v.patt.loc7_15.2 (constants.%v.patt)]
// CHECK:STDOUT: %v.var_patt.loc7_3.1: @F.%pattern_type.loc7 (%pattern_type.915) = var_pattern %v.patt.loc7_15.1 [symbolic = %v.var_patt.loc7_3.2 (constants.%v.var_patt)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %w.var: ref @F.%array_type.loc8_27.2 (%array_type.50f) = var_storage %w.var_patt.loc8_3.1
// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8_28.1: %DefaultOrUnformed.type = facet_value constants.%array_type.50f, (constants.%DefaultOrUnformed.lookup_impl_witness.1fb) [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.d60)]
@@ -739,6 +735,10 @@ fn G(N:! i32) {
// CHECK:STDOUT: %array_type.loc8_27.1: type = array_type %int_5, %.loc8_23 [symbolic = %array_type.loc8_27.2 (constants.%array_type.50f)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %w: ref @F.%array_type.loc8_27.2 (%array_type.50f) = wrapper_binding w, %w.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %w.patt.loc8_15.1: @F.%pattern_type.loc8 (%pattern_type.78a) = ref_binding_pattern w [symbolic = %w.patt.loc8_15.2 (constants.%w.patt)]
// CHECK:STDOUT: %w.var_patt.loc8_3.1: @F.%pattern_type.loc8 (%pattern_type.78a) = var_pattern %w.patt.loc8_15.1 [symbolic = %w.var_patt.loc8_3.2 (constants.%w.var_patt)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %impl.elem0.loc8_3.1: @F.%.loc8_3.4 (%.260) = impl_witness_access constants.%Destroy.lookup_impl_witness.1f5, element0 [symbolic = %impl.elem0.loc8_3.2 (constants.%impl.elem0.375)]
// CHECK:STDOUT: %bound_method.loc8_3.1: <bound method> = bound_method %w.var, %impl.elem0.loc8_3.1
// CHECK:STDOUT: %Destroy.facet.loc8_3.1: %Destroy.type = facet_value constants.%array_type.50f, (constants.%Destroy.lookup_impl_witness.1f5) [symbolic = %Destroy.facet.loc8_3.3 (constants.%Destroy.facet.664)]
@@ -798,10 +798,6 @@ fn G(N:! i32) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %k.patt.loc14_15.1: @G.%pattern_type (%pattern_type.486) = ref_binding_pattern k [symbolic = %k.patt.loc14_15.2 (constants.%k.patt)]
// CHECK:STDOUT: %k.var_patt.loc14_3.1: @G.%pattern_type (%pattern_type.486) = var_pattern %k.patt.loc14_15.1 [symbolic = %k.var_patt.loc14_3.2 (constants.%k.var_patt)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %k.var: ref @G.%array_type.loc14_29.2 (%array_type.359) = var_storage %k.var_patt.loc14_3.1
// CHECK:STDOUT: %DefaultOrUnformed.facet.loc14_30.1: %DefaultOrUnformed.type = facet_value constants.%array_type.359, (constants.%DefaultOrUnformed.lookup_impl_witness.5c0) [symbolic = %DefaultOrUnformed.facet.loc14_30.2 (constants.%DefaultOrUnformed.facet.b1c)]
// CHECK:STDOUT: %.loc14_30.1: %DefaultOrUnformed.type = converted constants.%array_type.359, %DefaultOrUnformed.facet.loc14_30.1 [symbolic = %DefaultOrUnformed.facet.loc14_30.2 (constants.%DefaultOrUnformed.facet.b1c)]
@@ -825,6 +821,10 @@ fn G(N:! i32) {
// CHECK:STDOUT: %array_type.loc14_29.1: type = array_type %.loc14_28.2, %i32.loc14 [symbolic = %array_type.loc14_29.2 (constants.%array_type.359)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %k: ref @G.%array_type.loc14_29.2 (%array_type.359) = wrapper_binding k, %k.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %k.patt.loc14_15.1: @G.%pattern_type (%pattern_type.486) = ref_binding_pattern k [symbolic = %k.patt.loc14_15.2 (constants.%k.patt)]
// CHECK:STDOUT: %k.var_patt.loc14_3.1: @G.%pattern_type (%pattern_type.486) = var_pattern %k.patt.loc14_15.1 [symbolic = %k.var_patt.loc14_3.2 (constants.%k.var_patt)]
// CHECK:STDOUT: }
// CHECK:STDOUT: %impl.elem0.loc14_3.1: @G.%.loc14_3.4 (%.a73) = impl_witness_access constants.%Destroy.lookup_impl_witness.822, element0 [symbolic = %impl.elem0.loc14_3.2 (constants.%impl.elem0.fa7)]
// CHECK:STDOUT: %bound_method.loc14_3.1: <bound method> = bound_method %k.var, %impl.elem0.loc14_3.1
// CHECK:STDOUT: %Destroy.facet.loc14_3.1: %Destroy.type = facet_value constants.%array_type.359, (constants.%Destroy.lookup_impl_witness.822) [symbolic = %Destroy.facet.loc14_3.3 (constants.%Destroy.facet.a58)]
+3 -3
View File
@@ -127,9 +127,6 @@ let n: array(i32, G()) = (1, 2, 3);
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %n.patt: %pattern_type.771 = value_binding_pattern n [concrete = constants.%n.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %impl.elem0.loc11_35.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
// CHECK:STDOUT: %bound_method.loc11_35.1: <bound method> = bound_method @__global_init.%int_1, %impl.elem0.loc11_35.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094]
// CHECK:STDOUT: %specific_fn.loc11_35.1: <specific function> = specific_function %impl.elem0.loc11_35.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
@@ -186,6 +183,9 @@ let n: array(i32, G()) = (1, 2, 3);
// CHECK:STDOUT: %array_type: type = array_type %.loc11_22.4, %i32 [concrete = constants.%array_type]
// CHECK:STDOUT: }
// CHECK:STDOUT: %n: %array_type = wrapper_binding n, %.loc11_35.14
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %n.patt: %pattern_type.771 = value_binding_pattern n [concrete = constants.%n.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+12 -12
View File
@@ -91,10 +91,6 @@ var b: if false then A else B = MakeB();
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %A = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %.loc14_14.1: type = splice_block %.loc14_14.3 [concrete = constants.%A] {
// CHECK:STDOUT: %F.ref.loc14: %F.type = name_ref F, %F.decl [concrete = constants.%F]
@@ -105,8 +101,8 @@ var b: if false then A else B = MakeB();
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %A = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.e39 = ref_binding_pattern b [concrete = constants.%b.patt.492]
// CHECK:STDOUT: %b.var_patt: %pattern_type.e39 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %B = var_storage %b.var_patt [concrete]
// CHECK:STDOUT: %.loc15_15.1: type = splice_block %.loc15_15.3 [concrete = constants.%B] {
@@ -117,6 +113,10 @@ var b: if false then A else B = MakeB();
// CHECK:STDOUT: %.loc15_15.3: type = converted %F.call.loc15, %.loc15_15.2 [concrete = constants.%B]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: ref %B = wrapper_binding b, %b.var [concrete = %b.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.e39 = ref_binding_pattern b [concrete = constants.%b.patt.492]
// CHECK:STDOUT: %b.var_patt: %pattern_type.e39 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
@@ -159,10 +159,6 @@ var b: if false then A else B = MakeB();
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %A = var_storage %a.var_patt [concrete]
// CHECK:STDOUT: %.loc10_14.1: type = splice_block %.loc10_14.3 [concrete = constants.%A] {
// CHECK:STDOUT: %F.ref.loc10: %F.type = name_ref F, %F.decl [concrete = constants.%F]
@@ -173,8 +169,8 @@ var b: if false then A else B = MakeB();
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %A = wrapper_binding a, %a.var [concrete = %a.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.e39 = ref_binding_pattern b [concrete = constants.%b.patt.492]
// CHECK:STDOUT: %b.var_patt: %pattern_type.e39 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b.var: ref %B = var_storage %b.var_patt [concrete]
// CHECK:STDOUT: %.loc11_15.1: type = splice_block %.loc11_15.3 [concrete = constants.%B] {
@@ -185,6 +181,10 @@ var b: if false then A else B = MakeB();
// CHECK:STDOUT: %.loc11_15.3: type = converted %F.call.loc11, %.loc11_15.2 [concrete = constants.%B]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: ref %B = wrapper_binding b, %b.var [concrete = %b.var]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %b.patt: %pattern_type.e39 = ref_binding_pattern b [concrete = constants.%b.patt.492]
// CHECK:STDOUT: %b.var_patt: %pattern_type.e39 = var_pattern %b.patt [concrete = constants.%b.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @__global_init() {
+8 -8
View File
@@ -239,10 +239,6 @@ fn H() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.777 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.777 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref %tuple.type.555 = var_storage %a.var_patt
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
// CHECK:STDOUT: %.loc8_3: ref %tuple.type.555 = splice_block %a.var {}
@@ -256,6 +252,10 @@ fn H() {
// CHECK:STDOUT: %.loc8_31.3: type = converted %.loc8_31.2, constants.%tuple.type.555 [concrete = constants.%tuple.type.555]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: ref %tuple.type.555 = wrapper_binding a, %a.var
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.777 = ref_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.var_patt: %pattern_type.777 = var_pattern %a.patt [concrete = constants.%a.var_patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %a.var, constants.%Destroy.Op.1a2547.3
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%a.var)
// CHECK:STDOUT: <elided>
@@ -381,10 +381,6 @@ fn H() {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @H() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: <error> = ref_binding_pattern a [concrete = <error>]
// CHECK:STDOUT: %a.var_patt: <error> = var_pattern %a.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a.var: ref <error> = var_storage %a.var_patt [concrete = <error>]
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8]
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc]
@@ -392,6 +388,10 @@ fn H() {
// CHECK:STDOUT: assign %a.var, <error>
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: %a: <error> = wrapper_binding a, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: <error> = ref_binding_pattern a [concrete = <error>]
// CHECK:STDOUT: %a.var_patt: <error> = var_pattern %a.patt [concrete = <error>]
// CHECK:STDOUT: }
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e1e)
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
@@ -156,9 +156,6 @@ fn F[A:! J, B:! A](x: C(A, B)) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.283 = value_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %.loc22_28.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
// CHECK:STDOUT: %Goat.ref.loc22_33: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat]
// CHECK:STDOUT: %.loc22_28.2: ref %Goat = temporary_storage
@@ -175,6 +172,9 @@ fn F[A:! J, B:! A](x: C(A, B)) {
// CHECK:STDOUT: %.loc22_15.3: type = converted %.loc22_15.2, %as_type.loc22 [concrete = constants.%Goat]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x: %Goat = wrapper_binding x, %.loc22_30.3
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %x.patt: %pattern_type.283 = value_binding_pattern x [concrete = constants.%x.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %x.ref.loc23: %Goat = name_ref x, %x
// CHECK:STDOUT: %Bleet.ref.loc23: %Goat.Bleet.type = name_ref Bleet, @Goat.%Goat.Bleet.decl [concrete = constants.%Goat.Bleet]
// CHECK:STDOUT: %Goat.Bleet.call.loc23: init %empty_tuple.type = call %Bleet.ref.loc23()
+6 -6
View File
@@ -141,15 +141,15 @@ fn F(T: Z) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F(%c.param: %C) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.6cb = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.ref: %C = name_ref c, %c
// CHECK:STDOUT: %i.ref: %C.elem = name_ref i, @C.%.loc6 [concrete = @C.%.loc6]
// CHECK:STDOUT: %.loc13_22.1: ref %I.type = class_element_access %c.ref, element0
// CHECK:STDOUT: %.loc13_22.2: %I.type = acquire_value %.loc13_22.1
// CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type]
// CHECK:STDOUT: %a: %I.type = wrapper_binding a, %.loc13_22.2
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.6cb = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -166,15 +166,15 @@ fn F(T: Z) {
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F(%c.param: %C) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.6cb = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c.ref: %C = name_ref c, %c
// CHECK:STDOUT: %ij.ref: %C.elem = name_ref ij, @C.%.loc7 [concrete = @C.%.loc7]
// CHECK:STDOUT: %.loc21_22.1: ref %facet_type = class_element_access %c.ref, element0
// CHECK:STDOUT: %.loc21_22.2: %facet_type = acquire_value %.loc21_22.1
// CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type]
// CHECK:STDOUT: %a: %I.type = wrapper_binding a, <error> [concrete = <error>]
// CHECK:STDOUT: name_binding_decl {
// CHECK:STDOUT: %a.patt: %pattern_type.6cb = value_binding_pattern a [concrete = constants.%a.patt]
// CHECK:STDOUT: }
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: }
// CHECK:STDOUT:

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