mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 06:54:44 +01:00
Switch Destroy to addr self (#5748)
Pointed out by zygoloid on #toolchain, just taking care of this now.
This commit is contained in:
+39
-46
@@ -65,6 +65,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %pattern_type.fe8: type = pattern_type %ptr.235 [concrete]
|
||||
// CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete]
|
||||
// CHECK:STDOUT: %tuple.type.d07: type = tuple_type (%i32, %i32) [concrete]
|
||||
// CHECK:STDOUT: %ptr.261: type = ptr_type %tuple.type.d07 [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.511: type = pattern_type %tuple.type.d07 [concrete]
|
||||
// CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [concrete]
|
||||
// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_1.5d2, %int_2.ef8) [concrete]
|
||||
@@ -77,6 +78,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %Destroy.impl_witness.711: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%ptr.235) [concrete]
|
||||
// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.3, @impl.49c(%ptr.235) [concrete]
|
||||
// CHECK:STDOUT: %Op.649: %Op.type.ba2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete]
|
||||
// CHECK:STDOUT: %Destroy.facet.2bf: %Destroy.type = facet_value %ptr.235, (%Destroy.impl_witness.711) [concrete]
|
||||
// CHECK:STDOUT: %.a79: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.2bf [concrete]
|
||||
// CHECK:STDOUT: %Op.specific_fn.829: <specific function> = specific_function %Op.649, @Op.3(%ptr.235) [concrete]
|
||||
@@ -89,6 +91,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %Destroy.impl_witness.ff6: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%ptr.3ee) [concrete]
|
||||
// CHECK:STDOUT: %Op.type.757: type = fn_type @Op.3, @impl.49c(%ptr.3ee) [concrete]
|
||||
// CHECK:STDOUT: %Op.e22: %Op.type.757 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ptr.40c: type = ptr_type %ptr.3ee [concrete]
|
||||
// CHECK:STDOUT: %Destroy.facet.ed3: %Destroy.type = facet_value %ptr.3ee, (%Destroy.impl_witness.ff6) [concrete]
|
||||
// CHECK:STDOUT: %.f93: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.ed3 [concrete]
|
||||
// CHECK:STDOUT: %Op.specific_fn.ce1: <specific function> = specific_function %Op.e22, @Op.3(%ptr.3ee) [concrete]
|
||||
@@ -113,7 +116,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %Core.import_ref.a5b: @impl.4f9.%Convert.type (%Convert.type.0f9) = import_ref Core//prelude/parts/int, loc16_39, loaded [symbolic = @impl.4f9.%Convert (constants.%Convert.f06)]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a2f = impl_witness_table (%Core.import_ref.a5b), @impl.4f9 [concrete]
|
||||
// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type]
|
||||
// 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:
|
||||
@@ -153,8 +156,8 @@ fn F() {
|
||||
// CHECK:STDOUT: %.loc16_46.6: ref %i32 = struct_access %s.var, element1
|
||||
// CHECK:STDOUT: %.loc16_46.7: init %i32 = initialize_from %.loc16_46.5 to %.loc16_46.6 [concrete = constants.%int_2.ef8]
|
||||
// CHECK:STDOUT: %.loc16_46.8: init %struct_type.a.b.501 = struct_init (%.loc16_46.4, %.loc16_46.7) to %s.var [concrete = constants.%struct]
|
||||
// CHECK:STDOUT: %.loc16_3.1: init %struct_type.a.b.501 = converted %.loc16_46.1, %.loc16_46.8 [concrete = constants.%struct]
|
||||
// CHECK:STDOUT: assign %s.var, %.loc16_3.1
|
||||
// CHECK:STDOUT: %.loc16_3: init %struct_type.a.b.501 = converted %.loc16_46.1, %.loc16_46.8 [concrete = constants.%struct]
|
||||
// CHECK:STDOUT: assign %s.var, %.loc16_3
|
||||
// CHECK:STDOUT: %.loc16_27: type = splice_block %struct_type.a.b.loc16 [concrete = constants.%struct_type.a.b.501] {
|
||||
// CHECK:STDOUT: %int_32.loc16_15: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc16_15: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
@@ -169,9 +172,9 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %p.var: ref %ptr.3ee = var %p.var_patt
|
||||
// CHECK:STDOUT: %s.ref.loc18: ref %struct_type.a.b.501 = name_ref s, %s
|
||||
// CHECK:STDOUT: %addr.loc18: %ptr.3ee = addr_of %s.ref.loc18
|
||||
// CHECK:STDOUT: assign %p.var, %addr.loc18
|
||||
// CHECK:STDOUT: %.loc18_28: type = splice_block %ptr.loc18 [concrete = constants.%ptr.3ee] {
|
||||
// CHECK:STDOUT: %addr.loc18_32: %ptr.3ee = addr_of %s.ref.loc18
|
||||
// CHECK:STDOUT: assign %p.var, %addr.loc18_32
|
||||
// CHECK:STDOUT: %.loc18: type = splice_block %ptr.loc18 [concrete = constants.%ptr.3ee] {
|
||||
// CHECK:STDOUT: %int_32.loc18_15: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc18_15: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc18_24: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
@@ -187,8 +190,8 @@ fn F() {
|
||||
// CHECK:STDOUT: %q.var: ref %ptr.235 = var %q.var_patt
|
||||
// CHECK:STDOUT: %s.ref.loc19: ref %struct_type.a.b.501 = name_ref s, %s
|
||||
// CHECK:STDOUT: %.loc19_19: ref %i32 = struct_access %s.ref.loc19, element0
|
||||
// CHECK:STDOUT: %addr.loc19: %ptr.235 = addr_of %.loc19_19
|
||||
// CHECK:STDOUT: assign %q.var, %addr.loc19
|
||||
// CHECK:STDOUT: %addr.loc19_17: %ptr.235 = addr_of %.loc19_19
|
||||
// CHECK:STDOUT: assign %q.var, %addr.loc19_17
|
||||
// CHECK:STDOUT: %.loc19_13: type = splice_block %ptr.loc19 [concrete = constants.%ptr.235] {
|
||||
// CHECK:STDOUT: %int_32.loc19: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc19: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
@@ -202,8 +205,8 @@ fn F() {
|
||||
// CHECK:STDOUT: %r.var: ref %ptr.235 = var %r.var_patt
|
||||
// CHECK:STDOUT: %s.ref.loc20: ref %struct_type.a.b.501 = name_ref s, %s
|
||||
// CHECK:STDOUT: %.loc20_19: ref %i32 = struct_access %s.ref.loc20, element1
|
||||
// CHECK:STDOUT: %addr.loc20: %ptr.235 = addr_of %.loc20_19
|
||||
// CHECK:STDOUT: assign %r.var, %addr.loc20
|
||||
// CHECK:STDOUT: %addr.loc20_17: %ptr.235 = addr_of %.loc20_19
|
||||
// CHECK:STDOUT: assign %r.var, %addr.loc20_17
|
||||
// CHECK:STDOUT: %.loc20_13: type = splice_block %ptr.loc20 [concrete = constants.%ptr.235] {
|
||||
// CHECK:STDOUT: %int_32.loc20: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc20: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
@@ -224,19 +227,19 @@ fn F() {
|
||||
// CHECK:STDOUT: %bound_method.loc22_28.2: <bound method> = bound_method %int_1.loc22, %specific_fn.loc22_28.1 [concrete = constants.%bound_method.9a1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc22_28.1: init %i32 = call %bound_method.loc22_28.2(%int_1.loc22) [concrete = constants.%int_1.5d2]
|
||||
// CHECK:STDOUT: %.loc22_28.2: init %i32 = converted %int_1.loc22, %int.convert_checked.loc22_28.1 [concrete = constants.%int_1.5d2]
|
||||
// CHECK:STDOUT: %tuple.elem0.loc22_28: ref %i32 = tuple_access %t.var, element0
|
||||
// CHECK:STDOUT: %.loc22_28.3: init %i32 = initialize_from %.loc22_28.2 to %tuple.elem0.loc22_28 [concrete = constants.%int_1.5d2]
|
||||
// CHECK:STDOUT: %tuple.elem0.loc22: ref %i32 = tuple_access %t.var, element0
|
||||
// CHECK:STDOUT: %.loc22_28.3: init %i32 = initialize_from %.loc22_28.2 to %tuple.elem0.loc22 [concrete = constants.%int_1.5d2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc22_28.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956]
|
||||
// CHECK:STDOUT: %bound_method.loc22_28.3: <bound method> = bound_method %int_2.loc22, %impl.elem0.loc22_28.2 [concrete = constants.%Convert.bound.ef9]
|
||||
// CHECK:STDOUT: %specific_fn.loc22_28.2: <specific function> = specific_function %impl.elem0.loc22_28.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc22_28.4: <bound method> = bound_method %int_2.loc22, %specific_fn.loc22_28.2 [concrete = constants.%bound_method.b92]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc22_28.2: init %i32 = call %bound_method.loc22_28.4(%int_2.loc22) [concrete = constants.%int_2.ef8]
|
||||
// CHECK:STDOUT: %.loc22_28.4: init %i32 = converted %int_2.loc22, %int.convert_checked.loc22_28.2 [concrete = constants.%int_2.ef8]
|
||||
// CHECK:STDOUT: %tuple.elem1.loc22_28: ref %i32 = tuple_access %t.var, element1
|
||||
// CHECK:STDOUT: %.loc22_28.5: init %i32 = initialize_from %.loc22_28.4 to %tuple.elem1.loc22_28 [concrete = constants.%int_2.ef8]
|
||||
// CHECK:STDOUT: %tuple.elem1.loc22: ref %i32 = tuple_access %t.var, element1
|
||||
// CHECK:STDOUT: %.loc22_28.5: init %i32 = initialize_from %.loc22_28.4 to %tuple.elem1.loc22 [concrete = constants.%int_2.ef8]
|
||||
// CHECK:STDOUT: %.loc22_28.6: init %tuple.type.d07 = tuple_init (%.loc22_28.3, %.loc22_28.5) to %t.var [concrete = constants.%tuple]
|
||||
// CHECK:STDOUT: %.loc22_3.1: init %tuple.type.d07 = converted %.loc22_28.1, %.loc22_28.6 [concrete = constants.%tuple]
|
||||
// CHECK:STDOUT: assign %t.var, %.loc22_3.1
|
||||
// CHECK:STDOUT: %.loc22_3: init %tuple.type.d07 = converted %.loc22_28.1, %.loc22_28.6 [concrete = constants.%tuple]
|
||||
// CHECK:STDOUT: assign %t.var, %.loc22_3
|
||||
// CHECK:STDOUT: %.loc22_19.1: type = splice_block %.loc22_19.3 [concrete = constants.%tuple.type.d07] {
|
||||
// CHECK:STDOUT: %int_32.loc22_11: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc22_11: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
@@ -254,9 +257,9 @@ fn F() {
|
||||
// CHECK:STDOUT: %t.ref.loc23: ref %tuple.type.d07 = name_ref t, %t
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0]
|
||||
// CHECK:STDOUT: %tuple.elem0.loc23: ref %i32 = tuple_access %t.ref.loc23, element0
|
||||
// CHECK:STDOUT: %addr.loc23: %ptr.235 = addr_of %tuple.elem0.loc23
|
||||
// CHECK:STDOUT: assign %t0.var, %addr.loc23
|
||||
// CHECK:STDOUT: %.loc23_14: type = splice_block %ptr.loc23 [concrete = constants.%ptr.235] {
|
||||
// CHECK:STDOUT: %addr.loc23_18: %ptr.235 = addr_of %tuple.elem0.loc23
|
||||
// CHECK:STDOUT: assign %t0.var, %addr.loc23_18
|
||||
// CHECK:STDOUT: %.loc23: type = splice_block %ptr.loc23 [concrete = constants.%ptr.235] {
|
||||
// CHECK:STDOUT: %int_32.loc23: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc23: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
// CHECK:STDOUT: %ptr.loc23: type = ptr_type %i32.loc23 [concrete = constants.%ptr.235]
|
||||
@@ -270,9 +273,9 @@ fn F() {
|
||||
// CHECK:STDOUT: %t.ref.loc24: ref %tuple.type.d07 = name_ref t, %t
|
||||
// CHECK:STDOUT: %int_1.loc24: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8]
|
||||
// CHECK:STDOUT: %tuple.elem1.loc24: ref %i32 = tuple_access %t.ref.loc24, element1
|
||||
// CHECK:STDOUT: %addr.loc24: %ptr.235 = addr_of %tuple.elem1.loc24
|
||||
// CHECK:STDOUT: assign %t1.var, %addr.loc24
|
||||
// CHECK:STDOUT: %.loc24_14: type = splice_block %ptr.loc24 [concrete = constants.%ptr.235] {
|
||||
// CHECK:STDOUT: %addr.loc24_18: %ptr.235 = addr_of %tuple.elem1.loc24
|
||||
// CHECK:STDOUT: assign %t1.var, %addr.loc24_18
|
||||
// CHECK:STDOUT: %.loc24: type = splice_block %ptr.loc24 [concrete = constants.%ptr.235] {
|
||||
// CHECK:STDOUT: %int_32.loc24: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc24: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
// CHECK:STDOUT: %ptr.loc24: type = ptr_type %i32.loc24 [concrete = constants.%ptr.235]
|
||||
@@ -282,54 +285,44 @@ fn F() {
|
||||
// CHECK:STDOUT: %bound_method.loc24_3.1: <bound method> = bound_method %t1.var, %impl.elem0.loc24
|
||||
// CHECK:STDOUT: %specific_fn.loc24: <specific function> = specific_function %impl.elem0.loc24, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829]
|
||||
// CHECK:STDOUT: %bound_method.loc24_3.2: <bound method> = bound_method %t1.var, %specific_fn.loc24
|
||||
// CHECK:STDOUT: %.loc24_3: %ptr.235 = bind_value %t1.var
|
||||
// CHECK:STDOUT: %no_op.loc24: init %empty_tuple.type = call %bound_method.loc24_3.2(%.loc24_3)
|
||||
// CHECK:STDOUT: %addr.loc24_3: %ptr.5d5 = addr_of %t1.var
|
||||
// CHECK:STDOUT: %no_op.loc24: init %empty_tuple.type = call %bound_method.loc24_3.2(%addr.loc24_3)
|
||||
// CHECK:STDOUT: %impl.elem0.loc23: %.a79 = impl_witness_access constants.%Destroy.impl_witness.711, element0 [concrete = constants.%Op.649]
|
||||
// CHECK:STDOUT: %bound_method.loc23_3.1: <bound method> = bound_method %t0.var, %impl.elem0.loc23
|
||||
// CHECK:STDOUT: %specific_fn.loc23: <specific function> = specific_function %impl.elem0.loc23, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829]
|
||||
// CHECK:STDOUT: %bound_method.loc23_3.2: <bound method> = bound_method %t0.var, %specific_fn.loc23
|
||||
// CHECK:STDOUT: %.loc23_3: %ptr.235 = bind_value %t0.var
|
||||
// CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23_3.2(%.loc23_3)
|
||||
// CHECK:STDOUT: %addr.loc23_3: %ptr.5d5 = addr_of %t0.var
|
||||
// CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23_3.2(%addr.loc23_3)
|
||||
// CHECK:STDOUT: %impl.elem0.loc22_3: %.b68 = impl_witness_access constants.%Destroy.impl_witness.5a7, element0 [concrete = constants.%Op.7c6]
|
||||
// CHECK:STDOUT: %bound_method.loc22_3.1: <bound method> = bound_method %t.var, %impl.elem0.loc22_3
|
||||
// CHECK:STDOUT: %specific_fn.loc22_3: <specific function> = specific_function %impl.elem0.loc22_3, @Op.3(constants.%tuple.type.d07) [concrete = constants.%Op.specific_fn.bbb]
|
||||
// CHECK:STDOUT: %bound_method.loc22_3.2: <bound method> = bound_method %t.var, %specific_fn.loc22_3
|
||||
// CHECK:STDOUT: %tuple.elem0.loc22_3: ref %i32 = tuple_access %t.var, element0
|
||||
// CHECK:STDOUT: %.loc22_3.2: %i32 = bind_value %tuple.elem0.loc22_3
|
||||
// CHECK:STDOUT: %tuple.elem1.loc22_3: ref %i32 = tuple_access %t.var, element1
|
||||
// CHECK:STDOUT: %.loc22_3.3: %i32 = bind_value %tuple.elem1.loc22_3
|
||||
// CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%.loc22_3.2, %.loc22_3.3)
|
||||
// CHECK:STDOUT: %.loc22_3.4: %tuple.type.d07 = converted %t.var, %tuple
|
||||
// CHECK:STDOUT: %no_op.loc22: init %empty_tuple.type = call %bound_method.loc22_3.2(%.loc22_3.4)
|
||||
// CHECK:STDOUT: %addr.loc22: %ptr.261 = addr_of %t.var
|
||||
// CHECK:STDOUT: %no_op.loc22: init %empty_tuple.type = call %bound_method.loc22_3.2(%addr.loc22)
|
||||
// CHECK:STDOUT: %impl.elem0.loc20: %.a79 = impl_witness_access constants.%Destroy.impl_witness.711, element0 [concrete = constants.%Op.649]
|
||||
// CHECK:STDOUT: %bound_method.loc20_3.1: <bound method> = bound_method %r.var, %impl.elem0.loc20
|
||||
// CHECK:STDOUT: %specific_fn.loc20: <specific function> = specific_function %impl.elem0.loc20, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829]
|
||||
// CHECK:STDOUT: %bound_method.loc20_3.2: <bound method> = bound_method %r.var, %specific_fn.loc20
|
||||
// CHECK:STDOUT: %.loc20_3: %ptr.235 = bind_value %r.var
|
||||
// CHECK:STDOUT: %no_op.loc20: init %empty_tuple.type = call %bound_method.loc20_3.2(%.loc20_3)
|
||||
// CHECK:STDOUT: %addr.loc20_3: %ptr.5d5 = addr_of %r.var
|
||||
// CHECK:STDOUT: %no_op.loc20: init %empty_tuple.type = call %bound_method.loc20_3.2(%addr.loc20_3)
|
||||
// CHECK:STDOUT: %impl.elem0.loc19: %.a79 = impl_witness_access constants.%Destroy.impl_witness.711, element0 [concrete = constants.%Op.649]
|
||||
// CHECK:STDOUT: %bound_method.loc19_3.1: <bound method> = bound_method %q.var, %impl.elem0.loc19
|
||||
// CHECK:STDOUT: %specific_fn.loc19: <specific function> = specific_function %impl.elem0.loc19, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829]
|
||||
// CHECK:STDOUT: %bound_method.loc19_3.2: <bound method> = bound_method %q.var, %specific_fn.loc19
|
||||
// CHECK:STDOUT: %.loc19_3: %ptr.235 = bind_value %q.var
|
||||
// CHECK:STDOUT: %no_op.loc19: init %empty_tuple.type = call %bound_method.loc19_3.2(%.loc19_3)
|
||||
// CHECK:STDOUT: %addr.loc19_3: %ptr.5d5 = addr_of %q.var
|
||||
// CHECK:STDOUT: %no_op.loc19: init %empty_tuple.type = call %bound_method.loc19_3.2(%addr.loc19_3)
|
||||
// CHECK:STDOUT: %impl.elem0.loc18: %.f93 = impl_witness_access constants.%Destroy.impl_witness.ff6, element0 [concrete = constants.%Op.e22]
|
||||
// CHECK:STDOUT: %bound_method.loc18_3.1: <bound method> = bound_method %p.var, %impl.elem0.loc18
|
||||
// CHECK:STDOUT: %specific_fn.loc18: <specific function> = specific_function %impl.elem0.loc18, @Op.3(constants.%ptr.3ee) [concrete = constants.%Op.specific_fn.ce1]
|
||||
// CHECK:STDOUT: %bound_method.loc18_3.2: <bound method> = bound_method %p.var, %specific_fn.loc18
|
||||
// CHECK:STDOUT: %.loc18_3: %ptr.3ee = bind_value %p.var
|
||||
// CHECK:STDOUT: %no_op.loc18: init %empty_tuple.type = call %bound_method.loc18_3.2(%.loc18_3)
|
||||
// CHECK:STDOUT: %addr.loc18_3: %ptr.40c = addr_of %p.var
|
||||
// CHECK:STDOUT: %no_op.loc18: init %empty_tuple.type = call %bound_method.loc18_3.2(%addr.loc18_3)
|
||||
// CHECK:STDOUT: %impl.elem0.loc16_3: %.8e0 = impl_witness_access constants.%Destroy.impl_witness.ad1, element0 [concrete = constants.%Op.9db]
|
||||
// CHECK:STDOUT: %bound_method.loc16_3.1: <bound method> = bound_method %s.var, %impl.elem0.loc16_3
|
||||
// CHECK:STDOUT: %specific_fn.loc16_3: <specific function> = specific_function %impl.elem0.loc16_3, @Op.3(constants.%struct_type.a.b.501) [concrete = constants.%Op.specific_fn.1e0]
|
||||
// CHECK:STDOUT: %bound_method.loc16_3.2: <bound method> = bound_method %s.var, %specific_fn.loc16_3
|
||||
// CHECK:STDOUT: %.loc16_3.2: ref %i32 = struct_access %s.var, element0
|
||||
// CHECK:STDOUT: %.loc16_3.3: %i32 = bind_value %.loc16_3.2
|
||||
// CHECK:STDOUT: %.loc16_3.4: ref %i32 = struct_access %s.var, element1
|
||||
// CHECK:STDOUT: %.loc16_3.5: %i32 = bind_value %.loc16_3.4
|
||||
// CHECK:STDOUT: %struct: %struct_type.a.b.501 = struct_value (%.loc16_3.3, %.loc16_3.5)
|
||||
// CHECK:STDOUT: %.loc16_3.6: %struct_type.a.b.501 = converted %s.var, %struct
|
||||
// CHECK:STDOUT: %no_op.loc16: init %empty_tuple.type = call %bound_method.loc16_3.2(%.loc16_3.6)
|
||||
// CHECK:STDOUT: %addr.loc16: %ptr.3ee = addr_of %s.var
|
||||
// CHECK:STDOUT: %no_op.loc16: init %empty_tuple.type = call %bound_method.loc16_3.2(%addr.loc16)
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+11
-12
@@ -148,6 +148,7 @@ fn AddressOfParam(param: i32) {
|
||||
// CHECK:STDOUT: %Destroy.impl_witness.6d2: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%struct_type.a.ba9) [concrete]
|
||||
// CHECK:STDOUT: %Op.type.c80: type = fn_type @Op.2, @impl.49c(%struct_type.a.ba9) [concrete]
|
||||
// CHECK:STDOUT: %Op.691: %Op.type.c80 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ptr.1bb: type = ptr_type %struct_type.a.ba9 [concrete]
|
||||
// CHECK:STDOUT: %Destroy.facet.16e: %Destroy.type = facet_value %struct_type.a.ba9, (%Destroy.impl_witness.6d2) [concrete]
|
||||
// CHECK:STDOUT: %.a8f: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.16e [concrete]
|
||||
// CHECK:STDOUT: %Op.specific_fn.51b: <specific function> = specific_function %Op.691, @Op.2(%struct_type.a.ba9) [concrete]
|
||||
@@ -167,6 +168,7 @@ fn AddressOfParam(param: i32) {
|
||||
// CHECK:STDOUT: %Destroy.impl_witness.711: <witness> = impl_witness imports.%Destroy.impl_witness_table, @impl.49c(%ptr.235) [concrete]
|
||||
// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.2, @impl.49c(%ptr.235) [concrete]
|
||||
// CHECK:STDOUT: %Op.649: %Op.type.ba2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete]
|
||||
// CHECK:STDOUT: %Destroy.facet.2bf: %Destroy.type = facet_value %ptr.235, (%Destroy.impl_witness.711) [concrete]
|
||||
// CHECK:STDOUT: %.a79: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.2bf [concrete]
|
||||
// CHECK:STDOUT: %Op.specific_fn.829: <specific function> = specific_function %Op.649, @Op.2(%ptr.235) [concrete]
|
||||
@@ -181,7 +183,7 @@ fn AddressOfParam(param: i32) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic]
|
||||
// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type]
|
||||
// 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:
|
||||
@@ -277,7 +279,7 @@ fn AddressOfParam(param: i32) {
|
||||
// CHECK:STDOUT: %.loc62_6.1: ref %struct_type.a.ba9 = temporary_storage
|
||||
// CHECK:STDOUT: %.loc62_6.2: ref %struct_type.a.ba9 = temporary %.loc62_6.1, %H.call
|
||||
// CHECK:STDOUT: %.loc62_7: ref %i32 = struct_access %.loc62_6.2, element0
|
||||
// CHECK:STDOUT: %addr.loc62: %ptr.235 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc62_3: %ptr.235 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %true.loc67: bool = bool_literal true [concrete = constants.%true]
|
||||
// CHECK:STDOUT: %.loc67: bool = not %true.loc67 [concrete = constants.%false]
|
||||
// CHECK:STDOUT: %addr.loc67: %ptr.bb2 = addr_of <error> [concrete = <error>]
|
||||
@@ -285,11 +287,8 @@ fn AddressOfParam(param: i32) {
|
||||
// CHECK:STDOUT: %bound_method.loc62_6.1: <bound method> = bound_method %.loc62_6.1, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @Op.2(constants.%struct_type.a.ba9) [concrete = constants.%Op.specific_fn.51b]
|
||||
// CHECK:STDOUT: %bound_method.loc62_6.2: <bound method> = bound_method %.loc62_6.1, %specific_fn
|
||||
// CHECK:STDOUT: %.loc62_6.3: ref %i32 = struct_access %.loc62_6.1, element0
|
||||
// CHECK:STDOUT: %.loc62_6.4: %i32 = bind_value %.loc62_6.3
|
||||
// CHECK:STDOUT: %struct: %struct_type.a.ba9 = struct_value (%.loc62_6.4)
|
||||
// CHECK:STDOUT: %.loc62_6.5: %struct_type.a.ba9 = converted %.loc62_6.1, %struct
|
||||
// CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc62_6.2(%.loc62_6.5)
|
||||
// CHECK:STDOUT: %addr.loc62_6: %ptr.1bb = addr_of %.loc62_6.1
|
||||
// CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc62_6.2(%addr.loc62_6)
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -335,9 +334,9 @@ fn AddressOfParam(param: i32) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %param_addr.var: ref %ptr.235 = var %param_addr.var_patt
|
||||
// CHECK:STDOUT: %param.ref: %i32 = name_ref param, %param
|
||||
// CHECK:STDOUT: %addr: %ptr.235 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: assign %param_addr.var, %addr
|
||||
// CHECK:STDOUT: %.loc104_22: type = splice_block %ptr [concrete = constants.%ptr.235] {
|
||||
// CHECK:STDOUT: %addr.loc104_26: %ptr.235 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: assign %param_addr.var, %addr.loc104_26
|
||||
// CHECK:STDOUT: %.loc104: type = splice_block %ptr [concrete = constants.%ptr.235] {
|
||||
// CHECK:STDOUT: %int_32.loc104: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc104: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc104 [concrete = constants.%ptr.235]
|
||||
@@ -347,8 +346,8 @@ fn AddressOfParam(param: i32) {
|
||||
// CHECK:STDOUT: %bound_method.loc104_3.1: <bound method> = bound_method %param_addr.var, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @Op.2(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829]
|
||||
// CHECK:STDOUT: %bound_method.loc104_3.2: <bound method> = bound_method %param_addr.var, %specific_fn
|
||||
// CHECK:STDOUT: %.loc104_3: %ptr.235 = bind_value %param_addr.var
|
||||
// CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc104_3.2(%.loc104_3)
|
||||
// CHECK:STDOUT: %addr.loc104_3: %ptr.5d5 = addr_of %param_addr.var
|
||||
// CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc104_3.2(%addr.loc104_3)
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
Reference in New Issue
Block a user