|
|
@@ -172,12 +172,14 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness.906: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%C) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @impl.49c(%C) [concrete]
|
|
|
// CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.facet.494: %Destroy.type = facet_value %C, (%Destroy.impl_witness.906) [concrete]
|
|
|
// CHECK:STDOUT: %.b80: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.494 [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.6eb: <specific function> = specific_function %Op.5d7, @Op.2(%C) [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness.b11: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%Optional.cf0) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.867: type = fn_type @Op.2, @impl.49c(%Optional.cf0) [concrete]
|
|
|
// CHECK:STDOUT: %Op.3e8: %Op.type.867 = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %ptr.8e6: type = ptr_type %Optional.cf0 [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.facet.530: %Destroy.type = facet_value %Optional.cf0, (%Destroy.impl_witness.b11) [concrete]
|
|
|
// CHECK:STDOUT: %.1f9: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.530 [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.273: <specific function> = specific_function %Op.3e8, @Op.2(%Optional.cf0) [concrete]
|
|
|
@@ -187,10 +189,10 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Destroy.facet.e2f: %Destroy.type = facet_value %empty_struct_type, (%Destroy.impl_witness.eb8) [concrete]
|
|
|
// CHECK:STDOUT: %.9da: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.e2f [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.652: <specific function> = specific_function %Op.d5a, @Op.2(%empty_struct_type) [concrete]
|
|
|
-// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness.506: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%EmptyRange.cc8) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.88d: type = fn_type @Op.2, @impl.49c(%EmptyRange.cc8) [concrete]
|
|
|
// CHECK:STDOUT: %Op.929: %Op.type.88d = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %ptr.35d: type = ptr_type %EmptyRange.cc8 [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.facet.750: %Destroy.type = facet_value %EmptyRange.cc8, (%Destroy.impl_witness.506) [concrete]
|
|
|
// CHECK:STDOUT: %.053: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.750 [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.a14: <specific function> = specific_function %Op.929, @Op.2(%EmptyRange.cc8) [concrete]
|
|
|
@@ -206,7 +208,7 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.6ce, %Main.import_ref.999, %Main.import_ref.57b, %Main.import_ref.170), @impl.86e [concrete]
|
|
|
// CHECK:STDOUT: %Main.import_ref.7f9: @Optional.%HasValue.type (%HasValue.type.f81) = import_ref Main//empty_range, inst136 [indirect], loaded [symbolic = @Optional.%HasValue (constants.%HasValue.6fd)]
|
|
|
// CHECK:STDOUT: %Main.import_ref.d10: @Optional.%Get.type (%Get.type.b8f) = import_ref Main//empty_range, inst137 [indirect], loaded [symbolic = @Optional.%Get (constants.%Get.9c8)]
|
|
|
-// CHECK:STDOUT: %Core.import_ref.0b9: @impl.49c.%Op.type (%Op.type.bc9) = import_ref Core//prelude/parts/destroy, loc8_23, loaded [symbolic = @impl.49c.%Op (constants.%Op.46f)]
|
|
|
+// CHECK:STDOUT: %Core.import_ref.0b9: @impl.49c.%Op.type (%Op.type.bc9) = import_ref Core//prelude/parts/destroy, loc8_29, loaded [symbolic = @impl.49c.%Op (constants.%Op.46f)]
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.0b9), @impl.49c [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -235,14 +237,14 @@ fn Run() {
|
|
|
// CHECK:STDOUT: br !for.next
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !for.next:
|
|
|
-// CHECK:STDOUT: %addr: %ptr.c28 = addr_of %var
|
|
|
+// CHECK:STDOUT: %addr.loc12_36.1: %ptr.c28 = addr_of %var
|
|
|
// CHECK:STDOUT: %impl.elem3: %.5d5 = impl_witness_access constants.%Iterate.impl_witness.52a, element3 [concrete = constants.%Next.899]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_36.3: <bound method> = bound_method %.loc12_35.2, %impl.elem3
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_36.2: <specific function> = specific_function %impl.elem3, @Next.1(constants.%C) [concrete = constants.%Next.specific_fn]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_36.4: <bound method> = bound_method %.loc12_35.2, %specific_fn.loc12_36.2
|
|
|
// CHECK:STDOUT: %.loc12_36.1: ref %Optional.cf0 = temporary_storage
|
|
|
// CHECK:STDOUT: %.loc12_35.4: %EmptyRange.cc8 = bind_value %.loc12_35.2
|
|
|
-// CHECK:STDOUT: %Next.call: init %Optional.cf0 = call %bound_method.loc12_36.4(%.loc12_35.4, %addr) to %.loc12_36.1
|
|
|
+// CHECK:STDOUT: %Next.call: init %Optional.cf0 = call %bound_method.loc12_36.4(%.loc12_35.4, %addr.loc12_36.1) to %.loc12_36.1
|
|
|
// CHECK:STDOUT: %.loc12_36.2: ref %Optional.cf0 = temporary %.loc12_36.1, %Next.call
|
|
|
// CHECK:STDOUT: %.loc12_36.3: %HasValue.type.71d = specific_constant imports.%Main.import_ref.7f9, @Optional(constants.%C) [concrete = constants.%HasValue.513]
|
|
|
// CHECK:STDOUT: %HasValue.ref: %HasValue.type.71d = name_ref HasValue, %.loc12_36.3 [concrete = constants.%HasValue.513]
|
|
|
@@ -278,27 +280,26 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %bound_method.loc12_36.7: <bound method> = bound_method %.loc12_36.8, %impl.elem0.loc12_36.1
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_36.3: <specific function> = specific_function %impl.elem0.loc12_36.1, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn.6eb]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_36.8: <bound method> = bound_method %.loc12_36.8, %specific_fn.loc12_36.3
|
|
|
-// CHECK:STDOUT: %.loc12_36.12: %C = bind_value %.loc12_36.8
|
|
|
-// CHECK:STDOUT: %no_op.loc12_36.1: init %empty_tuple.type = call %bound_method.loc12_36.8(%.loc12_36.12)
|
|
|
+// CHECK:STDOUT: %addr.loc12_36.2: %ptr.019 = addr_of %.loc12_36.8
|
|
|
+// CHECK:STDOUT: %no_op.loc12_36.1: init %empty_tuple.type = call %bound_method.loc12_36.8(%addr.loc12_36.2)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc12_36.2: %.1f9 = impl_witness_access constants.%Destroy.impl_witness.b11, element0 [concrete = constants.%Op.3e8]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_36.9: <bound method> = bound_method %.loc12_36.1, %impl.elem0.loc12_36.2
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_36.4: <specific function> = specific_function %impl.elem0.loc12_36.2, @Op.2(constants.%Optional.cf0) [concrete = constants.%Op.specific_fn.273]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_36.10: <bound method> = bound_method %.loc12_36.1, %specific_fn.loc12_36.4
|
|
|
-// CHECK:STDOUT: %.loc12_36.13: %Optional.cf0 = bind_value %.loc12_36.1
|
|
|
-// CHECK:STDOUT: %no_op.loc12_36.2: init %empty_tuple.type = call %bound_method.loc12_36.10(%.loc12_36.13)
|
|
|
+// CHECK:STDOUT: %addr.loc12_36.3: %ptr.8e6 = addr_of %.loc12_36.1
|
|
|
+// CHECK:STDOUT: %no_op.loc12_36.2: init %empty_tuple.type = call %bound_method.loc12_36.10(%addr.loc12_36.3)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc12_36.3: %.9da = impl_witness_access constants.%Destroy.impl_witness.eb8, element0 [concrete = constants.%Op.d5a]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_36.11: <bound method> = bound_method %var, %impl.elem0.loc12_36.3
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_36.5: <specific function> = specific_function %impl.elem0.loc12_36.3, @Op.2(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn.652]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_36.12: <bound method> = bound_method %var, %specific_fn.loc12_36.5
|
|
|
-// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct]
|
|
|
-// CHECK:STDOUT: %.loc12_36.14: %empty_struct_type = converted %var, %empty_struct [concrete = constants.%empty_struct]
|
|
|
-// CHECK:STDOUT: %no_op.loc12_36.3: init %empty_tuple.type = call %bound_method.loc12_36.12(%.loc12_36.14)
|
|
|
+// CHECK:STDOUT: %addr.loc12_36.4: %ptr.c28 = addr_of %var
|
|
|
+// CHECK:STDOUT: %no_op.loc12_36.3: init %empty_tuple.type = call %bound_method.loc12_36.12(%addr.loc12_36.4)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc12_35: %.053 = impl_witness_access constants.%Destroy.impl_witness.506, element0 [concrete = constants.%Op.929]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_35.1: <bound method> = bound_method %.loc12_35.1, %impl.elem0.loc12_35
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_35: <specific function> = specific_function %impl.elem0.loc12_35, @Op.2(constants.%EmptyRange.cc8) [concrete = constants.%Op.specific_fn.a14]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_35.2: <bound method> = bound_method %.loc12_35.1, %specific_fn.loc12_35
|
|
|
-// CHECK:STDOUT: %.loc12_35.5: %EmptyRange.cc8 = bind_value %.loc12_35.1
|
|
|
-// CHECK:STDOUT: %no_op.loc12_35: init %empty_tuple.type = call %bound_method.loc12_35.2(%.loc12_35.5)
|
|
|
+// CHECK:STDOUT: %addr.loc12_35: %ptr.35d = addr_of %.loc12_35.1
|
|
|
+// CHECK:STDOUT: %no_op.loc12_35: init %empty_tuple.type = call %bound_method.loc12_35.2(%addr.loc12_35)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -363,6 +364,7 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness.b11: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%Optional.cf0) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.867: type = fn_type @Op.2, @impl.49c(%Optional.cf0) [concrete]
|
|
|
// CHECK:STDOUT: %Op.3e8: %Op.type.867 = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %ptr.8e6: type = ptr_type %Optional.cf0 [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.facet.530: %Destroy.type = facet_value %Optional.cf0, (%Destroy.impl_witness.b11) [concrete]
|
|
|
// CHECK:STDOUT: %.1f9: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.530 [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.273: <specific function> = specific_function %Op.3e8, @Op.2(%Optional.cf0) [concrete]
|
|
|
@@ -372,10 +374,10 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Destroy.facet.e2f: %Destroy.type = facet_value %empty_struct_type, (%Destroy.impl_witness.eb8) [concrete]
|
|
|
// CHECK:STDOUT: %.9da: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.e2f [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.652: <specific function> = specific_function %Op.d5a, @Op.2(%empty_struct_type) [concrete]
|
|
|
-// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness.506: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%EmptyRange.cc8) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.88d: type = fn_type @Op.2, @impl.49c(%EmptyRange.cc8) [concrete]
|
|
|
// CHECK:STDOUT: %Op.929: %Op.type.88d = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %ptr.35d: type = ptr_type %EmptyRange.cc8 [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.facet.750: %Destroy.type = facet_value %EmptyRange.cc8, (%Destroy.impl_witness.506) [concrete]
|
|
|
// CHECK:STDOUT: %.053: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.750 [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.a14: <specific function> = specific_function %Op.929, @Op.2(%EmptyRange.cc8) [concrete]
|
|
|
@@ -391,7 +393,7 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.6ce, %Main.import_ref.999, %Main.import_ref.57b, %Main.import_ref.170), @impl.86e [concrete]
|
|
|
// CHECK:STDOUT: %Main.import_ref.7f9: @Optional.%HasValue.type (%HasValue.type.f81) = import_ref Main//empty_range, inst136 [indirect], loaded [symbolic = @Optional.%HasValue (constants.%HasValue.6fd)]
|
|
|
// CHECK:STDOUT: %Main.import_ref.d10: @Optional.%Get.type (%Get.type.b8f) = import_ref Main//empty_range, inst137 [indirect], loaded [symbolic = @Optional.%Get (constants.%Get.9c8)]
|
|
|
-// CHECK:STDOUT: %Core.import_ref.0b9: @impl.49c.%Op.type (%Op.type.bc9) = import_ref Core//prelude/parts/destroy, loc8_23, loaded [symbolic = @impl.49c.%Op (constants.%Op.46f)]
|
|
|
+// CHECK:STDOUT: %Core.import_ref.0b9: @impl.49c.%Op.type (%Op.type.bc9) = import_ref Core//prelude/parts/destroy, loc8_29, loaded [symbolic = @impl.49c.%Op (constants.%Op.46f)]
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.0b9), @impl.49c [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -421,14 +423,14 @@ fn Run() {
|
|
|
// CHECK:STDOUT: br !for.next
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !for.next:
|
|
|
-// CHECK:STDOUT: %addr.loc12: %ptr.c28 = addr_of %var
|
|
|
+// CHECK:STDOUT: %addr.loc12_40.1: %ptr.c28 = addr_of %var
|
|
|
// CHECK:STDOUT: %impl.elem3: %.5d5 = impl_witness_access constants.%Iterate.impl_witness.52a, element3 [concrete = constants.%Next.899]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_40.3: <bound method> = bound_method %.loc12_39.2, %impl.elem3
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_40.2: <specific function> = specific_function %impl.elem3, @Next.1(constants.%C) [concrete = constants.%Next.specific_fn]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_40.4: <bound method> = bound_method %.loc12_39.2, %specific_fn.loc12_40.2
|
|
|
// CHECK:STDOUT: %.loc12_40.1: ref %Optional.cf0 = temporary_storage
|
|
|
// CHECK:STDOUT: %.loc12_39.4: %EmptyRange.cc8 = bind_value %.loc12_39.2
|
|
|
-// CHECK:STDOUT: %Next.call: init %Optional.cf0 = call %bound_method.loc12_40.4(%.loc12_39.4, %addr.loc12) to %.loc12_40.1
|
|
|
+// CHECK:STDOUT: %Next.call: init %Optional.cf0 = call %bound_method.loc12_40.4(%.loc12_39.4, %addr.loc12_40.1) to %.loc12_40.1
|
|
|
// CHECK:STDOUT: %.loc12_40.2: ref %Optional.cf0 = temporary %.loc12_40.1, %Next.call
|
|
|
// CHECK:STDOUT: %.loc12_40.3: %HasValue.type.71d = specific_constant imports.%Main.import_ref.7f9, @Optional(constants.%C) [concrete = constants.%HasValue.513]
|
|
|
// CHECK:STDOUT: %HasValue.ref: %HasValue.type.71d = name_ref HasValue, %.loc12_40.3 [concrete = constants.%HasValue.513]
|
|
|
@@ -448,9 +450,9 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Get.bound: <bound method> = bound_method %.loc12_40.2, %Get.ref
|
|
|
// CHECK:STDOUT: %Get.specific_fn: <specific function> = specific_function %Get.ref, @Get(constants.%C) [concrete = constants.%Get.specific_fn]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_40.6: <bound method> = bound_method %.loc12_40.2, %Get.specific_fn
|
|
|
-// CHECK:STDOUT: %.loc12_8.1: ref %C = splice_block %c.var {}
|
|
|
+// CHECK:STDOUT: %.loc12_8: ref %C = splice_block %c.var {}
|
|
|
// CHECK:STDOUT: %.loc12_40.8: %Optional.cf0 = bind_value %.loc12_40.2
|
|
|
-// CHECK:STDOUT: %Get.call: init %C = call %bound_method.loc12_40.6(%.loc12_40.8) to %.loc12_8.1
|
|
|
+// CHECK:STDOUT: %Get.call: init %C = call %bound_method.loc12_40.6(%.loc12_40.8) to %.loc12_8
|
|
|
// CHECK:STDOUT: assign %c.var, %Get.call
|
|
|
// CHECK:STDOUT: %C.ref.loc12_15: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
|
|
// CHECK:STDOUT: %c: ref %C = bind_name c, %c.var
|
|
|
@@ -462,36 +464,35 @@ fn Run() {
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !for.done:
|
|
|
// CHECK:STDOUT: %impl.elem0.loc12_8.1: %.b80 = impl_witness_access constants.%Destroy.impl_witness.906, element0 [concrete = constants.%Op.5d7]
|
|
|
-// CHECK:STDOUT: %bound_method.loc12_8.1: <bound method> = bound_method %.loc12_8.1, %impl.elem0.loc12_8.1
|
|
|
+// CHECK:STDOUT: %bound_method.loc12_8.1: <bound method> = bound_method %.loc12_8, %impl.elem0.loc12_8.1
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_8.1: <specific function> = specific_function %impl.elem0.loc12_8.1, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn.6eb]
|
|
|
-// CHECK:STDOUT: %bound_method.loc12_8.2: <bound method> = bound_method %.loc12_8.1, %specific_fn.loc12_8.1
|
|
|
-// CHECK:STDOUT: %.loc12_8.2: %C = bind_value %.loc12_8.1
|
|
|
-// CHECK:STDOUT: %no_op.loc12_8.1: init %empty_tuple.type = call %bound_method.loc12_8.2(%.loc12_8.2)
|
|
|
+// CHECK:STDOUT: %bound_method.loc12_8.2: <bound method> = bound_method %.loc12_8, %specific_fn.loc12_8.1
|
|
|
+// CHECK:STDOUT: %addr.loc12_8.1: %ptr.019 = addr_of %.loc12_8
|
|
|
+// CHECK:STDOUT: %no_op.loc12_8.1: init %empty_tuple.type = call %bound_method.loc12_8.2(%addr.loc12_8.1)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc12_8.2: %.b80 = impl_witness_access constants.%Destroy.impl_witness.906, element0 [concrete = constants.%Op.5d7]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_8.3: <bound method> = bound_method %c.var, %impl.elem0.loc12_8.2
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_8.2: <specific function> = specific_function %impl.elem0.loc12_8.2, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn.6eb]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_8.4: <bound method> = bound_method %c.var, %specific_fn.loc12_8.2
|
|
|
-// CHECK:STDOUT: %.loc12_8.3: %C = bind_value %c.var
|
|
|
-// CHECK:STDOUT: %no_op.loc12_8.2: init %empty_tuple.type = call %bound_method.loc12_8.4(%.loc12_8.3)
|
|
|
+// CHECK:STDOUT: %addr.loc12_8.2: %ptr.019 = addr_of %c.var
|
|
|
+// CHECK:STDOUT: %no_op.loc12_8.2: init %empty_tuple.type = call %bound_method.loc12_8.4(%addr.loc12_8.2)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc12_40.1: %.1f9 = impl_witness_access constants.%Destroy.impl_witness.b11, element0 [concrete = constants.%Op.3e8]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_40.7: <bound method> = bound_method %.loc12_40.1, %impl.elem0.loc12_40.1
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_40.3: <specific function> = specific_function %impl.elem0.loc12_40.1, @Op.2(constants.%Optional.cf0) [concrete = constants.%Op.specific_fn.273]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_40.8: <bound method> = bound_method %.loc12_40.1, %specific_fn.loc12_40.3
|
|
|
-// CHECK:STDOUT: %.loc12_40.9: %Optional.cf0 = bind_value %.loc12_40.1
|
|
|
-// CHECK:STDOUT: %no_op.loc12_40.1: init %empty_tuple.type = call %bound_method.loc12_40.8(%.loc12_40.9)
|
|
|
+// CHECK:STDOUT: %addr.loc12_40.2: %ptr.8e6 = addr_of %.loc12_40.1
|
|
|
+// CHECK:STDOUT: %no_op.loc12_40.1: init %empty_tuple.type = call %bound_method.loc12_40.8(%addr.loc12_40.2)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc12_40.2: %.9da = impl_witness_access constants.%Destroy.impl_witness.eb8, element0 [concrete = constants.%Op.d5a]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_40.9: <bound method> = bound_method %var, %impl.elem0.loc12_40.2
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_40.4: <specific function> = specific_function %impl.elem0.loc12_40.2, @Op.2(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn.652]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_40.10: <bound method> = bound_method %var, %specific_fn.loc12_40.4
|
|
|
-// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct]
|
|
|
-// CHECK:STDOUT: %.loc12_40.10: %empty_struct_type = converted %var, %empty_struct [concrete = constants.%empty_struct]
|
|
|
-// CHECK:STDOUT: %no_op.loc12_40.2: init %empty_tuple.type = call %bound_method.loc12_40.10(%.loc12_40.10)
|
|
|
+// CHECK:STDOUT: %addr.loc12_40.3: %ptr.c28 = addr_of %var
|
|
|
+// CHECK:STDOUT: %no_op.loc12_40.2: init %empty_tuple.type = call %bound_method.loc12_40.10(%addr.loc12_40.3)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc12_39: %.053 = impl_witness_access constants.%Destroy.impl_witness.506, element0 [concrete = constants.%Op.929]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_39.1: <bound method> = bound_method %.loc12_39.1, %impl.elem0.loc12_39
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_39: <specific function> = specific_function %impl.elem0.loc12_39, @Op.2(constants.%EmptyRange.cc8) [concrete = constants.%Op.specific_fn.a14]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_39.2: <bound method> = bound_method %.loc12_39.1, %specific_fn.loc12_39
|
|
|
-// CHECK:STDOUT: %.loc12_39.5: %EmptyRange.cc8 = bind_value %.loc12_39.1
|
|
|
-// CHECK:STDOUT: %no_op.loc12_39: init %empty_tuple.type = call %bound_method.loc12_39.2(%.loc12_39.5)
|
|
|
+// CHECK:STDOUT: %addr.loc12_39: %ptr.35d = addr_of %.loc12_39.1
|
|
|
+// CHECK:STDOUT: %no_op.loc12_39: init %empty_tuple.type = call %bound_method.loc12_39.2(%addr.loc12_39)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -544,6 +545,7 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %HasValue.4f9: %HasValue.type.414 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %Get.type.ebd: type = fn_type @Get, @Optional(%tuple.type.784) [concrete]
|
|
|
// CHECK:STDOUT: %Get.d99: %Get.type.ebd = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %ptr.b85: type = ptr_type %tuple.type.784 [concrete]
|
|
|
// CHECK:STDOUT: %HasValue.specific_fn: <specific function> = specific_function %HasValue.4f9, @HasValue(%tuple.type.784) [concrete]
|
|
|
// CHECK:STDOUT: %Get.specific_fn: <specific function> = specific_function %Get.d99, @Get(%tuple.type.784) [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
|
|
@@ -559,6 +561,7 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness.4bb: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%Optional.79e) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.e76: type = fn_type @Op.2, @impl.49c(%Optional.79e) [concrete]
|
|
|
// CHECK:STDOUT: %Op.d99: %Op.type.e76 = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %ptr.07d: type = ptr_type %Optional.79e [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.facet.a9b: %Destroy.type = facet_value %Optional.79e, (%Destroy.impl_witness.4bb) [concrete]
|
|
|
// CHECK:STDOUT: %.447: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.a9b [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.e8f: <specific function> = specific_function %Op.d99, @Op.2(%Optional.79e) [concrete]
|
|
|
@@ -568,10 +571,10 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Destroy.facet.e2f: %Destroy.type = facet_value %empty_struct_type, (%Destroy.impl_witness.eb8) [concrete]
|
|
|
// CHECK:STDOUT: %.9da: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.e2f [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.652: <specific function> = specific_function %Op.d5a, @Op.2(%empty_struct_type) [concrete]
|
|
|
-// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness.3df: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%EmptyRange.2f3) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.055: type = fn_type @Op.2, @impl.49c(%EmptyRange.2f3) [concrete]
|
|
|
// CHECK:STDOUT: %Op.74c: %Op.type.055 = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %ptr.5cf: type = ptr_type %EmptyRange.2f3 [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.facet.f26: %Destroy.type = facet_value %EmptyRange.2f3, (%Destroy.impl_witness.3df) [concrete]
|
|
|
// CHECK:STDOUT: %.222: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.f26 [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.cd5: <specific function> = specific_function %Op.74c, @Op.2(%EmptyRange.2f3) [concrete]
|
|
|
@@ -587,7 +590,7 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.6ce, %Main.import_ref.999, %Main.import_ref.57b, %Main.import_ref.170), @impl.86e [concrete]
|
|
|
// CHECK:STDOUT: %Main.import_ref.7f9: @Optional.%HasValue.type (%HasValue.type.f81) = import_ref Main//empty_range, inst136 [indirect], loaded [symbolic = @Optional.%HasValue (constants.%HasValue.6fd)]
|
|
|
// CHECK:STDOUT: %Main.import_ref.d10: @Optional.%Get.type (%Get.type.b8f) = import_ref Main//empty_range, inst137 [indirect], loaded [symbolic = @Optional.%Get (constants.%Get.9c8)]
|
|
|
-// CHECK:STDOUT: %Core.import_ref.0b9: @impl.49c.%Op.type (%Op.type.bc9) = import_ref Core//prelude/parts/destroy, loc8_23, loaded [symbolic = @impl.49c.%Op (constants.%Op.46f)]
|
|
|
+// CHECK:STDOUT: %Core.import_ref.0b9: @impl.49c.%Op.type (%Op.type.bc9) = import_ref Core//prelude/parts/destroy, loc8_29, loaded [symbolic = @impl.49c.%Op (constants.%Op.46f)]
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.0b9), @impl.49c [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -625,14 +628,14 @@ fn Run() {
|
|
|
// CHECK:STDOUT: br !for.next
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !for.next:
|
|
|
-// CHECK:STDOUT: %addr: %ptr.c28 = addr_of %var
|
|
|
+// CHECK:STDOUT: %addr.loc10_61.1: %ptr.c28 = addr_of %var
|
|
|
// CHECK:STDOUT: %impl.elem3: %.6aa = impl_witness_access constants.%Iterate.impl_witness.6db, element3 [concrete = constants.%Next.e60]
|
|
|
// CHECK:STDOUT: %bound_method.loc10_61.3: <bound method> = bound_method %.loc10_60.2, %impl.elem3
|
|
|
// CHECK:STDOUT: %specific_fn.loc10_61.2: <specific function> = specific_function %impl.elem3, @Next.1(constants.%tuple.type.784) [concrete = constants.%Next.specific_fn]
|
|
|
// CHECK:STDOUT: %bound_method.loc10_61.4: <bound method> = bound_method %.loc10_60.2, %specific_fn.loc10_61.2
|
|
|
// CHECK:STDOUT: %.loc10_61.1: ref %Optional.79e = temporary_storage
|
|
|
// CHECK:STDOUT: %.loc10_60.4: %EmptyRange.2f3 = bind_value %.loc10_60.2
|
|
|
-// CHECK:STDOUT: %Next.call: init %Optional.79e = call %bound_method.loc10_61.4(%.loc10_60.4, %addr) to %.loc10_61.1
|
|
|
+// CHECK:STDOUT: %Next.call: init %Optional.79e = call %bound_method.loc10_61.4(%.loc10_60.4, %addr.loc10_61.1) to %.loc10_61.1
|
|
|
// CHECK:STDOUT: %.loc10_61.2: ref %Optional.79e = temporary %.loc10_61.1, %Next.call
|
|
|
// CHECK:STDOUT: %.loc10_61.3: %HasValue.type.414 = specific_constant imports.%Main.import_ref.7f9, @Optional(constants.%tuple.type.784) [concrete = constants.%HasValue.4f9]
|
|
|
// CHECK:STDOUT: %HasValue.ref: %HasValue.type.414 = name_ref HasValue, %.loc10_61.3 [concrete = constants.%HasValue.4f9]
|
|
|
@@ -655,21 +658,21 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %.loc10_61.9: %Optional.79e = bind_value %.loc10_61.2
|
|
|
// CHECK:STDOUT: %Get.call: init %tuple.type.784 = call %bound_method.loc10_61.6(%.loc10_61.9) to %.loc10_61.8
|
|
|
// CHECK:STDOUT: %.loc10_61.10: ref %tuple.type.784 = temporary %.loc10_61.8, %Get.call
|
|
|
-// CHECK:STDOUT: %tuple.elem0.loc10_61.1: ref bool = tuple_access %.loc10_61.10, element0
|
|
|
-// CHECK:STDOUT: %tuple.elem1.loc10_61.1: ref bool = tuple_access %.loc10_61.10, element1
|
|
|
+// CHECK:STDOUT: %tuple.elem0: ref bool = tuple_access %.loc10_61.10, element0
|
|
|
+// CHECK:STDOUT: %tuple.elem1: ref bool = tuple_access %.loc10_61.10, element1
|
|
|
// CHECK:STDOUT: %.loc10_12.1: type = splice_block %.loc10_12.3 [concrete = bool] {
|
|
|
// CHECK:STDOUT: %bool.make_type.loc10_12: init type = call constants.%Bool() [concrete = bool]
|
|
|
// CHECK:STDOUT: %.loc10_12.2: type = value_of_initializer %bool.make_type.loc10_12 [concrete = bool]
|
|
|
// CHECK:STDOUT: %.loc10_12.3: type = converted %bool.make_type.loc10_12, %.loc10_12.2 [concrete = bool]
|
|
|
// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: %.loc10_61.11: bool = bind_value %tuple.elem0.loc10_61.1
|
|
|
+// CHECK:STDOUT: %.loc10_61.11: bool = bind_value %tuple.elem0
|
|
|
// CHECK:STDOUT: %a: bool = bind_name a, %.loc10_61.11
|
|
|
// CHECK:STDOUT: %.loc10_21.1: type = splice_block %.loc10_21.3 [concrete = bool] {
|
|
|
// CHECK:STDOUT: %bool.make_type.loc10_21: init type = call constants.%Bool() [concrete = bool]
|
|
|
// CHECK:STDOUT: %.loc10_21.2: type = value_of_initializer %bool.make_type.loc10_21 [concrete = bool]
|
|
|
// CHECK:STDOUT: %.loc10_21.3: type = converted %bool.make_type.loc10_21, %.loc10_21.2 [concrete = bool]
|
|
|
// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: %.loc10_61.12: bool = bind_value %tuple.elem1.loc10_61.1
|
|
|
+// CHECK:STDOUT: %.loc10_61.12: bool = bind_value %tuple.elem1
|
|
|
// CHECK:STDOUT: %b: bool = bind_name b, %.loc10_61.12
|
|
|
// CHECK:STDOUT: %Body.ref: %Body.type = name_ref Body, file.%Body.decl [concrete = constants.%Body]
|
|
|
// CHECK:STDOUT: %a.ref: bool = name_ref a, %a
|
|
|
@@ -682,32 +685,26 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %bound_method.loc10_61.7: <bound method> = bound_method %.loc10_61.8, %impl.elem0.loc10_61.1
|
|
|
// CHECK:STDOUT: %specific_fn.loc10_61.3: <specific function> = specific_function %impl.elem0.loc10_61.1, @Op.2(constants.%tuple.type.784) [concrete = constants.%Op.specific_fn.10e]
|
|
|
// CHECK:STDOUT: %bound_method.loc10_61.8: <bound method> = bound_method %.loc10_61.8, %specific_fn.loc10_61.3
|
|
|
-// CHECK:STDOUT: %tuple.elem0.loc10_61.2: ref bool = tuple_access %.loc10_61.8, element0
|
|
|
-// CHECK:STDOUT: %.loc10_61.13: bool = bind_value %tuple.elem0.loc10_61.2
|
|
|
-// CHECK:STDOUT: %tuple.elem1.loc10_61.2: ref bool = tuple_access %.loc10_61.8, element1
|
|
|
-// CHECK:STDOUT: %.loc10_61.14: bool = bind_value %tuple.elem1.loc10_61.2
|
|
|
-// CHECK:STDOUT: %tuple: %tuple.type.784 = tuple_value (%.loc10_61.13, %.loc10_61.14)
|
|
|
-// CHECK:STDOUT: %.loc10_61.15: %tuple.type.784 = converted %.loc10_61.8, %tuple
|
|
|
-// CHECK:STDOUT: %no_op.loc10_61.1: init %empty_tuple.type = call %bound_method.loc10_61.8(%.loc10_61.15)
|
|
|
+// CHECK:STDOUT: %addr.loc10_61.2: %ptr.b85 = addr_of %.loc10_61.8
|
|
|
+// CHECK:STDOUT: %no_op.loc10_61.1: init %empty_tuple.type = call %bound_method.loc10_61.8(%addr.loc10_61.2)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc10_61.2: %.447 = impl_witness_access constants.%Destroy.impl_witness.4bb, element0 [concrete = constants.%Op.d99]
|
|
|
// CHECK:STDOUT: %bound_method.loc10_61.9: <bound method> = bound_method %.loc10_61.1, %impl.elem0.loc10_61.2
|
|
|
// CHECK:STDOUT: %specific_fn.loc10_61.4: <specific function> = specific_function %impl.elem0.loc10_61.2, @Op.2(constants.%Optional.79e) [concrete = constants.%Op.specific_fn.e8f]
|
|
|
// CHECK:STDOUT: %bound_method.loc10_61.10: <bound method> = bound_method %.loc10_61.1, %specific_fn.loc10_61.4
|
|
|
-// CHECK:STDOUT: %.loc10_61.16: %Optional.79e = bind_value %.loc10_61.1
|
|
|
-// CHECK:STDOUT: %no_op.loc10_61.2: init %empty_tuple.type = call %bound_method.loc10_61.10(%.loc10_61.16)
|
|
|
+// CHECK:STDOUT: %addr.loc10_61.3: %ptr.07d = addr_of %.loc10_61.1
|
|
|
+// CHECK:STDOUT: %no_op.loc10_61.2: init %empty_tuple.type = call %bound_method.loc10_61.10(%addr.loc10_61.3)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc10_61.3: %.9da = impl_witness_access constants.%Destroy.impl_witness.eb8, element0 [concrete = constants.%Op.d5a]
|
|
|
// CHECK:STDOUT: %bound_method.loc10_61.11: <bound method> = bound_method %var, %impl.elem0.loc10_61.3
|
|
|
// CHECK:STDOUT: %specific_fn.loc10_61.5: <specific function> = specific_function %impl.elem0.loc10_61.3, @Op.2(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn.652]
|
|
|
// CHECK:STDOUT: %bound_method.loc10_61.12: <bound method> = bound_method %var, %specific_fn.loc10_61.5
|
|
|
-// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct]
|
|
|
-// CHECK:STDOUT: %.loc10_61.17: %empty_struct_type = converted %var, %empty_struct [concrete = constants.%empty_struct]
|
|
|
-// CHECK:STDOUT: %no_op.loc10_61.3: init %empty_tuple.type = call %bound_method.loc10_61.12(%.loc10_61.17)
|
|
|
+// CHECK:STDOUT: %addr.loc10_61.4: %ptr.c28 = addr_of %var
|
|
|
+// CHECK:STDOUT: %no_op.loc10_61.3: init %empty_tuple.type = call %bound_method.loc10_61.12(%addr.loc10_61.4)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc10_60: %.222 = impl_witness_access constants.%Destroy.impl_witness.3df, element0 [concrete = constants.%Op.74c]
|
|
|
// CHECK:STDOUT: %bound_method.loc10_60.1: <bound method> = bound_method %.loc10_60.1, %impl.elem0.loc10_60
|
|
|
// CHECK:STDOUT: %specific_fn.loc10_60: <specific function> = specific_function %impl.elem0.loc10_60, @Op.2(constants.%EmptyRange.2f3) [concrete = constants.%Op.specific_fn.cd5]
|
|
|
// CHECK:STDOUT: %bound_method.loc10_60.2: <bound method> = bound_method %.loc10_60.1, %specific_fn.loc10_60
|
|
|
-// CHECK:STDOUT: %.loc10_60.5: %EmptyRange.2f3 = bind_value %.loc10_60.1
|
|
|
-// CHECK:STDOUT: %no_op.loc10_60: init %empty_tuple.type = call %bound_method.loc10_60.2(%.loc10_60.5)
|
|
|
+// CHECK:STDOUT: %addr.loc10_60: %ptr.5cf = addr_of %.loc10_60.1
|
|
|
+// CHECK:STDOUT: %no_op.loc10_60: init %empty_tuple.type = call %bound_method.loc10_60.2(%addr.loc10_60)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -768,12 +765,14 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness.7aa: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%tuple.type.56b) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.12e: type = fn_type @Op.2, @impl.49c(%tuple.type.56b) [concrete]
|
|
|
// CHECK:STDOUT: %Op.34b: %Op.type.12e = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %ptr.9f0: type = ptr_type %tuple.type.56b [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.facet.5ce: %Destroy.type = facet_value %tuple.type.56b, (%Destroy.impl_witness.7aa) [concrete]
|
|
|
// CHECK:STDOUT: %.874: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.5ce [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.50d: <specific function> = specific_function %Op.34b, @Op.2(%tuple.type.56b) [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness.d9c: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%Optional.657) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.e9f: type = fn_type @Op.2, @impl.49c(%Optional.657) [concrete]
|
|
|
// CHECK:STDOUT: %Op.5c4: %Op.type.e9f = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %ptr.036: type = ptr_type %Optional.657 [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.facet.8a2: %Destroy.type = facet_value %Optional.657, (%Destroy.impl_witness.d9c) [concrete]
|
|
|
// CHECK:STDOUT: %.0d9: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.8a2 [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.068: <specific function> = specific_function %Op.5c4, @Op.2(%Optional.657) [concrete]
|
|
|
@@ -783,10 +782,10 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Destroy.facet.e2f: %Destroy.type = facet_value %empty_struct_type, (%Destroy.impl_witness.eb8) [concrete]
|
|
|
// CHECK:STDOUT: %.9da: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.e2f [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.652: <specific function> = specific_function %Op.d5a, @Op.2(%empty_struct_type) [concrete]
|
|
|
-// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness.7c5: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%EmptyRange.90a) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.8c3: type = fn_type @Op.2, @impl.49c(%EmptyRange.90a) [concrete]
|
|
|
// CHECK:STDOUT: %Op.85b: %Op.type.8c3 = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %ptr.f9b: type = ptr_type %EmptyRange.90a [concrete]
|
|
|
// CHECK:STDOUT: %Destroy.facet.06e: %Destroy.type = facet_value %EmptyRange.90a, (%Destroy.impl_witness.7c5) [concrete]
|
|
|
// CHECK:STDOUT: %.2da: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.06e [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn.bc1: <specific function> = specific_function %Op.85b, @Op.2(%EmptyRange.90a) [concrete]
|
|
|
@@ -802,7 +801,7 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.6ce, %Main.import_ref.999, %Main.import_ref.57b, %Main.import_ref.170), @impl.86e [concrete]
|
|
|
// CHECK:STDOUT: %Main.import_ref.7f9: @Optional.%HasValue.type (%HasValue.type.f81) = import_ref Main//empty_range, inst136 [indirect], loaded [symbolic = @Optional.%HasValue (constants.%HasValue.6fd)]
|
|
|
// CHECK:STDOUT: %Main.import_ref.d10: @Optional.%Get.type (%Get.type.b8f) = import_ref Main//empty_range, inst137 [indirect], loaded [symbolic = @Optional.%Get (constants.%Get.9c8)]
|
|
|
-// CHECK:STDOUT: %Core.import_ref.0b9: @impl.49c.%Op.type (%Op.type.bc9) = import_ref Core//prelude/parts/destroy, loc8_23, loaded [symbolic = @impl.49c.%Op (constants.%Op.46f)]
|
|
|
+// CHECK:STDOUT: %Core.import_ref.0b9: @impl.49c.%Op.type (%Op.type.bc9) = import_ref Core//prelude/parts/destroy, loc8_29, loaded [symbolic = @impl.49c.%Op (constants.%Op.46f)]
|
|
|
// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.0b9), @impl.49c [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -836,14 +835,14 @@ fn Run() {
|
|
|
// CHECK:STDOUT: br !for.next
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !for.next:
|
|
|
-// CHECK:STDOUT: %addr: %ptr.c28 = addr_of %var
|
|
|
+// CHECK:STDOUT: %addr.loc12_49.1: %ptr.c28 = addr_of %var
|
|
|
// CHECK:STDOUT: %impl.elem3: %.8d0 = impl_witness_access constants.%Iterate.impl_witness.627, element3 [concrete = constants.%Next.852]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_49.3: <bound method> = bound_method %.loc12_48.2, %impl.elem3
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_49.2: <specific function> = specific_function %impl.elem3, @Next.1(constants.%tuple.type.56b) [concrete = constants.%Next.specific_fn]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_49.4: <bound method> = bound_method %.loc12_48.2, %specific_fn.loc12_49.2
|
|
|
// CHECK:STDOUT: %.loc12_49.1: ref %Optional.657 = temporary_storage
|
|
|
// CHECK:STDOUT: %.loc12_48.4: %EmptyRange.90a = bind_value %.loc12_48.2
|
|
|
-// CHECK:STDOUT: %Next.call: init %Optional.657 = call %bound_method.loc12_49.4(%.loc12_48.4, %addr) to %.loc12_49.1
|
|
|
+// CHECK:STDOUT: %Next.call: init %Optional.657 = call %bound_method.loc12_49.4(%.loc12_48.4, %addr.loc12_49.1) to %.loc12_49.1
|
|
|
// CHECK:STDOUT: %.loc12_49.2: ref %Optional.657 = temporary %.loc12_49.1, %Next.call
|
|
|
// CHECK:STDOUT: %.loc12_49.3: %HasValue.type.2f1 = specific_constant imports.%Main.import_ref.7f9, @Optional(constants.%tuple.type.56b) [concrete = constants.%HasValue.bef]
|
|
|
// CHECK:STDOUT: %HasValue.ref: %HasValue.type.2f1 = name_ref HasValue, %.loc12_49.3 [concrete = constants.%HasValue.bef]
|
|
|
@@ -866,13 +865,13 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %.loc12_49.9: %Optional.657 = bind_value %.loc12_49.2
|
|
|
// CHECK:STDOUT: %Get.call: init %tuple.type.56b = call %bound_method.loc12_49.6(%.loc12_49.9) to %.loc12_49.8
|
|
|
// CHECK:STDOUT: %.loc12_49.10: ref %tuple.type.56b = temporary %.loc12_49.8, %Get.call
|
|
|
-// CHECK:STDOUT: %tuple.elem0.loc12_49.1: ref %C = tuple_access %.loc12_49.10, element0
|
|
|
-// CHECK:STDOUT: %tuple.elem1.loc12_49.1: ref %C = tuple_access %.loc12_49.10, element1
|
|
|
+// CHECK:STDOUT: %tuple.elem0: ref %C = tuple_access %.loc12_49.10, element0
|
|
|
+// CHECK:STDOUT: %tuple.elem1: ref %C = tuple_access %.loc12_49.10, element1
|
|
|
// CHECK:STDOUT: %C.ref.loc12_12: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
|
|
-// CHECK:STDOUT: %.loc12_49.11: %C = bind_value %tuple.elem0.loc12_49.1
|
|
|
+// CHECK:STDOUT: %.loc12_49.11: %C = bind_value %tuple.elem0
|
|
|
// CHECK:STDOUT: %a: %C = bind_name a, %.loc12_49.11
|
|
|
// CHECK:STDOUT: %C.ref.loc12_18: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
|
|
-// CHECK:STDOUT: %.loc12_49.12: %C = bind_value %tuple.elem1.loc12_49.1
|
|
|
+// CHECK:STDOUT: %.loc12_49.12: %C = bind_value %tuple.elem1
|
|
|
// CHECK:STDOUT: %b: %C = bind_name b, %.loc12_49.12
|
|
|
// CHECK:STDOUT: %Body.ref: %Body.type = name_ref Body, file.%Body.decl [concrete = constants.%Body]
|
|
|
// CHECK:STDOUT: %a.ref: %C = name_ref a, %a
|
|
|
@@ -885,32 +884,26 @@ fn Run() {
|
|
|
// CHECK:STDOUT: %bound_method.loc12_49.7: <bound method> = bound_method %.loc12_49.8, %impl.elem0.loc12_49.1
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_49.3: <specific function> = specific_function %impl.elem0.loc12_49.1, @Op.2(constants.%tuple.type.56b) [concrete = constants.%Op.specific_fn.50d]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_49.8: <bound method> = bound_method %.loc12_49.8, %specific_fn.loc12_49.3
|
|
|
-// CHECK:STDOUT: %tuple.elem0.loc12_49.2: ref %C = tuple_access %.loc12_49.8, element0
|
|
|
-// CHECK:STDOUT: %.loc12_49.13: %C = bind_value %tuple.elem0.loc12_49.2
|
|
|
-// CHECK:STDOUT: %tuple.elem1.loc12_49.2: ref %C = tuple_access %.loc12_49.8, element1
|
|
|
-// CHECK:STDOUT: %.loc12_49.14: %C = bind_value %tuple.elem1.loc12_49.2
|
|
|
-// CHECK:STDOUT: %tuple: %tuple.type.56b = tuple_value (%.loc12_49.13, %.loc12_49.14)
|
|
|
-// CHECK:STDOUT: %.loc12_49.15: %tuple.type.56b = converted %.loc12_49.8, %tuple
|
|
|
-// CHECK:STDOUT: %no_op.loc12_49.1: init %empty_tuple.type = call %bound_method.loc12_49.8(%.loc12_49.15)
|
|
|
+// CHECK:STDOUT: %addr.loc12_49.2: %ptr.9f0 = addr_of %.loc12_49.8
|
|
|
+// CHECK:STDOUT: %no_op.loc12_49.1: init %empty_tuple.type = call %bound_method.loc12_49.8(%addr.loc12_49.2)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc12_49.2: %.0d9 = impl_witness_access constants.%Destroy.impl_witness.d9c, element0 [concrete = constants.%Op.5c4]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_49.9: <bound method> = bound_method %.loc12_49.1, %impl.elem0.loc12_49.2
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_49.4: <specific function> = specific_function %impl.elem0.loc12_49.2, @Op.2(constants.%Optional.657) [concrete = constants.%Op.specific_fn.068]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_49.10: <bound method> = bound_method %.loc12_49.1, %specific_fn.loc12_49.4
|
|
|
-// CHECK:STDOUT: %.loc12_49.16: %Optional.657 = bind_value %.loc12_49.1
|
|
|
-// CHECK:STDOUT: %no_op.loc12_49.2: init %empty_tuple.type = call %bound_method.loc12_49.10(%.loc12_49.16)
|
|
|
+// CHECK:STDOUT: %addr.loc12_49.3: %ptr.036 = addr_of %.loc12_49.1
|
|
|
+// CHECK:STDOUT: %no_op.loc12_49.2: init %empty_tuple.type = call %bound_method.loc12_49.10(%addr.loc12_49.3)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc12_49.3: %.9da = impl_witness_access constants.%Destroy.impl_witness.eb8, element0 [concrete = constants.%Op.d5a]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_49.11: <bound method> = bound_method %var, %impl.elem0.loc12_49.3
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_49.5: <specific function> = specific_function %impl.elem0.loc12_49.3, @Op.2(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn.652]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_49.12: <bound method> = bound_method %var, %specific_fn.loc12_49.5
|
|
|
-// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct]
|
|
|
-// CHECK:STDOUT: %.loc12_49.17: %empty_struct_type = converted %var, %empty_struct [concrete = constants.%empty_struct]
|
|
|
-// CHECK:STDOUT: %no_op.loc12_49.3: init %empty_tuple.type = call %bound_method.loc12_49.12(%.loc12_49.17)
|
|
|
+// CHECK:STDOUT: %addr.loc12_49.4: %ptr.c28 = addr_of %var
|
|
|
+// CHECK:STDOUT: %no_op.loc12_49.3: init %empty_tuple.type = call %bound_method.loc12_49.12(%addr.loc12_49.4)
|
|
|
// CHECK:STDOUT: %impl.elem0.loc12_48: %.2da = impl_witness_access constants.%Destroy.impl_witness.7c5, element0 [concrete = constants.%Op.85b]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_48.1: <bound method> = bound_method %.loc12_48.1, %impl.elem0.loc12_48
|
|
|
// CHECK:STDOUT: %specific_fn.loc12_48: <specific function> = specific_function %impl.elem0.loc12_48, @Op.2(constants.%EmptyRange.90a) [concrete = constants.%Op.specific_fn.bc1]
|
|
|
// CHECK:STDOUT: %bound_method.loc12_48.2: <bound method> = bound_method %.loc12_48.1, %specific_fn.loc12_48
|
|
|
-// CHECK:STDOUT: %.loc12_48.5: %EmptyRange.90a = bind_value %.loc12_48.1
|
|
|
-// CHECK:STDOUT: %no_op.loc12_48: init %empty_tuple.type = call %bound_method.loc12_48.2(%.loc12_48.5)
|
|
|
+// CHECK:STDOUT: %addr.loc12_48: %ptr.f9b = addr_of %.loc12_48.1
|
|
|
+// CHECK:STDOUT: %no_op.loc12_48: init %empty_tuple.type = call %bound_method.loc12_48.2(%addr.loc12_48)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|