Skip to content

Commit 0c95fa1

Browse files
committed
Don't report errors on submodule instantiation failures (Resolve #146)
1 parent aa41372 commit 0c95fa1

File tree

4 files changed

+7
-124
lines changed

4 files changed

+7
-124
lines changed

src/errors.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ impl<'linker> ErrorCollector<'linker> {
235235
pub fn did_error(&self) -> bool {
236236
self.did_error.get()
237237
}
238-
pub fn set_did_error(&mut self) {
238+
pub fn set_did_error(&self) {
239239
self.did_error.set(true);
240240
}
241241
}

src/instantiation/concrete_typecheck.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -927,8 +927,10 @@ impl<'inst, 'l: 'inst> ModuleTypingContext<'l> {
927927
let instance = match instance {
928928
Ok(instance) => instance,
929929
Err(InstantiateError::ErrorInModule) => {
930-
self.errors
931-
.error(submod_instr.get_span(), "Error instantiating submodule");
930+
self.errors.set_did_error();
931+
// Don't report errors on submodule instantiation erroring. This should reduce the "error overload" certainly in recursive modules. (See #146)
932+
/*self.errors
933+
.error(submod_instr.get_span(), "Error instantiating submodule");*/
932934
return;
933935
}
934936
Err(InstantiateError::RecursionLimitExceeded { message }) => {

src/instantiation/instantiator.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ fn start_instantiation<'l>(
250250

251251
// Don't instantiate modules that already errored. Otherwise instantiator may crash
252252
if md.link_info.errors.did_error {
253-
let mut errors = ErrorCollector::new_empty(md.link_info.file, linker_files);
253+
let errors = ErrorCollector::new_empty(md.link_info.file, linker_files);
254254
errors.set_did_error();
255255
let msg = format!("Not Instantiating {name} due to abstract typing errors");
256256
errors.warn(md.link_info.name_span, msg);
@@ -284,7 +284,7 @@ fn start_instantiation<'l>(
284284
.collect();
285285

286286
if !submodules_with_abs_type_errors.is_empty() {
287-
let mut errors = ErrorCollector::new_empty(md.link_info.file, linker_files);
287+
let errors = ErrorCollector::new_empty(md.link_info.file, linker_files);
288288
errors.set_did_error();
289289
let mut msg =
290290
format!("Not Instantiating {name} due to abstract typing errors of submodules:\n");

test.sus_errors.txt

Lines changed: 0 additions & 119 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)