mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 08:54:47 +01:00
Rearrange convert: construct FacetAccessType from a facet value before impl lookup instead of after (#6113)
This makes convert more consistent, it always makes a FacetAccessType for a facet value, rather than only doing so after lookup returns. The intention for this is that FacetAccessType will evaluate to SymbolicBindingType in the future, so this will expose that constant value to impl lookup instead of the original facet value, which will avoid impl lookup having to deal with `.Self` or `BindSymbolicName` specifically.
This commit is contained in:
+1
-1
@@ -1233,7 +1233,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [concrete = constants.%Factory.type.3cb]
|
||||
// CHECK:STDOUT: %.loc5_23: %Factory.assoc_type.579 = specific_constant imports.%Main.import_ref.46c, @Factory(constants.%B) [concrete = constants.%assoc0.153]
|
||||
// CHECK:STDOUT: %Make.ref: %Factory.assoc_type.579 = name_ref Make, %.loc5_23 [concrete = constants.%assoc0.153]
|
||||
// CHECK:STDOUT: %Factory.facet: %Factory.type.3cb = facet_value constants.%A, (constants.%Factory.impl_witness) [concrete = constants.%Factory.facet]
|
||||
// CHECK:STDOUT: %Factory.facet: %Factory.type.3cb = facet_value %A.ref, (constants.%Factory.impl_witness) [concrete = constants.%Factory.facet]
|
||||
// CHECK:STDOUT: %.loc5_11: %Factory.type.3cb = converted %A.ref, %Factory.facet [concrete = constants.%Factory.facet]
|
||||
// CHECK:STDOUT: %impl.elem0: %.549 = impl_witness_access constants.%Factory.impl_witness, element0 [concrete = constants.%A.as.Factory.impl.Make]
|
||||
// CHECK:STDOUT: %.loc4: ref %B = splice_block %return {}
|
||||
|
||||
Reference in New Issue
Block a user