@@ -268,8 +268,8 @@ namespace ts {
268
268
getSuggestionForNonexistentSymbol: (location, name, meaning) => getSuggestionForNonexistentSymbol(location, escapeLeadingUnderscores(name), meaning),
269
269
getBaseConstraintOfType,
270
270
getDefaultFromTypeParameter: type => type && type.flags & TypeFlags.TypeParameter ? getDefaultFromTypeParameter(type as TypeParameter) : undefined,
271
- resolveName(name, location, meaning) {
272
- return resolveName(location, escapeLeadingUnderscores(name), meaning, /*nameNotFoundMessage*/ undefined, /*nameArg*/ undefined, /*isUse*/ false);
271
+ resolveName(name, location, meaning, excludeGlobals ) {
272
+ return resolveName(location, escapeLeadingUnderscores(name), meaning, /*nameNotFoundMessage*/ undefined, /*nameArg*/ undefined, /*isUse*/ false, excludeGlobals );
273
273
},
274
274
getJsxNamespace: () => unescapeLeadingUnderscores(getJsxNamespace()),
275
275
getAccessibleSymbolChain,
@@ -952,8 +952,9 @@ namespace ts {
952
952
nameNotFoundMessage: DiagnosticMessage | undefined,
953
953
nameArg: __String | Identifier,
954
954
isUse: boolean,
955
+ excludeGlobals = false,
955
956
suggestedNameNotFoundMessage?: DiagnosticMessage): Symbol {
956
- return resolveNameHelper(location, name, meaning, nameNotFoundMessage, nameArg, isUse, getSymbol, suggestedNameNotFoundMessage);
957
+ return resolveNameHelper(location, name, meaning, nameNotFoundMessage, nameArg, isUse, excludeGlobals, getSymbol, suggestedNameNotFoundMessage);
957
958
}
958
959
959
960
function resolveNameHelper(
@@ -963,6 +964,7 @@ namespace ts {
963
964
nameNotFoundMessage: DiagnosticMessage,
964
965
nameArg: __String | Identifier,
965
966
isUse: boolean,
967
+ excludeGlobals: boolean,
966
968
lookup: typeof getSymbol,
967
969
suggestedNameNotFoundMessage?: DiagnosticMessage): Symbol {
968
970
const originalLocation = location; // needed for did-you-mean error reporting, which gathers candidates starting from the original location
@@ -1209,7 +1211,9 @@ namespace ts {
1209
1211
}
1210
1212
}
1211
1213
1212
- result = lookup(globals, name, meaning);
1214
+ if (!excludeGlobals) {
1215
+ result = lookup(globals, name, meaning);
1216
+ }
1213
1217
}
1214
1218
1215
1219
if (!result) {
@@ -11889,6 +11893,7 @@ namespace ts {
11889
11893
Diagnostics.Cannot_find_name_0,
11890
11894
node,
11891
11895
!isWriteOnlyAccess(node),
11896
+ /*excludeGlobals*/ false,
11892
11897
Diagnostics.Cannot_find_name_0_Did_you_mean_1) || unknownSymbol;
11893
11898
}
11894
11899
return links.resolvedSymbol;
@@ -16068,7 +16073,7 @@ namespace ts {
16068
16073
16069
16074
function getSuggestionForNonexistentSymbol(location: Node, outerName: __String, meaning: SymbolFlags): string {
16070
16075
Debug.assert(outerName !== undefined, "outername should always be defined");
16071
- const result = resolveNameHelper(location, outerName, meaning, /*nameNotFoundMessage*/ undefined, outerName, /*isUse*/ false, (symbols, name, meaning) => {
16076
+ const result = resolveNameHelper(location, outerName, meaning, /*nameNotFoundMessage*/ undefined, outerName, /*isUse*/ false, /*excludeGlobals*/ false, (symbols, name, meaning) => {
16072
16077
Debug.assertEqual(outerName, name, "name should equal outerName");
16073
16078
const symbol = getSymbol(symbols, name, meaning);
16074
16079
// 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