use crate::*; pub struct SourceSymbols<'a> { pub resolver: &'a Resolver, } impl<'a> SourceSymbols<'a> { pub fn report(&self) { for definition in &self.resolver.definitions { let message = format!( "Definition '{:?}' (resolves {})", definition.tracked.symbol, definition.references.len()); let context = definition.tracked.context(self.resolver); report_source_issue(LogLevel::Info, &context, &message); } for reference in &self.resolver.resolved { let definition = &self.resolver.definitions[reference.definition]; let message = format!( "Resolved reference '{:?}' (defined by {:?})", reference.tracked.symbol, definition.tracked.symbol); let context = reference.tracked.context(self.resolver); report_source_issue(LogLevel::Info, &context, &message); } for reference in &self.resolver.unresolved { let message = format!( "Unresolved reference '{:?}'", reference.symbol); let context = reference.context(self.resolver); report_source_issue(LogLevel::Warn, &context, &message); } } }