Closed
Description
Code
fn load_get<A>() -> Result<&'static A, ()> {
unimplemented!()
}
fn main() -> Result<(), ()> {
let image: image::ImageBuffer<image::Rgba<u8>, Vec<u8>> = load_get()?;
Ok(())
}
Meta
rustc --version --verbose
:
❯ rustc --version --verbose
rustc 1.62.1 (e092d0b6b 2022-07-16)
binary: rustc
commit-hash: e092d0b6b43f2de967af0887873151bb1c0b18d3
commit-date: 2022-07-16
host: aarch64-apple-darwin
release: 1.62.1
LLVM version: 14.0.5
Error output
error[E0275]: overflow evaluating the requirement `&num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<_>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>: num_traits::pow::Pow<&u128>`
--> src/main.rs:6:63
|
6 | let image: image::ImageBuffer<image::Rgba<u8>, Vec<u8>> = load_get()?;
| ^^^^^^^^^^^
|
= help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`tester`)
and then if I increase the recursion limit enough...
process didn't exit successfully: `rustc --crate-name tester --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=e9955c5db8fba40f -C extra-filename=-e9955c5db8fba40f --out-dir /Users/jjspira/Documents/Rust/tester/target/debug/deps -C incremental=/Users/jjspira/Documents/Rust/tester/target/debug/incremental -L dependency=/Users/jjspira/Documents/Rust/tester/target/debug/deps --extern image=/Users/jjspira/Documents/Rust/tester/target/debug/deps/libimage-1ae40fb2a0984fba.rlib` (signal: 10, SIGBUS: access to undefined memory)
adding a backtrace gives nothing new, however, compiling on nightly gives the following:
❯ cargo +nightly run
Compiling tester v0.1.0 (/Users/jjspira/Documents/Rust/tester)
thread 'rustc' has overflowed its stack
fatal runtime error: stack overflow
error: could not compile `tester`
Caused by:
process didn't exit successfully: `rustc --crate-name tester --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=e5c31fefbe1f1d2f -C extra-filename=-e5c31fefbe1f1d2f --out-dir /Users/jjspira/Documents/Rust/tester/target/debug/deps -C incremental=/Users/jjspira/Documents/Rust/tester/target/debug/incremental -L dependency=/Users/jjspira/Documents/Rust/tester/target/debug/deps --extern image=/Users/jjspira/Documents/Rust/tester/target/debug/deps/libimage-0281d5d432728bf8.rlib` (signal: 6, SIGABRT: process abort signal)
I strongly suspect this is related to #89275, but that issue is now old and should have been solved. Perhaps a regression?