@typescript-deploys/pr-build 5.5.0-pr-49218-53 → 5.5.0-pr-57619-14
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.esnext.d.ts +1 -0
- package/lib/lib.esnext.string.d.ts +29 -0
- package/lib/tsc.js +68 -47
- package/lib/typescript.js +68 -47
- package/package.json +2 -2
package/lib/lib.esnext.d.ts
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*! *****************************************************************************
|
|
2
|
+
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
4
|
+
this file except in compliance with the License. You may obtain a copy of the
|
|
5
|
+
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
|
|
7
|
+
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
8
|
+
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
|
9
|
+
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
10
|
+
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
11
|
+
|
|
12
|
+
See the Apache Version 2.0 License for specific language governing permissions
|
|
13
|
+
and limitations under the License.
|
|
14
|
+
***************************************************************************** */
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
/// <reference no-default-lib="true"/>
|
|
18
|
+
|
|
19
|
+
interface String {
|
|
20
|
+
/**
|
|
21
|
+
* Returns true if all leading surrogates and trailing surrogates appear paired and in order.
|
|
22
|
+
*/
|
|
23
|
+
isWellFormed(): boolean;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Returns a string where all lone or out-of-order surrogates have been replaced by the Unicode replacement character (U+FFFD).
|
|
27
|
+
*/
|
|
28
|
+
toWellFormed(): string;
|
|
29
|
+
}
|
package/lib/tsc.js
CHANGED
|
@@ -12083,6 +12083,10 @@ var getScriptTargetFeatures = /* @__PURE__ */ memoize(
|
|
|
12083
12083
|
],
|
|
12084
12084
|
es2022: [
|
|
12085
12085
|
"at"
|
|
12086
|
+
],
|
|
12087
|
+
esnext: [
|
|
12088
|
+
"isWellFormed",
|
|
12089
|
+
"toWellFormed"
|
|
12086
12090
|
]
|
|
12087
12091
|
})),
|
|
12088
12092
|
StringConstructor: new Map(Object.entries({
|
|
@@ -34442,6 +34446,7 @@ var libEntries = [
|
|
|
34442
34446
|
["esnext.object", "lib.esnext.object.d.ts"],
|
|
34443
34447
|
["esnext.array", "lib.esnext.array.d.ts"],
|
|
34444
34448
|
["esnext.regexp", "lib.esnext.regexp.d.ts"],
|
|
34449
|
+
["esnext.string", "lib.esnext.string.d.ts"],
|
|
34445
34450
|
["decorators", "lib.decorators.d.ts"],
|
|
34446
34451
|
["decorators.legacy", "lib.decorators.legacy.d.ts"]
|
|
34447
34452
|
];
|
|
@@ -54700,21 +54705,58 @@ function createTypeChecker(host) {
|
|
|
54700
54705
|
result.flags |= callChainFlags;
|
|
54701
54706
|
return result;
|
|
54702
54707
|
}
|
|
54708
|
+
function getFallbackExpandedLabels(restType, restDeclaration) {
|
|
54709
|
+
if (!restDeclaration) {
|
|
54710
|
+
return;
|
|
54711
|
+
}
|
|
54712
|
+
Debug.assertNode(restDeclaration, isParameter);
|
|
54713
|
+
if (restDeclaration.name.kind !== 207 /* ArrayBindingPattern */) {
|
|
54714
|
+
return;
|
|
54715
|
+
}
|
|
54716
|
+
const nameElements = restDeclaration.name.elements;
|
|
54717
|
+
const elementFlags = restType.target.elementFlags;
|
|
54718
|
+
let structuresMatch = true;
|
|
54719
|
+
return map(elementFlags, (elementFlag, i) => {
|
|
54720
|
+
if (!structuresMatch || i >= nameElements.length) {
|
|
54721
|
+
return void 0;
|
|
54722
|
+
}
|
|
54723
|
+
const nameElement = nameElements[i];
|
|
54724
|
+
if (elementFlag & 12 /* Variable */) {
|
|
54725
|
+
structuresMatch = false;
|
|
54726
|
+
if (nameElement.kind === 208 /* BindingElement */ && nameElement.name.kind === 80 /* Identifier */ && nameElement.dotDotDotToken) {
|
|
54727
|
+
return nameElement.name.escapedText;
|
|
54728
|
+
}
|
|
54729
|
+
return void 0;
|
|
54730
|
+
}
|
|
54731
|
+
if (nameElement.kind !== 208 /* BindingElement */) {
|
|
54732
|
+
return void 0;
|
|
54733
|
+
}
|
|
54734
|
+
if (nameElement.dotDotDotToken) {
|
|
54735
|
+
structuresMatch = false;
|
|
54736
|
+
return void 0;
|
|
54737
|
+
}
|
|
54738
|
+
if (nameElement.kind === 208 /* BindingElement */ && nameElement.name.kind === 80 /* Identifier */) {
|
|
54739
|
+
return nameElement.name.escapedText;
|
|
54740
|
+
}
|
|
54741
|
+
return void 0;
|
|
54742
|
+
});
|
|
54743
|
+
}
|
|
54703
54744
|
function getExpandedParameters(sig, skipUnionExpanding) {
|
|
54704
54745
|
if (signatureHasRestParameter(sig)) {
|
|
54705
54746
|
const restIndex = sig.parameters.length - 1;
|
|
54706
54747
|
const restName = sig.parameters[restIndex].escapedName;
|
|
54707
54748
|
const restType = getTypeOfSymbol(sig.parameters[restIndex]);
|
|
54749
|
+
const restDeclaration = sig.parameters[restIndex].valueDeclaration;
|
|
54708
54750
|
if (isTupleType(restType)) {
|
|
54709
|
-
return [expandSignatureParametersWithTupleMembers(restType, restIndex, restName)];
|
|
54751
|
+
return [expandSignatureParametersWithTupleMembers(restType, restIndex, restName, getFallbackExpandedLabels(restType, restDeclaration))];
|
|
54710
54752
|
} else if (!skipUnionExpanding && restType.flags & 1048576 /* Union */ && every(restType.types, isTupleType)) {
|
|
54711
|
-
return map(restType.types, (t) => expandSignatureParametersWithTupleMembers(t, restIndex, restName));
|
|
54753
|
+
return map(restType.types, (t) => expandSignatureParametersWithTupleMembers(t, restIndex, restName, getFallbackExpandedLabels(t, restDeclaration)));
|
|
54712
54754
|
}
|
|
54713
54755
|
}
|
|
54714
54756
|
return [sig.parameters];
|
|
54715
|
-
function expandSignatureParametersWithTupleMembers(restType, restIndex, restName) {
|
|
54757
|
+
function expandSignatureParametersWithTupleMembers(restType, restIndex, restName, fallbackLabels) {
|
|
54716
54758
|
const elementTypes = getTypeArguments(restType);
|
|
54717
|
-
const associatedNames = getUniqAssociatedNamesFromTupleType(restType, restName);
|
|
54759
|
+
const associatedNames = getUniqAssociatedNamesFromTupleType(restType, restName, fallbackLabels);
|
|
54718
54760
|
const restParams = map(elementTypes, (t, i) => {
|
|
54719
54761
|
const name = associatedNames && associatedNames[i] ? associatedNames[i] : getParameterNameAtPosition(sig, restIndex + i, restType);
|
|
54720
54762
|
const flags = restType.target.elementFlags[i];
|
|
@@ -54725,10 +54767,10 @@ function createTypeChecker(host) {
|
|
|
54725
54767
|
});
|
|
54726
54768
|
return concatenate(sig.parameters.slice(0, restIndex), restParams);
|
|
54727
54769
|
}
|
|
54728
|
-
function getUniqAssociatedNamesFromTupleType(type, restName) {
|
|
54770
|
+
function getUniqAssociatedNamesFromTupleType(type, restName, fallbackLabels) {
|
|
54729
54771
|
const associatedNamesMap = /* @__PURE__ */ new Map();
|
|
54730
54772
|
return map(type.target.labeledElementDeclarations, (labeledElement, i) => {
|
|
54731
|
-
const name = getTupleElementLabel(labeledElement, i, restName);
|
|
54773
|
+
const name = getTupleElementLabel(labeledElement, i, restName, fallbackLabels == null ? void 0 : fallbackLabels[i]);
|
|
54732
54774
|
const prevCounter = associatedNamesMap.get(name);
|
|
54733
54775
|
if (prevCounter === void 0) {
|
|
54734
54776
|
associatedNamesMap.set(name, 1);
|
|
@@ -61239,37 +61281,7 @@ function createTypeChecker(host) {
|
|
|
61239
61281
|
const restIndex = sourceRestType || targetRestType ? paramCount - 1 : -1;
|
|
61240
61282
|
for (let i = 0; i < paramCount; i++) {
|
|
61241
61283
|
const sourceType = i === restIndex ? getRestOrAnyTypeAtPosition(source, i) : tryGetTypeAtPosition(source, i);
|
|
61242
|
-
|
|
61243
|
-
if (i === restIndex && targetType && sourceType && isTupleType(sourceType)) {
|
|
61244
|
-
targetType = mapType(targetType, (t) => {
|
|
61245
|
-
if (!isTupleType(t) || // When both sides are tuples of the same structure, we don't want to "propagate" types from elements of variable positions
|
|
61246
|
-
// to the following positions as that would disallow signatures of the exact same structures when trailing fixed elements are involved:
|
|
61247
|
-
//
|
|
61248
|
-
// let fn: (...rest: [...string[], number]) => void = (...rest: [...string[], number]) => {}; // ok
|
|
61249
|
-
//
|
|
61250
|
-
// Since we want to allow contextual types to flow into paremeters, we don't need to differentiate between rest and variadic elements
|
|
61251
|
-
// as that doesn't affect the contextual type of the parameter
|
|
61252
|
-
isTupleTypeStructureMatching(sourceType, t, 2 /* MatchVariable */)) {
|
|
61253
|
-
return t;
|
|
61254
|
-
}
|
|
61255
|
-
const elementTypes = [];
|
|
61256
|
-
const elementFlags = [];
|
|
61257
|
-
const sourceArity = getTypeReferenceArity(sourceType);
|
|
61258
|
-
const targetArity = getTypeReferenceArity(t);
|
|
61259
|
-
for (let i2 = 0; i2 < sourceArity; i2++) {
|
|
61260
|
-
if (i2 >= targetArity) {
|
|
61261
|
-
if (sourceType.target.elementFlags[i2] & 3 /* Fixed */) {
|
|
61262
|
-
elementTypes.push(undefinedType);
|
|
61263
|
-
elementFlags.push(sourceType.target.elementFlags[i2]);
|
|
61264
|
-
}
|
|
61265
|
-
continue;
|
|
61266
|
-
}
|
|
61267
|
-
elementTypes.push(getTupleElementType(t, i2));
|
|
61268
|
-
elementFlags.push(sourceType.target.elementFlags[i2]);
|
|
61269
|
-
}
|
|
61270
|
-
return createTupleType(elementTypes, elementFlags);
|
|
61271
|
-
});
|
|
61272
|
-
}
|
|
61284
|
+
const targetType = i === restIndex ? getRestOrAnyTypeAtPosition(target, i) : tryGetTypeAtPosition(target, i);
|
|
61273
61285
|
if (sourceType && targetType) {
|
|
61274
61286
|
const sourceSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(source, i) ? void 0 : getSingleCallSignature(getNonNullableType(sourceType));
|
|
61275
61287
|
const targetSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(target, i) ? void 0 : getSingleCallSignature(getNonNullableType(targetType));
|
|
@@ -64540,11 +64552,8 @@ function createTypeChecker(host) {
|
|
|
64540
64552
|
}
|
|
64541
64553
|
return void 0;
|
|
64542
64554
|
}
|
|
64543
|
-
function isTupleTypeStructureMatching(t1, t2
|
|
64544
|
-
return getTypeReferenceArity(t1) === getTypeReferenceArity(t2) && every(t1.target.elementFlags, (
|
|
64545
|
-
const f2 = t2.target.elementFlags[i];
|
|
64546
|
-
return f1 === f2 || !!(tupleStructureComparisonKind & 1 /* MatchFixed */ && f1 & 3 /* Fixed */ && f2 & 3 /* Fixed */) || !!(tupleStructureComparisonKind & 2 /* MatchVariable */ && f1 & 12 /* Variable */ && f2 & 12 /* Variable */);
|
|
64547
|
-
});
|
|
64555
|
+
function isTupleTypeStructureMatching(t1, t2) {
|
|
64556
|
+
return getTypeReferenceArity(t1) === getTypeReferenceArity(t2) && every(t1.target.elementFlags, (f, i) => (f & 12 /* Variable */) === (t2.target.elementFlags[i] & 12 /* Variable */));
|
|
64548
64557
|
}
|
|
64549
64558
|
function isZeroBigInt({ value }) {
|
|
64550
64559
|
return value.base10Value === "0";
|
|
@@ -65785,7 +65794,7 @@ function createTypeChecker(host) {
|
|
|
65785
65794
|
const targetArity = getTypeReferenceArity(target);
|
|
65786
65795
|
const elementTypes = getTypeArguments(target);
|
|
65787
65796
|
const elementFlags = target.target.elementFlags;
|
|
65788
|
-
if (isTupleType(source) && isTupleTypeStructureMatching(source, target
|
|
65797
|
+
if (isTupleType(source) && isTupleTypeStructureMatching(source, target)) {
|
|
65789
65798
|
for (let i = 0; i < targetArity; i++) {
|
|
65790
65799
|
inferFromTypes(getTypeArguments(source)[i], elementTypes[i]);
|
|
65791
65800
|
}
|
|
@@ -71440,7 +71449,10 @@ function createTypeChecker(host) {
|
|
|
71440
71449
|
if (indexInfo.isReadonly && (isAssignmentTarget(node) || isDeleteTarget(node))) {
|
|
71441
71450
|
error(node, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(apparentType));
|
|
71442
71451
|
}
|
|
71443
|
-
propType =
|
|
71452
|
+
propType = indexInfo.type;
|
|
71453
|
+
if (compilerOptions.noUncheckedIndexedAccess && getAssignmentTargetKind(node) !== 1 /* Definite */) {
|
|
71454
|
+
propType = getUnionType([propType, missingType]);
|
|
71455
|
+
}
|
|
71444
71456
|
if (compilerOptions.noPropertyAccessFromIndexSignature && isPropertyAccessExpression(node)) {
|
|
71445
71457
|
error(right, Diagnostics.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0, unescapeLeadingUnderscores(right.escapedText));
|
|
71446
71458
|
}
|
|
@@ -71890,7 +71902,16 @@ function createTypeChecker(host) {
|
|
|
71890
71902
|
return errorType;
|
|
71891
71903
|
}
|
|
71892
71904
|
const effectiveIndexType = isForInVariableForNumericPropertyNames(indexExpression) ? numberType : indexType;
|
|
71893
|
-
const
|
|
71905
|
+
const assignmentTargetKind = getAssignmentTargetKind(node);
|
|
71906
|
+
let accessFlags;
|
|
71907
|
+
if (assignmentTargetKind === 0 /* None */) {
|
|
71908
|
+
accessFlags = 32 /* ExpressionPosition */;
|
|
71909
|
+
} else {
|
|
71910
|
+
accessFlags = 4 /* Writing */ | (isGenericObjectType(objectType) && !isThisTypeParameter(objectType) ? 2 /* NoIndexSignatures */ : 0);
|
|
71911
|
+
if (assignmentTargetKind === 2 /* Compound */) {
|
|
71912
|
+
accessFlags |= 32 /* ExpressionPosition */;
|
|
71913
|
+
}
|
|
71914
|
+
}
|
|
71894
71915
|
const indexedAccessType = getIndexedAccessTypeOrUndefined(objectType, effectiveIndexType, accessFlags, node) || errorType;
|
|
71895
71916
|
return checkIndexedAccessIndexType(getFlowTypeOfAccessExpression(node, getNodeLinks(node).resolvedSymbol, indexedAccessType, indexExpression, checkMode), node);
|
|
71896
71917
|
}
|
|
@@ -74213,9 +74234,9 @@ function createTypeChecker(host) {
|
|
|
74213
74234
|
!!declaration && (hasInitializer(declaration) || isOptionalDeclaration(declaration))
|
|
74214
74235
|
);
|
|
74215
74236
|
}
|
|
74216
|
-
function getTupleElementLabel(d, index, restParameterName = "arg") {
|
|
74237
|
+
function getTupleElementLabel(d, index, restParameterName = "arg", fallbackLabel) {
|
|
74217
74238
|
if (!d) {
|
|
74218
|
-
return `${restParameterName}_${index}`;
|
|
74239
|
+
return fallbackLabel ?? `${restParameterName}_${index}`;
|
|
74219
74240
|
}
|
|
74220
74241
|
Debug.assert(isIdentifier(d.name));
|
|
74221
74242
|
return d.name.escapedText;
|
package/lib/typescript.js
CHANGED
|
@@ -15916,6 +15916,10 @@ var getScriptTargetFeatures = /* @__PURE__ */ memoize(
|
|
|
15916
15916
|
],
|
|
15917
15917
|
es2022: [
|
|
15918
15918
|
"at"
|
|
15919
|
+
],
|
|
15920
|
+
esnext: [
|
|
15921
|
+
"isWellFormed",
|
|
15922
|
+
"toWellFormed"
|
|
15919
15923
|
]
|
|
15920
15924
|
})),
|
|
15921
15925
|
StringConstructor: new Map(Object.entries({
|
|
@@ -38888,6 +38892,7 @@ var libEntries = [
|
|
|
38888
38892
|
["esnext.object", "lib.esnext.object.d.ts"],
|
|
38889
38893
|
["esnext.array", "lib.esnext.array.d.ts"],
|
|
38890
38894
|
["esnext.regexp", "lib.esnext.regexp.d.ts"],
|
|
38895
|
+
["esnext.string", "lib.esnext.string.d.ts"],
|
|
38891
38896
|
["decorators", "lib.decorators.d.ts"],
|
|
38892
38897
|
["decorators.legacy", "lib.decorators.legacy.d.ts"]
|
|
38893
38898
|
];
|
|
@@ -59502,21 +59507,58 @@ function createTypeChecker(host) {
|
|
|
59502
59507
|
result.flags |= callChainFlags;
|
|
59503
59508
|
return result;
|
|
59504
59509
|
}
|
|
59510
|
+
function getFallbackExpandedLabels(restType, restDeclaration) {
|
|
59511
|
+
if (!restDeclaration) {
|
|
59512
|
+
return;
|
|
59513
|
+
}
|
|
59514
|
+
Debug.assertNode(restDeclaration, isParameter);
|
|
59515
|
+
if (restDeclaration.name.kind !== 207 /* ArrayBindingPattern */) {
|
|
59516
|
+
return;
|
|
59517
|
+
}
|
|
59518
|
+
const nameElements = restDeclaration.name.elements;
|
|
59519
|
+
const elementFlags = restType.target.elementFlags;
|
|
59520
|
+
let structuresMatch = true;
|
|
59521
|
+
return map(elementFlags, (elementFlag, i) => {
|
|
59522
|
+
if (!structuresMatch || i >= nameElements.length) {
|
|
59523
|
+
return void 0;
|
|
59524
|
+
}
|
|
59525
|
+
const nameElement = nameElements[i];
|
|
59526
|
+
if (elementFlag & 12 /* Variable */) {
|
|
59527
|
+
structuresMatch = false;
|
|
59528
|
+
if (nameElement.kind === 208 /* BindingElement */ && nameElement.name.kind === 80 /* Identifier */ && nameElement.dotDotDotToken) {
|
|
59529
|
+
return nameElement.name.escapedText;
|
|
59530
|
+
}
|
|
59531
|
+
return void 0;
|
|
59532
|
+
}
|
|
59533
|
+
if (nameElement.kind !== 208 /* BindingElement */) {
|
|
59534
|
+
return void 0;
|
|
59535
|
+
}
|
|
59536
|
+
if (nameElement.dotDotDotToken) {
|
|
59537
|
+
structuresMatch = false;
|
|
59538
|
+
return void 0;
|
|
59539
|
+
}
|
|
59540
|
+
if (nameElement.kind === 208 /* BindingElement */ && nameElement.name.kind === 80 /* Identifier */) {
|
|
59541
|
+
return nameElement.name.escapedText;
|
|
59542
|
+
}
|
|
59543
|
+
return void 0;
|
|
59544
|
+
});
|
|
59545
|
+
}
|
|
59505
59546
|
function getExpandedParameters(sig, skipUnionExpanding) {
|
|
59506
59547
|
if (signatureHasRestParameter(sig)) {
|
|
59507
59548
|
const restIndex = sig.parameters.length - 1;
|
|
59508
59549
|
const restName = sig.parameters[restIndex].escapedName;
|
|
59509
59550
|
const restType = getTypeOfSymbol(sig.parameters[restIndex]);
|
|
59551
|
+
const restDeclaration = sig.parameters[restIndex].valueDeclaration;
|
|
59510
59552
|
if (isTupleType(restType)) {
|
|
59511
|
-
return [expandSignatureParametersWithTupleMembers(restType, restIndex, restName)];
|
|
59553
|
+
return [expandSignatureParametersWithTupleMembers(restType, restIndex, restName, getFallbackExpandedLabels(restType, restDeclaration))];
|
|
59512
59554
|
} else if (!skipUnionExpanding && restType.flags & 1048576 /* Union */ && every(restType.types, isTupleType)) {
|
|
59513
|
-
return map(restType.types, (t) => expandSignatureParametersWithTupleMembers(t, restIndex, restName));
|
|
59555
|
+
return map(restType.types, (t) => expandSignatureParametersWithTupleMembers(t, restIndex, restName, getFallbackExpandedLabels(t, restDeclaration)));
|
|
59514
59556
|
}
|
|
59515
59557
|
}
|
|
59516
59558
|
return [sig.parameters];
|
|
59517
|
-
function expandSignatureParametersWithTupleMembers(restType, restIndex, restName) {
|
|
59559
|
+
function expandSignatureParametersWithTupleMembers(restType, restIndex, restName, fallbackLabels) {
|
|
59518
59560
|
const elementTypes = getTypeArguments(restType);
|
|
59519
|
-
const associatedNames = getUniqAssociatedNamesFromTupleType(restType, restName);
|
|
59561
|
+
const associatedNames = getUniqAssociatedNamesFromTupleType(restType, restName, fallbackLabels);
|
|
59520
59562
|
const restParams = map(elementTypes, (t, i) => {
|
|
59521
59563
|
const name = associatedNames && associatedNames[i] ? associatedNames[i] : getParameterNameAtPosition(sig, restIndex + i, restType);
|
|
59522
59564
|
const flags = restType.target.elementFlags[i];
|
|
@@ -59527,10 +59569,10 @@ function createTypeChecker(host) {
|
|
|
59527
59569
|
});
|
|
59528
59570
|
return concatenate(sig.parameters.slice(0, restIndex), restParams);
|
|
59529
59571
|
}
|
|
59530
|
-
function getUniqAssociatedNamesFromTupleType(type, restName) {
|
|
59572
|
+
function getUniqAssociatedNamesFromTupleType(type, restName, fallbackLabels) {
|
|
59531
59573
|
const associatedNamesMap = /* @__PURE__ */ new Map();
|
|
59532
59574
|
return map(type.target.labeledElementDeclarations, (labeledElement, i) => {
|
|
59533
|
-
const name = getTupleElementLabel(labeledElement, i, restName);
|
|
59575
|
+
const name = getTupleElementLabel(labeledElement, i, restName, fallbackLabels == null ? void 0 : fallbackLabels[i]);
|
|
59534
59576
|
const prevCounter = associatedNamesMap.get(name);
|
|
59535
59577
|
if (prevCounter === void 0) {
|
|
59536
59578
|
associatedNamesMap.set(name, 1);
|
|
@@ -66041,37 +66083,7 @@ function createTypeChecker(host) {
|
|
|
66041
66083
|
const restIndex = sourceRestType || targetRestType ? paramCount - 1 : -1;
|
|
66042
66084
|
for (let i = 0; i < paramCount; i++) {
|
|
66043
66085
|
const sourceType = i === restIndex ? getRestOrAnyTypeAtPosition(source, i) : tryGetTypeAtPosition(source, i);
|
|
66044
|
-
|
|
66045
|
-
if (i === restIndex && targetType && sourceType && isTupleType(sourceType)) {
|
|
66046
|
-
targetType = mapType(targetType, (t) => {
|
|
66047
|
-
if (!isTupleType(t) || // When both sides are tuples of the same structure, we don't want to "propagate" types from elements of variable positions
|
|
66048
|
-
// to the following positions as that would disallow signatures of the exact same structures when trailing fixed elements are involved:
|
|
66049
|
-
//
|
|
66050
|
-
// let fn: (...rest: [...string[], number]) => void = (...rest: [...string[], number]) => {}; // ok
|
|
66051
|
-
//
|
|
66052
|
-
// Since we want to allow contextual types to flow into paremeters, we don't need to differentiate between rest and variadic elements
|
|
66053
|
-
// as that doesn't affect the contextual type of the parameter
|
|
66054
|
-
isTupleTypeStructureMatching(sourceType, t, 2 /* MatchVariable */)) {
|
|
66055
|
-
return t;
|
|
66056
|
-
}
|
|
66057
|
-
const elementTypes = [];
|
|
66058
|
-
const elementFlags = [];
|
|
66059
|
-
const sourceArity = getTypeReferenceArity(sourceType);
|
|
66060
|
-
const targetArity = getTypeReferenceArity(t);
|
|
66061
|
-
for (let i2 = 0; i2 < sourceArity; i2++) {
|
|
66062
|
-
if (i2 >= targetArity) {
|
|
66063
|
-
if (sourceType.target.elementFlags[i2] & 3 /* Fixed */) {
|
|
66064
|
-
elementTypes.push(undefinedType);
|
|
66065
|
-
elementFlags.push(sourceType.target.elementFlags[i2]);
|
|
66066
|
-
}
|
|
66067
|
-
continue;
|
|
66068
|
-
}
|
|
66069
|
-
elementTypes.push(getTupleElementType(t, i2));
|
|
66070
|
-
elementFlags.push(sourceType.target.elementFlags[i2]);
|
|
66071
|
-
}
|
|
66072
|
-
return createTupleType(elementTypes, elementFlags);
|
|
66073
|
-
});
|
|
66074
|
-
}
|
|
66086
|
+
const targetType = i === restIndex ? getRestOrAnyTypeAtPosition(target, i) : tryGetTypeAtPosition(target, i);
|
|
66075
66087
|
if (sourceType && targetType) {
|
|
66076
66088
|
const sourceSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(source, i) ? void 0 : getSingleCallSignature(getNonNullableType(sourceType));
|
|
66077
66089
|
const targetSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(target, i) ? void 0 : getSingleCallSignature(getNonNullableType(targetType));
|
|
@@ -69342,11 +69354,8 @@ function createTypeChecker(host) {
|
|
|
69342
69354
|
}
|
|
69343
69355
|
return void 0;
|
|
69344
69356
|
}
|
|
69345
|
-
function isTupleTypeStructureMatching(t1, t2
|
|
69346
|
-
return getTypeReferenceArity(t1) === getTypeReferenceArity(t2) && every(t1.target.elementFlags, (
|
|
69347
|
-
const f2 = t2.target.elementFlags[i];
|
|
69348
|
-
return f1 === f2 || !!(tupleStructureComparisonKind & 1 /* MatchFixed */ && f1 & 3 /* Fixed */ && f2 & 3 /* Fixed */) || !!(tupleStructureComparisonKind & 2 /* MatchVariable */ && f1 & 12 /* Variable */ && f2 & 12 /* Variable */);
|
|
69349
|
-
});
|
|
69357
|
+
function isTupleTypeStructureMatching(t1, t2) {
|
|
69358
|
+
return getTypeReferenceArity(t1) === getTypeReferenceArity(t2) && every(t1.target.elementFlags, (f, i) => (f & 12 /* Variable */) === (t2.target.elementFlags[i] & 12 /* Variable */));
|
|
69350
69359
|
}
|
|
69351
69360
|
function isZeroBigInt({ value }) {
|
|
69352
69361
|
return value.base10Value === "0";
|
|
@@ -70587,7 +70596,7 @@ function createTypeChecker(host) {
|
|
|
70587
70596
|
const targetArity = getTypeReferenceArity(target);
|
|
70588
70597
|
const elementTypes = getTypeArguments(target);
|
|
70589
70598
|
const elementFlags = target.target.elementFlags;
|
|
70590
|
-
if (isTupleType(source) && isTupleTypeStructureMatching(source, target
|
|
70599
|
+
if (isTupleType(source) && isTupleTypeStructureMatching(source, target)) {
|
|
70591
70600
|
for (let i = 0; i < targetArity; i++) {
|
|
70592
70601
|
inferFromTypes(getTypeArguments(source)[i], elementTypes[i]);
|
|
70593
70602
|
}
|
|
@@ -76242,7 +76251,10 @@ function createTypeChecker(host) {
|
|
|
76242
76251
|
if (indexInfo.isReadonly && (isAssignmentTarget(node) || isDeleteTarget(node))) {
|
|
76243
76252
|
error2(node, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(apparentType));
|
|
76244
76253
|
}
|
|
76245
|
-
propType =
|
|
76254
|
+
propType = indexInfo.type;
|
|
76255
|
+
if (compilerOptions.noUncheckedIndexedAccess && getAssignmentTargetKind(node) !== 1 /* Definite */) {
|
|
76256
|
+
propType = getUnionType([propType, missingType]);
|
|
76257
|
+
}
|
|
76246
76258
|
if (compilerOptions.noPropertyAccessFromIndexSignature && isPropertyAccessExpression(node)) {
|
|
76247
76259
|
error2(right, Diagnostics.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0, unescapeLeadingUnderscores(right.escapedText));
|
|
76248
76260
|
}
|
|
@@ -76692,7 +76704,16 @@ function createTypeChecker(host) {
|
|
|
76692
76704
|
return errorType;
|
|
76693
76705
|
}
|
|
76694
76706
|
const effectiveIndexType = isForInVariableForNumericPropertyNames(indexExpression) ? numberType : indexType;
|
|
76695
|
-
const
|
|
76707
|
+
const assignmentTargetKind = getAssignmentTargetKind(node);
|
|
76708
|
+
let accessFlags;
|
|
76709
|
+
if (assignmentTargetKind === 0 /* None */) {
|
|
76710
|
+
accessFlags = 32 /* ExpressionPosition */;
|
|
76711
|
+
} else {
|
|
76712
|
+
accessFlags = 4 /* Writing */ | (isGenericObjectType(objectType) && !isThisTypeParameter(objectType) ? 2 /* NoIndexSignatures */ : 0);
|
|
76713
|
+
if (assignmentTargetKind === 2 /* Compound */) {
|
|
76714
|
+
accessFlags |= 32 /* ExpressionPosition */;
|
|
76715
|
+
}
|
|
76716
|
+
}
|
|
76696
76717
|
const indexedAccessType = getIndexedAccessTypeOrUndefined(objectType, effectiveIndexType, accessFlags, node) || errorType;
|
|
76697
76718
|
return checkIndexedAccessIndexType(getFlowTypeOfAccessExpression(node, getNodeLinks(node).resolvedSymbol, indexedAccessType, indexExpression, checkMode), node);
|
|
76698
76719
|
}
|
|
@@ -79015,9 +79036,9 @@ function createTypeChecker(host) {
|
|
|
79015
79036
|
!!declaration && (hasInitializer(declaration) || isOptionalDeclaration(declaration))
|
|
79016
79037
|
);
|
|
79017
79038
|
}
|
|
79018
|
-
function getTupleElementLabel(d, index, restParameterName = "arg") {
|
|
79039
|
+
function getTupleElementLabel(d, index, restParameterName = "arg", fallbackLabel) {
|
|
79019
79040
|
if (!d) {
|
|
79020
|
-
return `${restParameterName}_${index}`;
|
|
79041
|
+
return fallbackLabel ?? `${restParameterName}_${index}`;
|
|
79021
79042
|
}
|
|
79022
79043
|
Debug.assert(isIdentifier(d.name));
|
|
79023
79044
|
return d.name.escapedText;
|
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.5.0-pr-
|
|
5
|
+
"version": "5.5.0-pr-57619-14",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"description": "TypeScript is a language for application scale JavaScript development",
|
|
8
8
|
"keywords": [
|
|
@@ -111,5 +111,5 @@
|
|
|
111
111
|
"node": "20.1.0",
|
|
112
112
|
"npm": "8.19.4"
|
|
113
113
|
},
|
|
114
|
-
"gitHead": "
|
|
114
|
+
"gitHead": "4b37e9b71356111ad30c4c34385c9c8f29da5d9e"
|
|
115
115
|
}
|