@@ -250,8 +250,8 @@ namespace ts {
250
250
getSuggestionForNonexistentProperty: (node, type) => getSuggestionForNonexistentProperty(node, type),
251
251
getSuggestionForNonexistentSymbol: (location, name, meaning) => getSuggestionForNonexistentSymbol(location, escapeLeadingUnderscores(name), meaning),
252
252
getBaseConstraintOfType,
253
- resolveName(name, location, meaning) {
254
- return resolveName(location, escapeLeadingUnderscores(name), meaning, /*nameNotFoundMessage*/ undefined, /*nameArg*/ undefined, /*isUse*/ false);
253
+ resolveName(name, location, meaning, includeGlobals ) {
254
+ return resolveName(location, escapeLeadingUnderscores(name), meaning, /*nameNotFoundMessage*/ undefined, /*nameArg*/ undefined, /*isUse*/ false, includeGlobals );
255
255
},
256
256
getJsxNamespace: () => unescapeLeadingUnderscores(getJsxNamespace()),
257
257
};
@@ -909,8 +909,9 @@ namespace ts {
909
909
nameNotFoundMessage: DiagnosticMessage | undefined,
910
910
nameArg: __String | Identifier,
911
911
isUse: boolean,
912
+ includeGlobals = true,
912
913
suggestedNameNotFoundMessage?: DiagnosticMessage): Symbol {
913
- return resolveNameHelper(location, name, meaning, nameNotFoundMessage, nameArg, isUse, getSymbol, suggestedNameNotFoundMessage);
914
+ return resolveNameHelper(location, name, meaning, nameNotFoundMessage, nameArg, isUse, includeGlobals, getSymbol, suggestedNameNotFoundMessage);
914
915
}
915
916
916
917
function resolveNameHelper(
@@ -920,6 +921,7 @@ namespace ts {
920
921
nameNotFoundMessage: DiagnosticMessage,
921
922
nameArg: __String | Identifier,
922
923
isUse: boolean,
924
+ includeGlobals: boolean,
923
925
lookup: typeof getSymbol,
924
926
suggestedNameNotFoundMessage?: DiagnosticMessage): Symbol {
925
927
const originalLocation = location; // needed for did-you-mean error reporting, which gathers candidates starting from the original location
@@ -1166,7 +1168,9 @@ namespace ts {
1166
1168
}
1167
1169
}
1168
1170
1169
- result = lookup(globals, name, meaning);
1171
+ if (includeGlobals) {
1172
+ result = lookup(globals, name, meaning);
1173
+ }
1170
1174
}
1171
1175
1172
1176
if (!result) {
@@ -11250,6 +11254,7 @@ namespace ts {
11250
11254
Diagnostics.Cannot_find_name_0,
11251
11255
node,
11252
11256
!isWriteOnlyAccess(node),
11257
+ /*includeGlobals*/ true,
11253
11258
Diagnostics.Cannot_find_name_0_Did_you_mean_1) || unknownSymbol;
11254
11259
}
11255
11260
return links.resolvedSymbol;
@@ -15352,7 +15357,7 @@ namespace ts {
15352
15357
15353
15358
function getSuggestionForNonexistentSymbol(location: Node, outerName: __String, meaning: SymbolFlags): string {
15354
15359
Debug.assert(outerName !== undefined, "outername should always be defined");
15355
- const result = resolveNameHelper(location, outerName, meaning, /*nameNotFoundMessage*/ undefined, outerName, /*isUse*/ false, (symbols, name, meaning) => {
15360
+ const result = resolveNameHelper(location, outerName, meaning, /*nameNotFoundMessage*/ undefined, outerName, /*isUse*/ false, /*includeGlobals*/ true, (symbols, name, meaning) => {
15356
15361
Debug.assertEqual(outerName, name, "name should equal outerName");
15357
15362
const symbol = getSymbol(symbols, name, meaning);
15358
15363
// Sometimes the symbol is found when location is a return type of a function: `typeof x` and `x` is declared in the body of the function
0 commit comments