mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 02:57:37 +00:00
Use revisions for NLL in nll
This commit is contained in:
parent
b9f241d407
commit
cc97875d26
@ -1,12 +0,0 @@
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/hrtb-exists-forall-fn.rs:17:34
|
||||
|
|
||||
LL | let _: for<'b> fn(&'b u32) = foo();
|
||||
| ^^^^^ one type is more general than the other
|
||||
|
|
||||
= note: expected fn pointer `for<'b> fn(&'b u32)`
|
||||
found fn pointer `fn(&u32)`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0308`.
|
@ -1,11 +1,11 @@
|
||||
error[E0601]: `main` function not found in crate `continue_after_missing_main`
|
||||
--> $DIR/continue-after-missing-main.rs:30:2
|
||||
--> $DIR/continue-after-missing-main.rs:34:2
|
||||
|
|
||||
LL | }
|
||||
| ^ consider adding a `main` function to `$DIR/continue-after-missing-main.rs`
|
||||
|
||||
error[E0623]: lifetime mismatch
|
||||
--> $DIR/continue-after-missing-main.rs:28:56
|
||||
--> $DIR/continue-after-missing-main.rs:32:56
|
||||
|
|
||||
LL | tableau: Tableau<'data_provider, AdaptedMatrixProvider<'original_data, MP>>,
|
||||
| ------------------------------------------------------------------ these two types are declared with different lifetimes...
|
@ -1,5 +1,5 @@
|
||||
error[E0601]: `main` function not found in crate `continue_after_missing_main`
|
||||
--> $DIR/continue-after-missing-main.rs:30:2
|
||||
--> $DIR/continue-after-missing-main.rs:34:2
|
||||
|
|
||||
LL | }
|
||||
| ^ consider adding a `main` function to `$DIR/continue-after-missing-main.rs`
|
||||
|
@ -1,3 +1,7 @@
|
||||
// ignore-compare-mode-nll
|
||||
// revisions: base nll
|
||||
// [nll]compile-flags: -Zborrowck=mir
|
||||
|
||||
#![allow(dead_code)]
|
||||
|
||||
struct Tableau<'a, MP> {
|
||||
@ -26,5 +30,5 @@ fn create_and_solve_subproblems<'data_provider, 'original_data, MP>(
|
||||
tableau: Tableau<'data_provider, AdaptedMatrixProvider<'original_data, MP>>,
|
||||
) {
|
||||
let _: AdaptedMatrixProvider<'original_data, MP> = tableau.provider().clone_with_extra_bound();
|
||||
//~^ ERROR lifetime mismatch
|
||||
//[base]~^ ERROR lifetime mismatch
|
||||
} //~ ERROR `main` function not found in crate
|
||||
|
@ -1,28 +1,28 @@
|
||||
error[E0495]: cannot infer an appropriate lifetime due to conflicting requirements
|
||||
--> $DIR/issue-52213.rs:2:11
|
||||
--> $DIR/issue-52213.rs:6:11
|
||||
|
|
||||
LL | match (&t,) {
|
||||
| ^^^^^
|
||||
|
|
||||
note: first, the lifetime cannot outlive the lifetime `'a` as defined here...
|
||||
--> $DIR/issue-52213.rs:1:23
|
||||
--> $DIR/issue-52213.rs:5:23
|
||||
|
|
||||
LL | fn transmute_lifetime<'a, 'b, T>(t: &'a (T,)) -> &'b T {
|
||||
| ^^
|
||||
note: ...so that the types are compatible
|
||||
--> $DIR/issue-52213.rs:2:11
|
||||
--> $DIR/issue-52213.rs:6:11
|
||||
|
|
||||
LL | match (&t,) {
|
||||
| ^^^^^
|
||||
= note: expected `(&&(T,),)`
|
||||
found `(&&'a (T,),)`
|
||||
note: but, the lifetime must be valid for the lifetime `'b` as defined here...
|
||||
--> $DIR/issue-52213.rs:1:27
|
||||
--> $DIR/issue-52213.rs:5:27
|
||||
|
|
||||
LL | fn transmute_lifetime<'a, 'b, T>(t: &'a (T,)) -> &'b T {
|
||||
| ^^
|
||||
note: ...so that reference does not outlive borrowed content
|
||||
--> $DIR/issue-52213.rs:3:20
|
||||
--> $DIR/issue-52213.rs:8:20
|
||||
|
|
||||
LL | ((u,),) => u,
|
||||
| ^
|
@ -1,11 +1,11 @@
|
||||
error: lifetime may not live long enough
|
||||
--> $DIR/issue-52213.rs:3:20
|
||||
--> $DIR/issue-52213.rs:8:20
|
||||
|
|
||||
LL | fn transmute_lifetime<'a, 'b, T>(t: &'a (T,)) -> &'b T {
|
||||
| -- -- lifetime `'b` defined here
|
||||
| |
|
||||
| lifetime `'a` defined here
|
||||
LL | match (&t,) {
|
||||
...
|
||||
LL | ((u,),) => u,
|
||||
| ^ function was supposed to return data with lifetime `'b` but it is returning data with lifetime `'a`
|
||||
|
|
||||
|
@ -1,6 +1,12 @@
|
||||
// ignore-compare-mode-nll
|
||||
// revisions: base nll
|
||||
// [nll]compile-flags: -Zborrowck=mir
|
||||
|
||||
fn transmute_lifetime<'a, 'b, T>(t: &'a (T,)) -> &'b T {
|
||||
match (&t,) { //~ ERROR cannot infer an appropriate lifetime
|
||||
match (&t,) {
|
||||
//[base]~^ ERROR cannot infer an appropriate lifetime
|
||||
((u,),) => u,
|
||||
//[nll]~^ ERROR lifetime may not live long enough
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-52533-1.rs:9:18
|
||||
--> $DIR/issue-52533-1.rs:13:18
|
||||
|
|
||||
LL | gimme(|x, y| y)
|
||||
| ^ lifetime mismatch
|
||||
@ -7,12 +7,12 @@ LL | gimme(|x, y| y)
|
||||
= note: expected reference `&Foo<'_, '_, u32>`
|
||||
found reference `&Foo<'_, '_, u32>`
|
||||
note: the anonymous lifetime #3 defined here...
|
||||
--> $DIR/issue-52533-1.rs:9:11
|
||||
--> $DIR/issue-52533-1.rs:13:11
|
||||
|
|
||||
LL | gimme(|x, y| y)
|
||||
| ^^^^^^^^
|
||||
note: ...does not necessarily outlive the anonymous lifetime #2 defined here
|
||||
--> $DIR/issue-52533-1.rs:9:11
|
||||
--> $DIR/issue-52533-1.rs:13:11
|
||||
|
|
||||
LL | gimme(|x, y| y)
|
||||
| ^^^^^^^^
|
@ -1,5 +1,5 @@
|
||||
error: lifetime may not live long enough
|
||||
--> $DIR/issue-52533-1.rs:9:18
|
||||
--> $DIR/issue-52533-1.rs:13:18
|
||||
|
|
||||
LL | gimme(|x, y| y)
|
||||
| - - ^ closure was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||
|
@ -1,3 +1,7 @@
|
||||
// ignore-compare-mode-nll
|
||||
// revisions: base nll
|
||||
// [nll]compile-flags: -Zborrowck=mir
|
||||
|
||||
#![allow(warnings)]
|
||||
|
||||
struct Foo<'a, 'b, T: 'a + 'b> { x: &'a T, y: &'b T }
|
||||
@ -7,5 +11,6 @@ fn gimme(_: impl for<'a, 'b, 'c> FnOnce(&'a Foo<'a, 'b, u32>,
|
||||
|
||||
fn main() {
|
||||
gimme(|x, y| y)
|
||||
//~^ ERROR mismatched types [E0308]
|
||||
//[base]~^ ERROR mismatched types [E0308]
|
||||
//[nll]~^^ ERROR lifetime may not live long enough
|
||||
}
|
||||
|
@ -4,11 +4,6 @@
|
||||
// when buffering lints, which resulted in ICE later on,
|
||||
// see #94502.
|
||||
|
||||
// Errors with `nll` which is already tested in enough other tests,
|
||||
// so we ignore it here.
|
||||
//
|
||||
// ignore-compare-mode-nll
|
||||
|
||||
struct Repro;
|
||||
impl Repro {
|
||||
fn get(&self) -> &i32 {
|
||||
|
@ -1,5 +1,5 @@
|
||||
error[E0309]: the associated type `<T as MyTrait<'a>>::Output` may not live long enough
|
||||
--> $DIR/projection-where-clause-env-wrong-bound.rs:15:5
|
||||
--> $DIR/projection-where-clause-env-wrong-bound.rs:19:5
|
||||
|
|
||||
LL | bar::<T::Output>()
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
@ -7,7 +7,7 @@ LL | bar::<T::Output>()
|
||||
= help: consider adding an explicit lifetime bound `<T as MyTrait<'a>>::Output: 'a`...
|
||||
= note: ...so that the type `<T as MyTrait<'a>>::Output` will meet its required lifetime bounds...
|
||||
note: ...that is required by this bound
|
||||
--> $DIR/projection-where-clause-env-wrong-bound.rs:29:8
|
||||
--> $DIR/projection-where-clause-env-wrong-bound.rs:33:8
|
||||
|
|
||||
LL | T: 'a,
|
||||
| ^^
|
@ -1,5 +1,5 @@
|
||||
error[E0309]: the associated type `<T as MyTrait<'_>>::Output` may not live long enough
|
||||
--> $DIR/projection-where-clause-env-wrong-bound.rs:15:5
|
||||
--> $DIR/projection-where-clause-env-wrong-bound.rs:19:5
|
||||
|
|
||||
LL | bar::<T::Output>()
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
@ -1,3 +1,7 @@
|
||||
// revisions: base nll
|
||||
// ignore-compare-mode-nll
|
||||
//[nll] compile-flags: -Z borrowck=mir
|
||||
|
||||
// Test that we are able to establish that `<T as
|
||||
// MyTrait<'a>>::Output` outlives `'b` here. We need to prove however
|
||||
// that `<T as MyTrait<'a>>::Output` outlives `'a`, so we also have to
|
||||
|
@ -1,5 +1,5 @@
|
||||
error[E0309]: the associated type `<T as MyTrait<'a>>::Output` may not live long enough
|
||||
--> $DIR/projection-where-clause-env-wrong-lifetime.rs:14:5
|
||||
--> $DIR/projection-where-clause-env-wrong-lifetime.rs:18:5
|
||||
|
|
||||
LL | bar::<<T as MyTrait<'a>>::Output>()
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@ -7,7 +7,7 @@ LL | bar::<<T as MyTrait<'a>>::Output>()
|
||||
= help: consider adding an explicit lifetime bound `<T as MyTrait<'a>>::Output: 'a`...
|
||||
= note: ...so that the type `<T as MyTrait<'a>>::Output` will meet its required lifetime bounds...
|
||||
note: ...that is required by this bound
|
||||
--> $DIR/projection-where-clause-env-wrong-lifetime.rs:20:8
|
||||
--> $DIR/projection-where-clause-env-wrong-lifetime.rs:25:8
|
||||
|
|
||||
LL | T: 'a,
|
||||
| ^^
|
@ -1,5 +1,5 @@
|
||||
error[E0309]: the associated type `<T as MyTrait<'_>>::Output` may not live long enough
|
||||
--> $DIR/projection-where-clause-env-wrong-lifetime.rs:14:5
|
||||
--> $DIR/projection-where-clause-env-wrong-lifetime.rs:18:5
|
||||
|
|
||||
LL | bar::<<T as MyTrait<'a>>::Output>()
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -1,3 +1,7 @@
|
||||
// revisions: base nll
|
||||
// ignore-compare-mode-nll
|
||||
//[nll] compile-flags: -Z borrowck=mir
|
||||
|
||||
// Test that if we need to prove that `<T as MyTrait<'a>>::Output:
|
||||
// 'a`, but we only know that `<T as MyTrait<'b>>::Output: 'a`, that
|
||||
// doesn't suffice.
|
||||
@ -12,7 +16,8 @@ where
|
||||
<T as MyTrait<'b>>::Output: 'a,
|
||||
{
|
||||
bar::<<T as MyTrait<'a>>::Output>()
|
||||
//~^ ERROR the associated type `<T as MyTrait<'a>>::Output` may not live long enough
|
||||
//[base]~^ ERROR the associated type `<T as MyTrait<'a>>::Output` may not live long enough
|
||||
//[nll]~^^ ERROR the associated type `<T as MyTrait<'_>>::Output` may not live long enough
|
||||
}
|
||||
|
||||
fn bar<'a, T>() -> &'a ()
|
||||
|
Loading…
Reference in New Issue
Block a user