typescript 4.7.0-dev.20220314 → 4.7.0-dev.20220317
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/lib.es5.d.ts +1 -1
- package/lib/tsc.js +69 -47
- package/lib/tsserver.js +125 -61
- package/lib/tsserverlibrary.js +125 -61
- package/lib/typescript.js +125 -61
- package/lib/typescriptServices.js +125 -61
- package/lib/typingsInstaller.js +75 -48
- package/package.json +1 -1
|
@@ -294,7 +294,7 @@ var ts;
|
|
|
294
294
|
// The following is baselined as a literal template type without intervention
|
|
295
295
|
/** The version of the TypeScript compiler release */
|
|
296
296
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
297
|
-
ts.version = ts.versionMajorMinor + ".0-dev.
|
|
297
|
+
ts.version = ts.versionMajorMinor + ".0-dev.20220317";
|
|
298
298
|
/* @internal */
|
|
299
299
|
var Comparison;
|
|
300
300
|
(function (Comparison) {
|
|
@@ -8228,7 +8228,7 @@ var ts;
|
|
|
8228
8228
|
Identifier_expected: diag(1003, ts.DiagnosticCategory.Error, "Identifier_expected_1003", "Identifier expected."),
|
|
8229
8229
|
_0_expected: diag(1005, ts.DiagnosticCategory.Error, "_0_expected_1005", "'{0}' expected."),
|
|
8230
8230
|
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."),
|
|
8231
|
-
|
|
8231
|
+
The_parser_expected_to_find_a_1_to_match_the_0_token_here: diag(1007, ts.DiagnosticCategory.Error, "The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007", "The parser expected to find a '{1}' to match the '{0}' token here."),
|
|
8232
8232
|
Trailing_comma_not_allowed: diag(1009, ts.DiagnosticCategory.Error, "Trailing_comma_not_allowed_1009", "Trailing comma not allowed."),
|
|
8233
8233
|
Asterisk_Slash_expected: diag(1010, ts.DiagnosticCategory.Error, "Asterisk_Slash_expected_1010", "'*/' expected."),
|
|
8234
8234
|
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."),
|
|
@@ -31620,20 +31620,23 @@ var ts;
|
|
|
31620
31620
|
return inContext(32768 /* AwaitContext */);
|
|
31621
31621
|
}
|
|
31622
31622
|
function parseErrorAtCurrentToken(message, arg0) {
|
|
31623
|
-
parseErrorAt(scanner.getTokenPos(), scanner.getTextPos(), message, arg0);
|
|
31623
|
+
return parseErrorAt(scanner.getTokenPos(), scanner.getTextPos(), message, arg0);
|
|
31624
31624
|
}
|
|
31625
31625
|
function parseErrorAtPosition(start, length, message, arg0) {
|
|
31626
31626
|
// Don't report another error if it would just be at the same position as the last error.
|
|
31627
31627
|
var lastError = ts.lastOrUndefined(parseDiagnostics);
|
|
31628
|
+
var result;
|
|
31628
31629
|
if (!lastError || start !== lastError.start) {
|
|
31629
|
-
|
|
31630
|
+
result = ts.createDetachedDiagnostic(fileName, start, length, message, arg0);
|
|
31631
|
+
parseDiagnostics.push(result);
|
|
31630
31632
|
}
|
|
31631
31633
|
// Mark that we've encountered an error. We'll set an appropriate bit on the next
|
|
31632
31634
|
// node we finish so that it can't be reused incrementally.
|
|
31633
31635
|
parseErrorBeforeNextFinishedNode = true;
|
|
31636
|
+
return result;
|
|
31634
31637
|
}
|
|
31635
31638
|
function parseErrorAt(start, end, message, arg0) {
|
|
31636
|
-
parseErrorAtPosition(start, end - start, message, arg0);
|
|
31639
|
+
return parseErrorAtPosition(start, end - start, message, arg0);
|
|
31637
31640
|
}
|
|
31638
31641
|
function parseErrorAtRange(range, message, arg0) {
|
|
31639
31642
|
parseErrorAt(range.pos, range.end, message, arg0);
|
|
@@ -31906,6 +31909,19 @@ var ts;
|
|
|
31906
31909
|
parseErrorAtCurrentToken(ts.Diagnostics._0_expected, ts.tokenToString(kind));
|
|
31907
31910
|
return false;
|
|
31908
31911
|
}
|
|
31912
|
+
function parseExpectedMatchingBrackets(openKind, closeKind, openParsed, openPosition) {
|
|
31913
|
+
if (token() === closeKind) {
|
|
31914
|
+
nextToken();
|
|
31915
|
+
return;
|
|
31916
|
+
}
|
|
31917
|
+
var lastError = parseErrorAtCurrentToken(ts.Diagnostics._0_expected, ts.tokenToString(closeKind));
|
|
31918
|
+
if (!openParsed) {
|
|
31919
|
+
return;
|
|
31920
|
+
}
|
|
31921
|
+
if (lastError) {
|
|
31922
|
+
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)));
|
|
31923
|
+
}
|
|
31924
|
+
}
|
|
31909
31925
|
function parseOptional(t) {
|
|
31910
31926
|
if (token() === t) {
|
|
31911
31927
|
nextToken();
|
|
@@ -33554,7 +33570,7 @@ var ts;
|
|
|
33554
33570
|
if (!parseExpected(19 /* CloseBraceToken */)) {
|
|
33555
33571
|
var lastError = ts.lastOrUndefined(parseDiagnostics);
|
|
33556
33572
|
if (lastError && lastError.code === ts.Diagnostics._0_expected.code) {
|
|
33557
|
-
ts.addRelatedInfo(lastError, ts.createDetachedDiagnostic(fileName, openBracePosition, 1, ts.Diagnostics.
|
|
33573
|
+
ts.addRelatedInfo(lastError, ts.createDetachedDiagnostic(fileName, openBracePosition, 1, ts.Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, "{", "}"));
|
|
33558
33574
|
}
|
|
33559
33575
|
}
|
|
33560
33576
|
return finishNode(factory.createImportTypeAssertionContainer(clause, multiLine), pos);
|
|
@@ -35364,10 +35380,11 @@ var ts;
|
|
|
35364
35380
|
}
|
|
35365
35381
|
function parseArrayLiteralExpression() {
|
|
35366
35382
|
var pos = getNodePos();
|
|
35367
|
-
|
|
35383
|
+
var openBracketPosition = scanner.getTokenPos();
|
|
35384
|
+
var openBracketParsed = parseExpected(22 /* OpenBracketToken */);
|
|
35368
35385
|
var multiLine = scanner.hasPrecedingLineBreak();
|
|
35369
35386
|
var elements = parseDelimitedList(15 /* ArrayLiteralMembers */, parseArgumentOrArrayLiteralElement);
|
|
35370
|
-
|
|
35387
|
+
parseExpectedMatchingBrackets(22 /* OpenBracketToken */, 23 /* CloseBracketToken */, openBracketParsed, openBracketPosition);
|
|
35371
35388
|
return finishNode(factory.createArrayLiteralExpression(elements, multiLine), pos);
|
|
35372
35389
|
}
|
|
35373
35390
|
function parseObjectLiteralElement() {
|
|
@@ -35424,15 +35441,10 @@ var ts;
|
|
|
35424
35441
|
function parseObjectLiteralExpression() {
|
|
35425
35442
|
var pos = getNodePos();
|
|
35426
35443
|
var openBracePosition = scanner.getTokenPos();
|
|
35427
|
-
parseExpected(18 /* OpenBraceToken */);
|
|
35444
|
+
var openBraceParsed = parseExpected(18 /* OpenBraceToken */);
|
|
35428
35445
|
var multiLine = scanner.hasPrecedingLineBreak();
|
|
35429
35446
|
var properties = parseDelimitedList(12 /* ObjectLiteralMembers */, parseObjectLiteralElement, /*considerSemicolonAsDelimiter*/ true);
|
|
35430
|
-
|
|
35431
|
-
var lastError = ts.lastOrUndefined(parseDiagnostics);
|
|
35432
|
-
if (lastError && lastError.code === ts.Diagnostics._0_expected.code) {
|
|
35433
|
-
ts.addRelatedInfo(lastError, ts.createDetachedDiagnostic(fileName, openBracePosition, 1, ts.Diagnostics.The_parser_expected_to_find_a_to_match_the_token_here));
|
|
35434
|
-
}
|
|
35435
|
-
}
|
|
35447
|
+
parseExpectedMatchingBrackets(18 /* OpenBraceToken */, 19 /* CloseBraceToken */, openBraceParsed, openBracePosition);
|
|
35436
35448
|
return finishNode(factory.createObjectLiteralExpression(properties, multiLine), pos);
|
|
35437
35449
|
}
|
|
35438
35450
|
function parseFunctionExpression() {
|
|
@@ -35488,15 +35500,11 @@ var ts;
|
|
|
35488
35500
|
var pos = getNodePos();
|
|
35489
35501
|
var hasJSDoc = hasPrecedingJSDocComment();
|
|
35490
35502
|
var openBracePosition = scanner.getTokenPos();
|
|
35491
|
-
|
|
35503
|
+
var openBraceParsed = parseExpected(18 /* OpenBraceToken */, diagnosticMessage);
|
|
35504
|
+
if (openBraceParsed || ignoreMissingOpenBrace) {
|
|
35492
35505
|
var multiLine = scanner.hasPrecedingLineBreak();
|
|
35493
35506
|
var statements = parseList(1 /* BlockStatements */, parseStatement);
|
|
35494
|
-
|
|
35495
|
-
var lastError = ts.lastOrUndefined(parseDiagnostics);
|
|
35496
|
-
if (lastError && lastError.code === ts.Diagnostics._0_expected.code) {
|
|
35497
|
-
ts.addRelatedInfo(lastError, ts.createDetachedDiagnostic(fileName, openBracePosition, 1, ts.Diagnostics.The_parser_expected_to_find_a_to_match_the_token_here));
|
|
35498
|
-
}
|
|
35499
|
-
}
|
|
35507
|
+
parseExpectedMatchingBrackets(18 /* OpenBraceToken */, 19 /* CloseBraceToken */, openBraceParsed, openBracePosition);
|
|
35500
35508
|
var result = withJSDoc(finishNode(factory.createBlock(statements, multiLine), pos), hasJSDoc);
|
|
35501
35509
|
if (token() === 63 /* EqualsToken */) {
|
|
35502
35510
|
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);
|
|
@@ -35541,9 +35549,10 @@ var ts;
|
|
|
35541
35549
|
var pos = getNodePos();
|
|
35542
35550
|
var hasJSDoc = hasPrecedingJSDocComment();
|
|
35543
35551
|
parseExpected(99 /* IfKeyword */);
|
|
35544
|
-
|
|
35552
|
+
var openParenPosition = scanner.getTokenPos();
|
|
35553
|
+
var openParenParsed = parseExpected(20 /* OpenParenToken */);
|
|
35545
35554
|
var expression = allowInAnd(parseExpression);
|
|
35546
|
-
|
|
35555
|
+
parseExpectedMatchingBrackets(20 /* OpenParenToken */, 21 /* CloseParenToken */, openParenParsed, openParenPosition);
|
|
35547
35556
|
var thenStatement = parseStatement();
|
|
35548
35557
|
var elseStatement = parseOptional(91 /* ElseKeyword */) ? parseStatement() : undefined;
|
|
35549
35558
|
return withJSDoc(finishNode(factory.createIfStatement(expression, thenStatement, elseStatement), pos), hasJSDoc);
|
|
@@ -35554,9 +35563,10 @@ var ts;
|
|
|
35554
35563
|
parseExpected(90 /* DoKeyword */);
|
|
35555
35564
|
var statement = parseStatement();
|
|
35556
35565
|
parseExpected(115 /* WhileKeyword */);
|
|
35557
|
-
|
|
35566
|
+
var openParenPosition = scanner.getTokenPos();
|
|
35567
|
+
var openParenParsed = parseExpected(20 /* OpenParenToken */);
|
|
35558
35568
|
var expression = allowInAnd(parseExpression);
|
|
35559
|
-
|
|
35569
|
+
parseExpectedMatchingBrackets(20 /* OpenParenToken */, 21 /* CloseParenToken */, openParenParsed, openParenPosition);
|
|
35560
35570
|
// From: https://mail.mozilla.org/pipermail/es-discuss/2011-August/016188.html
|
|
35561
35571
|
// 157 min --- All allen at wirfs-brock.com CONF --- "do{;}while(false)false" prohibited in
|
|
35562
35572
|
// spec but allowed in consensus reality. Approved -- this is the de-facto standard whereby
|
|
@@ -35568,9 +35578,10 @@ var ts;
|
|
|
35568
35578
|
var pos = getNodePos();
|
|
35569
35579
|
var hasJSDoc = hasPrecedingJSDocComment();
|
|
35570
35580
|
parseExpected(115 /* WhileKeyword */);
|
|
35571
|
-
|
|
35581
|
+
var openParenPosition = scanner.getTokenPos();
|
|
35582
|
+
var openParenParsed = parseExpected(20 /* OpenParenToken */);
|
|
35572
35583
|
var expression = allowInAnd(parseExpression);
|
|
35573
|
-
|
|
35584
|
+
parseExpectedMatchingBrackets(20 /* OpenParenToken */, 21 /* CloseParenToken */, openParenParsed, openParenPosition);
|
|
35574
35585
|
var statement = parseStatement();
|
|
35575
35586
|
return withJSDoc(finishNode(factory.createWhileStatement(expression, statement), pos), hasJSDoc);
|
|
35576
35587
|
}
|
|
@@ -35637,9 +35648,10 @@ var ts;
|
|
|
35637
35648
|
var pos = getNodePos();
|
|
35638
35649
|
var hasJSDoc = hasPrecedingJSDocComment();
|
|
35639
35650
|
parseExpected(116 /* WithKeyword */);
|
|
35640
|
-
|
|
35651
|
+
var openParenPosition = scanner.getTokenPos();
|
|
35652
|
+
var openParenParsed = parseExpected(20 /* OpenParenToken */);
|
|
35641
35653
|
var expression = allowInAnd(parseExpression);
|
|
35642
|
-
|
|
35654
|
+
parseExpectedMatchingBrackets(20 /* OpenParenToken */, 21 /* CloseParenToken */, openParenParsed, openParenPosition);
|
|
35643
35655
|
var statement = doInsideOfContext(16777216 /* InWithStatement */, parseStatement);
|
|
35644
35656
|
return withJSDoc(finishNode(factory.createWithStatement(expression, statement), pos), hasJSDoc);
|
|
35645
35657
|
}
|
|
@@ -36773,7 +36785,7 @@ var ts;
|
|
|
36773
36785
|
if (!parseExpected(19 /* CloseBraceToken */)) {
|
|
36774
36786
|
var lastError = ts.lastOrUndefined(parseDiagnostics);
|
|
36775
36787
|
if (lastError && lastError.code === ts.Diagnostics._0_expected.code) {
|
|
36776
|
-
ts.addRelatedInfo(lastError, ts.createDetachedDiagnostic(fileName, openBracePosition, 1, ts.Diagnostics.
|
|
36788
|
+
ts.addRelatedInfo(lastError, ts.createDetachedDiagnostic(fileName, openBracePosition, 1, ts.Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, "{", "}"));
|
|
36777
36789
|
}
|
|
36778
36790
|
}
|
|
36779
36791
|
return finishNode(factory.createAssertClause(elements, multiLine), pos);
|
|
@@ -37749,8 +37761,7 @@ var ts;
|
|
|
37749
37761
|
hasChildren = true;
|
|
37750
37762
|
if (child.kind === 342 /* JSDocTypeTag */) {
|
|
37751
37763
|
if (childTypeTag) {
|
|
37752
|
-
parseErrorAtCurrentToken(ts.Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);
|
|
37753
|
-
var lastError = ts.lastOrUndefined(parseDiagnostics);
|
|
37764
|
+
var lastError = parseErrorAtCurrentToken(ts.Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);
|
|
37754
37765
|
if (lastError) {
|
|
37755
37766
|
ts.addRelatedInfo(lastError, ts.createDetachedDiagnostic(fileName, 0, 0, ts.Diagnostics.The_tag_was_first_specified_here));
|
|
37756
37767
|
}
|
|
@@ -44954,7 +44965,6 @@ var ts;
|
|
|
44954
44965
|
node = node.parent;
|
|
44955
44966
|
}
|
|
44956
44967
|
return !isStatementCondition(node) &&
|
|
44957
|
-
!isLogicalAssignmentExpression(node.parent) &&
|
|
44958
44968
|
!isLogicalExpression(node.parent) &&
|
|
44959
44969
|
!(ts.isOptionalChain(node.parent) && node.parent.expression === node);
|
|
44960
44970
|
}
|
|
@@ -46984,7 +46994,7 @@ var ts;
|
|
|
46984
46994
|
checkStrictModeEvalOrArguments(node, node.name);
|
|
46985
46995
|
}
|
|
46986
46996
|
if (!ts.isBindingPattern(node.name)) {
|
|
46987
|
-
if (ts.isInJSFile(node) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node) && !ts.getJSDocTypeTag(node)) {
|
|
46997
|
+
if (ts.isInJSFile(node) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node) && !ts.getJSDocTypeTag(node) && !(ts.getCombinedModifierFlags(node) & 1 /* Export */)) {
|
|
46988
46998
|
declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);
|
|
46989
46999
|
}
|
|
46990
47000
|
else if (ts.isBlockOrCatchScoped(node)) {
|
|
@@ -58489,8 +58499,10 @@ var ts;
|
|
|
58489
58499
|
return type;
|
|
58490
58500
|
}
|
|
58491
58501
|
function isMappedTypeGenericIndexedAccess(type) {
|
|
58492
|
-
|
|
58493
|
-
|
|
58502
|
+
var objectType;
|
|
58503
|
+
return !!(type.flags & 8388608 /* IndexedAccess */ && ts.getObjectFlags(objectType = type.objectType) & 32 /* Mapped */ &&
|
|
58504
|
+
!isGenericMappedType(objectType) && isGenericIndexType(type.indexType) &&
|
|
58505
|
+
!objectType.declaration.questionToken && !objectType.declaration.nameType);
|
|
58494
58506
|
}
|
|
58495
58507
|
/**
|
|
58496
58508
|
* For a type parameter, return the base constraint of the type parameter. For the string, number,
|
|
@@ -59078,7 +59090,19 @@ var ts;
|
|
|
59078
59090
|
return p.typeExpression && ts.isJSDocVariadicType(p.typeExpression.type) ? p.typeExpression.type : undefined;
|
|
59079
59091
|
});
|
|
59080
59092
|
var syntheticArgsSymbol = createSymbol(3 /* Variable */, "args", 32768 /* RestParameter */);
|
|
59081
|
-
|
|
59093
|
+
if (lastParamVariadicType) {
|
|
59094
|
+
// Parameter has effective annotation, lock in type
|
|
59095
|
+
syntheticArgsSymbol.type = createArrayType(getTypeFromTypeNode(lastParamVariadicType.type));
|
|
59096
|
+
}
|
|
59097
|
+
else {
|
|
59098
|
+
// Parameter has no annotation
|
|
59099
|
+
// By using a `DeferredType` symbol, we allow the type of this rest arg to be overriden by contextual type assignment so long as its type hasn't been
|
|
59100
|
+
// cached by `getTypeOfSymbol` yet.
|
|
59101
|
+
syntheticArgsSymbol.checkFlags |= 65536 /* DeferredType */;
|
|
59102
|
+
syntheticArgsSymbol.deferralParent = neverType;
|
|
59103
|
+
syntheticArgsSymbol.deferralConstituents = [anyArrayType];
|
|
59104
|
+
syntheticArgsSymbol.deferralWriteConstituents = [anyArrayType];
|
|
59105
|
+
}
|
|
59082
59106
|
if (lastParamVariadicType) {
|
|
59083
59107
|
// Replace the last parameter with a rest parameter.
|
|
59084
59108
|
parameters.pop();
|
|
@@ -61675,7 +61699,7 @@ var ts;
|
|
|
61675
61699
|
// If the object type is a mapped type { [P in K]: E }, where K is generic, instantiate E using a mapper
|
|
61676
61700
|
// that substitutes the index type for P. For example, for an index access { [P in K]: Box<T[P]> }[X], we
|
|
61677
61701
|
// construct the type Box<T[X]>.
|
|
61678
|
-
if (isGenericMappedType(objectType)) {
|
|
61702
|
+
if (isGenericMappedType(objectType) && !objectType.declaration.nameType) {
|
|
61679
61703
|
return type[cache] = mapType(substituteIndexedMappedType(objectType, type.indexType), function (t) { return getSimplifiedType(t, writing); });
|
|
61680
61704
|
}
|
|
61681
61705
|
return type[cache] = type;
|
|
@@ -63748,7 +63772,7 @@ var ts;
|
|
|
63748
63772
|
var targetReturnType = isResolvingReturnTypeOfSignature(target) ? anyType
|
|
63749
63773
|
: target.declaration && isJSConstructor(target.declaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(target.declaration.symbol))
|
|
63750
63774
|
: getReturnTypeOfSignature(target);
|
|
63751
|
-
if (targetReturnType === voidType) {
|
|
63775
|
+
if (targetReturnType === voidType || targetReturnType === anyType) {
|
|
63752
63776
|
return result;
|
|
63753
63777
|
}
|
|
63754
63778
|
var sourceReturnType = isResolvingReturnTypeOfSignature(source) ? anyType
|
|
@@ -72037,7 +72061,7 @@ var ts;
|
|
|
72037
72061
|
function getTypeOfPropertyOfContextualType(type, name, nameType) {
|
|
72038
72062
|
return mapType(type, function (t) {
|
|
72039
72063
|
var _a;
|
|
72040
|
-
if (isGenericMappedType(t)) {
|
|
72064
|
+
if (isGenericMappedType(t) && !t.declaration.nameType) {
|
|
72041
72065
|
var constraint = getConstraintTypeFromMappedType(t);
|
|
72042
72066
|
var constraintOfConstraint = getBaseConstraintOfType(constraint) || constraint;
|
|
72043
72067
|
var propertyNameType = nameType || getStringLiteralType(ts.unescapeLeadingUnderscores(name));
|
|
@@ -76965,7 +76989,11 @@ var ts;
|
|
|
76965
76989
|
if (signatureHasRestParameter(signature)) {
|
|
76966
76990
|
// parameter might be a transient symbol generated by use of `arguments` in the function body.
|
|
76967
76991
|
var parameter = ts.last(signature.parameters);
|
|
76968
|
-
if (
|
|
76992
|
+
if (parameter.valueDeclaration
|
|
76993
|
+
? !ts.getEffectiveTypeAnnotationNode(parameter.valueDeclaration)
|
|
76994
|
+
// a declarationless parameter may still have a `.type` already set by its construction logic
|
|
76995
|
+
// (which may pull a type from a jsdoc) - only allow fixing on `DeferredType` parameters with a fallback type
|
|
76996
|
+
: !!(ts.getCheckFlags(parameter) & 65536 /* DeferredType */)) {
|
|
76969
76997
|
var contextualParameterType = getRestTypeAtPosition(context, len);
|
|
76970
76998
|
assignParameterType(parameter, contextualParameterType);
|
|
76971
76999
|
}
|
|
@@ -76984,8 +77012,8 @@ var ts;
|
|
|
76984
77012
|
var links = getSymbolLinks(parameter);
|
|
76985
77013
|
if (!links.type) {
|
|
76986
77014
|
var declaration = parameter.valueDeclaration;
|
|
76987
|
-
links.type = type || getWidenedTypeForVariableLikeDeclaration(declaration, /*reportErrors*/ true);
|
|
76988
|
-
if (declaration.name.kind !== 79 /* Identifier */) {
|
|
77015
|
+
links.type = type || (declaration ? getWidenedTypeForVariableLikeDeclaration(declaration, /*reportErrors*/ true) : getTypeOfSymbol(parameter));
|
|
77016
|
+
if (declaration && declaration.name.kind !== 79 /* Identifier */) {
|
|
76989
77017
|
// if inference didn't come up with anything but unknown, fall back to the binding pattern if present.
|
|
76990
77018
|
if (links.type === unknownType) {
|
|
76991
77019
|
links.type = getTypeFromBindingPattern(declaration.name);
|
|
@@ -87653,10 +87681,9 @@ var ts;
|
|
|
87653
87681
|
}
|
|
87654
87682
|
var parent = ts.walkUpParenthesizedTypes(node.parent);
|
|
87655
87683
|
if (ts.isInJSFile(parent) && ts.isJSDocTypeExpression(parent)) {
|
|
87656
|
-
|
|
87657
|
-
if (
|
|
87658
|
-
|
|
87659
|
-
parent = parent.parent.parent;
|
|
87684
|
+
var host_2 = ts.getJSDocHost(parent);
|
|
87685
|
+
if (host_2) {
|
|
87686
|
+
parent = ts.getSingleVariableOfVariableStatement(host_2) || host_2;
|
|
87660
87687
|
}
|
|
87661
87688
|
}
|
|
87662
87689
|
switch (parent.kind) {
|
|
@@ -130891,14 +130918,15 @@ var ts;
|
|
|
130891
130918
|
SortText["SuggestedClassMembers"] = "14";
|
|
130892
130919
|
SortText["GlobalsOrKeywords"] = "15";
|
|
130893
130920
|
SortText["AutoImportSuggestions"] = "16";
|
|
130894
|
-
SortText["
|
|
130895
|
-
SortText["
|
|
130896
|
-
SortText["
|
|
130897
|
-
SortText["
|
|
130898
|
-
SortText["
|
|
130899
|
-
SortText["
|
|
130900
|
-
SortText["
|
|
130901
|
-
SortText["
|
|
130921
|
+
SortText["ClassMemberSnippets"] = "17";
|
|
130922
|
+
SortText["JavascriptIdentifiers"] = "18";
|
|
130923
|
+
SortText["DeprecatedLocalDeclarationPriority"] = "19";
|
|
130924
|
+
SortText["DeprecatedLocationPriority"] = "20";
|
|
130925
|
+
SortText["DeprecatedOptionalMember"] = "21";
|
|
130926
|
+
SortText["DeprecatedMemberDeclaredBySpreadAssignment"] = "22";
|
|
130927
|
+
SortText["DeprecatedSuggestedClassMembers"] = "23";
|
|
130928
|
+
SortText["DeprecatedGlobalsOrKeywords"] = "24";
|
|
130929
|
+
SortText["DeprecatedAutoImportSuggestions"] = "25";
|
|
130902
130930
|
})(SortText = Completions.SortText || (Completions.SortText = {}));
|
|
130903
130931
|
var SortTextId;
|
|
130904
130932
|
(function (SortTextId) {
|
|
@@ -130910,10 +130938,10 @@ var ts;
|
|
|
130910
130938
|
SortTextId[SortTextId["GlobalsOrKeywords"] = 15] = "GlobalsOrKeywords";
|
|
130911
130939
|
SortTextId[SortTextId["AutoImportSuggestions"] = 16] = "AutoImportSuggestions";
|
|
130912
130940
|
// Don't use these directly.
|
|
130913
|
-
SortTextId[SortTextId["_JavaScriptIdentifiers"] =
|
|
130914
|
-
SortTextId[SortTextId["_DeprecatedStart"] =
|
|
130941
|
+
SortTextId[SortTextId["_JavaScriptIdentifiers"] = 18] = "_JavaScriptIdentifiers";
|
|
130942
|
+
SortTextId[SortTextId["_DeprecatedStart"] = 19] = "_DeprecatedStart";
|
|
130915
130943
|
SortTextId[SortTextId["_First"] = 10] = "_First";
|
|
130916
|
-
SortTextId[SortTextId["DeprecatedOffset"] =
|
|
130944
|
+
SortTextId[SortTextId["DeprecatedOffset"] = 9] = "DeprecatedOffset";
|
|
130917
130945
|
})(SortTextId || (SortTextId = {}));
|
|
130918
130946
|
/**
|
|
130919
130947
|
* Special values for `CompletionInfo['source']` used to disambiguate
|
|
@@ -131394,6 +131422,7 @@ var ts;
|
|
|
131394
131422
|
isClassLikeMemberCompletion(symbol, location)) {
|
|
131395
131423
|
var importAdder = void 0;
|
|
131396
131424
|
(_b = getEntryForMemberCompletion(host, program, options, preferences, name, symbol, location, contextToken, formatContext), insertText = _b.insertText, isSnippet = _b.isSnippet, importAdder = _b.importAdder, replacementSpan = _b.replacementSpan);
|
|
131425
|
+
sortText = SortText.ClassMemberSnippets; // sortText has to be lower priority than the sortText for keywords. See #47852.
|
|
131397
131426
|
if (importAdder === null || importAdder === void 0 ? void 0 : importAdder.hasFixes()) {
|
|
131398
131427
|
hasAction = true;
|
|
131399
131428
|
source = CompletionSource.ClassMemberSnippet;
|
|
@@ -131757,7 +131786,7 @@ var ts;
|
|
|
131757
131786
|
}
|
|
131758
131787
|
var name = info.name, needsConvertPropertyAccess = info.needsConvertPropertyAccess;
|
|
131759
131788
|
var sortTextId = (_a = symbolToSortTextIdMap === null || symbolToSortTextIdMap === void 0 ? void 0 : symbolToSortTextIdMap[ts.getSymbolId(symbol)]) !== null && _a !== void 0 ? _a : 11 /* LocationPriority */;
|
|
131760
|
-
var sortText = (isDeprecated(symbol, typeChecker) ?
|
|
131789
|
+
var sortText = (isDeprecated(symbol, typeChecker) ? 9 /* DeprecatedOffset */ + sortTextId : sortTextId).toString();
|
|
131761
131790
|
var entry = createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, compilerOptions, preferences, kind, formatContext, isJsxIdentifierExpected, isRightOfOpenTag);
|
|
131762
131791
|
if (!entry) {
|
|
131763
131792
|
continue;
|
|
@@ -141669,6 +141698,41 @@ var ts;
|
|
|
141669
141698
|
if (ts.scanner.getToken() === 1 /* EndOfFileToken */) {
|
|
141670
141699
|
break;
|
|
141671
141700
|
}
|
|
141701
|
+
if (ts.scanner.getToken() === 15 /* TemplateHead */) {
|
|
141702
|
+
var stack = [ts.scanner.getToken()];
|
|
141703
|
+
var token = ts.scanner.scan();
|
|
141704
|
+
loop: while (ts.length(stack)) {
|
|
141705
|
+
switch (token) {
|
|
141706
|
+
case 1 /* EndOfFileToken */:
|
|
141707
|
+
break loop;
|
|
141708
|
+
case 100 /* ImportKeyword */:
|
|
141709
|
+
tryConsumeImport();
|
|
141710
|
+
break;
|
|
141711
|
+
case 15 /* TemplateHead */:
|
|
141712
|
+
stack.push(token);
|
|
141713
|
+
break;
|
|
141714
|
+
case 18 /* OpenBraceToken */:
|
|
141715
|
+
if (ts.length(stack)) {
|
|
141716
|
+
stack.push(token);
|
|
141717
|
+
}
|
|
141718
|
+
break;
|
|
141719
|
+
case 19 /* CloseBraceToken */:
|
|
141720
|
+
if (ts.length(stack)) {
|
|
141721
|
+
if (ts.lastOrUndefined(stack) === 15 /* TemplateHead */) {
|
|
141722
|
+
if (ts.scanner.reScanTemplateToken(/* isTaggedTemplate */ false) === 17 /* TemplateTail */) {
|
|
141723
|
+
stack.pop();
|
|
141724
|
+
}
|
|
141725
|
+
}
|
|
141726
|
+
else {
|
|
141727
|
+
stack.pop();
|
|
141728
|
+
}
|
|
141729
|
+
}
|
|
141730
|
+
break;
|
|
141731
|
+
}
|
|
141732
|
+
token = ts.scanner.scan();
|
|
141733
|
+
}
|
|
141734
|
+
nextToken();
|
|
141735
|
+
}
|
|
141672
141736
|
// check if at least one of alternative have moved scanner forward
|
|
141673
141737
|
if (tryConsumeDeclare() ||
|
|
141674
141738
|
tryConsumeImport() ||
|
|
@@ -142962,7 +143026,7 @@ var ts;
|
|
|
142962
143026
|
if (!typeDisplayString) {
|
|
142963
143027
|
continue;
|
|
142964
143028
|
}
|
|
142965
|
-
addTypeHints(typeDisplayString, param.name.end);
|
|
143029
|
+
addTypeHints(typeDisplayString, param.questionToken ? param.questionToken.end : param.name.end);
|
|
142966
143030
|
}
|
|
142967
143031
|
}
|
|
142968
143032
|
function getParameterDeclarationTypeDisplayString(symbol) {
|