From 7dbd2a6bb549afa6dc3c95df46f40bf144db23a6 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Tue, 16 Jul 2024 02:22:53 -0400 Subject: InternPool: fix `DependencyIterator` iteration --- src/InternPool.zig | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src') 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; + } } }; -- cgit v1.2.3