diff options
author | Ben Bridle <bridle.benjamin@gmail.com> | 2025-02-10 12:42:33 +1300 |
---|---|---|
committer | Ben Bridle <bridle.benjamin@gmail.com> | 2025-02-10 12:44:42 +1300 |
commit | 8ddf72ad0252f17913540a2e767966899a29d1b6 (patch) | |
tree | c97e01c761727b3fbdcf4006f6c0b70a41f59f23 /src/reports | |
parent | 1c9e795245c5da0ea896a4824fb41c9542857ecc (diff) | |
download | assembler-8ddf72ad0252f17913540a2e767966899a29d1b6.zip |
Track related symbols in resolver
As well as the already-implemented tracking of the existing definition
of redefinitions, the resolver will now also track the definition that
resolves each reference, and the references resolved by each definition.
Instead of using tuples to hold this information, named wrapper structs
have been created for each category.
Diffstat (limited to 'src/reports')
-rw-r--r-- | src/reports/resolver_error.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/reports/resolver_error.rs b/src/reports/resolver_error.rs index a1a5598..1aa3e37 100644 --- a/src/reports/resolver_error.rs +++ b/src/reports/resolver_error.rs @@ -16,12 +16,12 @@ impl<'a> ResolverError<'a> { report_source_issue(LogLevel::Error, &context, &message); } for redefinition in &self.resolver.redefinitions { - let definition = self.resolver.definitions.get(redefinition.1).unwrap(); + let definition = &self.resolver.definitions[redefinition.definition]; let message = format!( "Redefined symbol, first defined at {}", - &definition.symbol.source.in_merged, + &definition.tracked.symbol.source.in_merged, ); - let context = redefinition.0.context(&self.resolver); + let context = redefinition.tracked.context(&self.resolver); report_source_issue(LogLevel::Error, &context, &message); } } |