typescript 5.2.0-dev.20230719 → 5.2.0-dev.20230721
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 +61 -46
- package/lib/tsserver.js +141 -75
- package/lib/tsserverlibrary.d.ts +13 -2
- package/lib/tsserverlibrary.js +140 -76
- package/lib/typescript.d.ts +7 -1
- package/lib/typescript.js +122 -72
- package/lib/typingsInstaller.js +10 -3
- package/package.json +2 -2
package/lib/tsc.js
CHANGED
|
@@ -18,7 +18,7 @@ and limitations under the License.
|
|
|
18
18
|
|
|
19
19
|
// src/compiler/corePublic.ts
|
|
20
20
|
var versionMajorMinor = "5.2";
|
|
21
|
-
var version = `${versionMajorMinor}.0-dev.
|
|
21
|
+
var version = `${versionMajorMinor}.0-dev.20230721`;
|
|
22
22
|
|
|
23
23
|
// src/compiler/core.ts
|
|
24
24
|
var emptyArray = [];
|
|
@@ -17404,6 +17404,18 @@ function getTextOfJsxNamespacedName(node) {
|
|
|
17404
17404
|
function intrinsicTagNameToString(node) {
|
|
17405
17405
|
return isIdentifier(node) ? idText(node) : getTextOfJsxNamespacedName(node);
|
|
17406
17406
|
}
|
|
17407
|
+
function isTypeUsableAsPropertyName(type) {
|
|
17408
|
+
return !!(type.flags & 8576 /* StringOrNumberLiteralOrUnique */);
|
|
17409
|
+
}
|
|
17410
|
+
function getPropertyNameFromType(type) {
|
|
17411
|
+
if (type.flags & 8192 /* UniqueESSymbol */) {
|
|
17412
|
+
return type.escapedName;
|
|
17413
|
+
}
|
|
17414
|
+
if (type.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) {
|
|
17415
|
+
return escapeLeadingUnderscores("" + type.value);
|
|
17416
|
+
}
|
|
17417
|
+
return Debug.fail();
|
|
17418
|
+
}
|
|
17407
17419
|
|
|
17408
17420
|
// src/compiler/factory/baseNodeFactory.ts
|
|
17409
17421
|
function createBaseNodeFactory() {
|
|
@@ -30711,10 +30723,14 @@ var Parser;
|
|
|
30711
30723
|
case 124 /* ProtectedKeyword */:
|
|
30712
30724
|
case 125 /* PublicKeyword */:
|
|
30713
30725
|
case 148 /* ReadonlyKeyword */:
|
|
30726
|
+
const previousToken = token();
|
|
30714
30727
|
nextToken();
|
|
30715
30728
|
if (scanner.hasPrecedingLineBreak()) {
|
|
30716
30729
|
return false;
|
|
30717
30730
|
}
|
|
30731
|
+
if (previousToken === 138 /* DeclareKeyword */ && token() === 156 /* TypeKeyword */) {
|
|
30732
|
+
return true;
|
|
30733
|
+
}
|
|
30718
30734
|
continue;
|
|
30719
30735
|
case 162 /* GlobalKeyword */:
|
|
30720
30736
|
nextToken();
|
|
@@ -31079,14 +31095,14 @@ var Parser;
|
|
|
31079
31095
|
function parseObjectBindingPattern() {
|
|
31080
31096
|
const pos = getNodePos();
|
|
31081
31097
|
parseExpected(19 /* OpenBraceToken */);
|
|
31082
|
-
const elements = parseDelimitedList(9 /* ObjectBindingElements */, parseObjectBindingElement);
|
|
31098
|
+
const elements = allowInAnd(() => parseDelimitedList(9 /* ObjectBindingElements */, parseObjectBindingElement));
|
|
31083
31099
|
parseExpected(20 /* CloseBraceToken */);
|
|
31084
31100
|
return finishNode(factory2.createObjectBindingPattern(elements), pos);
|
|
31085
31101
|
}
|
|
31086
31102
|
function parseArrayBindingPattern() {
|
|
31087
31103
|
const pos = getNodePos();
|
|
31088
31104
|
parseExpected(23 /* OpenBracketToken */);
|
|
31089
|
-
const elements = parseDelimitedList(10 /* ArrayBindingElements */, parseArrayBindingElement);
|
|
31105
|
+
const elements = allowInAnd(() => parseDelimitedList(10 /* ArrayBindingElements */, parseArrayBindingElement));
|
|
31090
31106
|
parseExpected(24 /* CloseBracketToken */);
|
|
31091
31107
|
return finishNode(factory2.createArrayBindingPattern(elements), pos);
|
|
31092
31108
|
}
|
|
@@ -31604,6 +31620,9 @@ var Parser;
|
|
|
31604
31620
|
}
|
|
31605
31621
|
function parseTypeAliasDeclaration(pos, hasJSDoc, modifiers) {
|
|
31606
31622
|
parseExpected(156 /* TypeKeyword */);
|
|
31623
|
+
if (scanner.hasPrecedingLineBreak()) {
|
|
31624
|
+
parseErrorAtCurrentToken(Diagnostics.Line_break_not_permitted_here);
|
|
31625
|
+
}
|
|
31607
31626
|
const name = parseIdentifier();
|
|
31608
31627
|
const typeParameters = parseTypeParameters();
|
|
31609
31628
|
parseExpected(64 /* EqualsToken */);
|
|
@@ -43111,7 +43130,7 @@ function createTypeChecker(host) {
|
|
|
43111
43130
|
return node ? getTypeFromTypeNode(node) : errorType;
|
|
43112
43131
|
},
|
|
43113
43132
|
getParameterType: getTypeAtPosition,
|
|
43114
|
-
|
|
43133
|
+
getParameterIdentifierInfoAtPosition,
|
|
43115
43134
|
getPromisedTypeOfPromise,
|
|
43116
43135
|
getAwaitedType: (type) => getAwaitedType(type),
|
|
43117
43136
|
getReturnTypeOfSignature,
|
|
@@ -44552,7 +44571,7 @@ function createTypeChecker(host) {
|
|
|
44552
44571
|
if (name === "const" && isConstAssertion(location)) {
|
|
44553
44572
|
return void 0;
|
|
44554
44573
|
}
|
|
44555
|
-
if (
|
|
44574
|
+
if (isModuleOrEnumDeclaration(location) && lastLocation && location.name === lastLocation) {
|
|
44556
44575
|
lastLocation = location;
|
|
44557
44576
|
location = location.parent;
|
|
44558
44577
|
}
|
|
@@ -51574,7 +51593,7 @@ function createTypeChecker(host) {
|
|
|
51574
51593
|
false,
|
|
51575
51594
|
definedInMethod && !definedInConstructor
|
|
51576
51595
|
));
|
|
51577
|
-
if (symbol.valueDeclaration && filterType(widened, (t) => !!(t.flags & ~98304 /* Nullable */)) === neverType) {
|
|
51596
|
+
if (symbol.valueDeclaration && isInJSFile(symbol.valueDeclaration) && filterType(widened, (t) => !!(t.flags & ~98304 /* Nullable */)) === neverType) {
|
|
51578
51597
|
reportImplicitAny(symbol.valueDeclaration, anyType);
|
|
51579
51598
|
return anyType;
|
|
51580
51599
|
}
|
|
@@ -52853,9 +52872,6 @@ function createTypeChecker(host) {
|
|
|
52853
52872
|
}
|
|
52854
52873
|
return type;
|
|
52855
52874
|
}
|
|
52856
|
-
function isTypeUsableAsPropertyName(type) {
|
|
52857
|
-
return !!(type.flags & 8576 /* StringOrNumberLiteralOrUnique */);
|
|
52858
|
-
}
|
|
52859
52875
|
function isLateBindableName(node) {
|
|
52860
52876
|
if (!isComputedPropertyName(node) && !isElementAccessExpression(node)) {
|
|
52861
52877
|
return false;
|
|
@@ -52876,15 +52892,6 @@ function createTypeChecker(host) {
|
|
|
52876
52892
|
function isNonBindableDynamicName(node) {
|
|
52877
52893
|
return isDynamicName(node) && !isLateBindableName(node);
|
|
52878
52894
|
}
|
|
52879
|
-
function getPropertyNameFromType(type) {
|
|
52880
|
-
if (type.flags & 8192 /* UniqueESSymbol */) {
|
|
52881
|
-
return type.escapedName;
|
|
52882
|
-
}
|
|
52883
|
-
if (type.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) {
|
|
52884
|
-
return escapeLeadingUnderscores("" + type.value);
|
|
52885
|
-
}
|
|
52886
|
-
return Debug.fail();
|
|
52887
|
-
}
|
|
52888
52895
|
function addDeclarationToLateBoundSymbol(symbol, member, symbolFlags) {
|
|
52889
52896
|
Debug.assert(!!(getCheckFlags(symbol) & 4096 /* Late */), "Expected a late-bound symbol.");
|
|
52890
52897
|
symbol.flags |= symbolFlags;
|
|
@@ -52934,6 +52941,7 @@ function createTypeChecker(host) {
|
|
|
52934
52941
|
return links.resolvedSymbol;
|
|
52935
52942
|
}
|
|
52936
52943
|
function getResolvedMembersOrExportsOfSymbol(symbol, resolutionKind) {
|
|
52944
|
+
var _a, _b, _c;
|
|
52937
52945
|
const links = getSymbolLinks(symbol);
|
|
52938
52946
|
if (!links[resolutionKind]) {
|
|
52939
52947
|
const isStatic2 = resolutionKind === "resolvedExports" /* resolvedExports */;
|
|
@@ -52952,7 +52960,7 @@ function createTypeChecker(host) {
|
|
|
52952
52960
|
}
|
|
52953
52961
|
}
|
|
52954
52962
|
}
|
|
52955
|
-
const assignments = symbol.assignmentDeclarationMembers;
|
|
52963
|
+
const assignments = (((_a = symbol.valueDeclaration) == null ? void 0 : _a.kind) === 219 /* ArrowFunction */ || ((_b = symbol.valueDeclaration) == null ? void 0 : _b.kind) === 218 /* FunctionExpression */) && ((_c = getSymbolOfNode(symbol.valueDeclaration.parent)) == null ? void 0 : _c.assignmentDeclarationMembers) || symbol.assignmentDeclarationMembers;
|
|
52956
52964
|
if (assignments) {
|
|
52957
52965
|
const decls = arrayFrom(assignments.values());
|
|
52958
52966
|
for (const member of decls) {
|
|
@@ -53530,20 +53538,17 @@ function createTypeChecker(host) {
|
|
|
53530
53538
|
setStructuredTypeMembers(type, members2, callSignatures, constructSignatures, indexInfos2);
|
|
53531
53539
|
return;
|
|
53532
53540
|
}
|
|
53533
|
-
let members =
|
|
53541
|
+
let members = getExportsOfSymbol(symbol);
|
|
53534
53542
|
let indexInfos;
|
|
53535
|
-
if (symbol
|
|
53536
|
-
|
|
53537
|
-
|
|
53538
|
-
|
|
53539
|
-
|
|
53540
|
-
|
|
53541
|
-
|
|
53542
|
-
|
|
53543
|
-
|
|
53544
|
-
});
|
|
53545
|
-
members = varsOnly;
|
|
53546
|
-
}
|
|
53543
|
+
if (symbol === globalThisSymbol) {
|
|
53544
|
+
const varsOnly = /* @__PURE__ */ new Map();
|
|
53545
|
+
members.forEach((p) => {
|
|
53546
|
+
var _a;
|
|
53547
|
+
if (!(p.flags & 418 /* BlockScoped */) && !(p.flags & 512 /* ValueModule */ && ((_a = p.declarations) == null ? void 0 : _a.length) && every(p.declarations, isAmbientModule))) {
|
|
53548
|
+
varsOnly.set(p.escapedName, p);
|
|
53549
|
+
}
|
|
53550
|
+
});
|
|
53551
|
+
members = varsOnly;
|
|
53547
53552
|
}
|
|
53548
53553
|
let baseConstructorIndexInfo;
|
|
53549
53554
|
setStructuredTypeMembers(type, members, emptyArray, emptyArray, emptyArray);
|
|
@@ -65636,12 +65641,15 @@ function createTypeChecker(host) {
|
|
|
65636
65641
|
return narrowTypeByPrivateIdentifierInInExpression(type, expr, assumeTrue);
|
|
65637
65642
|
}
|
|
65638
65643
|
const target = getReferenceCandidate(expr.right);
|
|
65639
|
-
|
|
65640
|
-
|
|
65641
|
-
if (
|
|
65644
|
+
if (containsMissingType(type) && isAccessExpression(reference) && isMatchingReference(reference.expression, target)) {
|
|
65645
|
+
const leftType = getTypeOfExpression(expr.left);
|
|
65646
|
+
if (isTypeUsableAsPropertyName(leftType) && getAccessedPropertyName(reference) === getPropertyNameFromType(leftType)) {
|
|
65642
65647
|
return getTypeWithFacts(type, assumeTrue ? 524288 /* NEUndefined */ : 65536 /* EQUndefined */);
|
|
65643
65648
|
}
|
|
65644
|
-
|
|
65649
|
+
}
|
|
65650
|
+
if (isMatchingReference(reference, target)) {
|
|
65651
|
+
const leftType = getTypeOfExpression(expr.left);
|
|
65652
|
+
if (isTypeUsableAsPropertyName(leftType)) {
|
|
65645
65653
|
return narrowTypeByInKeyword(type, leftType, assumeTrue);
|
|
65646
65654
|
}
|
|
65647
65655
|
}
|
|
@@ -72052,7 +72060,7 @@ function createTypeChecker(host) {
|
|
|
72052
72060
|
}
|
|
72053
72061
|
return restParameter.escapedName;
|
|
72054
72062
|
}
|
|
72055
|
-
function
|
|
72063
|
+
function getParameterIdentifierInfoAtPosition(signature, pos) {
|
|
72056
72064
|
var _a;
|
|
72057
72065
|
if (((_a = signature.declaration) == null ? void 0 : _a.kind) === 324 /* JSDocFunctionType */) {
|
|
72058
72066
|
return void 0;
|
|
@@ -72060,10 +72068,16 @@ function createTypeChecker(host) {
|
|
|
72060
72068
|
const paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);
|
|
72061
72069
|
if (pos < paramCount) {
|
|
72062
72070
|
const param = signature.parameters[pos];
|
|
72063
|
-
|
|
72071
|
+
const paramIdent = getParameterDeclarationIdentifier(param);
|
|
72072
|
+
return paramIdent ? {
|
|
72073
|
+
parameter: paramIdent,
|
|
72074
|
+
parameterName: param.escapedName,
|
|
72075
|
+
isRestParameter: false
|
|
72076
|
+
} : void 0;
|
|
72064
72077
|
}
|
|
72065
72078
|
const restParameter = signature.parameters[paramCount] || unknownSymbol;
|
|
72066
|
-
|
|
72079
|
+
const restIdent = getParameterDeclarationIdentifier(restParameter);
|
|
72080
|
+
if (!restIdent) {
|
|
72067
72081
|
return void 0;
|
|
72068
72082
|
}
|
|
72069
72083
|
const restType = getTypeOfSymbol(restParameter);
|
|
@@ -72072,18 +72086,19 @@ function createTypeChecker(host) {
|
|
|
72072
72086
|
const index = pos - paramCount;
|
|
72073
72087
|
const associatedName = associatedNames == null ? void 0 : associatedNames[index];
|
|
72074
72088
|
const isRestTupleElement = !!(associatedName == null ? void 0 : associatedName.dotDotDotToken);
|
|
72075
|
-
|
|
72076
|
-
|
|
72077
|
-
isRestTupleElement
|
|
72078
|
-
|
|
72089
|
+
if (associatedName) {
|
|
72090
|
+
Debug.assert(isIdentifier(associatedName.name));
|
|
72091
|
+
return { parameter: associatedName.name, parameterName: associatedName.name.escapedText, isRestParameter: isRestTupleElement };
|
|
72092
|
+
}
|
|
72093
|
+
return void 0;
|
|
72079
72094
|
}
|
|
72080
72095
|
if (pos === paramCount) {
|
|
72081
|
-
return
|
|
72096
|
+
return { parameter: restIdent, parameterName: restParameter.escapedName, isRestParameter: true };
|
|
72082
72097
|
}
|
|
72083
72098
|
return void 0;
|
|
72084
72099
|
}
|
|
72085
|
-
function
|
|
72086
|
-
return symbol.valueDeclaration && isParameter(symbol.valueDeclaration) && isIdentifier(symbol.valueDeclaration.name);
|
|
72100
|
+
function getParameterDeclarationIdentifier(symbol) {
|
|
72101
|
+
return symbol.valueDeclaration && isParameter(symbol.valueDeclaration) && isIdentifier(symbol.valueDeclaration.name) && symbol.valueDeclaration.name;
|
|
72087
72102
|
}
|
|
72088
72103
|
function isValidDeclarationForTupleLabel(d) {
|
|
72089
72104
|
return d.kind === 202 /* NamedTupleMember */ || isParameter(d) && d.name && isIdentifier(d.name);
|