implement #![feature(gca_adts)]
The Issue & Context
The PR implements the feature gate `#![feature(gca_adts)]` to enable generic associated types (GATs) in Rust, a long-requested language feature allowing associated types to be generic over lifetimes or types.
Root Cause Analysis
Previously, Rust's associated types could not be parameterized generically, limiting expressiveness and forcing workarounds in complex trait designs.
Solution Strategy & Architectural Pattern
This change introduces compiler support for generic associated types, updating the type checker, trait resolution, and related compiler internals to handle GAT syntax and semantics, guarded behind a feature flag.
Key Takeaway for Contributors
With this merged implementation, Rust users can experiment with GATs to write more flexible and expressive abstractions, advancing Rust's type system capabilities while still requiring the feature gate for stability.