|
@@ -507,10 +507,10 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %complete_type.513: <witness> = complete_type_witness %struct_type.vptr [concrete]
|
|
// CHECK:STDOUT: %complete_type.513: <witness> = complete_type_witness %struct_type.vptr [concrete]
|
|
|
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [concrete]
|
|
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.fb9: type = pattern_type %Derived [concrete]
|
|
// CHECK:STDOUT: %pattern_type.fb9: type = pattern_type %Derived [concrete]
|
|
|
-// CHECK:STDOUT: %H.type.dba: type = fn_type @H.1 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %H.type.dba: type = fn_type @H.loc8 [concrete]
|
|
|
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
|
|
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
|
|
|
// CHECK:STDOUT: %H.bce: %H.type.dba = struct_value () [concrete]
|
|
// CHECK:STDOUT: %H.bce: %H.type.dba = struct_value () [concrete]
|
|
|
-// CHECK:STDOUT: %H.type.09e: type = fn_type @H.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %H.type.09e: type = fn_type @H.1 [concrete]
|
|
|
// CHECK:STDOUT: %H.c1b: %H.type.09e = struct_value () [concrete]
|
|
// CHECK:STDOUT: %H.c1b: %H.type.09e = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %Base.vtable_ptr: ref %ptr.454 = vtable_ptr @Base.vtable [concrete]
|
|
// CHECK:STDOUT: %Base.vtable_ptr: ref %ptr.454 = vtable_ptr @Base.vtable [concrete]
|
|
|
// CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete]
|
|
// CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete]
|
|
@@ -564,7 +564,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %Modifiers.ref: <namespace> = name_ref Modifiers, imports.%Modifiers [concrete = imports.%Modifiers]
|
|
// CHECK:STDOUT: %Modifiers.ref: <namespace> = name_ref Modifiers, imports.%Modifiers [concrete = imports.%Modifiers]
|
|
|
// CHECK:STDOUT: %Base.ref: type = name_ref Base, imports.%Modifiers.Base [concrete = constants.%Base]
|
|
// CHECK:STDOUT: %Base.ref: type = name_ref Base, imports.%Modifiers.Base [concrete = constants.%Base]
|
|
|
// CHECK:STDOUT: %.loc7: %Derived.elem = base_decl %Base.ref, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc7: %Derived.elem = base_decl %Base.ref, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %H.decl: %H.type.dba = fn_decl @H.1 [concrete = constants.%H.bce] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %H.decl: %H.type.dba = fn_decl @H.loc8 [concrete = constants.%H.bce] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb9 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb9 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb9 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb9 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -603,9 +603,9 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: @Derived.%H.decl
|
|
// CHECK:STDOUT: @Derived.%H.decl
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: impl fn @H.1(%self.param: %Derived);
|
|
|
|
|
|
|
+// CHECK:STDOUT: impl fn @H.loc8(%self.param: %Derived);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: fn @H.2 [from "modifiers.carbon"];
|
|
|
|
|
|
|
+// CHECK:STDOUT: fn @H.1 [from "modifiers.carbon"];
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @Use() {
|
|
// CHECK:STDOUT: fn @Use() {
|
|
|
// CHECK:STDOUT: !entry:
|
|
// CHECK:STDOUT: !entry:
|
|
@@ -827,7 +827,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: constants {
|
|
// CHECK:STDOUT: constants {
|
|
|
// CHECK:STDOUT: %A1: type = class_type @A1 [concrete]
|
|
// CHECK:STDOUT: %A1: type = class_type @A1 [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.ddb: type = pattern_type %A1 [concrete]
|
|
// CHECK:STDOUT: %pattern_type.ddb: type = pattern_type %A1 [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.13a: type = fn_type @F.1 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.13a: type = fn_type @F.loc5 [concrete]
|
|
|
// CHECK:STDOUT: %F.df5: %F.type.13a = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.df5: %F.type.13a = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
|
// CHECK:STDOUT: %A1.vtable_ptr: ref %ptr.454 = vtable_ptr @A1.vtable [concrete]
|
|
// CHECK:STDOUT: %A1.vtable_ptr: ref %ptr.454 = vtable_ptr @A1.vtable [concrete]
|
|
@@ -836,7 +836,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %A2: type = class_type @A2 [concrete]
|
|
// CHECK:STDOUT: %A2: type = class_type @A2 [concrete]
|
|
|
// CHECK:STDOUT: %A2.elem: type = unbound_element_type %A2, %A1 [concrete]
|
|
// CHECK:STDOUT: %A2.elem: type = unbound_element_type %A2, %A1 [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.b21: type = pattern_type %A2 [concrete]
|
|
// CHECK:STDOUT: %pattern_type.b21: type = pattern_type %A2 [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.4ae: type = fn_type @F.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.4ae: type = fn_type @F.loc10 [concrete]
|
|
|
// CHECK:STDOUT: %F.1d5: %F.type.4ae = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.1d5: %F.type.4ae = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %A2.vtable_ptr: ref %ptr.454 = vtable_ptr @A2.vtable [concrete]
|
|
// CHECK:STDOUT: %A2.vtable_ptr: ref %ptr.454 = vtable_ptr @A2.vtable [concrete]
|
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %A1} [concrete]
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %A1} [concrete]
|
|
@@ -862,7 +862,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class @A1 {
|
|
// CHECK:STDOUT: class @A1 {
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.13a = fn_decl @F.1 [concrete = constants.%F.df5] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.13a = fn_decl @F.loc5 [concrete = constants.%F.df5] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.ddb = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.ddb = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.ddb = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.ddb = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -884,7 +884,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: class @A2 {
|
|
// CHECK:STDOUT: class @A2 {
|
|
|
// CHECK:STDOUT: %A1.ref: type = name_ref A1, file.%A1.decl [concrete = constants.%A1]
|
|
// CHECK:STDOUT: %A1.ref: type = name_ref A1, file.%A1.decl [concrete = constants.%A1]
|
|
|
// CHECK:STDOUT: %.loc9: %A2.elem = base_decl %A1.ref, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc9: %A2.elem = base_decl %A1.ref, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.4ae = fn_decl @F.2 [concrete = constants.%F.1d5] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.4ae = fn_decl @F.loc10 [concrete = constants.%F.1d5] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.b21 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.b21 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.b21 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.b21 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -914,16 +914,16 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: @A2.%F.decl
|
|
// CHECK:STDOUT: @A2.%F.decl
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: virtual fn @F.1(%self.param: %A1);
|
|
|
|
|
|
|
+// CHECK:STDOUT: virtual fn @F.loc5(%self.param: %A1);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: impl fn @F.2(%self.param: %A2);
|
|
|
|
|
|
|
+// CHECK:STDOUT: impl fn @F.loc10(%self.param: %A2);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: --- impl_base.carbon
|
|
// CHECK:STDOUT: --- impl_base.carbon
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: constants {
|
|
// CHECK:STDOUT: constants {
|
|
|
// CHECK:STDOUT: %B1: type = class_type @B1 [concrete]
|
|
// CHECK:STDOUT: %B1: type = class_type @B1 [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.e47: type = pattern_type %B1 [concrete]
|
|
// CHECK:STDOUT: %pattern_type.e47: type = pattern_type %B1 [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.e4c: type = fn_type @F.1 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.e4c: type = fn_type @F.loc5 [concrete]
|
|
|
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
|
|
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
|
|
|
// CHECK:STDOUT: %F.8f5: %F.type.e4c = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.8f5: %F.type.e4c = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
@@ -933,7 +933,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %B2: type = class_type @B2 [concrete]
|
|
// CHECK:STDOUT: %B2: type = class_type @B2 [concrete]
|
|
|
// CHECK:STDOUT: %B2.elem: type = unbound_element_type %B2, %B1 [concrete]
|
|
// CHECK:STDOUT: %B2.elem: type = unbound_element_type %B2, %B1 [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.b19: type = pattern_type %B2 [concrete]
|
|
// CHECK:STDOUT: %pattern_type.b19: type = pattern_type %B2 [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.b26: type = fn_type @F.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.b26: type = fn_type @F.loc10 [concrete]
|
|
|
// CHECK:STDOUT: %F.d48: %F.type.b26 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.d48: %F.type.b26 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %B2.vtable_ptr: ref %ptr.454 = vtable_ptr @B2.vtable [concrete]
|
|
// CHECK:STDOUT: %B2.vtable_ptr: ref %ptr.454 = vtable_ptr @B2.vtable [concrete]
|
|
|
// CHECK:STDOUT: %struct_type.base.508: type = struct_type {.base: %B1} [concrete]
|
|
// CHECK:STDOUT: %struct_type.base.508: type = struct_type {.base: %B1} [concrete]
|
|
@@ -941,7 +941,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %C: type = class_type @C [concrete]
|
|
// CHECK:STDOUT: %C: type = class_type @C [concrete]
|
|
|
// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %B2 [concrete]
|
|
// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %B2 [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete]
|
|
// CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.c29: type = fn_type @F.3 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.c29: type = fn_type @F.loc15 [concrete]
|
|
|
// CHECK:STDOUT: %F.437: %F.type.c29 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.437: %F.type.c29 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %C.vtable_ptr: ref %ptr.454 = vtable_ptr @C.vtable [concrete]
|
|
// CHECK:STDOUT: %C.vtable_ptr: ref %ptr.454 = vtable_ptr @C.vtable [concrete]
|
|
|
// CHECK:STDOUT: %struct_type.base.421: type = struct_type {.base: %B2} [concrete]
|
|
// CHECK:STDOUT: %struct_type.base.421: type = struct_type {.base: %B2} [concrete]
|
|
@@ -997,7 +997,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class @B1 {
|
|
// CHECK:STDOUT: class @B1 {
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.e4c = fn_decl @F.1 [concrete = constants.%F.8f5] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.e4c = fn_decl @F.loc5 [concrete = constants.%F.8f5] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.e47 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.e47 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.e47 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.e47 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -1019,7 +1019,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: class @B2 {
|
|
// CHECK:STDOUT: class @B2 {
|
|
|
// CHECK:STDOUT: %B1.ref: type = name_ref B1, file.%B1.decl [concrete = constants.%B1]
|
|
// CHECK:STDOUT: %B1.ref: type = name_ref B1, file.%B1.decl [concrete = constants.%B1]
|
|
|
// CHECK:STDOUT: %.loc9: %B2.elem = base_decl %B1.ref, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc9: %B2.elem = base_decl %B1.ref, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.b26 = fn_decl @F.2 [concrete = constants.%F.d48] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.b26 = fn_decl @F.loc10 [concrete = constants.%F.d48] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.b19 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.b19 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.b19 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.b19 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -1044,7 +1044,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: class @C {
|
|
// CHECK:STDOUT: class @C {
|
|
|
// CHECK:STDOUT: %B2.ref: type = name_ref B2, file.%B2.decl [concrete = constants.%B2]
|
|
// CHECK:STDOUT: %B2.ref: type = name_ref B2, file.%B2.decl [concrete = constants.%B2]
|
|
|
// CHECK:STDOUT: %.loc14: %C.elem = base_decl %B2.ref, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc14: %C.elem = base_decl %B2.ref, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.c29 = fn_decl @F.3 [concrete = constants.%F.437] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.c29 = fn_decl @F.loc15 [concrete = constants.%F.437] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.c48 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.c48 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.c48 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.c48 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -1078,11 +1078,11 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: @C.%F.decl
|
|
// CHECK:STDOUT: @C.%F.decl
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: virtual fn @F.1(%self.param: %B1);
|
|
|
|
|
|
|
+// CHECK:STDOUT: virtual fn @F.loc5(%self.param: %B1);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: impl fn @F.2(%self.param: %B2);
|
|
|
|
|
|
|
+// CHECK:STDOUT: impl fn @F.loc10(%self.param: %B2);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: impl fn @F.3(%self.param: %C);
|
|
|
|
|
|
|
+// CHECK:STDOUT: impl fn @F.loc15(%self.param: %C);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @Use() {
|
|
// CHECK:STDOUT: fn @Use() {
|
|
|
// CHECK:STDOUT: !entry:
|
|
// CHECK:STDOUT: !entry:
|
|
@@ -1219,13 +1219,13 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
|
|
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
|
|
|
// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [concrete]
|
|
// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.bcc: type = pattern_type %Base [concrete]
|
|
// CHECK:STDOUT: %pattern_type.bcc: type = pattern_type %Base [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.7c6: type = fn_type @F.1 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.7c6: type = fn_type @F.loc8 [concrete]
|
|
|
// CHECK:STDOUT: %F.d17: %F.type.7c6 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.d17: %F.type.7c6 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
|
// CHECK:STDOUT: %Base.vtable_ptr: ref %ptr.454 = vtable_ptr @Base.vtable [concrete]
|
|
// CHECK:STDOUT: %Base.vtable_ptr: ref %ptr.454 = vtable_ptr @Base.vtable [concrete]
|
|
|
// CHECK:STDOUT: %struct_type.vptr.m1.m2: type = struct_type {.<vptr>: %ptr.454, .m1: %i32, .m2: %i32} [concrete]
|
|
// CHECK:STDOUT: %struct_type.vptr.m1.m2: type = struct_type {.<vptr>: %ptr.454, .m1: %i32, .m2: %i32} [concrete]
|
|
|
// CHECK:STDOUT: %complete_type.cf7: <witness> = complete_type_witness %struct_type.vptr.m1.m2 [concrete]
|
|
// CHECK:STDOUT: %complete_type.cf7: <witness> = complete_type_witness %struct_type.vptr.m1.m2 [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.b25: type = fn_type @F.loc11 [concrete]
|
|
|
// CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete]
|
|
// CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete]
|
|
|
// CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete]
|
|
// CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete]
|
|
@@ -1290,7 +1290,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: %Core.import = import Core
|
|
// CHECK:STDOUT: %Core.import = import Core
|
|
|
// CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {}
|
|
// CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {}
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.b25 = fn_decl @F.2 [concrete = constants.%F.c41] {} {}
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.b25 = fn_decl @F.loc11 [concrete = constants.%F.c41] {} {}
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class @Base {
|
|
// CHECK:STDOUT: class @Base {
|
|
@@ -1300,7 +1300,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %int_32.loc6: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
|
// CHECK:STDOUT: %int_32.loc6: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
|
|
// CHECK:STDOUT: %i32.loc6: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
|
// CHECK:STDOUT: %i32.loc6: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
|
|
// CHECK:STDOUT: %.loc6: %Base.elem = field_decl m2, element2 [concrete]
|
|
// CHECK:STDOUT: %.loc6: %Base.elem = field_decl m2, element2 [concrete]
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.7c6 = fn_decl @F.1 [concrete = constants.%F.d17] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.7c6 = fn_decl @F.loc8 [concrete = constants.%F.d17] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.bcc = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.bcc = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.bcc = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.bcc = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -1325,9 +1325,9 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: @Base.%F.decl
|
|
// CHECK:STDOUT: @Base.%F.decl
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: virtual fn @F.1(%self.param: %Base);
|
|
|
|
|
|
|
+// CHECK:STDOUT: virtual fn @F.loc8(%self.param: %Base);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: fn @F.2() {
|
|
|
|
|
|
|
+// CHECK:STDOUT: fn @F.loc11() {
|
|
|
// CHECK:STDOUT: !entry:
|
|
// CHECK:STDOUT: !entry:
|
|
|
// CHECK:STDOUT: name_binding_decl {
|
|
// CHECK:STDOUT: name_binding_decl {
|
|
|
// CHECK:STDOUT: %i.patt: %pattern_type.7ce = binding_pattern i [concrete]
|
|
// CHECK:STDOUT: %i.patt: %pattern_type.7ce = binding_pattern i [concrete]
|
|
@@ -1506,7 +1506,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: constants {
|
|
// CHECK:STDOUT: constants {
|
|
|
// CHECK:STDOUT: %AbstractBase: type = class_type @AbstractBase [concrete]
|
|
// CHECK:STDOUT: %AbstractBase: type = class_type @AbstractBase [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.27c: type = pattern_type %AbstractBase [concrete]
|
|
// CHECK:STDOUT: %pattern_type.27c: type = pattern_type %AbstractBase [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.85b: type = fn_type @F.1 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.85b: type = fn_type @F.loc5 [concrete]
|
|
|
// CHECK:STDOUT: %F.6e9: %F.type.85b = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.6e9: %F.type.85b = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
|
// CHECK:STDOUT: %AbstractBase.vtable_ptr: ref %ptr.454 = vtable_ptr @AbstractBase.vtable [concrete]
|
|
// CHECK:STDOUT: %AbstractBase.vtable_ptr: ref %ptr.454 = vtable_ptr @AbstractBase.vtable [concrete]
|
|
@@ -1520,7 +1520,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %Derived: type = class_type @Derived [concrete]
|
|
// CHECK:STDOUT: %Derived: type = class_type @Derived [concrete]
|
|
|
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %AbstractIntermediate [concrete]
|
|
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %AbstractIntermediate [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.fb9: type = pattern_type %Derived [concrete]
|
|
// CHECK:STDOUT: %pattern_type.fb9: type = pattern_type %Derived [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.5da: type = fn_type @F.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.5da: type = fn_type @F.loc14 [concrete]
|
|
|
// CHECK:STDOUT: %F.fa3: %F.type.5da = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.fa3: %F.type.5da = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete]
|
|
// CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete]
|
|
|
// CHECK:STDOUT: %struct_type.base.da5: type = struct_type {.base: %AbstractIntermediate} [concrete]
|
|
// CHECK:STDOUT: %struct_type.base.da5: type = struct_type {.base: %AbstractIntermediate} [concrete]
|
|
@@ -1548,7 +1548,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class @AbstractBase {
|
|
// CHECK:STDOUT: class @AbstractBase {
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.85b = fn_decl @F.1 [concrete = constants.%F.6e9] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.85b = fn_decl @F.loc5 [concrete = constants.%F.6e9] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.27c = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.27c = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.27c = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.27c = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -1586,7 +1586,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: class @Derived {
|
|
// CHECK:STDOUT: class @Derived {
|
|
|
// CHECK:STDOUT: %AbstractIntermediate.ref: type = name_ref AbstractIntermediate, file.%AbstractIntermediate.decl [concrete = constants.%AbstractIntermediate]
|
|
// CHECK:STDOUT: %AbstractIntermediate.ref: type = name_ref AbstractIntermediate, file.%AbstractIntermediate.decl [concrete = constants.%AbstractIntermediate]
|
|
|
// CHECK:STDOUT: %.loc13: %Derived.elem = base_decl %AbstractIntermediate.ref, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc13: %Derived.elem = base_decl %AbstractIntermediate.ref, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.5da = fn_decl @F.2 [concrete = constants.%F.fa3] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.5da = fn_decl @F.loc14 [concrete = constants.%F.fa3] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb9 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb9 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb9 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb9 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -1620,16 +1620,16 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: @Derived.%F.decl
|
|
// CHECK:STDOUT: @Derived.%F.decl
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: abstract fn @F.1(%self.param: %AbstractBase);
|
|
|
|
|
|
|
+// CHECK:STDOUT: abstract fn @F.loc5(%self.param: %AbstractBase);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: impl fn @F.2(%self.param: %Derived);
|
|
|
|
|
|
|
+// CHECK:STDOUT: impl fn @F.loc14(%self.param: %Derived);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: --- virtual_impl.carbon
|
|
// CHECK:STDOUT: --- virtual_impl.carbon
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: constants {
|
|
// CHECK:STDOUT: constants {
|
|
|
// CHECK:STDOUT: %VirtualBase: type = class_type @VirtualBase [concrete]
|
|
// CHECK:STDOUT: %VirtualBase: type = class_type @VirtualBase [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.ad4: type = pattern_type %VirtualBase [concrete]
|
|
// CHECK:STDOUT: %pattern_type.ad4: type = pattern_type %VirtualBase [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.e62: type = fn_type @F.1 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.e62: type = fn_type @F.loc5 [concrete]
|
|
|
// CHECK:STDOUT: %F.3e7: %F.type.e62 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.3e7: %F.type.e62 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
|
// CHECK:STDOUT: %VirtualBase.vtable_ptr: ref %ptr.454 = vtable_ptr @VirtualBase.vtable [concrete]
|
|
// CHECK:STDOUT: %VirtualBase.vtable_ptr: ref %ptr.454 = vtable_ptr @VirtualBase.vtable [concrete]
|
|
@@ -1643,7 +1643,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %Derived: type = class_type @Derived [concrete]
|
|
// CHECK:STDOUT: %Derived: type = class_type @Derived [concrete]
|
|
|
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %VirtualIntermediate [concrete]
|
|
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %VirtualIntermediate [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.fb9: type = pattern_type %Derived [concrete]
|
|
// CHECK:STDOUT: %pattern_type.fb9: type = pattern_type %Derived [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.5da: type = fn_type @F.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.5da: type = fn_type @F.loc14 [concrete]
|
|
|
// CHECK:STDOUT: %F.fa3: %F.type.5da = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.fa3: %F.type.5da = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete]
|
|
// CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete]
|
|
|
// CHECK:STDOUT: %struct_type.base.43c: type = struct_type {.base: %VirtualIntermediate} [concrete]
|
|
// CHECK:STDOUT: %struct_type.base.43c: type = struct_type {.base: %VirtualIntermediate} [concrete]
|
|
@@ -1671,7 +1671,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class @VirtualBase {
|
|
// CHECK:STDOUT: class @VirtualBase {
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.e62 = fn_decl @F.1 [concrete = constants.%F.3e7] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.e62 = fn_decl @F.loc5 [concrete = constants.%F.3e7] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.ad4 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.ad4 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.ad4 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.ad4 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -1709,7 +1709,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: class @Derived {
|
|
// CHECK:STDOUT: class @Derived {
|
|
|
// CHECK:STDOUT: %VirtualIntermediate.ref: type = name_ref VirtualIntermediate, file.%VirtualIntermediate.decl [concrete = constants.%VirtualIntermediate]
|
|
// CHECK:STDOUT: %VirtualIntermediate.ref: type = name_ref VirtualIntermediate, file.%VirtualIntermediate.decl [concrete = constants.%VirtualIntermediate]
|
|
|
// CHECK:STDOUT: %.loc13: %Derived.elem = base_decl %VirtualIntermediate.ref, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc13: %Derived.elem = base_decl %VirtualIntermediate.ref, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.5da = fn_decl @F.2 [concrete = constants.%F.fa3] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.5da = fn_decl @F.loc14 [concrete = constants.%F.fa3] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb9 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb9 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb9 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb9 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -1743,16 +1743,16 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: @Derived.%F.decl
|
|
// CHECK:STDOUT: @Derived.%F.decl
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: virtual fn @F.1(%self.param: %VirtualBase);
|
|
|
|
|
|
|
+// CHECK:STDOUT: virtual fn @F.loc5(%self.param: %VirtualBase);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: impl fn @F.2(%self.param: %Derived);
|
|
|
|
|
|
|
+// CHECK:STDOUT: impl fn @F.loc14(%self.param: %Derived);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: --- fail_impl_mismatch.carbon
|
|
// CHECK:STDOUT: --- fail_impl_mismatch.carbon
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: constants {
|
|
// CHECK:STDOUT: constants {
|
|
|
// CHECK:STDOUT: %Base: type = class_type @Base [concrete]
|
|
// CHECK:STDOUT: %Base: type = class_type @Base [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.bcc: type = pattern_type %Base [concrete]
|
|
// CHECK:STDOUT: %pattern_type.bcc: type = pattern_type %Base [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.7c6: type = fn_type @F.1 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.7c6: type = fn_type @F.loc5 [concrete]
|
|
|
// CHECK:STDOUT: %F.d17: %F.type.7c6 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.d17: %F.type.7c6 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
|
// CHECK:STDOUT: %Base.vtable_ptr: ref %ptr.454 = vtable_ptr @Base.vtable [concrete]
|
|
// CHECK:STDOUT: %Base.vtable_ptr: ref %ptr.454 = vtable_ptr @Base.vtable [concrete]
|
|
@@ -1766,7 +1766,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete]
|
|
// CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
|
|
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete]
|
|
// CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.5da: type = fn_type @F.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.5da: type = fn_type @F.loc17 [concrete]
|
|
|
// CHECK:STDOUT: %F.fa3: %F.type.5da = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.fa3: %F.type.5da = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete]
|
|
// CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete]
|
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %Base} [concrete]
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %Base} [concrete]
|
|
@@ -1794,7 +1794,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class @Base {
|
|
// CHECK:STDOUT: class @Base {
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.7c6 = fn_decl @F.1 [concrete = constants.%F.d17] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.7c6 = fn_decl @F.loc5 [concrete = constants.%F.d17] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.bcc = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.bcc = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.bcc = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.bcc = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -1816,7 +1816,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: class @Derived {
|
|
// CHECK:STDOUT: class @Derived {
|
|
|
// CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base]
|
|
// CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base]
|
|
|
// CHECK:STDOUT: %.loc9: %Derived.elem = base_decl %Base.ref, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc9: %Derived.elem = base_decl %Base.ref, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.5da = fn_decl @F.2 [concrete = constants.%F.fa3] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.5da = fn_decl @F.loc17 [concrete = constants.%F.fa3] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb9 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb9 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb9 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb9 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: %v.patt: %pattern_type.7ce = binding_pattern v [concrete]
|
|
// CHECK:STDOUT: %v.patt: %pattern_type.7ce = binding_pattern v [concrete]
|
|
@@ -1854,9 +1854,9 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: @Derived.%F.decl
|
|
// CHECK:STDOUT: @Derived.%F.decl
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: virtual fn @F.1(%self.param: %Base);
|
|
|
|
|
|
|
+// CHECK:STDOUT: virtual fn @F.loc5(%self.param: %Base);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: impl fn @F.2(%self.param: %Derived, %v.param: %i32);
|
|
|
|
|
|
|
+// CHECK:STDOUT: impl fn @F.loc17(%self.param: %Derived, %v.param: %i32);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: --- fail_todo_impl_conversion.carbon
|
|
// CHECK:STDOUT: --- fail_todo_impl_conversion.carbon
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
@@ -1871,12 +1871,12 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %ImplicitAs.impl_witness: <witness> = impl_witness file.%ImplicitAs.impl_witness_table [concrete]
|
|
// CHECK:STDOUT: %ImplicitAs.impl_witness: <witness> = impl_witness file.%ImplicitAs.impl_witness_table [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.682: type = pattern_type %T2 [concrete]
|
|
// CHECK:STDOUT: %pattern_type.682: type = pattern_type %T2 [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.28b: type = pattern_type %T1 [concrete]
|
|
// CHECK:STDOUT: %pattern_type.28b: type = pattern_type %T1 [concrete]
|
|
|
-// CHECK:STDOUT: %Convert.type.c41: type = fn_type @Convert.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %Convert.type.c41: type = fn_type @Convert.loc11 [concrete]
|
|
|
// CHECK:STDOUT: %Convert.f35: %Convert.type.c41 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %Convert.f35: %Convert.type.c41 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %T1.val: %T1 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %T1.val: %T1 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %Base: type = class_type @Base [concrete]
|
|
// CHECK:STDOUT: %Base: type = class_type @Base [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.bcc: type = pattern_type %Base [concrete]
|
|
// CHECK:STDOUT: %pattern_type.bcc: type = pattern_type %Base [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.7c6: type = fn_type @F.1 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.7c6: type = fn_type @F.loc17 [concrete]
|
|
|
// CHECK:STDOUT: %F.d17: %F.type.7c6 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.d17: %F.type.7c6 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
|
// CHECK:STDOUT: %Base.vtable_ptr: ref %ptr.454 = vtable_ptr @Base.vtable [concrete]
|
|
// CHECK:STDOUT: %Base.vtable_ptr: ref %ptr.454 = vtable_ptr @Base.vtable [concrete]
|
|
@@ -1885,7 +1885,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %Derived: type = class_type @Derived [concrete]
|
|
// CHECK:STDOUT: %Derived: type = class_type @Derived [concrete]
|
|
|
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [concrete]
|
|
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.fb9: type = pattern_type %Derived [concrete]
|
|
// CHECK:STDOUT: %pattern_type.fb9: type = pattern_type %Derived [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.5da: type = fn_type @F.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.5da: type = fn_type @F.loc29 [concrete]
|
|
|
// CHECK:STDOUT: %F.fa3: %F.type.5da = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.fa3: %F.type.5da = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete]
|
|
// CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete]
|
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %Base} [concrete]
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %Base} [concrete]
|
|
@@ -1926,7 +1926,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: impl @ImplicitAs.impl: %T2.ref as %ImplicitAs.type {
|
|
// CHECK:STDOUT: impl @ImplicitAs.impl: %T2.ref as %ImplicitAs.type {
|
|
|
-// CHECK:STDOUT: %Convert.decl: %Convert.type.c41 = fn_decl @Convert.2 [concrete = constants.%Convert.f35] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %Convert.decl: %Convert.type.c41 = fn_decl @Convert.loc11 [concrete = constants.%Convert.f35] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.682 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.682 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.682 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.682 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: %return.patt: %pattern_type.28b = return_slot_pattern [concrete]
|
|
// CHECK:STDOUT: %return.patt: %pattern_type.28b = return_slot_pattern [concrete]
|
|
@@ -1965,7 +1965,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class @Base {
|
|
// CHECK:STDOUT: class @Base {
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.7c6 = fn_decl @F.1 [concrete = constants.%F.d17] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.7c6 = fn_decl @F.loc17 [concrete = constants.%F.d17] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.bcc = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.bcc = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.bcc = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.bcc = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: %return.patt: %pattern_type.28b = return_slot_pattern [concrete]
|
|
// CHECK:STDOUT: %return.patt: %pattern_type.28b = return_slot_pattern [concrete]
|
|
@@ -1994,7 +1994,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: class @Derived {
|
|
// CHECK:STDOUT: class @Derived {
|
|
|
// CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base]
|
|
// CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base]
|
|
|
// CHECK:STDOUT: %.loc21: %Derived.elem = base_decl %Base.ref, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc21: %Derived.elem = base_decl %Base.ref, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.5da = fn_decl @F.2 [concrete = constants.%F.fa3] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.5da = fn_decl @F.loc29 [concrete = constants.%F.fa3] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb9 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb9 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb9 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb9 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: %return.patt: %pattern_type.682 = return_slot_pattern [concrete]
|
|
// CHECK:STDOUT: %return.patt: %pattern_type.682 = return_slot_pattern [concrete]
|
|
@@ -2030,7 +2030,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: @Derived.%F.decl
|
|
// CHECK:STDOUT: @Derived.%F.decl
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: fn @Convert.2(%self.param: %T2) -> %return.param: %T1 {
|
|
|
|
|
|
|
+// CHECK:STDOUT: fn @Convert.loc11(%self.param: %T2) -> %return.param: %T1 {
|
|
|
// CHECK:STDOUT: !entry:
|
|
// CHECK:STDOUT: !entry:
|
|
|
// CHECK:STDOUT: %.loc12_13.1: %empty_struct_type = struct_literal ()
|
|
// CHECK:STDOUT: %.loc12_13.1: %empty_struct_type = struct_literal ()
|
|
|
// CHECK:STDOUT: %.loc12_13.2: init %T1 = class_init (), %return [concrete = constants.%T1.val]
|
|
// CHECK:STDOUT: %.loc12_13.2: init %T1 = class_init (), %return [concrete = constants.%T1.val]
|
|
@@ -2038,9 +2038,9 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: return %.loc12_14 to %return
|
|
// CHECK:STDOUT: return %.loc12_14 to %return
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: virtual fn @F.1(%self.param: %Base) -> %return.param: %T1;
|
|
|
|
|
|
|
+// CHECK:STDOUT: virtual fn @F.loc17(%self.param: %Base) -> %return.param: %T1;
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: impl fn @F.2(%self.param: %Derived) -> %return.param: %T2;
|
|
|
|
|
|
|
+// CHECK:STDOUT: impl fn @F.loc29(%self.param: %Derived) -> %return.param: %T2;
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: --- fail_generic_virtual_decl.carbon
|
|
// CHECK:STDOUT: --- fail_generic_virtual_decl.carbon
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
@@ -2149,10 +2149,10 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %Base.370: type = class_type @Base, @Base(%T) [symbolic]
|
|
// CHECK:STDOUT: %Base.370: type = class_type @Base, @Base(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %pattern_type.9f7: type = pattern_type %Base.370 [symbolic]
|
|
// CHECK:STDOUT: %pattern_type.9f7: type = pattern_type %Base.370 [symbolic]
|
|
|
// CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %T [symbolic]
|
|
// CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %T [symbolic]
|
|
|
-// CHECK:STDOUT: %F.type.f17: type = fn_type @F.1, @Base(%T) [symbolic]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.f17: type = fn_type @F.loc8, @Base(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %F.e26: %F.type.f17 = struct_value () [symbolic]
|
|
// CHECK:STDOUT: %F.e26: %F.type.f17 = struct_value () [symbolic]
|
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
|
-// CHECK:STDOUT: %F.specific_fn.892: <specific function> = specific_function %F.e26, @F.1(%T) [symbolic]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.specific_fn.892: <specific function> = specific_function %F.e26, @F.loc8(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %Base.vtable_ptr.573: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T) [symbolic]
|
|
// CHECK:STDOUT: %Base.vtable_ptr.573: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %struct_type.vptr: type = struct_type {.<vptr>: %ptr.454} [concrete]
|
|
// CHECK:STDOUT: %struct_type.vptr: type = struct_type {.<vptr>: %ptr.454} [concrete]
|
|
|
// CHECK:STDOUT: %complete_type.513: <witness> = complete_type_witness %struct_type.vptr [concrete]
|
|
// CHECK:STDOUT: %complete_type.513: <witness> = complete_type_witness %struct_type.vptr [concrete]
|
|
@@ -2160,15 +2160,15 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %require_complete.4ae: <witness> = require_complete_type %T [symbolic]
|
|
// CHECK:STDOUT: %require_complete.4ae: <witness> = require_complete_type %T [symbolic]
|
|
|
// CHECK:STDOUT: %Derived: type = class_type @Derived [concrete]
|
|
// CHECK:STDOUT: %Derived: type = class_type @Derived [concrete]
|
|
|
// CHECK:STDOUT: %Base.ea5: type = class_type @Base, @Base(%T1) [concrete]
|
|
// CHECK:STDOUT: %Base.ea5: type = class_type @Base, @Base(%T1) [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.d82: type = fn_type @F.1, @Base(%T1) [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.d82: type = fn_type @F.loc8, @Base(%T1) [concrete]
|
|
|
// CHECK:STDOUT: %F.d25: %F.type.d82 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.d25: %F.type.d82 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.3bf: type = pattern_type %Base.ea5 [concrete]
|
|
// CHECK:STDOUT: %pattern_type.3bf: type = pattern_type %Base.ea5 [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.28b: type = pattern_type %T1 [concrete]
|
|
// CHECK:STDOUT: %pattern_type.28b: type = pattern_type %T1 [concrete]
|
|
|
-// CHECK:STDOUT: %F.specific_fn.210: <specific function> = specific_function %F.d25, @F.1(%T1) [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.specific_fn.210: <specific function> = specific_function %F.d25, @F.loc8(%T1) [concrete]
|
|
|
// CHECK:STDOUT: %Base.vtable_ptr.bfe: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T1) [concrete]
|
|
// CHECK:STDOUT: %Base.vtable_ptr.bfe: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T1) [concrete]
|
|
|
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base.ea5 [concrete]
|
|
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base.ea5 [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.fb9: type = pattern_type %Derived [concrete]
|
|
// CHECK:STDOUT: %pattern_type.fb9: type = pattern_type %Derived [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.5da: type = fn_type @F.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.5da: type = fn_type @F.loc20 [concrete]
|
|
|
// CHECK:STDOUT: %F.fa3: %F.type.5da = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.fa3: %F.type.5da = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete]
|
|
// CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete]
|
|
|
// CHECK:STDOUT: %struct_type.base.fda: type = struct_type {.base: %Base.ea5} [concrete]
|
|
// CHECK:STDOUT: %struct_type.base.fda: type = struct_type {.base: %Base.ea5} [concrete]
|
|
@@ -2212,29 +2212,29 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %T.loc7_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.2 (constants.%T)]
|
|
// CHECK:STDOUT: %T.loc7_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.2 (constants.%T)]
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !definition:
|
|
// CHECK:STDOUT: !definition:
|
|
|
-// CHECK:STDOUT: %F.type: type = fn_type @F.1, @Base(%T.loc7_17.2) [symbolic = %F.type (constants.%F.type.f17)]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type: type = fn_type @F.loc8, @Base(%T.loc7_17.2) [symbolic = %F.type (constants.%F.type.f17)]
|
|
|
// CHECK:STDOUT: %F: @Base.%F.type (%F.type.f17) = struct_value () [symbolic = %F (constants.%F.e26)]
|
|
// CHECK:STDOUT: %F: @Base.%F.type (%F.type.f17) = struct_value () [symbolic = %F (constants.%F.e26)]
|
|
|
-// CHECK:STDOUT: %F.specific_fn.loc9_1.2: <specific function> = specific_function %F, @F.1(%T.loc7_17.2) [symbolic = %F.specific_fn.loc9_1.2 (constants.%F.specific_fn.892)]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.specific_fn.loc9_1.2: <specific function> = specific_function %F, @F.loc8(%T.loc7_17.2) [symbolic = %F.specific_fn.loc9_1.2 (constants.%F.specific_fn.892)]
|
|
|
// CHECK:STDOUT: %vtable_ptr.loc9_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc7_17.2) [symbolic = %vtable_ptr.loc9_1.2 (constants.%Base.vtable_ptr.573)]
|
|
// CHECK:STDOUT: %vtable_ptr.loc9_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc7_17.2) [symbolic = %vtable_ptr.loc9_1.2 (constants.%Base.vtable_ptr.573)]
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class {
|
|
// CHECK:STDOUT: class {
|
|
|
-// CHECK:STDOUT: %F.decl: @Base.%F.type (%F.type.f17) = fn_decl @F.1 [symbolic = @Base.%F (constants.%F.e26)] {
|
|
|
|
|
-// CHECK:STDOUT: %self.patt: @F.1.%pattern_type.loc8_16 (%pattern_type.9f7) = binding_pattern self [concrete]
|
|
|
|
|
-// CHECK:STDOUT: %self.param_patt: @F.1.%pattern_type.loc8_16 (%pattern_type.9f7) = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
|
|
-// CHECK:STDOUT: %t.patt: @F.1.%pattern_type.loc8_28 (%pattern_type.7dc) = binding_pattern t [concrete]
|
|
|
|
|
-// CHECK:STDOUT: %t.param_patt: @F.1.%pattern_type.loc8_28 (%pattern_type.7dc) = value_param_pattern %t.patt, call_param1 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: @Base.%F.type (%F.type.f17) = fn_decl @F.loc8 [symbolic = @Base.%F (constants.%F.e26)] {
|
|
|
|
|
+// CHECK:STDOUT: %self.patt: @F.loc8.%pattern_type.loc8_16 (%pattern_type.9f7) = binding_pattern self [concrete]
|
|
|
|
|
+// CHECK:STDOUT: %self.param_patt: @F.loc8.%pattern_type.loc8_16 (%pattern_type.9f7) = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
|
|
+// CHECK:STDOUT: %t.patt: @F.loc8.%pattern_type.loc8_28 (%pattern_type.7dc) = binding_pattern t [concrete]
|
|
|
|
|
+// CHECK:STDOUT: %t.param_patt: @F.loc8.%pattern_type.loc8_28 (%pattern_type.7dc) = value_param_pattern %t.patt, call_param1 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
|
-// CHECK:STDOUT: %self.param: @F.1.%Base (%Base.370) = value_param call_param0
|
|
|
|
|
|
|
+// CHECK:STDOUT: %self.param: @F.loc8.%Base (%Base.370) = value_param call_param0
|
|
|
// CHECK:STDOUT: %.loc8_22.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base.370)] {
|
|
// CHECK:STDOUT: %.loc8_22.1: type = splice_block %Self.ref [symbolic = %Base (constants.%Base.370)] {
|
|
|
// CHECK:STDOUT: %.loc8_22.2: type = specific_constant constants.%Base.370, @Base(constants.%T) [symbolic = %Base (constants.%Base.370)]
|
|
// CHECK:STDOUT: %.loc8_22.2: type = specific_constant constants.%Base.370, @Base(constants.%T) [symbolic = %Base (constants.%Base.370)]
|
|
|
// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc8_22.2 [symbolic = %Base (constants.%Base.370)]
|
|
// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc8_22.2 [symbolic = %Base (constants.%Base.370)]
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: %self: @F.1.%Base (%Base.370) = bind_name self, %self.param
|
|
|
|
|
-// CHECK:STDOUT: %t.param: @F.1.%T (%T) = value_param call_param1
|
|
|
|
|
|
|
+// CHECK:STDOUT: %self: @F.loc8.%Base (%Base.370) = bind_name self, %self.param
|
|
|
|
|
+// CHECK:STDOUT: %t.param: @F.loc8.%T (%T) = value_param call_param1
|
|
|
// CHECK:STDOUT: %T.ref: type = name_ref T, @Base.%T.loc7_17.1 [symbolic = %T (constants.%T)]
|
|
// CHECK:STDOUT: %T.ref: type = name_ref T, @Base.%T.loc7_17.1 [symbolic = %T (constants.%T)]
|
|
|
-// CHECK:STDOUT: %t: @F.1.%T (%T) = bind_name t, %t.param
|
|
|
|
|
|
|
+// CHECK:STDOUT: %t: @F.loc8.%T (%T) = bind_name t, %t.param
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: %F.specific_fn.loc9_1.1: <specific function> = specific_function %F.decl, @F.1(constants.%T) [symbolic = %F.specific_fn.loc9_1.2 (constants.%F.specific_fn.892)]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.specific_fn.loc9_1.1: <specific function> = specific_function %F.decl, @F.loc8(constants.%T) [symbolic = %F.specific_fn.loc9_1.2 (constants.%F.specific_fn.892)]
|
|
|
// CHECK:STDOUT: %vtable_ptr.loc9_1.1: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(constants.%T) [symbolic = %vtable_ptr.loc9_1.2 (constants.%Base.vtable_ptr.573)]
|
|
// CHECK:STDOUT: %vtable_ptr.loc9_1.1: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(constants.%T) [symbolic = %vtable_ptr.loc9_1.2 (constants.%Base.vtable_ptr.573)]
|
|
|
// CHECK:STDOUT: %struct_type.vptr: type = struct_type {.<vptr>: %ptr.454} [concrete = constants.%struct_type.vptr]
|
|
// CHECK:STDOUT: %struct_type.vptr: type = struct_type {.<vptr>: %ptr.454} [concrete = constants.%struct_type.vptr]
|
|
|
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %struct_type.vptr [concrete = constants.%complete_type.513]
|
|
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %struct_type.vptr [concrete = constants.%complete_type.513]
|
|
@@ -2254,7 +2254,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1]
|
|
// CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1]
|
|
|
// CHECK:STDOUT: %Base: type = class_type @Base, @Base(constants.%T1) [concrete = constants.%Base.ea5]
|
|
// CHECK:STDOUT: %Base: type = class_type @Base, @Base(constants.%T1) [concrete = constants.%Base.ea5]
|
|
|
// CHECK:STDOUT: %.loc12: %Derived.elem = base_decl %Base, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc12: %Derived.elem = base_decl %Base, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.5da = fn_decl @F.2 [concrete = constants.%F.fa3] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.5da = fn_decl @F.loc20 [concrete = constants.%F.fa3] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb9 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb9 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb9 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb9 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: %t.patt: %pattern_type.28b = binding_pattern t [concrete]
|
|
// CHECK:STDOUT: %t.patt: %pattern_type.28b = binding_pattern t [concrete]
|
|
@@ -2290,7 +2290,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: @Derived.%F.decl
|
|
// CHECK:STDOUT: @Derived.%F.decl
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: generic virtual fn @F.1(@Base.%T.loc7_17.1: type) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: generic virtual fn @F.loc8(@Base.%T.loc7_17.1: type) {
|
|
|
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)]
|
|
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)]
|
|
|
// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.370)]
|
|
// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.370)]
|
|
|
// CHECK:STDOUT: %pattern_type.loc8_16: type = pattern_type %Base [symbolic = %pattern_type.loc8_16 (constants.%pattern_type.9f7)]
|
|
// CHECK:STDOUT: %pattern_type.loc8_16: type = pattern_type %Base [symbolic = %pattern_type.loc8_16 (constants.%pattern_type.9f7)]
|
|
@@ -2300,13 +2300,13 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %require_complete.loc8_20: <witness> = require_complete_type %Base [symbolic = %require_complete.loc8_20 (constants.%require_complete.97d)]
|
|
// CHECK:STDOUT: %require_complete.loc8_20: <witness> = require_complete_type %Base [symbolic = %require_complete.loc8_20 (constants.%require_complete.97d)]
|
|
|
// CHECK:STDOUT: %require_complete.loc8_29: <witness> = require_complete_type %T [symbolic = %require_complete.loc8_29 (constants.%require_complete.4ae)]
|
|
// CHECK:STDOUT: %require_complete.loc8_29: <witness> = require_complete_type %T [symbolic = %require_complete.loc8_29 (constants.%require_complete.4ae)]
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: virtual fn(%self.param: @F.1.%Base (%Base.370), %t.param: @F.1.%T (%T)) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: virtual fn(%self.param: @F.loc8.%Base (%Base.370), %t.param: @F.loc8.%T (%T)) {
|
|
|
// CHECK:STDOUT: !entry:
|
|
// CHECK:STDOUT: !entry:
|
|
|
// CHECK:STDOUT: return
|
|
// CHECK:STDOUT: return
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: impl fn @F.2(%self.param: %Derived, %t.param: %T1) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: impl fn @F.loc20(%self.param: %Derived, %t.param: %T1) {
|
|
|
// CHECK:STDOUT: !entry:
|
|
// CHECK:STDOUT: !entry:
|
|
|
// CHECK:STDOUT: return
|
|
// CHECK:STDOUT: return
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
@@ -2321,7 +2321,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %vtable_ptr.loc9_1.2 => constants.%Base.vtable_ptr.573
|
|
// CHECK:STDOUT: %vtable_ptr.loc9_1.2 => constants.%Base.vtable_ptr.573
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: specific @F.1(constants.%T) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: specific @F.loc8(constants.%T) {
|
|
|
// CHECK:STDOUT: %T => constants.%T
|
|
// CHECK:STDOUT: %T => constants.%T
|
|
|
// CHECK:STDOUT: %Base => constants.%Base.370
|
|
// CHECK:STDOUT: %Base => constants.%Base.370
|
|
|
// CHECK:STDOUT: %pattern_type.loc8_16 => constants.%pattern_type.9f7
|
|
// CHECK:STDOUT: %pattern_type.loc8_16 => constants.%pattern_type.9f7
|
|
@@ -2342,7 +2342,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %vtable_ptr.loc9_1.2 => constants.%Base.vtable_ptr.bfe
|
|
// CHECK:STDOUT: %vtable_ptr.loc9_1.2 => constants.%Base.vtable_ptr.bfe
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: specific @F.1(constants.%T1) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: specific @F.loc8(constants.%T1) {
|
|
|
// CHECK:STDOUT: %T => constants.%T1
|
|
// CHECK:STDOUT: %T => constants.%T1
|
|
|
// CHECK:STDOUT: %Base => constants.%Base.ea5
|
|
// CHECK:STDOUT: %Base => constants.%Base.ea5
|
|
|
// CHECK:STDOUT: %pattern_type.loc8_16 => constants.%pattern_type.3bf
|
|
// CHECK:STDOUT: %pattern_type.loc8_16 => constants.%pattern_type.3bf
|
|
@@ -2357,7 +2357,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: constants {
|
|
// CHECK:STDOUT: constants {
|
|
|
// CHECK:STDOUT: %T1: type = class_type @T1 [concrete]
|
|
// CHECK:STDOUT: %T1: type = class_type @T1 [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.ba7: type = fn_type @F.1 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.ba7: type = fn_type @F.loc9 [concrete]
|
|
|
// CHECK:STDOUT: %F.1a5: %F.type.ba7 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.1a5: %F.type.ba7 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
|
|
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
|
|
|
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
|
|
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
|
|
@@ -2365,7 +2365,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %complete_type.357: <witness> = complete_type_witness %empty_struct_type [concrete]
|
|
// CHECK:STDOUT: %complete_type.357: <witness> = complete_type_witness %empty_struct_type [concrete]
|
|
|
// CHECK:STDOUT: %T2: type = class_type @T2 [concrete]
|
|
// CHECK:STDOUT: %T2: type = class_type @T2 [concrete]
|
|
|
// CHECK:STDOUT: %T2.elem: type = unbound_element_type %T2, %T1 [concrete]
|
|
// CHECK:STDOUT: %T2.elem: type = unbound_element_type %T2, %T1 [concrete]
|
|
|
-// CHECK:STDOUT: %F.type.834: type = fn_type @F.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.type.834: type = fn_type @F.loc23 [concrete]
|
|
|
// CHECK:STDOUT: %F.a48: %F.type.834 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F.a48: %F.type.834 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %T1} [concrete]
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %T1} [concrete]
|
|
|
// CHECK:STDOUT: %complete_type.e14: <witness> = complete_type_witness %struct_type.base [concrete]
|
|
// CHECK:STDOUT: %complete_type.e14: <witness> = complete_type_witness %struct_type.base [concrete]
|
|
@@ -2390,7 +2390,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class @T1 {
|
|
// CHECK:STDOUT: class @T1 {
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.ba7 = fn_decl @F.1 [concrete = constants.%F.1a5] {} {}
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.ba7 = fn_decl @F.loc9 [concrete = constants.%F.1a5] {} {}
|
|
|
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {}
|
|
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {}
|
|
|
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type]
|
|
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type]
|
|
|
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete = constants.%complete_type.357]
|
|
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete = constants.%complete_type.357]
|
|
@@ -2405,7 +2405,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: class @T2 {
|
|
// CHECK:STDOUT: class @T2 {
|
|
|
// CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1]
|
|
// CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1]
|
|
|
// CHECK:STDOUT: %.loc18: %T2.elem = base_decl %T1.ref, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc18: %T2.elem = base_decl %T1.ref, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %F.decl: %F.type.834 = fn_decl @F.2 [concrete = constants.%F.a48] {} {}
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F.decl: %F.type.834 = fn_decl @F.loc23 [concrete = constants.%F.a48] {} {}
|
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %T1} [concrete = constants.%struct_type.base]
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %T1} [concrete = constants.%struct_type.base]
|
|
|
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %struct_type.base [concrete = constants.%complete_type.e14]
|
|
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %struct_type.base [concrete = constants.%complete_type.e14]
|
|
|
// CHECK:STDOUT: complete_type_witness = %complete_type
|
|
// CHECK:STDOUT: complete_type_witness = %complete_type
|
|
@@ -2418,11 +2418,11 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: extend %T1.ref
|
|
// CHECK:STDOUT: extend %T1.ref
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: fn @F.1();
|
|
|
|
|
|
|
+// CHECK:STDOUT: fn @F.loc9();
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @G();
|
|
// CHECK:STDOUT: fn @G();
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: fn @F.2();
|
|
|
|
|
|
|
+// CHECK:STDOUT: fn @F.loc23();
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: --- fail_addr_self_mismatch.carbon
|
|
// CHECK:STDOUT: --- fail_addr_self_mismatch.carbon
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
@@ -2430,7 +2430,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %T1: type = class_type @T1 [concrete]
|
|
// CHECK:STDOUT: %T1: type = class_type @T1 [concrete]
|
|
|
// CHECK:STDOUT: %ptr.87b: type = ptr_type %T1 [concrete]
|
|
// CHECK:STDOUT: %ptr.87b: type = ptr_type %T1 [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.a36: type = pattern_type %ptr.87b [concrete]
|
|
// CHECK:STDOUT: %pattern_type.a36: type = pattern_type %ptr.87b [concrete]
|
|
|
-// CHECK:STDOUT: %F1.type.b96: type = fn_type @F1.1 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F1.type.b96: type = fn_type @F1.loc5 [concrete]
|
|
|
// CHECK:STDOUT: %F1.765: %F1.type.b96 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F1.765: %F1.type.b96 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
|
// CHECK:STDOUT: %T1.vtable_ptr: ref %ptr.454 = vtable_ptr @T1.vtable [concrete]
|
|
// CHECK:STDOUT: %T1.vtable_ptr: ref %ptr.454 = vtable_ptr @T1.vtable [concrete]
|
|
@@ -2441,7 +2441,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %ptr.63e: type = ptr_type %T2 [concrete]
|
|
// CHECK:STDOUT: %ptr.63e: type = ptr_type %T2 [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.fb8: type = pattern_type %ptr.63e [concrete]
|
|
// CHECK:STDOUT: %pattern_type.fb8: type = pattern_type %ptr.63e [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.f6d: type = pattern_type auto [concrete]
|
|
// CHECK:STDOUT: %pattern_type.f6d: type = pattern_type auto [concrete]
|
|
|
-// CHECK:STDOUT: %F1.type.b0d: type = fn_type @F1.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F1.type.b0d: type = fn_type @F1.loc17 [concrete]
|
|
|
// CHECK:STDOUT: %F1.0ce: %F1.type.b0d = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F1.0ce: %F1.type.b0d = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %T2.vtable_ptr: ref %ptr.454 = vtable_ptr @T2.vtable [concrete]
|
|
// CHECK:STDOUT: %T2.vtable_ptr: ref %ptr.454 = vtable_ptr @T2.vtable [concrete]
|
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %T1} [concrete]
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %T1} [concrete]
|
|
@@ -2467,7 +2467,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class @T1 {
|
|
// CHECK:STDOUT: class @T1 {
|
|
|
-// CHECK:STDOUT: %F1.decl: %F1.type.b96 = fn_decl @F1.1 [concrete = constants.%F1.765] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F1.decl: %F1.type.b96 = fn_decl @F1.loc5 [concrete = constants.%F1.765] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.a36 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.a36 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.a36 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.a36 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -2492,7 +2492,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: class @T2 {
|
|
// CHECK:STDOUT: class @T2 {
|
|
|
// CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1]
|
|
// CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1]
|
|
|
// CHECK:STDOUT: %.loc9: %T2.elem = base_decl %T1.ref, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc9: %T2.elem = base_decl %T1.ref, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %F1.decl: %F1.type.b0d = fn_decl @F1.2 [concrete = constants.%F1.0ce] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F1.decl: %F1.type.b0d = fn_decl @F1.loc17 [concrete = constants.%F1.0ce] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb8 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.fb8 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb8 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.fb8 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: %.loc17_14: %pattern_type.f6d = addr_pattern %self.param_patt [concrete]
|
|
// CHECK:STDOUT: %.loc17_14: %pattern_type.f6d = addr_pattern %self.param_patt [concrete]
|
|
@@ -2526,9 +2526,9 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: @T2.%F1.decl
|
|
// CHECK:STDOUT: @T2.%F1.decl
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: virtual fn @F1.1(%self.param: %ptr.87b);
|
|
|
|
|
|
|
+// CHECK:STDOUT: virtual fn @F1.loc5(%self.param: %ptr.87b);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: impl fn @F1.2(%self.param: %ptr.63e);
|
|
|
|
|
|
|
+// CHECK:STDOUT: impl fn @F1.loc17(%self.param: %ptr.63e);
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: --- fail_generic_virtual.carbon
|
|
// CHECK:STDOUT: --- fail_generic_virtual.carbon
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
@@ -2975,7 +2975,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %pattern_type.0b8: type = pattern_type %NonGenericBase [concrete]
|
|
// CHECK:STDOUT: %pattern_type.0b8: type = pattern_type %NonGenericBase [concrete]
|
|
|
// CHECK:STDOUT: %F1.type: type = fn_type @F1 [concrete]
|
|
// CHECK:STDOUT: %F1.type: type = fn_type @F1 [concrete]
|
|
|
// CHECK:STDOUT: %F1: %F1.type = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F1: %F1.type = struct_value () [concrete]
|
|
|
-// CHECK:STDOUT: %F2.type.809: type = fn_type @F2.1 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.type.809: type = fn_type @F2.loc6 [concrete]
|
|
|
// CHECK:STDOUT: %F2.053: %F2.type.809 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F2.053: %F2.type.809 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
|
// CHECK:STDOUT: %NonGenericBase.vtable_ptr: ref %ptr.454 = vtable_ptr @NonGenericBase.vtable [concrete]
|
|
// CHECK:STDOUT: %NonGenericBase.vtable_ptr: ref %ptr.454 = vtable_ptr @NonGenericBase.vtable [concrete]
|
|
@@ -2988,11 +2988,11 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %GenericDerived: type = class_type @GenericDerived, @GenericDerived(%T) [symbolic]
|
|
// CHECK:STDOUT: %GenericDerived: type = class_type @GenericDerived, @GenericDerived(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %GenericDerived.elem: type = unbound_element_type %GenericDerived, %NonGenericBase [symbolic]
|
|
// CHECK:STDOUT: %GenericDerived.elem: type = unbound_element_type %GenericDerived, %NonGenericBase [symbolic]
|
|
|
// CHECK:STDOUT: %pattern_type.061: type = pattern_type %GenericDerived [symbolic]
|
|
// CHECK:STDOUT: %pattern_type.061: type = pattern_type %GenericDerived [symbolic]
|
|
|
-// CHECK:STDOUT: %F2.type.e6e: type = fn_type @F2.2, @GenericDerived(%T) [symbolic]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.type.e6e: type = fn_type @F2.loc11, @GenericDerived(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %F2.5da: %F2.type.e6e = struct_value () [symbolic]
|
|
// CHECK:STDOUT: %F2.5da: %F2.type.e6e = struct_value () [symbolic]
|
|
|
// CHECK:STDOUT: %F3.type: type = fn_type @F3, @GenericDerived(%T) [symbolic]
|
|
// CHECK:STDOUT: %F3.type: type = fn_type @F3, @GenericDerived(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %F3: %F3.type = struct_value () [symbolic]
|
|
// CHECK:STDOUT: %F3: %F3.type = struct_value () [symbolic]
|
|
|
-// CHECK:STDOUT: %F2.specific_fn: <specific function> = specific_function %F2.5da, @F2.2(%T) [symbolic]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.specific_fn: <specific function> = specific_function %F2.5da, @F2.loc11(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %F3.specific_fn: <specific function> = specific_function %F3, @F3(%T) [symbolic]
|
|
// CHECK:STDOUT: %F3.specific_fn: <specific function> = specific_function %F3, @F3(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %GenericDerived.vtable_ptr: ref %ptr.454 = vtable_ptr @GenericDerived.vtable, @GenericDerived(%T) [symbolic]
|
|
// CHECK:STDOUT: %GenericDerived.vtable_ptr: ref %ptr.454 = vtable_ptr @GenericDerived.vtable, @GenericDerived(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %struct_type.base.432: type = struct_type {.base: %NonGenericBase} [concrete]
|
|
// CHECK:STDOUT: %struct_type.base.432: type = struct_type {.base: %NonGenericBase} [concrete]
|
|
@@ -3031,7 +3031,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%NonGenericBase [concrete = constants.%NonGenericBase]
|
|
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%NonGenericBase [concrete = constants.%NonGenericBase]
|
|
|
// CHECK:STDOUT: %self: %NonGenericBase = bind_name self, %self.param
|
|
// CHECK:STDOUT: %self: %NonGenericBase = bind_name self, %self.param
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: %F2.decl: %F2.type.809 = fn_decl @F2.1 [concrete = constants.%F2.053] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.decl: %F2.type.809 = fn_decl @F2.loc6 [concrete = constants.%F2.053] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.0b8 = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.0b8 = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.0b8 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.0b8 = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -3057,27 +3057,27 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: !definition:
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT: %GenericDerived: type = class_type @GenericDerived, @GenericDerived(%T.loc9_27.2) [symbolic = %GenericDerived (constants.%GenericDerived)]
|
|
// CHECK:STDOUT: %GenericDerived: type = class_type @GenericDerived, @GenericDerived(%T.loc9_27.2) [symbolic = %GenericDerived (constants.%GenericDerived)]
|
|
|
// CHECK:STDOUT: %GenericDerived.elem: type = unbound_element_type %GenericDerived, constants.%NonGenericBase [symbolic = %GenericDerived.elem (constants.%GenericDerived.elem)]
|
|
// CHECK:STDOUT: %GenericDerived.elem: type = unbound_element_type %GenericDerived, constants.%NonGenericBase [symbolic = %GenericDerived.elem (constants.%GenericDerived.elem)]
|
|
|
-// CHECK:STDOUT: %F2.type: type = fn_type @F2.2, @GenericDerived(%T.loc9_27.2) [symbolic = %F2.type (constants.%F2.type.e6e)]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.type: type = fn_type @F2.loc11, @GenericDerived(%T.loc9_27.2) [symbolic = %F2.type (constants.%F2.type.e6e)]
|
|
|
// CHECK:STDOUT: %F2: @GenericDerived.%F2.type (%F2.type.e6e) = struct_value () [symbolic = %F2 (constants.%F2.5da)]
|
|
// CHECK:STDOUT: %F2: @GenericDerived.%F2.type (%F2.type.e6e) = struct_value () [symbolic = %F2 (constants.%F2.5da)]
|
|
|
// CHECK:STDOUT: %F3.type: type = fn_type @F3, @GenericDerived(%T.loc9_27.2) [symbolic = %F3.type (constants.%F3.type)]
|
|
// CHECK:STDOUT: %F3.type: type = fn_type @F3, @GenericDerived(%T.loc9_27.2) [symbolic = %F3.type (constants.%F3.type)]
|
|
|
// CHECK:STDOUT: %F3: @GenericDerived.%F3.type (%F3.type) = struct_value () [symbolic = %F3 (constants.%F3)]
|
|
// CHECK:STDOUT: %F3: @GenericDerived.%F3.type (%F3.type) = struct_value () [symbolic = %F3 (constants.%F3)]
|
|
|
-// CHECK:STDOUT: %F2.specific_fn.loc13_1.2: <specific function> = specific_function %F2, @F2.2(%T.loc9_27.2) [symbolic = %F2.specific_fn.loc13_1.2 (constants.%F2.specific_fn)]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.specific_fn.loc13_1.2: <specific function> = specific_function %F2, @F2.loc11(%T.loc9_27.2) [symbolic = %F2.specific_fn.loc13_1.2 (constants.%F2.specific_fn)]
|
|
|
// CHECK:STDOUT: %F3.specific_fn.loc13_1.2: <specific function> = specific_function %F3, @F3(%T.loc9_27.2) [symbolic = %F3.specific_fn.loc13_1.2 (constants.%F3.specific_fn)]
|
|
// CHECK:STDOUT: %F3.specific_fn.loc13_1.2: <specific function> = specific_function %F3, @F3(%T.loc9_27.2) [symbolic = %F3.specific_fn.loc13_1.2 (constants.%F3.specific_fn)]
|
|
|
// CHECK:STDOUT: %vtable_ptr.loc13_1.2: ref %ptr.454 = vtable_ptr @GenericDerived.vtable, @GenericDerived(%T.loc9_27.2) [symbolic = %vtable_ptr.loc13_1.2 (constants.%GenericDerived.vtable_ptr)]
|
|
// CHECK:STDOUT: %vtable_ptr.loc13_1.2: ref %ptr.454 = vtable_ptr @GenericDerived.vtable, @GenericDerived(%T.loc9_27.2) [symbolic = %vtable_ptr.loc13_1.2 (constants.%GenericDerived.vtable_ptr)]
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class {
|
|
// CHECK:STDOUT: class {
|
|
|
// CHECK:STDOUT: %NonGenericBase.ref: type = name_ref NonGenericBase, file.%NonGenericBase.decl [concrete = constants.%NonGenericBase]
|
|
// CHECK:STDOUT: %NonGenericBase.ref: type = name_ref NonGenericBase, file.%NonGenericBase.decl [concrete = constants.%NonGenericBase]
|
|
|
// CHECK:STDOUT: %.loc10: @GenericDerived.%GenericDerived.elem (%GenericDerived.elem) = base_decl %NonGenericBase.ref, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc10: @GenericDerived.%GenericDerived.elem (%GenericDerived.elem) = base_decl %NonGenericBase.ref, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %F2.decl: @GenericDerived.%F2.type (%F2.type.e6e) = fn_decl @F2.2 [symbolic = @GenericDerived.%F2 (constants.%F2.5da)] {
|
|
|
|
|
-// CHECK:STDOUT: %self.patt: @F2.2.%pattern_type (%pattern_type.061) = binding_pattern self [concrete]
|
|
|
|
|
-// CHECK:STDOUT: %self.param_patt: @F2.2.%pattern_type (%pattern_type.061) = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.decl: @GenericDerived.%F2.type (%F2.type.e6e) = fn_decl @F2.loc11 [symbolic = @GenericDerived.%F2 (constants.%F2.5da)] {
|
|
|
|
|
+// CHECK:STDOUT: %self.patt: @F2.loc11.%pattern_type (%pattern_type.061) = binding_pattern self [concrete]
|
|
|
|
|
+// CHECK:STDOUT: %self.param_patt: @F2.loc11.%pattern_type (%pattern_type.061) = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
|
-// CHECK:STDOUT: %self.param: @F2.2.%GenericDerived (%GenericDerived) = value_param call_param0
|
|
|
|
|
|
|
+// CHECK:STDOUT: %self.param: @F2.loc11.%GenericDerived (%GenericDerived) = value_param call_param0
|
|
|
// CHECK:STDOUT: %.loc11_20.1: type = splice_block %Self.ref [symbolic = %GenericDerived (constants.%GenericDerived)] {
|
|
// CHECK:STDOUT: %.loc11_20.1: type = splice_block %Self.ref [symbolic = %GenericDerived (constants.%GenericDerived)] {
|
|
|
// CHECK:STDOUT: %.loc11_20.2: type = specific_constant constants.%GenericDerived, @GenericDerived(constants.%T) [symbolic = %GenericDerived (constants.%GenericDerived)]
|
|
// CHECK:STDOUT: %.loc11_20.2: type = specific_constant constants.%GenericDerived, @GenericDerived(constants.%T) [symbolic = %GenericDerived (constants.%GenericDerived)]
|
|
|
// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc11_20.2 [symbolic = %GenericDerived (constants.%GenericDerived)]
|
|
// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc11_20.2 [symbolic = %GenericDerived (constants.%GenericDerived)]
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: %self: @F2.2.%GenericDerived (%GenericDerived) = bind_name self, %self.param
|
|
|
|
|
|
|
+// CHECK:STDOUT: %self: @F2.loc11.%GenericDerived (%GenericDerived) = bind_name self, %self.param
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: %F3.decl: @GenericDerived.%F3.type (%F3.type) = fn_decl @F3 [symbolic = @GenericDerived.%F3 (constants.%F3)] {
|
|
// CHECK:STDOUT: %F3.decl: @GenericDerived.%F3.type (%F3.type) = fn_decl @F3 [symbolic = @GenericDerived.%F3 (constants.%F3)] {
|
|
|
// CHECK:STDOUT: %self.patt: @F3.%pattern_type (%pattern_type.061) = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: @F3.%pattern_type (%pattern_type.061) = binding_pattern self [concrete]
|
|
@@ -3090,7 +3090,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: %self: @F3.%GenericDerived (%GenericDerived) = bind_name self, %self.param
|
|
// CHECK:STDOUT: %self: @F3.%GenericDerived (%GenericDerived) = bind_name self, %self.param
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: %F2.specific_fn.loc13_1.1: <specific function> = specific_function %F2.decl, @F2.2(constants.%T) [symbolic = %F2.specific_fn.loc13_1.2 (constants.%F2.specific_fn)]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.specific_fn.loc13_1.1: <specific function> = specific_function %F2.decl, @F2.loc11(constants.%T) [symbolic = %F2.specific_fn.loc13_1.2 (constants.%F2.specific_fn)]
|
|
|
// CHECK:STDOUT: %F3.specific_fn.loc13_1.1: <specific function> = specific_function %F3.decl, @F3(constants.%T) [symbolic = %F3.specific_fn.loc13_1.2 (constants.%F3.specific_fn)]
|
|
// CHECK:STDOUT: %F3.specific_fn.loc13_1.1: <specific function> = specific_function %F3.decl, @F3(constants.%T) [symbolic = %F3.specific_fn.loc13_1.2 (constants.%F3.specific_fn)]
|
|
|
// CHECK:STDOUT: %vtable_ptr.loc13_1.1: ref %ptr.454 = vtable_ptr @GenericDerived.vtable, @GenericDerived(constants.%T) [symbolic = %vtable_ptr.loc13_1.2 (constants.%GenericDerived.vtable_ptr)]
|
|
// CHECK:STDOUT: %vtable_ptr.loc13_1.1: ref %ptr.454 = vtable_ptr @GenericDerived.vtable, @GenericDerived(constants.%T) [symbolic = %vtable_ptr.loc13_1.2 (constants.%GenericDerived.vtable_ptr)]
|
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %NonGenericBase} [concrete = constants.%struct_type.base.432]
|
|
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %NonGenericBase} [concrete = constants.%struct_type.base.432]
|
|
@@ -3124,12 +3124,12 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: return
|
|
// CHECK:STDOUT: return
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: virtual fn @F2.1(%self.param: %NonGenericBase) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: virtual fn @F2.loc6(%self.param: %NonGenericBase) {
|
|
|
// CHECK:STDOUT: !entry:
|
|
// CHECK:STDOUT: !entry:
|
|
|
// CHECK:STDOUT: return
|
|
// CHECK:STDOUT: return
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: generic impl fn @F2.2(@GenericDerived.%T.loc9_27.1: type) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: generic impl fn @F2.loc11(@GenericDerived.%T.loc9_27.1: type) {
|
|
|
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)]
|
|
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)]
|
|
|
// CHECK:STDOUT: %GenericDerived: type = class_type @GenericDerived, @GenericDerived(%T) [symbolic = %GenericDerived (constants.%GenericDerived)]
|
|
// CHECK:STDOUT: %GenericDerived: type = class_type @GenericDerived, @GenericDerived(%T) [symbolic = %GenericDerived (constants.%GenericDerived)]
|
|
|
// CHECK:STDOUT: %pattern_type: type = pattern_type %GenericDerived [symbolic = %pattern_type (constants.%pattern_type.061)]
|
|
// CHECK:STDOUT: %pattern_type: type = pattern_type %GenericDerived [symbolic = %pattern_type (constants.%pattern_type.061)]
|
|
@@ -3137,7 +3137,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: !definition:
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %GenericDerived [symbolic = %require_complete (constants.%require_complete)]
|
|
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %GenericDerived [symbolic = %require_complete (constants.%require_complete)]
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: impl fn(%self.param: @F2.2.%GenericDerived (%GenericDerived)) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: impl fn(%self.param: @F2.loc11.%GenericDerived (%GenericDerived)) {
|
|
|
// CHECK:STDOUT: !entry:
|
|
// CHECK:STDOUT: !entry:
|
|
|
// CHECK:STDOUT: return
|
|
// CHECK:STDOUT: return
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
@@ -3172,7 +3172,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %vtable_ptr.loc13_1.2 => constants.%GenericDerived.vtable_ptr
|
|
// CHECK:STDOUT: %vtable_ptr.loc13_1.2 => constants.%GenericDerived.vtable_ptr
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: specific @F2.2(constants.%T) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: specific @F2.loc11(constants.%T) {
|
|
|
// CHECK:STDOUT: %T => constants.%T
|
|
// CHECK:STDOUT: %T => constants.%T
|
|
|
// CHECK:STDOUT: %GenericDerived => constants.%GenericDerived
|
|
// CHECK:STDOUT: %GenericDerived => constants.%GenericDerived
|
|
|
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.061
|
|
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.061
|
|
@@ -3201,11 +3201,11 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %pattern_type.34e: type = pattern_type %GenericBase.018 [symbolic]
|
|
// CHECK:STDOUT: %pattern_type.34e: type = pattern_type %GenericBase.018 [symbolic]
|
|
|
// CHECK:STDOUT: %F1.type.2af: type = fn_type @F1, @GenericBase(%T) [symbolic]
|
|
// CHECK:STDOUT: %F1.type.2af: type = fn_type @F1, @GenericBase(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %F1.80a: %F1.type.2af = struct_value () [symbolic]
|
|
// CHECK:STDOUT: %F1.80a: %F1.type.2af = struct_value () [symbolic]
|
|
|
-// CHECK:STDOUT: %F2.type.2ca: type = fn_type @F2.1, @GenericBase(%T) [symbolic]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.type.2ca: type = fn_type @F2.loc6, @GenericBase(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %F2.414: %F2.type.2ca = struct_value () [symbolic]
|
|
// CHECK:STDOUT: %F2.414: %F2.type.2ca = struct_value () [symbolic]
|
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
// CHECK:STDOUT: %ptr.454: type = ptr_type <vtable> [concrete]
|
|
|
// CHECK:STDOUT: %F1.specific_fn.aea: <specific function> = specific_function %F1.80a, @F1(%T) [symbolic]
|
|
// CHECK:STDOUT: %F1.specific_fn.aea: <specific function> = specific_function %F1.80a, @F1(%T) [symbolic]
|
|
|
-// CHECK:STDOUT: %F2.specific_fn.758: <specific function> = specific_function %F2.414, @F2.1(%T) [symbolic]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.specific_fn.758: <specific function> = specific_function %F2.414, @F2.loc6(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %GenericBase.vtable_ptr.e41: ref %ptr.454 = vtable_ptr @GenericBase.vtable, @GenericBase(%T) [symbolic]
|
|
// CHECK:STDOUT: %GenericBase.vtable_ptr.e41: ref %ptr.454 = vtable_ptr @GenericBase.vtable, @GenericBase(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %struct_type.vptr: type = struct_type {.<vptr>: %ptr.454} [concrete]
|
|
// CHECK:STDOUT: %struct_type.vptr: type = struct_type {.<vptr>: %ptr.454} [concrete]
|
|
|
// CHECK:STDOUT: %complete_type.513: <witness> = complete_type_witness %struct_type.vptr [concrete]
|
|
// CHECK:STDOUT: %complete_type.513: <witness> = complete_type_witness %struct_type.vptr [concrete]
|
|
@@ -3215,15 +3215,15 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %GenericBase.f84: type = class_type @GenericBase, @GenericBase(%T1) [concrete]
|
|
// CHECK:STDOUT: %GenericBase.f84: type = class_type @GenericBase, @GenericBase(%T1) [concrete]
|
|
|
// CHECK:STDOUT: %F1.type.648: type = fn_type @F1, @GenericBase(%T1) [concrete]
|
|
// CHECK:STDOUT: %F1.type.648: type = fn_type @F1, @GenericBase(%T1) [concrete]
|
|
|
// CHECK:STDOUT: %F1.4d3: %F1.type.648 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F1.4d3: %F1.type.648 = struct_value () [concrete]
|
|
|
-// CHECK:STDOUT: %F2.type.d79: type = fn_type @F2.1, @GenericBase(%T1) [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.type.d79: type = fn_type @F2.loc6, @GenericBase(%T1) [concrete]
|
|
|
// CHECK:STDOUT: %F2.d59: %F2.type.d79 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F2.d59: %F2.type.d79 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.7a9: type = pattern_type %GenericBase.f84 [concrete]
|
|
// CHECK:STDOUT: %pattern_type.7a9: type = pattern_type %GenericBase.f84 [concrete]
|
|
|
// CHECK:STDOUT: %F1.specific_fn.094: <specific function> = specific_function %F1.4d3, @F1(%T1) [concrete]
|
|
// CHECK:STDOUT: %F1.specific_fn.094: <specific function> = specific_function %F1.4d3, @F1(%T1) [concrete]
|
|
|
-// CHECK:STDOUT: %F2.specific_fn.b8b: <specific function> = specific_function %F2.d59, @F2.1(%T1) [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.specific_fn.b8b: <specific function> = specific_function %F2.d59, @F2.loc6(%T1) [concrete]
|
|
|
// CHECK:STDOUT: %GenericBase.vtable_ptr.d41: ref %ptr.454 = vtable_ptr @GenericBase.vtable, @GenericBase(%T1) [concrete]
|
|
// CHECK:STDOUT: %GenericBase.vtable_ptr.d41: ref %ptr.454 = vtable_ptr @GenericBase.vtable, @GenericBase(%T1) [concrete]
|
|
|
// CHECK:STDOUT: %NonGenericDerived.elem: type = unbound_element_type %NonGenericDerived, %GenericBase.f84 [concrete]
|
|
// CHECK:STDOUT: %NonGenericDerived.elem: type = unbound_element_type %NonGenericDerived, %GenericBase.f84 [concrete]
|
|
|
// CHECK:STDOUT: %pattern_type.5fc: type = pattern_type %NonGenericDerived [concrete]
|
|
// CHECK:STDOUT: %pattern_type.5fc: type = pattern_type %NonGenericDerived [concrete]
|
|
|
-// CHECK:STDOUT: %F2.type.c10: type = fn_type @F2.2 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.type.c10: type = fn_type @F2.loc13 [concrete]
|
|
|
// CHECK:STDOUT: %F2.deb: %F2.type.c10 = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F2.deb: %F2.type.c10 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %F3.type: type = fn_type @F3 [concrete]
|
|
// CHECK:STDOUT: %F3.type: type = fn_type @F3 [concrete]
|
|
|
// CHECK:STDOUT: %F3: %F3.type = struct_value () [concrete]
|
|
// CHECK:STDOUT: %F3: %F3.type = struct_value () [concrete]
|
|
@@ -3262,10 +3262,10 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: !definition:
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT: %F1.type: type = fn_type @F1, @GenericBase(%T.loc4_24.2) [symbolic = %F1.type (constants.%F1.type.2af)]
|
|
// CHECK:STDOUT: %F1.type: type = fn_type @F1, @GenericBase(%T.loc4_24.2) [symbolic = %F1.type (constants.%F1.type.2af)]
|
|
|
// CHECK:STDOUT: %F1: @GenericBase.%F1.type (%F1.type.2af) = struct_value () [symbolic = %F1 (constants.%F1.80a)]
|
|
// CHECK:STDOUT: %F1: @GenericBase.%F1.type (%F1.type.2af) = struct_value () [symbolic = %F1 (constants.%F1.80a)]
|
|
|
-// CHECK:STDOUT: %F2.type: type = fn_type @F2.1, @GenericBase(%T.loc4_24.2) [symbolic = %F2.type (constants.%F2.type.2ca)]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.type: type = fn_type @F2.loc6, @GenericBase(%T.loc4_24.2) [symbolic = %F2.type (constants.%F2.type.2ca)]
|
|
|
// CHECK:STDOUT: %F2: @GenericBase.%F2.type (%F2.type.2ca) = struct_value () [symbolic = %F2 (constants.%F2.414)]
|
|
// CHECK:STDOUT: %F2: @GenericBase.%F2.type (%F2.type.2ca) = struct_value () [symbolic = %F2 (constants.%F2.414)]
|
|
|
// CHECK:STDOUT: %F1.specific_fn.loc7_1.2: <specific function> = specific_function %F1, @F1(%T.loc4_24.2) [symbolic = %F1.specific_fn.loc7_1.2 (constants.%F1.specific_fn.aea)]
|
|
// CHECK:STDOUT: %F1.specific_fn.loc7_1.2: <specific function> = specific_function %F1, @F1(%T.loc4_24.2) [symbolic = %F1.specific_fn.loc7_1.2 (constants.%F1.specific_fn.aea)]
|
|
|
-// CHECK:STDOUT: %F2.specific_fn.loc7_1.2: <specific function> = specific_function %F2, @F2.1(%T.loc4_24.2) [symbolic = %F2.specific_fn.loc7_1.2 (constants.%F2.specific_fn.758)]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.specific_fn.loc7_1.2: <specific function> = specific_function %F2, @F2.loc6(%T.loc4_24.2) [symbolic = %F2.specific_fn.loc7_1.2 (constants.%F2.specific_fn.758)]
|
|
|
// CHECK:STDOUT: %vtable_ptr.loc7_1.2: ref %ptr.454 = vtable_ptr @GenericBase.vtable, @GenericBase(%T.loc4_24.2) [symbolic = %vtable_ptr.loc7_1.2 (constants.%GenericBase.vtable_ptr.e41)]
|
|
// CHECK:STDOUT: %vtable_ptr.loc7_1.2: ref %ptr.454 = vtable_ptr @GenericBase.vtable, @GenericBase(%T.loc4_24.2) [symbolic = %vtable_ptr.loc7_1.2 (constants.%GenericBase.vtable_ptr.e41)]
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class {
|
|
// CHECK:STDOUT: class {
|
|
@@ -3280,19 +3280,19 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: %self: @F1.%GenericBase (%GenericBase.018) = bind_name self, %self.param
|
|
// CHECK:STDOUT: %self: @F1.%GenericBase (%GenericBase.018) = bind_name self, %self.param
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: %F2.decl: @GenericBase.%F2.type (%F2.type.2ca) = fn_decl @F2.1 [symbolic = @GenericBase.%F2 (constants.%F2.414)] {
|
|
|
|
|
-// CHECK:STDOUT: %self.patt: @F2.1.%pattern_type (%pattern_type.34e) = binding_pattern self [concrete]
|
|
|
|
|
-// CHECK:STDOUT: %self.param_patt: @F2.1.%pattern_type (%pattern_type.34e) = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.decl: @GenericBase.%F2.type (%F2.type.2ca) = fn_decl @F2.loc6 [symbolic = @GenericBase.%F2 (constants.%F2.414)] {
|
|
|
|
|
+// CHECK:STDOUT: %self.patt: @F2.loc6.%pattern_type (%pattern_type.34e) = binding_pattern self [concrete]
|
|
|
|
|
+// CHECK:STDOUT: %self.param_patt: @F2.loc6.%pattern_type (%pattern_type.34e) = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
|
-// CHECK:STDOUT: %self.param: @F2.1.%GenericBase (%GenericBase.018) = value_param call_param0
|
|
|
|
|
|
|
+// CHECK:STDOUT: %self.param: @F2.loc6.%GenericBase (%GenericBase.018) = value_param call_param0
|
|
|
// CHECK:STDOUT: %.loc6_23.1: type = splice_block %Self.ref [symbolic = %GenericBase (constants.%GenericBase.018)] {
|
|
// CHECK:STDOUT: %.loc6_23.1: type = splice_block %Self.ref [symbolic = %GenericBase (constants.%GenericBase.018)] {
|
|
|
// CHECK:STDOUT: %.loc6_23.2: type = specific_constant constants.%GenericBase.018, @GenericBase(constants.%T) [symbolic = %GenericBase (constants.%GenericBase.018)]
|
|
// CHECK:STDOUT: %.loc6_23.2: type = specific_constant constants.%GenericBase.018, @GenericBase(constants.%T) [symbolic = %GenericBase (constants.%GenericBase.018)]
|
|
|
// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc6_23.2 [symbolic = %GenericBase (constants.%GenericBase.018)]
|
|
// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc6_23.2 [symbolic = %GenericBase (constants.%GenericBase.018)]
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: %self: @F2.1.%GenericBase (%GenericBase.018) = bind_name self, %self.param
|
|
|
|
|
|
|
+// CHECK:STDOUT: %self: @F2.loc6.%GenericBase (%GenericBase.018) = bind_name self, %self.param
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: %F1.specific_fn.loc7_1.1: <specific function> = specific_function %F1.decl, @F1(constants.%T) [symbolic = %F1.specific_fn.loc7_1.2 (constants.%F1.specific_fn.aea)]
|
|
// CHECK:STDOUT: %F1.specific_fn.loc7_1.1: <specific function> = specific_function %F1.decl, @F1(constants.%T) [symbolic = %F1.specific_fn.loc7_1.2 (constants.%F1.specific_fn.aea)]
|
|
|
-// CHECK:STDOUT: %F2.specific_fn.loc7_1.1: <specific function> = specific_function %F2.decl, @F2.1(constants.%T) [symbolic = %F2.specific_fn.loc7_1.2 (constants.%F2.specific_fn.758)]
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.specific_fn.loc7_1.1: <specific function> = specific_function %F2.decl, @F2.loc6(constants.%T) [symbolic = %F2.specific_fn.loc7_1.2 (constants.%F2.specific_fn.758)]
|
|
|
// CHECK:STDOUT: %vtable_ptr.loc7_1.1: ref %ptr.454 = vtable_ptr @GenericBase.vtable, @GenericBase(constants.%T) [symbolic = %vtable_ptr.loc7_1.2 (constants.%GenericBase.vtable_ptr.e41)]
|
|
// CHECK:STDOUT: %vtable_ptr.loc7_1.1: ref %ptr.454 = vtable_ptr @GenericBase.vtable, @GenericBase(constants.%T) [symbolic = %vtable_ptr.loc7_1.2 (constants.%GenericBase.vtable_ptr.e41)]
|
|
|
// CHECK:STDOUT: %struct_type.vptr: type = struct_type {.<vptr>: %ptr.454} [concrete = constants.%struct_type.vptr]
|
|
// CHECK:STDOUT: %struct_type.vptr: type = struct_type {.<vptr>: %ptr.454} [concrete = constants.%struct_type.vptr]
|
|
|
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %struct_type.vptr [concrete = constants.%complete_type.513]
|
|
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %struct_type.vptr [concrete = constants.%complete_type.513]
|
|
@@ -3313,7 +3313,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1]
|
|
// CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1]
|
|
|
// CHECK:STDOUT: %GenericBase: type = class_type @GenericBase, @GenericBase(constants.%T1) [concrete = constants.%GenericBase.f84]
|
|
// CHECK:STDOUT: %GenericBase: type = class_type @GenericBase, @GenericBase(constants.%T1) [concrete = constants.%GenericBase.f84]
|
|
|
// CHECK:STDOUT: %.loc12: %NonGenericDerived.elem = base_decl %GenericBase, element0 [concrete]
|
|
// CHECK:STDOUT: %.loc12: %NonGenericDerived.elem = base_decl %GenericBase, element0 [concrete]
|
|
|
-// CHECK:STDOUT: %F2.decl: %F2.type.c10 = fn_decl @F2.2 [concrete = constants.%F2.deb] {
|
|
|
|
|
|
|
+// CHECK:STDOUT: %F2.decl: %F2.type.c10 = fn_decl @F2.loc13 [concrete = constants.%F2.deb] {
|
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.5fc = binding_pattern self [concrete]
|
|
// CHECK:STDOUT: %self.patt: %pattern_type.5fc = binding_pattern self [concrete]
|
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.5fc = value_param_pattern %self.patt, call_param0 [concrete]
|
|
// CHECK:STDOUT: %self.param_patt: %pattern_type.5fc = value_param_pattern %self.patt, call_param0 [concrete]
|
|
|
// CHECK:STDOUT: } {
|
|
// CHECK:STDOUT: } {
|
|
@@ -3370,7 +3370,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: generic virtual fn @F2.1(@GenericBase.%T.loc4_24.1: type) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: generic virtual fn @F2.loc6(@GenericBase.%T.loc4_24.1: type) {
|
|
|
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)]
|
|
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)]
|
|
|
// CHECK:STDOUT: %GenericBase: type = class_type @GenericBase, @GenericBase(%T) [symbolic = %GenericBase (constants.%GenericBase.018)]
|
|
// CHECK:STDOUT: %GenericBase: type = class_type @GenericBase, @GenericBase(%T) [symbolic = %GenericBase (constants.%GenericBase.018)]
|
|
|
// CHECK:STDOUT: %pattern_type: type = pattern_type %GenericBase [symbolic = %pattern_type (constants.%pattern_type.34e)]
|
|
// CHECK:STDOUT: %pattern_type: type = pattern_type %GenericBase [symbolic = %pattern_type (constants.%pattern_type.34e)]
|
|
@@ -3378,13 +3378,13 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: !definition:
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %GenericBase [symbolic = %require_complete (constants.%require_complete)]
|
|
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %GenericBase [symbolic = %require_complete (constants.%require_complete)]
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: virtual fn(%self.param: @F2.1.%GenericBase (%GenericBase.018)) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: virtual fn(%self.param: @F2.loc6.%GenericBase (%GenericBase.018)) {
|
|
|
// CHECK:STDOUT: !entry:
|
|
// CHECK:STDOUT: !entry:
|
|
|
// CHECK:STDOUT: return
|
|
// CHECK:STDOUT: return
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: impl fn @F2.2(%self.param: %NonGenericDerived) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: impl fn @F2.loc13(%self.param: %NonGenericDerived) {
|
|
|
// CHECK:STDOUT: !entry:
|
|
// CHECK:STDOUT: !entry:
|
|
|
// CHECK:STDOUT: return
|
|
// CHECK:STDOUT: return
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
@@ -3416,7 +3416,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %require_complete => constants.%require_complete
|
|
// CHECK:STDOUT: %require_complete => constants.%require_complete
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: specific @F2.1(constants.%T) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: specific @F2.loc6(constants.%T) {
|
|
|
// CHECK:STDOUT: %T => constants.%T
|
|
// CHECK:STDOUT: %T => constants.%T
|
|
|
// CHECK:STDOUT: %GenericBase => constants.%GenericBase.018
|
|
// CHECK:STDOUT: %GenericBase => constants.%GenericBase.018
|
|
|
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.34e
|
|
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.34e
|
|
@@ -3447,7 +3447,7 @@ base class NonGenericDerived {
|
|
|
// CHECK:STDOUT: %require_complete => constants.%complete_type.513
|
|
// CHECK:STDOUT: %require_complete => constants.%complete_type.513
|
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: specific @F2.1(constants.%T1) {
|
|
|
|
|
|
|
+// CHECK:STDOUT: specific @F2.loc6(constants.%T1) {
|
|
|
// CHECK:STDOUT: %T => constants.%T1
|
|
// CHECK:STDOUT: %T => constants.%T1
|
|
|
// CHECK:STDOUT: %GenericBase => constants.%GenericBase.f84
|
|
// CHECK:STDOUT: %GenericBase => constants.%GenericBase.f84
|
|
|
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7a9
|
|
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7a9
|