# GATs triage
* Tracking issue: [#44265]
## Design questions
* What syntax to use for a scenario like `dyn Foo<Y<'a> = u32>` -- do you have to give a name? (cc [#67510])
## Blocking issues (lifetimes only)
- ~~[#76187] - Bad GAT usage causes infinite build/check/run~~
- Turns out not to be GAT issue
- [#76407] - Associated type constraint fails, even if it implements requested trait
- Probably failed associated type normalization, might not be GATs
- https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=87f0cc94ab4a9a620b684b4c7bf6431a
- Requires lazy normalization
- [#76826] - ICE when combining GATs and HRTBs
- Similar to [#76407], failed normalization
- [#81801] - Bad diagnostics for GATs in trait paths
- Fixed by [#82272]
- [#81862] - GAT: elided lifetimes in paths errors with `error[E0107]: missing generics for associated type`
- diagnostic issue largely, but an important one
- Fixed by [#82272]
- [#81961] - GAT: incorrect suggestion on missing lifetime
- diagnostic issue, but an important one
- Fixed by [#82272]
## Blocking issues (all)
- [#80626] - Enum variant with GAT field fails to derive Sized
- type GAT
- [#81823] - Trait objects do not work with generic associated types #81823 -- matthewjasper
## Likely not blocking
- [#78113] - GAT lifetime mismatch with type parametrised over dyn trait object with restricted lifetime
- Needs better diagnostics
- [#77905] - GAT: unconstrained lifetime in output when using GAT in fn type
## Not blocking
- [#69268] - Yield reference in generator with GAT
- Feature request re. generator
- [#80982] - Error in trait solving
- Needs better diagnostics, not GAT issue
## Needs test
- [#70303] - GAT: the type `[type error]` has an unknown layout
- addressed by [#79554]
- needs test
- [#70304] - GAT: open drop from non-ADT `[type error]`
- addressed by [#79554]
- needs test
- [#71176] - GAT ICEs: different parameter counts, cat_expr Errd, broken MIR, debuginfo
- addressed by [#79554]
- needs test
- [#81487] - Error when inferring a lifetime in return type using GATs
- Works with `feature(nll)`
- fixed by [#79554]]
- needs test
- [#78671] - ICE: compiler/rustc_middle/src/ty/subst.rs:529:17: type parameter `T/#1` (T/1) out of range when substituting, substs=Self
- Type GAT, weird example
- needs test
- [#79636] - Compiler panic during GAT type bound usage
- Type GAT
- Possibly fixed by [#79554]
- Better diagnostics
- needs test
- [#79768] - Internal Compiler Error caused by Generic Associated Types
- type GAT, similar to [#79636]
- needs test
- [#81712] - GAT ICE: missing generic associated type in trait path
- Related to [#79768]
- Possibly fixed by [#79554]
- needs test
## Closed
- [#74798] - Where clause in GAT must be repeated in function definition
- [#67510] - Allow generic associate types in trait paths, addressed by [#79554]
- [#68648] - GAT ICE: impl item and trait item have different parameter counts, addressed by [#79554]
- [#68649] - GAT ICE: place local already assigned to, addressed by [#79554]
- [#68650] - GAT ICE: unsize_thin_ptr: called on bad types, addressed by [#79554]
- [#68652] - GAT ICE: codegen_argument, addressed by [#79554]
- [#74684] - Broken LLVM with GAT, addressed by [#79554]
- [#76535] - Compiler panics when creating a trait object for a trait which uses generic_associated_types
- Possibly fixed by [#79554]
- [#79422] - `generic_associated_types` fails on dyn dyn
- Possibly fixed by [#79554]
- [#80433] - ICE when using "Generic Associated Types" feature with references for impl block
- Possibly fixed by [#79554] (might require a workaround though)
- [#75415] - nightly - ICE when using GATs with const generics
- Not blocking for lifetimes only
- [#79666] - ICE with const generics and GATs
- const GAT
- duplicate of [#75415] probably
[#44265]: https://github.com/rust-lang/rust/issues/44265
[#67510]: https://github.com/rust-lang/rust/issues/67510
[#79554]: https://github.com/rust-lang/rust/issues/79554