typescript 4.9.0-dev.20220920 → 4.9.0-dev.20220922
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/de/diagnosticMessages.generated.json +1 -2
- package/lib/es/diagnosticMessages.generated.json +1 -2
- package/lib/ja/diagnosticMessages.generated.json +1 -2
- package/lib/ko/diagnosticMessages.generated.json +1 -2
- package/lib/lib.dom.d.ts +199 -58
- package/lib/lib.webworker.d.ts +73 -24
- package/lib/pt-br/diagnosticMessages.generated.json +1 -2
- package/lib/ru/diagnosticMessages.generated.json +1 -2
- package/lib/tr/diagnosticMessages.generated.json +1 -2
- package/lib/tsc.js +168 -87
- package/lib/tsserver.js +347 -145
- package/lib/tsserverlibrary.js +347 -145
- package/lib/typescript.js +347 -145
- package/lib/typescriptServices.js +347 -145
- package/lib/typingsInstaller.js +177 -91
- package/lib/zh-tw/diagnosticMessages.generated.json +1 -2
- package/package.json +1 -1
package/lib/tsserver.js
CHANGED
|
@@ -109,7 +109,7 @@ var ts;
|
|
|
109
109
|
// The following is baselined as a literal template type without intervention
|
|
110
110
|
/** The version of the TypeScript compiler release */
|
|
111
111
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
112
|
-
ts.version = "".concat(ts.versionMajorMinor, ".0-dev.
|
|
112
|
+
ts.version = "".concat(ts.versionMajorMinor, ".0-dev.20220922");
|
|
113
113
|
/* @internal */
|
|
114
114
|
var Comparison;
|
|
115
115
|
(function (Comparison) {
|
|
@@ -3018,7 +3018,7 @@ var ts;
|
|
|
3018
3018
|
];
|
|
3019
3019
|
for (var _i = 0, nodeConstructors_1 = nodeConstructors; _i < nodeConstructors_1.length; _i++) {
|
|
3020
3020
|
var ctor = nodeConstructors_1[_i];
|
|
3021
|
-
if (!ts.hasProperty(ctor, "__debugKind")) {
|
|
3021
|
+
if (!ts.hasProperty(ctor.prototype, "__debugKind")) {
|
|
3022
3022
|
Object.defineProperties(ctor.prototype, {
|
|
3023
3023
|
// for use with vscode-js-debug's new customDescriptionGenerator in launch.json
|
|
3024
3024
|
__tsDebuggerDisplay: {
|
|
@@ -9133,6 +9133,7 @@ var ts;
|
|
|
9133
9133
|
_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation: diag(2842, ts.DiagnosticCategory.Error, "_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842", "'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?"),
|
|
9134
9134
|
We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here: diag(2843, ts.DiagnosticCategory.Error, "We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843", "We can only write a type for '{0}' by adding a type for the entire parameter here."),
|
|
9135
9135
|
Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: diag(2844, ts.DiagnosticCategory.Error, "Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2844", "Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),
|
|
9136
|
+
This_condition_will_always_return_0: diag(2845, ts.DiagnosticCategory.Error, "This_condition_will_always_return_0_2845", "This condition will always return '{0}'."),
|
|
9136
9137
|
Import_declaration_0_is_using_private_name_1: diag(4000, ts.DiagnosticCategory.Error, "Import_declaration_0_is_using_private_name_1_4000", "Import declaration '{0}' is using private name '{1}'."),
|
|
9137
9138
|
Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: diag(4002, ts.DiagnosticCategory.Error, "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", "Type parameter '{0}' of exported class has or is using private name '{1}'."),
|
|
9138
9139
|
Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: diag(4004, ts.DiagnosticCategory.Error, "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", "Type parameter '{0}' of exported interface has or is using private name '{1}'."),
|
|
@@ -10075,6 +10076,8 @@ var ts;
|
|
|
10075
10076
|
Delete_unused_param_tag_0: diag(95171, ts.DiagnosticCategory.Message, "Delete_unused_param_tag_0_95171", "Delete unused '@param' tag '{0}'"),
|
|
10076
10077
|
Delete_all_unused_param_tags: diag(95172, ts.DiagnosticCategory.Message, "Delete_all_unused_param_tags_95172", "Delete all unused '@param' tags"),
|
|
10077
10078
|
Rename_param_tag_name_0_to_1: diag(95173, ts.DiagnosticCategory.Message, "Rename_param_tag_name_0_to_1_95173", "Rename '@param' tag name '{0}' to '{1}'"),
|
|
10079
|
+
Use_0: diag(95174, ts.DiagnosticCategory.Message, "Use_0_95174", "Use `{0}`."),
|
|
10080
|
+
Use_Number_isNaN_in_all_conditions: diag(95175, ts.DiagnosticCategory.Message, "Use_Number_isNaN_in_all_conditions_95175", "Use `Number.isNaN` in all conditions."),
|
|
10078
10081
|
No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer: diag(18004, ts.DiagnosticCategory.Error, "No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004", "No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer."),
|
|
10079
10082
|
Classes_may_not_have_a_field_named_constructor: diag(18006, ts.DiagnosticCategory.Error, "Classes_may_not_have_a_field_named_constructor_18006", "Classes may not have a field named 'constructor'."),
|
|
10080
10083
|
JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array: diag(18007, ts.DiagnosticCategory.Error, "JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007", "JSX expressions may not use the comma operator. Did you mean to write an array?"),
|
|
@@ -11897,12 +11900,36 @@ var ts;
|
|
|
11897
11900
|
pos++;
|
|
11898
11901
|
return token = 0 /* SyntaxKind.Unknown */;
|
|
11899
11902
|
}
|
|
11900
|
-
|
|
11903
|
+
var charAfterHash = codePointAt(text, pos + 1);
|
|
11904
|
+
if (charAfterHash === 92 /* CharacterCodes.backslash */) {
|
|
11901
11905
|
pos++;
|
|
11902
|
-
|
|
11906
|
+
var extendedCookedChar_1 = peekExtendedUnicodeEscape();
|
|
11907
|
+
if (extendedCookedChar_1 >= 0 && isIdentifierStart(extendedCookedChar_1, languageVersion)) {
|
|
11908
|
+
pos += 3;
|
|
11909
|
+
tokenFlags |= 8 /* TokenFlags.ExtendedUnicodeEscape */;
|
|
11910
|
+
tokenValue = "#" + scanExtendedUnicodeEscape() + scanIdentifierParts();
|
|
11911
|
+
return token = 80 /* SyntaxKind.PrivateIdentifier */;
|
|
11912
|
+
}
|
|
11913
|
+
var cookedChar_1 = peekUnicodeEscape();
|
|
11914
|
+
if (cookedChar_1 >= 0 && isIdentifierStart(cookedChar_1, languageVersion)) {
|
|
11915
|
+
pos += 6;
|
|
11916
|
+
tokenFlags |= 1024 /* TokenFlags.UnicodeEscape */;
|
|
11917
|
+
tokenValue = "#" + String.fromCharCode(cookedChar_1) + scanIdentifierParts();
|
|
11918
|
+
return token = 80 /* SyntaxKind.PrivateIdentifier */;
|
|
11919
|
+
}
|
|
11920
|
+
pos--;
|
|
11921
|
+
}
|
|
11922
|
+
if (isIdentifierStart(charAfterHash, languageVersion)) {
|
|
11923
|
+
pos++;
|
|
11924
|
+
// We're relying on scanIdentifier's behavior and adjusting the token kind after the fact.
|
|
11925
|
+
// Notably absent from this block is the fact that calling a function named "scanIdentifier",
|
|
11926
|
+
// but identifiers don't include '#', and that function doesn't deal with it at all.
|
|
11927
|
+
// This works because 'scanIdentifier' tries to reuse source characters and builds up substrings;
|
|
11928
|
+
// however, it starts at the 'tokenPos' which includes the '#', and will "accidentally" prepend the '#' for us.
|
|
11929
|
+
scanIdentifier(charAfterHash, languageVersion);
|
|
11903
11930
|
}
|
|
11904
11931
|
else {
|
|
11905
|
-
tokenValue =
|
|
11932
|
+
tokenValue = "#";
|
|
11906
11933
|
error(ts.Diagnostics.Invalid_character, pos++, charSize(ch));
|
|
11907
11934
|
}
|
|
11908
11935
|
return token = 80 /* SyntaxKind.PrivateIdentifier */;
|
|
@@ -33140,7 +33167,7 @@ var ts;
|
|
|
33140
33167
|
}
|
|
33141
33168
|
function parsePrivateIdentifier() {
|
|
33142
33169
|
var pos = getNodePos();
|
|
33143
|
-
var node = factory.createPrivateIdentifier(internPrivateIdentifier(scanner.
|
|
33170
|
+
var node = factory.createPrivateIdentifier(internPrivateIdentifier(scanner.getTokenValue()));
|
|
33144
33171
|
nextToken();
|
|
33145
33172
|
return finishNode(node, pos);
|
|
33146
33173
|
}
|
|
@@ -45226,6 +45253,7 @@ var ts;
|
|
|
45226
45253
|
}
|
|
45227
45254
|
}
|
|
45228
45255
|
function loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, nodeModulesDirectory, nodeModulesDirectoryExists, state, cache, redirectedReference) {
|
|
45256
|
+
var _a;
|
|
45229
45257
|
var candidate = ts.normalizePath(ts.combinePaths(nodeModulesDirectory, moduleName));
|
|
45230
45258
|
// First look for a nested package.json, as in `node_modules/foo/bar/package.json`.
|
|
45231
45259
|
var packageInfo = getPackageJsonInfo(candidate, !nodeModulesDirectoryExists, state);
|
|
@@ -45240,13 +45268,7 @@ var ts;
|
|
|
45240
45268
|
return withPackageId(packageInfo, fromDirectory);
|
|
45241
45269
|
}
|
|
45242
45270
|
}
|
|
45243
|
-
var _a = parsePackageName(moduleName), packageName = _a.packageName, rest = _a.rest;
|
|
45244
45271
|
var loader = function (extensions, candidate, onlyRecordFailures, state) {
|
|
45245
|
-
var _a;
|
|
45246
|
-
// package exports are higher priority than file/directory lookups (and, if there's exports present, blocks them)
|
|
45247
|
-
if (packageInfo && packageInfo.contents.packageJsonContent.exports && state.features & NodeResolutionFeatures.Exports) {
|
|
45248
|
-
return (_a = loadModuleFromExports(packageInfo, extensions, ts.combinePaths(".", rest), state, cache, redirectedReference)) === null || _a === void 0 ? void 0 : _a.value;
|
|
45249
|
-
}
|
|
45250
45272
|
var pathAndExtension = loadModuleFromFile(extensions, candidate, onlyRecordFailures, state) ||
|
|
45251
45273
|
loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageInfo && packageInfo.contents.packageJsonContent, packageInfo && packageInfo.contents.versionPaths);
|
|
45252
45274
|
if (!pathAndExtension && packageInfo
|
|
@@ -45259,19 +45281,24 @@ var ts;
|
|
|
45259
45281
|
}
|
|
45260
45282
|
return withPackageId(packageInfo, pathAndExtension);
|
|
45261
45283
|
};
|
|
45262
|
-
|
|
45263
|
-
|
|
45264
|
-
|
|
45284
|
+
var _b = parsePackageName(moduleName), packageName = _b.packageName, rest = _b.rest;
|
|
45285
|
+
var packageDirectory = ts.combinePaths(nodeModulesDirectory, packageName);
|
|
45286
|
+
if (rest !== "") {
|
|
45287
|
+
// Previous `packageInfo` may have been from a nested package.json; ensure we have the one from the package root now.
|
|
45265
45288
|
packageInfo = getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state);
|
|
45266
|
-
|
|
45267
|
-
|
|
45268
|
-
|
|
45269
|
-
|
|
45270
|
-
|
|
45271
|
-
|
|
45272
|
-
|
|
45273
|
-
|
|
45274
|
-
|
|
45289
|
+
}
|
|
45290
|
+
// package exports are higher priority than file/directory/typesVersions lookups and (and, if there's exports present, blocks them)
|
|
45291
|
+
if (packageInfo && packageInfo.contents.packageJsonContent.exports && state.features & NodeResolutionFeatures.Exports) {
|
|
45292
|
+
return (_a = loadModuleFromExports(packageInfo, extensions, ts.combinePaths(".", rest), state, cache, redirectedReference)) === null || _a === void 0 ? void 0 : _a.value;
|
|
45293
|
+
}
|
|
45294
|
+
if (rest !== "" && packageInfo && packageInfo.contents.versionPaths) {
|
|
45295
|
+
if (state.traceEnabled) {
|
|
45296
|
+
trace(state.host, ts.Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2, packageInfo.contents.versionPaths.version, ts.version, rest);
|
|
45297
|
+
}
|
|
45298
|
+
var packageDirectoryExists = nodeModulesDirectoryExists && ts.directoryProbablyExists(packageDirectory, state.host);
|
|
45299
|
+
var fromPaths = tryLoadModuleUsingPaths(extensions, rest, packageDirectory, packageInfo.contents.versionPaths.paths, /*pathPatterns*/ undefined, loader, !packageDirectoryExists, state);
|
|
45300
|
+
if (fromPaths) {
|
|
45301
|
+
return fromPaths.value;
|
|
45275
45302
|
}
|
|
45276
45303
|
}
|
|
45277
45304
|
return loader(extensions, candidate, !nodeModulesDirectoryExists, state);
|
|
@@ -49773,6 +49800,7 @@ var ts;
|
|
|
49773
49800
|
var deferredGlobalOmitSymbol;
|
|
49774
49801
|
var deferredGlobalAwaitedSymbol;
|
|
49775
49802
|
var deferredGlobalBigIntType;
|
|
49803
|
+
var deferredGlobalNaNSymbol;
|
|
49776
49804
|
var deferredGlobalRecordSymbol;
|
|
49777
49805
|
var allPotentiallyUnusedIdentifiers = new ts.Map(); // key is file name
|
|
49778
49806
|
var flowLoopStart = 0;
|
|
@@ -55451,6 +55479,7 @@ var ts;
|
|
|
55451
55479
|
&& symbol.escapedName !== "export=" /* InternalSymbolName.ExportEquals */
|
|
55452
55480
|
&& !(symbol.flags & 4194304 /* SymbolFlags.Prototype */)
|
|
55453
55481
|
&& !(symbol.flags & 32 /* SymbolFlags.Class */)
|
|
55482
|
+
&& !(symbol.flags & 8192 /* SymbolFlags.Method */)
|
|
55454
55483
|
&& !isConstMergedWithNSPrintableAsSignatureMerge) {
|
|
55455
55484
|
if (propertyAsAlias) {
|
|
55456
55485
|
var createdExport = serializeMaybeAliasAssignment(symbol);
|
|
@@ -60261,7 +60290,7 @@ var ts;
|
|
|
60261
60290
|
var isInstantiation = (getTargetSymbol(prop) || prop) === (getTargetSymbol(singleProp) || singleProp);
|
|
60262
60291
|
// If the symbols are instances of one another with identical types - consider the symbols
|
|
60263
60292
|
// equivalent and just use the first one, which thus allows us to avoid eliding private
|
|
60264
|
-
// members when intersecting a (this-)instantiations of a class with
|
|
60293
|
+
// members when intersecting a (this-)instantiations of a class with its raw base or another instance
|
|
60265
60294
|
if (isInstantiation && compareProperties(singleProp, prop, function (a, b) { return a === b ? -1 /* Ternary.True */ : 0 /* Ternary.False */; }) === -1 /* Ternary.True */) {
|
|
60266
60295
|
// If we merged instantiations of a generic type, we replicate the symbol parent resetting behavior we used
|
|
60267
60296
|
// to do when we recorded multiple distinct symbols so that we still get, eg, `Array<T>.length` printed
|
|
@@ -60309,7 +60338,11 @@ var ts;
|
|
|
60309
60338
|
}
|
|
60310
60339
|
}
|
|
60311
60340
|
}
|
|
60312
|
-
if (!singleProp ||
|
|
60341
|
+
if (!singleProp ||
|
|
60342
|
+
isUnion &&
|
|
60343
|
+
(propSet || checkFlags & 48 /* CheckFlags.Partial */) &&
|
|
60344
|
+
checkFlags & (1024 /* CheckFlags.ContainsPrivate */ | 512 /* CheckFlags.ContainsProtected */) &&
|
|
60345
|
+
!(propSet && getCommonDeclarationsOfSymbols(ts.arrayFrom(propSet.values())))) {
|
|
60313
60346
|
// No property was found, or, in a union, a property has a private or protected declaration in one
|
|
60314
60347
|
// constituent, but is missing or has a different declaration in another constituent.
|
|
60315
60348
|
return undefined;
|
|
@@ -60411,6 +60444,33 @@ var ts;
|
|
|
60411
60444
|
}
|
|
60412
60445
|
return property;
|
|
60413
60446
|
}
|
|
60447
|
+
function getCommonDeclarationsOfSymbols(symbols) {
|
|
60448
|
+
var commonDeclarations;
|
|
60449
|
+
var _loop_14 = function (symbol) {
|
|
60450
|
+
if (!symbol.declarations) {
|
|
60451
|
+
return { value: undefined };
|
|
60452
|
+
}
|
|
60453
|
+
if (!commonDeclarations) {
|
|
60454
|
+
commonDeclarations = new ts.Set(symbol.declarations);
|
|
60455
|
+
return "continue";
|
|
60456
|
+
}
|
|
60457
|
+
commonDeclarations.forEach(function (declaration) {
|
|
60458
|
+
if (!ts.contains(symbol.declarations, declaration)) {
|
|
60459
|
+
commonDeclarations.delete(declaration);
|
|
60460
|
+
}
|
|
60461
|
+
});
|
|
60462
|
+
if (commonDeclarations.size === 0) {
|
|
60463
|
+
return { value: undefined };
|
|
60464
|
+
}
|
|
60465
|
+
};
|
|
60466
|
+
for (var _i = 0, symbols_3 = symbols; _i < symbols_3.length; _i++) {
|
|
60467
|
+
var symbol = symbols_3[_i];
|
|
60468
|
+
var state_4 = _loop_14(symbol);
|
|
60469
|
+
if (typeof state_4 === "object")
|
|
60470
|
+
return state_4.value;
|
|
60471
|
+
}
|
|
60472
|
+
return commonDeclarations;
|
|
60473
|
+
}
|
|
60414
60474
|
function getPropertyOfUnionOrIntersectionType(type, name, skipObjectFunctionPropertyAugment) {
|
|
60415
60475
|
var property = getUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment);
|
|
60416
60476
|
// We need to filter out partial properties in union types
|
|
@@ -61125,7 +61185,7 @@ var ts;
|
|
|
61125
61185
|
function getIndexInfosOfIndexSymbol(indexSymbol) {
|
|
61126
61186
|
if (indexSymbol.declarations) {
|
|
61127
61187
|
var indexInfos_4 = [];
|
|
61128
|
-
var
|
|
61188
|
+
var _loop_15 = function (declaration) {
|
|
61129
61189
|
if (declaration.parameters.length === 1) {
|
|
61130
61190
|
var parameter = declaration.parameters[0];
|
|
61131
61191
|
if (parameter.type) {
|
|
@@ -61139,7 +61199,7 @@ var ts;
|
|
|
61139
61199
|
};
|
|
61140
61200
|
for (var _i = 0, _a = indexSymbol.declarations; _i < _a.length; _i++) {
|
|
61141
61201
|
var declaration = _a[_i];
|
|
61142
|
-
|
|
61202
|
+
_loop_15(declaration);
|
|
61143
61203
|
}
|
|
61144
61204
|
return indexInfos_4;
|
|
61145
61205
|
}
|
|
@@ -61156,7 +61216,7 @@ var ts;
|
|
|
61156
61216
|
var _a;
|
|
61157
61217
|
var inferences;
|
|
61158
61218
|
if ((_a = typeParameter.symbol) === null || _a === void 0 ? void 0 : _a.declarations) {
|
|
61159
|
-
var
|
|
61219
|
+
var _loop_16 = function (declaration) {
|
|
61160
61220
|
if (declaration.parent.kind === 192 /* SyntaxKind.InferType */) {
|
|
61161
61221
|
// When an 'infer T' declaration is immediately contained in a type reference node
|
|
61162
61222
|
// (such as 'Foo<infer T>'), T's constraint is inferred from the constraint of the
|
|
@@ -61220,7 +61280,7 @@ var ts;
|
|
|
61220
61280
|
};
|
|
61221
61281
|
for (var _i = 0, _b = typeParameter.symbol.declarations; _i < _b.length; _i++) {
|
|
61222
61282
|
var declaration = _b[_i];
|
|
61223
|
-
|
|
61283
|
+
_loop_16(declaration);
|
|
61224
61284
|
}
|
|
61225
61285
|
}
|
|
61226
61286
|
return inferences && getIntersectionType(inferences);
|
|
@@ -61877,6 +61937,9 @@ var ts;
|
|
|
61877
61937
|
function getGlobalBigIntType() {
|
|
61878
61938
|
return (deferredGlobalBigIntType || (deferredGlobalBigIntType = getGlobalType("BigInt", /*arity*/ 0, /*reportErrors*/ false))) || emptyObjectType;
|
|
61879
61939
|
}
|
|
61940
|
+
function getGlobalNaNSymbol() {
|
|
61941
|
+
return (deferredGlobalNaNSymbol || (deferredGlobalNaNSymbol = getGlobalValueSymbol("NaN", /*reportErrors*/ false)));
|
|
61942
|
+
}
|
|
61880
61943
|
function getGlobalRecordSymbol() {
|
|
61881
61944
|
deferredGlobalRecordSymbol || (deferredGlobalRecordSymbol = getGlobalTypeAliasSymbol("Record", /*arity*/ 2, /*reportErrors*/ true) || unknownSymbol);
|
|
61882
61945
|
return deferredGlobalRecordSymbol === unknownSymbol ? undefined : deferredGlobalRecordSymbol;
|
|
@@ -62117,7 +62180,7 @@ var ts;
|
|
|
62117
62180
|
var lastRequiredIndex = -1;
|
|
62118
62181
|
var firstRestIndex = -1;
|
|
62119
62182
|
var lastOptionalOrRestIndex = -1;
|
|
62120
|
-
var
|
|
62183
|
+
var _loop_17 = function (i) {
|
|
62121
62184
|
var type = elementTypes[i];
|
|
62122
62185
|
var flags = target.elementFlags[i];
|
|
62123
62186
|
if (flags & 8 /* ElementFlags.Variadic */) {
|
|
@@ -62147,9 +62210,9 @@ var ts;
|
|
|
62147
62210
|
}
|
|
62148
62211
|
};
|
|
62149
62212
|
for (var i = 0; i < elementTypes.length; i++) {
|
|
62150
|
-
var
|
|
62151
|
-
if (typeof
|
|
62152
|
-
return
|
|
62213
|
+
var state_5 = _loop_17(i);
|
|
62214
|
+
if (typeof state_5 === "object")
|
|
62215
|
+
return state_5.value;
|
|
62153
62216
|
}
|
|
62154
62217
|
// Turn optional elements preceding the last required element into required elements
|
|
62155
62218
|
for (var i = 0; i < lastRequiredIndex; i++) {
|
|
@@ -62177,7 +62240,7 @@ var ts;
|
|
|
62177
62240
|
if (flags & (2 /* ElementFlags.Optional */ | 4 /* ElementFlags.Rest */)) {
|
|
62178
62241
|
lastOptionalOrRestIndex = expandedFlags.length;
|
|
62179
62242
|
}
|
|
62180
|
-
expandedTypes.push(type);
|
|
62243
|
+
expandedTypes.push(flags & 2 /* ElementFlags.Optional */ ? addOptionality(type, /*isProperty*/ true) : type);
|
|
62181
62244
|
expandedFlags.push(flags);
|
|
62182
62245
|
if (expandedDeclarations && declaration) {
|
|
62183
62246
|
expandedDeclarations.push(declaration);
|
|
@@ -62343,7 +62406,7 @@ var ts;
|
|
|
62343
62406
|
var templates = ts.filter(types, isPatternLiteralType);
|
|
62344
62407
|
if (templates.length) {
|
|
62345
62408
|
var i = types.length;
|
|
62346
|
-
var
|
|
62409
|
+
var _loop_18 = function () {
|
|
62347
62410
|
i--;
|
|
62348
62411
|
var t = types[i];
|
|
62349
62412
|
if (t.flags & 128 /* TypeFlags.StringLiteral */ && ts.some(templates, function (template) { return isTypeMatchedByTemplateLiteralType(t, template); })) {
|
|
@@ -62351,7 +62414,7 @@ var ts;
|
|
|
62351
62414
|
}
|
|
62352
62415
|
};
|
|
62353
62416
|
while (i > 0) {
|
|
62354
|
-
|
|
62417
|
+
_loop_18();
|
|
62355
62418
|
}
|
|
62356
62419
|
}
|
|
62357
62420
|
}
|
|
@@ -62428,14 +62491,14 @@ var ts;
|
|
|
62428
62491
|
var namedUnions = [];
|
|
62429
62492
|
addNamedUnions(namedUnions, types);
|
|
62430
62493
|
var reducedTypes = [];
|
|
62431
|
-
var
|
|
62494
|
+
var _loop_19 = function (t) {
|
|
62432
62495
|
if (!ts.some(namedUnions, function (union) { return containsType(union.types, t); })) {
|
|
62433
62496
|
reducedTypes.push(t);
|
|
62434
62497
|
}
|
|
62435
62498
|
};
|
|
62436
62499
|
for (var _i = 0, typeSet_1 = typeSet; _i < typeSet_1.length; _i++) {
|
|
62437
62500
|
var t = typeSet_1[_i];
|
|
62438
|
-
|
|
62501
|
+
_loop_19(t);
|
|
62439
62502
|
}
|
|
62440
62503
|
if (!aliasSymbol && namedUnions.length === 1 && reducedTypes.length === 0) {
|
|
62441
62504
|
return namedUnions[0];
|
|
@@ -63665,7 +63728,7 @@ var ts;
|
|
|
63665
63728
|
var result;
|
|
63666
63729
|
var extraTypes;
|
|
63667
63730
|
var tailCount = 0;
|
|
63668
|
-
var
|
|
63731
|
+
var _loop_20 = function () {
|
|
63669
63732
|
if (tailCount === 1000) {
|
|
63670
63733
|
error(currentNode, ts.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite);
|
|
63671
63734
|
result = errorType;
|
|
@@ -63786,10 +63849,10 @@ var ts;
|
|
|
63786
63849
|
// another (or, through recursion, possibly the same) conditional type. In the potentially tail-recursive
|
|
63787
63850
|
// cases we increment the tail recursion counter and stop after 1000 iterations.
|
|
63788
63851
|
while (true) {
|
|
63789
|
-
var
|
|
63790
|
-
if (typeof
|
|
63791
|
-
return
|
|
63792
|
-
if (
|
|
63852
|
+
var state_6 = _loop_20();
|
|
63853
|
+
if (typeof state_6 === "object")
|
|
63854
|
+
return state_6.value;
|
|
63855
|
+
if (state_6 === "break")
|
|
63793
63856
|
break;
|
|
63794
63857
|
}
|
|
63795
63858
|
return extraTypes ? getUnionType(ts.append(extraTypes, result)) : result;
|
|
@@ -66404,7 +66467,7 @@ var ts;
|
|
|
66404
66467
|
reducedTarget = findMatchingDiscriminantType(source, target, isRelatedTo) || filterPrimitivesIfContainsNonPrimitive(target);
|
|
66405
66468
|
checkTypes = reducedTarget.flags & 1048576 /* TypeFlags.Union */ ? reducedTarget.types : [reducedTarget];
|
|
66406
66469
|
}
|
|
66407
|
-
var
|
|
66470
|
+
var _loop_21 = function (prop) {
|
|
66408
66471
|
if (shouldCheckAsExcessProperty(prop, source.symbol) && !isIgnoredJsxProperty(source, prop)) {
|
|
66409
66472
|
if (!isKnownProperty(reducedTarget, prop.escapedName, isComparingJsxAttributes)) {
|
|
66410
66473
|
if (reportErrors) {
|
|
@@ -66467,9 +66530,9 @@ var ts;
|
|
|
66467
66530
|
};
|
|
66468
66531
|
for (var _i = 0, _b = getPropertiesOfType(source); _i < _b.length; _i++) {
|
|
66469
66532
|
var prop = _b[_i];
|
|
66470
|
-
var
|
|
66471
|
-
if (typeof
|
|
66472
|
-
return
|
|
66533
|
+
var state_7 = _loop_21(prop);
|
|
66534
|
+
if (typeof state_7 === "object")
|
|
66535
|
+
return state_7.value;
|
|
66473
66536
|
}
|
|
66474
66537
|
return false;
|
|
66475
66538
|
}
|
|
@@ -67460,11 +67523,11 @@ var ts;
|
|
|
67460
67523
|
// constituents of 'target'. If any combination does not have a match then 'source' is not relatable.
|
|
67461
67524
|
var discriminantCombinations = ts.cartesianProduct(sourceDiscriminantTypes);
|
|
67462
67525
|
var matchingTypes = [];
|
|
67463
|
-
var
|
|
67526
|
+
var _loop_22 = function (combination) {
|
|
67464
67527
|
var hasMatch = false;
|
|
67465
67528
|
outer: for (var _c = 0, _d = target.types; _c < _d.length; _c++) {
|
|
67466
67529
|
var type = _d[_c];
|
|
67467
|
-
var
|
|
67530
|
+
var _loop_23 = function (i) {
|
|
67468
67531
|
var sourceProperty = sourcePropertiesFiltered[i];
|
|
67469
67532
|
var targetProperty = getPropertyOfType(type, sourceProperty.escapedName);
|
|
67470
67533
|
if (!targetProperty)
|
|
@@ -67480,8 +67543,8 @@ var ts;
|
|
|
67480
67543
|
}
|
|
67481
67544
|
};
|
|
67482
67545
|
for (var i = 0; i < sourcePropertiesFiltered.length; i++) {
|
|
67483
|
-
var
|
|
67484
|
-
switch (
|
|
67546
|
+
var state_9 = _loop_23(i);
|
|
67547
|
+
switch (state_9) {
|
|
67485
67548
|
case "continue-outer": continue outer;
|
|
67486
67549
|
}
|
|
67487
67550
|
}
|
|
@@ -67494,9 +67557,9 @@ var ts;
|
|
|
67494
67557
|
};
|
|
67495
67558
|
for (var _a = 0, discriminantCombinations_1 = discriminantCombinations; _a < discriminantCombinations_1.length; _a++) {
|
|
67496
67559
|
var combination = discriminantCombinations_1[_a];
|
|
67497
|
-
var
|
|
67498
|
-
if (typeof
|
|
67499
|
-
return
|
|
67560
|
+
var state_8 = _loop_22(combination);
|
|
67561
|
+
if (typeof state_8 === "object")
|
|
67562
|
+
return state_8.value;
|
|
67500
67563
|
}
|
|
67501
67564
|
// Compare the remaining non-discriminant properties of each match.
|
|
67502
67565
|
var result = -1 /* Ternary.True */;
|
|
@@ -68201,7 +68264,7 @@ var ts;
|
|
|
68201
68264
|
ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.push("checkTypes" /* tracing.Phase.CheckTypes */, "getVariancesWorker", { arity: typeParameters.length, id: getTypeId(getDeclaredTypeOfSymbol(symbol)) });
|
|
68202
68265
|
links.variances = ts.emptyArray;
|
|
68203
68266
|
var variances = [];
|
|
68204
|
-
var
|
|
68267
|
+
var _loop_24 = function (tp) {
|
|
68205
68268
|
var modifiers = getVarianceModifiers(tp);
|
|
68206
68269
|
var variance = modifiers & 65536 /* ModifierFlags.Out */ ?
|
|
68207
68270
|
modifiers & 32768 /* ModifierFlags.In */ ? 0 /* VarianceFlags.Invariant */ : 1 /* VarianceFlags.Covariant */ :
|
|
@@ -68239,7 +68302,7 @@ var ts;
|
|
|
68239
68302
|
};
|
|
68240
68303
|
for (var _i = 0, typeParameters_2 = typeParameters; _i < typeParameters_2.length; _i++) {
|
|
68241
68304
|
var tp = typeParameters_2[_i];
|
|
68242
|
-
|
|
68305
|
+
_loop_24(tp);
|
|
68243
68306
|
}
|
|
68244
68307
|
links.variances = variances;
|
|
68245
68308
|
ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.pop({ variances: variances.map(ts.Debug.formatVariance) });
|
|
@@ -68831,7 +68894,8 @@ var ts;
|
|
|
68831
68894
|
function getOptionalType(type, isProperty) {
|
|
68832
68895
|
if (isProperty === void 0) { isProperty = false; }
|
|
68833
68896
|
ts.Debug.assert(strictNullChecks);
|
|
68834
|
-
|
|
68897
|
+
var missingOrUndefined = isProperty ? missingType : undefinedType;
|
|
68898
|
+
return type.flags & 32768 /* TypeFlags.Undefined */ || type.flags & 1048576 /* TypeFlags.Union */ && type.types[0] === missingOrUndefined ? type : getUnionType([type, missingOrUndefined]);
|
|
68835
68899
|
}
|
|
68836
68900
|
function getGlobalNonNullableTypeInstantiation(type) {
|
|
68837
68901
|
if (!deferredGlobalNonNullableTypeAlias) {
|
|
@@ -70196,7 +70260,7 @@ var ts;
|
|
|
70196
70260
|
// upon instantiation, would collapse all the placeholders to just 'string', and an assignment check might
|
|
70197
70261
|
// succeed. That would be a pointless and confusing outcome.
|
|
70198
70262
|
if (matches || ts.every(target.texts, function (s) { return s.length === 0; })) {
|
|
70199
|
-
var
|
|
70263
|
+
var _loop_25 = function (i) {
|
|
70200
70264
|
var source_1 = matches ? matches[i] : neverType;
|
|
70201
70265
|
var target_3 = types[i];
|
|
70202
70266
|
// If we are inferring from a string literal type to a type variable whose constraint includes one of the
|
|
@@ -70246,7 +70310,7 @@ var ts;
|
|
|
70246
70310
|
inferFromTypes(source_1, target_3);
|
|
70247
70311
|
};
|
|
70248
70312
|
for (var i = 0; i < types.length; i++) {
|
|
70249
|
-
|
|
70313
|
+
_loop_25(i);
|
|
70250
70314
|
}
|
|
70251
70315
|
}
|
|
70252
70316
|
}
|
|
@@ -70710,7 +70774,7 @@ var ts;
|
|
|
70710
70774
|
return name;
|
|
70711
70775
|
}
|
|
70712
70776
|
}
|
|
70713
|
-
if (ts.hasOnlyExpressionInitializer(declaration)) {
|
|
70777
|
+
if (ts.hasOnlyExpressionInitializer(declaration) && isBlockScopedNameDeclaredBeforeUse(declaration, node.argumentExpression)) {
|
|
70714
70778
|
var initializer = ts.getEffectiveInitializer(declaration);
|
|
70715
70779
|
return initializer && tryGetNameFromType(getTypeOfExpression(initializer));
|
|
70716
70780
|
}
|
|
@@ -70770,7 +70834,7 @@ var ts;
|
|
|
70770
70834
|
function mapTypesByKeyProperty(types, name) {
|
|
70771
70835
|
var map = new ts.Map();
|
|
70772
70836
|
var count = 0;
|
|
70773
|
-
var
|
|
70837
|
+
var _loop_26 = function (type) {
|
|
70774
70838
|
if (type.flags & (524288 /* TypeFlags.Object */ | 2097152 /* TypeFlags.Intersection */ | 58982400 /* TypeFlags.InstantiableNonPrimitive */)) {
|
|
70775
70839
|
var discriminant = getTypeOfPropertyOfType(type, name);
|
|
70776
70840
|
if (discriminant) {
|
|
@@ -70796,9 +70860,9 @@ var ts;
|
|
|
70796
70860
|
};
|
|
70797
70861
|
for (var _i = 0, types_15 = types; _i < types_15.length; _i++) {
|
|
70798
70862
|
var type = types_15[_i];
|
|
70799
|
-
var
|
|
70800
|
-
if (typeof
|
|
70801
|
-
return
|
|
70863
|
+
var state_10 = _loop_26(type);
|
|
70864
|
+
if (typeof state_10 === "object")
|
|
70865
|
+
return state_10.value;
|
|
70802
70866
|
}
|
|
70803
70867
|
return count >= 10 && count * 2 >= types.length ? map : undefined;
|
|
70804
70868
|
}
|
|
@@ -77253,7 +77317,7 @@ var ts;
|
|
|
77253
77317
|
if (spreadIndex >= 0) {
|
|
77254
77318
|
// Create synthetic arguments from spreads of tuple types.
|
|
77255
77319
|
var effectiveArgs_1 = args.slice(0, spreadIndex);
|
|
77256
|
-
var
|
|
77320
|
+
var _loop_27 = function (i) {
|
|
77257
77321
|
var arg = args[i];
|
|
77258
77322
|
// We can call checkExpressionCached because spread expressions never have a contextual type.
|
|
77259
77323
|
var spreadType = arg.kind === 227 /* SyntaxKind.SpreadElement */ && (flowLoopCount ? checkExpression(arg.expression) : checkExpressionCached(arg.expression));
|
|
@@ -77270,7 +77334,7 @@ var ts;
|
|
|
77270
77334
|
}
|
|
77271
77335
|
};
|
|
77272
77336
|
for (var i = spreadIndex; i < args.length; i++) {
|
|
77273
|
-
|
|
77337
|
+
_loop_27(i);
|
|
77274
77338
|
}
|
|
77275
77339
|
return effectiveArgs_1;
|
|
77276
77340
|
}
|
|
@@ -77599,7 +77663,7 @@ var ts;
|
|
|
77599
77663
|
var min_3 = Number.MAX_VALUE;
|
|
77600
77664
|
var minIndex = 0;
|
|
77601
77665
|
var i_1 = 0;
|
|
77602
|
-
var
|
|
77666
|
+
var _loop_28 = function (c) {
|
|
77603
77667
|
var chain_2 = function () { return ts.chainDiagnosticMessages(/*details*/ undefined, ts.Diagnostics.Overload_0_of_1_2_gave_the_following_error, i_1 + 1, candidates.length, signatureToString(c)); };
|
|
77604
77668
|
var diags_2 = getSignatureApplicabilityError(node, args, c, assignableRelation, 0 /* CheckMode.Normal */, /*reportErrors*/ true, chain_2);
|
|
77605
77669
|
if (diags_2) {
|
|
@@ -77617,7 +77681,7 @@ var ts;
|
|
|
77617
77681
|
};
|
|
77618
77682
|
for (var _a = 0, candidatesForArgumentError_1 = candidatesForArgumentError; _a < candidatesForArgumentError_1.length; _a++) {
|
|
77619
77683
|
var c = candidatesForArgumentError_1[_a];
|
|
77620
|
-
|
|
77684
|
+
_loop_28(c);
|
|
77621
77685
|
}
|
|
77622
77686
|
var diags_3 = max > 1 ? allDiagnostics[minIndex] : ts.flatten(allDiagnostics);
|
|
77623
77687
|
ts.Debug.assert(diags_3.length > 0, "No errors reported for 3 or fewer overload signatures");
|
|
@@ -77775,7 +77839,7 @@ var ts;
|
|
|
77775
77839
|
}
|
|
77776
77840
|
var _a = ts.minAndMax(candidates, getNumNonRestParameters), minArgumentCount = _a.min, maxNonRestParam = _a.max;
|
|
77777
77841
|
var parameters = [];
|
|
77778
|
-
var
|
|
77842
|
+
var _loop_29 = function (i) {
|
|
77779
77843
|
var symbols = ts.mapDefined(candidates, function (s) { return signatureHasRestParameter(s) ?
|
|
77780
77844
|
i < s.parameters.length - 1 ? s.parameters[i] : ts.last(s.parameters) :
|
|
77781
77845
|
i < s.parameters.length ? s.parameters[i] : undefined; });
|
|
@@ -77783,7 +77847,7 @@ var ts;
|
|
|
77783
77847
|
parameters.push(createCombinedSymbolFromTypes(symbols, ts.mapDefined(candidates, function (candidate) { return tryGetTypeAtPosition(candidate, i); })));
|
|
77784
77848
|
};
|
|
77785
77849
|
for (var i = 0; i < maxNonRestParam; i++) {
|
|
77786
|
-
|
|
77850
|
+
_loop_29(i);
|
|
77787
77851
|
}
|
|
77788
77852
|
var restParameterSymbols = ts.mapDefined(candidates, function (c) { return signatureHasRestParameter(c) ? ts.last(c.parameters) : undefined; });
|
|
77789
77853
|
var flags = 0 /* SignatureFlags.None */;
|
|
@@ -80565,6 +80629,7 @@ var ts;
|
|
|
80565
80629
|
var eqType = operator === 34 /* SyntaxKind.EqualsEqualsToken */ || operator === 36 /* SyntaxKind.EqualsEqualsEqualsToken */;
|
|
80566
80630
|
error(errorNode, ts.Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value, eqType ? "false" : "true");
|
|
80567
80631
|
}
|
|
80632
|
+
checkNaNEquality(errorNode, operator, left, right);
|
|
80568
80633
|
reportOperatorErrorUnless(function (left, right) { return isTypeEqualityComparableTo(left, right) || isTypeEqualityComparableTo(right, left); });
|
|
80569
80634
|
return booleanType;
|
|
80570
80635
|
case 102 /* SyntaxKind.InstanceOfKeyword */:
|
|
@@ -80770,6 +80835,26 @@ var ts;
|
|
|
80770
80835
|
return undefined;
|
|
80771
80836
|
}
|
|
80772
80837
|
}
|
|
80838
|
+
function checkNaNEquality(errorNode, operator, left, right) {
|
|
80839
|
+
var isLeftNaN = isGlobalNaN(ts.skipParentheses(left));
|
|
80840
|
+
var isRightNaN = isGlobalNaN(ts.skipParentheses(right));
|
|
80841
|
+
if (isLeftNaN || isRightNaN) {
|
|
80842
|
+
var err = error(errorNode, ts.Diagnostics.This_condition_will_always_return_0, ts.tokenToString(operator === 36 /* SyntaxKind.EqualsEqualsEqualsToken */ || operator === 34 /* SyntaxKind.EqualsEqualsToken */ ? 95 /* SyntaxKind.FalseKeyword */ : 110 /* SyntaxKind.TrueKeyword */));
|
|
80843
|
+
if (isLeftNaN && isRightNaN)
|
|
80844
|
+
return;
|
|
80845
|
+
var operatorString = operator === 37 /* SyntaxKind.ExclamationEqualsEqualsToken */ || operator === 35 /* SyntaxKind.ExclamationEqualsToken */ ? ts.tokenToString(53 /* SyntaxKind.ExclamationToken */) : "";
|
|
80846
|
+
var location = isLeftNaN ? right : left;
|
|
80847
|
+
var expression = ts.skipParentheses(location);
|
|
80848
|
+
ts.addRelatedInfo(err, ts.createDiagnosticForNode(location, ts.Diagnostics.Did_you_mean_0, "".concat(operatorString, "Number.isNaN(").concat(ts.isEntityNameExpression(expression) ? ts.entityNameToString(expression) : "...", ")")));
|
|
80849
|
+
}
|
|
80850
|
+
}
|
|
80851
|
+
function isGlobalNaN(expr) {
|
|
80852
|
+
if (ts.isIdentifier(expr) && expr.escapedText === "NaN") {
|
|
80853
|
+
var globalNaNSymbol = getGlobalNaNSymbol();
|
|
80854
|
+
return !!globalNaNSymbol && globalNaNSymbol === getResolvedSymbol(expr);
|
|
80855
|
+
}
|
|
80856
|
+
return false;
|
|
80857
|
+
}
|
|
80773
80858
|
}
|
|
80774
80859
|
function getBaseTypesIfUnrelated(leftType, rightType, isRelated) {
|
|
80775
80860
|
var effectiveLeft = leftType;
|
|
@@ -81807,7 +81892,7 @@ var ts;
|
|
|
81807
81892
|
var indexSymbol = getIndexSymbol(getSymbolOfNode(node));
|
|
81808
81893
|
if (indexSymbol === null || indexSymbol === void 0 ? void 0 : indexSymbol.declarations) {
|
|
81809
81894
|
var indexSignatureMap_1 = new ts.Map();
|
|
81810
|
-
var
|
|
81895
|
+
var _loop_30 = function (declaration) {
|
|
81811
81896
|
if (declaration.parameters.length === 1 && declaration.parameters[0].type) {
|
|
81812
81897
|
forEachType(getTypeFromTypeNode(declaration.parameters[0].type), function (type) {
|
|
81813
81898
|
var entry = indexSignatureMap_1.get(getTypeId(type));
|
|
@@ -81822,7 +81907,7 @@ var ts;
|
|
|
81822
81907
|
};
|
|
81823
81908
|
for (var _i = 0, _a = indexSymbol.declarations; _i < _a.length; _i++) {
|
|
81824
81909
|
var declaration = _a[_i];
|
|
81825
|
-
|
|
81910
|
+
_loop_30(declaration);
|
|
81826
81911
|
}
|
|
81827
81912
|
indexSignatureMap_1.forEach(function (entry) {
|
|
81828
81913
|
if (entry.declarations.length > 1) {
|
|
@@ -85422,7 +85507,7 @@ var ts;
|
|
|
85422
85507
|
var propDeclaration = declaration && declaration.kind === 223 /* SyntaxKind.BinaryExpression */ ||
|
|
85423
85508
|
name && name.kind === 164 /* SyntaxKind.ComputedPropertyName */ ? declaration : undefined;
|
|
85424
85509
|
var localPropDeclaration = getParentOfSymbol(prop) === type.symbol ? declaration : undefined;
|
|
85425
|
-
var
|
|
85510
|
+
var _loop_31 = function (info) {
|
|
85426
85511
|
var localIndexDeclaration = info.declaration && getParentOfSymbol(getSymbolOfNode(info.declaration)) === type.symbol ? info.declaration : undefined;
|
|
85427
85512
|
// We check only when (a) the property is declared in the containing type, or (b) the applicable index signature is declared
|
|
85428
85513
|
// in the containing type, or (c) the containing type is an interface and no base interface contains both the property and
|
|
@@ -85439,7 +85524,7 @@ var ts;
|
|
|
85439
85524
|
};
|
|
85440
85525
|
for (var _i = 0, indexInfos_9 = indexInfos; _i < indexInfos_9.length; _i++) {
|
|
85441
85526
|
var info = indexInfos_9[_i];
|
|
85442
|
-
|
|
85527
|
+
_loop_31(info);
|
|
85443
85528
|
}
|
|
85444
85529
|
}
|
|
85445
85530
|
function checkIndexConstraintForIndexSignature(type, checkInfo) {
|
|
@@ -85447,7 +85532,7 @@ var ts;
|
|
|
85447
85532
|
var indexInfos = getApplicableIndexInfos(type, checkInfo.keyType);
|
|
85448
85533
|
var interfaceDeclaration = ts.getObjectFlags(type) & 2 /* ObjectFlags.Interface */ ? ts.getDeclarationOfKind(type.symbol, 261 /* SyntaxKind.InterfaceDeclaration */) : undefined;
|
|
85449
85534
|
var localCheckDeclaration = declaration && getParentOfSymbol(getSymbolOfNode(declaration)) === type.symbol ? declaration : undefined;
|
|
85450
|
-
var
|
|
85535
|
+
var _loop_32 = function (info) {
|
|
85451
85536
|
if (info === checkInfo)
|
|
85452
85537
|
return "continue";
|
|
85453
85538
|
var localIndexDeclaration = info.declaration && getParentOfSymbol(getSymbolOfNode(info.declaration)) === type.symbol ? info.declaration : undefined;
|
|
@@ -85462,7 +85547,7 @@ var ts;
|
|
|
85462
85547
|
};
|
|
85463
85548
|
for (var _i = 0, indexInfos_10 = indexInfos; _i < indexInfos_10.length; _i++) {
|
|
85464
85549
|
var info = indexInfos_10[_i];
|
|
85465
|
-
|
|
85550
|
+
_loop_32(info);
|
|
85466
85551
|
}
|
|
85467
85552
|
}
|
|
85468
85553
|
function checkTypeNameIsReserved(name, message) {
|
|
@@ -85782,7 +85867,7 @@ var ts;
|
|
|
85782
85867
|
var baseTypes = baseTypeNode && getBaseTypes(type);
|
|
85783
85868
|
var baseWithThis = (baseTypes === null || baseTypes === void 0 ? void 0 : baseTypes.length) ? getTypeWithThisArgument(ts.first(baseTypes), type.thisType) : undefined;
|
|
85784
85869
|
var baseStaticType = getBaseConstructorTypeOfClass(type);
|
|
85785
|
-
var
|
|
85870
|
+
var _loop_33 = function (member) {
|
|
85786
85871
|
if (ts.hasAmbientModifier(member)) {
|
|
85787
85872
|
return "continue";
|
|
85788
85873
|
}
|
|
@@ -85799,7 +85884,7 @@ var ts;
|
|
|
85799
85884
|
};
|
|
85800
85885
|
for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
|
|
85801
85886
|
var member = _a[_i];
|
|
85802
|
-
|
|
85887
|
+
_loop_33(member);
|
|
85803
85888
|
}
|
|
85804
85889
|
}
|
|
85805
85890
|
/**
|
|
@@ -85887,7 +85972,7 @@ var ts;
|
|
|
85887
85972
|
function issueMemberSpecificError(node, typeWithThis, baseWithThis, broadDiag) {
|
|
85888
85973
|
// iterate over all implemented properties and issue errors on each one which isn't compatible, rather than the class as a whole, if possible
|
|
85889
85974
|
var issuedMemberError = false;
|
|
85890
|
-
var
|
|
85975
|
+
var _loop_34 = function (member) {
|
|
85891
85976
|
if (ts.isStatic(member)) {
|
|
85892
85977
|
return "continue";
|
|
85893
85978
|
}
|
|
@@ -85906,7 +85991,7 @@ var ts;
|
|
|
85906
85991
|
};
|
|
85907
85992
|
for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
|
|
85908
85993
|
var member = _a[_i];
|
|
85909
|
-
|
|
85994
|
+
_loop_34(member);
|
|
85910
85995
|
}
|
|
85911
85996
|
if (!issuedMemberError) {
|
|
85912
85997
|
// check again with diagnostics to generate a less-specific error
|
|
@@ -85977,7 +86062,7 @@ var ts;
|
|
|
85977
86062
|
var _a, _b, _c, _d;
|
|
85978
86063
|
// NOTE: assignability is checked in checkClassDeclaration
|
|
85979
86064
|
var baseProperties = getPropertiesOfType(baseType);
|
|
85980
|
-
var
|
|
86065
|
+
var _loop_35 = function (baseProperty) {
|
|
85981
86066
|
var base = getTargetSymbol(baseProperty);
|
|
85982
86067
|
if (base.flags & 4194304 /* SymbolFlags.Prototype */) {
|
|
85983
86068
|
return "continue";
|
|
@@ -86087,8 +86172,8 @@ var ts;
|
|
|
86087
86172
|
};
|
|
86088
86173
|
basePropertyCheck: for (var _i = 0, baseProperties_1 = baseProperties; _i < baseProperties_1.length; _i++) {
|
|
86089
86174
|
var baseProperty = baseProperties_1[_i];
|
|
86090
|
-
var
|
|
86091
|
-
switch (
|
|
86175
|
+
var state_11 = _loop_35(baseProperty);
|
|
86176
|
+
switch (state_11) {
|
|
86092
86177
|
case "continue-basePropertyCheck": continue basePropertyCheck;
|
|
86093
86178
|
}
|
|
86094
86179
|
}
|
|
@@ -115329,6 +115414,7 @@ var ts;
|
|
|
115329
115414
|
writeTrailingSemicolon();
|
|
115330
115415
|
}
|
|
115331
115416
|
function emitExportDeclaration(node) {
|
|
115417
|
+
emitModifiers(node, node.modifiers);
|
|
115332
115418
|
var nextPos = emitTokenWithComment(93 /* SyntaxKind.ExportKeyword */, node.pos, writeKeyword, node);
|
|
115333
115419
|
writeSpace();
|
|
115334
115420
|
if (node.isTypeOnly) {
|
|
@@ -124931,7 +125017,7 @@ var ts;
|
|
|
124931
125017
|
});
|
|
124932
125018
|
// Sort by paths closest to importing file Name directory
|
|
124933
125019
|
var sortedPaths = [];
|
|
124934
|
-
var
|
|
125020
|
+
var _loop_36 = function (directory) {
|
|
124935
125021
|
var directoryStart = ts.ensureTrailingDirectorySeparator(directory);
|
|
124936
125022
|
var pathsInDirectory;
|
|
124937
125023
|
allFileNames.forEach(function (_a, fileName) {
|
|
@@ -124955,9 +125041,9 @@ var ts;
|
|
|
124955
125041
|
};
|
|
124956
125042
|
var out_directory_1;
|
|
124957
125043
|
for (var directory = ts.getDirectoryPath(importingFileName); allFileNames.size !== 0;) {
|
|
124958
|
-
var
|
|
125044
|
+
var state_12 = _loop_36(directory);
|
|
124959
125045
|
directory = out_directory_1;
|
|
124960
|
-
if (
|
|
125046
|
+
if (state_12 === "break")
|
|
124961
125047
|
break;
|
|
124962
125048
|
}
|
|
124963
125049
|
if (allFileNames.size) {
|
|
@@ -125026,7 +125112,7 @@ var ts;
|
|
|
125026
125112
|
}
|
|
125027
125113
|
function tryGetModuleNameFromPaths(relativeToBaseUrl, paths, allowedEndings, host, compilerOptions) {
|
|
125028
125114
|
for (var key in paths) {
|
|
125029
|
-
var
|
|
125115
|
+
var _loop_37 = function (patternText_1) {
|
|
125030
125116
|
var pattern = ts.normalizePath(patternText_1);
|
|
125031
125117
|
var indexOfStar = pattern.indexOf("*");
|
|
125032
125118
|
// In module resolution, if `pattern` itself has an extension, a file with that extension is looked up directly,
|
|
@@ -125093,9 +125179,9 @@ var ts;
|
|
|
125093
125179
|
};
|
|
125094
125180
|
for (var _i = 0, _a = paths[key]; _i < _a.length; _i++) {
|
|
125095
125181
|
var patternText_1 = _a[_i];
|
|
125096
|
-
var
|
|
125097
|
-
if (typeof
|
|
125098
|
-
return
|
|
125182
|
+
var state_13 = _loop_37(patternText_1);
|
|
125183
|
+
if (typeof state_13 === "object")
|
|
125184
|
+
return state_13.value;
|
|
125099
125185
|
}
|
|
125100
125186
|
}
|
|
125101
125187
|
function validateEnding(_a) {
|
|
@@ -135015,7 +135101,7 @@ var ts;
|
|
|
135015
135101
|
return (location === null || location === void 0 ? void 0 : location.kind) === 79 /* SyntaxKind.Identifier */ ? ts.createTextSpanFromNode(location) : undefined;
|
|
135016
135102
|
}
|
|
135017
135103
|
function completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences, formatContext, position) {
|
|
135018
|
-
var symbols = completionData.symbols, contextToken = completionData.contextToken, completionKind = completionData.completionKind, isInSnippetScope = completionData.isInSnippetScope, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location, propertyAccessToConvert = completionData.propertyAccessToConvert, keywordFilters = completionData.keywordFilters, literals = completionData.literals, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, recommendedCompletion = completionData.recommendedCompletion, isJsxInitializer = completionData.isJsxInitializer, isTypeOnlyLocation = completionData.isTypeOnlyLocation, isJsxIdentifierExpected = completionData.isJsxIdentifierExpected, isRightOfOpenTag = completionData.isRightOfOpenTag,
|
|
135104
|
+
var symbols = completionData.symbols, contextToken = completionData.contextToken, completionKind = completionData.completionKind, isInSnippetScope = completionData.isInSnippetScope, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location, propertyAccessToConvert = completionData.propertyAccessToConvert, keywordFilters = completionData.keywordFilters, literals = completionData.literals, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, recommendedCompletion = completionData.recommendedCompletion, isJsxInitializer = completionData.isJsxInitializer, isTypeOnlyLocation = completionData.isTypeOnlyLocation, isJsxIdentifierExpected = completionData.isJsxIdentifierExpected, isRightOfOpenTag = completionData.isRightOfOpenTag, importStatementCompletion = completionData.importStatementCompletion, insideJsDocTagTypeExpression = completionData.insideJsDocTagTypeExpression, symbolToSortTextMap = completionData.symbolToSortTextMap, hasUnresolvedAutoImports = completionData.hasUnresolvedAutoImports;
|
|
135019
135105
|
// Verify if the file is JSX language variant
|
|
135020
135106
|
if (ts.getLanguageVariant(sourceFile.scriptKind) === 1 /* LanguageVariant.JSX */) {
|
|
135021
135107
|
var completionInfo = getJsxClosingTagCompletion(location, sourceFile);
|
|
@@ -135029,7 +135115,7 @@ var ts;
|
|
|
135029
135115
|
return undefined;
|
|
135030
135116
|
}
|
|
135031
135117
|
var uniqueNames = getCompletionEntriesFromSymbols(symbols, entries,
|
|
135032
|
-
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, formatContext, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer,
|
|
135118
|
+
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, formatContext, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importStatementCompletion, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextMap, isJsxIdentifierExpected, isRightOfOpenTag);
|
|
135033
135119
|
if (keywordFilters !== 0 /* KeywordCompletionFilters.None */) {
|
|
135034
135120
|
for (var _i = 0, _a = getKeywordCompletions(keywordFilters, !insideJsDocTagTypeExpression && ts.isSourceFileJS(sourceFile)); _i < _a.length; _i++) {
|
|
135035
135121
|
var keywordEntry = _a[_i];
|
|
@@ -135147,7 +135233,7 @@ var ts;
|
|
|
135147
135233
|
function createCompletionEntryForLiteral(sourceFile, preferences, literal) {
|
|
135148
135234
|
return { name: completionNameForLiteral(sourceFile, preferences, literal), kind: "string" /* ScriptElementKind.string */, kindModifiers: "" /* ScriptElementKindModifier.none */, sortText: Completions.SortText.LocationPriority };
|
|
135149
135235
|
}
|
|
135150
|
-
function createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer,
|
|
135236
|
+
function createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importStatementCompletion, useSemicolons, options, preferences, completionKind, formatContext, isJsxIdentifierExpected, isRightOfOpenTag) {
|
|
135151
135237
|
var _a, _b;
|
|
135152
135238
|
var insertText;
|
|
135153
135239
|
var replacementSpan = ts.getReplacementSpanForContextToken(replacementToken);
|
|
@@ -135203,8 +135289,8 @@ var ts;
|
|
|
135203
135289
|
}
|
|
135204
135290
|
if (originIsResolvedExport(origin)) {
|
|
135205
135291
|
sourceDisplay = [ts.textPart(origin.moduleSpecifier)];
|
|
135206
|
-
if (
|
|
135207
|
-
(_a = getInsertTextAndReplacementSpanForImportCompletion(name,
|
|
135292
|
+
if (importStatementCompletion) {
|
|
135293
|
+
(_a = getInsertTextAndReplacementSpanForImportCompletion(name, importStatementCompletion, origin, useSemicolons, sourceFile, options, preferences), insertText = _a.insertText, replacementSpan = _a.replacementSpan);
|
|
135208
135294
|
isSnippet = preferences.includeCompletionsWithSnippetText ? true : undefined;
|
|
135209
135295
|
}
|
|
135210
135296
|
}
|
|
@@ -135259,7 +135345,7 @@ var ts;
|
|
|
135259
135345
|
}
|
|
135260
135346
|
if (originIsExport(origin) || originIsResolvedExport(origin)) {
|
|
135261
135347
|
data = originToCompletionEntryData(origin);
|
|
135262
|
-
hasAction = !
|
|
135348
|
+
hasAction = !importStatementCompletion;
|
|
135263
135349
|
}
|
|
135264
135350
|
// TODO(drosen): Right now we just permit *all* semantic meanings when calling
|
|
135265
135351
|
// 'getSymbolKind' which is permissible given that it is backwards compatible; but
|
|
@@ -135282,7 +135368,7 @@ var ts;
|
|
|
135282
135368
|
labelDetails: labelDetails,
|
|
135283
135369
|
isSnippet: isSnippet,
|
|
135284
135370
|
isPackageJsonImport: originIsPackageJsonImport(origin) || undefined,
|
|
135285
|
-
isImportStatementCompletion: !!
|
|
135371
|
+
isImportStatementCompletion: !!importStatementCompletion || undefined,
|
|
135286
135372
|
data: data,
|
|
135287
135373
|
};
|
|
135288
135374
|
}
|
|
@@ -135654,19 +135740,16 @@ var ts;
|
|
|
135654
135740
|
};
|
|
135655
135741
|
return unresolvedOrigin;
|
|
135656
135742
|
}
|
|
135657
|
-
function getInsertTextAndReplacementSpanForImportCompletion(name,
|
|
135658
|
-
var
|
|
135659
|
-
var sourceFile = importCompletionNode.getSourceFile();
|
|
135660
|
-
var replacementSpan = ts.createTextSpanFromNode(ts.findAncestor(importCompletionNode, ts.or(ts.isImportDeclaration, ts.isImportEqualsDeclaration)) || importCompletionNode, sourceFile);
|
|
135743
|
+
function getInsertTextAndReplacementSpanForImportCompletion(name, importStatementCompletion, origin, useSemicolons, sourceFile, options, preferences) {
|
|
135744
|
+
var replacementSpan = importStatementCompletion.replacementSpan;
|
|
135661
135745
|
var quotedModuleSpecifier = ts.quote(sourceFile, preferences, origin.moduleSpecifier);
|
|
135662
135746
|
var exportKind = origin.isDefaultExport ? 1 /* ExportKind.Default */ :
|
|
135663
135747
|
origin.exportName === "export=" /* InternalSymbolName.ExportEquals */ ? 2 /* ExportKind.ExportEquals */ :
|
|
135664
135748
|
0 /* ExportKind.Named */;
|
|
135665
135749
|
var tabStop = preferences.includeCompletionsWithSnippetText ? "$1" : "";
|
|
135666
135750
|
var importKind = ts.codefix.getImportKind(sourceFile, exportKind, options, /*forceImportKeyword*/ true);
|
|
135667
|
-
var
|
|
135668
|
-
var
|
|
135669
|
-
var topLevelTypeOnlyText = isTopLevelTypeOnly ? " ".concat(ts.tokenToString(154 /* SyntaxKind.TypeKeyword */), " ") : " ";
|
|
135751
|
+
var isImportSpecifierTypeOnly = importStatementCompletion.couldBeTypeOnlyImportSpecifier;
|
|
135752
|
+
var topLevelTypeOnlyText = importStatementCompletion.isTopLevelTypeOnly ? " ".concat(ts.tokenToString(154 /* SyntaxKind.TypeKeyword */), " ") : " ";
|
|
135670
135753
|
var importSpecifierTypeOnlyText = isImportSpecifierTypeOnly ? "".concat(ts.tokenToString(154 /* SyntaxKind.TypeKeyword */), " ") : "";
|
|
135671
135754
|
var suffix = useSemicolons ? ";" : "";
|
|
135672
135755
|
switch (importKind) {
|
|
@@ -135700,7 +135783,7 @@ var ts;
|
|
|
135700
135783
|
return CompletionSource.TypeOnlyAlias;
|
|
135701
135784
|
}
|
|
135702
135785
|
}
|
|
135703
|
-
function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, sourceFile, host, program, target, log, kind, preferences, compilerOptions, formatContext, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer,
|
|
135786
|
+
function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, sourceFile, host, program, target, log, kind, preferences, compilerOptions, formatContext, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer, importStatementCompletion, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextMap, isJsxIdentifierExpected, isRightOfOpenTag) {
|
|
135704
135787
|
var _a;
|
|
135705
135788
|
var start = ts.timestamp();
|
|
135706
135789
|
var variableDeclaration = getVariableDeclaration(location);
|
|
@@ -135721,7 +135804,7 @@ var ts;
|
|
|
135721
135804
|
var name = info.name, needsConvertPropertyAccess = info.needsConvertPropertyAccess;
|
|
135722
135805
|
var originalSortText = (_a = symbolToSortTextMap === null || symbolToSortTextMap === void 0 ? void 0 : symbolToSortTextMap[ts.getSymbolId(symbol)]) !== null && _a !== void 0 ? _a : Completions.SortText.LocationPriority;
|
|
135723
135806
|
var sortText = (isDeprecated(symbol, typeChecker) ? Completions.SortText.Deprecated(originalSortText) : originalSortText);
|
|
135724
|
-
var entry = createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer,
|
|
135807
|
+
var entry = createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importStatementCompletion, useSemicolons, compilerOptions, preferences, kind, formatContext, isJsxIdentifierExpected, isRightOfOpenTag);
|
|
135725
135808
|
if (!entry) {
|
|
135726
135809
|
continue;
|
|
135727
135810
|
}
|
|
@@ -135912,7 +135995,7 @@ var ts;
|
|
|
135912
135995
|
Completions.createCompletionDetails = createCompletionDetails;
|
|
135913
135996
|
function getCompletionEntryCodeActionsAndSourceDisplay(name, location, contextToken, origin, symbol, program, host, compilerOptions, sourceFile, position, previousToken, formatContext, preferences, data, source, cancellationToken) {
|
|
135914
135997
|
if (data === null || data === void 0 ? void 0 : data.moduleSpecifier) {
|
|
135915
|
-
if (previousToken && getImportStatementCompletionInfo(contextToken || previousToken).
|
|
135998
|
+
if (previousToken && getImportStatementCompletionInfo(contextToken || previousToken).replacementSpan) {
|
|
135916
135999
|
// Import statement completion: 'import c|'
|
|
135917
136000
|
return { codeActions: undefined, sourceDisplay: [ts.textPart(data.moduleSpecifier)] };
|
|
135918
136001
|
}
|
|
@@ -136113,34 +136196,34 @@ var ts;
|
|
|
136113
136196
|
var isStartingCloseTag = false;
|
|
136114
136197
|
var isJsxInitializer = false;
|
|
136115
136198
|
var isJsxIdentifierExpected = false;
|
|
136116
|
-
var
|
|
136199
|
+
var importStatementCompletion;
|
|
136117
136200
|
var location = ts.getTouchingPropertyName(sourceFile, position);
|
|
136118
136201
|
var keywordFilters = 0 /* KeywordCompletionFilters.None */;
|
|
136119
136202
|
var isNewIdentifierLocation = false;
|
|
136120
136203
|
var flags = 0 /* CompletionInfoFlags.None */;
|
|
136121
136204
|
if (contextToken) {
|
|
136122
|
-
var
|
|
136123
|
-
|
|
136124
|
-
|
|
136125
|
-
if (importStatementCompletion.isKeywordOnlyCompletion) {
|
|
136205
|
+
var importStatementCompletionInfo = getImportStatementCompletionInfo(contextToken);
|
|
136206
|
+
if (importStatementCompletionInfo.keywordCompletion) {
|
|
136207
|
+
if (importStatementCompletionInfo.isKeywordOnlyCompletion) {
|
|
136126
136208
|
return {
|
|
136127
136209
|
kind: 4 /* CompletionDataKind.Keywords */,
|
|
136128
|
-
keywordCompletions: [keywordToCompletionEntry(
|
|
136129
|
-
isNewIdentifierLocation: isNewIdentifierLocation,
|
|
136210
|
+
keywordCompletions: [keywordToCompletionEntry(importStatementCompletionInfo.keywordCompletion)],
|
|
136211
|
+
isNewIdentifierLocation: importStatementCompletionInfo.isNewIdentifierLocation,
|
|
136130
136212
|
};
|
|
136131
136213
|
}
|
|
136132
|
-
keywordFilters = keywordFiltersFromSyntaxKind(
|
|
136214
|
+
keywordFilters = keywordFiltersFromSyntaxKind(importStatementCompletionInfo.keywordCompletion);
|
|
136133
136215
|
}
|
|
136134
|
-
if (
|
|
136216
|
+
if (importStatementCompletionInfo.replacementSpan && preferences.includeCompletionsForImportStatements && preferences.includeCompletionsWithInsertText) {
|
|
136135
136217
|
// Import statement completions use `insertText`, and also require the `data` property of `CompletionEntryIdentifier`
|
|
136136
136218
|
// added in TypeScript 4.3 to be sent back from the client during `getCompletionEntryDetails`. Since this feature
|
|
136137
136219
|
// is not backward compatible with older clients, the language service defaults to disabling it, allowing newer clients
|
|
136138
136220
|
// to opt in with the `includeCompletionsForImportStatements` user preference.
|
|
136139
|
-
importCompletionNode = importStatementCompletion.replacementNode;
|
|
136140
136221
|
flags |= 2 /* CompletionInfoFlags.IsImportStatementCompletion */;
|
|
136222
|
+
importStatementCompletion = importStatementCompletionInfo;
|
|
136223
|
+
isNewIdentifierLocation = importStatementCompletionInfo.isNewIdentifierLocation;
|
|
136141
136224
|
}
|
|
136142
136225
|
// Bail out if this is a known invalid completion location
|
|
136143
|
-
if (!
|
|
136226
|
+
if (!importStatementCompletionInfo.replacementSpan && isCompletionListBlocker(contextToken)) {
|
|
136144
136227
|
log("Returning an empty list because completion was requested in an invalid position.");
|
|
136145
136228
|
return keywordFilters
|
|
136146
136229
|
? keywordCompletionData(keywordFilters, isJsOnlyLocation, isNewIdentifierDefinitionLocation())
|
|
@@ -136186,7 +136269,7 @@ var ts;
|
|
|
136186
136269
|
return undefined;
|
|
136187
136270
|
}
|
|
136188
136271
|
}
|
|
136189
|
-
else if (!
|
|
136272
|
+
else if (!importStatementCompletion) {
|
|
136190
136273
|
// <UI.Test /* completion position */ />
|
|
136191
136274
|
// If the tagname is a property access expression, we will then walk up to the top most of property access expression.
|
|
136192
136275
|
// Then, try to get a JSX container and its associated attributes type.
|
|
@@ -136329,7 +136412,7 @@ var ts;
|
|
|
136329
136412
|
isTypeOnlyLocation: isTypeOnlyLocation,
|
|
136330
136413
|
isJsxIdentifierExpected: isJsxIdentifierExpected,
|
|
136331
136414
|
isRightOfOpenTag: isRightOfOpenTag,
|
|
136332
|
-
|
|
136415
|
+
importStatementCompletion: importStatementCompletion,
|
|
136333
136416
|
hasUnresolvedAutoImports: hasUnresolvedAutoImports,
|
|
136334
136417
|
flags: flags,
|
|
136335
136418
|
};
|
|
@@ -136583,7 +136666,7 @@ var ts;
|
|
|
136583
136666
|
return 1 /* GlobalsSearch.Success */;
|
|
136584
136667
|
}
|
|
136585
136668
|
function tryGetImportCompletionSymbols() {
|
|
136586
|
-
if (!
|
|
136669
|
+
if (!importStatementCompletion)
|
|
136587
136670
|
return 0 /* GlobalsSearch.Continue */;
|
|
136588
136671
|
isNewIdentifierLocation = true;
|
|
136589
136672
|
collectAutoImports();
|
|
@@ -136666,7 +136749,7 @@ var ts;
|
|
|
136666
136749
|
}
|
|
136667
136750
|
function shouldOfferImportCompletions() {
|
|
136668
136751
|
// If already typing an import statement, provide completions for it.
|
|
136669
|
-
if (
|
|
136752
|
+
if (importStatementCompletion)
|
|
136670
136753
|
return true;
|
|
136671
136754
|
// If current completion is for non-contextual Object literal shortahands, ignore auto-import symbols
|
|
136672
136755
|
if (isNonContextualObjectLiteral)
|
|
@@ -136696,7 +136779,7 @@ var ts;
|
|
|
136696
136779
|
}
|
|
136697
136780
|
function isTypeOnlyCompletion() {
|
|
136698
136781
|
return insideJsDocTagTypeExpression
|
|
136699
|
-
|| !!
|
|
136782
|
+
|| !!importStatementCompletion && ts.isTypeOnlyImportOrExportDeclaration(location.parent)
|
|
136700
136783
|
|| !isContextTokenValueLocation(contextToken) &&
|
|
136701
136784
|
(ts.isPossiblyTypeArgumentPosition(contextToken, sourceFile, typeChecker)
|
|
136702
136785
|
|| ts.isPartOfTypeNode(location)
|
|
@@ -136746,8 +136829,7 @@ var ts;
|
|
|
136746
136829
|
flags |= 1 /* CompletionInfoFlags.MayIncludeAutoImports */;
|
|
136747
136830
|
// import { type | -> token text should be blank
|
|
136748
136831
|
var isAfterTypeOnlyImportSpecifierModifier = previousToken === contextToken
|
|
136749
|
-
&&
|
|
136750
|
-
&& couldBeTypeOnlyImportSpecifier(importCompletionNode, contextToken);
|
|
136832
|
+
&& importStatementCompletion;
|
|
136751
136833
|
var lowerCaseTokenText = isAfterTypeOnlyImportSpecifierModifier ? "" :
|
|
136752
136834
|
previousToken && ts.isIdentifier(previousToken) ? previousToken.text.toLowerCase() :
|
|
136753
136835
|
"";
|
|
@@ -136755,14 +136837,14 @@ var ts;
|
|
|
136755
136837
|
var exportInfo = ts.getExportInfoMap(sourceFile, host, program, preferences, cancellationToken);
|
|
136756
136838
|
var packageJsonAutoImportProvider = (_b = host.getPackageJsonAutoImportProvider) === null || _b === void 0 ? void 0 : _b.call(host);
|
|
136757
136839
|
var packageJsonFilter = detailsEntryId ? undefined : ts.createPackageJsonImportFilter(sourceFile, preferences, host);
|
|
136758
|
-
resolvingModuleSpecifiers("collectAutoImports", host, importSpecifierResolver || (importSpecifierResolver = ts.codefix.createImportSpecifierResolver(sourceFile, program, host, preferences)), program, position, preferences, !!
|
|
136840
|
+
resolvingModuleSpecifiers("collectAutoImports", host, importSpecifierResolver || (importSpecifierResolver = ts.codefix.createImportSpecifierResolver(sourceFile, program, host, preferences)), program, position, preferences, !!importStatementCompletion, ts.isValidTypeOnlyAliasUseSite(location), function (context) {
|
|
136759
136841
|
exportInfo.search(sourceFile.path,
|
|
136760
136842
|
/*preferCapitalized*/ isRightOfOpenTag, function (symbolName, targetFlags) {
|
|
136761
136843
|
if (!ts.isIdentifierText(symbolName, ts.getEmitScriptTarget(host.getCompilationSettings())))
|
|
136762
136844
|
return false;
|
|
136763
136845
|
if (!detailsEntryId && ts.isStringANonContextualKeyword(symbolName))
|
|
136764
136846
|
return false;
|
|
136765
|
-
if (!isTypeOnlyLocation && !
|
|
136847
|
+
if (!isTypeOnlyLocation && !importStatementCompletion && !(targetFlags & 111551 /* SymbolFlags.Value */))
|
|
136766
136848
|
return false;
|
|
136767
136849
|
if (isTypeOnlyLocation && !(targetFlags & (1536 /* SymbolFlags.Module */ | 788968 /* SymbolFlags.Type */)))
|
|
136768
136850
|
return false;
|
|
@@ -136843,7 +136925,7 @@ var ts;
|
|
|
136843
136925
|
return;
|
|
136844
136926
|
}
|
|
136845
136927
|
symbolToOriginInfoMap[symbols.length] = origin;
|
|
136846
|
-
symbolToSortTextMap[symbolId] =
|
|
136928
|
+
symbolToSortTextMap[symbolId] = importStatementCompletion ? Completions.SortText.LocationPriority : Completions.SortText.AutoImportSuggestions;
|
|
136847
136929
|
symbols.push(symbol);
|
|
136848
136930
|
}
|
|
136849
136931
|
/* Mutates `symbols` and `symbolToOriginInfoMap`. */
|
|
@@ -138110,6 +138192,7 @@ var ts;
|
|
|
138110
138192
|
return undefined;
|
|
138111
138193
|
}
|
|
138112
138194
|
function getImportStatementCompletionInfo(contextToken) {
|
|
138195
|
+
var _a, _b, _c;
|
|
138113
138196
|
var keywordCompletion;
|
|
138114
138197
|
var isKeywordOnlyCompletion = false;
|
|
138115
138198
|
var candidate = getCandidate();
|
|
@@ -138117,9 +138200,9 @@ var ts;
|
|
|
138117
138200
|
isKeywordOnlyCompletion: isKeywordOnlyCompletion,
|
|
138118
138201
|
keywordCompletion: keywordCompletion,
|
|
138119
138202
|
isNewIdentifierLocation: !!(candidate || keywordCompletion === 154 /* SyntaxKind.TypeKeyword */),
|
|
138120
|
-
|
|
138121
|
-
|
|
138122
|
-
|
|
138203
|
+
isTopLevelTypeOnly: !!((_b = (_a = ts.tryCast(candidate, ts.isImportDeclaration)) === null || _a === void 0 ? void 0 : _a.importClause) === null || _b === void 0 ? void 0 : _b.isTypeOnly) || !!((_c = ts.tryCast(candidate, ts.isImportEqualsDeclaration)) === null || _c === void 0 ? void 0 : _c.isTypeOnly),
|
|
138204
|
+
couldBeTypeOnlyImportSpecifier: !!candidate && couldBeTypeOnlyImportSpecifier(candidate, contextToken),
|
|
138205
|
+
replacementSpan: getSingleLineReplacementSpanForImportCompletionNode(candidate),
|
|
138123
138206
|
};
|
|
138124
138207
|
function getCandidate() {
|
|
138125
138208
|
var parent = contextToken.parent;
|
|
@@ -138161,14 +138244,71 @@ var ts;
|
|
|
138161
138244
|
return undefined;
|
|
138162
138245
|
}
|
|
138163
138246
|
}
|
|
138247
|
+
function getSingleLineReplacementSpanForImportCompletionNode(node) {
|
|
138248
|
+
var _a, _b, _c;
|
|
138249
|
+
if (!node)
|
|
138250
|
+
return undefined;
|
|
138251
|
+
var top = (_a = ts.findAncestor(node, ts.or(ts.isImportDeclaration, ts.isImportEqualsDeclaration))) !== null && _a !== void 0 ? _a : node;
|
|
138252
|
+
var sourceFile = top.getSourceFile();
|
|
138253
|
+
if (ts.rangeIsOnSingleLine(top, sourceFile)) {
|
|
138254
|
+
return ts.createTextSpanFromNode(top, sourceFile);
|
|
138255
|
+
}
|
|
138256
|
+
// ImportKeyword was necessarily on one line; ImportSpecifier was necessarily parented in an ImportDeclaration
|
|
138257
|
+
ts.Debug.assert(top.kind !== 100 /* SyntaxKind.ImportKeyword */ && top.kind !== 273 /* SyntaxKind.ImportSpecifier */);
|
|
138258
|
+
// Guess which point in the import might actually be a later statement parsed as part of the import
|
|
138259
|
+
// during parser recovery - either in the middle of named imports, or the module specifier.
|
|
138260
|
+
var potentialSplitPoint = top.kind === 269 /* SyntaxKind.ImportDeclaration */
|
|
138261
|
+
? (_c = getPotentiallyInvalidImportSpecifier((_b = top.importClause) === null || _b === void 0 ? void 0 : _b.namedBindings)) !== null && _c !== void 0 ? _c : top.moduleSpecifier
|
|
138262
|
+
: top.moduleReference;
|
|
138263
|
+
var withoutModuleSpecifier = {
|
|
138264
|
+
pos: top.getFirstToken().getStart(),
|
|
138265
|
+
end: potentialSplitPoint.pos,
|
|
138266
|
+
};
|
|
138267
|
+
// The module specifier/reference was previously found to be missing, empty, or
|
|
138268
|
+
// not a string literal - in this last case, it's likely that statement on a following
|
|
138269
|
+
// line was parsed as the module specifier of a partially-typed import, e.g.
|
|
138270
|
+
// import Foo|
|
|
138271
|
+
// interface Blah {}
|
|
138272
|
+
// This appears to be a multiline-import, and editors can't replace multiple lines.
|
|
138273
|
+
// But if everything but the "module specifier" is on one line, by this point we can
|
|
138274
|
+
// assume that the "module specifier" is actually just another statement, and return
|
|
138275
|
+
// the single-line range of the import excluding that probable statement.
|
|
138276
|
+
if (ts.rangeIsOnSingleLine(withoutModuleSpecifier, sourceFile)) {
|
|
138277
|
+
return ts.createTextSpanFromRange(withoutModuleSpecifier);
|
|
138278
|
+
}
|
|
138279
|
+
}
|
|
138280
|
+
// Tries to identify the first named import that is not really a named import, but rather
|
|
138281
|
+
// just parser recovery for a situation like:
|
|
138282
|
+
// import { Foo|
|
|
138283
|
+
// interface Bar {}
|
|
138284
|
+
// in which `Foo`, `interface`, and `Bar` are all parsed as import specifiers. The caller
|
|
138285
|
+
// will also check if this token is on a separate line from the rest of the import.
|
|
138286
|
+
function getPotentiallyInvalidImportSpecifier(namedBindings) {
|
|
138287
|
+
var _a;
|
|
138288
|
+
return ts.find((_a = ts.tryCast(namedBindings, ts.isNamedImports)) === null || _a === void 0 ? void 0 : _a.elements, function (e) {
|
|
138289
|
+
var _a;
|
|
138290
|
+
return !e.propertyName &&
|
|
138291
|
+
ts.isStringANonContextualKeyword(e.name.text) &&
|
|
138292
|
+
((_a = ts.findPrecedingToken(e.name.pos, namedBindings.getSourceFile(), namedBindings)) === null || _a === void 0 ? void 0 : _a.kind) !== 27 /* SyntaxKind.CommaToken */;
|
|
138293
|
+
});
|
|
138294
|
+
}
|
|
138164
138295
|
function couldBeTypeOnlyImportSpecifier(importSpecifier, contextToken) {
|
|
138165
138296
|
return ts.isImportSpecifier(importSpecifier)
|
|
138166
138297
|
&& (importSpecifier.isTypeOnly || contextToken === importSpecifier.name && ts.isTypeKeywordTokenOrIdentifier(contextToken));
|
|
138167
138298
|
}
|
|
138168
138299
|
function canCompleteFromNamedBindings(namedBindings) {
|
|
138169
|
-
|
|
138170
|
-
|
|
138171
|
-
|
|
138300
|
+
if (!isModuleSpecifierMissingOrEmpty(namedBindings.parent.parent.moduleSpecifier) || namedBindings.parent.name) {
|
|
138301
|
+
return false;
|
|
138302
|
+
}
|
|
138303
|
+
if (ts.isNamedImports(namedBindings)) {
|
|
138304
|
+
// We can only complete on named imports if there are no other named imports already,
|
|
138305
|
+
// but parser recovery sometimes puts later statements in the named imports list, so
|
|
138306
|
+
// we try to only consider the probably-valid ones.
|
|
138307
|
+
var invalidNamedImport = getPotentiallyInvalidImportSpecifier(namedBindings);
|
|
138308
|
+
var validImports = invalidNamedImport ? namedBindings.elements.indexOf(invalidNamedImport) : namedBindings.elements.length;
|
|
138309
|
+
return validImports < 2;
|
|
138310
|
+
}
|
|
138311
|
+
return true;
|
|
138172
138312
|
}
|
|
138173
138313
|
function isModuleSpecifierMissingOrEmpty(specifier) {
|
|
138174
138314
|
var _a;
|
|
@@ -146203,6 +146343,10 @@ var ts;
|
|
|
146203
146343
|
pushSelectionCommentRange(comment.pos, comment.end);
|
|
146204
146344
|
}
|
|
146205
146345
|
if (positionShouldSnapToNode(sourceFile, pos, node)) {
|
|
146346
|
+
if (ts.isFunctionBody(node)
|
|
146347
|
+
&& ts.isFunctionLikeDeclaration(parentNode) && !ts.positionsAreOnSameLine(node.getStart(sourceFile), node.getEnd(), sourceFile)) {
|
|
146348
|
+
pushSelectionRange(node.getStart(sourceFile), node.getEnd());
|
|
146349
|
+
}
|
|
146206
146350
|
// 1. Blocks are effectively redundant with SyntaxLists.
|
|
146207
146351
|
// 2. TemplateSpans, along with the SyntaxLists containing them, are a somewhat unintuitive grouping
|
|
146208
146352
|
// of things that should be considered independently.
|
|
@@ -156901,7 +157045,7 @@ var ts;
|
|
|
156901
157045
|
var related = ts.find(diag.relatedInformation, function (related) { return related.code === ts.Diagnostics.This_type_parameter_might_need_an_extends_0_constraint.code; });
|
|
156902
157046
|
if (related === undefined || related.file === undefined || related.start === undefined || related.length === undefined)
|
|
156903
157047
|
return;
|
|
156904
|
-
var declaration = findAncestorMatchingSpan(related.file, ts.createTextSpan(related.start, related.length));
|
|
157048
|
+
var declaration = codefix.findAncestorMatchingSpan(related.file, ts.createTextSpan(related.start, related.length));
|
|
156905
157049
|
if (declaration === undefined)
|
|
156906
157050
|
return;
|
|
156907
157051
|
if (ts.isIdentifier(declaration) && ts.isTypeParameterDeclaration(declaration.parent)) {
|
|
@@ -156935,14 +157079,6 @@ var ts;
|
|
|
156935
157079
|
}
|
|
156936
157080
|
}
|
|
156937
157081
|
}
|
|
156938
|
-
function findAncestorMatchingSpan(sourceFile, span) {
|
|
156939
|
-
var end = ts.textSpanEnd(span);
|
|
156940
|
-
var token = ts.getTokenAtPosition(sourceFile, span.start);
|
|
156941
|
-
while (token.end < end) {
|
|
156942
|
-
token = token.parent;
|
|
156943
|
-
}
|
|
156944
|
-
return token;
|
|
156945
|
-
}
|
|
156946
157082
|
function tryGetConstraintFromDiagnosticMessage(messageText) {
|
|
156947
157083
|
var _a = ts.flattenDiagnosticMessageText(messageText, "\n", 0).match(/`extends (.*)`/) || [], _ = _a[0], constraint = _a[1];
|
|
156948
157084
|
return constraint;
|
|
@@ -157823,7 +157959,7 @@ var ts;
|
|
|
157823
157959
|
return { kind: InfoKind.TypeLikeDeclaration, token: token, call: call, modifierFlags: modifierFlags, parentDeclaration: declaration, declSourceFile: declSourceFile, isJSFile: isJSFile };
|
|
157824
157960
|
}
|
|
157825
157961
|
var enumDeclaration = ts.find(symbol.declarations, ts.isEnumDeclaration);
|
|
157826
|
-
if (enumDeclaration && !ts.isPrivateIdentifier(token) && !isSourceFileFromLibrary(program, enumDeclaration.getSourceFile())) {
|
|
157962
|
+
if (enumDeclaration && !(leftExpressionType.flags & 1056 /* TypeFlags.EnumLike */) && !ts.isPrivateIdentifier(token) && !isSourceFileFromLibrary(program, enumDeclaration.getSourceFile())) {
|
|
157827
157963
|
return { kind: InfoKind.Enum, token: token, parentDeclaration: enumDeclaration };
|
|
157828
157964
|
}
|
|
157829
157965
|
return undefined;
|
|
@@ -158488,6 +158624,63 @@ var ts;
|
|
|
158488
158624
|
})(ts || (ts = {}));
|
|
158489
158625
|
/* @internal */
|
|
158490
158626
|
var ts;
|
|
158627
|
+
(function (ts) {
|
|
158628
|
+
var codefix;
|
|
158629
|
+
(function (codefix) {
|
|
158630
|
+
var fixId = "fixNaNEquality";
|
|
158631
|
+
var errorCodes = [
|
|
158632
|
+
ts.Diagnostics.This_condition_will_always_return_0.code,
|
|
158633
|
+
];
|
|
158634
|
+
codefix.registerCodeFix({
|
|
158635
|
+
errorCodes: errorCodes,
|
|
158636
|
+
getCodeActions: function (context) {
|
|
158637
|
+
var sourceFile = context.sourceFile, span = context.span, program = context.program;
|
|
158638
|
+
var info = getInfo(program, sourceFile, span);
|
|
158639
|
+
if (info === undefined)
|
|
158640
|
+
return;
|
|
158641
|
+
var suggestion = info.suggestion, expression = info.expression, arg = info.arg;
|
|
158642
|
+
var changes = ts.textChanges.ChangeTracker.with(context, function (t) { return doChange(t, sourceFile, arg, expression); });
|
|
158643
|
+
return [codefix.createCodeFixAction(fixId, changes, [ts.Diagnostics.Use_0, suggestion], fixId, ts.Diagnostics.Use_Number_isNaN_in_all_conditions)];
|
|
158644
|
+
},
|
|
158645
|
+
fixIds: [fixId],
|
|
158646
|
+
getAllCodeActions: function (context) {
|
|
158647
|
+
return codefix.codeFixAll(context, errorCodes, function (changes, diag) {
|
|
158648
|
+
var info = getInfo(context.program, diag.file, ts.createTextSpan(diag.start, diag.length));
|
|
158649
|
+
if (info) {
|
|
158650
|
+
doChange(changes, diag.file, info.arg, info.expression);
|
|
158651
|
+
}
|
|
158652
|
+
});
|
|
158653
|
+
}
|
|
158654
|
+
});
|
|
158655
|
+
function getInfo(program, sourceFile, span) {
|
|
158656
|
+
var diag = ts.find(program.getSemanticDiagnostics(sourceFile), function (diag) { return diag.start === span.start && diag.length === span.length; });
|
|
158657
|
+
if (diag === undefined || diag.relatedInformation === undefined)
|
|
158658
|
+
return;
|
|
158659
|
+
var related = ts.find(diag.relatedInformation, function (related) { return related.code === ts.Diagnostics.Did_you_mean_0.code; });
|
|
158660
|
+
if (related === undefined || related.file === undefined || related.start === undefined || related.length === undefined)
|
|
158661
|
+
return;
|
|
158662
|
+
var token = codefix.findAncestorMatchingSpan(related.file, ts.createTextSpan(related.start, related.length));
|
|
158663
|
+
if (token === undefined)
|
|
158664
|
+
return;
|
|
158665
|
+
if (ts.isExpression(token) && ts.isBinaryExpression(token.parent)) {
|
|
158666
|
+
return { suggestion: getSuggestion(related.messageText), expression: token.parent, arg: token };
|
|
158667
|
+
}
|
|
158668
|
+
return undefined;
|
|
158669
|
+
}
|
|
158670
|
+
function doChange(changes, sourceFile, arg, expression) {
|
|
158671
|
+
var callExpression = ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier("Number"), ts.factory.createIdentifier("isNaN")), /*typeArguments*/ undefined, [arg]);
|
|
158672
|
+
var operator = expression.operatorToken.kind;
|
|
158673
|
+
changes.replaceNode(sourceFile, expression, operator === 37 /* SyntaxKind.ExclamationEqualsEqualsToken */ || operator === 35 /* SyntaxKind.ExclamationEqualsToken */
|
|
158674
|
+
? ts.factory.createPrefixUnaryExpression(53 /* SyntaxKind.ExclamationToken */, callExpression) : callExpression);
|
|
158675
|
+
}
|
|
158676
|
+
function getSuggestion(messageText) {
|
|
158677
|
+
var _a = ts.flattenDiagnosticMessageText(messageText, "\n", 0).match(/\'(.*)\'/) || [], _ = _a[0], suggestion = _a[1];
|
|
158678
|
+
return suggestion;
|
|
158679
|
+
}
|
|
158680
|
+
})(codefix = ts.codefix || (ts.codefix = {}));
|
|
158681
|
+
})(ts || (ts = {}));
|
|
158682
|
+
/* @internal */
|
|
158683
|
+
var ts;
|
|
158491
158684
|
(function (ts) {
|
|
158492
158685
|
var codefix;
|
|
158493
158686
|
(function (codefix) {
|
|
@@ -161205,6 +161398,15 @@ var ts;
|
|
|
161205
161398
|
symbols.forEach(function (s) { return importAdder.addImportFromExportedSymbol(s, /*isValidTypeOnlyUseSite*/ true); });
|
|
161206
161399
|
}
|
|
161207
161400
|
codefix.importSymbols = importSymbols;
|
|
161401
|
+
function findAncestorMatchingSpan(sourceFile, span) {
|
|
161402
|
+
var end = ts.textSpanEnd(span);
|
|
161403
|
+
var token = ts.getTokenAtPosition(sourceFile, span.start);
|
|
161404
|
+
while (token.end < end) {
|
|
161405
|
+
token = token.parent;
|
|
161406
|
+
}
|
|
161407
|
+
return token;
|
|
161408
|
+
}
|
|
161409
|
+
codefix.findAncestorMatchingSpan = findAncestorMatchingSpan;
|
|
161208
161410
|
})(codefix = ts.codefix || (ts.codefix = {}));
|
|
161209
161411
|
})(ts || (ts = {}));
|
|
161210
161412
|
/* @internal */
|