|
|
@@ -1069,6 +1069,8 @@ fn F() {
|
|
|
// CHECK:STDOUT: %operator_Tilde__carbon_thunk: %operator_Tilde__carbon_thunk.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: imports {
|
|
|
@@ -1103,6 +1105,13 @@ fn F() {
|
|
|
// CHECK:STDOUT: } {
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F() {
|
|
|
@@ -1165,11 +1174,18 @@ fn F() {
|
|
|
// CHECK:STDOUT: %.loc18_34.3: ref %C = temporary %.loc18_34.1, %.loc18_34.2
|
|
|
// CHECK:STDOUT: %.loc18_34.4: %C = acquire_value %.loc18_34.3
|
|
|
// CHECK:STDOUT: %complement: %C = value_binding complement, %.loc18_34.4
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc18: <bound method> = bound_method %.loc18_34.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc18: <bound method> = bound_method %.loc18_34.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc18: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc18: <bound method> = bound_method %.loc18_34.3, %Op.ref.loc18
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc18: init %empty_tuple.type = call %C.cpp_destructor.bound.loc18(%.loc18_34.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc15: <bound method> = bound_method %.loc15_29.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc15: <bound method> = bound_method %.loc15_29.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc15: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc15: <bound method> = bound_method %.loc15_29.3, %Op.ref.loc15
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc15: init %empty_tuple.type = call %C.cpp_destructor.bound.loc15(%.loc15_29.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %c.var, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc8: <bound method> = bound_method %c.var, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc8: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %c.var, %Op.ref.loc8
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc8: init %empty_tuple.type = call %C.cpp_destructor.bound.loc8(%c.var)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
@@ -1271,6 +1287,8 @@ fn F() {
|
|
|
// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: imports {
|
|
|
@@ -1427,6 +1445,13 @@ fn F() {
|
|
|
// CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F() {
|
|
|
@@ -1907,29 +1932,54 @@ fn F() {
|
|
|
// CHECK:STDOUT: %Destroy.Op.call.loc41: init %empty_tuple.type = call %Destroy.Op.bound.loc41(%.loc41_35.3)
|
|
|
// CHECK:STDOUT: %Destroy.Op.bound.loc40: <bound method> = bound_method %.loc40_31.3, constants.%Destroy.Op
|
|
|
// CHECK:STDOUT: %Destroy.Op.call.loc40: init %empty_tuple.type = call %Destroy.Op.bound.loc40(%.loc40_31.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc23: <bound method> = bound_method %.loc23_38.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc23: <bound method> = bound_method %.loc23_38.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc23: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc23: <bound method> = bound_method %.loc23_38.3, %Op.ref.loc23
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc23: init %empty_tuple.type = call %C.cpp_destructor.bound.loc23(%.loc23_38.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc22: <bound method> = bound_method %.loc22_37.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc22: <bound method> = bound_method %.loc22_37.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc22: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc22: <bound method> = bound_method %.loc22_37.3, %Op.ref.loc22
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc22: init %empty_tuple.type = call %C.cpp_destructor.bound.loc22(%.loc22_37.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc21: <bound method> = bound_method %.loc21_38.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc21: <bound method> = bound_method %.loc21_38.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc21: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc21: <bound method> = bound_method %.loc21_38.3, %Op.ref.loc21
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc21: init %empty_tuple.type = call %C.cpp_destructor.bound.loc21(%.loc21_38.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc20: <bound method> = bound_method %.loc20_37.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc20: <bound method> = bound_method %.loc20_37.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc20: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc20: <bound method> = bound_method %.loc20_37.3, %Op.ref.loc20
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc20: init %empty_tuple.type = call %C.cpp_destructor.bound.loc20(%.loc20_37.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc19: <bound method> = bound_method %.loc19_38.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc19: <bound method> = bound_method %.loc19_38.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc19: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc19: <bound method> = bound_method %.loc19_38.3, %Op.ref.loc19
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc19: init %empty_tuple.type = call %C.cpp_destructor.bound.loc19(%.loc19_38.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc16: <bound method> = bound_method %.loc16_33.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc16: <bound method> = bound_method %.loc16_33.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc16: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc16: <bound method> = bound_method %.loc16_33.3, %Op.ref.loc16
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc16: init %empty_tuple.type = call %C.cpp_destructor.bound.loc16(%.loc16_33.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc15: <bound method> = bound_method %.loc15_35.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc15: <bound method> = bound_method %.loc15_35.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc15: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc15: <bound method> = bound_method %.loc15_35.3, %Op.ref.loc15
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc15: init %empty_tuple.type = call %C.cpp_destructor.bound.loc15(%.loc15_35.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc14: <bound method> = bound_method %.loc14_41.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc14: <bound method> = bound_method %.loc14_41.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc14: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc14: <bound method> = bound_method %.loc14_41.3, %Op.ref.loc14
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc14: init %empty_tuple.type = call %C.cpp_destructor.bound.loc14(%.loc14_41.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc13: <bound method> = bound_method %.loc13_38.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc13: <bound method> = bound_method %.loc13_38.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc13: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc13: <bound method> = bound_method %.loc13_38.3, %Op.ref.loc13
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc13: init %empty_tuple.type = call %C.cpp_destructor.bound.loc13(%.loc13_38.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc12: <bound method> = bound_method %.loc12_35.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc12: <bound method> = bound_method %.loc12_35.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc12: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc12: <bound method> = bound_method %.loc12_35.3, %Op.ref.loc12
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc12: init %empty_tuple.type = call %C.cpp_destructor.bound.loc12(%.loc12_35.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %c2.var, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc9: <bound method> = bound_method %c2.var, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc9: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %c2.var, %Op.ref.loc9
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc9: init %empty_tuple.type = call %C.cpp_destructor.bound.loc9(%c2.var)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %c1.var, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc8: <bound method> = bound_method %c1.var, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc8: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %c1.var, %Op.ref.loc8
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc8: init %empty_tuple.type = call %C.cpp_destructor.bound.loc8(%c1.var)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
@@ -1951,6 +2001,8 @@ fn F() {
|
|
|
// CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: imports {
|
|
|
@@ -1970,6 +2022,13 @@ fn F() {
|
|
|
// CHECK:STDOUT: } {
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F() {
|
|
|
@@ -2068,15 +2127,26 @@ fn F() {
|
|
|
// CHECK:STDOUT: %.loc12_29.3: ref %C = temporary %.loc12_29.1, %.loc12_29.2
|
|
|
// CHECK:STDOUT: %.loc12_29.4: %C = acquire_value %.loc12_29.3
|
|
|
// CHECK:STDOUT: %c5: %C = value_binding c5, %.loc12_29.4
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc12: <bound method> = bound_method %.loc12_29.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc12: <bound method> = bound_method %.loc12_29.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc12: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc12: <bound method> = bound_method %.loc12_29.3, %Op.ref.loc12
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc12: init %empty_tuple.type = call %C.cpp_destructor.bound.loc12(%.loc12_29.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc11: <bound method> = bound_method %.loc11_22.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc11: <bound method> = bound_method %.loc11_22.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc11: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc11: <bound method> = bound_method %.loc11_22.3, %Op.ref.loc11
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc11: init %empty_tuple.type = call %C.cpp_destructor.bound.loc11(%.loc11_22.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc10: <bound method> = bound_method %.loc10_22.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc10: <bound method> = bound_method %.loc10_22.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc10: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc10: <bound method> = bound_method %.loc10_22.3, %Op.ref.loc10
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc10: init %empty_tuple.type = call %C.cpp_destructor.bound.loc10(%.loc10_22.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %.loc9_27.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc9: <bound method> = bound_method %.loc9_27.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc9: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %.loc9_27.3, %Op.ref.loc9
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc9: init %empty_tuple.type = call %C.cpp_destructor.bound.loc9(%.loc9_27.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %.loc8_27.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc8: <bound method> = bound_method %.loc8_27.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc8: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %.loc8_27.3, %Op.ref.loc8
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc8: init %empty_tuple.type = call %C.cpp_destructor.bound.loc8(%.loc8_27.3)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
@@ -2102,6 +2172,8 @@ fn F() {
|
|
|
// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: imports {
|
|
|
@@ -2126,6 +2198,13 @@ fn F() {
|
|
|
// CHECK:STDOUT: } {
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F() {
|
|
|
@@ -2222,9 +2301,14 @@ fn F() {
|
|
|
// CHECK:STDOUT: %Destroy.Op.call.loc36: init %empty_tuple.type = call %Destroy.Op.bound.loc36(%.loc36_44.3)
|
|
|
// CHECK:STDOUT: %Destroy.Op.bound.loc19: <bound method> = bound_method %.loc19_38.3, constants.%Destroy.Op
|
|
|
// CHECK:STDOUT: %Destroy.Op.call.loc19: init %empty_tuple.type = call %Destroy.Op.bound.loc19(%.loc19_38.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc16: <bound method> = bound_method %c2.var, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc16: <bound method> = bound_method %c2.var, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc16: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc16: <bound method> = bound_method %c2.var, %Op.ref.loc16
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc16: init %empty_tuple.type = call %C.cpp_destructor.bound.loc16(%c2.var)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc15: <bound method> = bound_method %c1.var, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc15: <bound method> = bound_method %c1.var, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc15: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc15: <bound method> = bound_method %c1.var, %Op.ref.loc15
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc15: init %empty_tuple.type = call %C.cpp_destructor.bound.loc15(%c1.var)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
@@ -2250,6 +2334,8 @@ fn F() {
|
|
|
// CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: imports {
|
|
|
@@ -2269,6 +2355,13 @@ fn F() {
|
|
|
// CHECK:STDOUT: } {
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F() {
|
|
|
@@ -2337,9 +2430,14 @@ fn F() {
|
|
|
// CHECK:STDOUT: %not_equal: bool = value_binding not_equal, <error> [concrete = <error>]
|
|
|
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %.loc16_31.3, constants.%Destroy.Op
|
|
|
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc16_31.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc13: <bound method> = bound_method %c2.var, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc13: <bound method> = bound_method %c2.var, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc13: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc13: <bound method> = bound_method %c2.var, %Op.ref.loc13
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc13: init %empty_tuple.type = call %C.cpp_destructor.bound.loc13(%c2.var)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc12: <bound method> = bound_method %c1.var, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc12: <bound method> = bound_method %c1.var, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc12: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc12: <bound method> = bound_method %c1.var, %Op.ref.loc12
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc12: init %empty_tuple.type = call %C.cpp_destructor.bound.loc12(%c1.var)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
@@ -2361,6 +2459,8 @@ fn F() {
|
|
|
// CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: imports {
|
|
|
@@ -2384,6 +2484,13 @@ fn F() {
|
|
|
// CHECK:STDOUT: } {
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.69f = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.69f = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F() {
|
|
|
@@ -2447,11 +2554,18 @@ fn F() {
|
|
|
// CHECK:STDOUT: %.loc10_31.3: ref %C = temporary %.loc10_31.1, %.loc10_31.2
|
|
|
// CHECK:STDOUT: %.loc10_31.4: %C = acquire_value %.loc10_31.3
|
|
|
// CHECK:STDOUT: %c3: %C = value_binding c3, %.loc10_31.4
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc10: <bound method> = bound_method %.loc10_31.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc10: <bound method> = bound_method %.loc10_31.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc10: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc10: <bound method> = bound_method %.loc10_31.3, %Op.ref.loc10
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc10: init %empty_tuple.type = call %C.cpp_destructor.bound.loc10(%.loc10_31.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %.loc9_31.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc9: <bound method> = bound_method %.loc9_31.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc9: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %.loc9_31.3, %Op.ref.loc9
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc9: init %empty_tuple.type = call %C.cpp_destructor.bound.loc9(%.loc9_31.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %.loc8_31.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc8: <bound method> = bound_method %.loc8_31.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc8: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %.loc8_31.3, %Op.ref.loc8
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc8: init %empty_tuple.type = call %C.cpp_destructor.bound.loc8(%.loc8_31.3)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
@@ -2480,8 +2594,12 @@ fn F() {
|
|
|
// CHECK:STDOUT: %operator_Minus__carbon_thunk: %operator_Minus__carbon_thunk.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C2.cpp_destructor.type: type = fn_type @C2.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C2.cpp_destructor: %C2.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C2.Op.type: type = fn_type @C2.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C2.Op: %C2.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C1.cpp_destructor.type: type = fn_type @C1.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C1.cpp_destructor: %C1.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C1.Op.type: type = fn_type @C1.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C1.Op: %C1.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: imports {
|
|
|
@@ -2522,6 +2640,20 @@ fn F() {
|
|
|
// CHECK:STDOUT: } {
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C2.cpp_destructor.decl: %C2.cpp_destructor.type = fn_decl @C2.cpp_destructor [concrete = constants.%C2.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.846 = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.846 = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C2 = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C2 = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C1.cpp_destructor.decl: %C1.cpp_destructor.type = fn_decl @C1.cpp_destructor [concrete = constants.%C1.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.20f = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.20f = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C1 = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C1 = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F() {
|
|
|
@@ -2606,13 +2738,23 @@ fn F() {
|
|
|
// CHECK:STDOUT: %.loc11_33.3: ref %C2 = temporary %.loc11_33.1, %.loc11_33.2
|
|
|
// CHECK:STDOUT: %.loc11_33.4: %C2 = acquire_value %.loc11_33.3
|
|
|
// CHECK:STDOUT: %c4: %C2 = value_binding c4, %.loc11_33.4
|
|
|
-// CHECK:STDOUT: %C2.cpp_destructor.bound.loc11: <bound method> = bound_method %.loc11_33.3, constants.%C2.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C2.Op.bound.loc11: <bound method> = bound_method %.loc11_33.3, constants.%C2.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc11: %C2.cpp_destructor.type = name_ref Op, imports.%C2.cpp_destructor.decl [concrete = constants.%C2.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C2.cpp_destructor.bound.loc11: <bound method> = bound_method %.loc11_33.3, %Op.ref.loc11
|
|
|
// CHECK:STDOUT: %C2.cpp_destructor.call.loc11: init %empty_tuple.type = call %C2.cpp_destructor.bound.loc11(%.loc11_33.3)
|
|
|
-// CHECK:STDOUT: %C2.cpp_destructor.bound.loc10: <bound method> = bound_method %.loc10_33.3, constants.%C2.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C2.Op.bound.loc10: <bound method> = bound_method %.loc10_33.3, constants.%C2.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc10: %C2.cpp_destructor.type = name_ref Op, imports.%C2.cpp_destructor.decl [concrete = constants.%C2.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C2.cpp_destructor.bound.loc10: <bound method> = bound_method %.loc10_33.3, %Op.ref.loc10
|
|
|
// CHECK:STDOUT: %C2.cpp_destructor.call.loc10: init %empty_tuple.type = call %C2.cpp_destructor.bound.loc10(%.loc10_33.3)
|
|
|
-// CHECK:STDOUT: %C2.cpp_destructor.bound.loc9: <bound method> = bound_method %.loc9_36.3, constants.%C2.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C2.Op.bound.loc9: <bound method> = bound_method %.loc9_36.3, constants.%C2.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc9: %C2.cpp_destructor.type = name_ref Op, imports.%C2.cpp_destructor.decl [concrete = constants.%C2.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C2.cpp_destructor.bound.loc9: <bound method> = bound_method %.loc9_36.3, %Op.ref.loc9
|
|
|
// CHECK:STDOUT: %C2.cpp_destructor.call.loc9: init %empty_tuple.type = call %C2.cpp_destructor.bound.loc9(%.loc9_36.3)
|
|
|
-// CHECK:STDOUT: %C1.cpp_destructor.bound: <bound method> = bound_method %.loc8_36.3, constants.%C1.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C1.Op.bound: <bound method> = bound_method %.loc8_36.3, constants.%C1.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc8: %C1.cpp_destructor.type = name_ref Op, imports.%C1.cpp_destructor.decl [concrete = constants.%C1.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C1.cpp_destructor.bound: <bound method> = bound_method %.loc8_36.3, %Op.ref.loc8
|
|
|
// CHECK:STDOUT: %C1.cpp_destructor.call: init %empty_tuple.type = call %C1.cpp_destructor.bound(%.loc8_36.3)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
@@ -2630,6 +2772,8 @@ fn F() {
|
|
|
// CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: imports {
|
|
|
@@ -2648,6 +2792,13 @@ fn F() {
|
|
|
// CHECK:STDOUT: } {
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.69f = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.69f = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F() {
|
|
|
@@ -2701,9 +2852,14 @@ fn F() {
|
|
|
// CHECK:STDOUT: %C.ref.loc14: type = name_ref C, imports.%C.decl [concrete = constants.%C]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: %c3: %C = value_binding c3, <error> [concrete = <error>]
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %.loc9_31.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc9: <bound method> = bound_method %.loc9_31.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc9: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %.loc9_31.3, %Op.ref.loc9
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc9: init %empty_tuple.type = call %C.cpp_destructor.bound.loc9(%.loc9_31.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %.loc8_31.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc8: <bound method> = bound_method %.loc8_31.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc8: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %.loc8_31.3, %Op.ref.loc8
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc8: init %empty_tuple.type = call %C.cpp_destructor.bound.loc8(%.loc8_31.3)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
@@ -2724,6 +2880,8 @@ fn F() {
|
|
|
// CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: imports {
|
|
|
@@ -2744,6 +2902,13 @@ fn F() {
|
|
|
// CHECK:STDOUT: } {
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.b28 = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.b28 = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F() {
|
|
|
@@ -2807,11 +2972,18 @@ fn F() {
|
|
|
// CHECK:STDOUT: %.loc10_31.3: ref %C = temporary %.loc10_31.1, %.loc10_31.2
|
|
|
// CHECK:STDOUT: %.loc10_31.4: %C = acquire_value %.loc10_31.3
|
|
|
// CHECK:STDOUT: %c3: %C = value_binding c3, %.loc10_31.4
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc10: <bound method> = bound_method %.loc10_31.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc10: <bound method> = bound_method %.loc10_31.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc10: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc10: <bound method> = bound_method %.loc10_31.3, %Op.ref.loc10
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc10: init %empty_tuple.type = call %C.cpp_destructor.bound.loc10(%.loc10_31.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %.loc9_31.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc9: <bound method> = bound_method %.loc9_31.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc9: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %.loc9_31.3, %Op.ref.loc9
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc9: init %empty_tuple.type = call %C.cpp_destructor.bound.loc9(%.loc9_31.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %.loc8_31.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc8: <bound method> = bound_method %.loc8_31.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc8: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %.loc8_31.3, %Op.ref.loc8
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc8: init %empty_tuple.type = call %C.cpp_destructor.bound.loc8(%.loc8_31.3)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
@@ -2832,6 +3004,8 @@ fn F() {
|
|
|
// CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: imports {
|
|
|
@@ -2856,6 +3030,13 @@ fn F() {
|
|
|
// CHECK:STDOUT: } {
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.84b = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.84b = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F() {
|
|
|
@@ -2924,11 +3105,18 @@ fn F() {
|
|
|
// CHECK:STDOUT: %.loc10_33.3: ref %C = temporary %.loc10_33.1, %.loc10_33.2
|
|
|
// CHECK:STDOUT: %.loc10_33.4: %C = acquire_value %.loc10_33.3
|
|
|
// CHECK:STDOUT: %c3: %C = value_binding c3, %.loc10_33.4
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc10: <bound method> = bound_method %.loc10_33.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc10: <bound method> = bound_method %.loc10_33.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc10: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc10: <bound method> = bound_method %.loc10_33.3, %Op.ref.loc10
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc10: init %empty_tuple.type = call %C.cpp_destructor.bound.loc10(%.loc10_33.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %.loc9_35.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc9: <bound method> = bound_method %.loc9_35.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc9: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %.loc9_35.3, %Op.ref.loc9
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc9: init %empty_tuple.type = call %C.cpp_destructor.bound.loc9(%.loc9_35.3)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %.loc8_35.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc8: <bound method> = bound_method %.loc8_35.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc8: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %.loc8_35.3, %Op.ref.loc8
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc8: init %empty_tuple.type = call %C.cpp_destructor.bound.loc8(%.loc8_35.3)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
@@ -2954,6 +3142,8 @@ fn F() {
|
|
|
// CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: imports {
|
|
|
@@ -2996,6 +3186,13 @@ fn F() {
|
|
|
// CHECK:STDOUT: } {
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F() {
|
|
|
@@ -3056,11 +3253,18 @@ fn F() {
|
|
|
// CHECK:STDOUT: %C.ref.loc10: type = name_ref C, imports.%C.decl [concrete = constants.%C]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: %c3: ref %C = ref_binding c3, %c3.var
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc10: <bound method> = bound_method %c3.var, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc10: <bound method> = bound_method %c3.var, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc10: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc10: <bound method> = bound_method %c3.var, %Op.ref.loc10
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc10: init %empty_tuple.type = call %C.cpp_destructor.bound.loc10(%c3.var)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %c2.var, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc9: <bound method> = bound_method %c2.var, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc9: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc9: <bound method> = bound_method %c2.var, %Op.ref.loc9
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc9: init %empty_tuple.type = call %C.cpp_destructor.bound.loc9(%c2.var)
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %c1.var, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc8: <bound method> = bound_method %c1.var, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc8: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc8: <bound method> = bound_method %c1.var, %Op.ref.loc8
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc8: init %empty_tuple.type = call %C.cpp_destructor.bound.loc8(%c1.var)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
@@ -3107,6 +3311,8 @@ fn F() {
|
|
|
// CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete]
|
|
|
// CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete]
|
|
|
+// CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: imports {
|
|
|
@@ -3120,6 +3326,13 @@ fn F() {
|
|
|
// CHECK:STDOUT: } {
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.decl: %C.cpp_destructor.type = fn_decl @C.cpp_destructor [concrete = constants.%C.cpp_destructor] {
|
|
|
+// CHECK:STDOUT: %self.patt: %pattern_type.217 = ref_binding_pattern self [concrete]
|
|
|
+// CHECK:STDOUT: %self.param_patt: %pattern_type.217 = ref_param_pattern %self.patt [concrete]
|
|
|
+// CHECK:STDOUT: } {
|
|
|
+// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
|
|
|
+// CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param
|
|
|
+// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F() {
|
|
|
@@ -3145,7 +3358,10 @@ fn F() {
|
|
|
// CHECK:STDOUT: %.loc10_29.3: ref %C = temporary %.loc10_29.1, %.loc10_29.2
|
|
|
// CHECK:STDOUT: %.loc10_29.4: %C = acquire_value %.loc10_29.3
|
|
|
// CHECK:STDOUT: %c3: %C = value_binding c3, %.loc10_29.4
|
|
|
-// CHECK:STDOUT: %C.cpp_destructor.bound.loc10: <bound method> = bound_method %.loc10_29.3, constants.%C.cpp_destructor
|
|
|
+// CHECK:STDOUT: <elided>
|
|
|
+// CHECK:STDOUT: %C.Op.bound.loc10: <bound method> = bound_method %.loc10_29.3, constants.%C.Op
|
|
|
+// CHECK:STDOUT: %Op.ref.loc10: %C.cpp_destructor.type = name_ref Op, imports.%C.cpp_destructor.decl [concrete = constants.%C.cpp_destructor]
|
|
|
+// CHECK:STDOUT: %C.cpp_destructor.bound.loc10: <bound method> = bound_method %.loc10_29.3, %Op.ref.loc10
|
|
|
// CHECK:STDOUT: %C.cpp_destructor.call.loc10: init %empty_tuple.type = call %C.cpp_destructor.bound.loc10(%.loc10_29.3)
|
|
|
// CHECK:STDOUT: <elided>
|
|
|
// CHECK:STDOUT: }
|