Verified Solution[rust-lang/rust] `&pin!()` stopped being deref-coerced in rust 1.88
Sponsored Content
### ROOT CAUSE
The issue arises because `std::pin::pin!()` now returns a `Pin<&T>`, and taking a reference to it without dereferencing doesn't trigger the necessary coercion to `&T`. The compiler expects a `&i32` but receives a `Pin<&mut i32>`, leading to a type mismatch.
### CODE FIX
To fix the issue, explicitly dereference the `Pin` before taking the reference:
```rust
fn main() {
let _x: &i32 = &*std::pin::pin!(1i32);
}
```
Deploy on DigitalOcean ($200 Credit)
Related Fixes
[rust-lang/rust] TAIT + next-solver will allow constructing a unit struct without mentioning its type, causing `pinned-init` to be unsound.
[tensorflow/tensorflow] tf.linalg.logdet aggressively outputs NaNs on batched 4x4 float64 inputs during framework translation
[microsoft/vscode] Copilot chat OTel instruction message JSON doesn't follow the standard