Problem
#[hook] generates code that no longer compiles under Lifetime Capture Rules 2024 (RFC 3498).
Steps To Reproduce
# Cargo.toml
[package]
name = "foo"
edition = "2024"
[dependencies]
yew = { version = "0.21.0", features = ["csr"] }
// src/lib.rs
use yew::prelude::*;
#[hook]
pub fn use_foo() -> impl Sized {
42
}
$ cargo +nightly-2024-12-12 check
error: lifetime may not live long enough
--> src/lib.rs:3:1
|
3 | #[hook]
| -^^^^^-
| | |
| | return type of closure `impl Sized` contains a lifetime `'2`
| let's call the lifetime of this reference `'1`
| returning this value requires that `'1` must outlive `'2`
|
= note: this error originates in the attribute macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
Expected behavior
Successful compilation as in Rust 2021
Screenshots
If applicable, add screenshots to help explain your problem.
Environment:
- Yew version: 0.21.0
- Rust version:
nightly-2024-12-12
- Target, if relevant: N/A
- Build tool, if relevant: N/A
- OS, if relevant: N/A
- Browser and version, if relevant: N/A
Questionnaire
Problem
#[hook]generates code that no longer compiles under Lifetime Capture Rules 2024 (RFC 3498).Steps To Reproduce
Expected behavior
Successful compilation as in Rust 2021
Screenshots
If applicable, add screenshots to help explain your problem.
Environment:
nightly-2024-12-12Questionnaire