Find all types and also their dependencies

This commit is contained in:
ryuukk 2022-10-13 19:41:03 +02:00 committed by WebFreak001
parent 5c529f300d
commit 868a73c707
No known key found for this signature in database
GPG Key ID: AEFC88D11109D1AA
1 changed files with 22 additions and 6 deletions

View File

@ -469,13 +469,29 @@ alias UpdatePairCollection = TTree!(UpdatePair, UpdatePairCollectionAllocator, f
void generateUpdatePairs(DSymbol* oldSymbol, DSymbol* newSymbol, ref UpdatePairCollection results) void generateUpdatePairs(DSymbol* oldSymbol, DSymbol* newSymbol, ref UpdatePairCollection results)
{ {
results.insert(UpdatePair(oldSymbol, newSymbol)); results.insert(UpdatePair(oldSymbol, newSymbol));
foreach (part; oldSymbol.parts[]) foreach (part; oldSymbol.opSlice())
{ {
auto temp = DSymbol(oldSymbol.name); bool has = false;
auto r = newSymbol.parts.equalRange(SymbolOwnership(&temp)); DSymbol* r = null;
if (r.empty) foreach (newPart; newSymbol.opSlice())
continue; {
generateUpdatePairs(part, r.front, results); if(part == newPart)
{
has = true;
r = newPart;
break;
}
if (part.name == newPart.name && part.location == newPart.location)
{
has = true;
r = newPart;
break;
}
}
if (!has) continue;
generateUpdatePairs(part, r, results);
} }
} }