I have two Rust projects I maintain.
The first is a parser for the EDN Data Format. I haven't had to touch that one in a while. Best I can tell it's all still working.
The second is a fork of the Rust Playground for running Java code. I also haven't had to touch that one in a while, but I did today to update the versions of Java available and include updated early access builds.
When I did that, despite having not changed any dependencies, I got a build error in CI/CD. Build log is here if anyone wants to see.
Compiling io-lifetimes v1.0.11
Compiling doc-comment v0.3.3
Compiling smallvec v1.10.0
Compiling pin-project v1.1.0
Compiling miniz_oxide v0.6.2
Compiling time v0.3.22
error[E0282]: type annotations needed for `Box<_>`
--> /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/time-0.3.22/src/format_description/parse/mod.rs:83:9
|
83 | let items = format_items
| ^^^^^
...
86 | Ok(items.into())
| ---- type must be known at this point
|
help: consider giving `items` an explicit type, where the placeholders `_` are specified
|
83 | let items: Box<_> = format_items
| ++++++++
For more information about this error, try `rustc --explain E0282`.
And just like that, I've lost trust in Rust's resiliency to bit-rot.
It's not that deep an error and I resolved it by pinning a higher version of the time library, but it still sucks.
To me, whether code will "just work" into the future is an important property of a language and ecosystem. Maybe I had inflated expectations because of Rust editions, and maybe I'm being too harsh, but I now have this feeling of unease that I didn't before.