From 0612e180c2bdb3e72b991da8615b1471ca073a6f Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Wed, 1 Dec 2021 10:47:05 -0800 Subject: [PATCH] Fix checker initialization crash --- src/compiler/checker.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 2e0f1ef628101..06e991333a8f2 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -2122,7 +2122,7 @@ namespace ts { } } if (!result) { - if (nameNotFoundMessage) { + if (nameNotFoundMessage && produceDiagnostics) { if (!errorLocation || !checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg!) && // TODO: GH#18217 !checkAndReportErrorForExtendingInterface(errorLocation) && @@ -2172,7 +2172,7 @@ namespace ts { } // Perform extra checks only if error reporting was requested - if (nameNotFoundMessage) { + if (nameNotFoundMessage && produceDiagnostics) { if (propertyWithInvalidInitializer && !(getEmitScriptTarget(compilerOptions) === ScriptTarget.ESNext && useDefineForClassFields)) { // We have a match, but the reference occurred within a property initializer and the identifier also binds // to a local variable in the constructor where the code will be emitted. Note that this is actually allowed @@ -28816,7 +28816,8 @@ namespace ts { return candidateName; } - if (candidate.flags & SymbolFlags.Alias) { + // Don't try to resolve aliases if global types aren't initialized yet + if (globalObjectType && candidate.flags & SymbolFlags.Alias) { const alias = tryResolveAlias(candidate); if (alias && alias.flags & meaning) { return candidateName;