aboutsummaryrefslogtreecommitdiff
path: root/src/InternPool.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/InternPool.zig')
-rw-r--r--src/InternPool.zig10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/InternPool.zig b/src/InternPool.zig
index ff748ebc62..2440ccff3b 100644
--- a/src/InternPool.zig
+++ b/src/InternPool.zig
@@ -283,10 +283,12 @@ pub const DependencyIterator = struct {
ip: *const InternPool,
next_entry: DepEntry.Index.Optional,
pub fn next(it: *DependencyIterator) ?AnalUnit {
- const idx = it.next_entry.unwrap() orelse return null;
- const entry = it.ip.dep_entries.items[@intFromEnum(idx)];
- it.next_entry = entry.next;
- return entry.depender.unwrap().?;
+ while (true) {
+ const idx = it.next_entry.unwrap() orelse return null;
+ const entry = it.ip.dep_entries.items[@intFromEnum(idx)];
+ it.next_entry = entry.next;
+ if (entry.depender.unwrap()) |depender| return depender;
+ }
}
};