Track symbols per type thats cached and dont keep adding to them (#56421)

Co-authored-by: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
This commit is contained in:
Sheetal Nandi
2023-11-15 16:29:46 -08:00
committed by GitHub
parent 29bb857226
commit cf5d7107a9
5 changed files with 2652 additions and 0 deletions

View File

@@ -6949,6 +6949,8 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
context.symbolDepth!.set(id, depth + 1);
}
context.visitedTypes.add(typeId);
const prevTrackedSymbols = context.trackedSymbols;
context.trackedSymbols = undefined;
const startLength = context.approximateLength;
const result = transform(type);
const addedLength = context.approximateLength - startLength;
@@ -6964,6 +6966,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
if (id) {
context.symbolDepth!.set(id, depth!);
}
context.trackedSymbols = prevTrackedSymbols;
return result;
function deepCloneOrReuseNode<T extends Node>(node: T): T {