@typescript-deploys/pr-build 5.0.0-pr-52818-5 → 5.0.0-pr-50431-13
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 +44 -18
- package/lib/tsserver.js +55 -20
- package/lib/tsserverlibrary.js +53 -20
- package/lib/typescript.js +51 -20
- package/lib/typingsInstaller.js +5 -1
- package/package.json +1 -1
package/lib/tsc.js
CHANGED
|
@@ -15652,20 +15652,36 @@ function isWriteOnlyAccess(node) {
|
|
|
15652
15652
|
function isWriteAccess(node) {
|
|
15653
15653
|
return accessKind(node) !== 0 /* Read */;
|
|
15654
15654
|
}
|
|
15655
|
+
function isWriteOnlyUsage(node) {
|
|
15656
|
+
return accessKindForUsageChecks(node) === 1 /* Write */;
|
|
15657
|
+
}
|
|
15658
|
+
function accessKindForUsageChecks(node) {
|
|
15659
|
+
const kind = accessKind(node);
|
|
15660
|
+
const { parent } = node;
|
|
15661
|
+
switch (parent == null ? void 0 : parent.kind) {
|
|
15662
|
+
case 222 /* PostfixUnaryExpression */:
|
|
15663
|
+
case 221 /* PrefixUnaryExpression */:
|
|
15664
|
+
case 223 /* BinaryExpression */:
|
|
15665
|
+
return kind === 2 /* ReadWrite */ ? writeOrReadWrite() : kind;
|
|
15666
|
+
default:
|
|
15667
|
+
return kind;
|
|
15668
|
+
}
|
|
15669
|
+
function writeOrReadWrite() {
|
|
15670
|
+
return parent.parent && walkUpParenthesizedExpressions(parent.parent).kind === 241 /* ExpressionStatement */ ? 1 /* Write */ : 2 /* ReadWrite */;
|
|
15671
|
+
}
|
|
15672
|
+
}
|
|
15655
15673
|
function accessKind(node) {
|
|
15656
15674
|
const { parent } = node;
|
|
15657
|
-
|
|
15658
|
-
return 0 /* Read */;
|
|
15659
|
-
switch (parent.kind) {
|
|
15675
|
+
switch (parent == null ? void 0 : parent.kind) {
|
|
15660
15676
|
case 214 /* ParenthesizedExpression */:
|
|
15661
15677
|
return accessKind(parent);
|
|
15662
15678
|
case 222 /* PostfixUnaryExpression */:
|
|
15663
15679
|
case 221 /* PrefixUnaryExpression */:
|
|
15664
15680
|
const { operator } = parent;
|
|
15665
|
-
return operator === 45 /* PlusPlusToken */ || operator === 46 /* MinusMinusToken */ ?
|
|
15681
|
+
return operator === 45 /* PlusPlusToken */ || operator === 46 /* MinusMinusToken */ ? 2 /* ReadWrite */ : 0 /* Read */;
|
|
15666
15682
|
case 223 /* BinaryExpression */:
|
|
15667
15683
|
const { left, operatorToken } = parent;
|
|
15668
|
-
return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 63 /* EqualsToken */ ? 1 /* Write */ :
|
|
15684
|
+
return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 63 /* EqualsToken */ ? 1 /* Write */ : 2 /* ReadWrite */ : 0 /* Read */;
|
|
15669
15685
|
case 208 /* PropertyAccessExpression */:
|
|
15670
15686
|
return parent.name !== node ? 0 /* Read */ : accessKind(parent);
|
|
15671
15687
|
case 299 /* PropertyAssignment */: {
|
|
@@ -15679,9 +15695,6 @@ function accessKind(node) {
|
|
|
15679
15695
|
default:
|
|
15680
15696
|
return 0 /* Read */;
|
|
15681
15697
|
}
|
|
15682
|
-
function writeOrReadWrite() {
|
|
15683
|
-
return parent.parent && walkUpParenthesizedExpressions(parent.parent).kind === 241 /* ExpressionStatement */ ? 1 /* Write */ : 2 /* ReadWrite */;
|
|
15684
|
-
}
|
|
15685
15698
|
}
|
|
15686
15699
|
function reverseAccessKind(a) {
|
|
15687
15700
|
switch (a) {
|
|
@@ -29585,9 +29598,13 @@ var Parser;
|
|
|
29585
29598
|
function parseJsxClosingFragment(inExpressionContext) {
|
|
29586
29599
|
const pos = getNodePos();
|
|
29587
29600
|
parseExpected(30 /* LessThanSlashToken */);
|
|
29601
|
+
if (tokenIsIdentifierOrKeyword(token())) {
|
|
29602
|
+
parseErrorAtRange(parseJsxElementName(), Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment);
|
|
29603
|
+
}
|
|
29588
29604
|
if (parseExpected(
|
|
29589
29605
|
31 /* GreaterThanToken */,
|
|
29590
|
-
|
|
29606
|
+
/*diagnostic*/
|
|
29607
|
+
void 0,
|
|
29591
29608
|
/*shouldAdvance*/
|
|
29592
29609
|
false
|
|
29593
29610
|
)) {
|
|
@@ -63351,7 +63368,7 @@ function createTypeChecker(host) {
|
|
|
63351
63368
|
111551 /* Value */ | 1048576 /* ExportValue */,
|
|
63352
63369
|
getCannotFindNameDiagnosticForName(node),
|
|
63353
63370
|
node,
|
|
63354
|
-
!
|
|
63371
|
+
!isWriteOnlyUsage(node),
|
|
63355
63372
|
/*excludeGlobals*/
|
|
63356
63373
|
false
|
|
63357
63374
|
) || unknownSymbol;
|
|
@@ -68169,8 +68186,8 @@ function createTypeChecker(host) {
|
|
|
68169
68186
|
}
|
|
68170
68187
|
return nonNullType;
|
|
68171
68188
|
}
|
|
68172
|
-
function checkPropertyAccessExpression(node, checkMode) {
|
|
68173
|
-
return node.flags & 32 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode);
|
|
68189
|
+
function checkPropertyAccessExpression(node, checkMode, writeOnly) {
|
|
68190
|
+
return node.flags & 32 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode, writeOnly);
|
|
68174
68191
|
}
|
|
68175
68192
|
function checkPropertyAccessChain(node, checkMode) {
|
|
68176
68193
|
const leftType = checkExpression(node.expression);
|
|
@@ -68301,7 +68318,7 @@ function createTypeChecker(host) {
|
|
|
68301
68318
|
false
|
|
68302
68319
|
) === getDeclaringConstructor(prop);
|
|
68303
68320
|
}
|
|
68304
|
-
function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode) {
|
|
68321
|
+
function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode, writeOnly) {
|
|
68305
68322
|
const parentSymbol = getNodeLinks(left).resolvedSymbol;
|
|
68306
68323
|
const assignmentKind = getAssignmentTargetKind(node);
|
|
68307
68324
|
const apparentType = getApparentType(assignmentKind !== 0 /* None */ || isMethodAccessForCall(node) ? getWidenedType(leftType) : leftType);
|
|
@@ -68400,13 +68417,12 @@ function createTypeChecker(host) {
|
|
|
68400
68417
|
checkPropertyNotUsedBeforeDeclaration(prop, node, right);
|
|
68401
68418
|
markPropertyAsReferenced(prop, node, isSelfTypeAccess(left, parentSymbol));
|
|
68402
68419
|
getNodeLinks(node).resolvedSymbol = prop;
|
|
68403
|
-
|
|
68404
|
-
checkPropertyAccessibility(node, left.kind === 106 /* SuperKeyword */, writing, apparentType, prop);
|
|
68420
|
+
checkPropertyAccessibility(node, left.kind === 106 /* SuperKeyword */, isWriteAccess(node), apparentType, prop);
|
|
68405
68421
|
if (isAssignmentToReadonlyEntity(node, prop, assignmentKind)) {
|
|
68406
68422
|
error(right, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, idText(right));
|
|
68407
68423
|
return errorType;
|
|
68408
68424
|
}
|
|
68409
|
-
propType = isThisPropertyAccessInConstructor(node, prop) ? autoType :
|
|
68425
|
+
propType = isThisPropertyAccessInConstructor(node, prop) ? autoType : writeOnly || isWriteOnlyAccess(node) ? getWriteTypeOfSymbol(prop) : getTypeOfSymbol(prop);
|
|
68410
68426
|
}
|
|
68411
68427
|
return getFlowTypeOfAccessExpression(node, prop, propType, right, checkMode);
|
|
68412
68428
|
}
|
|
@@ -68722,7 +68738,7 @@ function createTypeChecker(host) {
|
|
|
68722
68738
|
if (!hasPrivateModifier && !hasPrivateIdentifier) {
|
|
68723
68739
|
return;
|
|
68724
68740
|
}
|
|
68725
|
-
if (nodeForCheckWriteOnly &&
|
|
68741
|
+
if (nodeForCheckWriteOnly && isWriteOnlyUsage(nodeForCheckWriteOnly) && !(prop.flags & 65536 /* SetAccessor */)) {
|
|
68726
68742
|
return;
|
|
68727
68743
|
}
|
|
68728
68744
|
if (isSelfTypeAccess2) {
|
|
@@ -73036,6 +73052,16 @@ function createTypeChecker(host) {
|
|
|
73036
73052
|
addLazyDiagnostic(checkAssignmentOperatorWorker);
|
|
73037
73053
|
}
|
|
73038
73054
|
function checkAssignmentOperatorWorker() {
|
|
73055
|
+
let assigneeType = leftType;
|
|
73056
|
+
if (isCompoundAssignment(operatorToken.kind) && left.kind === 208 /* PropertyAccessExpression */) {
|
|
73057
|
+
assigneeType = checkPropertyAccessExpression(
|
|
73058
|
+
left,
|
|
73059
|
+
/*checkMode*/
|
|
73060
|
+
void 0,
|
|
73061
|
+
/*writeOnly*/
|
|
73062
|
+
true
|
|
73063
|
+
);
|
|
73064
|
+
}
|
|
73039
73065
|
if (checkReferenceExpression(
|
|
73040
73066
|
left,
|
|
73041
73067
|
Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access,
|
|
@@ -73048,7 +73074,7 @@ function createTypeChecker(host) {
|
|
|
73048
73074
|
headMessage = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target;
|
|
73049
73075
|
}
|
|
73050
73076
|
}
|
|
73051
|
-
checkTypeAssignableToAndOptionallyElaborate(valueType,
|
|
73077
|
+
checkTypeAssignableToAndOptionallyElaborate(valueType, assigneeType, left, right, headMessage);
|
|
73052
73078
|
}
|
|
73053
73079
|
}
|
|
73054
73080
|
}
|
package/lib/tsserver.js
CHANGED
|
@@ -1797,6 +1797,8 @@ __export(server_exports, {
|
|
|
1797
1797
|
isWithStatement: () => isWithStatement,
|
|
1798
1798
|
isWriteAccess: () => isWriteAccess,
|
|
1799
1799
|
isWriteOnlyAccess: () => isWriteOnlyAccess,
|
|
1800
|
+
isWriteOnlyUsage: () => isWriteOnlyUsage,
|
|
1801
|
+
isWriteUsage: () => isWriteUsage,
|
|
1800
1802
|
isYieldExpression: () => isYieldExpression,
|
|
1801
1803
|
jsxModeNeedsExplicitImport: () => jsxModeNeedsExplicitImport,
|
|
1802
1804
|
keywordPart: () => keywordPart,
|
|
@@ -19652,20 +19654,39 @@ function isWriteOnlyAccess(node) {
|
|
|
19652
19654
|
function isWriteAccess(node) {
|
|
19653
19655
|
return accessKind(node) !== 0 /* Read */;
|
|
19654
19656
|
}
|
|
19657
|
+
function isWriteOnlyUsage(node) {
|
|
19658
|
+
return accessKindForUsageChecks(node) === 1 /* Write */;
|
|
19659
|
+
}
|
|
19660
|
+
function isWriteUsage(node) {
|
|
19661
|
+
return accessKindForUsageChecks(node) !== 0 /* Read */;
|
|
19662
|
+
}
|
|
19663
|
+
function accessKindForUsageChecks(node) {
|
|
19664
|
+
const kind = accessKind(node);
|
|
19665
|
+
const { parent: parent2 } = node;
|
|
19666
|
+
switch (parent2 == null ? void 0 : parent2.kind) {
|
|
19667
|
+
case 222 /* PostfixUnaryExpression */:
|
|
19668
|
+
case 221 /* PrefixUnaryExpression */:
|
|
19669
|
+
case 223 /* BinaryExpression */:
|
|
19670
|
+
return kind === 2 /* ReadWrite */ ? writeOrReadWrite() : kind;
|
|
19671
|
+
default:
|
|
19672
|
+
return kind;
|
|
19673
|
+
}
|
|
19674
|
+
function writeOrReadWrite() {
|
|
19675
|
+
return parent2.parent && walkUpParenthesizedExpressions(parent2.parent).kind === 241 /* ExpressionStatement */ ? 1 /* Write */ : 2 /* ReadWrite */;
|
|
19676
|
+
}
|
|
19677
|
+
}
|
|
19655
19678
|
function accessKind(node) {
|
|
19656
19679
|
const { parent: parent2 } = node;
|
|
19657
|
-
|
|
19658
|
-
return 0 /* Read */;
|
|
19659
|
-
switch (parent2.kind) {
|
|
19680
|
+
switch (parent2 == null ? void 0 : parent2.kind) {
|
|
19660
19681
|
case 214 /* ParenthesizedExpression */:
|
|
19661
19682
|
return accessKind(parent2);
|
|
19662
19683
|
case 222 /* PostfixUnaryExpression */:
|
|
19663
19684
|
case 221 /* PrefixUnaryExpression */:
|
|
19664
19685
|
const { operator } = parent2;
|
|
19665
|
-
return operator === 45 /* PlusPlusToken */ || operator === 46 /* MinusMinusToken */ ?
|
|
19686
|
+
return operator === 45 /* PlusPlusToken */ || operator === 46 /* MinusMinusToken */ ? 2 /* ReadWrite */ : 0 /* Read */;
|
|
19666
19687
|
case 223 /* BinaryExpression */:
|
|
19667
19688
|
const { left, operatorToken } = parent2;
|
|
19668
|
-
return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 63 /* EqualsToken */ ? 1 /* Write */ :
|
|
19689
|
+
return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 63 /* EqualsToken */ ? 1 /* Write */ : 2 /* ReadWrite */ : 0 /* Read */;
|
|
19669
19690
|
case 208 /* PropertyAccessExpression */:
|
|
19670
19691
|
return parent2.name !== node ? 0 /* Read */ : accessKind(parent2);
|
|
19671
19692
|
case 299 /* PropertyAssignment */: {
|
|
@@ -19679,9 +19700,6 @@ function accessKind(node) {
|
|
|
19679
19700
|
default:
|
|
19680
19701
|
return 0 /* Read */;
|
|
19681
19702
|
}
|
|
19682
|
-
function writeOrReadWrite() {
|
|
19683
|
-
return parent2.parent && walkUpParenthesizedExpressions(parent2.parent).kind === 241 /* ExpressionStatement */ ? 1 /* Write */ : 2 /* ReadWrite */;
|
|
19684
|
-
}
|
|
19685
19703
|
}
|
|
19686
19704
|
function reverseAccessKind(a) {
|
|
19687
19705
|
switch (a) {
|
|
@@ -33931,9 +33949,13 @@ var Parser;
|
|
|
33931
33949
|
function parseJsxClosingFragment(inExpressionContext) {
|
|
33932
33950
|
const pos = getNodePos();
|
|
33933
33951
|
parseExpected(30 /* LessThanSlashToken */);
|
|
33952
|
+
if (tokenIsIdentifierOrKeyword(token())) {
|
|
33953
|
+
parseErrorAtRange(parseJsxElementName(), Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment);
|
|
33954
|
+
}
|
|
33934
33955
|
if (parseExpected(
|
|
33935
33956
|
31 /* GreaterThanToken */,
|
|
33936
|
-
|
|
33957
|
+
/*diagnostic*/
|
|
33958
|
+
void 0,
|
|
33937
33959
|
/*shouldAdvance*/
|
|
33938
33960
|
false
|
|
33939
33961
|
)) {
|
|
@@ -67958,7 +67980,7 @@ function createTypeChecker(host) {
|
|
|
67958
67980
|
111551 /* Value */ | 1048576 /* ExportValue */,
|
|
67959
67981
|
getCannotFindNameDiagnosticForName(node),
|
|
67960
67982
|
node,
|
|
67961
|
-
!
|
|
67983
|
+
!isWriteOnlyUsage(node),
|
|
67962
67984
|
/*excludeGlobals*/
|
|
67963
67985
|
false
|
|
67964
67986
|
) || unknownSymbol;
|
|
@@ -72776,8 +72798,8 @@ function createTypeChecker(host) {
|
|
|
72776
72798
|
}
|
|
72777
72799
|
return nonNullType;
|
|
72778
72800
|
}
|
|
72779
|
-
function checkPropertyAccessExpression(node, checkMode) {
|
|
72780
|
-
return node.flags & 32 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode);
|
|
72801
|
+
function checkPropertyAccessExpression(node, checkMode, writeOnly) {
|
|
72802
|
+
return node.flags & 32 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode, writeOnly);
|
|
72781
72803
|
}
|
|
72782
72804
|
function checkPropertyAccessChain(node, checkMode) {
|
|
72783
72805
|
const leftType = checkExpression(node.expression);
|
|
@@ -72908,7 +72930,7 @@ function createTypeChecker(host) {
|
|
|
72908
72930
|
false
|
|
72909
72931
|
) === getDeclaringConstructor(prop);
|
|
72910
72932
|
}
|
|
72911
|
-
function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode) {
|
|
72933
|
+
function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode, writeOnly) {
|
|
72912
72934
|
const parentSymbol = getNodeLinks(left).resolvedSymbol;
|
|
72913
72935
|
const assignmentKind = getAssignmentTargetKind(node);
|
|
72914
72936
|
const apparentType = getApparentType(assignmentKind !== 0 /* None */ || isMethodAccessForCall(node) ? getWidenedType(leftType) : leftType);
|
|
@@ -73007,13 +73029,12 @@ function createTypeChecker(host) {
|
|
|
73007
73029
|
checkPropertyNotUsedBeforeDeclaration(prop, node, right);
|
|
73008
73030
|
markPropertyAsReferenced(prop, node, isSelfTypeAccess(left, parentSymbol));
|
|
73009
73031
|
getNodeLinks(node).resolvedSymbol = prop;
|
|
73010
|
-
|
|
73011
|
-
checkPropertyAccessibility(node, left.kind === 106 /* SuperKeyword */, writing, apparentType, prop);
|
|
73032
|
+
checkPropertyAccessibility(node, left.kind === 106 /* SuperKeyword */, isWriteAccess(node), apparentType, prop);
|
|
73012
73033
|
if (isAssignmentToReadonlyEntity(node, prop, assignmentKind)) {
|
|
73013
73034
|
error(right, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, idText(right));
|
|
73014
73035
|
return errorType;
|
|
73015
73036
|
}
|
|
73016
|
-
propType = isThisPropertyAccessInConstructor(node, prop) ? autoType :
|
|
73037
|
+
propType = isThisPropertyAccessInConstructor(node, prop) ? autoType : writeOnly || isWriteOnlyAccess(node) ? getWriteTypeOfSymbol(prop) : getTypeOfSymbol(prop);
|
|
73017
73038
|
}
|
|
73018
73039
|
return getFlowTypeOfAccessExpression(node, prop, propType, right, checkMode);
|
|
73019
73040
|
}
|
|
@@ -73329,7 +73350,7 @@ function createTypeChecker(host) {
|
|
|
73329
73350
|
if (!hasPrivateModifier && !hasPrivateIdentifier) {
|
|
73330
73351
|
return;
|
|
73331
73352
|
}
|
|
73332
|
-
if (nodeForCheckWriteOnly &&
|
|
73353
|
+
if (nodeForCheckWriteOnly && isWriteOnlyUsage(nodeForCheckWriteOnly) && !(prop.flags & 65536 /* SetAccessor */)) {
|
|
73333
73354
|
return;
|
|
73334
73355
|
}
|
|
73335
73356
|
if (isSelfTypeAccess2) {
|
|
@@ -77643,6 +77664,16 @@ function createTypeChecker(host) {
|
|
|
77643
77664
|
addLazyDiagnostic(checkAssignmentOperatorWorker);
|
|
77644
77665
|
}
|
|
77645
77666
|
function checkAssignmentOperatorWorker() {
|
|
77667
|
+
let assigneeType = leftType;
|
|
77668
|
+
if (isCompoundAssignment(operatorToken.kind) && left.kind === 208 /* PropertyAccessExpression */) {
|
|
77669
|
+
assigneeType = checkPropertyAccessExpression(
|
|
77670
|
+
left,
|
|
77671
|
+
/*checkMode*/
|
|
77672
|
+
void 0,
|
|
77673
|
+
/*writeOnly*/
|
|
77674
|
+
true
|
|
77675
|
+
);
|
|
77676
|
+
}
|
|
77646
77677
|
if (checkReferenceExpression(
|
|
77647
77678
|
left,
|
|
77648
77679
|
Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access,
|
|
@@ -77655,7 +77686,7 @@ function createTypeChecker(host) {
|
|
|
77655
77686
|
headMessage = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target;
|
|
77656
77687
|
}
|
|
77657
77688
|
}
|
|
77658
|
-
checkTypeAssignableToAndOptionallyElaborate(valueType,
|
|
77689
|
+
checkTypeAssignableToAndOptionallyElaborate(valueType, assigneeType, left, right, headMessage);
|
|
77659
77690
|
}
|
|
77660
77691
|
}
|
|
77661
77692
|
}
|
|
@@ -166453,7 +166484,7 @@ function formatSpanWorker(originalRange, enclosingNode, initialIndentation, delt
|
|
|
166453
166484
|
}
|
|
166454
166485
|
function processChildNode(child, inheritedIndentation, parent2, parentDynamicIndentation, parentStartLine, undecoratedParentStartLine, isListItem, isFirstListItem) {
|
|
166455
166486
|
Debug.assert(!nodeIsSynthesized(child));
|
|
166456
|
-
if (nodeIsMissing(child)) {
|
|
166487
|
+
if (nodeIsMissing(child) || isGrammarError(parent2, child)) {
|
|
166457
166488
|
return inheritedIndentation;
|
|
166458
166489
|
}
|
|
166459
166490
|
const childStartPos = child.getStart(sourceFile);
|
|
@@ -166496,7 +166527,7 @@ function formatSpanWorker(originalRange, enclosingNode, initialIndentation, delt
|
|
|
166496
166527
|
}
|
|
166497
166528
|
if (isToken(child)) {
|
|
166498
166529
|
const tokenInfo = formattingScanner.readTokenInfo(child);
|
|
166499
|
-
if (child.kind !== 11 /* JsxText */
|
|
166530
|
+
if (child.kind !== 11 /* JsxText */) {
|
|
166500
166531
|
Debug.assert(tokenInfo.token.end === child.end, "Token end is child end");
|
|
166501
166532
|
consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, child);
|
|
166502
166533
|
return inheritedIndentation;
|
|
@@ -169312,6 +169343,8 @@ __export(ts_exports3, {
|
|
|
169312
169343
|
isWithStatement: () => isWithStatement,
|
|
169313
169344
|
isWriteAccess: () => isWriteAccess,
|
|
169314
169345
|
isWriteOnlyAccess: () => isWriteOnlyAccess,
|
|
169346
|
+
isWriteOnlyUsage: () => isWriteOnlyUsage,
|
|
169347
|
+
isWriteUsage: () => isWriteUsage,
|
|
169315
169348
|
isYieldExpression: () => isYieldExpression,
|
|
169316
169349
|
jsxModeNeedsExplicitImport: () => jsxModeNeedsExplicitImport,
|
|
169317
169350
|
keywordPart: () => keywordPart,
|
|
@@ -183262,6 +183295,8 @@ start(initializeNodeSystem(), require("os").platform());
|
|
|
183262
183295
|
isWithStatement,
|
|
183263
183296
|
isWriteAccess,
|
|
183264
183297
|
isWriteOnlyAccess,
|
|
183298
|
+
isWriteOnlyUsage,
|
|
183299
|
+
isWriteUsage,
|
|
183265
183300
|
isYieldExpression,
|
|
183266
183301
|
jsxModeNeedsExplicitImport,
|
|
183267
183302
|
keywordPart,
|
package/lib/tsserverlibrary.js
CHANGED
|
@@ -17391,20 +17391,39 @@ ${lanes.join("\n")}
|
|
|
17391
17391
|
function isWriteAccess(node) {
|
|
17392
17392
|
return accessKind(node) !== 0 /* Read */;
|
|
17393
17393
|
}
|
|
17394
|
+
function isWriteOnlyUsage(node) {
|
|
17395
|
+
return accessKindForUsageChecks(node) === 1 /* Write */;
|
|
17396
|
+
}
|
|
17397
|
+
function isWriteUsage(node) {
|
|
17398
|
+
return accessKindForUsageChecks(node) !== 0 /* Read */;
|
|
17399
|
+
}
|
|
17400
|
+
function accessKindForUsageChecks(node) {
|
|
17401
|
+
const kind = accessKind(node);
|
|
17402
|
+
const { parent: parent2 } = node;
|
|
17403
|
+
switch (parent2 == null ? void 0 : parent2.kind) {
|
|
17404
|
+
case 222 /* PostfixUnaryExpression */:
|
|
17405
|
+
case 221 /* PrefixUnaryExpression */:
|
|
17406
|
+
case 223 /* BinaryExpression */:
|
|
17407
|
+
return kind === 2 /* ReadWrite */ ? writeOrReadWrite() : kind;
|
|
17408
|
+
default:
|
|
17409
|
+
return kind;
|
|
17410
|
+
}
|
|
17411
|
+
function writeOrReadWrite() {
|
|
17412
|
+
return parent2.parent && walkUpParenthesizedExpressions(parent2.parent).kind === 241 /* ExpressionStatement */ ? 1 /* Write */ : 2 /* ReadWrite */;
|
|
17413
|
+
}
|
|
17414
|
+
}
|
|
17394
17415
|
function accessKind(node) {
|
|
17395
17416
|
const { parent: parent2 } = node;
|
|
17396
|
-
|
|
17397
|
-
return 0 /* Read */;
|
|
17398
|
-
switch (parent2.kind) {
|
|
17417
|
+
switch (parent2 == null ? void 0 : parent2.kind) {
|
|
17399
17418
|
case 214 /* ParenthesizedExpression */:
|
|
17400
17419
|
return accessKind(parent2);
|
|
17401
17420
|
case 222 /* PostfixUnaryExpression */:
|
|
17402
17421
|
case 221 /* PrefixUnaryExpression */:
|
|
17403
17422
|
const { operator } = parent2;
|
|
17404
|
-
return operator === 45 /* PlusPlusToken */ || operator === 46 /* MinusMinusToken */ ?
|
|
17423
|
+
return operator === 45 /* PlusPlusToken */ || operator === 46 /* MinusMinusToken */ ? 2 /* ReadWrite */ : 0 /* Read */;
|
|
17405
17424
|
case 223 /* BinaryExpression */:
|
|
17406
17425
|
const { left, operatorToken } = parent2;
|
|
17407
|
-
return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 63 /* EqualsToken */ ? 1 /* Write */ :
|
|
17426
|
+
return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 63 /* EqualsToken */ ? 1 /* Write */ : 2 /* ReadWrite */ : 0 /* Read */;
|
|
17408
17427
|
case 208 /* PropertyAccessExpression */:
|
|
17409
17428
|
return parent2.name !== node ? 0 /* Read */ : accessKind(parent2);
|
|
17410
17429
|
case 299 /* PropertyAssignment */: {
|
|
@@ -17418,9 +17437,6 @@ ${lanes.join("\n")}
|
|
|
17418
17437
|
default:
|
|
17419
17438
|
return 0 /* Read */;
|
|
17420
17439
|
}
|
|
17421
|
-
function writeOrReadWrite() {
|
|
17422
|
-
return parent2.parent && walkUpParenthesizedExpressions(parent2.parent).kind === 241 /* ExpressionStatement */ ? 1 /* Write */ : 2 /* ReadWrite */;
|
|
17423
|
-
}
|
|
17424
17440
|
}
|
|
17425
17441
|
function reverseAccessKind(a) {
|
|
17426
17442
|
switch (a) {
|
|
@@ -32041,9 +32057,13 @@ ${lanes.join("\n")}
|
|
|
32041
32057
|
function parseJsxClosingFragment(inExpressionContext) {
|
|
32042
32058
|
const pos = getNodePos();
|
|
32043
32059
|
parseExpected(30 /* LessThanSlashToken */);
|
|
32060
|
+
if (tokenIsIdentifierOrKeyword(token())) {
|
|
32061
|
+
parseErrorAtRange(parseJsxElementName(), Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment);
|
|
32062
|
+
}
|
|
32044
32063
|
if (parseExpected(
|
|
32045
32064
|
31 /* GreaterThanToken */,
|
|
32046
|
-
|
|
32065
|
+
/*diagnostic*/
|
|
32066
|
+
void 0,
|
|
32047
32067
|
/*shouldAdvance*/
|
|
32048
32068
|
false
|
|
32049
32069
|
)) {
|
|
@@ -65766,7 +65786,7 @@ ${lanes.join("\n")}
|
|
|
65766
65786
|
111551 /* Value */ | 1048576 /* ExportValue */,
|
|
65767
65787
|
getCannotFindNameDiagnosticForName(node),
|
|
65768
65788
|
node,
|
|
65769
|
-
!
|
|
65789
|
+
!isWriteOnlyUsage(node),
|
|
65770
65790
|
/*excludeGlobals*/
|
|
65771
65791
|
false
|
|
65772
65792
|
) || unknownSymbol;
|
|
@@ -70584,8 +70604,8 @@ ${lanes.join("\n")}
|
|
|
70584
70604
|
}
|
|
70585
70605
|
return nonNullType;
|
|
70586
70606
|
}
|
|
70587
|
-
function checkPropertyAccessExpression(node, checkMode) {
|
|
70588
|
-
return node.flags & 32 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode);
|
|
70607
|
+
function checkPropertyAccessExpression(node, checkMode, writeOnly) {
|
|
70608
|
+
return node.flags & 32 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode, writeOnly);
|
|
70589
70609
|
}
|
|
70590
70610
|
function checkPropertyAccessChain(node, checkMode) {
|
|
70591
70611
|
const leftType = checkExpression(node.expression);
|
|
@@ -70716,7 +70736,7 @@ ${lanes.join("\n")}
|
|
|
70716
70736
|
false
|
|
70717
70737
|
) === getDeclaringConstructor(prop);
|
|
70718
70738
|
}
|
|
70719
|
-
function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode) {
|
|
70739
|
+
function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode, writeOnly) {
|
|
70720
70740
|
const parentSymbol = getNodeLinks(left).resolvedSymbol;
|
|
70721
70741
|
const assignmentKind = getAssignmentTargetKind(node);
|
|
70722
70742
|
const apparentType = getApparentType(assignmentKind !== 0 /* None */ || isMethodAccessForCall(node) ? getWidenedType(leftType) : leftType);
|
|
@@ -70815,13 +70835,12 @@ ${lanes.join("\n")}
|
|
|
70815
70835
|
checkPropertyNotUsedBeforeDeclaration(prop, node, right);
|
|
70816
70836
|
markPropertyAsReferenced(prop, node, isSelfTypeAccess(left, parentSymbol));
|
|
70817
70837
|
getNodeLinks(node).resolvedSymbol = prop;
|
|
70818
|
-
|
|
70819
|
-
checkPropertyAccessibility(node, left.kind === 106 /* SuperKeyword */, writing, apparentType, prop);
|
|
70838
|
+
checkPropertyAccessibility(node, left.kind === 106 /* SuperKeyword */, isWriteAccess(node), apparentType, prop);
|
|
70820
70839
|
if (isAssignmentToReadonlyEntity(node, prop, assignmentKind)) {
|
|
70821
70840
|
error(right, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, idText(right));
|
|
70822
70841
|
return errorType;
|
|
70823
70842
|
}
|
|
70824
|
-
propType = isThisPropertyAccessInConstructor(node, prop) ? autoType :
|
|
70843
|
+
propType = isThisPropertyAccessInConstructor(node, prop) ? autoType : writeOnly || isWriteOnlyAccess(node) ? getWriteTypeOfSymbol(prop) : getTypeOfSymbol(prop);
|
|
70825
70844
|
}
|
|
70826
70845
|
return getFlowTypeOfAccessExpression(node, prop, propType, right, checkMode);
|
|
70827
70846
|
}
|
|
@@ -71137,7 +71156,7 @@ ${lanes.join("\n")}
|
|
|
71137
71156
|
if (!hasPrivateModifier && !hasPrivateIdentifier) {
|
|
71138
71157
|
return;
|
|
71139
71158
|
}
|
|
71140
|
-
if (nodeForCheckWriteOnly &&
|
|
71159
|
+
if (nodeForCheckWriteOnly && isWriteOnlyUsage(nodeForCheckWriteOnly) && !(prop.flags & 65536 /* SetAccessor */)) {
|
|
71141
71160
|
return;
|
|
71142
71161
|
}
|
|
71143
71162
|
if (isSelfTypeAccess2) {
|
|
@@ -75451,6 +75470,16 @@ ${lanes.join("\n")}
|
|
|
75451
75470
|
addLazyDiagnostic(checkAssignmentOperatorWorker);
|
|
75452
75471
|
}
|
|
75453
75472
|
function checkAssignmentOperatorWorker() {
|
|
75473
|
+
let assigneeType = leftType;
|
|
75474
|
+
if (isCompoundAssignment(operatorToken.kind) && left.kind === 208 /* PropertyAccessExpression */) {
|
|
75475
|
+
assigneeType = checkPropertyAccessExpression(
|
|
75476
|
+
left,
|
|
75477
|
+
/*checkMode*/
|
|
75478
|
+
void 0,
|
|
75479
|
+
/*writeOnly*/
|
|
75480
|
+
true
|
|
75481
|
+
);
|
|
75482
|
+
}
|
|
75454
75483
|
if (checkReferenceExpression(
|
|
75455
75484
|
left,
|
|
75456
75485
|
Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access,
|
|
@@ -75463,7 +75492,7 @@ ${lanes.join("\n")}
|
|
|
75463
75492
|
headMessage = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target;
|
|
75464
75493
|
}
|
|
75465
75494
|
}
|
|
75466
|
-
checkTypeAssignableToAndOptionallyElaborate(valueType,
|
|
75495
|
+
checkTypeAssignableToAndOptionallyElaborate(valueType, assigneeType, left, right, headMessage);
|
|
75467
75496
|
}
|
|
75468
75497
|
}
|
|
75469
75498
|
}
|
|
@@ -165943,7 +165972,7 @@ ${options.prefix}` : "\n" : options.prefix
|
|
|
165943
165972
|
}
|
|
165944
165973
|
function processChildNode(child, inheritedIndentation, parent2, parentDynamicIndentation, parentStartLine, undecoratedParentStartLine, isListItem, isFirstListItem) {
|
|
165945
165974
|
Debug.assert(!nodeIsSynthesized(child));
|
|
165946
|
-
if (nodeIsMissing(child)) {
|
|
165975
|
+
if (nodeIsMissing(child) || isGrammarError(parent2, child)) {
|
|
165947
165976
|
return inheritedIndentation;
|
|
165948
165977
|
}
|
|
165949
165978
|
const childStartPos = child.getStart(sourceFile);
|
|
@@ -165986,7 +166015,7 @@ ${options.prefix}` : "\n" : options.prefix
|
|
|
165986
166015
|
}
|
|
165987
166016
|
if (isToken(child)) {
|
|
165988
166017
|
const tokenInfo = formattingScanner.readTokenInfo(child);
|
|
165989
|
-
if (child.kind !== 11 /* JsxText */
|
|
166018
|
+
if (child.kind !== 11 /* JsxText */) {
|
|
165990
166019
|
Debug.assert(tokenInfo.token.end === child.end, "Token end is child end");
|
|
165991
166020
|
consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, child);
|
|
165992
166021
|
return inheritedIndentation;
|
|
@@ -179898,6 +179927,8 @@ ${e.message}`;
|
|
|
179898
179927
|
isWithStatement: () => isWithStatement,
|
|
179899
179928
|
isWriteAccess: () => isWriteAccess,
|
|
179900
179929
|
isWriteOnlyAccess: () => isWriteOnlyAccess,
|
|
179930
|
+
isWriteOnlyUsage: () => isWriteOnlyUsage,
|
|
179931
|
+
isWriteUsage: () => isWriteUsage,
|
|
179901
179932
|
isYieldExpression: () => isYieldExpression,
|
|
179902
179933
|
jsxModeNeedsExplicitImport: () => jsxModeNeedsExplicitImport,
|
|
179903
179934
|
keywordPart: () => keywordPart,
|
|
@@ -182258,6 +182289,8 @@ ${e.message}`;
|
|
|
182258
182289
|
isWithStatement: () => isWithStatement,
|
|
182259
182290
|
isWriteAccess: () => isWriteAccess,
|
|
182260
182291
|
isWriteOnlyAccess: () => isWriteOnlyAccess,
|
|
182292
|
+
isWriteOnlyUsage: () => isWriteOnlyUsage,
|
|
182293
|
+
isWriteUsage: () => isWriteUsage,
|
|
182261
182294
|
isYieldExpression: () => isYieldExpression,
|
|
182262
182295
|
jsxModeNeedsExplicitImport: () => jsxModeNeedsExplicitImport,
|
|
182263
182296
|
keywordPart: () => keywordPart,
|
package/lib/typescript.js
CHANGED
|
@@ -17391,20 +17391,39 @@ ${lanes.join("\n")}
|
|
|
17391
17391
|
function isWriteAccess(node) {
|
|
17392
17392
|
return accessKind(node) !== 0 /* Read */;
|
|
17393
17393
|
}
|
|
17394
|
+
function isWriteOnlyUsage(node) {
|
|
17395
|
+
return accessKindForUsageChecks(node) === 1 /* Write */;
|
|
17396
|
+
}
|
|
17397
|
+
function isWriteUsage(node) {
|
|
17398
|
+
return accessKindForUsageChecks(node) !== 0 /* Read */;
|
|
17399
|
+
}
|
|
17400
|
+
function accessKindForUsageChecks(node) {
|
|
17401
|
+
const kind = accessKind(node);
|
|
17402
|
+
const { parent: parent2 } = node;
|
|
17403
|
+
switch (parent2 == null ? void 0 : parent2.kind) {
|
|
17404
|
+
case 222 /* PostfixUnaryExpression */:
|
|
17405
|
+
case 221 /* PrefixUnaryExpression */:
|
|
17406
|
+
case 223 /* BinaryExpression */:
|
|
17407
|
+
return kind === 2 /* ReadWrite */ ? writeOrReadWrite() : kind;
|
|
17408
|
+
default:
|
|
17409
|
+
return kind;
|
|
17410
|
+
}
|
|
17411
|
+
function writeOrReadWrite() {
|
|
17412
|
+
return parent2.parent && walkUpParenthesizedExpressions(parent2.parent).kind === 241 /* ExpressionStatement */ ? 1 /* Write */ : 2 /* ReadWrite */;
|
|
17413
|
+
}
|
|
17414
|
+
}
|
|
17394
17415
|
function accessKind(node) {
|
|
17395
17416
|
const { parent: parent2 } = node;
|
|
17396
|
-
|
|
17397
|
-
return 0 /* Read */;
|
|
17398
|
-
switch (parent2.kind) {
|
|
17417
|
+
switch (parent2 == null ? void 0 : parent2.kind) {
|
|
17399
17418
|
case 214 /* ParenthesizedExpression */:
|
|
17400
17419
|
return accessKind(parent2);
|
|
17401
17420
|
case 222 /* PostfixUnaryExpression */:
|
|
17402
17421
|
case 221 /* PrefixUnaryExpression */:
|
|
17403
17422
|
const { operator } = parent2;
|
|
17404
|
-
return operator === 45 /* PlusPlusToken */ || operator === 46 /* MinusMinusToken */ ?
|
|
17423
|
+
return operator === 45 /* PlusPlusToken */ || operator === 46 /* MinusMinusToken */ ? 2 /* ReadWrite */ : 0 /* Read */;
|
|
17405
17424
|
case 223 /* BinaryExpression */:
|
|
17406
17425
|
const { left, operatorToken } = parent2;
|
|
17407
|
-
return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 63 /* EqualsToken */ ? 1 /* Write */ :
|
|
17426
|
+
return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 63 /* EqualsToken */ ? 1 /* Write */ : 2 /* ReadWrite */ : 0 /* Read */;
|
|
17408
17427
|
case 208 /* PropertyAccessExpression */:
|
|
17409
17428
|
return parent2.name !== node ? 0 /* Read */ : accessKind(parent2);
|
|
17410
17429
|
case 299 /* PropertyAssignment */: {
|
|
@@ -17418,9 +17437,6 @@ ${lanes.join("\n")}
|
|
|
17418
17437
|
default:
|
|
17419
17438
|
return 0 /* Read */;
|
|
17420
17439
|
}
|
|
17421
|
-
function writeOrReadWrite() {
|
|
17422
|
-
return parent2.parent && walkUpParenthesizedExpressions(parent2.parent).kind === 241 /* ExpressionStatement */ ? 1 /* Write */ : 2 /* ReadWrite */;
|
|
17423
|
-
}
|
|
17424
17440
|
}
|
|
17425
17441
|
function reverseAccessKind(a) {
|
|
17426
17442
|
switch (a) {
|
|
@@ -32041,9 +32057,13 @@ ${lanes.join("\n")}
|
|
|
32041
32057
|
function parseJsxClosingFragment(inExpressionContext) {
|
|
32042
32058
|
const pos = getNodePos();
|
|
32043
32059
|
parseExpected(30 /* LessThanSlashToken */);
|
|
32060
|
+
if (tokenIsIdentifierOrKeyword(token())) {
|
|
32061
|
+
parseErrorAtRange(parseJsxElementName(), Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment);
|
|
32062
|
+
}
|
|
32044
32063
|
if (parseExpected(
|
|
32045
32064
|
31 /* GreaterThanToken */,
|
|
32046
|
-
|
|
32065
|
+
/*diagnostic*/
|
|
32066
|
+
void 0,
|
|
32047
32067
|
/*shouldAdvance*/
|
|
32048
32068
|
false
|
|
32049
32069
|
)) {
|
|
@@ -65766,7 +65786,7 @@ ${lanes.join("\n")}
|
|
|
65766
65786
|
111551 /* Value */ | 1048576 /* ExportValue */,
|
|
65767
65787
|
getCannotFindNameDiagnosticForName(node),
|
|
65768
65788
|
node,
|
|
65769
|
-
!
|
|
65789
|
+
!isWriteOnlyUsage(node),
|
|
65770
65790
|
/*excludeGlobals*/
|
|
65771
65791
|
false
|
|
65772
65792
|
) || unknownSymbol;
|
|
@@ -70584,8 +70604,8 @@ ${lanes.join("\n")}
|
|
|
70584
70604
|
}
|
|
70585
70605
|
return nonNullType;
|
|
70586
70606
|
}
|
|
70587
|
-
function checkPropertyAccessExpression(node, checkMode) {
|
|
70588
|
-
return node.flags & 32 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode);
|
|
70607
|
+
function checkPropertyAccessExpression(node, checkMode, writeOnly) {
|
|
70608
|
+
return node.flags & 32 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode, writeOnly);
|
|
70589
70609
|
}
|
|
70590
70610
|
function checkPropertyAccessChain(node, checkMode) {
|
|
70591
70611
|
const leftType = checkExpression(node.expression);
|
|
@@ -70716,7 +70736,7 @@ ${lanes.join("\n")}
|
|
|
70716
70736
|
false
|
|
70717
70737
|
) === getDeclaringConstructor(prop);
|
|
70718
70738
|
}
|
|
70719
|
-
function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode) {
|
|
70739
|
+
function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode, writeOnly) {
|
|
70720
70740
|
const parentSymbol = getNodeLinks(left).resolvedSymbol;
|
|
70721
70741
|
const assignmentKind = getAssignmentTargetKind(node);
|
|
70722
70742
|
const apparentType = getApparentType(assignmentKind !== 0 /* None */ || isMethodAccessForCall(node) ? getWidenedType(leftType) : leftType);
|
|
@@ -70815,13 +70835,12 @@ ${lanes.join("\n")}
|
|
|
70815
70835
|
checkPropertyNotUsedBeforeDeclaration(prop, node, right);
|
|
70816
70836
|
markPropertyAsReferenced(prop, node, isSelfTypeAccess(left, parentSymbol));
|
|
70817
70837
|
getNodeLinks(node).resolvedSymbol = prop;
|
|
70818
|
-
|
|
70819
|
-
checkPropertyAccessibility(node, left.kind === 106 /* SuperKeyword */, writing, apparentType, prop);
|
|
70838
|
+
checkPropertyAccessibility(node, left.kind === 106 /* SuperKeyword */, isWriteAccess(node), apparentType, prop);
|
|
70820
70839
|
if (isAssignmentToReadonlyEntity(node, prop, assignmentKind)) {
|
|
70821
70840
|
error(right, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, idText(right));
|
|
70822
70841
|
return errorType;
|
|
70823
70842
|
}
|
|
70824
|
-
propType = isThisPropertyAccessInConstructor(node, prop) ? autoType :
|
|
70843
|
+
propType = isThisPropertyAccessInConstructor(node, prop) ? autoType : writeOnly || isWriteOnlyAccess(node) ? getWriteTypeOfSymbol(prop) : getTypeOfSymbol(prop);
|
|
70825
70844
|
}
|
|
70826
70845
|
return getFlowTypeOfAccessExpression(node, prop, propType, right, checkMode);
|
|
70827
70846
|
}
|
|
@@ -71137,7 +71156,7 @@ ${lanes.join("\n")}
|
|
|
71137
71156
|
if (!hasPrivateModifier && !hasPrivateIdentifier) {
|
|
71138
71157
|
return;
|
|
71139
71158
|
}
|
|
71140
|
-
if (nodeForCheckWriteOnly &&
|
|
71159
|
+
if (nodeForCheckWriteOnly && isWriteOnlyUsage(nodeForCheckWriteOnly) && !(prop.flags & 65536 /* SetAccessor */)) {
|
|
71141
71160
|
return;
|
|
71142
71161
|
}
|
|
71143
71162
|
if (isSelfTypeAccess2) {
|
|
@@ -75451,6 +75470,16 @@ ${lanes.join("\n")}
|
|
|
75451
75470
|
addLazyDiagnostic(checkAssignmentOperatorWorker);
|
|
75452
75471
|
}
|
|
75453
75472
|
function checkAssignmentOperatorWorker() {
|
|
75473
|
+
let assigneeType = leftType;
|
|
75474
|
+
if (isCompoundAssignment(operatorToken.kind) && left.kind === 208 /* PropertyAccessExpression */) {
|
|
75475
|
+
assigneeType = checkPropertyAccessExpression(
|
|
75476
|
+
left,
|
|
75477
|
+
/*checkMode*/
|
|
75478
|
+
void 0,
|
|
75479
|
+
/*writeOnly*/
|
|
75480
|
+
true
|
|
75481
|
+
);
|
|
75482
|
+
}
|
|
75454
75483
|
if (checkReferenceExpression(
|
|
75455
75484
|
left,
|
|
75456
75485
|
Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access,
|
|
@@ -75463,7 +75492,7 @@ ${lanes.join("\n")}
|
|
|
75463
75492
|
headMessage = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target;
|
|
75464
75493
|
}
|
|
75465
75494
|
}
|
|
75466
|
-
checkTypeAssignableToAndOptionallyElaborate(valueType,
|
|
75495
|
+
checkTypeAssignableToAndOptionallyElaborate(valueType, assigneeType, left, right, headMessage);
|
|
75467
75496
|
}
|
|
75468
75497
|
}
|
|
75469
75498
|
}
|
|
@@ -165957,7 +165986,7 @@ ${options.prefix}` : "\n" : options.prefix
|
|
|
165957
165986
|
}
|
|
165958
165987
|
function processChildNode(child, inheritedIndentation, parent2, parentDynamicIndentation, parentStartLine, undecoratedParentStartLine, isListItem, isFirstListItem) {
|
|
165959
165988
|
Debug.assert(!nodeIsSynthesized(child));
|
|
165960
|
-
if (nodeIsMissing(child)) {
|
|
165989
|
+
if (nodeIsMissing(child) || isGrammarError(parent2, child)) {
|
|
165961
165990
|
return inheritedIndentation;
|
|
165962
165991
|
}
|
|
165963
165992
|
const childStartPos = child.getStart(sourceFile);
|
|
@@ -166000,7 +166029,7 @@ ${options.prefix}` : "\n" : options.prefix
|
|
|
166000
166029
|
}
|
|
166001
166030
|
if (isToken(child)) {
|
|
166002
166031
|
const tokenInfo = formattingScanner.readTokenInfo(child);
|
|
166003
|
-
if (child.kind !== 11 /* JsxText */
|
|
166032
|
+
if (child.kind !== 11 /* JsxText */) {
|
|
166004
166033
|
Debug.assert(tokenInfo.token.end === child.end, "Token end is child end");
|
|
166005
166034
|
consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, child);
|
|
166006
166035
|
return inheritedIndentation;
|
|
@@ -169079,6 +169108,8 @@ ${options.prefix}` : "\n" : options.prefix
|
|
|
169079
169108
|
isWithStatement: () => isWithStatement,
|
|
169080
169109
|
isWriteAccess: () => isWriteAccess,
|
|
169081
169110
|
isWriteOnlyAccess: () => isWriteOnlyAccess,
|
|
169111
|
+
isWriteOnlyUsage: () => isWriteOnlyUsage,
|
|
169112
|
+
isWriteUsage: () => isWriteUsage,
|
|
169082
169113
|
isYieldExpression: () => isYieldExpression,
|
|
169083
169114
|
jsxModeNeedsExplicitImport: () => jsxModeNeedsExplicitImport,
|
|
169084
169115
|
keywordPart: () => keywordPart,
|
package/lib/typingsInstaller.js
CHANGED
|
@@ -22429,9 +22429,13 @@ var Parser;
|
|
|
22429
22429
|
function parseJsxClosingFragment(inExpressionContext) {
|
|
22430
22430
|
const pos = getNodePos();
|
|
22431
22431
|
parseExpected(30 /* LessThanSlashToken */);
|
|
22432
|
+
if (tokenIsIdentifierOrKeyword(token())) {
|
|
22433
|
+
parseErrorAtRange(parseJsxElementName(), Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment);
|
|
22434
|
+
}
|
|
22432
22435
|
if (parseExpected(
|
|
22433
22436
|
31 /* GreaterThanToken */,
|
|
22434
|
-
|
|
22437
|
+
/*diagnostic*/
|
|
22438
|
+
void 0,
|
|
22435
22439
|
/*shouldAdvance*/
|
|
22436
22440
|
false
|
|
22437
22441
|
)) {
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@typescript-deploys/pr-build",
|
|
3
3
|
"author": "Microsoft Corp.",
|
|
4
4
|
"homepage": "https://www.typescriptlang.org/",
|
|
5
|
-
"version": "5.0.0-pr-
|
|
5
|
+
"version": "5.0.0-pr-50431-13",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"description": "TypeScript is a language for application scale JavaScript development",
|
|
8
8
|
"keywords": [
|