diff options
Diffstat (limited to 'src/test/ui')
17 files changed, 139 insertions, 46 deletions
diff --git a/src/test/ui/nll/closure-requirements/propagate-approximated-ref.stderr b/src/test/ui/nll/closure-requirements/propagate-approximated-ref.stderr index d713a37fa9f..2704a325314 100644 --- a/src/test/ui/nll/closure-requirements/propagate-approximated-ref.stderr +++ b/src/test/ui/nll/closure-requirements/propagate-approximated-ref.stderr @@ -20,7 +20,7 @@ LL | | }); i16, for<'r, 's, 't0, 't1, 't2, 't3> extern "rust-call" fn((&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 'r)) std::cell::Cell<&'_#1r &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 's)) u32>, &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't0)) std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't1)) &'_#2r u32>, &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't2)) std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 's)) u32>, &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't3)) std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't1)) u32>)) ] - = note: number of external vids: 3 + = note: number of external vids: 5 = note: where '_#1r: '_#2r error[E0623]: lifetime mismatch diff --git a/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-no-bound.stderr b/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-no-bound.stderr index 33e4240736f..d5495b69c7c 100644 --- a/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-no-bound.stderr +++ b/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-no-bound.stderr @@ -20,7 +20,7 @@ LL | | }); i16, for<'r, 's, 't0, 't1, 't2> extern "rust-call" fn((&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 'r)) std::cell::Cell<&'_#1r &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 's)) u32>, &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't0)) std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 's)) u32>, &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't1)) std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't2)) u32>)) ] - = note: number of external vids: 2 + = note: number of external vids: 4 = note: where '_#1r: '_#0r error: borrowed data escapes outside of function diff --git a/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-wrong-bound.stderr b/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-wrong-bound.stderr index 5f98a0fd36d..50e2dd23da8 100644 --- a/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-wrong-bound.stderr +++ b/src/test/ui/nll/closure-requirements/propagate-approximated-shorter-to-static-wrong-bound.stderr @@ -20,7 +20,7 @@ LL | | }); i16, for<'r, 's, 't0, 't1, 't2, 't3> extern "rust-call" fn((&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 'r)) std::cell::Cell<&'_#1r &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 's)) u32>, &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't0)) std::cell::Cell<&'_#2r &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't1)) u32>, &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't2)) std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 's)) u32>, &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't3)) std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 't1)) u32>)) ] - = note: number of external vids: 3 + = note: number of external vids: 5 = note: where '_#1r: '_#0r error: borrowed data escapes outside of function diff --git a/src/test/ui/nll/closure-requirements/propagate-approximated-val.stderr b/src/test/ui/nll/closure-requirements/propagate-approximated-val.stderr index f6ad6e46c62..3cd9e9dd5b0 100644 --- a/src/test/ui/nll/closure-requirements/propagate-approximated-val.stderr +++ b/src/test/ui/nll/closure-requirements/propagate-approximated-val.stderr @@ -20,7 +20,7 @@ LL | | }); i16, for<'r, 's> extern "rust-call" fn((std::cell::Cell<&'_#1r &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 'r)) u32>, std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 's)) &'_#2r u32>, std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 'r)) u32>, std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 's)) u32>)) ] - = note: number of external vids: 3 + = note: number of external vids: 5 = note: where '_#1r: '_#2r error[E0623]: lifetime mismatch diff --git a/src/test/ui/nll/closure-requirements/propagate-despite-same-free-region.stderr b/src/test/ui/nll/closure-requirements/propagate-despite-same-free-region.stderr index ef27218e089..0888b1380e6 100644 --- a/src/test/ui/nll/closure-requirements/propagate-despite-same-free-region.stderr +++ b/src/test/ui/nll/closure-requirements/propagate-despite-same-free-region.stderr @@ -18,7 +18,7 @@ LL | | }, i16, for<'r, 's> extern "rust-call" fn((std::cell::Cell<&'_#1r &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 'r)) u32>, std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 's)) &'_#2r u32>, std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 'r)) u32>, std::cell::Cell<&ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 's)) u32>)) ] - = note: number of external vids: 3 + = note: number of external vids: 4 = note: where '_#1r: '_#2r note: No external requirements diff --git a/src/test/ui/nll/closure-requirements/propagate-from-trait-match.stderr b/src/test/ui/nll/closure-requirements/propagate-from-trait-match.stderr index a8b4ed52801..42d5b15bd5a 100644 --- a/src/test/ui/nll/closure-requirements/propagate-from-trait-match.stderr +++ b/src/test/ui/nll/closure-requirements/propagate-from-trait-match.stderr @@ -23,7 +23,7 @@ LL | | }); i32, extern "rust-call" fn((T,)) ] - = note: number of external vids: 2 + = note: number of external vids: 3 = note: where T: '_#1r error[E0309]: the parameter type `T` may not live long enough diff --git a/src/test/ui/nll/issue-51351.rs b/src/test/ui/nll/issue-51351.rs new file mode 100644 index 00000000000..62cc3f9692b --- /dev/null +++ b/src/test/ui/nll/issue-51351.rs @@ -0,0 +1,32 @@ +// Copyright 2012 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. +// +// Regression test for #51351 and #52133: In the case of #51351, +// late-bound regions (like 'a) that were unused within the arguments of +// a function were overlooked and could case an ICE. In the case of #52133, +// LBR defined on the creator function needed to be added to the free regions +// of the closure, as they were not present in the closure's generic +// declarations otherwise. +// +// compile-pass + +#![feature(nll)] + +fn creash<'a>() { + let x: &'a () = &(); +} + +fn produce<'a>() { + move || { + let x: &'a () = &(); + }; +} + +fn main() {} diff --git a/src/test/ui/nll/issue-52133.rs b/src/test/ui/nll/issue-52133.rs new file mode 100644 index 00000000000..1c509c5d224 --- /dev/null +++ b/src/test/ui/nll/issue-52133.rs @@ -0,0 +1,50 @@ +// Copyright 2012 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. +// + +#![allow(warnings)] +#![feature(nll)] + +trait Bazinga { } +impl<F> Bazinga for F { } + +fn produce1<'a>(data: &'a u32) -> impl Bazinga + 'a { + let x = move || { + let _data: &'a u32 = data; + }; + x +} + +fn produce2<'a>(data: &'a mut Vec<&'a u32>, value: &'a u32) -> impl Bazinga + 'a { + let x = move || { + let value: &'a u32 = value; + data.push(value); + }; + x +} + + +fn produce3<'a, 'b: 'a>(data: &'a mut Vec<&'a u32>, value: &'b u32) -> impl Bazinga + 'a { + let x = move || { + let value: &'a u32 = value; + data.push(value); + }; + x +} + +fn produce_err<'a, 'b: 'a>(data: &'b mut Vec<&'b u32>, value: &'a u32) -> impl Bazinga + 'b { + let x = move || { //~ ERROR lifetime mismatch + let value: &'a u32 = value; + data.push(value); + }; + x +} + +fn main() { } diff --git a/src/test/ui/nll/issue-52133.stderr b/src/test/ui/nll/issue-52133.stderr new file mode 100644 index 00000000000..c1841004cf6 --- /dev/null +++ b/src/test/ui/nll/issue-52133.stderr @@ -0,0 +1,11 @@ +error[E0623]: lifetime mismatch + --> $DIR/issue-52133.rs:43:9 + | +LL | fn produce_err<'a, 'b: 'a>(data: &'b mut Vec<&'b u32>, value: &'a u32) -> impl Bazinga + 'b { + | -------------------- ------- these two types are declared with different lifetimes... +LL | let x = move || { //~ ERROR lifetime mismatch + | ^ ...but data from `value` flows into `data` here + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0623`. diff --git a/src/test/ui/nll/ty-outlives/projection-no-regions-closure.stderr b/src/test/ui/nll/ty-outlives/projection-no-regions-closure.stderr index e0705113577..dd12e8220c4 100644 --- a/src/test/ui/nll/ty-outlives/projection-no-regions-closure.stderr +++ b/src/test/ui/nll/ty-outlives/projection-no-regions-closure.stderr @@ -22,7 +22,7 @@ LL | with_signature(x, |mut y| Box::new(y.next())) i32, extern "rust-call" fn((std::boxed::Box<T>,)) -> std::boxed::Box<(dyn Anything + '_#2r)> ] - = note: number of external vids: 3 + = note: number of external vids: 4 = note: where <T as std::iter::Iterator>::Item: '_#2r error[E0309]: the associated type `<T as std::iter::Iterator>::Item` may not live long enough @@ -62,7 +62,7 @@ LL | with_signature(x, |mut y| Box::new(y.next())) i32, extern "rust-call" fn((std::boxed::Box<T>,)) -> std::boxed::Box<(dyn Anything + '_#2r)> ] - = note: number of external vids: 3 + = note: number of external vids: 4 = note: where <T as std::iter::Iterator>::Item: '_#2r note: No external requirements @@ -94,7 +94,7 @@ LL | with_signature(x, |mut y| Box::new(y.next())) i32, extern "rust-call" fn((std::boxed::Box<T>,)) -> std::boxed::Box<(dyn Anything + '_#3r)> ] - = note: number of external vids: 4 + = note: number of external vids: 5 = note: where <T as std::iter::Iterator>::Item: '_#3r error[E0309]: the associated type `<T as std::iter::Iterator>::Item` may not live long enough @@ -136,7 +136,7 @@ LL | with_signature(x, |mut y| Box::new(y.next())) i32, extern "rust-call" fn((std::boxed::Box<T>,)) -> std::boxed::Box<(dyn Anything + '_#3r)> ] - = note: number of external vids: 4 + = note: number of external vids: 5 = note: where <T as std::iter::Iterator>::Item: '_#3r note: No external requirements diff --git a/src/test/ui/nll/ty-outlives/projection-one-region-closure.stderr b/src/test/ui/nll/ty-outlives/projection-one-region-closure.stderr index b84ee4de5a3..456c52d3a51 100644 --- a/src/test/ui/nll/ty-outlives/projection-one-region-closure.stderr +++ b/src/test/ui/nll/ty-outlives/projection-one-region-closure.stderr @@ -28,7 +28,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)) ] - = note: number of external vids: 3 + = note: number of external vids: 5 = note: where T: '_#2r = note: where '_#1r: '_#2r @@ -76,7 +76,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)) ] - = note: number of external vids: 4 + = note: number of external vids: 5 = note: where T: '_#3r = note: where '_#2r: '_#3r @@ -125,7 +125,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)) ] - = note: number of external vids: 4 + = note: number of external vids: 5 = note: where T: '_#3r = note: where '_#2r: '_#3r @@ -174,7 +174,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)) ] - = note: number of external vids: 4 + = note: number of external vids: 5 = note: where T: '_#3r = note: where '_#2r: '_#3r diff --git a/src/test/ui/nll/ty-outlives/projection-one-region-trait-bound-closure.stderr b/src/test/ui/nll/ty-outlives/projection-one-region-trait-bound-closure.stderr index 42ecd6f9860..35c0405ff89 100644 --- a/src/test/ui/nll/ty-outlives/projection-one-region-trait-bound-closure.stderr +++ b/src/test/ui/nll/ty-outlives/projection-one-region-trait-bound-closure.stderr @@ -28,7 +28,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)) ] - = note: number of external vids: 3 + = note: number of external vids: 5 = note: where '_#1r: '_#2r error: unsatisfied lifetime constraints @@ -67,7 +67,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)) ] - = note: number of external vids: 4 + = note: number of external vids: 5 = note: where '_#2r: '_#3r error: unsatisfied lifetime constraints @@ -107,7 +107,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)) ] - = note: number of external vids: 4 + = note: number of external vids: 5 = note: where '_#2r: '_#3r error: unsatisfied lifetime constraints @@ -147,7 +147,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)) ] - = note: number of external vids: 4 + = note: number of external vids: 5 = note: where '_#2r: '_#3r note: No external requirements @@ -180,7 +180,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)) ] - = note: number of external vids: 3 + = note: number of external vids: 4 = note: where '_#1r: '_#2r note: No external requirements diff --git a/src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.rs b/src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.rs index 2552054fd5f..4e51a2bedc8 100644 --- a/src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.rs +++ b/src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.rs @@ -47,7 +47,7 @@ where { with_signature(cell, t, |cell, t| require(cell, t)); //~^ WARNING not reporting region error due to nll - //~| ERROR associated type `<T as Anything<'_#5r, '_#6r>>::AssocType` may not live long enough + //~| ERROR associated type `<T as Anything<'_#6r, '_#7r>>::AssocType` may not live long enough } #[rustc_regions] @@ -58,7 +58,7 @@ where { with_signature(cell, t, |cell, t| require(cell, t)); //~^ WARNING not reporting region error due to nll - //~| ERROR associated type `<T as Anything<'_#6r, '_#7r>>::AssocType` may not live long enough + //~| ERROR associated type `<T as Anything<'_#7r, '_#8r>>::AssocType` may not live long enough } #[rustc_regions] @@ -79,7 +79,7 @@ where with_signature(cell, t, |cell, t| require(cell, t)); //~^ WARNING not reporting region error due to nll - //~| ERROR associated type `<T as Anything<'_#6r, '_#7r>>::AssocType` may not live long enough + //~| ERROR associated type `<T as Anything<'_#7r, '_#8r>>::AssocType` may not live long enough } #[rustc_regions] diff --git a/src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.stderr b/src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.stderr index b0f823ad3d5..a713971d17c 100644 --- a/src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.stderr +++ b/src/test/ui/nll/ty-outlives/projection-two-region-trait-bound-closure.stderr @@ -35,16 +35,16 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)) ] - = note: number of external vids: 4 + = note: number of external vids: 6 = note: where <T as Anything<ReClosureBound('_#1r), ReClosureBound('_#2r)>>::AssocType: '_#3r -error[E0309]: the associated type `<T as Anything<'_#5r, '_#6r>>::AssocType` may not live long enough +error[E0309]: the associated type `<T as Anything<'_#6r, '_#7r>>::AssocType` may not live long enough --> $DIR/projection-two-region-trait-bound-closure.rs:48:29 | LL | with_signature(cell, t, |cell, t| require(cell, t)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | - = help: consider adding an explicit lifetime bound `<T as Anything<'_#5r, '_#6r>>::AssocType: ReFree(DefId(0/0:8 ~ projection_two_region_trait_bound_closure[317d]::no_relationships_late[0]), BrNamed(crate0:DefIndex(1:18), 'a))`... + = help: consider adding an explicit lifetime bound `<T as Anything<'_#6r, '_#7r>>::AssocType: ReFree(DefId(0/0:8 ~ projection_two_region_trait_bound_closure[317d]::no_relationships_late[0]), BrNamed(crate0:DefIndex(1:18), 'a))`... note: No external requirements --> $DIR/projection-two-region-trait-bound-closure.rs:44:1 @@ -54,7 +54,7 @@ LL | | where LL | | T: Anything<'b, 'c>, LL | | { ... | -LL | | //~| ERROR associated type `<T as Anything<'_#5r, '_#6r>>::AssocType` may not live long enough +LL | | //~| ERROR associated type `<T as Anything<'_#6r, '_#7r>>::AssocType` may not live long enough LL | | } | |_^ | @@ -78,16 +78,16 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)) ] - = note: number of external vids: 5 + = note: number of external vids: 6 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#3r)>>::AssocType: '_#4r -error[E0309]: the associated type `<T as Anything<'_#6r, '_#7r>>::AssocType` may not live long enough +error[E0309]: the associated type `<T as Anything<'_#7r, '_#8r>>::AssocType` may not live long enough --> $DIR/projection-two-region-trait-bound-closure.rs:59:29 | LL | with_signature(cell, t, |cell, t| require(cell, t)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | - = help: consider adding an explicit lifetime bound `<T as Anything<'_#6r, '_#7r>>::AssocType: ReEarlyBound(0, 'a)`... + = help: consider adding an explicit lifetime bound `<T as Anything<'_#7r, '_#8r>>::AssocType: ReEarlyBound(0, 'a)`... note: No external requirements --> $DIR/projection-two-region-trait-bound-closure.rs:54:1 @@ -97,7 +97,7 @@ LL | | where LL | | T: Anything<'b, 'c>, LL | | 'a: 'a, ... | -LL | | //~| ERROR associated type `<T as Anything<'_#6r, '_#7r>>::AssocType` may not live long enough +LL | | //~| ERROR associated type `<T as Anything<'_#7r, '_#8r>>::AssocType` may not live long enough LL | | } | |_^ | @@ -122,16 +122,16 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)) ] - = note: number of external vids: 5 + = note: number of external vids: 6 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#3r)>>::AssocType: '_#4r -error[E0309]: the associated type `<T as Anything<'_#6r, '_#7r>>::AssocType` may not live long enough +error[E0309]: the associated type `<T as Anything<'_#7r, '_#8r>>::AssocType` may not live long enough --> $DIR/projection-two-region-trait-bound-closure.rs:80:29 | LL | with_signature(cell, t, |cell, t| require(cell, t)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | - = help: consider adding an explicit lifetime bound `<T as Anything<'_#6r, '_#7r>>::AssocType: ReEarlyBound(0, 'a)`... + = help: consider adding an explicit lifetime bound `<T as Anything<'_#7r, '_#8r>>::AssocType: ReEarlyBound(0, 'a)`... note: No external requirements --> $DIR/projection-two-region-trait-bound-closure.rs:65:1 @@ -141,7 +141,7 @@ LL | | where LL | | T: Anything<'b, 'c>, LL | | T::AssocType: 'a, ... | -LL | | //~| ERROR associated type `<T as Anything<'_#6r, '_#7r>>::AssocType` may not live long enough +LL | | //~| ERROR associated type `<T as Anything<'_#7r, '_#8r>>::AssocType` may not live long enough LL | | } | |_^ | @@ -166,7 +166,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)) ] - = note: number of external vids: 5 + = note: number of external vids: 6 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#3r)>>::AssocType: '_#4r note: No external requirements @@ -202,7 +202,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)) ] - = note: number of external vids: 5 + = note: number of external vids: 6 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#3r)>>::AssocType: '_#4r note: No external requirements @@ -236,7 +236,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)) ] - = note: number of external vids: 3 + = note: number of external vids: 5 = note: where <T as Anything<ReClosureBound('_#1r), ReClosureBound('_#1r)>>::AssocType: '_#2r error: unsatisfied lifetime constraints @@ -275,7 +275,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)) ] - = note: number of external vids: 4 + = note: number of external vids: 5 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#2r)>>::AssocType: '_#3r note: No external requirements @@ -308,7 +308,7 @@ LL | with_signature(cell, t, |cell, t| require(cell, t)); i32, extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)) ] - = note: number of external vids: 3 + = note: number of external vids: 4 = note: where <T as Anything<ReClosureBound('_#1r), ReClosureBound('_#1r)>>::AssocType: '_#2r note: No external requirements diff --git a/src/test/ui/nll/ty-outlives/ty-param-closure-approximate-lower-bound.stderr b/src/test/ui/nll/ty-outlives/ty-param-closure-approximate-lower-bound.stderr index 0ada3fb64ae..39382df8d8a 100644 --- a/src/test/ui/nll/ty-outlives/ty-param-closure-approximate-lower-bound.stderr +++ b/src/test/ui/nll/ty-outlives/ty-param-closure-approximate-lower-bound.stderr @@ -27,7 +27,7 @@ LL | twice(cell, value, |a, b| invoke(a, b)); i16, for<'r, 's> extern "rust-call" fn((std::option::Option<std::cell::Cell<&'_#1r &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 'r)) ()>>, &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 's)) T)) ] - = note: number of external vids: 2 + = note: number of external vids: 3 = note: where T: '_#1r note: No external requirements @@ -57,7 +57,7 @@ LL | twice(cell, value, |a, b| invoke(a, b)); i16, for<'r, 's> extern "rust-call" fn((std::option::Option<std::cell::Cell<&'_#1r &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 'r)) ()>>, &ReLateBound(DebruijnIndex(0), BrNamed(crate0:DefIndex(0:0), 's)) T)) ] - = note: number of external vids: 2 + = note: number of external vids: 4 = note: where T: '_#1r error[E0309]: the parameter type `T` may not live long enough diff --git a/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-return-type.stderr b/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-return-type.stderr index 39ad96cc6cd..8babbe3fd97 100644 --- a/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-return-type.stderr +++ b/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-return-type.stderr @@ -22,7 +22,7 @@ LL | with_signature(x, |y| y) i32, extern "rust-call" fn((std::boxed::Box<T>,)) -> std::boxed::Box<(dyn std::fmt::Debug + '_#2r)> ] - = note: number of external vids: 3 + = note: number of external vids: 4 = note: where T: '_#2r error[E0309]: the parameter type `T` may not live long enough diff --git a/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-where-clause.stderr b/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-where-clause.stderr index a53ce21b7e6..b9426eba0f6 100644 --- a/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-where-clause.stderr +++ b/src/test/ui/nll/ty-outlives/ty-param-closure-outlives-from-where-clause.stderr @@ -28,7 +28,7 @@ LL | | }) i32, extern "rust-call" fn((std::cell::Cell<&'_#1r ()>, T)) ] - = note: number of external vids: 2 + = note: number of external vids: 4 = note: where T: '_#1r error[E0309]: the parameter type `T` may not live long enough @@ -81,7 +81,7 @@ LL | | }) i32, extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)) ] - = note: number of external vids: 3 + = note: number of external vids: 4 = note: where T: '_#2r note: No external requirements @@ -119,7 +119,7 @@ LL | | }) i32, extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)) ] - = note: number of external vids: 3 + = note: number of external vids: 5 = note: where T: '_#2r error[E0309]: the parameter type `T` may not live long enough @@ -170,7 +170,7 @@ LL | | }) i32, extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)) ] - = note: number of external vids: 4 + = note: number of external vids: 5 = note: where T: '_#3r note: No external requirements |
