mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 20:20:10 +01:00
Use the name of the self and facet type as the inst name for a require decl scope (#6602)
This avoids using unstable id numbers as the name for the scope
This commit is contained in:
+8
-8
@@ -54,11 +54,11 @@ fn F(A:! X, B:! Y) {}
|
||||
// CHECK:STDOUT: %Main.Y: type = import_ref Main//a, Y, loaded [concrete = constants.%Y.type]
|
||||
// CHECK:STDOUT: %Main.X: type = import_ref Main//a, X, loaded [concrete = constants.%X.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.69e = import_ref Main//a, loc3_13, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.67f: type = import_ref Main//a, loc10_18, loaded [symbolic = @X.require50000000.%Self.binding.as_type (constants.%Self.binding.as_type.f60)]
|
||||
// CHECK:STDOUT: %Main.import_ref.67f: type = import_ref Main//a, loc10_18, loaded [symbolic = @X.Self.binding.as_type.impls.Z.type.require.%Self.binding.as_type (constants.%Self.binding.as_type.f60)]
|
||||
// CHECK:STDOUT: %Main.import_ref.926bc7.1: type = import_ref Main//a, loc10_24, loaded [concrete = constants.%Z.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.e33: %X.type = import_ref Main//a, loc9_14, loaded [symbolic = constants.%Self.f45]
|
||||
// CHECK:STDOUT: %Main.import_ref.65b = import_ref Main//a, loc9_14, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.7bb: type = import_ref Main//a, loc6_11, loaded [symbolic = @Y.require50000001.%Self.binding.as_type (constants.%Self.binding.as_type.63e)]
|
||||
// CHECK:STDOUT: %Main.import_ref.7bb: type = import_ref Main//a, loc6_11, loaded [symbolic = @Y.Self.binding.as_type.impls.Z.type.require.%Self.binding.as_type (constants.%Self.binding.as_type.63e)]
|
||||
// CHECK:STDOUT: %Main.import_ref.926bc7.2: type = import_ref Main//a, loc6_17, loaded [concrete = constants.%Z.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.8c7: %Y.type = import_ref Main//a, loc5_13, loaded [symbolic = constants.%Self.d4d]
|
||||
// CHECK:STDOUT: %Main.import_ref.3e2 = import_ref Main//a, loc5_13, unloaded
|
||||
@@ -104,7 +104,7 @@ fn F(A:! X, B:! Y) {}
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Y.require50000001 {
|
||||
// CHECK:STDOUT: @Y.Self.binding.as_type.impls.Z.type.require {
|
||||
// CHECK:STDOUT: require imports.%Main.import_ref.7bb impls imports.%Main.import_ref.926bc7.2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -114,17 +114,17 @@ fn F(A:! X, B:! Y) {}
|
||||
// CHECK:STDOUT: .Self = imports.%Main.import_ref.65b
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @X.require50000000 {
|
||||
// CHECK:STDOUT: @X.Self.binding.as_type.impls.Z.type.require {
|
||||
// CHECK:STDOUT: require imports.%Main.import_ref.67f impls imports.%Main.import_ref.926bc7.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @X.require50000000(imports.%Main.import_ref.e33: %X.type) [from "a.carbon"] {
|
||||
// CHECK:STDOUT: generic require @X.Self.binding.as_type.impls.Z.type.require(imports.%Main.import_ref.e33: %X.type) [from "a.carbon"] {
|
||||
// CHECK:STDOUT: %Self: %X.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f45)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.f60)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Y.require50000001(imports.%Main.import_ref.8c7: %Y.type) [from "a.carbon"] {
|
||||
// CHECK:STDOUT: generic require @Y.Self.binding.as_type.impls.Z.type.require(imports.%Main.import_ref.8c7: %Y.type) [from "a.carbon"] {
|
||||
// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d4d)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.63e)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -141,12 +141,12 @@ fn F(A:! X, B:! Y) {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @X.require50000000(constants.%Self.f45) {
|
||||
// CHECK:STDOUT: specific @X.Self.binding.as_type.impls.Z.type.require(constants.%Self.f45) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.f45
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.f60
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Y.require50000001(constants.%Self.d4d) {
|
||||
// CHECK:STDOUT: specific @Y.Self.binding.as_type.impls.Z.type.require(constants.%Self.d4d) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.d4d
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.63e
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+67
-67
@@ -252,7 +252,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.loc4_23.1: @J.%J.type (%J.type.04e) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.a60)]
|
||||
// CHECK:STDOUT: %J.require60000000.decl = require_decl @J.require60000000 [concrete] {
|
||||
// CHECK:STDOUT: %J.Self.binding.as_type.impls.I.type.require.decl = require_decl @J.Self.binding.as_type.impls.I.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %I.type.loc5_27.1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @J.%Self.loc4_23.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -268,16 +268,16 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @J.require60000000 {
|
||||
// CHECK:STDOUT: require @J.require60000000.%Self.as_type impls @J.require60000000.%I.type.loc5_27.1
|
||||
// CHECK:STDOUT: @J.Self.binding.as_type.impls.I.type.require {
|
||||
// CHECK:STDOUT: require @J.Self.binding.as_type.impls.I.type.require.%Self.as_type impls @J.Self.binding.as_type.impls.I.type.require.%I.type.loc5_27.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @J.require60000000(@J.%T.loc4_13.2: type, @J.%Self.loc4_23.1: @J.%J.type (%J.type.04e)) {
|
||||
// CHECK:STDOUT: generic require @J.Self.binding.as_type.impls.I.type.require(@J.%T.loc4_13.2: type, @J.%Self.loc4_23.1: @J.%J.type (%J.type.04e)) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.04e)]
|
||||
// CHECK:STDOUT: %Self: @J.require60000000.%J.type (%J.type.04e) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a60)]
|
||||
// CHECK:STDOUT: %Self: @J.Self.binding.as_type.impls.I.type.require.%J.type (%J.type.04e) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a60)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %I.type.loc5_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -294,7 +294,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T.loc4_13.1 => constants.%T
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.require60000000(constants.%T, constants.%Self.a60) {
|
||||
// CHECK:STDOUT: specific @J.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.a60) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %J.type => constants.%J.type.04e
|
||||
// CHECK:STDOUT: %Self => constants.%Self.a60
|
||||
@@ -336,8 +336,8 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %Main.J: %J.type.885 = import_ref Main//basic_import_generic_interface, J, loaded [concrete = constants.%J.generic]
|
||||
// CHECK:STDOUT: %Main.import_ref.3fa = import_ref Main//basic_import_generic_interface, loc3_23, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.1: type = import_ref Main//basic_import_generic_interface, loc3_13, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.2ff: type = import_ref Main//basic_import_generic_interface, loc5_18, loaded [symbolic = @J.require50000000.%Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Main.import_ref.358: type = import_ref Main//basic_import_generic_interface, loc5_27, loaded [symbolic = @J.require50000000.%I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: %Main.import_ref.2ff: type = import_ref Main//basic_import_generic_interface, loc5_18, loaded [symbolic = @J.Self.binding.as_type.impls.I.type.require.%Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Main.import_ref.358: type = import_ref Main//basic_import_generic_interface, loc5_27, loaded [symbolic = @J.Self.binding.as_type.impls.I.type.require.%I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//basic_import_generic_interface, loc4_13, loaded [symbolic = @J.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.99f: @J.%J.type (%J.type.04e) = import_ref Main//basic_import_generic_interface, loc4_23, loaded [symbolic = @J.%Self (constants.%Self.c25)]
|
||||
// CHECK:STDOUT: %Main.import_ref.e9b = import_ref Main//basic_import_generic_interface, loc4_23, unloaded
|
||||
@@ -400,16 +400,16 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @J.require50000000 {
|
||||
// CHECK:STDOUT: @J.Self.binding.as_type.impls.I.type.require {
|
||||
// CHECK:STDOUT: require imports.%Main.import_ref.2ff impls imports.%Main.import_ref.358
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @J.require50000000(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.99f: @J.%J.type (%J.type.04e)) [from "basic_import_generic_interface.carbon"] {
|
||||
// CHECK:STDOUT: generic require @J.Self.binding.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.99f: @J.%J.type (%J.type.04e)) [from "basic_import_generic_interface.carbon"] {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.04e)]
|
||||
// CHECK:STDOUT: %Self: @J.require50000000.%J.type (%J.type.04e) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.c25)]
|
||||
// CHECK:STDOUT: %Self: @J.Self.binding.as_type.impls.I.type.require.%J.type (%J.type.04e) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.c25)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -458,7 +458,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.require50000000(constants.%T, constants.%Self.c25) {
|
||||
// CHECK:STDOUT: specific @J.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.c25) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %J.type => constants.%J.type.04e
|
||||
// CHECK:STDOUT: %Self => constants.%Self.c25
|
||||
@@ -476,7 +476,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %require_complete => constants.%complete_type.5b1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.require50000000(constants.%empty_struct_type, constants.%C.type.facet) {
|
||||
// CHECK:STDOUT: specific @J.Self.binding.as_type.impls.I.type.require(constants.%empty_struct_type, constants.%C.type.facet) {
|
||||
// CHECK:STDOUT: %T => constants.%empty_struct_type
|
||||
// CHECK:STDOUT: %J.type => constants.%J.type.d6f
|
||||
// CHECK:STDOUT: %Self => constants.%C.type.facet
|
||||
@@ -551,7 +551,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constraint {
|
||||
// CHECK:STDOUT: %Self.loc4_24.1: @J.%J.type (%J.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc4_24.2 (constants.%Self.31c)]
|
||||
// CHECK:STDOUT: %J.require70000000.decl = require_decl @J.require70000000 [concrete] {
|
||||
// CHECK:STDOUT: %J.Self.binding.as_type.impls.I.type.require.decl = require_decl @J.Self.binding.as_type.impls.I.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %I.type.loc5_27.1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @J.%Self.loc4_24.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -566,16 +566,16 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: .T = <poisoned>
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @J.require70000000 {
|
||||
// CHECK:STDOUT: require @J.require70000000.%Self.as_type impls @J.require70000000.%I.type.loc5_27.1
|
||||
// CHECK:STDOUT: @J.Self.binding.as_type.impls.I.type.require {
|
||||
// CHECK:STDOUT: require @J.Self.binding.as_type.impls.I.type.require.%Self.as_type impls @J.Self.binding.as_type.impls.I.type.require.%I.type.loc5_27.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @J.require70000000(@J.%T.loc4_14.2: type, @J.%Self.loc4_24.1: @J.%J.type (%J.type.d68)) {
|
||||
// CHECK:STDOUT: generic require @J.Self.binding.as_type.impls.I.type.require(@J.%T.loc4_14.2: type, @J.%Self.loc4_24.1: @J.%J.type (%J.type.d68)) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.d68)]
|
||||
// CHECK:STDOUT: %Self: @J.require70000000.%J.type (%J.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)]
|
||||
// CHECK:STDOUT: %Self: @J.Self.binding.as_type.impls.I.type.require.%J.type (%J.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %I.type.loc5_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -592,7 +592,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T.loc4_14.1 => constants.%T
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.require70000000(constants.%T, constants.%Self.31c) {
|
||||
// CHECK:STDOUT: specific @J.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %J.type => constants.%J.type.d68
|
||||
// CHECK:STDOUT: %Self => constants.%Self.31c
|
||||
@@ -631,8 +631,8 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %Main.J: %J.type.d08 = import_ref Main//basic_import_generic_constraint, J, loaded [concrete = constants.%empty_struct.d2a]
|
||||
// CHECK:STDOUT: %Main.import_ref.3fa = import_ref Main//basic_import_generic_constraint, loc3_23, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.1: type = import_ref Main//basic_import_generic_constraint, loc3_13, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//basic_import_generic_constraint, loc5_18, loaded [symbolic = @J.require48000000.%Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Main.import_ref.358: type = import_ref Main//basic_import_generic_constraint, loc5_27, loaded [symbolic = @J.require48000000.%I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//basic_import_generic_constraint, loc5_18, loaded [symbolic = @J.Self.binding.as_type.impls.I.type.require.%Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Main.import_ref.358: type = import_ref Main//basic_import_generic_constraint, loc5_27, loaded [symbolic = @J.Self.binding.as_type.impls.I.type.require.%I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//basic_import_generic_constraint, loc4_14, loaded [symbolic = @J.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.2fc: @J.%J.type (%J.type.d682d6.1) = import_ref Main//basic_import_generic_constraint, loc4_24, loaded [symbolic = @J.%Self (constants.%Self.e1f642.1)]
|
||||
// CHECK:STDOUT: %Main.import_ref.830 = import_ref Main//basic_import_generic_constraint, loc4_24, unloaded
|
||||
@@ -687,16 +687,16 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: .Self = imports.%Main.import_ref.830
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @J.require48000000 {
|
||||
// CHECK:STDOUT: @J.Self.binding.as_type.impls.I.type.require {
|
||||
// CHECK:STDOUT: require imports.%Main.import_ref.213 impls imports.%Main.import_ref.358
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @J.require48000000(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.2fc: @J.%J.type (%J.type.d682d6.1)) [from "basic_import_generic_constraint.carbon"] {
|
||||
// CHECK:STDOUT: generic require @J.Self.binding.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.2fc: @J.%J.type (%J.type.d682d6.1)) [from "basic_import_generic_constraint.carbon"] {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.d682d6.1)]
|
||||
// CHECK:STDOUT: %Self: @J.require48000000.%J.type (%J.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f642.1)]
|
||||
// CHECK:STDOUT: %Self: @J.Self.binding.as_type.impls.I.type.require.%J.type (%J.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f642.1)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -729,7 +729,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %Self => constants.%Self.c1b
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.require48000000(constants.%T, constants.%Self.e1f642.1) {
|
||||
// CHECK:STDOUT: specific @J.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.e1f642.1) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %J.type => constants.%J.type.d682d6.1
|
||||
// CHECK:STDOUT: %Self => constants.%Self.e1f642.1
|
||||
@@ -747,7 +747,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %require_complete => constants.%complete_type.5b1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.require48000000(constants.%empty_struct_type, constants.%C.type.facet) {
|
||||
// CHECK:STDOUT: specific @J.Self.binding.as_type.impls.I.type.require(constants.%empty_struct_type, constants.%C.type.facet) {
|
||||
// CHECK:STDOUT: %T => constants.%empty_struct_type
|
||||
// CHECK:STDOUT: %J.type => constants.%J.type.d682d6.2
|
||||
// CHECK:STDOUT: %Self => constants.%C.type.facet
|
||||
@@ -872,7 +872,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constraint {
|
||||
// CHECK:STDOUT: %Self.loc14_24.1: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self.31c)]
|
||||
// CHECK:STDOUT: %N.require68000000.decl = require_decl @N.require68000000 [concrete] {
|
||||
// CHECK:STDOUT: %N.Self.binding.as_type.impls.I.type.require.decl = require_decl @N.Self.binding.as_type.impls.I.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %I.type.loc15_27.1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @N.%Self.loc14_24.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -887,16 +887,16 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: .T = <poisoned>
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @N.require68000000 {
|
||||
// CHECK:STDOUT: require @N.require68000000.%Self.as_type impls @N.require68000000.%I.type.loc15_27.1
|
||||
// CHECK:STDOUT: @N.Self.binding.as_type.impls.I.type.require {
|
||||
// CHECK:STDOUT: require @N.Self.binding.as_type.impls.I.type.require.%Self.as_type impls @N.Self.binding.as_type.impls.I.type.require.%I.type.loc15_27.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @N.require68000000(@N.%T.loc14_14.2: type, @N.%Self.loc14_24.1: @N.%N.type (%N.type.d68)) {
|
||||
// CHECK:STDOUT: generic require @N.Self.binding.as_type.impls.I.type.require(@N.%T.loc14_14.2: type, @N.%Self.loc14_24.1: @N.%N.type (%N.type.d68)) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d68)]
|
||||
// CHECK:STDOUT: %Self: @N.require68000000.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)]
|
||||
// CHECK:STDOUT: %Self: @N.Self.binding.as_type.impls.I.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %I.type.loc15_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc15_27.2 (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -977,7 +977,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T.loc14_14.1 => constants.%T
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @N.require68000000(constants.%T, constants.%Self.31c) {
|
||||
// CHECK:STDOUT: specific @N.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %N.type => constants.%N.type.d68
|
||||
// CHECK:STDOUT: %Self => constants.%Self.31c
|
||||
@@ -1033,8 +1033,8 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %Main.import_ref.61cd7d.2: type = import_ref Main//import_generic, loc12_24, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.ada: type = import_ref Main//import_generic, loc12_33, loaded [symbolic = @C.as.I.impl.8159c7.1.%I.type (constants.%I.type.e19)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic, loc12_14, loaded [symbolic = @C.as.I.impl.8159c7.1.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//import_generic, loc15_18, loaded [symbolic = @N.require58000000.%Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Main.import_ref.3582b1.2: type = import_ref Main//import_generic, loc15_27, loaded [symbolic = @N.require58000000.%I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//import_generic, loc15_18, loaded [symbolic = @N.Self.binding.as_type.impls.I.type.require.%Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Main.import_ref.3582b1.2: type = import_ref Main//import_generic, loc15_27, loaded [symbolic = @N.Self.binding.as_type.impls.I.type.require.%I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//import_generic, loc14_14, loaded [symbolic = @N.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.2fc: @N.%N.type (%N.type.d682d6.1) = import_ref Main//import_generic, loc14_24, loaded [symbolic = @N.%Self (constants.%Self.e1f)]
|
||||
// CHECK:STDOUT: %Main.import_ref.830 = import_ref Main//import_generic, loc14_24, unloaded
|
||||
@@ -1144,16 +1144,16 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: .Self = imports.%Main.import_ref.830
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @N.require58000000 {
|
||||
// CHECK:STDOUT: @N.Self.binding.as_type.impls.I.type.require {
|
||||
// CHECK:STDOUT: require imports.%Main.import_ref.213 impls imports.%Main.import_ref.3582b1.2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @N.require58000000(imports.%Main.import_ref.b3bc94.4: type, imports.%Main.import_ref.2fc: @N.%N.type (%N.type.d682d6.1)) [from "import_generic.carbon"] {
|
||||
// CHECK:STDOUT: generic require @N.Self.binding.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.4: type, imports.%Main.import_ref.2fc: @N.%N.type (%N.type.d682d6.1)) [from "import_generic.carbon"] {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d682d6.1)]
|
||||
// CHECK:STDOUT: %Self: @N.require58000000.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f)]
|
||||
// CHECK:STDOUT: %Self: @N.Self.binding.as_type.impls.I.type.require.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1304,7 +1304,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @N.require58000000(constants.%T, constants.%Self.e1f) {
|
||||
// CHECK:STDOUT: specific @N.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.e1f) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1
|
||||
// CHECK:STDOUT: %Self => constants.%Self.e1f
|
||||
@@ -1312,7 +1312,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %I.type => constants.%I.type.1ab
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @N.require58000000(constants.%T, constants.%C.type.facet) {
|
||||
// CHECK:STDOUT: specific @N.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%C.type.facet) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1
|
||||
// CHECK:STDOUT: %Self => constants.%C.type.facet
|
||||
@@ -1329,7 +1329,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T => constants.%ptr
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @N.require58000000(constants.%ptr, constants.%C.type.facet) {
|
||||
// CHECK:STDOUT: specific @N.Self.binding.as_type.impls.I.type.require(constants.%ptr, constants.%C.type.facet) {
|
||||
// CHECK:STDOUT: %T => constants.%ptr
|
||||
// CHECK:STDOUT: %N.type => constants.%N.type.d682d6.2
|
||||
// CHECK:STDOUT: %Self => constants.%C.type.facet
|
||||
@@ -1426,7 +1426,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constraint {
|
||||
// CHECK:STDOUT: %Self.loc9_24.1: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc9_24.2 (constants.%Self.31c)]
|
||||
// CHECK:STDOUT: %N.require78000000.decl = require_decl @N.require78000000 [concrete] {
|
||||
// CHECK:STDOUT: %N.Self.binding.as_type.impls.I.type.require.decl = require_decl @N.Self.binding.as_type.impls.I.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %I.type.loc10_27.1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @N.%Self.loc9_24.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -1441,16 +1441,16 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: .T = <poisoned>
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @N.require78000000 {
|
||||
// CHECK:STDOUT: require @N.require78000000.%Self.as_type impls @N.require78000000.%I.type.loc10_27.1
|
||||
// CHECK:STDOUT: @N.Self.binding.as_type.impls.I.type.require {
|
||||
// CHECK:STDOUT: require @N.Self.binding.as_type.impls.I.type.require.%Self.as_type impls @N.Self.binding.as_type.impls.I.type.require.%I.type.loc10_27.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @N.require78000000(@N.%T.loc9_14.2: type, @N.%Self.loc9_24.1: @N.%N.type (%N.type.d68)) {
|
||||
// CHECK:STDOUT: generic require @N.Self.binding.as_type.impls.I.type.require(@N.%T.loc9_14.2: type, @N.%Self.loc9_24.1: @N.%N.type (%N.type.d68)) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d68)]
|
||||
// CHECK:STDOUT: %Self: @N.require78000000.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)]
|
||||
// CHECK:STDOUT: %Self: @N.Self.binding.as_type.impls.I.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %I.type.loc10_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc10_27.2 (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1498,7 +1498,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T.loc9_14.1 => constants.%T
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @N.require78000000(constants.%T, constants.%Self.31c) {
|
||||
// CHECK:STDOUT: specific @N.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %N.type => constants.%N.type.d68
|
||||
// CHECK:STDOUT: %Self => constants.%Self.31c
|
||||
@@ -1555,8 +1555,8 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %Main.import_ref.61c: type = import_ref Main//import_generic_with_different_specific, loc7_24, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.3582b1.1: type = import_ref Main//import_generic_with_different_specific, loc7_32, loaded [symbolic = @C.as.I.impl.431.%I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//import_generic_with_different_specific, loc7_14, loaded [symbolic = @C.as.I.impl.431.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//import_generic_with_different_specific, loc10_18, loaded [symbolic = @N.require44000000.%Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Main.import_ref.3582b1.2: type = import_ref Main//import_generic_with_different_specific, loc10_27, loaded [symbolic = @N.require44000000.%I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//import_generic_with_different_specific, loc10_18, loaded [symbolic = @N.Self.binding.as_type.impls.I.type.require.%Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Main.import_ref.3582b1.2: type = import_ref Main//import_generic_with_different_specific, loc10_27, loaded [symbolic = @N.Self.binding.as_type.impls.I.type.require.%I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic_with_different_specific, loc9_14, loaded [symbolic = @N.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.2fc: @N.%N.type (%N.type.d682d6.1) = import_ref Main//import_generic_with_different_specific, loc9_24, loaded [symbolic = @N.%Self (constants.%Self.e1f642.1)]
|
||||
// CHECK:STDOUT: %Main.import_ref.830 = import_ref Main//import_generic_with_different_specific, loc9_24, unloaded
|
||||
@@ -1626,16 +1626,16 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: .Self = imports.%Main.import_ref.830
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @N.require44000000 {
|
||||
// CHECK:STDOUT: @N.Self.binding.as_type.impls.I.type.require {
|
||||
// CHECK:STDOUT: require imports.%Main.import_ref.213 impls imports.%Main.import_ref.3582b1.2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @N.require44000000(imports.%Main.import_ref.b3bc94.3: type, imports.%Main.import_ref.2fc: @N.%N.type (%N.type.d682d6.1)) [from "import_generic_with_different_specific.carbon"] {
|
||||
// CHECK:STDOUT: generic require @N.Self.binding.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.3: type, imports.%Main.import_ref.2fc: @N.%N.type (%N.type.d682d6.1)) [from "import_generic_with_different_specific.carbon"] {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d682d6.1)]
|
||||
// CHECK:STDOUT: %Self: @N.require44000000.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f642.1)]
|
||||
// CHECK:STDOUT: %Self: @N.Self.binding.as_type.impls.I.type.require.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f642.1)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1731,7 +1731,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @N.require44000000(constants.%T, constants.%Self.e1f642.1) {
|
||||
// CHECK:STDOUT: specific @N.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.e1f642.1) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1
|
||||
// CHECK:STDOUT: %Self => constants.%Self.e1f642.1
|
||||
@@ -1749,7 +1749,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %require_complete => constants.%require_complete.ea6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @N.require44000000(constants.%ptr.125, constants.%C.type.facet) {
|
||||
// CHECK:STDOUT: specific @N.Self.binding.as_type.impls.I.type.require(constants.%ptr.125, constants.%C.type.facet) {
|
||||
// CHECK:STDOUT: %T => constants.%ptr.125
|
||||
// CHECK:STDOUT: %N.type => constants.%N.type.d682d6.2
|
||||
// CHECK:STDOUT: %Self => constants.%C.type.facet
|
||||
@@ -1866,7 +1866,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constraint {
|
||||
// CHECK:STDOUT: %Self.loc7_24.1: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self.31c)]
|
||||
// CHECK:STDOUT: %N.require64000000.decl = require_decl @N.require64000000 [concrete] {
|
||||
// CHECK:STDOUT: %N.Self.binding.as_type.impls.J.type.require.decl = require_decl @N.Self.binding.as_type.impls.J.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %J.type.loc8_27.1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @N.%Self.loc7_24.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -1881,16 +1881,16 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: .T = <poisoned>
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @N.require64000000 {
|
||||
// CHECK:STDOUT: require @N.require64000000.%Self.as_type impls @N.require64000000.%J.type.loc8_27.1
|
||||
// CHECK:STDOUT: @N.Self.binding.as_type.impls.J.type.require {
|
||||
// CHECK:STDOUT: require @N.Self.binding.as_type.impls.J.type.require.%Self.as_type impls @N.Self.binding.as_type.impls.J.type.require.%J.type.loc8_27.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @N.require64000000(@N.%T.loc7_14.2: type, @N.%Self.loc7_24.1: @N.%N.type (%N.type.d68)) {
|
||||
// CHECK:STDOUT: generic require @N.Self.binding.as_type.impls.J.type.require(@N.%T.loc7_14.2: type, @N.%Self.loc7_24.1: @N.%N.type (%N.type.d68)) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d68)]
|
||||
// CHECK:STDOUT: %Self: @N.require64000000.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)]
|
||||
// CHECK:STDOUT: %Self: @N.Self.binding.as_type.impls.J.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %J.type.loc8_27.2: type = facet_type <@J, @J(%T)> [symbolic = %J.type.loc8_27.2 (constants.%J.type.04e)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1932,7 +1932,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T.loc7_14.1 => constants.%T
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @N.require64000000(constants.%T, constants.%Self.31c) {
|
||||
// CHECK:STDOUT: specific @N.Self.binding.as_type.impls.J.type.require(constants.%T, constants.%Self.31c) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %N.type => constants.%N.type.d68
|
||||
// CHECK:STDOUT: %Self => constants.%Self.31c
|
||||
@@ -2001,8 +2001,8 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %Main.import_ref.4ae308.2: type = import_ref Main//import_generic_decl, loc21_24, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %Main.import_ref.739: type = import_ref Main//import_generic_decl, loc21_33, loaded [symbolic = @D.as.J.impl.f050b9.1.%J.type (constants.%J.type.80f)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic_decl, loc21_14, loaded [symbolic = @D.as.J.impl.f050b9.1.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//import_generic_decl, loc8_18, loaded [symbolic = @N.require54000000.%Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Main.import_ref.f2a55c.2: type = import_ref Main//import_generic_decl, loc8_27, loaded [symbolic = @N.require54000000.%J.type (constants.%J.type.04e)]
|
||||
// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//import_generic_decl, loc8_18, loaded [symbolic = @N.Self.binding.as_type.impls.J.type.require.%Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Main.import_ref.f2a55c.2: type = import_ref Main//import_generic_decl, loc8_27, loaded [symbolic = @N.Self.binding.as_type.impls.J.type.require.%J.type (constants.%J.type.04e)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//import_generic_decl, loc7_14, loaded [symbolic = @N.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.2fc: @N.%N.type (%N.type.d682d6.1) = import_ref Main//import_generic_decl, loc7_24, loaded [symbolic = @N.%Self (constants.%Self.e1f)]
|
||||
// CHECK:STDOUT: %Main.import_ref.830 = import_ref Main//import_generic_decl, loc7_24, unloaded
|
||||
@@ -2112,16 +2112,16 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: .Self = imports.%Main.import_ref.830
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @N.require54000000 {
|
||||
// CHECK:STDOUT: @N.Self.binding.as_type.impls.J.type.require {
|
||||
// CHECK:STDOUT: require imports.%Main.import_ref.213 impls imports.%Main.import_ref.f2a55c.2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @N.require54000000(imports.%Main.import_ref.b3bc94.4: type, imports.%Main.import_ref.2fc: @N.%N.type (%N.type.d682d6.1)) [from "fail_import_generic_decl.carbon"] {
|
||||
// CHECK:STDOUT: generic require @N.Self.binding.as_type.impls.J.type.require(imports.%Main.import_ref.b3bc94.4: type, imports.%Main.import_ref.2fc: @N.%N.type (%N.type.d682d6.1)) [from "fail_import_generic_decl.carbon"] {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d682d6.1)]
|
||||
// CHECK:STDOUT: %Self: @N.require54000000.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f)]
|
||||
// CHECK:STDOUT: %Self: @N.Self.binding.as_type.impls.J.type.require.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.04e)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -2266,7 +2266,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @N.require54000000(constants.%T, constants.%Self.e1f) {
|
||||
// CHECK:STDOUT: specific @N.Self.binding.as_type.impls.J.type.require(constants.%T, constants.%Self.e1f) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1
|
||||
// CHECK:STDOUT: %Self => constants.%Self.e1f
|
||||
@@ -2274,7 +2274,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %J.type => constants.%J.type.04e
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @N.require54000000(constants.%T, constants.%D.type.facet) {
|
||||
// CHECK:STDOUT: specific @N.Self.binding.as_type.impls.J.type.require(constants.%T, constants.%D.type.facet) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1
|
||||
// CHECK:STDOUT: %Self => constants.%D.type.facet
|
||||
@@ -2291,7 +2291,7 @@ impl forall [T:! type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T => constants.%ptr
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @N.require54000000(constants.%ptr, constants.%D.type.facet) {
|
||||
// CHECK:STDOUT: specific @N.Self.binding.as_type.impls.J.type.require(constants.%ptr, constants.%D.type.facet) {
|
||||
// CHECK:STDOUT: %T => constants.%ptr
|
||||
// CHECK:STDOUT: %N.type => constants.%N.type.d682d6.2
|
||||
// CHECK:STDOUT: %Self => constants.%D.type.facet
|
||||
|
||||
+11
-11
@@ -796,7 +796,7 @@ interface B {
|
||||
// CHECK:STDOUT: %X1: type = assoc_const_decl @X1 [concrete] {
|
||||
// CHECK:STDOUT: %assoc0: %X.assoc_type = assoc_entity element0, @X.%X1 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %X.require54000001.decl = require_decl @X.require54000001 [concrete] {
|
||||
// CHECK:STDOUT: %X.Self.binding.as_type.impls.Y.type.require.decl = require_decl @X.Self.binding.as_type.impls.Y.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %Y.ref
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @X.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.806)]
|
||||
@@ -810,14 +810,14 @@ interface B {
|
||||
// CHECK:STDOUT: witness = (%X1)
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @X.require54000001 {
|
||||
// CHECK:STDOUT: require @X.require54000001.%Self.as_type impls @X.require54000001.%Y.ref
|
||||
// CHECK:STDOUT: @X.Self.binding.as_type.impls.Y.type.require {
|
||||
// CHECK:STDOUT: require @X.Self.binding.as_type.impls.Y.type.require.%Self.as_type impls @X.Self.binding.as_type.impls.Y.type.require.%Y.ref
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constraint @Y {
|
||||
// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = constants.%Self.550]
|
||||
// CHECK:STDOUT: %Y.require54000000.decl = require_decl @Y.require54000000 [concrete] {
|
||||
// CHECK:STDOUT: %Y.Self.binding.as_type.impls.Z.type.require.decl = require_decl @Y.Self.binding.as_type.impls.Z.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %Z.ref
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Y.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.5cb)]
|
||||
@@ -829,17 +829,17 @@ interface B {
|
||||
// CHECK:STDOUT: .Z = <poisoned>
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Y.require54000000 {
|
||||
// CHECK:STDOUT: require @Y.require54000000.%Self.as_type impls @Y.require54000000.%Z.ref
|
||||
// CHECK:STDOUT: @Y.Self.binding.as_type.impls.Z.type.require {
|
||||
// CHECK:STDOUT: require @Y.Self.binding.as_type.impls.Z.type.require.%Self.as_type impls @Y.Self.binding.as_type.impls.Z.type.require.%Z.ref
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Y.require54000000(@Y.%Self: %Y.type) {
|
||||
// CHECK:STDOUT: generic require @Y.Self.binding.as_type.impls.Z.type.require(@Y.%Self: %Y.type) {
|
||||
// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.5cb)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @X.require54000001(@X.%Self: %X.type) {
|
||||
// CHECK:STDOUT: generic require @X.Self.binding.as_type.impls.Y.type.require(@X.%Self: %X.type) {
|
||||
// CHECK:STDOUT: %Self: %X.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.e52)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.806)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -859,19 +859,19 @@ interface B {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Y.require54000000(constants.%Self.550) {
|
||||
// CHECK:STDOUT: specific @Y.Self.binding.as_type.impls.Z.type.require(constants.%Self.550) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.550
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.5cb
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @X1(constants.%Self.e52) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Y.require54000000(constants.%Self.e52) {
|
||||
// CHECK:STDOUT: specific @Y.Self.binding.as_type.impls.Z.type.require(constants.%Self.e52) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.e52
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.806
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @X.require54000001(constants.%Self.e52) {
|
||||
// CHECK:STDOUT: specific @X.Self.binding.as_type.impls.Y.type.require(constants.%Self.e52) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.e52
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.806
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+7
-7
@@ -162,7 +162,7 @@ interface A(T:! type) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @A {
|
||||
// CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %A.require70000000.decl = require_decl @A.require70000000 [concrete] {
|
||||
// CHECK:STDOUT: %A.Self.binding.as_type.impls.A.type.require.decl = require_decl @A.Self.binding.as_type.impls.A.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %A.ref
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @A.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -177,12 +177,12 @@ interface A(T:! type) {
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @A.require70000000(@A.%Self: %A.type) {
|
||||
// CHECK:STDOUT: generic require @A.Self.binding.as_type.impls.A.type.require(@A.%Self: %A.type) {
|
||||
// CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @A.require70000000(constants.%Self) {
|
||||
// CHECK:STDOUT: specific @A.Self.binding.as_type.impls.A.type.require(constants.%Self) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
@@ -225,7 +225,7 @@ interface A(T:! type) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.loc3_23.1: @A.%A.type (%A.type.ade) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %A.require48000000.decl = require_decl @A.require48000000 [concrete] {
|
||||
// CHECK:STDOUT: %A.Self.binding.as_type.impls.A.type.require.decl = require_decl @A.Self.binding.as_type.impls.A.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %A.type.loc11_28
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @A.%Self.loc3_23.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -244,10 +244,10 @@ interface A(T:! type) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @A.require48000000(@A.%T.loc3_13.2: type, @A.%Self.loc3_23.1: @A.%A.type (%A.type.ade)) {
|
||||
// CHECK:STDOUT: generic require @A.Self.binding.as_type.impls.A.type.require(@A.%T.loc3_13.2: type, @A.%Self.loc3_23.1: @A.%A.type (%A.type.ade)) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %A.type.loc11_18: type = facet_type <@A, @A(%T)> [symbolic = %A.type.loc11_18 (constants.%A.type.ade)]
|
||||
// CHECK:STDOUT: %Self: @A.require48000000.%A.type.loc11_18 (%A.type.ade) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self: @A.Self.binding.as_type.impls.A.type.require.%A.type.loc11_18 (%A.type.ade) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -259,7 +259,7 @@ interface A(T:! type) {
|
||||
// CHECK:STDOUT: %T.loc3_13.1 => constants.%empty_struct_type
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @A.require48000000(constants.%T, constants.%Self) {
|
||||
// CHECK:STDOUT: specific @A.Self.binding.as_type.impls.A.type.require(constants.%T, constants.%Self) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %A.type.loc11_18 => constants.%A.type.ade
|
||||
// CHECK:STDOUT: %Self => constants.%Self
|
||||
|
||||
+44
-44
@@ -287,7 +287,7 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Z {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c59]
|
||||
// CHECK:STDOUT: %Z.require60000000.decl = require_decl @Z.require60000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.Self.binding.as_type.impls.Y.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %Y.ref
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -301,17 +301,17 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require60000000 {
|
||||
// CHECK:STDOUT: require @Z.require60000000.%Self.as_type impls @Z.require60000000.%Y.ref
|
||||
// CHECK:STDOUT: @Z.Self.binding.as_type.impls.Y.type.require {
|
||||
// CHECK:STDOUT: require @Z.Self.binding.as_type.impls.Y.type.require.%Self.as_type impls @Z.Self.binding.as_type.impls.Y.type.require.%Y.ref
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require60000000(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: generic require @Z.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require60000000(constants.%Self.c59) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y.type.require(constants.%Self.c59) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.c59
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
@@ -334,7 +334,7 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Z {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c59]
|
||||
// CHECK:STDOUT: %Z.require50000000.decl = require_decl @Z.require50000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.Self.binding.as_type.impls.Y.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %Y.ref
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -347,17 +347,17 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require50000000 {
|
||||
// CHECK:STDOUT: require @Z.require50000000.%Self.as_type impls @Z.require50000000.%Y.ref
|
||||
// CHECK:STDOUT: @Z.Self.binding.as_type.impls.Y.type.require {
|
||||
// CHECK:STDOUT: require @Z.Self.binding.as_type.impls.Y.type.require.%Self.as_type impls @Z.Self.binding.as_type.impls.Y.type.require.%Y.ref
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require50000000(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: generic require @Z.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require50000000(constants.%Self.c59) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y.type.require(constants.%Self.c59) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.c59
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
@@ -380,7 +380,7 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Z {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c59]
|
||||
// CHECK:STDOUT: %Z.require70000000.decl = require_decl @Z.require70000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.Self.binding.as_type.impls.Y.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %.loc9 impls %Y.ref
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.c59)]
|
||||
@@ -395,17 +395,17 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require70000000 {
|
||||
// CHECK:STDOUT: require @Z.require70000000.%.loc9 impls @Z.require70000000.%Y.ref
|
||||
// CHECK:STDOUT: @Z.Self.binding.as_type.impls.Y.type.require {
|
||||
// CHECK:STDOUT: require @Z.Self.binding.as_type.impls.Y.type.require.%.loc9 impls @Z.Self.binding.as_type.impls.Y.type.require.%Y.ref
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require70000000(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: generic require @Z.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require70000000(constants.%Self.c59) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y.type.require(constants.%Self.c59) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.c59
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
@@ -431,7 +431,7 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Z {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c59]
|
||||
// CHECK:STDOUT: %Z.require58000000.decl = require_decl @Z.require58000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.C.impls.Y.type.require.decl = require_decl @Z.C.impls.Y.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %C.loc9_17.1 impls %Y.ref
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic]
|
||||
@@ -449,18 +449,18 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require58000000 {
|
||||
// CHECK:STDOUT: require @Z.require58000000.%C.loc9_17.1 impls @Z.require58000000.%Y.ref
|
||||
// CHECK:STDOUT: @Z.C.impls.Y.type.require {
|
||||
// CHECK:STDOUT: require @Z.C.impls.Y.type.require.%C.loc9_17.1 impls @Z.C.impls.Y.type.require.%Y.ref
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require58000000(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: generic require @Z.C.impls.Y.type.require(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %C.loc9_17.2: type = class_type @C, @C(%Self.binding.as_type) [symbolic = %C.loc9_17.2 (constants.%C.42e)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require58000000(constants.%Self.c59) {
|
||||
// CHECK:STDOUT: specific @Z.C.impls.Y.type.require(constants.%Self.c59) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.c59
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: %C.loc9_17.2 => constants.%C.42e
|
||||
@@ -493,7 +493,7 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Z {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c59]
|
||||
// CHECK:STDOUT: %Z.require78000000.decl = require_decl @Z.require78000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.Self.binding.as_type.impls.Y_where.type.require.decl = require_decl @Z.Self.binding.as_type.impls.Y_where.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %.loc7_19
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -518,17 +518,17 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require78000000 {
|
||||
// CHECK:STDOUT: require @Z.require78000000.%Self.as_type impls @Z.require78000000.%.loc7_19
|
||||
// CHECK:STDOUT: @Z.Self.binding.as_type.impls.Y_where.type.require {
|
||||
// CHECK:STDOUT: require @Z.Self.binding.as_type.impls.Y_where.type.require.%Self.as_type impls @Z.Self.binding.as_type.impls.Y_where.type.require.%.loc7_19
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require78000000(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: generic require @Z.Self.binding.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require78000000(constants.%Self.c59) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y_where.type.require(constants.%Self.c59) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.c59
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
@@ -567,13 +567,13 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.loc4_23.1: @Z.%Z.type (%Z.type.0ed) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Z.require44000000.decl = require_decl @Z.require44000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.T.impls.Z.type.require.decl = require_decl @Z.T.impls.Z.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %T.ref impls %Z.type.loc5_25.1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %T.ref: type = name_ref T, @Z.%T.loc4_13.2 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %Z.ref: %Z.type.352 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic]
|
||||
// CHECK:STDOUT: %.loc5_21: @Z.require44000000.%Z.type.loc5_21 (%Z.type.0ed) = specific_constant @Z.%Self.loc4_23.1, @Z(constants.%T) [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.ref: @Z.require44000000.%Z.type.loc5_21 (%Z.type.0ed) = name_ref Self, %.loc5_21 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc5_21: @Z.T.impls.Z.type.require.%Z.type.loc5_21 (%Z.type.0ed) = specific_constant @Z.%Self.loc4_23.1, @Z(constants.%T) [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.ref: @Z.T.impls.Z.type.require.%Z.type.loc5_21 (%Z.type.0ed) = name_ref Self, %.loc5_21 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %.loc5_25: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Z.type.loc5_25.1: type = facet_type <@Z, @Z(constants.%Self.binding.as_type)> [symbolic = %Z.type.loc5_25.2 (constants.%Z.type.6aa)]
|
||||
@@ -586,16 +586,16 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require44000000 {
|
||||
// CHECK:STDOUT: require @Z.require44000000.%T.ref impls @Z.require44000000.%Z.type.loc5_25.1
|
||||
// CHECK:STDOUT: @Z.T.impls.Z.type.require {
|
||||
// CHECK:STDOUT: require @Z.T.impls.Z.type.require.%T.ref impls @Z.T.impls.Z.type.require.%Z.type.loc5_25.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require44000000(@Z.%T.loc4_13.2: type, @Z.%Self.loc4_23.1: @Z.%Z.type (%Z.type.0ed)) {
|
||||
// CHECK:STDOUT: generic require @Z.T.impls.Z.type.require(@Z.%T.loc4_13.2: type, @Z.%Self.loc4_23.1: @Z.%Z.type (%Z.type.0ed)) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %Z.type.loc5_21: type = facet_type <@Z, @Z(%T)> [symbolic = %Z.type.loc5_21 (constants.%Z.type.0ed)]
|
||||
// CHECK:STDOUT: %Self: @Z.require44000000.%Z.type.loc5_21 (%Z.type.0ed) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self: @Z.T.impls.Z.type.require.%Z.type.loc5_21 (%Z.type.0ed) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Z.type.loc5_25.2: type = facet_type <@Z, @Z(%Self.binding.as_type)> [symbolic = %Z.type.loc5_25.2 (constants.%Z.type.6aa)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -608,7 +608,7 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT: %T.loc4_13.1 => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require44000000(constants.%T, constants.%Self) {
|
||||
// CHECK:STDOUT: specific @Z.T.impls.Z.type.require(constants.%T, constants.%Self) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %Z.type.loc5_21 => constants.%Z.type.0ed
|
||||
// CHECK:STDOUT: %Self => constants.%Self
|
||||
@@ -641,7 +641,7 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Z {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c59]
|
||||
// CHECK:STDOUT: %Z.require7C000000.decl = require_decl @Z.require7C000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.Self.binding.as_type.impls.Y_where.type.require.decl = require_decl @Z.Self.binding.as_type.impls.Y_where.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type.loc10_11 impls %.loc10_19
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type.loc10_11: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -667,18 +667,18 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require7C000000 {
|
||||
// CHECK:STDOUT: require @Z.require7C000000.%Self.as_type.loc10_11 impls @Z.require7C000000.%.loc10_19
|
||||
// CHECK:STDOUT: @Z.Self.binding.as_type.impls.Y_where.type.require {
|
||||
// CHECK:STDOUT: require @Z.Self.binding.as_type.impls.Y_where.type.require.%Self.as_type.loc10_11 impls @Z.Self.binding.as_type.impls.Y_where.type.require.%.loc10_19
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require7C000000(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: generic require @Z.Self.binding.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y where constants.%impl.elem0 = %Self.binding.as_type> [symbolic = %Y_where.type (constants.%Y_where.type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require7C000000(constants.%Self.c59) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y_where.type.require(constants.%Self.c59) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.c59
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type
|
||||
@@ -717,7 +717,7 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.loc8_23.1: @Z.%Z.type (%Z.type.0ed) = symbolic_binding Self, 1 [symbolic = %Self.loc8_23.2 (constants.%Self.822)]
|
||||
// CHECK:STDOUT: %Z.require42000001.decl = require_decl @Z.require42000001 [concrete] {
|
||||
// CHECK:STDOUT: %Z.Self.binding.as_type.impls.Z.type.require.decl = require_decl @Z.Self.binding.as_type.impls.Z.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %Z.type.loc11_20
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self.loc8_23.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.b37)]
|
||||
@@ -733,16 +733,16 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require42000001 {
|
||||
// CHECK:STDOUT: require @Z.require42000001.%Self.as_type impls @Z.require42000001.%Z.type.loc11_20
|
||||
// CHECK:STDOUT: @Z.Self.binding.as_type.impls.Z.type.require {
|
||||
// CHECK:STDOUT: require @Z.Self.binding.as_type.impls.Z.type.require.%Self.as_type impls @Z.Self.binding.as_type.impls.Z.type.require.%Z.type.loc11_20
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require42000001(@Z.%T.loc8_13.2: type, @Z.%Self.loc8_23.1: @Z.%Z.type (%Z.type.0ed)) {
|
||||
// CHECK:STDOUT: generic require @Z.Self.binding.as_type.impls.Z.type.require(@Z.%T.loc8_13.2: type, @Z.%Self.loc8_23.1: @Z.%Z.type (%Z.type.0ed)) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %Z.type.loc11_11: type = facet_type <@Z, @Z(%T)> [symbolic = %Z.type.loc11_11 (constants.%Z.type.0ed)]
|
||||
// CHECK:STDOUT: %Self: @Z.require42000001.%Z.type.loc11_11 (%Z.type.0ed) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.822)]
|
||||
// CHECK:STDOUT: %Self: @Z.Self.binding.as_type.impls.Z.type.require.%Z.type.loc11_11 (%Z.type.0ed) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.822)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.b37)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -750,7 +750,7 @@ interface Z(T:! type) {
|
||||
// CHECK:STDOUT: %T.loc8_13.1 => constants.%T
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require42000001(constants.%T, constants.%Self.822) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Z.type.require(constants.%T, constants.%Self.822) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %Z.type.loc11_11 => constants.%Z.type.0ed
|
||||
// CHECK:STDOUT: %Self => constants.%Self.822
|
||||
|
||||
@@ -95,7 +95,7 @@ impl C as B {}
|
||||
// CHECK:STDOUT: %Main.I = import_ref Main//b, I, unloaded
|
||||
// CHECK:STDOUT: %Main.B: type = import_ref Main//b, B, loaded [concrete = constants.%B.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.c82 = import_ref Main//b, loc3_13, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.67f: type = import_ref Main//b, loc5_18, loaded [symbolic = @B.require48000000.%Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Main.import_ref.67f: type = import_ref Main//b, loc5_18, loaded [symbolic = @B.Self.binding.as_type.impls.I.type.require.%Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Main.import_ref.72a: type = import_ref Main//b, loc5_24, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.e33: %B.type = import_ref Main//b, loc4_14, loaded [symbolic = constants.%Self.f45]
|
||||
// CHECK:STDOUT: %Main.import_ref.65b = import_ref Main//b, loc4_14, unloaded
|
||||
@@ -133,12 +133,12 @@ impl C as B {}
|
||||
// CHECK:STDOUT: .Self = imports.%Main.import_ref.65b
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @B.require48000000 {
|
||||
// CHECK:STDOUT: @B.Self.binding.as_type.impls.I.type.require {
|
||||
// CHECK:STDOUT: require imports.%Main.import_ref.67f impls imports.%Main.import_ref.72a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @B.require48000000(imports.%Main.import_ref.e33: %B.type) [from "b.carbon"] {
|
||||
// CHECK:STDOUT: generic require @B.Self.binding.as_type.impls.I.type.require(imports.%Main.import_ref.e33: %B.type) [from "b.carbon"] {
|
||||
// CHECK:STDOUT: %Self: %B.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f45)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -154,7 +154,7 @@ impl C as B {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @B.require48000000(constants.%Self.f45) {
|
||||
// CHECK:STDOUT: specific @B.Self.binding.as_type.impls.I.type.require(constants.%Self.f45) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.f45
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+33
-33
@@ -439,7 +439,7 @@ fn F() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constraint @Z {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.550]
|
||||
// CHECK:STDOUT: %Z.require60000000.decl = require_decl @Z.require60000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.Self.binding.as_type.impls.Y.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %Y.ref
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -451,22 +451,22 @@ fn F() {
|
||||
// CHECK:STDOUT: .Y = <poisoned>
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require60000000 {
|
||||
// CHECK:STDOUT: require @Z.require60000000.%Self.as_type impls @Z.require60000000.%Y.ref
|
||||
// CHECK:STDOUT: @Z.Self.binding.as_type.impls.Y.type.require {
|
||||
// CHECK:STDOUT: require @Z.Self.binding.as_type.impls.Y.type.require.%Self.as_type impls @Z.Self.binding.as_type.impls.Y.type.require.%Y.ref
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require60000000(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: generic require @Z.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require60000000(constants.%Self.550) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y.type.require(constants.%Self.550) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.550
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require60000000(constants.%T) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y.type.require(constants.%T) {
|
||||
// CHECK:STDOUT: %Self => constants.%T
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
@@ -491,7 +491,7 @@ fn F() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constraint @Z {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.550]
|
||||
// CHECK:STDOUT: %Z.require50000000.decl = require_decl @Z.require50000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.Self.binding.as_type.impls.Y.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %Y.ref
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -503,22 +503,22 @@ fn F() {
|
||||
// CHECK:STDOUT: .Y = <poisoned>
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require50000000 {
|
||||
// CHECK:STDOUT: require @Z.require50000000.%Self.as_type impls @Z.require50000000.%Y.ref
|
||||
// CHECK:STDOUT: @Z.Self.binding.as_type.impls.Y.type.require {
|
||||
// CHECK:STDOUT: require @Z.Self.binding.as_type.impls.Y.type.require.%Self.as_type impls @Z.Self.binding.as_type.impls.Y.type.require.%Y.ref
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require50000000(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: generic require @Z.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require50000000(constants.%Self.550) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y.type.require(constants.%Self.550) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.550
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require50000000(constants.%T) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y.type.require(constants.%T) {
|
||||
// CHECK:STDOUT: %Self => constants.%T
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
@@ -543,7 +543,7 @@ fn F() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constraint @Z {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.550]
|
||||
// CHECK:STDOUT: %Z.require70000000.decl = require_decl @Z.require70000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.Self.binding.as_type.impls.Y.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %.loc9 impls %Y.ref
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.550)]
|
||||
@@ -557,22 +557,22 @@ fn F() {
|
||||
// CHECK:STDOUT: .Y = <poisoned>
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require70000000 {
|
||||
// CHECK:STDOUT: require @Z.require70000000.%.loc9 impls @Z.require70000000.%Y.ref
|
||||
// CHECK:STDOUT: @Z.Self.binding.as_type.impls.Y.type.require {
|
||||
// CHECK:STDOUT: require @Z.Self.binding.as_type.impls.Y.type.require.%.loc9 impls @Z.Self.binding.as_type.impls.Y.type.require.%Y.ref
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require70000000(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: generic require @Z.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require70000000(constants.%Self.550) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y.type.require(constants.%Self.550) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.550
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require70000000(constants.%T) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y.type.require(constants.%T) {
|
||||
// CHECK:STDOUT: %Self => constants.%T
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
@@ -598,7 +598,7 @@ fn F() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constraint @Z {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.550]
|
||||
// CHECK:STDOUT: %Z.require58000000.decl = require_decl @Z.require58000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.C.impls.Y.type.require.decl = require_decl @Z.C.impls.Y.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %C.loc9_17.1 impls %Y.ref
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic]
|
||||
@@ -615,18 +615,18 @@ fn F() {
|
||||
// CHECK:STDOUT: .Y = <poisoned>
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require58000000 {
|
||||
// CHECK:STDOUT: require @Z.require58000000.%C.loc9_17.1 impls @Z.require58000000.%Y.ref
|
||||
// CHECK:STDOUT: @Z.C.impls.Y.type.require {
|
||||
// CHECK:STDOUT: require @Z.C.impls.Y.type.require.%C.loc9_17.1 impls @Z.C.impls.Y.type.require.%Y.ref
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require58000000(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: generic require @Z.C.impls.Y.type.require(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %C.loc9_17.2: type = class_type @C, @C(%Self.binding.as_type) [symbolic = %C.loc9_17.2 (constants.%C.237)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require58000000(constants.%Self.550) {
|
||||
// CHECK:STDOUT: specific @Z.C.impls.Y.type.require(constants.%Self.550) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.550
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: %C.loc9_17.2 => constants.%C.237
|
||||
@@ -659,7 +659,7 @@ fn F() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constraint @Z {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.550]
|
||||
// CHECK:STDOUT: %Z.require78000000.decl = require_decl @Z.require78000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.Self.binding.as_type.impls.Y_where.type.require.decl = require_decl @Z.Self.binding.as_type.impls.Y_where.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type impls %.loc7_19
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -683,17 +683,17 @@ fn F() {
|
||||
// CHECK:STDOUT: .Y = <poisoned>
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require78000000 {
|
||||
// CHECK:STDOUT: require @Z.require78000000.%Self.as_type impls @Z.require78000000.%.loc7_19
|
||||
// CHECK:STDOUT: @Z.Self.binding.as_type.impls.Y_where.type.require {
|
||||
// CHECK:STDOUT: require @Z.Self.binding.as_type.impls.Y_where.type.require.%Self.as_type impls @Z.Self.binding.as_type.impls.Y_where.type.require.%.loc7_19
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require78000000(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: generic require @Z.Self.binding.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require78000000(constants.%Self.550) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y_where.type.require(constants.%Self.550) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.550
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: }
|
||||
@@ -868,7 +868,7 @@ fn F() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constraint @Z {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.550]
|
||||
// CHECK:STDOUT: %Z.require62000000.decl = require_decl @Z.require62000000 [concrete] {
|
||||
// CHECK:STDOUT: %Z.Self.binding.as_type.impls.Y_where.type.require.decl = require_decl @Z.Self.binding.as_type.impls.Y_where.type.require [concrete] {
|
||||
// CHECK:STDOUT: require %Self.as_type.loc10_11 impls %.loc10_19
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.as_type.loc10_11: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
@@ -893,18 +893,18 @@ fn F() {
|
||||
// CHECK:STDOUT: .Y = <poisoned>
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !requires:
|
||||
// CHECK:STDOUT: @Z.require62000000 {
|
||||
// CHECK:STDOUT: require @Z.require62000000.%Self.as_type.loc10_11 impls @Z.require62000000.%.loc10_19
|
||||
// CHECK:STDOUT: @Z.Self.binding.as_type.impls.Y_where.type.require {
|
||||
// CHECK:STDOUT: require @Z.Self.binding.as_type.impls.Y_where.type.require.%Self.as_type.loc10_11 impls @Z.Self.binding.as_type.impls.Y_where.type.require.%.loc10_19
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic require @Z.require62000000(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: generic require @Z.Self.binding.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) {
|
||||
// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)]
|
||||
// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
|
||||
// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y where constants.%impl.elem0 = %Self.binding.as_type> [symbolic = %Y_where.type (constants.%Y_where.type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.require62000000(constants.%Self.550) {
|
||||
// CHECK:STDOUT: specific @Z.Self.binding.as_type.impls.Y_where.type.require(constants.%Self.550) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.550
|
||||
// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
|
||||
// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type
|
||||
|
||||
@@ -618,12 +618,36 @@ auto InstNamer::PushEntity(RequireImplsId require_impls_id, ScopeId scope_id,
|
||||
|
||||
auto scope_prefix = GetNameForParentNameScope(require.parent_scope_id);
|
||||
|
||||
llvm::StringRef self_name;
|
||||
auto self_const_id =
|
||||
sem_ir_->constant_values().GetConstantInstId(require.self_id);
|
||||
auto self_index = sem_ir_->insts().GetRawIndex(self_const_id);
|
||||
if (IsSingletonInstId(self_const_id)) {
|
||||
self_name = sem_ir_->insts().Get(self_const_id).kind().ir_name();
|
||||
} else if (const auto& inst_name = insts_[self_index].second) {
|
||||
self_name = inst_name.GetBaseName();
|
||||
} else {
|
||||
self_name = "<unexpected self>";
|
||||
}
|
||||
|
||||
llvm::StringRef facet_type_name;
|
||||
auto facet_type_const_id =
|
||||
sem_ir_->constant_values().GetConstantInstId(require.facet_type_inst_id);
|
||||
auto facet_type_index = sem_ir_->insts().GetRawIndex(facet_type_const_id);
|
||||
if (IsSingletonInstId(facet_type_const_id)) {
|
||||
facet_type_name =
|
||||
sem_ir_->insts().Get(facet_type_const_id).kind().ir_name();
|
||||
} else if (const auto& inst_name = insts_[facet_type_index].second) {
|
||||
facet_type_name = inst_name.GetBaseName();
|
||||
} else {
|
||||
facet_type_name = "<unexpected facet type>";
|
||||
}
|
||||
|
||||
scope.name = globals_.AllocateName(
|
||||
*this, require_loc,
|
||||
// TODO: Include the Interface being required if there's only one, instead
|
||||
// of the index.
|
||||
llvm::formatv("{0}{1}{2}", scope_prefix, scope_prefix.empty() ? "" : ".",
|
||||
require_impls_id));
|
||||
llvm::formatv("{0}{1}{2}.impls.{3}.require", scope_prefix,
|
||||
scope_prefix.empty() ? "" : ".", self_name,
|
||||
facet_type_name));
|
||||
|
||||
auto decl = sem_ir_->insts().GetAs<SemIR::RequireImplsDecl>(require.decl_id);
|
||||
AddBlockLabel(scope_id, decl.decl_block_id, "require", require_loc);
|
||||
|
||||
Reference in New Issue
Block a user