I have a fun one, where the compiler says I have an unused lifetime parameter, except it's clearly used. It feels almost like a compiler error, though I'm probably overlooking something? Who can see the mistake?
main.rs
trait Context<'a> {
fn name(&'a self) -> &'a str;
}
type Func<'a, C: Context<'a>> = dyn Fn(C);
pub struct BuiltInFunction<'a, C: Context<'a>> {
pub(crate) func: Box<Func<'a, C>>,
}
error[E0392]: parameter `'a` is never used
--> src/main.rs:7:28
|
7 | pub struct BuiltInFunction<'a, C: Context<'a>> {
| ^^ unused parameter
|
= help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData`
For more information about this error, try `rustc --explain E0392`.
error: could not compile `lifetime-test` (bin "lifetime-test") due to 1 previous error
Saying that people are corruptible doesn’t imply they are corrupt. Thankfully we live finite lives and plenty of us can make it to the end before we corrupt ourselves.
This is quite literally pretending the Age of Enlightenment never existed. We can change structures and have throughout history.