diff options
author | Ben Bridle <bridle.benjamin@gmail.com> | 2025-02-13 20:24:25 +1300 |
---|---|---|
committer | Ben Bridle <bridle.benjamin@gmail.com> | 2025-02-13 20:24:25 +1300 |
commit | 8d652ab6adfb30ca4ead6c803252667faca53407 (patch) | |
tree | 93c562a3b75839921896b35c1b86c531670ce26f | |
parent | e717e32badebcd34f590e1e58d6417ebf8c8d973 (diff) | |
download | assembler-8d652ab6adfb30ca4ead6c803252667faca53407.zip |
Correctly record references resolved by each definition
Definitions were incorrectly not having resolved references associated
with them.
-rw-r--r-- | src/resolver.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/resolver.rs b/src/resolver.rs index b50f910..2214198 100644 --- a/src/resolver.rs +++ b/src/resolver.rs @@ -93,7 +93,11 @@ impl Resolver { let tracked = TrackedSymbol { symbol, source_id, source_role }; let defines = |d: &TrackedDefinition| d.tracked.symbol.defines(&tracked.symbol); match self.definitions.iter().position(defines) { - Some(definition) => self.resolved.push(TrackedReference { tracked, definition }), + Some(index) => { + let definition = &mut self.definitions[index]; + definition.references.push(self.resolved.len()); + self.resolved.push(TrackedReference { tracked, definition: index }) + } None => self.unresolved.push(tracked), } } |