From e7c7f86455a94042c4bd7e89dd2ce480d58bfd17 Mon Sep 17 00:00:00 2001
From: WebFreak001 <gh@webfreak.org>
Date: Thu, 13 Oct 2022 17:33:58 +0200
Subject: [PATCH] fix mutating list while iterating over it

---
 dsymbol/src/dsymbol/modulecache.d | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/dsymbol/src/dsymbol/modulecache.d b/dsymbol/src/dsymbol/modulecache.d
index 0985126..7240176 100644
--- a/dsymbol/src/dsymbol/modulecache.d
+++ b/dsymbol/src/dsymbol/modulecache.d
@@ -107,6 +107,8 @@ struct ModuleCache
 	 */
 	void removeImportPaths(const string[] paths)
 	{
+		import std.array : array;
+
 		foreach (path; paths[])
 		{
 			if (!importPaths[].canFind!(a => a.path == path))
@@ -115,7 +117,7 @@ struct ModuleCache
 				continue;
 			}
 
-			foreach (ref importPath; importPaths[].filter!(a => a.path == path))
+			foreach (ref importPath; importPaths[].filter!(a => a.path == path).array)
 				importPaths.remove(importPath);
 
 			foreach (cacheEntry; cache[])