Output a note when lifetimes cannot be elided from functions
This commit is contained in:
parent
60e7317345
commit
a8577be6f4
4 changed files with 103 additions and 22 deletions
|
|
@ -10,11 +10,13 @@
|
|||
|
||||
// Lifetime annotation needed because we have no arguments.
|
||||
fn f() -> &int { //~ ERROR missing lifetime specifier
|
||||
//~^ NOTE there is no value for it to be borrowed from
|
||||
fail!()
|
||||
}
|
||||
|
||||
// Lifetime annotation needed because we have two by-reference parameters.
|
||||
fn g(_: &int, _: &int) -> &int { //~ ERROR missing lifetime specifier
|
||||
fn g(_x: &int, _y: &int) -> &int { //~ ERROR missing lifetime specifier
|
||||
//~^ NOTE the signature does not say whether it is borrowed from `_x` or `_y`
|
||||
fail!()
|
||||
}
|
||||
|
||||
|
|
@ -24,7 +26,8 @@ struct Foo<'a> {
|
|||
|
||||
// Lifetime annotation needed because we have two lifetimes: one as a parameter
|
||||
// and one on the reference.
|
||||
fn h(_: &Foo) -> &int { //~ ERROR missing lifetime specifier
|
||||
fn h(_x: &Foo) -> &int { //~ ERROR missing lifetime specifier
|
||||
//~^ NOTE the signature does not say which one of `_x`'s 2 elided lifetimes it is borrowed from
|
||||
fail!()
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue