mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Replace pending generic logic with work stack-based logic (#6404)
This continues work to eliminate pending generics/specifics and get them to be interleaved with instruction imports. I'm trying to use `FinishGenericOrDone` here as a way to help ensure that code correctly handles generics, where the simple alternative would be for each `TryResolveTypedInst` call `SetGenericData` directly (but which might make it easier to call the wrong `ResolveResult` function, and we do need the `GenericId`s to be passed).
This commit is contained in:
+2
-2
@@ -88,10 +88,10 @@ fn CallSpecific(x: C*) -> C* {
|
||||
// CHECK:STDOUT: %specific_impl_fn.103: <specific function> = specific_impl_function %impl.elem0.fac, @Copy.Op(%T.417) [symbolic]
|
||||
// CHECK:STDOUT: %T.d9f: type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %ptr.4f0: type = ptr_type %T.d9f [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.482: <witness> = require_complete_type %ptr.4f0 [symbolic]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.75b: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.d9f) [symbolic]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.692: %ptr.as.Copy.impl.Op.type.75b = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.a60: type = pattern_type %ptr.4f0 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.482: <witness> = require_complete_type %ptr.4f0 [symbolic]
|
||||
// CHECK:STDOUT: %Function.specific_fn.c1b: <specific function> = specific_function %Function, @Function(%T.417) [symbolic]
|
||||
// CHECK:STDOUT: %Copy.lookup_impl_witness.c66: <witness> = lookup_impl_witness %ptr.4f0, @Copy [symbolic]
|
||||
// CHECK:STDOUT: %Copy.facet.747: %Copy.type = facet_value %ptr.4f0, (%Copy.lookup_impl_witness.c66) [symbolic]
|
||||
@@ -311,10 +311,10 @@ fn CallSpecific(x: C*) -> C* {
|
||||
// CHECK:STDOUT: %specific_impl_fn.103: <specific function> = specific_impl_function %impl.elem0.fac, @Copy.Op(%T.417) [symbolic]
|
||||
// CHECK:STDOUT: %T.d9f: type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %ptr.4f0: type = ptr_type %T.d9f [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.482: <witness> = require_complete_type %ptr.4f0 [symbolic]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.75b: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.d9f) [symbolic]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.692: %ptr.as.Copy.impl.Op.type.75b = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.a60: type = pattern_type %ptr.4f0 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.482: <witness> = require_complete_type %ptr.4f0 [symbolic]
|
||||
// CHECK:STDOUT: %Function.specific_fn.c1b: <specific function> = specific_function %Function, @Function(%T.417) [symbolic]
|
||||
// CHECK:STDOUT: %Copy.lookup_impl_witness.c66: <witness> = lookup_impl_witness %ptr.4f0, @Copy [symbolic]
|
||||
// CHECK:STDOUT: %Copy.facet.747: %Copy.type = facet_value %ptr.4f0, (%Copy.lookup_impl_witness.c66) [symbolic]
|
||||
|
||||
Reference in New Issue
Block a user