---
# System prepended metadata

title: 2023-03-06 meeting - extended updates
tags: [weekly-meeting]

---

---
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