From c5576a849105548ba15e963a940920efea715a42 Mon Sep 17 00:00:00 2001 From: Scott Carda Date: Wed, 7 May 2025 14:01:01 -0700 Subject: [PATCH] Ignore dep errors on get_docs --- wasm/src/debug_service.rs | 2 +- wasm/src/lib.rs | 12 ++++++------ wasm/src/project_system.rs | 3 ++- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/wasm/src/debug_service.rs b/wasm/src/debug_service.rs index 0f67252a79..c5b0f3f9fe 100644 --- a/wasm/src/debug_service.rs +++ b/wasm/src/debug_service.rs @@ -214,7 +214,7 @@ pub fn init_debugger( entry: Option, ) -> Result> { let (source_map, capabilities, language_features, package_store, user_code_dependencies) = - into_qsc_args(program, entry) + into_qsc_args(program, entry, false) .map_err(|e| e.into_iter().map(Into::into).collect::>())?; Debugger::new( diff --git a/wasm/src/lib.rs b/wasm/src/lib.rs index e162f8d466..ffe3480c3f 100644 --- a/wasm/src/lib.rs +++ b/wasm/src/lib.rs @@ -59,7 +59,7 @@ pub fn git_hash() -> String { #[wasm_bindgen] pub fn get_qir(program: ProgramConfig) -> Result { let (source_map, capabilities, language_features, store, deps) = - into_qsc_args(program, None).map_err(compile_errors_into_qsharp_errors_json)?; + into_qsc_args(program, None, false).map_err(compile_errors_into_qsharp_errors_json)?; get_qir_( source_map, @@ -84,7 +84,7 @@ pub(crate) fn get_qir_( #[wasm_bindgen] pub fn get_estimates(program: ProgramConfig, expr: &str, params: &str) -> Result { let (source_map, capabilities, language_features, store, deps) = - into_qsc_args(program, Some(expr.into())).map_err(|mut e| { + into_qsc_args(program, Some(expr.into()), false).map_err(|mut e| { // Wrap in `interpret::Error` to match the error type from `Interpreter::new` below qsc::interpret::Error::from(e.pop().expect("expected at least one error")).to_string() })?; @@ -113,7 +113,7 @@ pub fn get_circuit( operation: Option, ) -> Result { let (source_map, capabilities, language_features, store, deps) = - into_qsc_args(program, None).map_err(compile_errors_into_qsharp_errors_json)?; + into_qsc_args(program, None, false).map_err(compile_errors_into_qsharp_errors_json)?; let (package_type, entry_point) = match operation { Some(p) => { @@ -224,7 +224,7 @@ pub fn get_hir( #[wasm_bindgen] pub fn get_rir(program: ProgramConfig) -> Result, String> { let (source_map, capabilities, language_features, store, deps) = - into_qsc_args(program, None).map_err(compile_errors_into_qsharp_errors_json)?; + into_qsc_args(program, None, false).map_err(compile_errors_into_qsharp_errors_json)?; qsc::codegen::qir::get_rir( source_map, @@ -415,7 +415,7 @@ pub fn runWithPauliNoise( pauliNoise: &JsValue, ) -> Result { let (source_map, capabilities, language_features, store, deps) = - into_qsc_args(program, Some(expr.into())).map_err(|mut e| { + into_qsc_args(program, Some(expr.into()), false).map_err(|mut e| { // Wrap in `interpret::Error` and `JsError` to match the error type // `run_internal_with_features` below JsError::from(qsc::interpret::Error::from( @@ -541,7 +541,7 @@ serializable_type! { pub fn generate_docs(additional_program: Option) -> Vec { let docs = if let Some(additional_program) = additional_program { let Ok((source_map, capabilities, language_features, package_store, dependencies)) = - into_qsc_args(additional_program, None) + into_qsc_args(additional_program, None, true) else { // Can't generate docs if building dependencies failed return Vec::new(); diff --git a/wasm/src/project_system.rs b/wasm/src/project_system.rs index a6cf7eff4f..c19af32531 100644 --- a/wasm/src/project_system.rs +++ b/wasm/src/project_system.rs @@ -367,6 +367,7 @@ impl From for qsc_project::PackageInfo { pub(crate) fn into_qsc_args( program: ProgramConfig, entry: Option, + ignore_dependency_errors: bool, ) -> Result< ( qsc::SourceMap, @@ -388,7 +389,7 @@ pub(crate) fn into_qsc_args( // for building the user code. let buildable_program = BuildableProgram::new(capabilities, pkg_graph); - if !buildable_program.dependency_errors.is_empty() { + if !ignore_dependency_errors && !buildable_program.dependency_errors.is_empty() { return Err(buildable_program.dependency_errors); }