# 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