mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 10:44:41 +01:00
Implement thunking in terms of constant evaluation (#7332)
The bulk of this change is changing most pattern insts to be `Always` rather than `AlwaysUnique` constants, so that they can be wrapped in `SpecificConstant`s to perform substitution. That then lets thunking rely much more on `SpecificConstant` wrappers instead of deep-copying the inst tree with modified types. This approach to thunking should scale better, particularly as things like form generics make function signatures more complex, because we can leverage the existing support for constant evaluation and substitution. Unfortunately, applying this approach to binding patterns will require more work; see the TODO near the top of `thunk.cpp` for details. --------- Co-authored-by: Richard Smith <richard@metafoo.co.uk>
This commit is contained in:
co-authored by
Richard Smith
parent
40d2d8f68c
commit
e023f75254
+839
-195
File diff suppressed because it is too large
Load Diff
+100
-8
@@ -360,6 +360,8 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: --- returns_bool.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete]
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Other: type = symbolic_binding Other, 0 [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.type.98ea86.1: type = facet_type <@EqWith.1, @EqWith.1(%Other)> [symbolic]
|
||||
@@ -371,13 +373,18 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: %EqWith.WithSelf.Equal.ae3c3e.1: %EqWith.WithSelf.Equal.type.b82ec7.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.type.98ea86.2: type = facet_type <@EqWith.1, @EqWith.1(%U)> [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.3d4: type = pattern_type %EqWith.type.98ea86.2 [symbolic]
|
||||
// CHECK:STDOUT: %T.patt.6b9: %pattern_type.3d4 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %T: %EqWith.type.98ea86.2 = symbolic_binding T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.assoc_type.85b122.2: type = assoc_entity_type @EqWith.1, @EqWith.1(%U) [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.eee873.2: %EqWith.assoc_type.85b122.2 = assoc_entity element0, imports.%Core.import_ref.5ba [symbolic]
|
||||
// CHECK:STDOUT: %assoc1.0ffc88.2: %EqWith.assoc_type.85b122.2 = assoc_entity element1, imports.%Core.import_ref.03f [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.e6374a.2: type = pattern_type %T.as_type [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.aa2: %pattern_type.e6374a.2 = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %x.patt.4e4: %pattern_type.e6374a.2 = at_binding_pattern x, %x.param_patt.aa2 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.51d1c4.2: type = pattern_type %U [symbolic]
|
||||
// CHECK:STDOUT: %y.param_patt.be3: %pattern_type.51d1c4.2 = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %y.patt.b85: %pattern_type.51d1c4.2 = at_binding_pattern y, %y.param_patt.be3 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.fb5: <witness> = require_complete_type %EqWith.type.98ea86.2 [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.d00: %EqWith.assoc_type.85b122.1 = assoc_entity element0, imports.%Core.import_ref.2e5 [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.lookup_impl_witness: <witness> = lookup_impl_witness %T, @EqWith.1, @EqWith.1(%U) [symbolic]
|
||||
@@ -405,6 +412,11 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: %custom_witness.505: <witness> = custom_witness (%EqualityComparable.Equal, %EqualityComparable.NotEqual), @EqWith.1, @EqWith.1(%EqualityComparable) [concrete]
|
||||
// CHECK:STDOUT: %EqWith.facet.b15: %EqWith.type.6a7 = facet_value %EqualityComparable, (%custom_witness.505) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.876: type = pattern_type %EqWith.type.6a7 [concrete]
|
||||
// CHECK:STDOUT: %T.patt.d6d: %pattern_type.876 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.427: %pattern_type.73b = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt.570: %pattern_type.73b = at_binding_pattern x, %x.param_patt.427 [concrete]
|
||||
// CHECK:STDOUT: %y.param_patt.464: %pattern_type.73b = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.d34: %pattern_type.73b = at_binding_pattern y, %y.param_patt.464 [concrete]
|
||||
// CHECK:STDOUT: %complete_type.c86: <witness> = complete_type_witness %EqWith.type.6a7 [concrete]
|
||||
// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.6ae: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%EqualityComparable, %EqWith.facet.b15) [concrete]
|
||||
// CHECK:STDOUT: %.96d: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.6ae, %EqWith.facet.b15 [concrete]
|
||||
@@ -467,23 +479,35 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @EqWith.loc11(constants.%U, constants.%T) {
|
||||
// CHECK:STDOUT: %U.patt.loc11_12.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc11_12.1 => constants.%U
|
||||
// CHECK:STDOUT: %EqWith.type.loc11_38.1 => constants.%EqWith.type.98ea86.2
|
||||
// CHECK:STDOUT: %T.loc11_22.1 => constants.%T
|
||||
// CHECK:STDOUT: %pattern_type.loc11_22 => constants.%pattern_type.3d4
|
||||
// CHECK:STDOUT: %T.patt.loc11_22.2 => constants.%T.patt.6b9
|
||||
// CHECK:STDOUT: %T.loc11_22.1 => constants.%T
|
||||
// CHECK:STDOUT: %T.as_type.loc11_44.1 => constants.%T.as_type
|
||||
// CHECK:STDOUT: %pattern_type.loc11_42 => constants.%pattern_type.e6374a.2
|
||||
// CHECK:STDOUT: %x.param_patt.loc11_42.2 => constants.%x.param_patt.aa2
|
||||
// CHECK:STDOUT: %x.patt.loc11_42.2 => constants.%x.patt.4e4
|
||||
// CHECK:STDOUT: %pattern_type.loc11_48 => constants.%pattern_type.51d1c4.2
|
||||
// CHECK:STDOUT: %y.param_patt.loc11_48.2 => constants.%y.param_patt.be3
|
||||
// CHECK:STDOUT: %y.patt.loc11_48.2 => constants.%y.patt.b85
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @EqWith.loc11(constants.%EqualityComparable, constants.%EqWith.facet.b15) {
|
||||
// CHECK:STDOUT: %U.patt.loc11_12.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc11_12.1 => constants.%EqualityComparable
|
||||
// CHECK:STDOUT: %EqWith.type.loc11_38.1 => constants.%EqWith.type.6a7
|
||||
// CHECK:STDOUT: %T.loc11_22.1 => constants.%EqWith.facet.b15
|
||||
// CHECK:STDOUT: %pattern_type.loc11_22 => constants.%pattern_type.876
|
||||
// CHECK:STDOUT: %T.patt.loc11_22.2 => constants.%T.patt.d6d
|
||||
// CHECK:STDOUT: %T.loc11_22.1 => constants.%EqWith.facet.b15
|
||||
// CHECK:STDOUT: %T.as_type.loc11_44.1 => constants.%EqualityComparable
|
||||
// CHECK:STDOUT: %pattern_type.loc11_42 => constants.%pattern_type.73b
|
||||
// CHECK:STDOUT: %x.param_patt.loc11_42.2 => constants.%x.param_patt.427
|
||||
// CHECK:STDOUT: %x.patt.loc11_42.2 => constants.%x.patt.570
|
||||
// CHECK:STDOUT: %pattern_type.loc11_48 => constants.%pattern_type.73b
|
||||
// CHECK:STDOUT: %y.param_patt.loc11_48.2 => constants.%y.param_patt.464
|
||||
// CHECK:STDOUT: %y.patt.loc11_48.2 => constants.%y.patt.d34
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc11_42 => constants.%complete_type.357
|
||||
@@ -506,6 +530,8 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: --- cross_type_equality.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete]
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Other: type = symbolic_binding Other, 0 [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.type.98ea86.1: type = facet_type <@EqWith.1, @EqWith.1(%Other)> [symbolic]
|
||||
@@ -517,13 +543,18 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: %EqWith.WithSelf.Equal.ae3c3e.1: %EqWith.WithSelf.Equal.type.b82ec7.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.type.98ea86.2: type = facet_type <@EqWith.1, @EqWith.1(%U)> [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.3d4: type = pattern_type %EqWith.type.98ea86.2 [symbolic]
|
||||
// CHECK:STDOUT: %T.patt.6b9: %pattern_type.3d4 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %T: %EqWith.type.98ea86.2 = symbolic_binding T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.assoc_type.85b122.2: type = assoc_entity_type @EqWith.1, @EqWith.1(%U) [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.eee873.2: %EqWith.assoc_type.85b122.2 = assoc_entity element0, imports.%Core.import_ref.5ba [symbolic]
|
||||
// CHECK:STDOUT: %assoc1.0ffc88.2: %EqWith.assoc_type.85b122.2 = assoc_entity element1, imports.%Core.import_ref.03f [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.e6374a.2: type = pattern_type %T.as_type [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.aa2: %pattern_type.e6374a.2 = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %x.patt.4e4: %pattern_type.e6374a.2 = at_binding_pattern x, %x.param_patt.aa2 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.51d1c4.2: type = pattern_type %U [symbolic]
|
||||
// CHECK:STDOUT: %y.param_patt.be3: %pattern_type.51d1c4.2 = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %y.patt.b85: %pattern_type.51d1c4.2 = at_binding_pattern y, %y.param_patt.be3 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.fb5: <witness> = require_complete_type %EqWith.type.98ea86.2 [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.d00: %EqWith.assoc_type.85b122.1 = assoc_entity element0, imports.%Core.import_ref.2e5 [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.lookup_impl_witness: <witness> = lookup_impl_witness %T, @EqWith.1, @EqWith.1(%U) [symbolic]
|
||||
@@ -561,6 +592,11 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: %custom_witness.087: <witness> = custom_witness (%A1.Equal, %A1.NotEqual), @EqWith.1, @EqWith.1(%B1) [concrete]
|
||||
// CHECK:STDOUT: %EqWith.facet.2d3: %EqWith.type.6ed = facet_value %A1, (%custom_witness.087) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.e16: type = pattern_type %EqWith.type.6ed [concrete]
|
||||
// CHECK:STDOUT: %T.patt.869: %pattern_type.e16 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.c7f: %pattern_type.3b4 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt.4ff: %pattern_type.3b4 = at_binding_pattern x, %x.param_patt.c7f [concrete]
|
||||
// CHECK:STDOUT: %y.param_patt.9d7: %pattern_type.5b2 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.979: %pattern_type.5b2 = at_binding_pattern y, %y.param_patt.9d7 [concrete]
|
||||
// CHECK:STDOUT: %EqWith.type.dda: type = facet_type <@EqWith.1, @EqWith.1(%A1)> [concrete]
|
||||
// CHECK:STDOUT: %EqWith.assoc_type.5ce: type = assoc_entity_type @EqWith.1, @EqWith.1(%A1) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.7c8: %EqWith.assoc_type.5ce = assoc_entity element0, imports.%Core.import_ref.5ba [concrete]
|
||||
@@ -572,6 +608,11 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: %custom_witness.123: <witness> = custom_witness (%B1.Equal, %B1.NotEqual), @EqWith.1, @EqWith.1(%A1) [concrete]
|
||||
// CHECK:STDOUT: %EqWith.facet.b94: %EqWith.type.dda = facet_value %B1, (%custom_witness.123) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.a95: type = pattern_type %EqWith.type.dda [concrete]
|
||||
// CHECK:STDOUT: %T.patt.b7f: %pattern_type.a95 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.bff: %pattern_type.5b2 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt.f3d: %pattern_type.5b2 = at_binding_pattern x, %x.param_patt.bff [concrete]
|
||||
// CHECK:STDOUT: %y.param_patt.257: %pattern_type.3b4 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.774: %pattern_type.3b4 = at_binding_pattern y, %y.param_patt.257 [concrete]
|
||||
// CHECK:STDOUT: %EqWith.type.c63: type = facet_type <@EqWith.1, @EqWith.1(%A2)> [concrete]
|
||||
// CHECK:STDOUT: %EqWith.assoc_type.2ca: type = assoc_entity_type @EqWith.1, @EqWith.1(%A2) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.878: %EqWith.assoc_type.2ca = assoc_entity element0, imports.%Core.import_ref.5ba [concrete]
|
||||
@@ -583,6 +624,11 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: %custom_witness.640: <witness> = custom_witness (%B2.Equal, %B2.NotEqual), @EqWith.1, @EqWith.1(%A2) [concrete]
|
||||
// CHECK:STDOUT: %EqWith.facet.fe0: %EqWith.type.c63 = facet_value %B2, (%custom_witness.640) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.cbd: type = pattern_type %EqWith.type.c63 [concrete]
|
||||
// CHECK:STDOUT: %T.patt.aaf: %pattern_type.cbd = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.0e6: %pattern_type.d1e = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt.94e: %pattern_type.d1e = at_binding_pattern x, %x.param_patt.0e6 [concrete]
|
||||
// CHECK:STDOUT: %y.param_patt.a4f: %pattern_type.9f0 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.912: %pattern_type.9f0 = at_binding_pattern y, %y.param_patt.a4f [concrete]
|
||||
// CHECK:STDOUT: %EqWith.type.2e6: type = facet_type <@EqWith.1, @EqWith.1(%B3)> [concrete]
|
||||
// CHECK:STDOUT: %EqWith.assoc_type.eda: type = assoc_entity_type @EqWith.1, @EqWith.1(%B3) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.34f: %EqWith.assoc_type.eda = assoc_entity element0, imports.%Core.import_ref.5ba [concrete]
|
||||
@@ -594,6 +640,11 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: %custom_witness.528: <witness> = custom_witness (%A3.Equal, %NotEqual), @EqWith.1, @EqWith.1(%B3) [concrete]
|
||||
// CHECK:STDOUT: %EqWith.facet.34d: %EqWith.type.2e6 = facet_value %A3, (%custom_witness.528) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.2b2: type = pattern_type %EqWith.type.2e6 [concrete]
|
||||
// CHECK:STDOUT: %T.patt.7d5: %pattern_type.2b2 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.429: %pattern_type.7fe = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt.6e2: %pattern_type.7fe = at_binding_pattern x, %x.param_patt.429 [concrete]
|
||||
// CHECK:STDOUT: %y.param_patt.b51: %pattern_type.2dd = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.7b8: %pattern_type.2dd = at_binding_pattern y, %y.param_patt.b51 [concrete]
|
||||
// CHECK:STDOUT: %EqWith.type.831: type = facet_type <@EqWith.1, @EqWith.1(%A3)> [concrete]
|
||||
// CHECK:STDOUT: %EqWith.assoc_type.d85: type = assoc_entity_type @EqWith.1, @EqWith.1(%A3) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.b7b: %EqWith.assoc_type.d85 = assoc_entity element0, imports.%Core.import_ref.5ba [concrete]
|
||||
@@ -605,6 +656,11 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: %custom_witness.0ff: <witness> = custom_witness (%Equal, %B3.NotEqual), @EqWith.1, @EqWith.1(%A3) [concrete]
|
||||
// CHECK:STDOUT: %EqWith.facet.2a4: %EqWith.type.831 = facet_value %B3, (%custom_witness.0ff) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.9c8: type = pattern_type %EqWith.type.831 [concrete]
|
||||
// CHECK:STDOUT: %T.patt.fcb: %pattern_type.9c8 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.074: %pattern_type.2dd = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt.234: %pattern_type.2dd = at_binding_pattern x, %x.param_patt.074 [concrete]
|
||||
// CHECK:STDOUT: %y.param_patt.d86: %pattern_type.7fe = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.fd9: %pattern_type.7fe = at_binding_pattern y, %y.param_patt.d86 [concrete]
|
||||
// CHECK:STDOUT: %complete_type.1d5: <witness> = complete_type_witness %EqWith.type.6ed [concrete]
|
||||
// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.b99: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%B1, %EqWith.facet.2d3) [concrete]
|
||||
// CHECK:STDOUT: %.bad: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.b99, %EqWith.facet.2d3 [concrete]
|
||||
@@ -687,23 +743,35 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @EqWith.loc34(constants.%U, constants.%T) {
|
||||
// CHECK:STDOUT: %U.patt.loc34_12.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc34_12.1 => constants.%U
|
||||
// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.98ea86.2
|
||||
// CHECK:STDOUT: %T.loc34_22.1 => constants.%T
|
||||
// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.3d4
|
||||
// CHECK:STDOUT: %T.patt.loc34_22.2 => constants.%T.patt.6b9
|
||||
// CHECK:STDOUT: %T.loc34_22.1 => constants.%T
|
||||
// CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%T.as_type
|
||||
// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.e6374a.2
|
||||
// CHECK:STDOUT: %x.param_patt.loc34_42.2 => constants.%x.param_patt.aa2
|
||||
// CHECK:STDOUT: %x.patt.loc34_42.2 => constants.%x.patt.4e4
|
||||
// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.51d1c4.2
|
||||
// CHECK:STDOUT: %y.param_patt.loc34_48.2 => constants.%y.param_patt.be3
|
||||
// CHECK:STDOUT: %y.patt.loc34_48.2 => constants.%y.patt.b85
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @EqWith.loc34(constants.%B1, constants.%EqWith.facet.2d3) {
|
||||
// CHECK:STDOUT: %U.patt.loc34_12.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc34_12.1 => constants.%B1
|
||||
// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.6ed
|
||||
// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.2d3
|
||||
// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.e16
|
||||
// CHECK:STDOUT: %T.patt.loc34_22.2 => constants.%T.patt.869
|
||||
// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.2d3
|
||||
// CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%A1
|
||||
// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.3b4
|
||||
// CHECK:STDOUT: %x.param_patt.loc34_42.2 => constants.%x.param_patt.c7f
|
||||
// CHECK:STDOUT: %x.patt.loc34_42.2 => constants.%x.patt.4ff
|
||||
// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.5b2
|
||||
// CHECK:STDOUT: %y.param_patt.loc34_48.2 => constants.%y.param_patt.9d7
|
||||
// CHECK:STDOUT: %y.patt.loc34_48.2 => constants.%y.patt.979
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357
|
||||
@@ -724,13 +792,19 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @EqWith.loc34(constants.%A1, constants.%EqWith.facet.b94) {
|
||||
// CHECK:STDOUT: %U.patt.loc34_12.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc34_12.1 => constants.%A1
|
||||
// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.dda
|
||||
// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.b94
|
||||
// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.a95
|
||||
// CHECK:STDOUT: %T.patt.loc34_22.2 => constants.%T.patt.b7f
|
||||
// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.b94
|
||||
// CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%B1
|
||||
// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.5b2
|
||||
// CHECK:STDOUT: %x.param_patt.loc34_42.2 => constants.%x.param_patt.bff
|
||||
// CHECK:STDOUT: %x.patt.loc34_42.2 => constants.%x.patt.f3d
|
||||
// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.3b4
|
||||
// CHECK:STDOUT: %y.param_patt.loc34_48.2 => constants.%y.param_patt.257
|
||||
// CHECK:STDOUT: %y.patt.loc34_48.2 => constants.%y.patt.774
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357
|
||||
@@ -751,13 +825,19 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @EqWith.loc34(constants.%A2, constants.%EqWith.facet.fe0) {
|
||||
// CHECK:STDOUT: %U.patt.loc34_12.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc34_12.1 => constants.%A2
|
||||
// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.c63
|
||||
// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.fe0
|
||||
// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.cbd
|
||||
// CHECK:STDOUT: %T.patt.loc34_22.2 => constants.%T.patt.aaf
|
||||
// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.fe0
|
||||
// CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%B2
|
||||
// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.d1e
|
||||
// CHECK:STDOUT: %x.param_patt.loc34_42.2 => constants.%x.param_patt.0e6
|
||||
// CHECK:STDOUT: %x.patt.loc34_42.2 => constants.%x.patt.94e
|
||||
// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.9f0
|
||||
// CHECK:STDOUT: %y.param_patt.loc34_48.2 => constants.%y.param_patt.a4f
|
||||
// CHECK:STDOUT: %y.patt.loc34_48.2 => constants.%y.patt.912
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357
|
||||
@@ -778,13 +858,19 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @EqWith.loc34(constants.%B3, constants.%EqWith.facet.34d) {
|
||||
// CHECK:STDOUT: %U.patt.loc34_12.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc34_12.1 => constants.%B3
|
||||
// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.2e6
|
||||
// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.34d
|
||||
// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.2b2
|
||||
// CHECK:STDOUT: %T.patt.loc34_22.2 => constants.%T.patt.7d5
|
||||
// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.34d
|
||||
// CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%A3
|
||||
// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.7fe
|
||||
// CHECK:STDOUT: %x.param_patt.loc34_42.2 => constants.%x.param_patt.429
|
||||
// CHECK:STDOUT: %x.patt.loc34_42.2 => constants.%x.patt.6e2
|
||||
// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.2dd
|
||||
// CHECK:STDOUT: %y.param_patt.loc34_48.2 => constants.%y.param_patt.b51
|
||||
// CHECK:STDOUT: %y.patt.loc34_48.2 => constants.%y.patt.7b8
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357
|
||||
@@ -805,13 +891,19 @@ fn Test(only_neq: Cpp.OnlyNeq,
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @EqWith.loc34(constants.%A3, constants.%EqWith.facet.2a4) {
|
||||
// CHECK:STDOUT: %U.patt.loc34_12.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc34_12.1 => constants.%A3
|
||||
// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.831
|
||||
// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.2a4
|
||||
// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.9c8
|
||||
// CHECK:STDOUT: %T.patt.loc34_22.2 => constants.%T.patt.fcb
|
||||
// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.2a4
|
||||
// CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%B3
|
||||
// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.2dd
|
||||
// CHECK:STDOUT: %x.param_patt.loc34_42.2 => constants.%x.param_patt.074
|
||||
// CHECK:STDOUT: %x.patt.loc34_42.2 => constants.%x.patt.234
|
||||
// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.7fe
|
||||
// CHECK:STDOUT: %y.param_patt.loc34_48.2 => constants.%y.param_patt.d86
|
||||
// CHECK:STDOUT: %y.patt.loc34_48.2 => constants.%y.patt.fd9
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357
|
||||
|
||||
+210
-143
File diff suppressed because it is too large
Load Diff
@@ -392,6 +392,8 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: --- returns_bool.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete]
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Other: type = symbolic_binding Other, 0 [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.type.32ae87.1: type = facet_type <@OrderedWith.1, @OrderedWith.1(%Other)> [symbolic]
|
||||
@@ -407,6 +409,7 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: %OrderedWith.WithSelf.Less.9e1f56.1: %OrderedWith.WithSelf.Less.type.b87f4b.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.type.32ae87.2: type = facet_type <@OrderedWith.1, @OrderedWith.1(%U)> [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.ebc: type = pattern_type %OrderedWith.type.32ae87.2 [symbolic]
|
||||
// CHECK:STDOUT: %T.patt.aaa: %pattern_type.ebc = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %T: %OrderedWith.type.32ae87.2 = symbolic_binding T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.assoc_type.1d2e6f.2: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U) [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.c0023b.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element0, imports.%Core.import_ref.e7a [symbolic]
|
||||
@@ -415,7 +418,11 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: %assoc3.5d53f7.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element3, imports.%Core.import_ref.39b [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.f6ec4f.2: type = pattern_type %T.as_type [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.a58: %pattern_type.f6ec4f.2 = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %x.patt.140: %pattern_type.f6ec4f.2 = at_binding_pattern x, %x.param_patt.a58 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.51d1c4.2: type = pattern_type %U [symbolic]
|
||||
// CHECK:STDOUT: %y.param_patt.be3: %pattern_type.51d1c4.2 = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %y.patt.b85: %pattern_type.51d1c4.2 = at_binding_pattern y, %y.param_patt.be3 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.3c0: <witness> = require_complete_type %OrderedWith.type.32ae87.2 [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.13c: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element0, imports.%Core.import_ref.447 [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.lookup_impl_witness: <witness> = lookup_impl_witness %T, @OrderedWith.1, @OrderedWith.1(%U) [symbolic]
|
||||
@@ -459,6 +466,11 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: %custom_witness.593: <witness> = custom_witness (%Ordered.Less, %Ordered.LessOrEquivalent, %Ordered.Greater, %Ordered.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%Ordered) [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.facet.517: %OrderedWith.type.39d = facet_value %Ordered, (%custom_witness.593) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.d57: type = pattern_type %OrderedWith.type.39d [concrete]
|
||||
// CHECK:STDOUT: %T.patt.67e: %pattern_type.d57 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.e3d: %pattern_type.e66 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt.51a: %pattern_type.e66 = at_binding_pattern x, %x.param_patt.e3d [concrete]
|
||||
// CHECK:STDOUT: %y.param_patt.4a3: %pattern_type.e66 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.397: %pattern_type.e66 = at_binding_pattern y, %y.param_patt.4a3 [concrete]
|
||||
// CHECK:STDOUT: %complete_type.e48: <witness> = complete_type_witness %OrderedWith.type.39d [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.652: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.517) [concrete]
|
||||
// CHECK:STDOUT: %.92e: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.652, %OrderedWith.facet.517 [concrete]
|
||||
@@ -561,23 +573,35 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc13(constants.%U, constants.%T) {
|
||||
// CHECK:STDOUT: %U.patt.loc13_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc13_17.1 => constants.%U
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc13_48.1 => constants.%OrderedWith.type.32ae87.2
|
||||
// CHECK:STDOUT: %T.loc13_27.1 => constants.%T
|
||||
// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.ebc
|
||||
// CHECK:STDOUT: %T.patt.loc13_27.2 => constants.%T.patt.aaa
|
||||
// CHECK:STDOUT: %T.loc13_27.1 => constants.%T
|
||||
// CHECK:STDOUT: %T.as_type.loc13_54.1 => constants.%T.as_type
|
||||
// CHECK:STDOUT: %pattern_type.loc13_52 => constants.%pattern_type.f6ec4f.2
|
||||
// CHECK:STDOUT: %x.param_patt.loc13_52.2 => constants.%x.param_patt.a58
|
||||
// CHECK:STDOUT: %x.patt.loc13_52.2 => constants.%x.patt.140
|
||||
// CHECK:STDOUT: %pattern_type.loc13_58 => constants.%pattern_type.51d1c4.2
|
||||
// CHECK:STDOUT: %y.param_patt.loc13_58.2 => constants.%y.param_patt.be3
|
||||
// CHECK:STDOUT: %y.patt.loc13_58.2 => constants.%y.patt.b85
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc13(constants.%Ordered, constants.%OrderedWith.facet.517) {
|
||||
// CHECK:STDOUT: %U.patt.loc13_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc13_17.1 => constants.%Ordered
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc13_48.1 => constants.%OrderedWith.type.39d
|
||||
// CHECK:STDOUT: %T.loc13_27.1 => constants.%OrderedWith.facet.517
|
||||
// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.d57
|
||||
// CHECK:STDOUT: %T.patt.loc13_27.2 => constants.%T.patt.67e
|
||||
// CHECK:STDOUT: %T.loc13_27.1 => constants.%OrderedWith.facet.517
|
||||
// CHECK:STDOUT: %T.as_type.loc13_54.1 => constants.%Ordered
|
||||
// CHECK:STDOUT: %pattern_type.loc13_52 => constants.%pattern_type.e66
|
||||
// CHECK:STDOUT: %x.param_patt.loc13_52.2 => constants.%x.param_patt.e3d
|
||||
// CHECK:STDOUT: %x.patt.loc13_52.2 => constants.%x.patt.51a
|
||||
// CHECK:STDOUT: %pattern_type.loc13_58 => constants.%pattern_type.e66
|
||||
// CHECK:STDOUT: %y.param_patt.loc13_58.2 => constants.%y.param_patt.4a3
|
||||
// CHECK:STDOUT: %y.patt.loc13_58.2 => constants.%y.patt.397
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc13_52 => constants.%complete_type.357
|
||||
@@ -610,6 +634,8 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: --- cross_type_ordering.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete]
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Other: type = symbolic_binding Other, 0 [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.type.32ae87.1: type = facet_type <@OrderedWith.1, @OrderedWith.1(%Other)> [symbolic]
|
||||
@@ -625,6 +651,7 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: %OrderedWith.WithSelf.Less.9e1f56.1: %OrderedWith.WithSelf.Less.type.b87f4b.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.type.32ae87.2: type = facet_type <@OrderedWith.1, @OrderedWith.1(%U)> [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.ebc: type = pattern_type %OrderedWith.type.32ae87.2 [symbolic]
|
||||
// CHECK:STDOUT: %T.patt.aaa: %pattern_type.ebc = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %T: %OrderedWith.type.32ae87.2 = symbolic_binding T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.assoc_type.1d2e6f.2: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U) [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.c0023b.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element0, imports.%Core.import_ref.e7a [symbolic]
|
||||
@@ -633,7 +660,11 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: %assoc3.5d53f7.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element3, imports.%Core.import_ref.39b [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.f6ec4f.2: type = pattern_type %T.as_type [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.a58: %pattern_type.f6ec4f.2 = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %x.patt.140: %pattern_type.f6ec4f.2 = at_binding_pattern x, %x.param_patt.a58 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.51d1c4.2: type = pattern_type %U [symbolic]
|
||||
// CHECK:STDOUT: %y.param_patt.be3: %pattern_type.51d1c4.2 = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %y.patt.b85: %pattern_type.51d1c4.2 = at_binding_pattern y, %y.param_patt.be3 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.3c0: <witness> = require_complete_type %OrderedWith.type.32ae87.2 [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.13c: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element0, imports.%Core.import_ref.447 [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.lookup_impl_witness: <witness> = lookup_impl_witness %T, @OrderedWith.1, @OrderedWith.1(%U) [symbolic]
|
||||
@@ -687,6 +718,11 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: %custom_witness.1d9: <witness> = custom_witness (%A1.Less, %A1.LessOrEquivalent, %A1.Greater, %A1.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%B1) [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.facet.370: %OrderedWith.type.4d9 = facet_value %A1, (%custom_witness.1d9) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.53b: type = pattern_type %OrderedWith.type.4d9 [concrete]
|
||||
// CHECK:STDOUT: %T.patt.8c1: %pattern_type.53b = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.c7f: %pattern_type.3b4 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt.4ff: %pattern_type.3b4 = at_binding_pattern x, %x.param_patt.c7f [concrete]
|
||||
// CHECK:STDOUT: %y.param_patt.9d7: %pattern_type.5b2 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.979: %pattern_type.5b2 = at_binding_pattern y, %y.param_patt.9d7 [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.type.fe8: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A1)> [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.assoc_type.31d: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A1) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.a34: %OrderedWith.assoc_type.31d = assoc_entity element0, imports.%Core.import_ref.e7a [concrete]
|
||||
@@ -704,6 +740,11 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: %custom_witness.d3a: <witness> = custom_witness (%B1.Less, %B1.LessOrEquivalent, %B1.Greater, %B1.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A1) [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.facet.288: %OrderedWith.type.fe8 = facet_value %B1, (%custom_witness.d3a) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.280: type = pattern_type %OrderedWith.type.fe8 [concrete]
|
||||
// CHECK:STDOUT: %T.patt.5de: %pattern_type.280 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.bff: %pattern_type.5b2 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt.f3d: %pattern_type.5b2 = at_binding_pattern x, %x.param_patt.bff [concrete]
|
||||
// CHECK:STDOUT: %y.param_patt.257: %pattern_type.3b4 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.774: %pattern_type.3b4 = at_binding_pattern y, %y.param_patt.257 [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.type.9ee: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A2)> [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.assoc_type.941: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A2) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.73a: %OrderedWith.assoc_type.941 = assoc_entity element0, imports.%Core.import_ref.e7a [concrete]
|
||||
@@ -721,6 +762,11 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: %custom_witness.bbd: <witness> = custom_witness (%B2.Less, %B2.LessOrEquivalent, %B2.Greater, %B2.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A2) [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.facet.2ea: %OrderedWith.type.9ee = facet_value %B2, (%custom_witness.bbd) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.a96: type = pattern_type %OrderedWith.type.9ee [concrete]
|
||||
// CHECK:STDOUT: %T.patt.e0a: %pattern_type.a96 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.0e6: %pattern_type.d1e = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt.94e: %pattern_type.d1e = at_binding_pattern x, %x.param_patt.0e6 [concrete]
|
||||
// CHECK:STDOUT: %y.param_patt.a4f: %pattern_type.9f0 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.912: %pattern_type.9f0 = at_binding_pattern y, %y.param_patt.a4f [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.type.cc8: type = facet_type <@OrderedWith.1, @OrderedWith.1(%B3)> [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.assoc_type.45f: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%B3) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.2c4: %OrderedWith.assoc_type.45f = assoc_entity element0, imports.%Core.import_ref.e7a [concrete]
|
||||
@@ -738,6 +784,11 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: %custom_witness.773: <witness> = custom_witness (%A3.Less, %LessOrEquivalent, %A3.Greater, %GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%B3) [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.facet.d6b: %OrderedWith.type.cc8 = facet_value %A3, (%custom_witness.773) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.edf: type = pattern_type %OrderedWith.type.cc8 [concrete]
|
||||
// CHECK:STDOUT: %T.patt.8a7: %pattern_type.edf = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.429: %pattern_type.7fe = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt.6e2: %pattern_type.7fe = at_binding_pattern x, %x.param_patt.429 [concrete]
|
||||
// CHECK:STDOUT: %y.param_patt.b51: %pattern_type.2dd = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.7b8: %pattern_type.2dd = at_binding_pattern y, %y.param_patt.b51 [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.type.30a: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A3)> [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.assoc_type.18e: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A3) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.d97: %OrderedWith.assoc_type.18e = assoc_entity element0, imports.%Core.import_ref.e7a [concrete]
|
||||
@@ -755,6 +806,11 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: %custom_witness.870: <witness> = custom_witness (%Less, %B3.LessOrEquivalent, %Greater, %B3.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A3) [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.facet.52f: %OrderedWith.type.30a = facet_value %B3, (%custom_witness.870) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.5db: type = pattern_type %OrderedWith.type.30a [concrete]
|
||||
// CHECK:STDOUT: %T.patt.36b: %pattern_type.5db = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.074: %pattern_type.2dd = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt.234: %pattern_type.2dd = at_binding_pattern x, %x.param_patt.074 [concrete]
|
||||
// CHECK:STDOUT: %y.param_patt.d86: %pattern_type.7fe = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.fd9: %pattern_type.7fe = at_binding_pattern y, %y.param_patt.d86 [concrete]
|
||||
// CHECK:STDOUT: %complete_type.f5b: <witness> = complete_type_witness %OrderedWith.type.4d9 [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.bf4: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.370) [concrete]
|
||||
// CHECK:STDOUT: %.e3b: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.bf4, %OrderedWith.facet.370 [concrete]
|
||||
@@ -893,23 +949,35 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%U, constants.%T) {
|
||||
// CHECK:STDOUT: %U.patt.loc54_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc54_17.1 => constants.%U
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.32ae87.2
|
||||
// CHECK:STDOUT: %T.loc54_27.1 => constants.%T
|
||||
// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.ebc
|
||||
// CHECK:STDOUT: %T.patt.loc54_27.2 => constants.%T.patt.aaa
|
||||
// CHECK:STDOUT: %T.loc54_27.1 => constants.%T
|
||||
// CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%T.as_type
|
||||
// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.f6ec4f.2
|
||||
// CHECK:STDOUT: %x.param_patt.loc54_52.2 => constants.%x.param_patt.a58
|
||||
// CHECK:STDOUT: %x.patt.loc54_52.2 => constants.%x.patt.140
|
||||
// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.51d1c4.2
|
||||
// CHECK:STDOUT: %y.param_patt.loc54_58.2 => constants.%y.param_patt.be3
|
||||
// CHECK:STDOUT: %y.patt.loc54_58.2 => constants.%y.patt.b85
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%B1, constants.%OrderedWith.facet.370) {
|
||||
// CHECK:STDOUT: %U.patt.loc54_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc54_17.1 => constants.%B1
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.4d9
|
||||
// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.370
|
||||
// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.53b
|
||||
// CHECK:STDOUT: %T.patt.loc54_27.2 => constants.%T.patt.8c1
|
||||
// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.370
|
||||
// CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%A1
|
||||
// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.3b4
|
||||
// CHECK:STDOUT: %x.param_patt.loc54_52.2 => constants.%x.param_patt.c7f
|
||||
// CHECK:STDOUT: %x.patt.loc54_52.2 => constants.%x.patt.4ff
|
||||
// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.5b2
|
||||
// CHECK:STDOUT: %y.param_patt.loc54_58.2 => constants.%y.param_patt.9d7
|
||||
// CHECK:STDOUT: %y.patt.loc54_58.2 => constants.%y.patt.979
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357
|
||||
@@ -940,13 +1008,19 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A1, constants.%OrderedWith.facet.288) {
|
||||
// CHECK:STDOUT: %U.patt.loc54_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc54_17.1 => constants.%A1
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.fe8
|
||||
// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.288
|
||||
// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.280
|
||||
// CHECK:STDOUT: %T.patt.loc54_27.2 => constants.%T.patt.5de
|
||||
// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.288
|
||||
// CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%B1
|
||||
// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.5b2
|
||||
// CHECK:STDOUT: %x.param_patt.loc54_52.2 => constants.%x.param_patt.bff
|
||||
// CHECK:STDOUT: %x.patt.loc54_52.2 => constants.%x.patt.f3d
|
||||
// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.3b4
|
||||
// CHECK:STDOUT: %y.param_patt.loc54_58.2 => constants.%y.param_patt.257
|
||||
// CHECK:STDOUT: %y.patt.loc54_58.2 => constants.%y.patt.774
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357
|
||||
@@ -977,13 +1051,19 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A2, constants.%OrderedWith.facet.2ea) {
|
||||
// CHECK:STDOUT: %U.patt.loc54_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc54_17.1 => constants.%A2
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.9ee
|
||||
// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.2ea
|
||||
// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.a96
|
||||
// CHECK:STDOUT: %T.patt.loc54_27.2 => constants.%T.patt.e0a
|
||||
// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.2ea
|
||||
// CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%B2
|
||||
// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.d1e
|
||||
// CHECK:STDOUT: %x.param_patt.loc54_52.2 => constants.%x.param_patt.0e6
|
||||
// CHECK:STDOUT: %x.patt.loc54_52.2 => constants.%x.patt.94e
|
||||
// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.9f0
|
||||
// CHECK:STDOUT: %y.param_patt.loc54_58.2 => constants.%y.param_patt.a4f
|
||||
// CHECK:STDOUT: %y.patt.loc54_58.2 => constants.%y.patt.912
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357
|
||||
@@ -1014,13 +1094,19 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%B3, constants.%OrderedWith.facet.d6b) {
|
||||
// CHECK:STDOUT: %U.patt.loc54_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc54_17.1 => constants.%B3
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.cc8
|
||||
// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.d6b
|
||||
// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.edf
|
||||
// CHECK:STDOUT: %T.patt.loc54_27.2 => constants.%T.patt.8a7
|
||||
// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.d6b
|
||||
// CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%A3
|
||||
// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.7fe
|
||||
// CHECK:STDOUT: %x.param_patt.loc54_52.2 => constants.%x.param_patt.429
|
||||
// CHECK:STDOUT: %x.patt.loc54_52.2 => constants.%x.patt.6e2
|
||||
// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.2dd
|
||||
// CHECK:STDOUT: %y.param_patt.loc54_58.2 => constants.%y.param_patt.b51
|
||||
// CHECK:STDOUT: %y.patt.loc54_58.2 => constants.%y.patt.7b8
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357
|
||||
@@ -1051,13 +1137,19 @@ fn Test(missing_less: Cpp.MissingLess,
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A3, constants.%OrderedWith.facet.52f) {
|
||||
// CHECK:STDOUT: %U.patt.loc54_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc54_17.1 => constants.%A3
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.30a
|
||||
// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.52f
|
||||
// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.5db
|
||||
// CHECK:STDOUT: %T.patt.loc54_27.2 => constants.%T.patt.36b
|
||||
// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.52f
|
||||
// CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%B3
|
||||
// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.2dd
|
||||
// CHECK:STDOUT: %x.param_patt.loc54_52.2 => constants.%x.param_patt.074
|
||||
// CHECK:STDOUT: %x.patt.loc54_52.2 => constants.%x.patt.234
|
||||
// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.7fe
|
||||
// CHECK:STDOUT: %y.param_patt.loc54_58.2 => constants.%y.param_patt.d86
|
||||
// CHECK:STDOUT: %y.patt.loc54_58.2 => constants.%y.patt.fd9
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357
|
||||
|
||||
@@ -229,6 +229,8 @@ fn Test(returns_strong_ordering: Cpp.ReturnsStrongOrdering) {
|
||||
// CHECK:STDOUT: --- fail_todo_spaceship_rewrites.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete]
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Other: type = symbolic_binding Other, 0 [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.type.98ea86.1: type = facet_type <@EqWith.1, @EqWith.1(%Other)> [symbolic]
|
||||
@@ -240,13 +242,18 @@ fn Test(returns_strong_ordering: Cpp.ReturnsStrongOrdering) {
|
||||
// CHECK:STDOUT: %EqWith.WithSelf.Equal.ae3c3e.1: %EqWith.WithSelf.Equal.type.b82ec7.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.type.98ea86.2: type = facet_type <@EqWith.1, @EqWith.1(%U)> [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.3d4: type = pattern_type %EqWith.type.98ea86.2 [symbolic]
|
||||
// CHECK:STDOUT: %T.patt.6b9: %pattern_type.3d4 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %T.d94: %EqWith.type.98ea86.2 = symbolic_binding T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.assoc_type.85b122.2: type = assoc_entity_type @EqWith.1, @EqWith.1(%U) [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.eee873.2: %EqWith.assoc_type.85b122.2 = assoc_entity element0, imports.%Core.import_ref.5ba [symbolic]
|
||||
// CHECK:STDOUT: %assoc1.0ffc88.2: %EqWith.assoc_type.85b122.2 = assoc_entity element1, imports.%Core.import_ref.03f [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.93d: type = facet_access_type %T.d94 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.e6374a.2: type = pattern_type %T.as_type.93d [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.aa2: %pattern_type.e6374a.2 = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %x.patt.4e4: %pattern_type.e6374a.2 = at_binding_pattern x, %x.param_patt.aa2 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.51d1c4.2: type = pattern_type %U [symbolic]
|
||||
// CHECK:STDOUT: %y.param_patt.be3: %pattern_type.51d1c4.2 = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %y.patt.b85: %pattern_type.51d1c4.2 = at_binding_pattern y, %y.param_patt.be3 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.fb5: <witness> = require_complete_type %EqWith.type.98ea86.2 [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.d00: %EqWith.assoc_type.85b122.1 = assoc_entity element0, imports.%Core.import_ref.2e5 [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.lookup_impl_witness: <witness> = lookup_impl_witness %T.d94, @EqWith.1, @EqWith.1(%U) [symbolic]
|
||||
@@ -272,6 +279,7 @@ fn Test(returns_strong_ordering: Cpp.ReturnsStrongOrdering) {
|
||||
// CHECK:STDOUT: %OrderedWith.WithSelf.Less.9e1f56.1: %OrderedWith.WithSelf.Less.type.b87f4b.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.type.32ae87.2: type = facet_type <@OrderedWith.1, @OrderedWith.1(%U)> [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.ebc: type = pattern_type %OrderedWith.type.32ae87.2 [symbolic]
|
||||
// CHECK:STDOUT: %T.patt.aaa: %pattern_type.ebc = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %T.7df: %OrderedWith.type.32ae87.2 = symbolic_binding T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.assoc_type.1d2e6f.2: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U) [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.c0023b.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element0, imports.%Core.import_ref.e7a [symbolic]
|
||||
@@ -280,6 +288,8 @@ fn Test(returns_strong_ordering: Cpp.ReturnsStrongOrdering) {
|
||||
// CHECK:STDOUT: %assoc3.5d53f7.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element3, imports.%Core.import_ref.39b [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.262: type = facet_access_type %T.7df [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.f6ec4f.2: type = pattern_type %T.as_type.262 [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt.a58: %pattern_type.f6ec4f.2 = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %x.patt.140: %pattern_type.f6ec4f.2 = at_binding_pattern x, %x.param_patt.a58 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.3c0: <witness> = require_complete_type %OrderedWith.type.32ae87.2 [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.13c: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element0, imports.%Core.import_ref.447 [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.lookup_impl_witness: <witness> = lookup_impl_witness %T.7df, @OrderedWith.1, @OrderedWith.1(%U) [symbolic]
|
||||
@@ -314,16 +324,32 @@ fn Test(returns_strong_ordering: Cpp.ReturnsStrongOrdering) {
|
||||
// CHECK:STDOUT: %pattern_type.aac: type = pattern_type %CrossTypeRhs [concrete]
|
||||
// CHECK:STDOUT: %EqWith.type.bf2: type = facet_type <@EqWith.1, @EqWith.1(%DefaultSpaceshipOnly)> [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.062: type = pattern_type %EqWith.type.bf2 [concrete]
|
||||
// CHECK:STDOUT: %T.patt.107: %pattern_type.062 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %y.param_patt.62b: %pattern_type.80f = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.e91: %pattern_type.80f = at_binding_pattern y, %y.param_patt.62b [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.type.33f: type = facet_type <@OrderedWith.1, @OrderedWith.1(%DefaultSpaceshipOnly)> [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.7f2: type = pattern_type %OrderedWith.type.33f [concrete]
|
||||
// CHECK:STDOUT: %T.patt.84b: %pattern_type.7f2 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.type.0fb: type = facet_type <@OrderedWith.1, @OrderedWith.1(%ReturnsStrongOrdering)> [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.623: type = pattern_type %OrderedWith.type.0fb [concrete]
|
||||
// CHECK:STDOUT: %T.patt.62e: %pattern_type.623 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %y.param_patt.794: %pattern_type.37f = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.e01: %pattern_type.37f = at_binding_pattern y, %y.param_patt.794 [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.type.5f1: type = facet_type <@OrderedWith.1, @OrderedWith.1(%ReturnsPartialOrdering)> [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.53d: type = pattern_type %OrderedWith.type.5f1 [concrete]
|
||||
// CHECK:STDOUT: %T.patt.d27: %pattern_type.53d = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %y.param_patt.301: %pattern_type.9ae = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.e76: %pattern_type.9ae = at_binding_pattern y, %y.param_patt.301 [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.type.8cb: type = facet_type <@OrderedWith.1, @OrderedWith.1(%CrossTypeRhs)> [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.935: type = pattern_type %OrderedWith.type.8cb [concrete]
|
||||
// CHECK:STDOUT: %T.patt.d75: %pattern_type.935 = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %y.param_patt.da2: %pattern_type.aac = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.ac7: %pattern_type.aac = at_binding_pattern y, %y.param_patt.da2 [concrete]
|
||||
// CHECK:STDOUT: %OrderedWith.type.c6c: type = facet_type <@OrderedWith.1, @OrderedWith.1(%CrossTypeLhs)> [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.b4e: type = pattern_type %OrderedWith.type.c6c [concrete]
|
||||
// CHECK:STDOUT: %T.patt.6f6: %pattern_type.b4e = symbolic_binding_pattern T, 1 [symbolic]
|
||||
// CHECK:STDOUT: %y.param_patt.65d: %pattern_type.eb5 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %y.patt.6a4: %pattern_type.eb5 = at_binding_pattern y, %y.param_patt.65d [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -468,82 +494,130 @@ fn Test(returns_strong_ordering: Cpp.ReturnsStrongOrdering) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @EqWith.loc4(constants.%U, constants.%T.d94) {
|
||||
// CHECK:STDOUT: %U.patt.loc4_12.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc4_12.1 => constants.%U
|
||||
// CHECK:STDOUT: %EqWith.type.loc4_38.1 => constants.%EqWith.type.98ea86.2
|
||||
// CHECK:STDOUT: %T.loc4_22.1 => constants.%T.d94
|
||||
// CHECK:STDOUT: %pattern_type.loc4_22 => constants.%pattern_type.3d4
|
||||
// CHECK:STDOUT: %T.patt.loc4_22.2 => constants.%T.patt.6b9
|
||||
// CHECK:STDOUT: %T.loc4_22.1 => constants.%T.d94
|
||||
// CHECK:STDOUT: %T.as_type.loc4_44.1 => constants.%T.as_type.93d
|
||||
// CHECK:STDOUT: %pattern_type.loc4_42 => constants.%pattern_type.e6374a.2
|
||||
// CHECK:STDOUT: %x.param_patt.loc4_42.2 => constants.%x.param_patt.aa2
|
||||
// CHECK:STDOUT: %x.patt.loc4_42.2 => constants.%x.patt.4e4
|
||||
// CHECK:STDOUT: %pattern_type.loc4_48 => constants.%pattern_type.51d1c4.2
|
||||
// CHECK:STDOUT: %y.param_patt.loc4_48.2 => constants.%y.param_patt.be3
|
||||
// CHECK:STDOUT: %y.patt.loc4_48.2 => constants.%y.patt.b85
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc11(constants.%U, constants.%T.7df) {
|
||||
// CHECK:STDOUT: %U.patt.loc11_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc11_17.1 => constants.%U
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.32ae87.2
|
||||
// CHECK:STDOUT: %T.loc11_27.1 => constants.%T.7df
|
||||
// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.ebc
|
||||
// CHECK:STDOUT: %T.patt.loc11_27.2 => constants.%T.patt.aaa
|
||||
// CHECK:STDOUT: %T.loc11_27.1 => constants.%T.7df
|
||||
// CHECK:STDOUT: %T.as_type.loc11_54.1 => constants.%T.as_type.262
|
||||
// CHECK:STDOUT: %pattern_type.loc11_52 => constants.%pattern_type.f6ec4f.2
|
||||
// CHECK:STDOUT: %x.param_patt.loc11_52.2 => constants.%x.param_patt.a58
|
||||
// CHECK:STDOUT: %x.patt.loc11_52.2 => constants.%x.patt.140
|
||||
// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.51d1c4.2
|
||||
// CHECK:STDOUT: %y.param_patt.loc11_58.2 => constants.%y.param_patt.be3
|
||||
// CHECK:STDOUT: %y.patt.loc11_58.2 => constants.%y.patt.b85
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @EqWith.loc4(constants.%DefaultSpaceshipOnly, <error>) {
|
||||
// CHECK:STDOUT: %U.patt.loc4_12.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc4_12.1 => constants.%DefaultSpaceshipOnly
|
||||
// CHECK:STDOUT: %EqWith.type.loc4_38.1 => constants.%EqWith.type.bf2
|
||||
// CHECK:STDOUT: %T.loc4_22.1 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc4_22 => constants.%pattern_type.062
|
||||
// CHECK:STDOUT: %T.patt.loc4_22.2 => constants.%T.patt.107
|
||||
// CHECK:STDOUT: %T.loc4_22.1 => <error>
|
||||
// CHECK:STDOUT: %T.as_type.loc4_44.1 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc4_42 => <error>
|
||||
// CHECK:STDOUT: %x.param_patt.loc4_42.2 => <error>
|
||||
// CHECK:STDOUT: %x.patt.loc4_42.2 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc4_48 => constants.%pattern_type.80f
|
||||
// CHECK:STDOUT: %y.param_patt.loc4_48.2 => constants.%y.param_patt.62b
|
||||
// CHECK:STDOUT: %y.patt.loc4_48.2 => constants.%y.patt.e91
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc11(constants.%DefaultSpaceshipOnly, <error>) {
|
||||
// CHECK:STDOUT: %U.patt.loc11_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc11_17.1 => constants.%DefaultSpaceshipOnly
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.33f
|
||||
// CHECK:STDOUT: %T.loc11_27.1 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.7f2
|
||||
// CHECK:STDOUT: %T.patt.loc11_27.2 => constants.%T.patt.84b
|
||||
// CHECK:STDOUT: %T.loc11_27.1 => <error>
|
||||
// CHECK:STDOUT: %T.as_type.loc11_54.1 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_52 => <error>
|
||||
// CHECK:STDOUT: %x.param_patt.loc11_52.2 => <error>
|
||||
// CHECK:STDOUT: %x.patt.loc11_52.2 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.80f
|
||||
// CHECK:STDOUT: %y.param_patt.loc11_58.2 => constants.%y.param_patt.62b
|
||||
// CHECK:STDOUT: %y.patt.loc11_58.2 => constants.%y.patt.e91
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc11(constants.%ReturnsStrongOrdering, <error>) {
|
||||
// CHECK:STDOUT: %U.patt.loc11_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc11_17.1 => constants.%ReturnsStrongOrdering
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.0fb
|
||||
// CHECK:STDOUT: %T.loc11_27.1 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.623
|
||||
// CHECK:STDOUT: %T.patt.loc11_27.2 => constants.%T.patt.62e
|
||||
// CHECK:STDOUT: %T.loc11_27.1 => <error>
|
||||
// CHECK:STDOUT: %T.as_type.loc11_54.1 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_52 => <error>
|
||||
// CHECK:STDOUT: %x.param_patt.loc11_52.2 => <error>
|
||||
// CHECK:STDOUT: %x.patt.loc11_52.2 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.37f
|
||||
// CHECK:STDOUT: %y.param_patt.loc11_58.2 => constants.%y.param_patt.794
|
||||
// CHECK:STDOUT: %y.patt.loc11_58.2 => constants.%y.patt.e01
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc11(constants.%ReturnsPartialOrdering, <error>) {
|
||||
// CHECK:STDOUT: %U.patt.loc11_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc11_17.1 => constants.%ReturnsPartialOrdering
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.5f1
|
||||
// CHECK:STDOUT: %T.loc11_27.1 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.53d
|
||||
// CHECK:STDOUT: %T.patt.loc11_27.2 => constants.%T.patt.d27
|
||||
// CHECK:STDOUT: %T.loc11_27.1 => <error>
|
||||
// CHECK:STDOUT: %T.as_type.loc11_54.1 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_52 => <error>
|
||||
// CHECK:STDOUT: %x.param_patt.loc11_52.2 => <error>
|
||||
// CHECK:STDOUT: %x.patt.loc11_52.2 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.9ae
|
||||
// CHECK:STDOUT: %y.param_patt.loc11_58.2 => constants.%y.param_patt.301
|
||||
// CHECK:STDOUT: %y.patt.loc11_58.2 => constants.%y.patt.e76
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc11(constants.%CrossTypeRhs, <error>) {
|
||||
// CHECK:STDOUT: %U.patt.loc11_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc11_17.1 => constants.%CrossTypeRhs
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.8cb
|
||||
// CHECK:STDOUT: %T.loc11_27.1 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.935
|
||||
// CHECK:STDOUT: %T.patt.loc11_27.2 => constants.%T.patt.d75
|
||||
// CHECK:STDOUT: %T.loc11_27.1 => <error>
|
||||
// CHECK:STDOUT: %T.as_type.loc11_54.1 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_52 => <error>
|
||||
// CHECK:STDOUT: %x.param_patt.loc11_52.2 => <error>
|
||||
// CHECK:STDOUT: %x.patt.loc11_52.2 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.aac
|
||||
// CHECK:STDOUT: %y.param_patt.loc11_58.2 => constants.%y.param_patt.da2
|
||||
// CHECK:STDOUT: %y.patt.loc11_58.2 => constants.%y.patt.ac7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @OrderedWith.loc11(constants.%CrossTypeLhs, <error>) {
|
||||
// CHECK:STDOUT: %U.patt.loc11_17.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc11_17.1 => constants.%CrossTypeLhs
|
||||
// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.c6c
|
||||
// CHECK:STDOUT: %T.loc11_27.1 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.b4e
|
||||
// CHECK:STDOUT: %T.patt.loc11_27.2 => constants.%T.patt.6f6
|
||||
// CHECK:STDOUT: %T.loc11_27.1 => <error>
|
||||
// CHECK:STDOUT: %T.as_type.loc11_54.1 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_52 => <error>
|
||||
// CHECK:STDOUT: %x.param_patt.loc11_52.2 => <error>
|
||||
// CHECK:STDOUT: %x.patt.loc11_52.2 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.eb5
|
||||
// CHECK:STDOUT: %y.param_patt.loc11_58.2 => constants.%y.param_patt.65d
|
||||
// CHECK:STDOUT: %y.patt.loc11_58.2 => constants.%y.patt.6a4
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
Reference in New Issue
Block a user