diff --git a/dsymbol/src/dsymbol/modulecache.d b/dsymbol/src/dsymbol/modulecache.d index ca1ba9f..492d205 100644 --- a/dsymbol/src/dsymbol/modulecache.d +++ b/dsymbol/src/dsymbol/modulecache.d @@ -149,6 +149,7 @@ struct ModuleCache DSymbol* cacheModule(string location) { import std.stdio : File; + import core.memory: GC; assert (location !is null); @@ -160,6 +161,8 @@ struct ModuleCache if (!needsReparsing(cachedLocation)) return getEntryFor(cachedLocation).symbol; + scope(exit) GC.collect(); + recursionGuard.insert(&cachedLocation.data[0]); File f = File(cachedLocation);