@@ -283,11 +283,11 @@ fn H() {
283283// CHECK:STDOUT: %struct_type.x.200: type = struct_type {.x: %T.d9f} [symbolic]
284284// CHECK:STDOUT: %complete_type.9d1: <witness> = complete_type_witness %struct_type.x.200 [symbolic]
285285// CHECK:STDOUT: %Base.8f3: type = class_type @Base, @Base(%T.d9f) [symbolic]
286+ // CHECK:STDOUT: %Base.elem.e9c: type = unbound_element_type %Base.8f3, %T.d9f [symbolic]
287+ // CHECK:STDOUT: %require_complete.4b7: <witness> = require_complete_type %T.d9f [symbolic]
286288// CHECK:STDOUT: %Base.7a8: type = class_type @Base, @Base(%Param) [concrete]
287289// CHECK:STDOUT: %struct_type.base.8bc: type = struct_type {.base: %Base.7a8} [concrete]
288290// CHECK:STDOUT: %complete_type.b07: <witness> = complete_type_witness %struct_type.base.8bc [concrete]
289- // CHECK:STDOUT: %require_complete.4b7: <witness> = require_complete_type %T.d9f [symbolic]
290- // CHECK:STDOUT: %Base.elem.e9c: type = unbound_element_type %Base.8f3, %T.d9f [symbolic]
291291// CHECK:STDOUT: %Base.elem.d1f: type = unbound_element_type %Base.7a8, %Param [concrete]
292292// CHECK:STDOUT: %struct_type.x.975: type = struct_type {.x: %Param} [concrete]
293293// CHECK:STDOUT: %complete_type.db3: <witness> = complete_type_witness %struct_type.x.975 [concrete]
@@ -322,10 +322,10 @@ fn H() {
322322// CHECK:STDOUT: %Main.import_ref.e8d: <witness> = import_ref Main//extend_generic_base, loc10_1, loaded [concrete = constants.%complete_type.09d]
323323// CHECK:STDOUT: %Main.import_ref.446 = import_ref Main//extend_generic_base, inst{{[0-9A-F]+}} [no loc], unloaded
324324// CHECK:STDOUT: %Main.import_ref.a92: %Param.elem = import_ref Main//extend_generic_base, loc9_8, loaded [concrete = %.be7]
325- // CHECK:STDOUT: %Main.import_ref.efc: type = import_ref Main//extend_generic_base, loc4_17, loaded [symbolic = @Base.%T (constants.%T.d9f)]
326325// CHECK:STDOUT: %Main.import_ref.2c9: <witness> = import_ref Main//extend_generic_base, loc6_1, loaded [symbolic = @Base.%complete_type (constants.%complete_type.9d1)]
327326// CHECK:STDOUT: %Main.import_ref.a14 = import_ref Main//extend_generic_base, inst{{[0-9A-F]+}} [no loc], unloaded
328327// CHECK:STDOUT: %Main.import_ref.922: @Base.%Base.elem (%Base.elem.e9c) = import_ref Main//extend_generic_base, loc5_8, loaded [concrete = %.b13]
328+ // CHECK:STDOUT: %Main.import_ref.efc: type = import_ref Main//extend_generic_base, loc4_17, loaded [symbolic = @Base.%T (constants.%T.d9f)]
329329// CHECK:STDOUT: %Main.import_ref.bd0: <witness> = import_ref Main//extend_generic_base, loc14_1, loaded [concrete = constants.%complete_type.b07]
330330// CHECK:STDOUT: %Main.import_ref.f6c = import_ref Main//extend_generic_base, inst{{[0-9A-F]+}} [no loc], unloaded
331331// CHECK:STDOUT: %Main.import_ref.d24 = import_ref Main//extend_generic_base, loc13_27, unloaded
@@ -795,17 +795,17 @@ fn H() {
795795// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
796796// CHECK:STDOUT: %complete_type.357: <witness> = complete_type_witness %empty_struct_type [concrete]
797797// CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic]
798+ // CHECK:STDOUT: %X.G.type.89b800.1: type = fn_type @X.G, @X(%U) [symbolic]
799+ // CHECK:STDOUT: %X.G.045884.1: %X.G.type.89b800.1 = struct_value () [symbolic]
800+ // CHECK:STDOUT: %pattern_type.e68: type = pattern_type %U [symbolic]
801+ // CHECK:STDOUT: %X.G.specific_fn.f7a: <specific function> = specific_function %X.G.045884.1, @X.G(%U) [symbolic]
802+ // CHECK:STDOUT: %require_complete.4b7: <witness> = require_complete_type %U [symbolic]
798803// CHECK:STDOUT: %X.fa229d.2: type = class_type @X, @X(%T) [symbolic]
799804// CHECK:STDOUT: %C.3f0: type = class_type @C, @C(%T) [symbolic]
800805// CHECK:STDOUT: %C.elem.b96: type = unbound_element_type %C.3f0, %X.fa229d.2 [symbolic]
801806// CHECK:STDOUT: %struct_type.base.b13: type = struct_type {.base: %X.fa229d.2} [symbolic]
802807// CHECK:STDOUT: %complete_type.b1f: <witness> = complete_type_witness %struct_type.base.b13 [symbolic]
803- // CHECK:STDOUT: %X.G.type.89b800.1: type = fn_type @X.G, @X(%U) [symbolic]
804- // CHECK:STDOUT: %X.G.045884.1: %X.G.type.89b800.1 = struct_value () [symbolic]
805- // CHECK:STDOUT: %pattern_type.e68: type = pattern_type %U [symbolic]
806808// CHECK:STDOUT: %require_complete.6fb: <witness> = require_complete_type %X.fa229d.2 [symbolic]
807- // CHECK:STDOUT: %require_complete.4b7: <witness> = require_complete_type %U [symbolic]
808- // CHECK:STDOUT: %X.G.specific_fn.f7a: <specific function> = specific_function %X.G.045884.1, @X.G(%U) [symbolic]
809809// CHECK:STDOUT: %X.G.type.89b800.2: type = fn_type @X.G, @X(%T) [symbolic]
810810// CHECK:STDOUT: %X.G.045884.2: %X.G.type.89b800.2 = struct_value () [symbolic]
811811// CHECK:STDOUT: %C.98a: type = class_type @C, @C(%i32) [concrete]
@@ -828,16 +828,16 @@ fn H() {
828828// CHECK:STDOUT: import Core//prelude/...
829829// CHECK:STDOUT: }
830830// CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic]
831- // CHECK:STDOUT: %Main.import_ref.efcd44.1: type = import_ref Main//extend_generic_symbolic_base, loc4_14, loaded [symbolic = @X.%U (constants.%U)]
832831// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//extend_generic_symbolic_base, loc6_1, loaded [concrete = constants.%complete_type.357]
833832// CHECK:STDOUT: %Main.import_ref.e14 = import_ref Main//extend_generic_symbolic_base, inst{{[0-9A-F]+}} [no loc], unloaded
834833// CHECK:STDOUT: %Main.import_ref.e33: @X.%X.G.type (%X.G.type.89b800.1) = import_ref Main//extend_generic_symbolic_base, loc5_15, loaded [symbolic = @X.%X.G (constants.%X.G.045884.1)]
835- // CHECK:STDOUT: %Main.import_ref.efcd44.2: type = import_ref Main//extend_generic_symbolic_base, loc8_9, loaded [symbolic = @C.%T (constants.%T)]
834+ // CHECK:STDOUT: %Main.import_ref.efcd44.1: type = import_ref Main//extend_generic_symbolic_base, loc4_14, loaded [symbolic = @X.%U (constants.%U)]
835+ // CHECK:STDOUT: %Main.import_ref.efcd44.2: type = import_ref Main//extend_generic_symbolic_base, loc4_14, loaded [symbolic = @X.%U (constants.%U)]
836836// CHECK:STDOUT: %Main.import_ref.5d2: <witness> = import_ref Main//extend_generic_symbolic_base, loc10_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.b1f)]
837837// CHECK:STDOUT: %Main.import_ref.034 = import_ref Main//extend_generic_symbolic_base, inst{{[0-9A-F]+}} [no loc], unloaded
838838// CHECK:STDOUT: %Main.import_ref.55b = import_ref Main//extend_generic_symbolic_base, loc9_20, unloaded
839839// CHECK:STDOUT: %Main.import_ref.53b70e.2: type = import_ref Main//extend_generic_symbolic_base, loc9_19, loaded [symbolic = @C.%X (constants.%X.fa229d.2)]
840- // CHECK:STDOUT: %Main.import_ref.efcd44.3: type = import_ref Main//extend_generic_symbolic_base, loc4_14 , loaded [symbolic = @X.%U (constants.%U )]
840+ // CHECK:STDOUT: %Main.import_ref.efcd44.3: type = import_ref Main//extend_generic_symbolic_base, loc8_9 , loaded [symbolic = @C.%T (constants.%T )]
841841// CHECK:STDOUT: }
842842// CHECK:STDOUT:
843843// CHECK:STDOUT: file {
@@ -853,7 +853,7 @@ fn H() {
853853// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] {} {}
854854// CHECK:STDOUT: }
855855// CHECK:STDOUT:
856- // CHECK:STDOUT: generic class @C(imports.%Main.import_ref.efcd44.2 : type) [from "extend_generic_symbolic_base.carbon"] {
856+ // CHECK:STDOUT: generic class @C(imports.%Main.import_ref.efcd44.3 : type) [from "extend_generic_symbolic_base.carbon"] {
857857// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
858858// CHECK:STDOUT:
859859// CHECK:STDOUT: !definition:
@@ -914,7 +914,7 @@ fn H() {
914914// CHECK:STDOUT: return
915915// CHECK:STDOUT: }
916916// CHECK:STDOUT:
917- // CHECK:STDOUT: generic fn @X.G(imports.%Main.import_ref.efcd44.3 : type) [from "extend_generic_symbolic_base.carbon"] {
917+ // CHECK:STDOUT: generic fn @X.G(imports.%Main.import_ref.efcd44.2 : type) [from "extend_generic_symbolic_base.carbon"] {
918918// CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic = %U (constants.%U)]
919919// CHECK:STDOUT: %pattern_type: type = pattern_type %U [symbolic = %pattern_type (constants.%pattern_type.e68)]
920920// CHECK:STDOUT:
@@ -935,6 +935,17 @@ fn H() {
935935// CHECK:STDOUT: %X.G => constants.%X.G.045884.1
936936// CHECK:STDOUT: }
937937// CHECK:STDOUT:
938+ // CHECK:STDOUT: specific @X.G(constants.%U) {
939+ // CHECK:STDOUT: %U => constants.%U
940+ // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e68
941+ // CHECK:STDOUT:
942+ // CHECK:STDOUT: !definition:
943+ // CHECK:STDOUT: %require_complete => constants.%require_complete.4b7
944+ // CHECK:STDOUT: %X.G.type => constants.%X.G.type.89b800.1
945+ // CHECK:STDOUT: %X.G => constants.%X.G.045884.1
946+ // CHECK:STDOUT: %X.G.specific_fn => constants.%X.G.specific_fn.f7a
947+ // CHECK:STDOUT: }
948+ // CHECK:STDOUT:
938949// CHECK:STDOUT: specific @X(constants.%T) {
939950// CHECK:STDOUT: %U => constants.%T
940951// CHECK:STDOUT:
@@ -947,17 +958,6 @@ fn H() {
947958// CHECK:STDOUT: %T => constants.%T
948959// CHECK:STDOUT: }
949960// CHECK:STDOUT:
950- // CHECK:STDOUT: specific @X.G(constants.%U) {
951- // CHECK:STDOUT: %U => constants.%U
952- // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e68
953- // CHECK:STDOUT:
954- // CHECK:STDOUT: !definition:
955- // CHECK:STDOUT: %require_complete => constants.%require_complete.4b7
956- // CHECK:STDOUT: %X.G.type => constants.%X.G.type.89b800.1
957- // CHECK:STDOUT: %X.G => constants.%X.G.045884.1
958- // CHECK:STDOUT: %X.G.specific_fn => constants.%X.G.specific_fn.f7a
959- // CHECK:STDOUT: }
960- // CHECK:STDOUT:
961961// CHECK:STDOUT: specific @C(constants.%i32) {
962962// CHECK:STDOUT: %T => constants.%i32
963963// CHECK:STDOUT:
0 commit comments