mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-11 22:58:12 +00:00

This commit splits the `#[rustc_deny_explicit_impl(implement_via_object = ...)]` attribute into two attributes `#[rustc_deny_explicit_impl]` and `#[rustc_do_not_implement_via_object]`. This allows us to have special traits that can have user-defined impls but do not have the automatic trait impl for trait objects (`impl Trait for dyn Trait`).
For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.