diff options
Diffstat (limited to 'src/InternPool.zig')
| -rw-r--r-- | src/InternPool.zig | 10 |
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; + } } }; |
