Auto merge of #90724 - JohnTitor:rollup-zg0kbm3, r=JohnTitor

Rollup of 6 pull requests

Successful merges:

 - #87530 (Add comments regarding superfluous `!Sync` impls)
 - #90591 (treat illumos like solaris in failing ui tests which need it)
 - #90678 (Add some GATs-related regression tests)
 - #90688 (enable `dotprod` target feature in arm)
 - #90708 (Add a note about feature(explicit_generic_args_with_impl_trait) to the relevant error message)
 - #90720 (Update cargo)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
This commit is contained in:
bors 2021-11-09 14:12:54 +00:00
commit 07acdb48a0
18 changed files with 155 additions and 7 deletions

View file

@ -3,6 +3,9 @@ error[E0632]: cannot provide explicit generic arguments when `impl Trait` is use
|
LL | assert_eq!(f::<4usize>(Usizable), 20usize);
| ^^^^^^ explicit generic argument not allowed
|
= note: see issue #83701 <https://github.com/rust-lang/rust/issues/83701> for more information
= help: add `#![feature(explicit_generic_args_with_impl_trait)]` to the crate attributes to enable
error: aborting due to previous error

View file

@ -0,0 +1,24 @@
#![feature(generic_associated_types)]
#![feature(type_alias_impl_trait)]
fn main() {}
trait A<'a> {
type B<'b>: Clone
// FIXME(generic_associated_types): Remove one of the below bounds
// https://github.com/rust-lang/rust/pull/90678#discussion_r744976085
where
'a: 'b, Self: 'a, Self: 'b;
fn a(&'a self) -> Self::B<'a>;
}
struct C;
impl<'a> A<'a> for C {
type B<'b> = impl Clone;
//~^ ERROR: lifetime bound not satisfied
//~| ERROR: could not find defining uses
fn a(&'a self) -> Self::B<'a> {} //~ ERROR: non-defining opaque type use in defining scope
}

View file

@ -0,0 +1,40 @@
error[E0478]: lifetime bound not satisfied
--> $DIR/issue-88595.rs:19:5
|
LL | type B<'b> = impl Clone;
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
note: lifetime parameter instantiated with the lifetime `'a` as defined here
--> $DIR/issue-88595.rs:18:6
|
LL | impl<'a> A<'a> for C {
| ^^
note: but lifetime parameter must outlive the lifetime `'b` as defined here
--> $DIR/issue-88595.rs:19:12
|
LL | type B<'b> = impl Clone;
| ^^
error: non-defining opaque type use in defining scope
--> $DIR/issue-88595.rs:23:23
|
LL | fn a(&'a self) -> Self::B<'a> {}
| ^^^^^^^^^^^
|
note: lifetime used multiple times
--> $DIR/issue-88595.rs:18:6
|
LL | impl<'a> A<'a> for C {
| ^^
LL | type B<'b> = impl Clone;
| ^^
error: could not find defining uses
--> $DIR/issue-88595.rs:19:18
|
LL | type B<'b> = impl Clone;
| ^^^^^^^^^^
error: aborting due to 3 previous errors
For more information about this error, try `rustc --explain E0478`.

View file

@ -0,0 +1,22 @@
// edition:2018
#![feature(generic_associated_types)]
#![feature(type_alias_impl_trait)]
use std::future::Future;
trait MakeFut {
type Fut<'a> where Self: 'a;
fn make_fut<'a>(&'a self) -> Self::Fut<'a>;
}
impl MakeFut for &'_ mut () {
type Fut<'a> = impl Future<Output = ()>;
//~^ ERROR: the type `&mut ()` does not fulfill the required lifetime
fn make_fut<'a>(&'a self) -> Self::Fut<'a> {
async { () }
}
}
fn main() {}

View file

@ -0,0 +1,15 @@
error[E0477]: the type `&mut ()` does not fulfill the required lifetime
--> $DIR/issue-90014.rs:14:5
|
LL | type Fut<'a> = impl Future<Output = ()>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
note: type must outlive the lifetime `'a` as defined here
--> $DIR/issue-90014.rs:14:14
|
LL | type Fut<'a> = impl Future<Output = ()>;
| ^^
error: aborting due to previous error
For more information about this error, try `rustc --explain E0477`.

View file

@ -3,6 +3,9 @@ error[E0632]: cannot provide explicit generic arguments when `impl Trait` is use
|
LL | foo::<str>("".to_string());
| ^^^ explicit generic argument not allowed
|
= note: see issue #83701 <https://github.com/rust-lang/rust/issues/83701> for more information
= help: add `#![feature(explicit_generic_args_with_impl_trait)]` to the crate attributes to enable
error: aborting due to previous error

View file

@ -3,6 +3,9 @@ error[E0632]: cannot provide explicit generic arguments when `impl Trait` is use
|
LL | foo::<String>('a');
| ^^^^^^ explicit generic argument not allowed
|
= note: see issue #83701 <https://github.com/rust-lang/rust/issues/83701> for more information
= help: add `#![feature(explicit_generic_args_with_impl_trait)]` to the crate attributes to enable
error: aborting due to previous error

View file

@ -5,6 +5,9 @@ LL | evt.handle_event::<TestEvent, fn(TestEvent)>(|_evt| {
| ^^^^^^^^^ ^^^^^^^^^^^^^ explicit generic argument not allowed
| |
| explicit generic argument not allowed
|
= note: see issue #83701 <https://github.com/rust-lang/rust/issues/83701> for more information
= help: add `#![feature(explicit_generic_args_with_impl_trait)]` to the crate attributes to enable
error: aborting due to previous error

View file

@ -15,6 +15,7 @@ mod rusti {
target_os = "emscripten",
target_os = "freebsd",
target_os = "fuchsia",
target_os = "illumos",
target_os = "linux",
target_os = "macos",
target_os = "netbsd",

View file

@ -36,6 +36,7 @@ struct Outer {
target_os = "emscripten",
target_os = "freebsd",
target_os = "fuchsia",
target_os = "illumos",
target_os = "linux",
target_os = "macos",
target_os = "netbsd",

View file

@ -3,18 +3,27 @@ error[E0632]: cannot provide explicit generic arguments when `impl Trait` is use
|
LL | func::<u8>(42);
| ^^ explicit generic argument not allowed
|
= note: see issue #83701 <https://github.com/rust-lang/rust/issues/83701> for more information
= help: add `#![feature(explicit_generic_args_with_impl_trait)]` to the crate attributes to enable
error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position
--> $DIR/synthetic-param.rs:23:17
|
LL | Foo::func::<u8>(42);
| ^^ explicit generic argument not allowed
|
= note: see issue #83701 <https://github.com/rust-lang/rust/issues/83701> for more information
= help: add `#![feature(explicit_generic_args_with_impl_trait)]` to the crate attributes to enable
error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position
--> $DIR/synthetic-param.rs:26:23
|
LL | Bar::<i8>::func::<u8>(42);
| ^^ explicit generic argument not allowed
|
= note: see issue #83701 <https://github.com/rust-lang/rust/issues/83701> for more information
= help: add `#![feature(explicit_generic_args_with_impl_trait)]` to the crate attributes to enable
error: aborting due to 3 previous errors

View file

@ -28,10 +28,11 @@ pub fn main() {
target_os = "emscripten",
target_os = "freebsd",
target_os = "fuchsia",
target_os = "illumos",
target_os = "linux",
target_os = "macos",
target_os = "netbsd",
target_os = "openbsd",
target_os = "vxworks",
target_os = "solaris"))]
target_os = "solaris",
target_os = "vxworks"))]
pub fn main() { }

@ -1 +1 @@
Subproject commit 94ca096afbf25f670e76e07dca754fcfe27134be
Subproject commit 2e2a16e983f597da62bc132eb191bc3276d4b1bb