Elision in method can take 'static
from self
, perhaps surprising
#48686
Labels
A-lifetimes
Area: lifetime related
A-lint
Area: Lints (warnings about flaws in source code) such as unused_mut.
C-enhancement
Category: An issue proposing an enhancement or a PR with one.
E-help-wanted
Call for participation: Help is requested to fix this issue.
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
rustc currently compiles the following with no warnings or errors:
However, attempting to make this function safe reveals that the elided lifetime of
x
isn't the lifetime in the return type-- it's instead copying over the'static
lifetime into the return type! Rustdoc actually documents that the signature of this method isfn get_mut(&'static self, x: &mut u8) -> &'static mut u8
.The following code produces an error:
This seems like it could be fixed by disallowing elision in this case via a lint.
cc @aturon
The text was updated successfully, but these errors were encountered: