typescript 4.3.0-dev.20210508 → 4.3.2
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/tsc.js +49 -45
- package/lib/tsserver.js +104 -62
- package/lib/tsserverlibrary.js +104 -62
- package/lib/typescript.js +104 -62
- package/lib/typescriptServices.js +104 -62
- package/lib/typingsInstaller.js +53 -46
- package/package.json +2 -2
|
@@ -290,7 +290,7 @@ var ts;
|
|
|
290
290
|
// The following is baselined as a literal template type without intervention
|
|
291
291
|
/** The version of the TypeScript compiler release */
|
|
292
292
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
293
|
-
ts.version =
|
|
293
|
+
ts.version = "4.3.2";
|
|
294
294
|
/* @internal */
|
|
295
295
|
var Comparison;
|
|
296
296
|
(function (Comparison) {
|
|
@@ -7883,7 +7883,7 @@ var ts;
|
|
|
7883
7883
|
Identifier_expected: diag(1003, ts.DiagnosticCategory.Error, "Identifier_expected_1003", "Identifier expected."),
|
|
7884
7884
|
_0_expected: diag(1005, ts.DiagnosticCategory.Error, "_0_expected_1005", "'{0}' expected."),
|
|
7885
7885
|
A_file_cannot_have_a_reference_to_itself: diag(1006, ts.DiagnosticCategory.Error, "A_file_cannot_have_a_reference_to_itself_1006", "A file cannot have a reference to itself."),
|
|
7886
|
-
|
|
7886
|
+
The_parser_expected_to_find_a_to_match_the_token_here: diag(1007, ts.DiagnosticCategory.Error, "The_parser_expected_to_find_a_to_match_the_token_here_1007", "The parser expected to find a '}' to match the '{' token here."),
|
|
7887
7887
|
Trailing_comma_not_allowed: diag(1009, ts.DiagnosticCategory.Error, "Trailing_comma_not_allowed_1009", "Trailing comma not allowed."),
|
|
7888
7888
|
Asterisk_Slash_expected: diag(1010, ts.DiagnosticCategory.Error, "Asterisk_Slash_expected_1010", "'*/' expected."),
|
|
7889
7889
|
An_element_access_expression_should_take_an_argument: diag(1011, ts.DiagnosticCategory.Error, "An_element_access_expression_should_take_an_argument_1011", "An element access expression should take an argument."),
|
|
@@ -8806,7 +8806,7 @@ var ts;
|
|
|
8806
8806
|
This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class: diag(4112, ts.DiagnosticCategory.Error, "This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112", "This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class."),
|
|
8807
8807
|
This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0: diag(4113, ts.DiagnosticCategory.Error, "This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113", "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'."),
|
|
8808
8808
|
This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0: diag(4114, ts.DiagnosticCategory.Error, "This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114", "This member must have an 'override' modifier because it overrides a member in the base class '{0}'."),
|
|
8809
|
-
|
|
8809
|
+
This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0: diag(4115, ts.DiagnosticCategory.Error, "This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115", "This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'."),
|
|
8810
8810
|
This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0: diag(4116, ts.DiagnosticCategory.Error, "This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116", "This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'."),
|
|
8811
8811
|
The_current_host_does_not_support_the_0_option: diag(5001, ts.DiagnosticCategory.Error, "The_current_host_does_not_support_the_0_option_5001", "The current host does not support the '{0}' option."),
|
|
8812
8812
|
Cannot_find_the_common_subdirectory_path_for_the_input_files: diag(5009, ts.DiagnosticCategory.Error, "Cannot_find_the_common_subdirectory_path_for_the_input_files_5009", "Cannot find the common subdirectory path for the input files."),
|
|
@@ -30224,23 +30224,20 @@ var ts;
|
|
|
30224
30224
|
return inContext(32768 /* AwaitContext */);
|
|
30225
30225
|
}
|
|
30226
30226
|
function parseErrorAtCurrentToken(message, arg0) {
|
|
30227
|
-
|
|
30227
|
+
parseErrorAt(scanner.getTokenPos(), scanner.getTextPos(), message, arg0);
|
|
30228
30228
|
}
|
|
30229
30229
|
function parseErrorAtPosition(start, length, message, arg0) {
|
|
30230
30230
|
// Don't report another error if it would just be at the same position as the last error.
|
|
30231
30231
|
var lastError = ts.lastOrUndefined(parseDiagnostics);
|
|
30232
|
-
var result;
|
|
30233
30232
|
if (!lastError || start !== lastError.start) {
|
|
30234
|
-
|
|
30235
|
-
parseDiagnostics.push(result);
|
|
30233
|
+
parseDiagnostics.push(ts.createDetachedDiagnostic(fileName, start, length, message, arg0));
|
|
30236
30234
|
}
|
|
30237
30235
|
// Mark that we've encountered an error. We'll set an appropriate bit on the next
|
|
30238
30236
|
// node we finish so that it can't be reused incrementally.
|
|
30239
30237
|
parseErrorBeforeNextFinishedNode = true;
|
|
30240
|
-
return result;
|
|
30241
30238
|
}
|
|
30242
30239
|
function parseErrorAt(start, end, message, arg0) {
|
|
30243
|
-
|
|
30240
|
+
parseErrorAtPosition(start, end - start, message, arg0);
|
|
30244
30241
|
}
|
|
30245
30242
|
function parseErrorAtRange(range, message, arg0) {
|
|
30246
30243
|
parseErrorAt(range.pos, range.end, message, arg0);
|
|
@@ -30397,16 +30394,6 @@ var ts;
|
|
|
30397
30394
|
parseErrorAtCurrentToken(ts.Diagnostics._0_expected, ts.tokenToString(kind));
|
|
30398
30395
|
return false;
|
|
30399
30396
|
}
|
|
30400
|
-
function parseExpectedMatchingBrackets(openKind, closeKind, openPosition) {
|
|
30401
|
-
if (token() === closeKind) {
|
|
30402
|
-
nextToken();
|
|
30403
|
-
return;
|
|
30404
|
-
}
|
|
30405
|
-
var lastError = parseErrorAtCurrentToken(ts.Diagnostics._0_expected, ts.tokenToString(closeKind));
|
|
30406
|
-
if (lastError) {
|
|
30407
|
-
ts.addRelatedInfo(lastError, ts.createDetachedDiagnostic(fileName, openPosition, 1, ts.Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, ts.tokenToString(openKind), ts.tokenToString(closeKind)));
|
|
30408
|
-
}
|
|
30409
|
-
}
|
|
30410
30397
|
function parseOptional(t) {
|
|
30411
30398
|
if (token() === t) {
|
|
30412
30399
|
nextToken();
|
|
@@ -33774,11 +33761,10 @@ var ts;
|
|
|
33774
33761
|
}
|
|
33775
33762
|
function parseArrayLiteralExpression() {
|
|
33776
33763
|
var pos = getNodePos();
|
|
33777
|
-
var openBracketPosition = scanner.getTokenPos();
|
|
33778
33764
|
parseExpected(22 /* OpenBracketToken */);
|
|
33779
33765
|
var multiLine = scanner.hasPrecedingLineBreak();
|
|
33780
33766
|
var elements = parseDelimitedList(15 /* ArrayLiteralMembers */, parseArgumentOrArrayLiteralElement);
|
|
33781
|
-
|
|
33767
|
+
parseExpected(23 /* CloseBracketToken */);
|
|
33782
33768
|
return finishNode(factory.createArrayLiteralExpression(elements, multiLine), pos);
|
|
33783
33769
|
}
|
|
33784
33770
|
function parseObjectLiteralElement() {
|
|
@@ -33838,7 +33824,12 @@ var ts;
|
|
|
33838
33824
|
parseExpected(18 /* OpenBraceToken */);
|
|
33839
33825
|
var multiLine = scanner.hasPrecedingLineBreak();
|
|
33840
33826
|
var properties = parseDelimitedList(12 /* ObjectLiteralMembers */, parseObjectLiteralElement, /*considerSemicolonAsDelimiter*/ true);
|
|
33841
|
-
|
|
33827
|
+
if (!parseExpected(19 /* CloseBraceToken */)) {
|
|
33828
|
+
var lastError = ts.lastOrUndefined(parseDiagnostics);
|
|
33829
|
+
if (lastError && lastError.code === ts.Diagnostics._0_expected.code) {
|
|
33830
|
+
ts.addRelatedInfo(lastError, ts.createDetachedDiagnostic(fileName, openBracePosition, 1, ts.Diagnostics.The_parser_expected_to_find_a_to_match_the_token_here));
|
|
33831
|
+
}
|
|
33832
|
+
}
|
|
33842
33833
|
return finishNode(factory.createObjectLiteralExpression(properties, multiLine), pos);
|
|
33843
33834
|
}
|
|
33844
33835
|
function parseFunctionExpression() {
|
|
@@ -33912,7 +33903,12 @@ var ts;
|
|
|
33912
33903
|
if (parseExpected(18 /* OpenBraceToken */, diagnosticMessage) || ignoreMissingOpenBrace) {
|
|
33913
33904
|
var multiLine = scanner.hasPrecedingLineBreak();
|
|
33914
33905
|
var statements = parseList(1 /* BlockStatements */, parseStatement);
|
|
33915
|
-
|
|
33906
|
+
if (!parseExpected(19 /* CloseBraceToken */)) {
|
|
33907
|
+
var lastError = ts.lastOrUndefined(parseDiagnostics);
|
|
33908
|
+
if (lastError && lastError.code === ts.Diagnostics._0_expected.code) {
|
|
33909
|
+
ts.addRelatedInfo(lastError, ts.createDetachedDiagnostic(fileName, openBracePosition, 1, ts.Diagnostics.The_parser_expected_to_find_a_to_match_the_token_here));
|
|
33910
|
+
}
|
|
33911
|
+
}
|
|
33916
33912
|
var result = withJSDoc(finishNode(factory.createBlock(statements, multiLine), pos), hasJSDoc);
|
|
33917
33913
|
if (token() === 62 /* EqualsToken */) {
|
|
33918
33914
|
parseErrorAtCurrentToken(ts.Diagnostics.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_the_whole_assignment_in_parentheses);
|
|
@@ -33957,10 +33953,9 @@ var ts;
|
|
|
33957
33953
|
var pos = getNodePos();
|
|
33958
33954
|
var hasJSDoc = hasPrecedingJSDocComment();
|
|
33959
33955
|
parseExpected(98 /* IfKeyword */);
|
|
33960
|
-
var openParenPosition = scanner.getTokenPos();
|
|
33961
33956
|
parseExpected(20 /* OpenParenToken */);
|
|
33962
33957
|
var expression = allowInAnd(parseExpression);
|
|
33963
|
-
|
|
33958
|
+
parseExpected(21 /* CloseParenToken */);
|
|
33964
33959
|
var thenStatement = parseStatement();
|
|
33965
33960
|
var elseStatement = parseOptional(90 /* ElseKeyword */) ? parseStatement() : undefined;
|
|
33966
33961
|
return withJSDoc(finishNode(factory.createIfStatement(expression, thenStatement, elseStatement), pos), hasJSDoc);
|
|
@@ -33971,10 +33966,9 @@ var ts;
|
|
|
33971
33966
|
parseExpected(89 /* DoKeyword */);
|
|
33972
33967
|
var statement = parseStatement();
|
|
33973
33968
|
parseExpected(114 /* WhileKeyword */);
|
|
33974
|
-
var openParenPosition = scanner.getTokenPos();
|
|
33975
33969
|
parseExpected(20 /* OpenParenToken */);
|
|
33976
33970
|
var expression = allowInAnd(parseExpression);
|
|
33977
|
-
|
|
33971
|
+
parseExpected(21 /* CloseParenToken */);
|
|
33978
33972
|
// From: https://mail.mozilla.org/pipermail/es-discuss/2011-August/016188.html
|
|
33979
33973
|
// 157 min --- All allen at wirfs-brock.com CONF --- "do{;}while(false)false" prohibited in
|
|
33980
33974
|
// spec but allowed in consensus reality. Approved -- this is the de-facto standard whereby
|
|
@@ -33986,10 +33980,9 @@ var ts;
|
|
|
33986
33980
|
var pos = getNodePos();
|
|
33987
33981
|
var hasJSDoc = hasPrecedingJSDocComment();
|
|
33988
33982
|
parseExpected(114 /* WhileKeyword */);
|
|
33989
|
-
var openParenPosition = scanner.getTokenPos();
|
|
33990
33983
|
parseExpected(20 /* OpenParenToken */);
|
|
33991
33984
|
var expression = allowInAnd(parseExpression);
|
|
33992
|
-
|
|
33985
|
+
parseExpected(21 /* CloseParenToken */);
|
|
33993
33986
|
var statement = parseStatement();
|
|
33994
33987
|
return withJSDoc(finishNode(factory.createWhileStatement(expression, statement), pos), hasJSDoc);
|
|
33995
33988
|
}
|
|
@@ -34056,10 +34049,9 @@ var ts;
|
|
|
34056
34049
|
var pos = getNodePos();
|
|
34057
34050
|
var hasJSDoc = hasPrecedingJSDocComment();
|
|
34058
34051
|
parseExpected(115 /* WithKeyword */);
|
|
34059
|
-
var openParenPosition = scanner.getTokenPos();
|
|
34060
34052
|
parseExpected(20 /* OpenParenToken */);
|
|
34061
34053
|
var expression = allowInAnd(parseExpression);
|
|
34062
|
-
|
|
34054
|
+
parseExpected(21 /* CloseParenToken */);
|
|
34063
34055
|
var statement = doInsideOfContext(16777216 /* InWithStatement */, parseStatement);
|
|
34064
34056
|
return withJSDoc(finishNode(factory.createWithStatement(expression, statement), pos), hasJSDoc);
|
|
34065
34057
|
}
|
|
@@ -36050,7 +36042,8 @@ var ts;
|
|
|
36050
36042
|
hasChildren = true;
|
|
36051
36043
|
if (child.kind === 333 /* JSDocTypeTag */) {
|
|
36052
36044
|
if (childTypeTag) {
|
|
36053
|
-
|
|
36045
|
+
parseErrorAtCurrentToken(ts.Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);
|
|
36046
|
+
var lastError = ts.lastOrUndefined(parseDiagnostics);
|
|
36054
36047
|
if (lastError) {
|
|
36055
36048
|
ts.addRelatedInfo(lastError, ts.createDetachedDiagnostic(fileName, 0, 0, ts.Diagnostics.The_tag_was_first_specified_here));
|
|
36056
36049
|
}
|
|
@@ -56211,6 +56204,10 @@ var ts;
|
|
|
56211
56204
|
var indexSymbol = symbol && getIndexSymbol(symbol);
|
|
56212
56205
|
return indexSymbol && getIndexDeclarationOfIndexSymbol(indexSymbol, kind);
|
|
56213
56206
|
}
|
|
56207
|
+
function getIndexDeclarationOfSymbolTable(symbolTable, kind) {
|
|
56208
|
+
var indexSymbol = symbolTable && getIndexSymbolFromSymbolTable(symbolTable);
|
|
56209
|
+
return indexSymbol && getIndexDeclarationOfIndexSymbol(indexSymbol, kind);
|
|
56210
|
+
}
|
|
56214
56211
|
function getIndexDeclarationOfIndexSymbol(indexSymbol, kind) {
|
|
56215
56212
|
var syntaxKind = kind === 1 /* Number */ ? 144 /* NumberKeyword */ : 147 /* StringKeyword */;
|
|
56216
56213
|
if (indexSymbol === null || indexSymbol === void 0 ? void 0 : indexSymbol.declarations) {
|
|
@@ -63419,14 +63416,17 @@ var ts;
|
|
|
63419
63416
|
return type.flags & 32768 /* Undefined */ ? type : getUnionType([type, undefinedType]);
|
|
63420
63417
|
}
|
|
63421
63418
|
function getGlobalNonNullableTypeInstantiation(type) {
|
|
63419
|
+
// First reduce away any constituents that are assignable to 'undefined' or 'null'. This not only eliminates
|
|
63420
|
+
// 'undefined' and 'null', but also higher-order types such as a type parameter 'U extends undefined | null'
|
|
63421
|
+
// that isn't eliminated by a NonNullable<T> instantiation.
|
|
63422
|
+
var reducedType = getTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);
|
|
63422
63423
|
if (!deferredGlobalNonNullableTypeAlias) {
|
|
63423
63424
|
deferredGlobalNonNullableTypeAlias = getGlobalSymbol("NonNullable", 524288 /* TypeAlias */, /*diagnostic*/ undefined) || unknownSymbol;
|
|
63424
63425
|
}
|
|
63425
|
-
//
|
|
63426
|
-
|
|
63427
|
-
|
|
63428
|
-
|
|
63429
|
-
return getTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */); // Type alias unavailable, fall back to non-higher-order behavior
|
|
63426
|
+
// If the NonNullable<T> type is available, return an instantiation. Otherwise just return the reduced type.
|
|
63427
|
+
return deferredGlobalNonNullableTypeAlias !== unknownSymbol ?
|
|
63428
|
+
getTypeAliasInstantiation(deferredGlobalNonNullableTypeAlias, [reducedType]) :
|
|
63429
|
+
reducedType;
|
|
63430
63430
|
}
|
|
63431
63431
|
function getNonNullableType(type) {
|
|
63432
63432
|
return strictNullChecks ? getGlobalNonNullableTypeInstantiation(type) : type;
|
|
@@ -67014,7 +67014,7 @@ var ts;
|
|
|
67014
67014
|
!isGenericIndexType(getTypeOfExpression(parent.argumentExpression));
|
|
67015
67015
|
}
|
|
67016
67016
|
function isGenericTypeWithUnionConstraint(type) {
|
|
67017
|
-
return !!(type.flags & 465829888 /* Instantiable */ && getBaseConstraintOrType(type).flags & 1048576 /* Union */);
|
|
67017
|
+
return !!(type.flags & 465829888 /* Instantiable */ && getBaseConstraintOrType(type).flags & (98304 /* Nullable */ | 1048576 /* Union */));
|
|
67018
67018
|
}
|
|
67019
67019
|
function containsGenericType(type) {
|
|
67020
67020
|
return !!(type.flags & 465829888 /* Instantiable */ || type.flags & 3145728 /* UnionOrIntersection */ && ts.some(type.types, containsGenericType));
|
|
@@ -78488,21 +78488,24 @@ var ts;
|
|
|
78488
78488
|
checkBlock(node.finallyBlock);
|
|
78489
78489
|
}
|
|
78490
78490
|
}
|
|
78491
|
-
function checkIndexConstraints(type) {
|
|
78492
|
-
var
|
|
78493
|
-
var
|
|
78491
|
+
function checkIndexConstraints(type, isStatic) {
|
|
78492
|
+
var _a, _b, _c, _d;
|
|
78493
|
+
var declaredNumberIndexer = getIndexDeclarationOfSymbolTable(isStatic ? (_a = type.symbol) === null || _a === void 0 ? void 0 : _a.exports : (_b = type.symbol) === null || _b === void 0 ? void 0 : _b.members, 1 /* Number */);
|
|
78494
|
+
var declaredStringIndexer = getIndexDeclarationOfSymbolTable(isStatic ? (_c = type.symbol) === null || _c === void 0 ? void 0 : _c.exports : (_d = type.symbol) === null || _d === void 0 ? void 0 : _d.members, 0 /* String */);
|
|
78494
78495
|
var stringIndexType = getIndexTypeOfType(type, 0 /* String */);
|
|
78495
78496
|
var numberIndexType = getIndexTypeOfType(type, 1 /* Number */);
|
|
78496
78497
|
if (stringIndexType || numberIndexType) {
|
|
78497
78498
|
ts.forEach(getPropertiesOfObjectType(type), function (prop) {
|
|
78499
|
+
if (isStatic && prop.flags & 4194304 /* Prototype */)
|
|
78500
|
+
return;
|
|
78498
78501
|
var propType = getTypeOfSymbol(prop);
|
|
78499
78502
|
checkIndexConstraintForProperty(prop, propType, type, declaredStringIndexer, stringIndexType, 0 /* String */);
|
|
78500
78503
|
checkIndexConstraintForProperty(prop, propType, type, declaredNumberIndexer, numberIndexType, 1 /* Number */);
|
|
78501
78504
|
});
|
|
78502
78505
|
var classDeclaration = type.symbol.valueDeclaration;
|
|
78503
78506
|
if (ts.getObjectFlags(type) & 1 /* Class */ && classDeclaration && ts.isClassLike(classDeclaration)) {
|
|
78504
|
-
for (var _i = 0,
|
|
78505
|
-
var member =
|
|
78507
|
+
for (var _i = 0, _e = classDeclaration.members; _i < _e.length; _i++) {
|
|
78508
|
+
var member = _e[_i];
|
|
78506
78509
|
// Only process instance properties with computed names here.
|
|
78507
78510
|
// Static properties cannot be in conflict with indexers,
|
|
78508
78511
|
// and properties with literal names were already checked.
|
|
@@ -78832,7 +78835,7 @@ var ts;
|
|
|
78832
78835
|
}
|
|
78833
78836
|
if (produceDiagnostics) {
|
|
78834
78837
|
checkIndexConstraints(type);
|
|
78835
|
-
checkIndexConstraints(staticType);
|
|
78838
|
+
checkIndexConstraints(staticType, /*isStatic*/ true);
|
|
78836
78839
|
checkTypeForDuplicateIndexSignatures(node);
|
|
78837
78840
|
checkPropertyInitialization(node);
|
|
78838
78841
|
}
|
|
@@ -78883,7 +78886,7 @@ var ts;
|
|
|
78883
78886
|
}
|
|
78884
78887
|
if (!baseHasAbstract) {
|
|
78885
78888
|
var diag = memberIsParameterProperty ?
|
|
78886
|
-
ts.Diagnostics.
|
|
78889
|
+
ts.Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0 :
|
|
78887
78890
|
ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0;
|
|
78888
78891
|
error(member, diag, baseClassName);
|
|
78889
78892
|
}
|
|
@@ -88891,10 +88894,11 @@ var ts;
|
|
|
88891
88894
|
return ts.visitEachChild(node, visitor, context);
|
|
88892
88895
|
}
|
|
88893
88896
|
var staticProperties = ts.getProperties(node, /*requireInitializer*/ false, /*isStatic*/ true);
|
|
88897
|
+
var pendingPrivateStateAssignment;
|
|
88894
88898
|
if (shouldTransformPrivateElements && ts.some(node.members, function (m) { return ts.hasStaticModifier(m) && !!m.name && ts.isPrivateIdentifier(m.name); })) {
|
|
88895
88899
|
var temp = factory.createTempVariable(hoistVariableDeclaration, /* reservedInNestedScopes */ true);
|
|
88896
88900
|
getPrivateIdentifierEnvironment().classConstructor = factory.cloneNode(temp);
|
|
88897
|
-
|
|
88901
|
+
pendingPrivateStateAssignment = factory.createAssignment(temp, factory.getInternalName(node));
|
|
88898
88902
|
}
|
|
88899
88903
|
var extendsClauseElement = ts.getEffectiveBaseTypeNode(node);
|
|
88900
88904
|
var isDerivedClass = !!(extendsClauseElement && ts.skipOuterExpressions(extendsClauseElement.expression).kind !== 103 /* NullKeyword */);
|
|
@@ -88903,6 +88907,9 @@ var ts;
|
|
|
88903
88907
|
/*decorators*/ undefined, node.modifiers, node.name,
|
|
88904
88908
|
/*typeParameters*/ undefined, ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause), transformClassMembers(node, isDerivedClass))
|
|
88905
88909
|
];
|
|
88910
|
+
if (pendingPrivateStateAssignment) {
|
|
88911
|
+
getPendingExpressions().unshift(pendingPrivateStateAssignment);
|
|
88912
|
+
}
|
|
88906
88913
|
// Write any pending expressions from elided or moved computed property names
|
|
88907
88914
|
if (ts.some(pendingExpressions)) {
|
|
88908
88915
|
statements.push(factory.createExpressionStatement(factory.inlineExpressions(pendingExpressions)));
|
|
@@ -123737,6 +123744,8 @@ var ts;
|
|
|
123737
123744
|
return jsdocCompletionInfo(ts.JsDoc.getJSDocTagCompletions());
|
|
123738
123745
|
case 3 /* JsDocParameterName */:
|
|
123739
123746
|
return jsdocCompletionInfo(ts.JsDoc.getJSDocParameterNameCompletions(completionData.tag));
|
|
123747
|
+
case 4 /* Keywords */:
|
|
123748
|
+
return specificKeywordCompletionInfo(completionData.keywords);
|
|
123740
123749
|
default:
|
|
123741
123750
|
return ts.Debug.assertNever(completionData);
|
|
123742
123751
|
}
|
|
@@ -123745,6 +123754,19 @@ var ts;
|
|
|
123745
123754
|
function jsdocCompletionInfo(entries) {
|
|
123746
123755
|
return { isGlobalCompletion: false, isMemberCompletion: false, isNewIdentifierLocation: false, entries: entries };
|
|
123747
123756
|
}
|
|
123757
|
+
function specificKeywordCompletionInfo(keywords) {
|
|
123758
|
+
return {
|
|
123759
|
+
isGlobalCompletion: false,
|
|
123760
|
+
isMemberCompletion: false,
|
|
123761
|
+
isNewIdentifierLocation: false,
|
|
123762
|
+
entries: keywords.map(function (k) { return ({
|
|
123763
|
+
name: ts.tokenToString(k),
|
|
123764
|
+
kind: "keyword" /* keyword */,
|
|
123765
|
+
kindModifiers: "" /* none */,
|
|
123766
|
+
sortText: SortText.GlobalsOrKeywords,
|
|
123767
|
+
}); }),
|
|
123768
|
+
};
|
|
123769
|
+
}
|
|
123748
123770
|
function getOptionalReplacementSpan(location) {
|
|
123749
123771
|
// StringLiteralLike locations are handled separately in stringCompletions.ts
|
|
123750
123772
|
return (location === null || location === void 0 ? void 0 : location.kind) === 78 /* Identifier */ ? ts.createTextSpanFromNode(location) : undefined;
|
|
@@ -124169,6 +124191,8 @@ var ts;
|
|
|
124169
124191
|
return ts.JsDoc.getJSDocTagCompletionDetails(name);
|
|
124170
124192
|
case 3 /* JsDocParameterName */:
|
|
124171
124193
|
return ts.JsDoc.getJSDocParameterNameCompletionDetails(name);
|
|
124194
|
+
case 4 /* Keywords */:
|
|
124195
|
+
return request.keywords.indexOf(ts.stringToToken(name)) > -1 ? createSimpleDetails(name, "keyword" /* keyword */, ts.SymbolDisplayPartKind.keyword) : undefined;
|
|
124172
124196
|
default:
|
|
124173
124197
|
return ts.Debug.assertNever(request);
|
|
124174
124198
|
}
|
|
@@ -124227,6 +124251,7 @@ var ts;
|
|
|
124227
124251
|
CompletionDataKind[CompletionDataKind["JsDocTagName"] = 1] = "JsDocTagName";
|
|
124228
124252
|
CompletionDataKind[CompletionDataKind["JsDocTag"] = 2] = "JsDocTag";
|
|
124229
124253
|
CompletionDataKind[CompletionDataKind["JsDocParameterName"] = 3] = "JsDocParameterName";
|
|
124254
|
+
CompletionDataKind[CompletionDataKind["Keywords"] = 4] = "Keywords";
|
|
124230
124255
|
})(CompletionDataKind || (CompletionDataKind = {}));
|
|
124231
124256
|
var CompletionKind;
|
|
124232
124257
|
(function (CompletionKind) {
|
|
@@ -124387,13 +124412,17 @@ var ts;
|
|
|
124387
124412
|
var importCompletionNode;
|
|
124388
124413
|
var location = ts.getTouchingPropertyName(sourceFile, position);
|
|
124389
124414
|
if (contextToken) {
|
|
124415
|
+
var importCompletionCandidate = getImportCompletionNode(contextToken);
|
|
124416
|
+
if (importCompletionCandidate === 153 /* FromKeyword */) {
|
|
124417
|
+
return { kind: 4 /* Keywords */, keywords: [153 /* FromKeyword */] };
|
|
124418
|
+
}
|
|
124390
124419
|
// Import statement completions use `insertText`, and also require the `data` property of `CompletionEntryIdentifier`
|
|
124391
124420
|
// added in TypeScript 4.3 to be sent back from the client during `getCompletionEntryDetails`. Since this feature
|
|
124392
124421
|
// is not backward compatible with older clients, the language service defaults to disabling it, allowing newer clients
|
|
124393
124422
|
// to opt in with the `includeCompletionsForImportStatements` user preference.
|
|
124394
|
-
|
|
124395
|
-
|
|
124396
|
-
|
|
124423
|
+
if (importCompletionCandidate && preferences.includeCompletionsForImportStatements && preferences.includeCompletionsWithInsertText) {
|
|
124424
|
+
importCompletionNode = importCompletionCandidate;
|
|
124425
|
+
}
|
|
124397
124426
|
// Bail out if this is a known invalid completion location
|
|
124398
124427
|
if (!importCompletionNode && isCompletionListBlocker(contextToken)) {
|
|
124399
124428
|
log("Returning an empty list because completion was requested in an invalid position.");
|
|
@@ -126147,16 +126176,20 @@ var ts;
|
|
|
126147
126176
|
}
|
|
126148
126177
|
function getImportCompletionNode(contextToken) {
|
|
126149
126178
|
var candidate = getCandidate();
|
|
126150
|
-
return candidate && ts.rangeIsOnSingleLine(candidate, candidate.getSourceFile()) ? candidate : undefined;
|
|
126179
|
+
return candidate === 153 /* FromKeyword */ || candidate && ts.rangeIsOnSingleLine(candidate, candidate.getSourceFile()) ? candidate : undefined;
|
|
126151
126180
|
function getCandidate() {
|
|
126152
126181
|
var parent = contextToken.parent;
|
|
126153
126182
|
if (ts.isImportEqualsDeclaration(parent)) {
|
|
126154
126183
|
return isModuleSpecifierMissingOrEmpty(parent.moduleReference) ? parent : undefined;
|
|
126155
126184
|
}
|
|
126156
126185
|
if (ts.isNamedImports(parent) || ts.isNamespaceImport(parent)) {
|
|
126157
|
-
|
|
126158
|
-
|
|
126159
|
-
|
|
126186
|
+
if (isModuleSpecifierMissingOrEmpty(parent.parent.parent.moduleSpecifier) && (ts.isNamespaceImport(parent) || parent.elements.length < 2) && !parent.parent.name) {
|
|
126187
|
+
// At `import { ... } |` or `import * as Foo |`, the only possible completion is `from`
|
|
126188
|
+
return contextToken.kind === 19 /* CloseBraceToken */ || contextToken.kind === 78 /* Identifier */
|
|
126189
|
+
? 153 /* FromKeyword */
|
|
126190
|
+
: parent.parent.parent;
|
|
126191
|
+
}
|
|
126192
|
+
return undefined;
|
|
126160
126193
|
}
|
|
126161
126194
|
if (ts.isImportKeyword(contextToken) && ts.isSourceFile(parent)) {
|
|
126162
126195
|
// A lone import keyword with nothing following it does not parse as a statement at all
|
|
@@ -143251,7 +143284,8 @@ var ts;
|
|
|
143251
143284
|
ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code,
|
|
143252
143285
|
ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code,
|
|
143253
143286
|
ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code,
|
|
143254
|
-
ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code
|
|
143287
|
+
ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code,
|
|
143288
|
+
ts.Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code
|
|
143255
143289
|
];
|
|
143256
143290
|
var errorCodeFixIdMap = (_a = {},
|
|
143257
143291
|
_a[ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code] = [
|
|
@@ -143260,6 +143294,9 @@ var ts;
|
|
|
143260
143294
|
_a[ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code] = [
|
|
143261
143295
|
ts.Diagnostics.Remove_override_modifier, fixRemoveOverrideId, ts.Diagnostics.Remove_all_unnecessary_override_modifiers
|
|
143262
143296
|
],
|
|
143297
|
+
_a[ts.Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code] = [
|
|
143298
|
+
ts.Diagnostics.Add_override_modifier, fixAddOverrideId, ts.Diagnostics.Add_all_missing_override_modifiers,
|
|
143299
|
+
],
|
|
143263
143300
|
_a[ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code] = [
|
|
143264
143301
|
ts.Diagnostics.Add_override_modifier, fixAddOverrideId, ts.Diagnostics.Remove_all_unnecessary_override_modifiers
|
|
143265
143302
|
],
|
|
@@ -143298,6 +143335,7 @@ var ts;
|
|
|
143298
143335
|
switch (errorCode) {
|
|
143299
143336
|
case ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code:
|
|
143300
143337
|
case ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code:
|
|
143338
|
+
case ts.Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code:
|
|
143301
143339
|
return doAddOverrideModifierChange(changeTracker, context.sourceFile, pos);
|
|
143302
143340
|
case ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code:
|
|
143303
143341
|
case ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code:
|
|
@@ -143307,7 +143345,7 @@ var ts;
|
|
|
143307
143345
|
}
|
|
143308
143346
|
}
|
|
143309
143347
|
function doAddOverrideModifierChange(changeTracker, sourceFile, pos) {
|
|
143310
|
-
var classElement =
|
|
143348
|
+
var classElement = findContainerClassElementLike(sourceFile, pos);
|
|
143311
143349
|
var modifiers = classElement.modifiers || ts.emptyArray;
|
|
143312
143350
|
var staticModifier = ts.find(modifiers, ts.isStaticModifier);
|
|
143313
143351
|
var accessibilityModifier = ts.find(modifiers, function (m) { return ts.isAccessibilityModifier(m.kind); });
|
|
@@ -143318,12 +143356,12 @@ var ts;
|
|
|
143318
143356
|
changeTracker.insertModifierAt(sourceFile, modifierPos, 156 /* OverrideKeyword */, options);
|
|
143319
143357
|
}
|
|
143320
143358
|
function doRemoveOverrideModifierChange(changeTracker, sourceFile, pos) {
|
|
143321
|
-
var classElement =
|
|
143359
|
+
var classElement = findContainerClassElementLike(sourceFile, pos);
|
|
143322
143360
|
var overrideModifier = classElement.modifiers && ts.find(classElement.modifiers, function (modifier) { return modifier.kind === 156 /* OverrideKeyword */; });
|
|
143323
143361
|
ts.Debug.assertIsDefined(overrideModifier);
|
|
143324
143362
|
changeTracker.deleteModifier(sourceFile, overrideModifier);
|
|
143325
143363
|
}
|
|
143326
|
-
function
|
|
143364
|
+
function isClassElementLikeHasJSDoc(node) {
|
|
143327
143365
|
switch (node.kind) {
|
|
143328
143366
|
case 167 /* Constructor */:
|
|
143329
143367
|
case 164 /* PropertyDeclaration */:
|
|
@@ -143331,18 +143369,20 @@ var ts;
|
|
|
143331
143369
|
case 168 /* GetAccessor */:
|
|
143332
143370
|
case 169 /* SetAccessor */:
|
|
143333
143371
|
return true;
|
|
143372
|
+
case 161 /* Parameter */:
|
|
143373
|
+
return ts.isParameterPropertyDeclaration(node, node.parent);
|
|
143334
143374
|
default:
|
|
143335
143375
|
return false;
|
|
143336
143376
|
}
|
|
143337
143377
|
}
|
|
143338
|
-
function
|
|
143378
|
+
function findContainerClassElementLike(sourceFile, pos) {
|
|
143339
143379
|
var token = ts.getTokenAtPosition(sourceFile, pos);
|
|
143340
143380
|
var classElement = ts.findAncestor(token, function (node) {
|
|
143341
143381
|
if (ts.isClassLike(node))
|
|
143342
143382
|
return "quit";
|
|
143343
|
-
return
|
|
143383
|
+
return isClassElementLikeHasJSDoc(node);
|
|
143344
143384
|
});
|
|
143345
|
-
ts.Debug.assert(classElement &&
|
|
143385
|
+
ts.Debug.assert(classElement && isClassElementLikeHasJSDoc(classElement));
|
|
143346
143386
|
return classElement;
|
|
143347
143387
|
}
|
|
143348
143388
|
})(codefix = ts.codefix || (ts.codefix = {}));
|
|
@@ -148133,8 +148173,10 @@ var ts;
|
|
|
148133
148173
|
}
|
|
148134
148174
|
if (context.preferences.provideRefactorNotApplicableReason) {
|
|
148135
148175
|
return [
|
|
148136
|
-
{ name: refactorName, description: namespaceToNamedAction.description,
|
|
148137
|
-
|
|
148176
|
+
{ name: refactorName, description: namespaceToNamedAction.description,
|
|
148177
|
+
actions: [__assign(__assign({}, namespaceToNamedAction), { notApplicableReason: info.error })] },
|
|
148178
|
+
{ name: refactorName, description: namedToNamespaceAction.description,
|
|
148179
|
+
actions: [__assign(__assign({}, namedToNamespaceAction), { notApplicableReason: info.error })] }
|
|
148138
148180
|
];
|
|
148139
148181
|
}
|
|
148140
148182
|
return ts.emptyArray;
|