diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/errors/merge_error.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/errors/merge_error.rs b/src/errors/merge_error.rs index d830d96..89f55a2 100644 --- a/src/errors/merge_error.rs +++ b/src/errors/merge_error.rs @@ -3,6 +3,8 @@ use crate::*; use ansi::*; use log::error; +use std::collections::HashSet; + pub struct MergeError<'a> { pub resolver: &'a Resolver, @@ -33,6 +35,18 @@ impl MergeError<'_> { None => eprintln!(" => {parent_path}"), }; + // Report all referenced symbols that are defined by this parent. + let mut reported_definition_ids = HashSet::new(); + for reference in &self.resolver.resolved { + if reference.tracked.source_id == *id { + if reported_definition_ids.insert(reference.definition) { + let definition = &self.resolver.definitions[reference.definition]; + if definition.tracked.source_id == *parent_id { + eprintln!(" {:?}", definition.tracked.symbol); + } + } + } + } } } } |