--- tags: weekly-meeting --- # 2023-03-06 meeting - extended updates ### RPITIT refactoring * have something working in like 95% of cases in my branch (some diagnostics were failing) * started to merge PRs into master under an unstable option `-Zlower-impl-trait-in-trait-to-assoc-ty`, [#108141](https://github.com/rust-lang/rust/pull/108141), [#108568](https://github.com/rust-lang/rust/pull/108568), [#108672](https://github.com/rust-lang/rust/pull/108672) and [#108700](https://github.com/rust-lang/rust/pull/108700). * this way we can address last remaining diagnostic issues directly on master and everything will be easier ### AFIT/RPITIT stabilization * AFIT mostly just works, crates using the functionality in real-world to varying degrees. * RPITIT works well alone, but has some issues when combined with AFIT. * Few open issues which are either not fixable or polishing issues * Major blocker is figuring out how to add `Send` (etc., mostly marker trait) bounds onto AFIT functions in callers. wg-async has been discussing several proposals. ### TAITs * before stabilization we're reducing their defining scopes: * only allow registering hidden types in functions that have the TAIT in their argument or return types. * future compatible with also looking into `where` bounds * easier for IDEs * [implementation here](https://github.com/rust-lang/rust/pull/107809) ### GATs No new updates - deep dive proposed for retrospective and next steps. ### a-mir-formality ### Subtyping refactor Nothing happening in rustc afaik ### Implied bounds Fully explicit implied remain blocked on the new trait solver and coinductive trait goals. Until then aliemjay has a lot of open PRs which improve the way we handle them in rustc. The one which probably has to land next is https://github.com/rust-lang/rust/pull/104098 ### Trait solver refactor The general structure of the solver is pretty much completely implemented. There are still a lot of smaller issues though, some of which are quite difficult to resolve. @compiler-errors has a far better understanding of how usable the solver already is. * compiler-errors: HIR typecheck isn't really happy with lazy norm yet -- we can't even add numbers like [this](https://godbolt.org/z/njjnqKbG5). But the new solver has pretty good parity with the old solver in other cases. Mostly succeeding in keeping the tracking issue ([#107374](https://github.com/rust-lang/rust/issues/107374)) up-to-date. ### Trait object upcasting * RFC3324 was merged in Dec 10. Implementation was complete before then. * In December did an analysis on the impacts of this feature on std traits. T-libs-api thinks this looks fine. * T-libs-api also suggests taking into consideration traits in the ecosystem outside std. Haven't sketched out a good plan to do so. * Nothing much happened since then. @crlf0710 needs some instructions for next steps before preparing stablization pr. ### Negative impls * RFC is almost ready https://hackmd.io/ZmpF0ITPRWKx6jYxgCWS7g * @spastorino is working on [#102678](https://github.com/rust-lang/rust/issues/102678) * @nikomatsakis and @spastorino are meeting on a weekly basis to move this forward. ### Polonius ### chalk-ty Some work by @eggyal on `TypeFoldable`/`TypeVisitable`, currently hashing out generic impls