diff --git a/src/test/ui/rfc1598-generic-associated-types/collections.rs b/src/test/ui/rfc1598-generic-associated-types/collections.rs index e71166ed65bba..a6dbb03d379db 100644 --- a/src/test/ui/rfc1598-generic-associated-types/collections.rs +++ b/src/test/ui/rfc1598-generic-associated-types/collections.rs @@ -9,10 +9,11 @@ // except according to those terms. #![feature(generic_associated_types)] +//~^ WARNING the feature `generic_associated_types` is incomplete #![feature(associated_type_defaults)] -//FIXME(#44265): "lifetime parameters are not allowed on this type" errors will be addressed in a -//follow-up PR +// FIXME(#44265): "lifetime parameters are not allowed on this type" errors will be addressed in a +// follow-up PR. // A Collection trait and collection families. Based on // http://smallcultfollowing.com/babysteps/blog/2016/11/03/ diff --git a/src/test/ui/rfc1598-generic-associated-types/collections.stderr b/src/test/ui/rfc1598-generic-associated-types/collections.stderr index 8c31ab2ca88e4..0e7d6ace1bb1d 100644 --- a/src/test/ui/rfc1598-generic-associated-types/collections.stderr +++ b/src/test/ui/rfc1598-generic-associated-types/collections.stderr @@ -1,29 +1,35 @@ +warning: the feature `generic_associated_types` is incomplete and may cause the compiler to crash + --> $DIR/collections.rs:11:12 + | +LL | #![feature(generic_associated_types)] + | ^^^^^^^^^^^^^^^^^^^^^^^^ + error[E0109]: type parameters are not allowed on this type - --> $DIR/collections.rs:65:90 + --> $DIR/collections.rs:66:90 | LL | fn floatify(ints: &C) -> <>::Family as CollectionFamily>::Member | ^^^ type parameter not allowed error[E0109]: type parameters are not allowed on this type - --> $DIR/collections.rs:77:69 + --> $DIR/collections.rs:78:69 | LL | fn floatify_sibling(ints: &C) -> >::Sibling | ^^^ type parameter not allowed error[E0109]: type parameters are not allowed on this type - --> $DIR/collections.rs:26:71 + --> $DIR/collections.rs:27:71 | LL | <>::Family as CollectionFamily>::Member; | ^ type parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/collections.rs:33:50 + --> $DIR/collections.rs:34:50 | LL | fn iterate<'iter>(&'iter self) -> Self::Iter<'iter>; | ^^^^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/collections.rs:59:50 + --> $DIR/collections.rs:60:50 | LL | fn iterate<'iter>(&'iter self) -> Self::Iter<'iter> { | ^^^^^ lifetime parameter not allowed diff --git a/src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.rs b/src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.rs index 0429410031526..88a660b3a5afe 100644 --- a/src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.rs +++ b/src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.rs @@ -9,11 +9,12 @@ // except according to those terms. #![feature(generic_associated_types)] +//~^ WARNING the feature `generic_associated_types` is incomplete use std::ops::Deref; -//FIXME(#44265): "lifetime parameters are not allowed on this type" errors will be addressed in a -//follow-up PR +// FIXME(#44265): "lifetime parameters are not allowed on this type" errors will be addressed in a +// follow-up PR. trait Foo { type Bar<'a, 'b>; diff --git a/src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.stderr b/src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.stderr index 1746122eb49f4..5c85698fa55c7 100644 --- a/src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.stderr +++ b/src/test/ui/rfc1598-generic-associated-types/construct_with_other_type.stderr @@ -1,17 +1,23 @@ +warning: the feature `generic_associated_types` is incomplete and may cause the compiler to crash + --> $DIR/construct_with_other_type.rs:11:12 + | +LL | #![feature(generic_associated_types)] + | ^^^^^^^^^^^^^^^^^^^^^^^^ + error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/construct_with_other_type.rs:26:46 + --> $DIR/construct_with_other_type.rs:27:46 | LL | type Baa<'a>: Deref as Foo>::Bar<'a, 'static>>; | ^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/construct_with_other_type.rs:26:63 + --> $DIR/construct_with_other_type.rs:27:63 | LL | type Baa<'a>: Deref as Foo>::Bar<'a, 'static>>; | ^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/construct_with_other_type.rs:34:40 + --> $DIR/construct_with_other_type.rs:35:40 | LL | type Baa<'a> = &'a ::Bar<'a, 'static>; | ^^ lifetime parameter not allowed diff --git a/src/test/ui/rfc1598-generic-associated-types/empty_generics.rs b/src/test/ui/rfc1598-generic-associated-types/empty_generics.rs index b12c075d13291..d8a2a1b73f7ef 100644 --- a/src/test/ui/rfc1598-generic-associated-types/empty_generics.rs +++ b/src/test/ui/rfc1598-generic-associated-types/empty_generics.rs @@ -9,6 +9,7 @@ // except according to those terms. #![feature(generic_associated_types)] +//~^ WARNING the feature `generic_associated_types` is incomplete trait Foo { type Bar<,>; diff --git a/src/test/ui/rfc1598-generic-associated-types/empty_generics.stderr b/src/test/ui/rfc1598-generic-associated-types/empty_generics.stderr index aff3044e9a14d..2670c3aa142b2 100644 --- a/src/test/ui/rfc1598-generic-associated-types/empty_generics.stderr +++ b/src/test/ui/rfc1598-generic-associated-types/empty_generics.stderr @@ -1,8 +1,14 @@ error: expected one of `>`, identifier, or lifetime, found `,` - --> $DIR/empty_generics.rs:14:14 + --> $DIR/empty_generics.rs:15:14 | LL | type Bar<,>; | ^ expected one of `>`, identifier, or lifetime here +warning: the feature `generic_associated_types` is incomplete and may cause the compiler to crash + --> $DIR/empty_generics.rs:11:12 + | +LL | #![feature(generic_associated_types)] + | ^^^^^^^^^^^^^^^^^^^^^^^^ + error: aborting due to previous error diff --git a/src/test/ui/rfc1598-generic-associated-types/generic-associated-types-where.stderr b/src/test/ui/rfc1598-generic-associated-types/generic-associated-types-where.stderr new file mode 100644 index 0000000000000..97d5482735f86 --- /dev/null +++ b/src/test/ui/rfc1598-generic-associated-types/generic-associated-types-where.stderr @@ -0,0 +1,6 @@ +warning: the feature `generic_associated_types` is incomplete and may cause the compiler to crash + --> $DIR/generic-associated-types-where.rs:11:12 + | +LL | #![feature(generic_associated_types)] + | ^^^^^^^^^^^^^^^^^^^^^^^^ + diff --git a/src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.rs b/src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.rs index 263b3cb42eb4f..267272ded8c06 100644 --- a/src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.rs +++ b/src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.rs @@ -9,11 +9,12 @@ // except according to those terms. #![feature(generic_associated_types)] +//~^ WARNING the feature `generic_associated_types` is incomplete use std::ops::Deref; -//FIXME(#44265): "lifetime parameters are not allowed on this type" errors will be addressed in a -//follow-up PR +// FIXME(#44265): "lifetime parameters are not allowed on this type" errors will be addressed in a +// follow-up PR. trait Iterable { type Item<'a>; diff --git a/src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.stderr b/src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.stderr index d48c21477b310..79b29902ccdf0 100644 --- a/src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.stderr +++ b/src/test/ui/rfc1598-generic-associated-types/generic_associated_type_undeclared_lifetimes.stderr @@ -1,29 +1,35 @@ +warning: the feature `generic_associated_types` is incomplete and may cause the compiler to crash + --> $DIR/generic_associated_type_undeclared_lifetimes.rs:11:12 + | +LL | #![feature(generic_associated_types)] + | ^^^^^^^^^^^^^^^^^^^^^^^^ + error[E0261]: use of undeclared lifetime name `'b` - --> $DIR/generic_associated_type_undeclared_lifetimes.rs:22:37 + --> $DIR/generic_associated_type_undeclared_lifetimes.rs:23:37 | LL | + Deref>; | ^^ undeclared lifetime error[E0261]: use of undeclared lifetime name `'undeclared` - --> $DIR/generic_associated_type_undeclared_lifetimes.rs:26:41 + --> $DIR/generic_associated_type_undeclared_lifetimes.rs:27:41 | LL | fn iter<'a>(&'a self) -> Self::Iter<'undeclared>; | ^^^^^^^^^^^ undeclared lifetime error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/generic_associated_type_undeclared_lifetimes.rs:20:47 + --> $DIR/generic_associated_type_undeclared_lifetimes.rs:21:47 | LL | type Iter<'a>: Iterator> | ^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/generic_associated_type_undeclared_lifetimes.rs:22:37 + --> $DIR/generic_associated_type_undeclared_lifetimes.rs:23:37 | LL | + Deref>; | ^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/generic_associated_type_undeclared_lifetimes.rs:26:41 + --> $DIR/generic_associated_type_undeclared_lifetimes.rs:27:41 | LL | fn iter<'a>(&'a self) -> Self::Iter<'undeclared>; | ^^^^^^^^^^^ lifetime parameter not allowed diff --git a/src/test/ui/rfc1598-generic-associated-types/iterable.rs b/src/test/ui/rfc1598-generic-associated-types/iterable.rs index 38967dbbe4530..b52b6e024219a 100644 --- a/src/test/ui/rfc1598-generic-associated-types/iterable.rs +++ b/src/test/ui/rfc1598-generic-associated-types/iterable.rs @@ -9,11 +9,12 @@ // except according to those terms. #![feature(generic_associated_types)] +//~^ WARNING the feature `generic_associated_types` is incomplete use std::ops::Deref; -//FIXME(#44265): "lifetime parameters are not allowed on this type" errors will be addressed in a -//follow-up PR +// FIXME(#44265): "lifetime parameters are not allowed on this type" errors will be addressed in a +// follow-up PR. trait Iterable { type Item<'a>; diff --git a/src/test/ui/rfc1598-generic-associated-types/iterable.stderr b/src/test/ui/rfc1598-generic-associated-types/iterable.stderr index 737a29ec2c8be..de3563c14eb7c 100644 --- a/src/test/ui/rfc1598-generic-associated-types/iterable.stderr +++ b/src/test/ui/rfc1598-generic-associated-types/iterable.stderr @@ -1,35 +1,41 @@ +warning: the feature `generic_associated_types` is incomplete and may cause the compiler to crash + --> $DIR/iterable.rs:11:12 + | +LL | #![feature(generic_associated_types)] + | ^^^^^^^^^^^^^^^^^^^^^^^^ + error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/iterable.rs:20:47 + --> $DIR/iterable.rs:21:47 | LL | type Iter<'a>: Iterator>; | ^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/iterable.rs:49:53 + --> $DIR/iterable.rs:50:53 | LL | fn make_iter<'a, I: Iterable>(it: &'a I) -> I::Iter<'a> { | ^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/iterable.rs:54:60 + --> $DIR/iterable.rs:55:60 | LL | fn get_first<'a, I: Iterable>(it: &'a I) -> Option> { | ^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/iterable.rs:23:41 + --> $DIR/iterable.rs:24:41 | LL | fn iter<'a>(&'a self) -> Self::Iter<'a>; | ^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/iterable.rs:32:41 + --> $DIR/iterable.rs:33:41 | LL | fn iter<'a>(&'a self) -> Self::Iter<'a> { | ^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/iterable.rs:43:41 + --> $DIR/iterable.rs:44:41 | LL | fn iter<'a>(&'a self) -> Self::Iter<'a> { | ^^ lifetime parameter not allowed diff --git a/src/test/ui/rfc1598-generic-associated-types/parameter_number_and_kind.rs b/src/test/ui/rfc1598-generic-associated-types/parameter_number_and_kind.rs index 51527d4117c2c..82e82e6dbccaf 100644 --- a/src/test/ui/rfc1598-generic-associated-types/parameter_number_and_kind.rs +++ b/src/test/ui/rfc1598-generic-associated-types/parameter_number_and_kind.rs @@ -9,12 +9,13 @@ // except according to those terms. #![feature(generic_associated_types)] +//~^ WARNING the feature `generic_associated_types` is incomplete #![feature(associated_type_defaults)] -//FIXME(#44265): "lifetime parameters are not allowed on this type" errors will be addressed in a -//follow-up PR +// FIXME(#44265): "lifetime parameters are not allowed on this type" errors will be addressed in a +// follow-up PR. -//FIXME(#44265): Update expected errors once E110 is resolved, now does not get past `trait Foo` +// FIXME(#44265): Update expected errors once E110 is resolved, now does not get past `trait Foo`. trait Foo { type A<'a>; diff --git a/src/test/ui/rfc1598-generic-associated-types/parameter_number_and_kind.stderr b/src/test/ui/rfc1598-generic-associated-types/parameter_number_and_kind.stderr index c8d37a51fa96b..e47daf2ae1bba 100644 --- a/src/test/ui/rfc1598-generic-associated-types/parameter_number_and_kind.stderr +++ b/src/test/ui/rfc1598-generic-associated-types/parameter_number_and_kind.stderr @@ -1,29 +1,35 @@ +warning: the feature `generic_associated_types` is incomplete and may cause the compiler to crash + --> $DIR/parameter_number_and_kind.rs:11:12 + | +LL | #![feature(generic_associated_types)] + | ^^^^^^^^^^^^^^^^^^^^^^^^ + error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/parameter_number_and_kind.rs:26:27 + --> $DIR/parameter_number_and_kind.rs:27:27 | LL | type FOk = Self::E<'static, T>; | ^^^^^^^ lifetime parameter not allowed error[E0109]: type parameters are not allowed on this type - --> $DIR/parameter_number_and_kind.rs:26:36 + --> $DIR/parameter_number_and_kind.rs:27:36 | LL | type FOk = Self::E<'static, T>; | ^ type parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/parameter_number_and_kind.rs:29:26 + --> $DIR/parameter_number_and_kind.rs:30:26 | LL | type FErr1 = Self::E<'static, 'static>; // Error | ^^^^^^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/parameter_number_and_kind.rs:31:29 + --> $DIR/parameter_number_and_kind.rs:32:29 | LL | type FErr2 = Self::E<'static, T, u32>; // Error | ^^^^^^^ lifetime parameter not allowed error[E0109]: type parameters are not allowed on this type - --> $DIR/parameter_number_and_kind.rs:31:38 + --> $DIR/parameter_number_and_kind.rs:32:38 | LL | type FErr2 = Self::E<'static, T, u32>; // Error | ^ type parameter not allowed diff --git a/src/test/ui/rfc1598-generic-associated-types/pointer_family.rs b/src/test/ui/rfc1598-generic-associated-types/pointer_family.rs index cbeeb1d6ca7b2..0300ad06194e7 100644 --- a/src/test/ui/rfc1598-generic-associated-types/pointer_family.rs +++ b/src/test/ui/rfc1598-generic-associated-types/pointer_family.rs @@ -9,8 +9,9 @@ // except according to those terms. #![feature(generic_associated_types)] +//~^ WARNING the feature `generic_associated_types` is incomplete -//FIXME(#44265): "type parameter not allowed" errors will be addressed in a follow-up PR +// FIXME(#44265): "type parameter not allowed" errors will be addressed in a follow-up PR. use std::rc::Rc; use std::sync::Arc; diff --git a/src/test/ui/rfc1598-generic-associated-types/pointer_family.stderr b/src/test/ui/rfc1598-generic-associated-types/pointer_family.stderr index 3e772eee4f492..3be0481dc67e8 100644 --- a/src/test/ui/rfc1598-generic-associated-types/pointer_family.stderr +++ b/src/test/ui/rfc1598-generic-associated-types/pointer_family.stderr @@ -1,23 +1,29 @@ +warning: the feature `generic_associated_types` is incomplete and may cause the compiler to crash + --> $DIR/pointer_family.rs:11:12 + | +LL | #![feature(generic_associated_types)] + | ^^^^^^^^^^^^^^^^^^^^^^^^ + error[E0109]: type parameters are not allowed on this type - --> $DIR/pointer_family.rs:46:21 + --> $DIR/pointer_family.rs:47:21 | LL | bar: P::Pointer, | ^^^^^^ type parameter not allowed error[E0109]: type parameters are not allowed on this type - --> $DIR/pointer_family.rs:21:42 + --> $DIR/pointer_family.rs:22:42 | LL | fn new(value: T) -> Self::Pointer; | ^ type parameter not allowed error[E0109]: type parameters are not allowed on this type - --> $DIR/pointer_family.rs:29:42 + --> $DIR/pointer_family.rs:30:42 | LL | fn new(value: T) -> Self::Pointer { | ^ type parameter not allowed error[E0109]: type parameters are not allowed on this type - --> $DIR/pointer_family.rs:39:42 + --> $DIR/pointer_family.rs:40:42 | LL | fn new(value: T) -> Self::Pointer { | ^ type parameter not allowed diff --git a/src/test/ui/rfc1598-generic-associated-types/shadowing.stderr b/src/test/ui/rfc1598-generic-associated-types/shadowing.stderr new file mode 100644 index 0000000000000..f2d626f921c89 --- /dev/null +++ b/src/test/ui/rfc1598-generic-associated-types/shadowing.stderr @@ -0,0 +1,6 @@ +warning: the feature `generic_associated_types` is incomplete and may cause the compiler to crash + --> $DIR/shadowing.rs:11:12 + | +LL | #![feature(generic_associated_types)] + | ^^^^^^^^^^^^^^^^^^^^^^^^ + diff --git a/src/test/ui/rfc1598-generic-associated-types/streaming_iterator.rs b/src/test/ui/rfc1598-generic-associated-types/streaming_iterator.rs index 522ddb5dc135e..aa90886fdfd65 100644 --- a/src/test/ui/rfc1598-generic-associated-types/streaming_iterator.rs +++ b/src/test/ui/rfc1598-generic-associated-types/streaming_iterator.rs @@ -9,8 +9,9 @@ // except according to those terms. #![feature(generic_associated_types)] +//~^ WARNING the feature `generic_associated_types` is incomplete -//FIXME(#44265): "lifetime parameter not allowed on this type" errors will be addressed in a +// FIXME(#44265): "lifetime parameter not allowed on this type" errors will be addressed in a // follow-up PR use std::fmt::Display; diff --git a/src/test/ui/rfc1598-generic-associated-types/streaming_iterator.stderr b/src/test/ui/rfc1598-generic-associated-types/streaming_iterator.stderr index 12e206cbd476a..4aca8d476877b 100644 --- a/src/test/ui/rfc1598-generic-associated-types/streaming_iterator.stderr +++ b/src/test/ui/rfc1598-generic-associated-types/streaming_iterator.stderr @@ -1,29 +1,35 @@ +warning: the feature `generic_associated_types` is incomplete and may cause the compiler to crash + --> $DIR/streaming_iterator.rs:11:12 + | +LL | #![feature(generic_associated_types)] + | ^^^^^^^^^^^^^^^^^^^^^^^^ + error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/streaming_iterator.rs:27:41 + --> $DIR/streaming_iterator.rs:28:41 | LL | bar: ::Item<'static>, | ^^^^^^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/streaming_iterator.rs:35:64 + --> $DIR/streaming_iterator.rs:36:64 | LL | fn foo(iter: T) where T: StreamingIterator, for<'a> T::Item<'a>: Display { /* ... */ } | ^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/streaming_iterator.rs:21:48 + --> $DIR/streaming_iterator.rs:22:48 | LL | fn next<'a>(&'a self) -> Option>; | ^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/streaming_iterator.rs:47:37 + --> $DIR/streaming_iterator.rs:48:37 | LL | type Item<'a> = (usize, I::Item<'a>); | ^^ lifetime parameter not allowed error[E0110]: lifetime parameters are not allowed on this type - --> $DIR/streaming_iterator.rs:49:48 + --> $DIR/streaming_iterator.rs:50:48 | LL | fn next<'a>(&'a self) -> Option> { | ^^ lifetime parameter not allowed