diff --git a/crates/build/src/error.rs b/crates/build/src/error.rs index b85e132e..97bd010a 100644 --- a/crates/build/src/error.rs +++ b/crates/build/src/error.rs @@ -95,6 +95,9 @@ pub enum BuildError { #[error("Failed to extract content from path, err: '{0}'")] FailedToExtractContent(io::Error), + #[error("Failed to parse source '{path}': {error}")] + SourceParse { path: PathBuf, error: String }, + #[error("Failed to generate file: {0}")] GenerationFailed(String), diff --git a/crates/build/src/resolver.rs b/crates/build/src/resolver.rs index c3665425..b8e787e9 100644 --- a/crates/build/src/resolver.rs +++ b/crates/build/src/resolver.rs @@ -44,7 +44,12 @@ impl ArtifactsResolver { match parse::Program::parse_from_str(&content) { Ok(program) if Self::rec_main_checker(program.items(), &FunctionName::main()) => paths.push(path), Ok(_) => {} - Err(error) => eprintln!("warning: skipping '{}' as it doesn't parse: {error}", path.display()), + Err(error) => { + return Err(BuildError::SourceParse { + path, + error: error.to_string(), + }); + } } }