From af53d3330acf27d55bcf82757e5385488e0170f6 Mon Sep 17 00:00:00 2001 From: emilyaherbert Date: Mon, 24 Jan 2022 19:25:12 -0600 Subject: [PATCH 1/2] Don't report type mismatch if one of the types is error recovery. --- sway-core/src/type_engine/engine.rs | 16 ++++++++++------ test/src/e2e_vm_tests/harness.rs | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/sway-core/src/type_engine/engine.rs b/sway-core/src/type_engine/engine.rs index a5832ab230c..54678b3f4ff 100644 --- a/sway-core/src/type_engine/engine.rs +++ b/sway-core/src/type_engine/engine.rs @@ -181,12 +181,16 @@ impl Engine { // } // If no previous attempts to unify were successful, raise an error - (_, _) => Err(TypeError::MismatchedType { - expected, - received, - help_text: Default::default(), - span: span.clone(), - }), + (the_received, the_expected) => match (the_received, the_expected) { + (TypeInfo::ErrorRecovery, _) => Ok(vec![]), + (_, TypeInfo::ErrorRecovery) => Ok(vec![]), + _ => Err(TypeError::MismatchedType { + expected, + received, + help_text: Default::default(), + span: span.clone(), + }), + }, } } diff --git a/test/src/e2e_vm_tests/harness.rs b/test/src/e2e_vm_tests/harness.rs index e5206eb80c8..36c129cc500 100644 --- a/test/src/e2e_vm_tests/harness.rs +++ b/test/src/e2e_vm_tests/harness.rs @@ -122,7 +122,7 @@ pub(crate) fn compile_to_bytes(file_name: &str) -> Result, String> { print_ir: false, binary_outfile: None, offline_mode: false, - silent_mode: true, + silent_mode: false, }) } From 91f93cfaa1853a76d0510d67d3dae5914257a567 Mon Sep 17 00:00:00 2001 From: emilyaherbert Date: Mon, 24 Jan 2022 19:34:17 -0600 Subject: [PATCH 2/2] Turn silent mode back on. --- test/src/e2e_vm_tests/harness.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/src/e2e_vm_tests/harness.rs b/test/src/e2e_vm_tests/harness.rs index 36c129cc500..e5206eb80c8 100644 --- a/test/src/e2e_vm_tests/harness.rs +++ b/test/src/e2e_vm_tests/harness.rs @@ -122,7 +122,7 @@ pub(crate) fn compile_to_bytes(file_name: &str) -> Result, String> { print_ir: false, binary_outfile: None, offline_mode: false, - silent_mode: false, + silent_mode: true, }) }