Rollup merge of #122318 - compiler-errors:next-solver-tests, r=lcnr

Revision-related tweaks for next-solver tests

1. Add `ignore-compare-mode-next-solver` to any test that already has explicit `current next` revisions, since the test failures when testing with `--compare-mode=next-solver` will be false positives.
2. Explicitly add revisions to a handful of tests where we expect behavior to diverge.

r? lcnr
This commit is contained in:
Jubilee 2024-03-11 09:29:37 -07:00 committed by GitHub
commit a11e6c38b5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
154 changed files with 669 additions and 407 deletions

View File

@ -0,0 +1,8 @@
error: the type `Foo::Bar<Vec<[u32]>>` is not well-formed
--> $DIR/wf-check-skipped.rs:17:14
|
LL | fn main() -> Foo::Bar::<Vec<[u32]>> {}
| ^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 1 previous error

View File

@ -1,11 +1,13 @@
//@ known-bug: #100041 //@ revisions: current next
//@ check-pass //@[next] compile-flags: -Znext-solver
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[current] known-bug: #100041
//@[current] check-pass
// FIXME(inherent_associated_types): This should fail.
#![feature(inherent_associated_types)] #![feature(inherent_associated_types)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
// FIXME(inherent_associated_types): This should fail.
struct Foo; struct Foo;
impl Foo { impl Foo {
@ -13,3 +15,4 @@ impl Foo {
} }
fn main() -> Foo::Bar::<Vec<[u32]>> {} fn main() -> Foo::Bar::<Vec<[u32]>> {}
//[next]~^ ERROR the type `Foo::Bar<Vec<[u32]>>` is not well-formed

View File

@ -1,6 +1,7 @@
// Testing inference capabilities. // Testing inference capabilities.
//@ check-pass //@ check-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![feature(inherent_associated_types)] #![feature(inherent_associated_types)]

View File

@ -1,12 +1,12 @@
error[E0277]: `Self` doesn't implement `std::fmt::Display` error[E0277]: `Self` doesn't implement `std::fmt::Display`
--> $DIR/defaults-unsound-62211-1.rs:20:96 --> $DIR/defaults-unsound-62211-1.rs:26:96
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^ `Self` cannot be formatted with the default formatter | ^^^^ `Self` cannot be formatted with the default formatter
| |
= note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
note: required by a bound in `UncheckedCopy::Output` note: required by a bound in `UncheckedCopy::Output`
--> $DIR/defaults-unsound-62211-1.rs:20:86 --> $DIR/defaults-unsound-62211-1.rs:26:86
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^^^^ required by this bound in `UncheckedCopy::Output` | ^^^^^^^ required by this bound in `UncheckedCopy::Output`
@ -16,13 +16,13 @@ LL | trait UncheckedCopy: Sized + std::fmt::Display {
| +++++++++++++++++++ | +++++++++++++++++++
error[E0277]: cannot add-assign `&'static str` to `Self` error[E0277]: cannot add-assign `&'static str` to `Self`
--> $DIR/defaults-unsound-62211-1.rs:20:96 --> $DIR/defaults-unsound-62211-1.rs:26:96
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^ no implementation for `Self += &'static str` | ^^^^ no implementation for `Self += &'static str`
| |
note: required by a bound in `UncheckedCopy::Output` note: required by a bound in `UncheckedCopy::Output`
--> $DIR/defaults-unsound-62211-1.rs:20:47 --> $DIR/defaults-unsound-62211-1.rs:26:47
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UncheckedCopy::Output` | ^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UncheckedCopy::Output`
@ -32,13 +32,13 @@ LL | trait UncheckedCopy: Sized + AddAssign<&'static str> {
| +++++++++++++++++++++++++ | +++++++++++++++++++++++++
error[E0277]: the trait bound `Self: Deref` is not satisfied error[E0277]: the trait bound `Self: Deref` is not satisfied
--> $DIR/defaults-unsound-62211-1.rs:20:96 --> $DIR/defaults-unsound-62211-1.rs:26:96
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^ the trait `Deref` is not implemented for `Self` | ^^^^ the trait `Deref` is not implemented for `Self`
| |
note: required by a bound in `UncheckedCopy::Output` note: required by a bound in `UncheckedCopy::Output`
--> $DIR/defaults-unsound-62211-1.rs:20:25 --> $DIR/defaults-unsound-62211-1.rs:26:25
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^^^^^^^^^^^^^^^^ required by this bound in `UncheckedCopy::Output` | ^^^^^^^^^^^^^^^^^^^ required by this bound in `UncheckedCopy::Output`
@ -48,13 +48,13 @@ LL | trait UncheckedCopy: Sized + Deref {
| +++++++ | +++++++
error[E0277]: the trait bound `Self: Copy` is not satisfied error[E0277]: the trait bound `Self: Copy` is not satisfied
--> $DIR/defaults-unsound-62211-1.rs:20:96 --> $DIR/defaults-unsound-62211-1.rs:26:96
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^ the trait `Copy` is not implemented for `Self` | ^^^^ the trait `Copy` is not implemented for `Self`
| |
note: required by a bound in `UncheckedCopy::Output` note: required by a bound in `UncheckedCopy::Output`
--> $DIR/defaults-unsound-62211-1.rs:20:18 --> $DIR/defaults-unsound-62211-1.rs:26:18
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^ required by this bound in `UncheckedCopy::Output` | ^^^^ required by this bound in `UncheckedCopy::Output`

View File

@ -0,0 +1,13 @@
warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
--> $DIR/defaults-unsound-62211-1.rs:52:5
|
LL | drop(origin);
| ^^^^^------^
| |
| argument has type `<T as UncheckedCopy>::Output`
|
= note: use `let _ = ...` to ignore the expression or result
= note: `#[warn(dropping_copy_types)]` on by default
warning: 1 warning emitted

View File

@ -1,3 +1,9 @@
//@ revisions: current next
//@[next] compile-flags: -Znext-solver
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] known-bug: rust-lang/trait-system-refactor-initiative#46
//@[next] check-pass
//! Regression test for https://github.com/rust-lang/rust/issues/62211 //! Regression test for https://github.com/rust-lang/rust/issues/62211
//! //!
//! The old implementation of defaults did not check whether the provided //! The old implementation of defaults did not check whether the provided
@ -18,10 +24,10 @@ trait UncheckedCopy: Sized {
// This Output is said to be Copy. Yet we default to Self // This Output is said to be Copy. Yet we default to Self
// and it's accepted, not knowing if Self ineed is Copy // and it's accepted, not knowing if Self ineed is Copy
type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
//~^ ERROR the trait bound `Self: Copy` is not satisfied //[current]~^ ERROR the trait bound `Self: Copy` is not satisfied
//~| ERROR the trait bound `Self: Deref` is not satisfied //[current]~| ERROR the trait bound `Self: Deref` is not satisfied
//~| ERROR cannot add-assign `&'static str` to `Self` //[current]~| ERROR cannot add-assign `&'static str` to `Self`
//~| ERROR `Self` doesn't implement `std::fmt::Display` //[current]~| ERROR `Self` doesn't implement `std::fmt::Display`
// We said the Output type was Copy, so we can Copy it freely! // We said the Output type was Copy, so we can Copy it freely!
fn unchecked_copy(other: &Self::Output) -> Self::Output { fn unchecked_copy(other: &Self::Output) -> Self::Output {

View File

@ -1,12 +1,12 @@
error[E0277]: `Self` doesn't implement `std::fmt::Display` error[E0277]: `Self` doesn't implement `std::fmt::Display`
--> $DIR/defaults-unsound-62211-2.rs:20:96 --> $DIR/defaults-unsound-62211-2.rs:26:96
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^ `Self` cannot be formatted with the default formatter | ^^^^ `Self` cannot be formatted with the default formatter
| |
= note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
note: required by a bound in `UncheckedCopy::Output` note: required by a bound in `UncheckedCopy::Output`
--> $DIR/defaults-unsound-62211-2.rs:20:86 --> $DIR/defaults-unsound-62211-2.rs:26:86
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^^^^ required by this bound in `UncheckedCopy::Output` | ^^^^^^^ required by this bound in `UncheckedCopy::Output`
@ -16,13 +16,13 @@ LL | trait UncheckedCopy: Sized + std::fmt::Display {
| +++++++++++++++++++ | +++++++++++++++++++
error[E0277]: cannot add-assign `&'static str` to `Self` error[E0277]: cannot add-assign `&'static str` to `Self`
--> $DIR/defaults-unsound-62211-2.rs:20:96 --> $DIR/defaults-unsound-62211-2.rs:26:96
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^ no implementation for `Self += &'static str` | ^^^^ no implementation for `Self += &'static str`
| |
note: required by a bound in `UncheckedCopy::Output` note: required by a bound in `UncheckedCopy::Output`
--> $DIR/defaults-unsound-62211-2.rs:20:47 --> $DIR/defaults-unsound-62211-2.rs:26:47
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UncheckedCopy::Output` | ^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UncheckedCopy::Output`
@ -32,13 +32,13 @@ LL | trait UncheckedCopy: Sized + AddAssign<&'static str> {
| +++++++++++++++++++++++++ | +++++++++++++++++++++++++
error[E0277]: the trait bound `Self: Deref` is not satisfied error[E0277]: the trait bound `Self: Deref` is not satisfied
--> $DIR/defaults-unsound-62211-2.rs:20:96 --> $DIR/defaults-unsound-62211-2.rs:26:96
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^ the trait `Deref` is not implemented for `Self` | ^^^^ the trait `Deref` is not implemented for `Self`
| |
note: required by a bound in `UncheckedCopy::Output` note: required by a bound in `UncheckedCopy::Output`
--> $DIR/defaults-unsound-62211-2.rs:20:25 --> $DIR/defaults-unsound-62211-2.rs:26:25
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^^^^^^^^^^^^^^^^ required by this bound in `UncheckedCopy::Output` | ^^^^^^^^^^^^^^^^^^^ required by this bound in `UncheckedCopy::Output`
@ -48,13 +48,13 @@ LL | trait UncheckedCopy: Sized + Deref {
| +++++++ | +++++++
error[E0277]: the trait bound `Self: Copy` is not satisfied error[E0277]: the trait bound `Self: Copy` is not satisfied
--> $DIR/defaults-unsound-62211-2.rs:20:96 --> $DIR/defaults-unsound-62211-2.rs:26:96
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^ the trait `Copy` is not implemented for `Self` | ^^^^ the trait `Copy` is not implemented for `Self`
| |
note: required by a bound in `UncheckedCopy::Output` note: required by a bound in `UncheckedCopy::Output`
--> $DIR/defaults-unsound-62211-2.rs:20:18 --> $DIR/defaults-unsound-62211-2.rs:26:18
| |
LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; LL | type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
| ^^^^ required by this bound in `UncheckedCopy::Output` | ^^^^ required by this bound in `UncheckedCopy::Output`

View File

@ -0,0 +1,13 @@
warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
--> $DIR/defaults-unsound-62211-2.rs:52:5
|
LL | drop(origin);
| ^^^^^------^
| |
| argument has type `<T as UncheckedCopy>::Output`
|
= note: use `let _ = ...` to ignore the expression or result
= note: `#[warn(dropping_copy_types)]` on by default
warning: 1 warning emitted

View File

@ -1,3 +1,9 @@
//@ revisions: current next
//@[next] compile-flags: -Znext-solver
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] known-bug: rust-lang/trait-system-refactor-initiative#46
//@[next] check-pass
//! Regression test for https://github.com/rust-lang/rust/issues/62211 //! Regression test for https://github.com/rust-lang/rust/issues/62211
//! //!
//! The old implementation of defaults did not check whether the provided //! The old implementation of defaults did not check whether the provided
@ -18,10 +24,10 @@ trait UncheckedCopy: Sized {
// This Output is said to be Copy. Yet we default to Self // This Output is said to be Copy. Yet we default to Self
// and it's accepted, not knowing if Self ineed is Copy // and it's accepted, not knowing if Self ineed is Copy
type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self; type Output: Copy + Deref<Target = str> + AddAssign<&'static str> + From<Self> + Display = Self;
//~^ ERROR the trait bound `Self: Copy` is not satisfied //[current]~^ ERROR the trait bound `Self: Copy` is not satisfied
//~| ERROR the trait bound `Self: Deref` is not satisfied //[current]~| ERROR the trait bound `Self: Deref` is not satisfied
//~| ERROR cannot add-assign `&'static str` to `Self` //[current]~| ERROR cannot add-assign `&'static str` to `Self`
//~| ERROR `Self` doesn't implement `std::fmt::Display` //[current]~| ERROR `Self` doesn't implement `std::fmt::Display`
// We said the Output type was Copy, so we can Copy it freely! // We said the Output type was Copy, so we can Copy it freely!
fn unchecked_copy(other: &Self::Output) -> Self::Output { fn unchecked_copy(other: &Self::Output) -> Self::Output {

View File

@ -2,6 +2,7 @@
//@ edition:2021 //@ edition:2021
//@ build-pass //@ build-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![feature(async_closure)] #![feature(async_closure)]

View File

@ -2,6 +2,7 @@
//@ edition:2021 //@ edition:2021
//@ build-pass //@ build-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![feature(async_closure)] #![feature(async_closure)]

View File

@ -1,6 +1,7 @@
//@ aux-build:block-on.rs //@ aux-build:block-on.rs
//@ edition:2018 //@ edition:2018
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@ build-pass (since it ICEs during mono) //@ build-pass (since it ICEs during mono)

View File

@ -1,5 +1,6 @@
//@ edition:2018 //@ edition:2018
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@ check-pass //@ check-pass

View File

@ -1,5 +1,6 @@
//@ edition:2021 //@ edition:2021
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@ check-pass //@ check-pass

View File

@ -1,5 +1,5 @@
warning: the feature `return_type_notation` is incomplete and may not be safe to use and/or cause compiler crashes warning: the feature `return_type_notation` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/normalizing-self-auto-trait-issue-109924.rs:6:12 --> $DIR/normalizing-self-auto-trait-issue-109924.rs:7:12
| |
LL | #![feature(return_type_notation)] LL | #![feature(return_type_notation)]
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^

View File

@ -1,5 +1,5 @@
warning: the feature `return_type_notation` is incomplete and may not be safe to use and/or cause compiler crashes warning: the feature `return_type_notation` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/normalizing-self-auto-trait-issue-109924.rs:6:12 --> $DIR/normalizing-self-auto-trait-issue-109924.rs:7:12
| |
LL | #![feature(return_type_notation)] LL | #![feature(return_type_notation)]
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^

View File

@ -1,5 +1,6 @@
//@ check-pass //@ check-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@ edition:2021 //@ edition:2021

View File

@ -1,5 +1,5 @@
error[E0380]: auto traits cannot have associated items error[E0380]: auto traits cannot have associated items
--> $DIR/issue-23080-2.rs:8:10 --> $DIR/issue-23080-2.rs:9:10
| |
LL | unsafe auto trait Trait { LL | unsafe auto trait Trait {
| ----- auto traits cannot have associated items | ----- auto traits cannot have associated items

View File

@ -1,5 +1,5 @@
error[E0380]: auto traits cannot have associated items error[E0380]: auto traits cannot have associated items
--> $DIR/issue-23080-2.rs:8:10 --> $DIR/issue-23080-2.rs:9:10
| |
LL | unsafe auto trait Trait { LL | unsafe auto trait Trait {
| ----- auto traits cannot have associated items | ----- auto traits cannot have associated items

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![feature(auto_traits)] #![feature(auto_traits)]

View File

@ -1,5 +1,5 @@
error[E0282]: type annotations needed error[E0282]: type annotations needed
--> $DIR/infer-signature-from-impl.rs:17:16 --> $DIR/infer-signature-from-impl.rs:18:16
| |
LL | needs_foo(|x| { LL | needs_foo(|x| {
| ^ | ^

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@[next] known-bug: trait-system-refactor-initiative#71 //@[next] known-bug: trait-system-refactor-initiative#71
//@[current] check-pass //@[current] check-pass

View File

@ -0,0 +1,9 @@
error[E0284]: type annotations needed: cannot satisfy `<dyn Object<U, Output = T> as Object<U>>::Output == T`
--> $DIR/indirect-impl-for-trait-obj-coherence.rs:25:41
|
LL | foo::<dyn Object<U, Output = T>, U>(x)
| ^ cannot satisfy `<dyn Object<U, Output = T> as Object<U>>::Output == T`
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0284`.

View File

@ -1,5 +1,8 @@
//@ check-pass //@ revisions: current next
//@ known-bug: #57893 //@[next] compile-flags: -Znext-solver
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[current] check-pass
//@[current] known-bug: #57893
// Should fail. Because we see an impl that uses a certain associated type, we // Should fail. Because we see an impl that uses a certain associated type, we
// type-check assuming that impl is used. However, this conflicts with the // type-check assuming that impl is used. However, this conflicts with the
@ -20,6 +23,7 @@ fn foo<T: ?Sized, U>(x: <T as Object<U>>::Output) -> U {
#[allow(dead_code)] #[allow(dead_code)]
fn transmute<T, U>(x: T) -> U { fn transmute<T, U>(x: T) -> U {
foo::<dyn Object<U, Output = T>, U>(x) foo::<dyn Object<U, Output = T>, U>(x)
//[next]~^ ERROR type annotations needed: cannot satisfy `<dyn Object<U, Output = T> as Object<U>>::Output == T`
} }
fn main() {} fn main() {}

View File

@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `MyTrait<_>` for type `(Box<(MyType,)>, _)` error[E0119]: conflicting implementations of trait `MyTrait<_>` for type `(Box<(MyType,)>, _)`
--> $DIR/normalize-for-errors.rs:16:1 --> $DIR/normalize-for-errors.rs:17:1
| |
LL | impl<T: Copy, S: Iterator> MyTrait<S> for (T, S::Item) {} LL | impl<T: Copy, S: Iterator> MyTrait<S> for (T, S::Item) {}
| ------------------------------------------------------ first implementation here | ------------------------------------------------------ first implementation here

View File

@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `MyTrait<_>` for type `(Box<(MyType,)>, <_ as Iterator>::Item)` error[E0119]: conflicting implementations of trait `MyTrait<_>` for type `(Box<(MyType,)>, <_ as Iterator>::Item)`
--> $DIR/normalize-for-errors.rs:16:1 --> $DIR/normalize-for-errors.rs:17:1
| |
LL | impl<T: Copy, S: Iterator> MyTrait<S> for (T, S::Item) {} LL | impl<T: Copy, S: Iterator> MyTrait<S> for (T, S::Item) {}
| ------------------------------------------------------ first implementation here | ------------------------------------------------------ first implementation here

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
struct MyType; struct MyType;

View File

@ -1,47 +1,47 @@
error[E0391]: cycle detected when type-checking `foo` error[E0391]: cycle detected when type-checking `foo`
--> $DIR/clone-rpit.rs:12:1 --> $DIR/clone-rpit.rs:13:1
| |
LL | pub fn foo<'a, 'b>() -> impl Clone { LL | pub fn foo<'a, 'b>() -> impl Clone {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
note: ...which requires coroutine witness types for `foo::{closure#0}`... note: ...which requires coroutine witness types for `foo::{closure#0}`...
--> $DIR/clone-rpit.rs:13:5 --> $DIR/clone-rpit.rs:14:5
| |
LL | move |_: ()| { LL | move |_: ()| {
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
note: ...which requires promoting constants in MIR for `foo::{closure#0}`... note: ...which requires promoting constants in MIR for `foo::{closure#0}`...
--> $DIR/clone-rpit.rs:13:5 --> $DIR/clone-rpit.rs:14:5
| |
LL | move |_: ()| { LL | move |_: ()| {
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
note: ...which requires preparing `foo::{closure#0}` for borrow checking... note: ...which requires preparing `foo::{closure#0}` for borrow checking...
--> $DIR/clone-rpit.rs:13:5 --> $DIR/clone-rpit.rs:14:5
| |
LL | move |_: ()| { LL | move |_: ()| {
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
note: ...which requires checking if `foo::{closure#0}` contains FFI-unwind calls... note: ...which requires checking if `foo::{closure#0}` contains FFI-unwind calls...
--> $DIR/clone-rpit.rs:13:5 --> $DIR/clone-rpit.rs:14:5
| |
LL | move |_: ()| { LL | move |_: ()| {
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
note: ...which requires building MIR for `foo::{closure#0}`... note: ...which requires building MIR for `foo::{closure#0}`...
--> $DIR/clone-rpit.rs:13:5 --> $DIR/clone-rpit.rs:14:5
| |
LL | move |_: ()| { LL | move |_: ()| {
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
note: ...which requires match-checking `foo::{closure#0}`... note: ...which requires match-checking `foo::{closure#0}`...
--> $DIR/clone-rpit.rs:13:5 --> $DIR/clone-rpit.rs:14:5
| |
LL | move |_: ()| { LL | move |_: ()| {
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
note: ...which requires type-checking `foo::{closure#0}`... note: ...which requires type-checking `foo::{closure#0}`...
--> $DIR/clone-rpit.rs:13:5 --> $DIR/clone-rpit.rs:14:5
| |
LL | move |_: ()| { LL | move |_: ()| {
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
= note: ...which again requires type-checking `foo`, completing the cycle = note: ...which again requires type-checking `foo`, completing the cycle
note: cycle used when computing type of opaque `foo::{opaque#0}` note: cycle used when computing type of opaque `foo::{opaque#0}`
--> $DIR/clone-rpit.rs:12:25 --> $DIR/clone-rpit.rs:13:25
| |
LL | pub fn foo<'a, 'b>() -> impl Clone { LL | pub fn foo<'a, 'b>() -> impl Clone {
| ^^^^^^^^^^ | ^^^^^^^^^^

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@[current] check-pass //@[current] check-pass
//@[next] known-bug: trait-system-refactor-initiative#82 //@[next] known-bug: trait-system-refactor-initiative#82

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@ run-pass //@ run-pass

View File

@ -1,15 +1,15 @@
error[E0277]: `{static coroutine@$DIR/static-not-unpin.rs:14:25: 14:34}` cannot be unpinned error[E0277]: `{static coroutine@$DIR/static-not-unpin.rs:15:25: 15:34}` cannot be unpinned
--> $DIR/static-not-unpin.rs:17:18 --> $DIR/static-not-unpin.rs:18:18
| |
LL | assert_unpin(coroutine); LL | assert_unpin(coroutine);
| ------------ ^^^^^^^^^ the trait `Unpin` is not implemented for `{static coroutine@$DIR/static-not-unpin.rs:14:25: 14:34}` | ------------ ^^^^^^^^^ the trait `Unpin` is not implemented for `{static coroutine@$DIR/static-not-unpin.rs:15:25: 15:34}`
| | | |
| required by a bound introduced by this call | required by a bound introduced by this call
| |
= note: consider using the `pin!` macro = note: consider using the `pin!` macro
consider using `Box::pin` if you need to access the pinned value outside of the current scope consider using `Box::pin` if you need to access the pinned value outside of the current scope
note: required by a bound in `assert_unpin` note: required by a bound in `assert_unpin`
--> $DIR/static-not-unpin.rs:10:20 --> $DIR/static-not-unpin.rs:11:20
| |
LL | fn assert_unpin<T: Unpin>(_: T) { LL | fn assert_unpin<T: Unpin>(_: T) {
| ^^^^^ required by this bound in `assert_unpin` | ^^^^^ required by this bound in `assert_unpin`

View File

@ -1,15 +1,15 @@
error[E0277]: `{static coroutine@$DIR/static-not-unpin.rs:14:25: 14:34}` cannot be unpinned error[E0277]: `{static coroutine@$DIR/static-not-unpin.rs:15:25: 15:34}` cannot be unpinned
--> $DIR/static-not-unpin.rs:17:18 --> $DIR/static-not-unpin.rs:18:18
| |
LL | assert_unpin(coroutine); LL | assert_unpin(coroutine);
| ------------ ^^^^^^^^^ the trait `Unpin` is not implemented for `{static coroutine@$DIR/static-not-unpin.rs:14:25: 14:34}` | ------------ ^^^^^^^^^ the trait `Unpin` is not implemented for `{static coroutine@$DIR/static-not-unpin.rs:15:25: 15:34}`
| | | |
| required by a bound introduced by this call | required by a bound introduced by this call
| |
= note: consider using the `pin!` macro = note: consider using the `pin!` macro
consider using `Box::pin` if you need to access the pinned value outside of the current scope consider using `Box::pin` if you need to access the pinned value outside of the current scope
note: required by a bound in `assert_unpin` note: required by a bound in `assert_unpin`
--> $DIR/static-not-unpin.rs:10:20 --> $DIR/static-not-unpin.rs:11:20
| |
LL | fn assert_unpin<T: Unpin>(_: T) { LL | fn assert_unpin<T: Unpin>(_: T) {
| ^^^^^ required by this bound in `assert_unpin` | ^^^^^ required by this bound in `assert_unpin`

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![feature(coroutines)] #![feature(coroutines)]

View File

@ -1,5 +1,6 @@
//@ run-pass //@ run-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[current] compile-flags: -C opt-level=0 //@[current] compile-flags: -C opt-level=0
//@[next] compile-flags: -Znext-solver -C opt-level=0 //@[next] compile-flags: -Znext-solver -C opt-level=0

View File

@ -1,5 +1,5 @@
error[E0277]: `&T` needs to have the same ABI as a pointer error[E0277]: `&T` needs to have the same ABI as a pointer
--> $DIR/check-size-at-cast-polymorphic-bad.rs:14:15 --> $DIR/check-size-at-cast-polymorphic-bad.rs:15:15
| |
LL | dyn_debug(t); LL | dyn_debug(t);
| ^ `&T` needs to be a pointer-like type | ^ `&T` needs to be a pointer-like type

View File

@ -1,5 +1,5 @@
error[E0277]: `&T` needs to have the same ABI as a pointer error[E0277]: `&T` needs to have the same ABI as a pointer
--> $DIR/check-size-at-cast-polymorphic-bad.rs:14:15 --> $DIR/check-size-at-cast-polymorphic-bad.rs:15:15
| |
LL | dyn_debug(t); LL | dyn_debug(t);
| ^ `&T` needs to be a pointer-like type | ^ `&T` needs to be a pointer-like type

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![feature(dyn_star)] #![feature(dyn_star)]

View File

@ -1,5 +1,5 @@
error[E0277]: `dyn Iterator<Item = &'a mut u8>` is not an iterator error[E0277]: `dyn Iterator<Item = &'a mut u8>` is not an iterator
--> $DIR/issue-20605.rs:5:17 --> $DIR/issue-20605.rs:6:17
| |
LL | for item in *things { *item = 0 } LL | for item in *things { *item = 0 }
| ^^^^^^^ the trait `IntoIterator` is not implemented for `dyn Iterator<Item = &'a mut u8>` | ^^^^^^^ the trait `IntoIterator` is not implemented for `dyn Iterator<Item = &'a mut u8>`

View File

@ -1,5 +1,5 @@
error[E0277]: `dyn Iterator<Item = &'a mut u8>` is not an iterator error[E0277]: `dyn Iterator<Item = &'a mut u8>` is not an iterator
--> $DIR/issue-20605.rs:5:17 --> $DIR/issue-20605.rs:6:17
| |
LL | for item in *things { *item = 0 } LL | for item in *things { *item = 0 }
| ^^^^^^^ `dyn Iterator<Item = &'a mut u8>` is not an iterator | ^^^^^^^ `dyn Iterator<Item = &'a mut u8>` is not an iterator
@ -7,25 +7,25 @@ LL | for item in *things { *item = 0 }
= help: the trait `IntoIterator` is not implemented for `dyn Iterator<Item = &'a mut u8>` = help: the trait `IntoIterator` is not implemented for `dyn Iterator<Item = &'a mut u8>`
error: the type `<dyn Iterator<Item = &'a mut u8> as IntoIterator>::IntoIter` is not well-formed error: the type `<dyn Iterator<Item = &'a mut u8> as IntoIterator>::IntoIter` is not well-formed
--> $DIR/issue-20605.rs:5:17 --> $DIR/issue-20605.rs:6:17
| |
LL | for item in *things { *item = 0 } LL | for item in *things { *item = 0 }
| ^^^^^^^ | ^^^^^^^
error: the type `&mut <dyn Iterator<Item = &'a mut u8> as IntoIterator>::IntoIter` is not well-formed error: the type `&mut <dyn Iterator<Item = &'a mut u8> as IntoIterator>::IntoIter` is not well-formed
--> $DIR/issue-20605.rs:5:17 --> $DIR/issue-20605.rs:6:17
| |
LL | for item in *things { *item = 0 } LL | for item in *things { *item = 0 }
| ^^^^^^^ | ^^^^^^^
error: the type `Option<<<dyn Iterator<Item = &'a mut u8> as IntoIterator>::IntoIter as Iterator>::Item>` is not well-formed error: the type `Option<<<dyn Iterator<Item = &'a mut u8> as IntoIterator>::IntoIter as Iterator>::Item>` is not well-formed
--> $DIR/issue-20605.rs:5:17 --> $DIR/issue-20605.rs:6:17
| |
LL | for item in *things { *item = 0 } LL | for item in *things { *item = 0 }
| ^^^^^^^ | ^^^^^^^
error[E0614]: type `<dyn Iterator<Item = &'a mut u8> as IntoIterator>::Item` cannot be dereferenced error[E0614]: type `<dyn Iterator<Item = &'a mut u8> as IntoIterator>::Item` cannot be dereferenced
--> $DIR/issue-20605.rs:5:27 --> $DIR/issue-20605.rs:6:27
| |
LL | for item in *things { *item = 0 } LL | for item in *things { *item = 0 }
| ^^^^^ | ^^^^^

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
fn changer<'a>(mut things: Box<dyn Iterator<Item=&'a mut u8>>) { fn changer<'a>(mut things: Box<dyn Iterator<Item=&'a mut u8>>) {

View File

@ -1,16 +1,16 @@
error[E0277]: the trait bound `<Self as Foo>::Bar<()>: Eq<i32>` is not satisfied error[E0277]: the trait bound `<Self as Foo>::Bar<()>: Eq<i32>` is not satisfied
--> $DIR/assume-gat-normalization-for-nested-goals.rs:6:30 --> $DIR/assume-gat-normalization-for-nested-goals.rs:10:30
| |
LL | type Bar<T>: Baz<Self> = i32; LL | type Bar<T>: Baz<Self> = i32;
| ^^^ the trait `Eq<i32>` is not implemented for `<Self as Foo>::Bar<()>`, which is required by `i32: Baz<Self>` | ^^^ the trait `Eq<i32>` is not implemented for `<Self as Foo>::Bar<()>`, which is required by `i32: Baz<Self>`
| |
note: required for `i32` to implement `Baz<Self>` note: required for `i32` to implement `Baz<Self>`
--> $DIR/assume-gat-normalization-for-nested-goals.rs:13:23 --> $DIR/assume-gat-normalization-for-nested-goals.rs:17:23
| |
LL | impl<T: Foo + ?Sized> Baz<T> for i32 where T::Bar<()>: Eq<i32> {} LL | impl<T: Foo + ?Sized> Baz<T> for i32 where T::Bar<()>: Eq<i32> {}
| ^^^^^^ ^^^ ------- unsatisfied trait bound introduced here | ^^^^^^ ^^^ ------- unsatisfied trait bound introduced here
note: required by a bound in `Foo::Bar` note: required by a bound in `Foo::Bar`
--> $DIR/assume-gat-normalization-for-nested-goals.rs:6:18 --> $DIR/assume-gat-normalization-for-nested-goals.rs:10:18
| |
LL | type Bar<T>: Baz<Self> = i32; LL | type Bar<T>: Baz<Self> = i32;
| ^^^^^^^^^ required by this bound in `Foo::Bar` | ^^^^^^^^^ required by this bound in `Foo::Bar`

View File

@ -1,4 +1,8 @@
//@ known-bug: #117606 //@ revisions: current next
//@[next] compile-flags: -Znext-solver
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[current] known-bug: #117606
//@[next] check-pass
#![feature(associated_type_defaults)] #![feature(associated_type_defaults)]

View File

@ -1,5 +1,5 @@
error[E0049]: type `B` has 1 type parameter but its trait declaration has 0 type parameters error[E0049]: type `B` has 1 type parameter but its trait declaration has 0 type parameters
--> $DIR/issue-102114.rs:14:12 --> $DIR/issue-102114.rs:15:12
| |
LL | type B<'b>; LL | type B<'b>;
| -- expected 0 type parameters | -- expected 0 type parameters

View File

@ -1,5 +1,5 @@
error[E0049]: type `B` has 1 type parameter but its trait declaration has 0 type parameters error[E0049]: type `B` has 1 type parameter but its trait declaration has 0 type parameters
--> $DIR/issue-102114.rs:14:12 --> $DIR/issue-102114.rs:15:12
| |
LL | type B<'b>; LL | type B<'b>;
| -- expected 0 type parameters | -- expected 0 type parameters

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
trait A { trait A {

View File

@ -0,0 +1,15 @@
error[E0308]: mismatched types
--> $DIR/issue-90014-tait2.rs:27:9
|
LL | fn make_fut(&self) -> Box<dyn for<'a> Trait<'a, Thing = Fut<'a>>> {
| ------------------------------------------- expected `Box<(dyn for<'a> Trait<'a, Thing = Fut<'a>> + 'static)>` because of return type
LL | Box::new((async { () },))
| ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Trait<'a, Thing = Fut<'_>>>`, found `Box<(...,)>`
|
= note: expected struct `Box<(dyn for<'a> Trait<'a, Thing = Fut<'a>> + 'static)>`
found struct `Box<({async block@$DIR/issue-90014-tait2.rs:27:19: 27:31},)>`
= help: `({async block@$DIR/issue-90014-tait2.rs:27:19: 27:31},)` implements `Trait` so you could box the found value and coerce it to the trait object `Box<dyn Trait>`, you will have to change the expected type as well
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.

View File

@ -0,0 +1,19 @@
error[E0277]: expected a `Fn(&'w ())` closure, found `fn(&'w ())`
--> $DIR/fn-ptr.rs:13:5
|
LL | ice();
| ^^^^^ expected an `Fn(&'w ())` closure, found `fn(&'w ())`
|
= help: the trait `for<'w> Fn<(&'w (),)>` is not implemented for `fn(&'w ())`
note: required by a bound in `ice`
--> $DIR/fn-ptr.rs:8:25
|
LL | fn ice()
| --- required by a bound in this function
LL | where
LL | for<'w> fn(&'w ()): Fn(&'w ()),
| ^^^^^^^^^^ required by this bound in `ice`
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.

View File

@ -1,4 +1,5 @@
//@ revisions: classic next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@[next] check-pass //@[next] check-pass
@ -10,5 +11,5 @@ where
fn main() { fn main() {
ice(); ice();
//[classic]~^ ERROR expected a `Fn(&'w ())` closure, found `fn(&'w ())` //[current]~^ ERROR expected a `Fn(&'w ())` closure, found `fn(&'w ())`
} }

View File

@ -0,0 +1,6 @@
error: the compiler unexpectedly panicked. this is a bug.
query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `for<'a> {async fn body@$DIR/future.rs:33:35: 35:2}: core::future::future::Future`
#1 [codegen_select_candidate] computing candidate for `<strlen as Trait>`
end of query stack

View File

@ -1,15 +1,16 @@
// ignore-tidy-linelength // ignore-tidy-linelength
//@ edition:2021 //@ edition:2021
//@ revisions: classic next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@[next] check-pass //@[next] check-pass
//@[classic] known-bug: #112347 //@[current] known-bug: #112347
//@[classic] build-fail //@[current] build-fail
//@[classic] failure-status: 101 //@[current] failure-status: 101
//@[classic] normalize-stderr-test "note: .*\n\n" -> "" //@[current] normalize-stderr-test "note: .*\n\n" -> ""
//@[classic] normalize-stderr-test "thread 'rustc' panicked.*\n.*\n" -> "" //@[current] normalize-stderr-test "thread 'rustc' panicked.*\n.*\n" -> ""
//@[classic] normalize-stderr-test "(error: internal compiler error: [^:]+):\d+:\d+: " -> "$1:LL:CC: " //@[current] normalize-stderr-test "(error: internal compiler error: [^:]+):\d+:\d+: " -> "$1:LL:CC: "
//@[classic] rustc-env:RUST_BACKTRACE=0 //@[current] rustc-env:RUST_BACKTRACE=0
#![feature(unboxed_closures)] #![feature(unboxed_closures)]

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@ check-pass //@ check-pass

View File

@ -1,11 +1,11 @@
error: {foo<ReEarlyParam(DefId(..), 0, 'a)>::{closure#0} closure_kind_ty=i8 closure_sig_as_fn_ptr_ty=extern "rust-call" fn(()) upvar_tys=()} error: {foo<ReEarlyParam(DefId(..), 0, 'a)>::{closure#0} closure_kind_ty=i8 closure_sig_as_fn_ptr_ty=extern "rust-call" fn(()) upvar_tys=()}
--> $DIR/erased-regions-in-hidden-ty.rs:11:36 --> $DIR/erased-regions-in-hidden-ty.rs:12:36
| |
LL | fn foo<'a: 'a>(x: &'a Vec<i32>) -> impl Fn() + 'static { LL | fn foo<'a: 'a>(x: &'a Vec<i32>) -> impl Fn() + 'static {
| ^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
error: Opaque(DefId(..), [ReErased]) error: Opaque(DefId(..), [ReErased])
--> $DIR/erased-regions-in-hidden-ty.rs:17:13 --> $DIR/erased-regions-in-hidden-ty.rs:18:13
| |
LL | fn bar() -> impl Fn() + 'static { LL | fn bar() -> impl Fn() + 'static {
| ^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^

View File

@ -1,11 +1,11 @@
error: {foo<ReEarlyParam(DefId(..), 0, 'a)>::{closure#0} closure_kind_ty=i8 closure_sig_as_fn_ptr_ty=extern "rust-call" fn(()) upvar_tys=()} error: {foo<ReEarlyParam(DefId(..), 0, 'a)>::{closure#0} closure_kind_ty=i8 closure_sig_as_fn_ptr_ty=extern "rust-call" fn(()) upvar_tys=()}
--> $DIR/erased-regions-in-hidden-ty.rs:11:36 --> $DIR/erased-regions-in-hidden-ty.rs:12:36
| |
LL | fn foo<'a: 'a>(x: &'a Vec<i32>) -> impl Fn() + 'static { LL | fn foo<'a: 'a>(x: &'a Vec<i32>) -> impl Fn() + 'static {
| ^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
error: Opaque(DefId(..), [ReErased]) error: Opaque(DefId(..), [ReErased])
--> $DIR/erased-regions-in-hidden-ty.rs:17:13 --> $DIR/erased-regions-in-hidden-ty.rs:18:13
| |
LL | fn bar() -> impl Fn() + 'static { LL | fn bar() -> impl Fn() + 'static {
| ^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@ compile-flags: -Zverbose-internals //@ compile-flags: -Zverbose-internals
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@ normalize-stderr-test "DefId\([^\)]+\)" -> "DefId(..)" //@ normalize-stderr-test "DefId\([^\)]+\)" -> "DefId(..)"

View File

@ -1,5 +1,6 @@
//@ check-pass //@ check-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver

View File

@ -1,6 +1,7 @@
//@ check-pass //@ check-pass
//@ edition: 2021 //@ edition: 2021
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![deny(refining_impl_trait)] #![deny(refining_impl_trait)]

View File

@ -1,5 +1,5 @@
error[E0046]: not all trait items implemented, missing: `Error` error[E0046]: not all trait items implemented, missing: `Error`
--> $DIR/issue-103181-1.rs:11:5 --> $DIR/issue-103181-1.rs:12:5
| |
LL | type Error; LL | type Error;
| ---------- `Error` from trait | ---------- `Error` from trait

View File

@ -1,5 +1,5 @@
error[E0046]: not all trait items implemented, missing: `Error` error[E0046]: not all trait items implemented, missing: `Error`
--> $DIR/issue-103181-1.rs:11:5 --> $DIR/issue-103181-1.rs:12:5
| |
LL | type Error; LL | type Error;
| ---------- `Error` from trait | ---------- `Error` from trait

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@ edition:2021 //@ edition:2021

View File

@ -1,5 +1,5 @@
error[E0282]: type annotations needed error[E0282]: type annotations needed
--> $DIR/recursive-coroutine-boxed.rs:11:23 --> $DIR/recursive-coroutine-boxed.rs:12:23
| |
LL | let mut gen = Box::pin(foo()); LL | let mut gen = Box::pin(foo());
| ^^^^^^^^ cannot infer type of the type parameter `T` declared on the struct `Box` | ^^^^^^^^ cannot infer type of the type parameter `T` declared on the struct `Box`
@ -13,7 +13,7 @@ LL | let mut gen = Box::<T>::pin(foo());
| +++++ | +++++
error[E0282]: type annotations needed error[E0282]: type annotations needed
--> $DIR/recursive-coroutine-boxed.rs:8:13 --> $DIR/recursive-coroutine-boxed.rs:9:13
| |
LL | fn foo() -> impl Coroutine<Yield = (), Return = ()> { LL | fn foo() -> impl Coroutine<Yield = (), Return = ()> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type for opaque type `impl Coroutine<Yield = (), Return = ()>` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type for opaque type `impl Coroutine<Yield = (), Return = ()>`

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[current] check-pass //@[current] check-pass
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![feature(coroutines, coroutine_trait)] #![feature(coroutines, coroutine_trait)]

View File

@ -1,5 +1,5 @@
error[E0733]: recursion in a coroutine requires boxing error[E0733]: recursion in a coroutine requires boxing
--> $DIR/recursive-coroutine-indirect.rs:10:5 --> $DIR/recursive-coroutine-indirect.rs:11:5
| |
LL | move || { LL | move || {
| ^^^^^^^ | ^^^^^^^

View File

@ -1,5 +1,5 @@
error[E0733]: recursion in a coroutine requires boxing error[E0733]: recursion in a coroutine requires boxing
--> $DIR/recursive-coroutine-indirect.rs:10:5 --> $DIR/recursive-coroutine-indirect.rs:11:5
| |
LL | move || { LL | move || {
| ^^^^^^^ | ^^^^^^^

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@[next] build-fail //@[next] build-fail

View File

@ -1,5 +1,6 @@
//@ build-pass //@ build-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
fn test() -> Option<impl Sized> { fn test() -> Option<impl Sized> {

View File

@ -1,16 +1,16 @@
error: opaque type's hidden type cannot be another opaque type from the same scope error: opaque type's hidden type cannot be another opaque type from the same scope
--> $DIR/two_tait_defining_each_other.rs:16:5 --> $DIR/two_tait_defining_each_other.rs:17:5
| |
LL | x // A's hidden type is `Bar`, because all the hidden types of `B` are compared with each other LL | x // A's hidden type is `Bar`, because all the hidden types of `B` are compared with each other
| ^ one of the two opaque types used here has to be outside its defining scope | ^ one of the two opaque types used here has to be outside its defining scope
| |
note: opaque type whose hidden type is being assigned note: opaque type whose hidden type is being assigned
--> $DIR/two_tait_defining_each_other.rs:8:10 --> $DIR/two_tait_defining_each_other.rs:9:10
| |
LL | type B = impl Foo; LL | type B = impl Foo;
| ^^^^^^^^ | ^^^^^^^^
note: opaque type being used as hidden type note: opaque type being used as hidden type
--> $DIR/two_tait_defining_each_other.rs:7:10 --> $DIR/two_tait_defining_each_other.rs:8:10
| |
LL | type A = impl Foo; LL | type A = impl Foo;
| ^^^^^^^^ | ^^^^^^^^

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@[next] check-pass //@[next] check-pass

View File

@ -1,5 +1,5 @@
error: unconstrained opaque type error: unconstrained opaque type
--> $DIR/two_tait_defining_each_other2.rs:5:10 --> $DIR/two_tait_defining_each_other2.rs:6:10
| |
LL | type A = impl Foo; LL | type A = impl Foo;
| ^^^^^^^^ | ^^^^^^^^
@ -7,18 +7,18 @@ LL | type A = impl Foo;
= note: `A` must be used in combination with a concrete type within the same module = note: `A` must be used in combination with a concrete type within the same module
error: opaque type's hidden type cannot be another opaque type from the same scope error: opaque type's hidden type cannot be another opaque type from the same scope
--> $DIR/two_tait_defining_each_other2.rs:12:5 --> $DIR/two_tait_defining_each_other2.rs:13:5
| |
LL | x // B's hidden type is A (opaquely) LL | x // B's hidden type is A (opaquely)
| ^ one of the two opaque types used here has to be outside its defining scope | ^ one of the two opaque types used here has to be outside its defining scope
| |
note: opaque type whose hidden type is being assigned note: opaque type whose hidden type is being assigned
--> $DIR/two_tait_defining_each_other2.rs:6:10 --> $DIR/two_tait_defining_each_other2.rs:7:10
| |
LL | type B = impl Foo; LL | type B = impl Foo;
| ^^^^^^^^ | ^^^^^^^^
note: opaque type being used as hidden type note: opaque type being used as hidden type
--> $DIR/two_tait_defining_each_other2.rs:5:10 --> $DIR/two_tait_defining_each_other2.rs:6:10
| |
LL | type A = impl Foo; LL | type A = impl Foo;
| ^^^^^^^^ | ^^^^^^^^

View File

@ -1,5 +1,5 @@
error[E0284]: type annotations needed: cannot satisfy `_ == A` error[E0284]: type annotations needed: cannot satisfy `_ == A`
--> $DIR/two_tait_defining_each_other2.rs:10:8 --> $DIR/two_tait_defining_each_other2.rs:11:8
| |
LL | fn muh(x: A) -> B { LL | fn muh(x: A) -> B {
| ^ cannot satisfy `_ == A` | ^ cannot satisfy `_ == A`

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![feature(type_alias_impl_trait)] #![feature(type_alias_impl_trait)]

View File

@ -1,16 +1,16 @@
error: opaque type's hidden type cannot be another opaque type from the same scope error: opaque type's hidden type cannot be another opaque type from the same scope
--> $DIR/two_tait_defining_each_other3.rs:13:16 --> $DIR/two_tait_defining_each_other3.rs:14:16
| |
LL | return x; // B's hidden type is A (opaquely) LL | return x; // B's hidden type is A (opaquely)
| ^ one of the two opaque types used here has to be outside its defining scope | ^ one of the two opaque types used here has to be outside its defining scope
| |
note: opaque type whose hidden type is being assigned note: opaque type whose hidden type is being assigned
--> $DIR/two_tait_defining_each_other3.rs:7:10 --> $DIR/two_tait_defining_each_other3.rs:8:10
| |
LL | type B = impl Foo; LL | type B = impl Foo;
| ^^^^^^^^ | ^^^^^^^^
note: opaque type being used as hidden type note: opaque type being used as hidden type
--> $DIR/two_tait_defining_each_other3.rs:6:10 --> $DIR/two_tait_defining_each_other3.rs:7:10
| |
LL | type A = impl Foo; LL | type A = impl Foo;
| ^^^^^^^^ | ^^^^^^^^

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@[next] check-pass //@[next] check-pass
#![feature(type_alias_impl_trait)] #![feature(type_alias_impl_trait)]

View File

@ -1,5 +1,6 @@
//@ check-pass //@ check-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![allow(non_upper_case_globals)] #![allow(non_upper_case_globals)]

View File

@ -1,6 +1,7 @@
//@ check-pass //@ check-pass
//@ pretty-expanded FIXME #23616 //@ pretty-expanded FIXME #23616
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
use std::slice; use std::slice;

View File

@ -1,5 +1,6 @@
//@ run-pass //@ run-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
use std::ops::Index; use std::ops::Index;

View File

@ -1,5 +1,5 @@
warning: the feature `lazy_type_alias` is incomplete and may not be safe to use and/or cause compiler crashes warning: the feature `lazy_type_alias` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/coerce-behind-lazy.rs:5:12 --> $DIR/coerce-behind-lazy.rs:6:12
| |
LL | #![feature(lazy_type_alias)] LL | #![feature(lazy_type_alias)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^

View File

@ -1,5 +1,5 @@
warning: the feature `lazy_type_alias` is incomplete and may not be safe to use and/or cause compiler crashes warning: the feature `lazy_type_alias` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/coerce-behind-lazy.rs:5:12 --> $DIR/coerce-behind-lazy.rs:6:12
| |
LL | #![feature(lazy_type_alias)] LL | #![feature(lazy_type_alias)]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^

View File

@ -1,5 +1,6 @@
//@ check-pass //@ check-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![feature(lazy_type_alias)] #![feature(lazy_type_alias)]

View File

@ -0,0 +1,43 @@
error[E0275]: overflow normalizing the type alias `Loop`
--> $DIR/inherent-impls-overflow.rs:8:13
|
LL | type Loop = Loop;
| ^^^^
|
= note: in case this is a recursive type alias, consider using a struct, enum, or union instead
error[E0275]: overflow normalizing the type alias `Loop`
--> $DIR/inherent-impls-overflow.rs:10:1
|
LL | impl Loop {}
| ^^^^^^^^^^^^
|
= note: in case this is a recursive type alias, consider using a struct, enum, or union instead
error[E0275]: overflow normalizing the type alias `Poly0<(((((((...,),),),),),),)>`
--> $DIR/inherent-impls-overflow.rs:14:17
|
LL | type Poly0<T> = Poly1<(T,)>;
| ^^^^^^^^^^^
|
= note: in case this is a recursive type alias, consider using a struct, enum, or union instead
error[E0275]: overflow normalizing the type alias `Poly1<(((((((...,),),),),),),)>`
--> $DIR/inherent-impls-overflow.rs:17:17
|
LL | type Poly1<T> = Poly0<(T,)>;
| ^^^^^^^^^^^
|
= note: in case this is a recursive type alias, consider using a struct, enum, or union instead
error[E0275]: overflow normalizing the type alias `Poly1<(((((((...,),),),),),),)>`
--> $DIR/inherent-impls-overflow.rs:21:1
|
LL | impl Poly0<()> {}
| ^^^^^^^^^^^^^^^^^
|
= note: in case this is a recursive type alias, consider using a struct, enum, or union instead
error: aborting due to 5 previous errors
For more information about this error, try `rustc --explain E0275`.

View File

@ -1,11 +1,11 @@
error[E0275]: overflow evaluating the requirement `Loop == _` error[E0275]: overflow evaluating the requirement `Loop == _`
--> $DIR/inherent-impls-overflow.rs:9:6 --> $DIR/inherent-impls-overflow.rs:10:6
| |
LL | impl Loop {} LL | impl Loop {}
| ^^^^ | ^^^^
error[E0392]: type parameter `T` is never used error[E0392]: type parameter `T` is never used
--> $DIR/inherent-impls-overflow.rs:13:12 --> $DIR/inherent-impls-overflow.rs:14:12
| |
LL | type Poly0<T> = Poly1<(T,)>; LL | type Poly0<T> = Poly1<(T,)>;
| ^ unused type parameter | ^ unused type parameter
@ -14,7 +14,7 @@ LL | type Poly0<T> = Poly1<(T,)>;
= help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead
error[E0392]: type parameter `T` is never used error[E0392]: type parameter `T` is never used
--> $DIR/inherent-impls-overflow.rs:16:12 --> $DIR/inherent-impls-overflow.rs:17:12
| |
LL | type Poly1<T> = Poly0<(T,)>; LL | type Poly1<T> = Poly0<(T,)>;
| ^ unused type parameter | ^ unused type parameter
@ -23,7 +23,7 @@ LL | type Poly1<T> = Poly0<(T,)>;
= help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead
error[E0275]: overflow evaluating the requirement `Poly0<()> == _` error[E0275]: overflow evaluating the requirement `Poly0<()> == _`
--> $DIR/inherent-impls-overflow.rs:20:6 --> $DIR/inherent-impls-overflow.rs:21:6
| |
LL | impl Poly0<()> {} LL | impl Poly0<()> {}
| ^^^^^^^^^ | ^^^^^^^^^

View File

@ -1,24 +1,25 @@
//@ revisions: classic next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![feature(lazy_type_alias)] #![feature(lazy_type_alias)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
type Loop = Loop; //[classic]~ ERROR overflow normalizing the type alias `Loop` type Loop = Loop; //[current]~ ERROR overflow normalizing the type alias `Loop`
impl Loop {} impl Loop {}
//[classic]~^ ERROR overflow normalizing the type alias `Loop` //[current]~^ ERROR overflow normalizing the type alias `Loop`
//[next]~^^ ERROR overflow evaluating the requirement `Loop == _` //[next]~^^ ERROR overflow evaluating the requirement `Loop == _`
type Poly0<T> = Poly1<(T,)>; type Poly0<T> = Poly1<(T,)>;
//[classic]~^ ERROR overflow normalizing the type alias `Poly0<(((((((...,),),),),),),)>` //[current]~^ ERROR overflow normalizing the type alias `Poly0<(((((((...,),),),),),),)>`
//[next]~^^ ERROR type parameter `T` is never used //[next]~^^ ERROR type parameter `T` is never used
type Poly1<T> = Poly0<(T,)>; type Poly1<T> = Poly0<(T,)>;
//[classic]~^ ERROR overflow normalizing the type alias `Poly1<(((((((...,),),),),),),)>` //[current]~^ ERROR overflow normalizing the type alias `Poly1<(((((((...,),),),),),),)>`
//[next]~^^ ERROR type parameter `T` is never used //[next]~^^ ERROR type parameter `T` is never used
impl Poly0<()> {} impl Poly0<()> {}
//[classic]~^ ERROR overflow normalizing the type alias `Poly1<(((((((...,),),),),),),)>` //[current]~^ ERROR overflow normalizing the type alias `Poly1<(((((((...,),),),),),),)>`
//[next]~^^ ERROR overflow evaluating the requirement `Poly0<()> == _` //[next]~^^ ERROR overflow evaluating the requirement `Poly0<()> == _`
fn main() {} fn main() {}

View File

@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `MyTrait` for type `MyFoo` error[E0119]: conflicting implementations of trait `MyTrait` for type `MyFoo`
--> $DIR/never-from-impl-is-reserved.rs:13:1 --> $DIR/never-from-impl-is-reserved.rs:14:1
| |
LL | impl MyTrait for MyFoo {} LL | impl MyTrait for MyFoo {}
| ---------------------- first implementation here | ---------------------- first implementation here

View File

@ -1,5 +1,5 @@
error[E0119]: conflicting implementations of trait `MyTrait` for type `MyFoo` error[E0119]: conflicting implementations of trait `MyTrait` for type `MyFoo`
--> $DIR/never-from-impl-is-reserved.rs:13:1 --> $DIR/never-from-impl-is-reserved.rs:14:1
| |
LL | impl MyTrait for MyFoo {} LL | impl MyTrait for MyFoo {}
| ---------------------- first implementation here | ---------------------- first implementation here

View File

@ -1,6 +1,7 @@
// check that the `for<T> T: From<!>` impl is reserved // check that the `for<T> T: From<!>` impl is reserved
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver=coherence //@[next] compile-flags: -Znext-solver=coherence
#![feature(never_type)] #![feature(never_type)]

View File

@ -1,5 +1,6 @@
//@ check-pass //@ check-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
use std::ops::Deref; use std::ops::Deref;

View File

@ -1,5 +1,6 @@
//@ check-pass //@ check-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
trait Foo { trait Foo {

View File

@ -1,5 +1,6 @@
//@ run-pass //@ run-pass
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![allow(unused_must_use)] #![allow(unused_must_use)]

View File

@ -1,5 +1,5 @@
warning: methods `good_virt` and `good_indirect` are never used warning: methods `good_virt` and `good_indirect` are never used
--> $DIR/manual-self-impl-for-unsafe-obj.rs:22:8 --> $DIR/manual-self-impl-for-unsafe-obj.rs:23:8
| |
LL | trait Good { LL | trait Good {
| ---- methods in this trait | ---- methods in this trait

View File

@ -1,5 +1,5 @@
warning: methods `good_virt` and `good_indirect` are never used warning: methods `good_virt` and `good_indirect` are never used
--> $DIR/manual-self-impl-for-unsafe-obj.rs:22:8 --> $DIR/manual-self-impl-for-unsafe-obj.rs:23:8
| |
LL | trait Good { LL | trait Good {
| ---- methods in this trait | ---- methods in this trait

View File

@ -1,6 +1,7 @@
// Check that we can manually implement an object-unsafe trait for its trait object. // Check that we can manually implement an object-unsafe trait for its trait object.
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@ run-pass //@ run-pass

View File

@ -1,16 +1,16 @@
error[E0277]: the trait bound `dyn NotObject: NotObject` is not satisfied error[E0277]: the trait bound `dyn NotObject: NotObject` is not satisfied
--> $DIR/deny-builtin-object-impl.rs:18:23 --> $DIR/deny-builtin-object-impl.rs:19:23
| |
LL | test_not_object::<dyn NotObject>(); LL | test_not_object::<dyn NotObject>();
| ^^^^^^^^^^^^^ the trait `NotObject` is not implemented for `dyn NotObject` | ^^^^^^^^^^^^^ the trait `NotObject` is not implemented for `dyn NotObject`
| |
help: this trait has no implementations, consider adding one help: this trait has no implementations, consider adding one
--> $DIR/deny-builtin-object-impl.rs:10:1 --> $DIR/deny-builtin-object-impl.rs:11:1
| |
LL | trait NotObject {} LL | trait NotObject {}
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
note: required by a bound in `test_not_object` note: required by a bound in `test_not_object`
--> $DIR/deny-builtin-object-impl.rs:14:23 --> $DIR/deny-builtin-object-impl.rs:15:23
| |
LL | fn test_not_object<T: NotObject + ?Sized>() {} LL | fn test_not_object<T: NotObject + ?Sized>() {}
| ^^^^^^^^^ required by this bound in `test_not_object` | ^^^^^^^^^ required by this bound in `test_not_object`

View File

@ -1,16 +1,16 @@
error[E0277]: the trait bound `dyn NotObject: NotObject` is not satisfied error[E0277]: the trait bound `dyn NotObject: NotObject` is not satisfied
--> $DIR/deny-builtin-object-impl.rs:18:23 --> $DIR/deny-builtin-object-impl.rs:19:23
| |
LL | test_not_object::<dyn NotObject>(); LL | test_not_object::<dyn NotObject>();
| ^^^^^^^^^^^^^ the trait `NotObject` is not implemented for `dyn NotObject` | ^^^^^^^^^^^^^ the trait `NotObject` is not implemented for `dyn NotObject`
| |
help: this trait has no implementations, consider adding one help: this trait has no implementations, consider adding one
--> $DIR/deny-builtin-object-impl.rs:10:1 --> $DIR/deny-builtin-object-impl.rs:11:1
| |
LL | trait NotObject {} LL | trait NotObject {}
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
note: required by a bound in `test_not_object` note: required by a bound in `test_not_object`
--> $DIR/deny-builtin-object-impl.rs:14:23 --> $DIR/deny-builtin-object-impl.rs:15:23
| |
LL | fn test_not_object<T: NotObject + ?Sized>() {} LL | fn test_not_object<T: NotObject + ?Sized>() {}
| ^^^^^^^^^ required by this bound in `test_not_object` | ^^^^^^^^^ required by this bound in `test_not_object`

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
#![feature(rustc_attrs)] #![feature(rustc_attrs)]

View File

@ -1,5 +1,6 @@
//@ run-pass //@ run-pass
//@ revisions: classic next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
trait Foo: Fn(i32) -> i32 + Send {} trait Foo: Fn(i32) -> i32 + Send {}

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@ check-pass //@ check-pass

View File

@ -1,4 +1,5 @@
//@ revisions: next current //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@ check-pass //@ check-pass

View File

@ -1,23 +1,23 @@
error[E0275]: overflow evaluating the requirement `<T as Trait>::Assoc: Trait` error[E0275]: overflow evaluating the requirement `<T as Trait>::Assoc: Trait`
--> $DIR/normalize-param-env-4.rs:18:26 --> $DIR/normalize-param-env-4.rs:19:26
| |
LL | <T as Trait>::Assoc: Trait, LL | <T as Trait>::Assoc: Trait,
| ^^^^^ | ^^^^^
error[E0275]: overflow evaluating the requirement `<T as Trait>::Assoc well-formed` error[E0275]: overflow evaluating the requirement `<T as Trait>::Assoc well-formed`
--> $DIR/normalize-param-env-4.rs:18:26 --> $DIR/normalize-param-env-4.rs:19:26
| |
LL | <T as Trait>::Assoc: Trait, LL | <T as Trait>::Assoc: Trait,
| ^^^^^ | ^^^^^
error[E0275]: overflow evaluating the requirement `T: Trait` error[E0275]: overflow evaluating the requirement `T: Trait`
--> $DIR/normalize-param-env-4.rs:31:19 --> $DIR/normalize-param-env-4.rs:32:19
| |
LL | impls_trait::<T>(); LL | impls_trait::<T>();
| ^ | ^
| |
note: required by a bound in `impls_trait` note: required by a bound in `impls_trait`
--> $DIR/normalize-param-env-4.rs:14:19 --> $DIR/normalize-param-env-4.rs:15:19
| |
LL | fn impls_trait<T: Trait>() {} LL | fn impls_trait<T: Trait>() {}
| ^^^^^ required by this bound in `impls_trait` | ^^^^^ required by this bound in `impls_trait`

View File

@ -1,4 +1,5 @@
//@ revisions: current next //@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@[next] compile-flags: -Znext-solver //@[next] compile-flags: -Znext-solver
//@[next] known-bug: #92505 //@[next] known-bug: #92505
//@[current] check-pass //@[current] check-pass

View File

@ -1,5 +1,5 @@
warning: the feature `non_lifetime_binders` is incomplete and may not be safe to use and/or cause compiler crashes warning: the feature `non_lifetime_binders` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/non-lifetime-via-dyn-builtin.rs:5:12 --> $DIR/non-lifetime-via-dyn-builtin.rs:6:12
| |
LL | #![feature(non_lifetime_binders)] LL | #![feature(non_lifetime_binders)]
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^

View File

@ -1,5 +1,5 @@
warning: the feature `non_lifetime_binders` is incomplete and may not be safe to use and/or cause compiler crashes warning: the feature `non_lifetime_binders` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/non-lifetime-via-dyn-builtin.rs:5:12 --> $DIR/non-lifetime-via-dyn-builtin.rs:6:12
| |
LL | #![feature(non_lifetime_binders)] LL | #![feature(non_lifetime_binders)]
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^

Some files were not shown because too many files have changed in this diff Show More