Rollup merge of #82516 - PoignardAzur:inherent-impl-ty, r=oli-obk
Add incomplete feature gate for inherent associate types. Mentored by ``````@oli-obk`````` So far the only change is that instead of giving an automatic error, the following code compiles: ```rust struct Foo; impl Foo { type Bar = isize; } ``` The backend work to make it actually usable isn't there yet. In particular, this: ```rust let x : Foo::Bar; ``` will give you: ```sh error[E0223]: ambiguous associated type --> /$RUSTC_DIR/src/test/ui/assoc-inherent.rs:15:13 | LL | let x : Foo::Bar; | ^^^^^^^^ help: use fully-qualified syntax: `<Foo as Trait>::Bar` ```
This commit is contained in:
commit
5e68c60406
12 changed files with 89 additions and 45 deletions
|
@ -641,6 +641,9 @@ declare_features! (
|
|||
/// Allows `pub` on `macro_rules` items.
|
||||
(active, pub_macro_rules, "1.52.0", Some(78855), None),
|
||||
|
||||
/// Allows associated types in inherent impls.
|
||||
(active, inherent_associated_types, "1.52.0", Some(8995), None),
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// feature-group-end: actual feature gates
|
||||
// -------------------------------------------------------------------------
|
||||
|
@ -666,6 +669,7 @@ pub const INCOMPLETE_FEATURES: &[Symbol] = &[
|
|||
sym::unsized_locals,
|
||||
sym::capture_disjoint_fields,
|
||||
sym::const_generics_defaults,
|
||||
sym::inherent_associated_types,
|
||||
];
|
||||
|
||||
/// Some features are not allowed to be used together at the same time, if
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue