summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/resolver.rs6
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),
}
}