The associated_type_defaults (tracked at https://github.com/rust-lang/rust/issues/29661) is about allowing defaults for associated types. In the issue some discussion has happened about problems with default methods if the associated type is overriden.
What I would like to propose is some way for a default associated type that can be used in default methods but cannot be overriden. The motivating example is this:
I want to extend the Digest trait from the digest crate with a convenience method. Any use of a digest function will have an associated (in spirit, not currently possible in Rust afaiui) output type for Hash values, namely generic_array::GenericArray<u8, Self as digest::FixedOutput>::OutputSize. Being able to specify this type as an associated type would save me from using an external type alias that’s generic over Digests and that I have to keep updated here
Perhaps a good name for this would be associated type alias? Not sure. Anyway, could adding this feature introduce any of the soundness issues that are preventing associated_type_defaults from moving forwards? I think this suggestion here is sufficiently different that it could be implemented independently, perhaps with different syntax to differentiate it from specifying a default?