|
|
@@ -110,17 +110,17 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.25f [symbolic]
|
|
|
// CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic]
|
|
|
// CHECK:STDOUT: %T.patt.e01: type = symbolic_binding_pattern T, 0 [symbolic]
|
|
|
-// CHECK:STDOUT: %impl_witness.db8: <witness> = impl_witness (imports.%Core.import_ref.1e6), @impl(%T.8b3) [symbolic]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness_table = impl_witness_table (imports.%Core.import_ref.1e6), @impl [concrete]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness.b7b: <witness> = impl_witness %BitAnd.impl_witness_table, @impl(%T.8b3) [symbolic]
|
|
|
// CHECK:STDOUT: %Op.type.f99: type = fn_type @Op.2, @impl(%T.8b3) [symbolic]
|
|
|
// CHECK:STDOUT: %Op.05a: %Op.type.f99 = struct_value () [symbolic]
|
|
|
// CHECK:STDOUT: %require_complete.4ae: <witness> = require_complete_type %T.8b3 [symbolic]
|
|
|
-// CHECK:STDOUT: %impl_witness.3ea: <witness> = impl_witness (imports.%Core.import_ref.1e6), @impl(type) [concrete]
|
|
|
-// CHECK:STDOUT: %impl_witness.b81: <witness> = impl_witness (imports.%Core.import_ref.bd4), @impl(%T.8b3) [symbolic]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness.0e5: <witness> = impl_witness %BitAnd.impl_witness_table, @impl(type) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.eb8: type = fn_type @Op.2, @impl(type) [concrete]
|
|
|
// CHECK:STDOUT: %Op.444: %Op.type.eb8 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness type [concrete]
|
|
|
-// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, (%impl_witness.3ea) [concrete]
|
|
|
-// CHECK:STDOUT: %.2ac: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete]
|
|
|
+// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, (%BitAnd.impl_witness.0e5) [concrete]
|
|
|
+// CHECK:STDOUT: %.518: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete]
|
|
|
// CHECK:STDOUT: %Op.bound: <bound method> = bound_method %Animal.type, %Op.444 [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn: <specific function> = specific_function %Op.444, @Op.2(type) [concrete]
|
|
|
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %Animal.type, %Op.specific_fn [concrete]
|
|
|
@@ -145,11 +145,10 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0]
|
|
|
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
|
|
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f]
|
|
|
-// CHECK:STDOUT: %Core.import_ref.51c: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.b81)]
|
|
|
+// CHECK:STDOUT: %Core.import_ref.140: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.%BitAnd.impl_witness (constants.%BitAnd.impl_witness.b7b)]
|
|
|
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.%T (constants.%T.8b3)]
|
|
|
// CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.%T (constants.%T.8b3)]
|
|
|
// CHECK:STDOUT: %Core.import_ref.9c1: type = import_ref Core//prelude, loc21_29, loaded [concrete = constants.%BitAnd.type]
|
|
|
-// CHECK:STDOUT: %Core.import_ref.1e6: @impl.%Op.type (%Op.type.f99) = import_ref Core//prelude, loc22_42, loaded [symbolic = @impl.%Op (constants.%Op.05a)]
|
|
|
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.%T (constants.%T.8b3)]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -187,7 +186,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.3 [concrete = constants.%facet_type] {
|
|
|
// CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type]
|
|
|
// CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type]
|
|
|
-// CHECK:STDOUT: %impl.elem0: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444]
|
|
|
+// CHECK:STDOUT: %impl.elem0: %.518 = impl_witness_access constants.%BitAnd.impl_witness.0e5, element0 [concrete = constants.%Op.444]
|
|
|
// CHECK:STDOUT: %bound_method.loc8_28.1: <bound method> = bound_method %Animal.ref, %impl.elem0 [concrete = constants.%Op.bound]
|
|
|
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @Op.2(type) [concrete = constants.%Op.specific_fn]
|
|
|
// CHECK:STDOUT: %bound_method.loc8_28.2: <bound method> = bound_method %Animal.ref, %specific_fn [concrete = constants.%bound_method]
|
|
|
@@ -232,7 +231,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: generic impl @impl(imports.%Core.import_ref.5ab3ec.1: type) [from "include_files/facet_types.carbon"] {
|
|
|
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.8b3)]
|
|
|
// CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt.e01)]
|
|
|
-// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (imports.%Core.import_ref.1e6), @impl(%T) [symbolic = %impl_witness (constants.%impl_witness.db8)]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness: <witness> = impl_witness constants.%BitAnd.impl_witness_table, @impl(%T) [symbolic = %BitAnd.impl_witness (constants.%BitAnd.impl_witness.b7b)]
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%T) [symbolic = %Op.type (constants.%Op.type.f99)]
|
|
|
@@ -241,7 +240,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: impl: imports.%Core.import_ref.583 as imports.%Core.import_ref.9c1 {
|
|
|
// CHECK:STDOUT: !members:
|
|
|
-// CHECK:STDOUT: witness = imports.%Core.import_ref.51c
|
|
|
+// CHECK:STDOUT: witness = imports.%Core.import_ref.140
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -315,7 +314,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: specific @impl(constants.%T.8b3) {
|
|
|
// CHECK:STDOUT: %T => constants.%T.8b3
|
|
|
// CHECK:STDOUT: %T.patt => constants.%T.patt.e01
|
|
|
-// CHECK:STDOUT: %impl_witness => constants.%impl_witness.db8
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness => constants.%BitAnd.impl_witness.b7b
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: specific @impl(%T) {}
|
|
|
@@ -327,7 +326,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: specific @impl(type) {
|
|
|
// CHECK:STDOUT: %T => type
|
|
|
// CHECK:STDOUT: %T.patt => constants.%T.patt.e01
|
|
|
-// CHECK:STDOUT: %impl_witness => constants.%impl_witness.3ea
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness => constants.%BitAnd.impl_witness.0e5
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT: %Op.type => constants.%Op.type.eb8
|
|
|
@@ -376,17 +375,17 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.25f [symbolic]
|
|
|
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic]
|
|
|
// CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic]
|
|
|
-// CHECK:STDOUT: %impl_witness.db8: <witness> = impl_witness (imports.%Core.import_ref.1e6), @impl(%T) [symbolic]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness_table = impl_witness_table (imports.%Core.import_ref.1e6), @impl [concrete]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness.b7b: <witness> = impl_witness %BitAnd.impl_witness_table, @impl(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %Op.type.f99: type = fn_type @Op.2, @impl(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %Op.05a: %Op.type.f99 = struct_value () [symbolic]
|
|
|
// CHECK:STDOUT: %require_complete.4ae: <witness> = require_complete_type %T [symbolic]
|
|
|
-// CHECK:STDOUT: %impl_witness.3ea: <witness> = impl_witness (imports.%Core.import_ref.1e6), @impl(type) [concrete]
|
|
|
-// CHECK:STDOUT: %impl_witness.b81: <witness> = impl_witness (imports.%Core.import_ref.bd4), @impl(%T) [symbolic]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness.0e5: <witness> = impl_witness %BitAnd.impl_witness_table, @impl(type) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.eb8: type = fn_type @Op.2, @impl(type) [concrete]
|
|
|
// CHECK:STDOUT: %Op.444: %Op.type.eb8 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness type [concrete]
|
|
|
-// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, (%impl_witness.3ea) [concrete]
|
|
|
-// CHECK:STDOUT: %.2ac: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete]
|
|
|
+// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, (%BitAnd.impl_witness.0e5) [concrete]
|
|
|
+// CHECK:STDOUT: %.518: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete]
|
|
|
// CHECK:STDOUT: %Op.bound.9f8: <bound method> = bound_method %Tame.type, %Op.444 [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn: <specific function> = specific_function %Op.444, @Op.2(type) [concrete]
|
|
|
// CHECK:STDOUT: %bound_method.a56: <bound method> = bound_method %Tame.type, %Op.specific_fn [concrete]
|
|
|
@@ -424,11 +423,10 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0]
|
|
|
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
|
|
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f]
|
|
|
-// CHECK:STDOUT: %Core.import_ref.51c: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.b81)]
|
|
|
+// CHECK:STDOUT: %Core.import_ref.140: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.%BitAnd.impl_witness (constants.%BitAnd.impl_witness.b7b)]
|
|
|
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.%T (constants.%T)]
|
|
|
// CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.%T (constants.%T)]
|
|
|
// CHECK:STDOUT: %Core.import_ref.9c1: type = import_ref Core//prelude, loc21_29, loaded [concrete = constants.%BitAnd.type]
|
|
|
-// CHECK:STDOUT: %Core.import_ref.1e6: @impl.%Op.type (%Op.type.f99) = import_ref Core//prelude, loc22_42, loaded [symbolic = @impl.%Op (constants.%Op.05a)]
|
|
|
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.%T (constants.%T)]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -453,7 +451,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %.loc7_22.1: type = splice_block %.loc7_22.3 [concrete = constants.%facet_type.6ff] {
|
|
|
// CHECK:STDOUT: %Tame.ref: type = name_ref Tame, file.%Tame.decl [concrete = constants.%Tame.type]
|
|
|
// CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type]
|
|
|
-// CHECK:STDOUT: %impl.elem0: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444]
|
|
|
+// CHECK:STDOUT: %impl.elem0: %.518 = impl_witness_access constants.%BitAnd.impl_witness.0e5, element0 [concrete = constants.%Op.444]
|
|
|
// CHECK:STDOUT: %bound_method.loc7_22.1: <bound method> = bound_method %Tame.ref, %impl.elem0 [concrete = constants.%Op.bound.9f8]
|
|
|
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @Op.2(type) [concrete = constants.%Op.specific_fn]
|
|
|
// CHECK:STDOUT: %bound_method.loc7_22.2: <bound method> = bound_method %Tame.ref, %specific_fn [concrete = constants.%bound_method.a56]
|
|
|
@@ -478,13 +476,13 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %.loc9_39.1: type = splice_block %.loc9_39.3 [concrete = constants.%facet_type.a95] {
|
|
|
// CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type]
|
|
|
// CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type]
|
|
|
-// CHECK:STDOUT: %impl.elem0.loc9_30: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444]
|
|
|
+// CHECK:STDOUT: %impl.elem0.loc9_30: %.518 = impl_witness_access constants.%BitAnd.impl_witness.0e5, element0 [concrete = constants.%Op.444]
|
|
|
// CHECK:STDOUT: %bound_method.loc9_30.1: <bound method> = bound_method %Eats.ref, %impl.elem0.loc9_30 [concrete = constants.%Op.bound.d46]
|
|
|
// CHECK:STDOUT: %specific_fn.loc9_30: <specific function> = specific_function %impl.elem0.loc9_30, @Op.2(type) [concrete = constants.%Op.specific_fn]
|
|
|
// CHECK:STDOUT: %bound_method.loc9_30.2: <bound method> = bound_method %Eats.ref, %specific_fn.loc9_30 [concrete = constants.%bound_method.f8f]
|
|
|
// CHECK:STDOUT: %type.and.loc9_30: init type = call %bound_method.loc9_30.2(%Eats.ref, %Animal.ref) [concrete = constants.%facet_type.c3f]
|
|
|
// CHECK:STDOUT: %Tame.ref: type = name_ref Tame, file.%Tame.decl [concrete = constants.%Tame.type]
|
|
|
-// CHECK:STDOUT: %impl.elem0.loc9_39: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444]
|
|
|
+// CHECK:STDOUT: %impl.elem0.loc9_39: %.518 = impl_witness_access constants.%BitAnd.impl_witness.0e5, element0 [concrete = constants.%Op.444]
|
|
|
// CHECK:STDOUT: %bound_method.loc9_39.1: <bound method> = bound_method %type.and.loc9_30, %impl.elem0.loc9_39 [concrete = constants.%Op.bound.c0a]
|
|
|
// CHECK:STDOUT: %specific_fn.loc9_39: <specific function> = specific_function %impl.elem0.loc9_39, @Op.2(type) [concrete = constants.%Op.specific_fn]
|
|
|
// CHECK:STDOUT: %bound_method.loc9_39.2: <bound method> = bound_method %type.and.loc9_30, %specific_fn.loc9_39 [concrete = constants.%bound_method.7fc]
|
|
|
@@ -539,7 +537,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: generic impl @impl(imports.%Core.import_ref.5ab3ec.1: type) [from "include_files/facet_types.carbon"] {
|
|
|
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)]
|
|
|
// CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)]
|
|
|
-// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (imports.%Core.import_ref.1e6), @impl(%T) [symbolic = %impl_witness (constants.%impl_witness.db8)]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness: <witness> = impl_witness constants.%BitAnd.impl_witness_table, @impl(%T) [symbolic = %BitAnd.impl_witness (constants.%BitAnd.impl_witness.b7b)]
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%T) [symbolic = %Op.type (constants.%Op.type.f99)]
|
|
|
@@ -548,7 +546,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: impl: imports.%Core.import_ref.583 as imports.%Core.import_ref.9c1 {
|
|
|
// CHECK:STDOUT: !members:
|
|
|
-// CHECK:STDOUT: witness = imports.%Core.import_ref.51c
|
|
|
+// CHECK:STDOUT: witness = imports.%Core.import_ref.140
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -619,7 +617,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: specific @impl(constants.%T) {
|
|
|
// CHECK:STDOUT: %T => constants.%T
|
|
|
// CHECK:STDOUT: %T.patt => constants.%T.patt
|
|
|
-// CHECK:STDOUT: %impl_witness => constants.%impl_witness.db8
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness => constants.%BitAnd.impl_witness.b7b
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: specific @impl(%T) {}
|
|
|
@@ -631,7 +629,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: specific @impl(type) {
|
|
|
// CHECK:STDOUT: %T => type
|
|
|
// CHECK:STDOUT: %T.patt => constants.%T.patt
|
|
|
-// CHECK:STDOUT: %impl_witness => constants.%impl_witness.3ea
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness => constants.%BitAnd.impl_witness.0e5
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT: %Op.type => constants.%Op.type.eb8
|
|
|
@@ -680,7 +678,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %A: %Animal.type = bind_symbolic_name A, 0 [symbolic]
|
|
|
// CHECK:STDOUT: %A.patt: %Animal.type = symbolic_binding_pattern A, 0 [symbolic]
|
|
|
// CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic]
|
|
|
-// CHECK:STDOUT: %impl_witness.110: <witness> = impl_witness (), @impl.e7b(%A) [symbolic]
|
|
|
+// CHECK:STDOUT: %Eats.impl_witness.8ab: <witness> = impl_witness file.%Eats.impl_witness_table, @impl.e7b(%A) [symbolic]
|
|
|
// CHECK:STDOUT: %BitAnd.type: type = facet_type <@BitAnd> [concrete]
|
|
|
// CHECK:STDOUT: %Self.25f: %BitAnd.type = bind_symbolic_name Self, 0 [symbolic]
|
|
|
// CHECK:STDOUT: %BitAnd.assoc_type: type = assoc_entity_type @BitAnd [concrete]
|
|
|
@@ -690,17 +688,17 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.25f [symbolic]
|
|
|
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic]
|
|
|
// CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic]
|
|
|
-// CHECK:STDOUT: %impl_witness.db8: <witness> = impl_witness (imports.%Core.import_ref.1e6), @impl.f92(%T) [symbolic]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness_table = impl_witness_table (imports.%Core.import_ref.1e6), @impl.f92 [concrete]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness.b7b: <witness> = impl_witness %BitAnd.impl_witness_table, @impl.f92(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %Op.type.f99: type = fn_type @Op.2, @impl.f92(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %Op.05a: %Op.type.f99 = struct_value () [symbolic]
|
|
|
// CHECK:STDOUT: %require_complete.4ae: <witness> = require_complete_type %T [symbolic]
|
|
|
-// CHECK:STDOUT: %impl_witness.3ea: <witness> = impl_witness (imports.%Core.import_ref.1e6), @impl.f92(type) [concrete]
|
|
|
-// CHECK:STDOUT: %impl_witness.b81: <witness> = impl_witness (imports.%Core.import_ref.bd4), @impl.f92(%T) [symbolic]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness.0e5: <witness> = impl_witness %BitAnd.impl_witness_table, @impl.f92(type) [concrete]
|
|
|
// CHECK:STDOUT: %Op.type.eb8: type = fn_type @Op.2, @impl.f92(type) [concrete]
|
|
|
// CHECK:STDOUT: %Op.444: %Op.type.eb8 = struct_value () [concrete]
|
|
|
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness type [concrete]
|
|
|
-// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, (%impl_witness.3ea) [concrete]
|
|
|
-// CHECK:STDOUT: %.2ac: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete]
|
|
|
+// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, (%BitAnd.impl_witness.0e5) [concrete]
|
|
|
+// CHECK:STDOUT: %.518: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete]
|
|
|
// CHECK:STDOUT: %Op.bound.9f8: <bound method> = bound_method %Tame.type, %Op.444 [concrete]
|
|
|
// CHECK:STDOUT: %Op.specific_fn: <specific function> = specific_function %Op.444, @Op.2(type) [concrete]
|
|
|
// CHECK:STDOUT: %bound_method.a56: <bound method> = bound_method %Tame.type, %Op.specific_fn [concrete]
|
|
|
@@ -722,7 +720,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %require_complete.ba9: <witness> = require_complete_type %W.as_type [symbolic]
|
|
|
// CHECK:STDOUT: %W.as_wit.iface0: <witness> = facet_access_witness %W, element0 [symbolic]
|
|
|
// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %W.as_type, (%W.as_wit.iface0) [symbolic]
|
|
|
-// CHECK:STDOUT: %impl_witness.1d8: <witness> = impl_witness (), @impl.e7b(%Animal.facet) [symbolic]
|
|
|
+// CHECK:STDOUT: %Eats.impl_witness.498: <witness> = impl_witness file.%Eats.impl_witness_table, @impl.e7b(%Animal.facet) [symbolic]
|
|
|
// CHECK:STDOUT: %Eats.lookup_impl_witness: <witness> = lookup_impl_witness %W, @Eats [symbolic]
|
|
|
// CHECK:STDOUT: %W.as_wit.iface1: <witness> = facet_access_witness %W, element1 [symbolic]
|
|
|
// CHECK:STDOUT: %facet_value: %facet_type.6ff = facet_value %W.as_type, (%Eats.lookup_impl_witness, %W.as_wit.iface1) [symbolic]
|
|
|
@@ -738,11 +736,10 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0]
|
|
|
// CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded
|
|
|
// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f]
|
|
|
-// CHECK:STDOUT: %Core.import_ref.51c: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)]
|
|
|
+// CHECK:STDOUT: %Core.import_ref.140: <witness> = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%BitAnd.impl_witness (constants.%BitAnd.impl_witness.b7b)]
|
|
|
// CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
|
|
// CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
|
|
// CHECK:STDOUT: %Core.import_ref.9c1: type = import_ref Core//prelude, loc21_29, loaded [concrete = constants.%BitAnd.type]
|
|
|
-// CHECK:STDOUT: %Core.import_ref.1e6: @impl.f92.%Op.type (%Op.type.f99) = import_ref Core//prelude, loc22_42, loaded [symbolic = @impl.f92.%Op (constants.%Op.05a)]
|
|
|
// CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -769,7 +766,8 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type]
|
|
|
// CHECK:STDOUT: %A.loc7_14.1: %Animal.type = bind_symbolic_name A, 0 [symbolic = %A.loc7_14.2 (constants.%A)]
|
|
|
// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (), @impl.e7b(constants.%A) [symbolic = @impl.e7b.%impl_witness (constants.%impl_witness.110)]
|
|
|
+// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @impl.e7b [concrete]
|
|
|
+// CHECK:STDOUT: %Eats.impl_witness: <witness> = impl_witness %Eats.impl_witness_table, @impl.e7b(constants.%A) [symbolic = @impl.e7b.%Eats.impl_witness (constants.%Eats.impl_witness.8ab)]
|
|
|
// CHECK:STDOUT: %FeedTame2.decl: %FeedTame2.type = fn_decl @FeedTame2 [concrete = constants.%FeedTame2] {
|
|
|
// CHECK:STDOUT: %V.patt.loc9_14.1: %facet_type.6ff = symbolic_binding_pattern V, 0 [symbolic = %V.patt.loc9_14.2 (constants.%V.patt)]
|
|
|
// CHECK:STDOUT: %v.patt: @FeedTame2.%V.as_type.loc9_34.2 (%V.as_type) = binding_pattern v
|
|
|
@@ -778,7 +776,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.3 [concrete = constants.%facet_type.6ff] {
|
|
|
// CHECK:STDOUT: %Tame.ref: type = name_ref Tame, file.%Tame.decl [concrete = constants.%Tame.type]
|
|
|
// CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type]
|
|
|
-// CHECK:STDOUT: %impl.elem0: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444]
|
|
|
+// CHECK:STDOUT: %impl.elem0: %.518 = impl_witness_access constants.%BitAnd.impl_witness.0e5, element0 [concrete = constants.%Op.444]
|
|
|
// CHECK:STDOUT: %bound_method.loc9_23.1: <bound method> = bound_method %Tame.ref, %impl.elem0 [concrete = constants.%Op.bound.9f8]
|
|
|
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @Op.2(type) [concrete = constants.%Op.specific_fn]
|
|
|
// CHECK:STDOUT: %bound_method.loc9_23.2: <bound method> = bound_method %Tame.ref, %specific_fn [concrete = constants.%bound_method.a56]
|
|
|
@@ -803,7 +801,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %.loc11_33.1: type = splice_block %.loc11_33.3 [concrete = constants.%facet_type.65c] {
|
|
|
// CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type]
|
|
|
// CHECK:STDOUT: %Tame.ref: type = name_ref Tame, file.%Tame.decl [concrete = constants.%Tame.type]
|
|
|
-// CHECK:STDOUT: %impl.elem0: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444]
|
|
|
+// CHECK:STDOUT: %impl.elem0: %.518 = impl_witness_access constants.%BitAnd.impl_witness.0e5, element0 [concrete = constants.%Op.444]
|
|
|
// CHECK:STDOUT: %bound_method.loc11_33.1: <bound method> = bound_method %Animal.ref, %impl.elem0 [concrete = constants.%Op.bound.fe3]
|
|
|
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @Op.2(type) [concrete = constants.%Op.specific_fn]
|
|
|
// CHECK:STDOUT: %bound_method.loc11_33.2: <bound method> = bound_method %Animal.ref, %specific_fn [concrete = constants.%bound_method.a26]
|
|
|
@@ -857,20 +855,20 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %A.loc7_14.2: %Animal.type = bind_symbolic_name A, 0 [symbolic = %A.loc7_14.2 (constants.%A)]
|
|
|
// CHECK:STDOUT: %A.patt.loc7_14.2: %Animal.type = symbolic_binding_pattern A, 0 [symbolic = %A.patt.loc7_14.2 (constants.%A.patt)]
|
|
|
// CHECK:STDOUT: %A.as_type.loc7_26.2: type = facet_access_type %A.loc7_14.2 [symbolic = %A.as_type.loc7_26.2 (constants.%A.as_type)]
|
|
|
-// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (), @impl.e7b(%A.loc7_14.2) [symbolic = %impl_witness (constants.%impl_witness.110)]
|
|
|
+// CHECK:STDOUT: %Eats.impl_witness: <witness> = impl_witness file.%Eats.impl_witness_table, @impl.e7b(%A.loc7_14.2) [symbolic = %Eats.impl_witness (constants.%Eats.impl_witness.8ab)]
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: impl: %.loc7 as %Eats.ref {
|
|
|
// CHECK:STDOUT: !members:
|
|
|
-// CHECK:STDOUT: witness = file.%impl_witness
|
|
|
+// CHECK:STDOUT: witness = file.%Eats.impl_witness
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: generic impl @impl.f92(imports.%Core.import_ref.5ab3ec.1: type) [from "include_files/facet_types.carbon"] {
|
|
|
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)]
|
|
|
// CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)]
|
|
|
-// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (imports.%Core.import_ref.1e6), @impl.f92(%T) [symbolic = %impl_witness (constants.%impl_witness.db8)]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness: <witness> = impl_witness constants.%BitAnd.impl_witness_table, @impl.f92(%T) [symbolic = %BitAnd.impl_witness (constants.%BitAnd.impl_witness.b7b)]
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl.f92(%T) [symbolic = %Op.type (constants.%Op.type.f99)]
|
|
|
@@ -879,7 +877,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: impl: imports.%Core.import_ref.583 as imports.%Core.import_ref.9c1 {
|
|
|
// CHECK:STDOUT: !members:
|
|
|
-// CHECK:STDOUT: witness = imports.%Core.import_ref.51c
|
|
|
+// CHECK:STDOUT: witness = imports.%Core.import_ref.140
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -954,7 +952,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %A.loc7_14.2 => constants.%A
|
|
|
// CHECK:STDOUT: %A.patt.loc7_14.2 => constants.%A.patt
|
|
|
// CHECK:STDOUT: %A.as_type.loc7_26.2 => constants.%A.as_type
|
|
|
-// CHECK:STDOUT: %impl_witness => constants.%impl_witness.110
|
|
|
+// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.8ab
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: specific @impl.e7b(%A.loc7_14.2) {}
|
|
|
@@ -967,7 +965,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: specific @impl.f92(constants.%T) {
|
|
|
// CHECK:STDOUT: %T => constants.%T
|
|
|
// CHECK:STDOUT: %T.patt => constants.%T.patt
|
|
|
-// CHECK:STDOUT: %impl_witness => constants.%impl_witness.db8
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness => constants.%BitAnd.impl_witness.b7b
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: specific @impl.f92(%T) {}
|
|
|
@@ -979,7 +977,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: specific @impl.f92(type) {
|
|
|
// CHECK:STDOUT: %T => type
|
|
|
// CHECK:STDOUT: %T.patt => constants.%T.patt
|
|
|
-// CHECK:STDOUT: %impl_witness => constants.%impl_witness.3ea
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness => constants.%BitAnd.impl_witness.0e5
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT: %Op.type => constants.%Op.type.eb8
|
|
|
@@ -1009,7 +1007,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %A.loc7_14.2 => constants.%Animal.facet
|
|
|
// CHECK:STDOUT: %A.patt.loc7_14.2 => constants.%A.patt
|
|
|
// CHECK:STDOUT: %A.as_type.loc7_26.2 => constants.%W.as_type
|
|
|
-// CHECK:STDOUT: %impl_witness => constants.%impl_witness.1d8
|
|
|
+// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.498
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT: }
|
|
|
@@ -1597,11 +1595,11 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %assoc0.220: %BitAnd.assoc_type = assoc_entity element0, @BitAnd.%Op.decl [concrete]
|
|
|
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic]
|
|
|
// CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic]
|
|
|
-// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (@impl.%Op.decl), @impl(%T) [symbolic]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness: <witness> = impl_witness file.%BitAnd.impl_witness_table, @impl(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %Op.type.28d: type = fn_type @Op.2, @impl(%T) [symbolic]
|
|
|
// CHECK:STDOUT: %Op.902: %Op.type.28d = struct_value () [symbolic]
|
|
|
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T [symbolic]
|
|
|
-// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value %T, (%impl_witness) [symbolic]
|
|
|
+// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value %T, (%BitAnd.impl_witness) [symbolic]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: file {
|
|
|
@@ -1628,7 +1626,8 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: %BitAnd.ref: type = name_ref BitAnd, file.%BitAnd.decl [concrete = constants.%BitAnd.type]
|
|
|
// CHECK:STDOUT: %T.loc21_14.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_14.2 (constants.%T)]
|
|
|
// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (@impl.%Op.decl), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness)]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness_table = impl_witness_table (@impl.%Op.decl), @impl [concrete]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness: <witness> = impl_witness %BitAnd.impl_witness_table, @impl(constants.%T) [symbolic = @impl.%BitAnd.impl_witness (constants.%BitAnd.impl_witness)]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: generic interface @As(%Dest.loc9_14.1: type) {
|
|
|
@@ -1756,7 +1755,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: generic impl @impl(%T.loc21_14.1: type) {
|
|
|
// CHECK:STDOUT: %T.loc21_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_14.2 (constants.%T)]
|
|
|
// CHECK:STDOUT: %T.patt.loc21_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc21_14.2 (constants.%T.patt)]
|
|
|
-// CHECK:STDOUT: %impl_witness: <witness> = impl_witness (%Op.decl), @impl(%T.loc21_14.2) [symbolic = %impl_witness (constants.%impl_witness)]
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness: <witness> = impl_witness file.%BitAnd.impl_witness_table, @impl(%T.loc21_14.2) [symbolic = %BitAnd.impl_witness (constants.%BitAnd.impl_witness)]
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !definition:
|
|
|
// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%T.loc21_14.2) [symbolic = %Op.type (constants.%Op.type.28d)]
|
|
|
@@ -1785,7 +1784,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: !members:
|
|
|
// CHECK:STDOUT: .Op = %Op.decl
|
|
|
-// CHECK:STDOUT: witness = file.%impl_witness
|
|
|
+// CHECK:STDOUT: witness = file.%BitAnd.impl_witness
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -1862,7 +1861,7 @@ fn CallsWithTypeExplicit(U:! type) {
|
|
|
// CHECK:STDOUT: specific @impl(constants.%T) {
|
|
|
// CHECK:STDOUT: %T.loc21_14.2 => constants.%T
|
|
|
// CHECK:STDOUT: %T.patt.loc21_14.2 => constants.%T.patt
|
|
|
-// CHECK:STDOUT: %impl_witness => constants.%impl_witness
|
|
|
+// CHECK:STDOUT: %BitAnd.impl_witness => constants.%BitAnd.impl_witness
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: specific @impl(%T.loc21_14.2) {}
|