"existential types are unstable"
);
}
-
- ast::ImplItemKind::Type(_) if !ii.generics.params.is_empty() => {
- gate_feature_post!(&self, generic_associated_types, ii.span,
- "generic associated types are unstable");
+ ast::ImplItemKind::Type(_) => {
+ if !ii.generics.params.is_empty() {
+ gate_feature_post!(&self, generic_associated_types, ii.span,
+ "generic associated types are unstable");
+ }
+ if !ii.generics.where_clause.predicates.is_empty() {
+ gate_feature_post!(&self, generic_associated_types, ii.span,
+ "where clauses on associated types are unstable");
+ }
}
_ => {}
}
}
struct Foo;
+
impl PointerFamily<u32> for Foo {
type Pointer<usize> = Box<usize>;
//~^ ERROR generic associated types are unstable
//~^ ERROR where clauses on associated types are unstable
}
+impl Bar for Foo {
+ type Assoc where Self: Sized = Foo;
+ //~^ ERROR where clauses on associated types are unstable
+}
fn main() {}
= help: add #![feature(generic_associated_types)] to the crate attributes to enable
error[E0658]: generic associated types are unstable (see issue #44265)
- --> $DIR/feature-gate-generic_associated_types.rs:23:5
+ --> $DIR/feature-gate-generic_associated_types.rs:24:5
|
LL | type Pointer<usize> = Box<usize>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: add #![feature(generic_associated_types)] to the crate attributes to enable
error[E0658]: generic associated types are unstable (see issue #44265)
- --> $DIR/feature-gate-generic_associated_types.rs:25:5
+ --> $DIR/feature-gate-generic_associated_types.rs:26:5
|
LL | type Pointer2<u32> = Box<u32>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: add #![feature(generic_associated_types)] to the crate attributes to enable
error[E0658]: where clauses on associated types are unstable (see issue #44265)
- --> $DIR/feature-gate-generic_associated_types.rs:30:5
+ --> $DIR/feature-gate-generic_associated_types.rs:31:5
|
LL | type Assoc where Self: Sized;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: add #![feature(generic_associated_types)] to the crate attributes to enable
-error: aborting due to 6 previous errors
+error[E0658]: where clauses on associated types are unstable (see issue #44265)
+ --> $DIR/feature-gate-generic_associated_types.rs:36:5
+ |
+LL | type Assoc where Self: Sized = Foo;
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+ = help: add #![feature(generic_associated_types)] to the crate attributes to enable
+
+error: aborting due to 7 previous errors
For more information about this error, try `rustc --explain E0658`.