2023-09-22 rustc trait system refactor update
for more information, check out the implementation tracking issue #107374, or the Trait System Refactor Initiative Issue Tracker. These updates are from my perspective and are not the official stance of the initiative. They exist to bridge the gap between major progress updates via rust-lang blog posts and the passive status tracking via the tracking issue and the initiative GitHub repository.I finished an initial implementation of intercrate_ambiguity_causes
using proof trees this week (#115996) 🎉 While we still have to do some cleanup there, I am finally able to focus on other big tasks again.
I started to work on the next major remaining issue for coherence: associated type constraints, e.g. T: Iterator<Item = U>
, can be used to normalize <T as Iterator>::Item
to U
, but can also be proven by setting U
to <T as Iterator>::Item
itself. Proving associated type constraints this way is not supported with the new solver right now. The type for U
has to actually be a normalized version of the associated type, not the associated type itself. This is trait-system-refactor-initiative#1.
Apart from proof trees there haven’t been any other significant PRs for the new solver this week.
if you find any typos or errors in this post, please pm me on zulip, discord or cohost