summaryrefslogtreecommitdiff
path: root/src/reports/resolver_error.rs
diff options
context:
space:
mode:
authorBen Bridle <ben@derelict.engineering>2025-03-18 11:50:19 +1300
committerBen Bridle <ben@derelict.engineering>2025-03-18 11:50:29 +1300
commitf8a694267d3981b0437c05fc248406116ea9ec06 (patch)
treee7c0426f4278481490e269be7ccb0a710c22ebae /src/reports/resolver_error.rs
parent87cdf5e88fd1d0aaddb91e216c47344effd63ed3 (diff)
downloadassembler-f8a694267d3981b0437c05fc248406116ea9ec06.zip
Large restructure
Files were moved to be better organised, error messages were changed to be more general, and a Compiler type was added to the library.
Diffstat (limited to 'src/reports/resolver_error.rs')
-rw-r--r--src/reports/resolver_error.rs14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/reports/resolver_error.rs b/src/reports/resolver_error.rs
index 1aa3e37..0fce3c4 100644
--- a/src/reports/resolver_error.rs
+++ b/src/reports/resolver_error.rs
@@ -8,20 +8,18 @@ pub struct ResolverError<'a> {
impl<'a> ResolverError<'a> {
pub fn report(&self) {
for reference in &self.resolver.unresolved {
- let message = format!(
- "Undefined symbol, no label or macro has been defined with the name {:?}",
- &reference.symbol.name,
- );
+ let message = format!("Undefined symbol '{}'", reference.symbol.name);
let context = reference.context(&self.resolver);
report_source_issue(LogLevel::Error, &context, &message);
}
for redefinition in &self.resolver.redefinitions {
let definition = &self.resolver.definitions[redefinition.definition];
- let message = format!(
- "Redefined symbol, first defined at {}",
- &definition.tracked.symbol.source.in_merged,
- );
+ let message = format!("Redefined symbol '{}'", definition.tracked.symbol.name);
let context = redefinition.tracked.context(&self.resolver);
+ let context = Context {
+ source_code: context.source_code,
+ source: &context.source.wrap(&definition.tracked.symbol.source)
+ };
report_source_issue(LogLevel::Error, &context, &message);
}
}