mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-11-15 23:38:10 +00:00
Instead of only looking for rewrite constraints in the declared facet type, identify the facet type and collect rewrite constraints from named constraints as well. This allows rewrites in a named constraint to be found such as `T: N, U: T.X` where `N` is a named constraint that does `extend require impls Z where .X = ...`. The type of `U` will be whatever is specified in the rewrite of `.X` inside `N`. Note this removes some more uses of SubstPeriodSelf from outside of identify, which is a progression, as identifying is meant to be the way to substitute `.Self` generally.