From 91da8dba0dd4f1d3bbb8096a519ff0983dc0b2d2 Mon Sep 17 00:00:00 2001 From: Rustin170506 Date: Mon, 13 Jan 2025 22:53:38 +0800 Subject: [PATCH] fix: better error message for using the script as a dep Signed-off-by: Rustin170506 --- src/cargo/core/source_id.rs | 3 +++ tests/testsuite/script.rs | 5 +---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/cargo/core/source_id.rs b/src/cargo/core/source_id.rs index 501c88cba..3dbcc6f37 100644 --- a/src/cargo/core/source_id.rs +++ b/src/cargo/core/source_id.rs @@ -393,6 +393,9 @@ impl SourceId { .url .to_file_path() .expect("path sources cannot be remote"); + if crate::util::toml::is_embedded(&path) { + anyhow::bail!("Single file packages cannot be used as dependencies") + } Ok(Box::new(PathSource::new(&path, self, gctx))) } SourceKind::Registry | SourceKind::SparseRegistry => Ok(Box::new( diff --git a/tests/testsuite/script.rs b/tests/testsuite/script.rs index 53569caa9..6ff7114b6 100644 --- a/tests/testsuite/script.rs +++ b/tests/testsuite/script.rs @@ -1402,10 +1402,7 @@ Caused by: Unable to update [ROOT]/foo/script.rs Caused by: - failed to read `[ROOT]/foo/script.rs/Cargo.toml` - -Caused by: - Not a directory (os error 20) + Single file packages cannot be used as dependencies "#]]) .run();