Avoid GC allocation

This commit is contained in:
ryuukk 2022-10-19 18:33:19 +02:00 committed by GitHub
parent 73d8ff66dc
commit a890ece1d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 14 deletions

View File

@ -366,20 +366,15 @@ final class FirstPass : ASTVisitor
currentSymbol = rootSymbol;
moduleScope = GCAllocator.instance.make!Scope(0, uint.max);
currentScope = moduleScope;
auto objectLocations = cache.resolveImportLocations("object");
if (objectLocations is null)
warning("Could not locate object.d or object.di");
else
{
foreach (objectLocation; objectLocations)
{
auto objectImport = allocateSemanticSymbol(IMPORT_SYMBOL_NAME,
CompletionKind.importSymbol, objectLocation);
objectImport.acSymbol.skipOver = true;
currentSymbol.addChild(objectImport, true);
currentScope.addSymbol(objectImport.acSymbol, false);
}
}
auto numResolved = cache.resolveImportLocations("object", (objectLocation) {
auto objectImport = allocateSemanticSymbol(IMPORT_SYMBOL_NAME,
CompletionKind.importSymbol, objectLocation);
objectImport.acSymbol.skipOver = true;
currentSymbol.addChild(objectImport, true);
currentScope.addSymbol(objectImport.acSymbol, false);
});
if (numResolved == 0)
warning("Could not locate any object.d or object.di");
foreach (s; builtinSymbols[])
currentScope.addSymbol(s, false);
mod.accept(this);