diff --git a/crates/bevy_macro_utils/src/lib.rs b/crates/bevy_macro_utils/src/lib.rs index 6b994ff9ba90e..59e224d51194d 100644 --- a/crates/bevy_macro_utils/src/lib.rs +++ b/crates/bevy_macro_utils/src/lib.rs @@ -28,10 +28,20 @@ impl Default for BevyManifest { .map(PathBuf::from) .map(|mut path| { path.push("Cargo.toml"); - let manifest = std::fs::read_to_string(path).unwrap(); - manifest.parse::().unwrap() + if !path.exists() { + panic!( + "No Cargo manifest found for crate. Expected: {}", + path.display() + ); + } + let manifest = std::fs::read_to_string(path.clone()).unwrap_or_else(|_| { + panic!("Unable to read cargo manifest: {}", path.display()) + }); + manifest.parse::().unwrap_or_else(|_| { + panic!("Failed to parse cargo manifest: {}", path.display()) + }) }) - .unwrap(), + .expect("CARGO_MANIFEST_DIR is not defined."), } } }