typescript 4.8.0-dev.20220630 → 4.8.0-dev.20220704

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 CHANGED
@@ -69,7 +69,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
69
69
  var ts;
70
70
  (function (ts) {
71
71
  ts.versionMajorMinor = "4.8";
72
- ts.version = ts.versionMajorMinor + ".0-dev.20220630";
72
+ ts.version = ts.versionMajorMinor + ".0-dev.20220704";
73
73
  var NativeCollections;
74
74
  (function (NativeCollections) {
75
75
  var globals = typeof globalThis !== "undefined" ? globalThis :
@@ -39826,6 +39826,24 @@ var ts;
39826
39826
  var Symbol = ts.objectAllocator.getSymbolConstructor();
39827
39827
  var Type = ts.objectAllocator.getTypeConstructor();
39828
39828
  var Signature = ts.objectAllocator.getSignatureConstructor();
39829
+ var DebugTypeMapper = (function () {
39830
+ function DebugTypeMapper() {
39831
+ }
39832
+ DebugTypeMapper.prototype.__debugToString = function () {
39833
+ var _a;
39834
+ ts.Debug.type(this);
39835
+ switch (this.kind) {
39836
+ case 3: return ((_a = this.debugInfo) === null || _a === void 0 ? void 0 : _a.call(this)) || "(function mapper)";
39837
+ case 0: return this.source.__debugTypeToString() + " -> " + this.target.__debugTypeToString();
39838
+ case 1: return ts.zipWith(this.sources, this.targets || ts.map(this.sources, function () { return anyType; }), function (s, t) { return s.__debugTypeToString() + " -> " + t.__debugTypeToString(); }).join(", ");
39839
+ case 2: return ts.zipWith(this.sources, this.targets, function (s, t) { return s.__debugTypeToString() + " -> " + t().__debugTypeToString(); }).join(", ");
39840
+ case 5:
39841
+ case 4: return "m1: " + this.mapper1.__debugToString().split("\n").join("\n ") + "\nm2: " + this.mapper2.__debugToString().split("\n").join("\n ");
39842
+ default: return ts.Debug.assertNever(this);
39843
+ }
39844
+ };
39845
+ return DebugTypeMapper;
39846
+ }());
39829
39847
  var typeCount = 0;
39830
39848
  var symbolCount = 0;
39831
39849
  var enumCount = 0;
@@ -40273,10 +40291,23 @@ var ts;
40273
40291
  var numberOrBigIntType = getUnionType([numberType, bigintType]);
40274
40292
  var templateConstraintType = getUnionType([stringType, numberType, booleanType, bigintType, nullType, undefinedType]);
40275
40293
  var numericStringType = getTemplateLiteralType(["", ""], [numberType]);
40276
- var restrictiveMapper = makeFunctionTypeMapper(function (t) { return t.flags & 262144 ? getRestrictiveTypeParameter(t) : t; });
40277
- var permissiveMapper = makeFunctionTypeMapper(function (t) { return t.flags & 262144 ? wildcardType : t; });
40294
+ var restrictiveMapper = makeFunctionTypeMapper(function (t) { return t.flags & 262144 ? getRestrictiveTypeParameter(t) : t; }, function () { return "(restrictive mapper)"; });
40295
+ var permissiveMapper = makeFunctionTypeMapper(function (t) { return t.flags & 262144 ? wildcardType : t; }, function () { return "(permissive mapper)"; });
40278
40296
  var uniqueLiteralType = createIntrinsicType(131072, "never");
40279
- var uniqueLiteralMapper = makeFunctionTypeMapper(function (t) { return t.flags & 262144 ? uniqueLiteralType : t; });
40297
+ var uniqueLiteralMapper = makeFunctionTypeMapper(function (t) { return t.flags & 262144 ? uniqueLiteralType : t; }, function () { return "(unique literal mapper)"; });
40298
+ var outofbandVarianceMarkerHandler;
40299
+ var reportUnreliableMapper = makeFunctionTypeMapper(function (t) {
40300
+ if (outofbandVarianceMarkerHandler && (t === markerSuperType || t === markerSubType || t === markerOtherType)) {
40301
+ outofbandVarianceMarkerHandler(true);
40302
+ }
40303
+ return t;
40304
+ }, function () { return "(unmeasurable reporter)"; });
40305
+ var reportUnmeasurableMapper = makeFunctionTypeMapper(function (t) {
40306
+ if (outofbandVarianceMarkerHandler && (t === markerSuperType || t === markerSubType || t === markerOtherType)) {
40307
+ outofbandVarianceMarkerHandler(false);
40308
+ }
40309
+ return t;
40310
+ }, function () { return "(unreliable reporter)"; });
40280
40311
  var emptyObjectType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, ts.emptyArray);
40281
40312
  var emptyJsxObjectType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, ts.emptyArray);
40282
40313
  emptyJsxObjectType.objectFlags |= 2048;
@@ -40425,7 +40456,6 @@ var ts;
40425
40456
  var typeofType = createTypeofType();
40426
40457
  var _jsxNamespace;
40427
40458
  var _jsxFactoryEntity;
40428
- var outofbandVarianceMarkerHandler;
40429
40459
  var subtypeRelation = new ts.Map();
40430
40460
  var strictSubtypeRelation = new ts.Map();
40431
40461
  var assignableRelation = new ts.Map();
@@ -43721,7 +43751,7 @@ var ts;
43721
43751
  var name = typeParameterToName(newParam, context);
43722
43752
  var newTypeVariable = ts.factory.createTypeReferenceNode(name);
43723
43753
  context.approximateLength += 37;
43724
- var newMapper = prependTypeMapping(type.root.checkType, newParam, type.combinedMapper || type.mapper);
43754
+ var newMapper = prependTypeMapping(type.root.checkType, newParam, type.mapper);
43725
43755
  var saveInferTypeParameters_1 = context.inferTypeParameters;
43726
43756
  context.inferTypeParameters = type.root.inferTypeParameters;
43727
43757
  var extendsTypeNode_1 = typeToTypeNodeHelper(instantiateType(type.root.extendsType, newMapper), context);
@@ -50145,19 +50175,20 @@ var ts;
50145
50175
  var _a;
50146
50176
  var inferences;
50147
50177
  if ((_a = typeParameter.symbol) === null || _a === void 0 ? void 0 : _a.declarations) {
50148
- for (var _i = 0, _b = typeParameter.symbol.declarations; _i < _b.length; _i++) {
50149
- var declaration = _b[_i];
50178
+ var _loop_15 = function (declaration) {
50150
50179
  if (declaration.parent.kind === 190) {
50151
50180
  var _c = ts.walkUpParenthesizedTypesAndGetParentAndChild(declaration.parent.parent), _d = _c[0], childTypeParameter = _d === void 0 ? declaration.parent : _d, grandParent = _c[1];
50152
50181
  if (grandParent.kind === 178 && !omitTypeReferences) {
50153
- var typeReference = grandParent;
50154
- var typeParameters = getTypeParametersForTypeReference(typeReference);
50155
- if (typeParameters) {
50156
- var index = typeReference.typeArguments.indexOf(childTypeParameter);
50157
- if (index < typeParameters.length) {
50158
- var declaredConstraint = getConstraintOfTypeParameter(typeParameters[index]);
50182
+ var typeReference_1 = grandParent;
50183
+ var typeParameters_1 = getTypeParametersForTypeReference(typeReference_1);
50184
+ if (typeParameters_1) {
50185
+ var index = typeReference_1.typeArguments.indexOf(childTypeParameter);
50186
+ if (index < typeParameters_1.length) {
50187
+ var declaredConstraint = getConstraintOfTypeParameter(typeParameters_1[index]);
50159
50188
  if (declaredConstraint) {
50160
- var mapper = createTypeMapper(typeParameters, getEffectiveTypeArguments(typeReference, typeParameters));
50189
+ var mapper = makeDeferredTypeMapper(typeParameters_1, typeParameters_1.map(function (_, index) { return function () {
50190
+ return getEffectiveTypeArgumentAtIndex(typeReference_1, typeParameters_1, index);
50191
+ }; }));
50161
50192
  var constraint = instantiateType(declaredConstraint, mapper);
50162
50193
  if (constraint !== typeParameter) {
50163
50194
  inferences = ts.append(inferences, constraint);
@@ -50186,6 +50217,10 @@ var ts;
50186
50217
  inferences = ts.append(inferences, instantiateType(nodeType, makeUnaryTypeMapper(getDeclaredTypeOfTypeParameter(getSymbolOfNode(checkMappedType_1.typeParameter)), checkMappedType_1.typeParameter.constraint ? getTypeFromTypeNode(checkMappedType_1.typeParameter.constraint) : keyofConstraintType)));
50187
50218
  }
50188
50219
  }
50220
+ };
50221
+ for (var _i = 0, _b = typeParameter.symbol.declarations; _i < _b.length; _i++) {
50222
+ var declaration = _b[_i];
50223
+ _loop_15(declaration);
50189
50224
  }
50190
50225
  }
50191
50226
  return inferences && getIntersectionType(inferences);
@@ -50993,7 +51028,7 @@ var ts;
50993
51028
  var lastRequiredIndex = -1;
50994
51029
  var firstRestIndex = -1;
50995
51030
  var lastOptionalOrRestIndex = -1;
50996
- var _loop_15 = function (i) {
51031
+ var _loop_16 = function (i) {
50997
51032
  var type = elementTypes[i];
50998
51033
  var flags = target.elementFlags[i];
50999
51034
  if (flags & 8) {
@@ -51019,7 +51054,7 @@ var ts;
51019
51054
  }
51020
51055
  };
51021
51056
  for (var i = 0; i < elementTypes.length; i++) {
51022
- var state_4 = _loop_15(i);
51057
+ var state_4 = _loop_16(i);
51023
51058
  if (typeof state_4 === "object")
51024
51059
  return state_4.value;
51025
51060
  }
@@ -51196,7 +51231,7 @@ var ts;
51196
51231
  var templates = ts.filter(types, isPatternLiteralType);
51197
51232
  if (templates.length) {
51198
51233
  var i = types.length;
51199
- var _loop_16 = function () {
51234
+ var _loop_17 = function () {
51200
51235
  i--;
51201
51236
  var t = types[i];
51202
51237
  if (t.flags & 128 && ts.some(templates, function (template) { return isTypeMatchedByTemplateLiteralType(t, template); })) {
@@ -51204,7 +51239,7 @@ var ts;
51204
51239
  }
51205
51240
  };
51206
51241
  while (i > 0) {
51207
- _loop_16();
51242
+ _loop_17();
51208
51243
  }
51209
51244
  }
51210
51245
  }
@@ -51274,14 +51309,14 @@ var ts;
51274
51309
  var namedUnions = [];
51275
51310
  addNamedUnions(namedUnions, types);
51276
51311
  var reducedTypes = [];
51277
- var _loop_17 = function (t) {
51312
+ var _loop_18 = function (t) {
51278
51313
  if (!ts.some(namedUnions, function (union) { return containsType(union.types, t); })) {
51279
51314
  reducedTypes.push(t);
51280
51315
  }
51281
51316
  };
51282
51317
  for (var _i = 0, typeSet_1 = typeSet; _i < typeSet_1.length; _i++) {
51283
51318
  var t = typeSet_1[_i];
51284
- _loop_17(t);
51319
+ _loop_18(t);
51285
51320
  }
51286
51321
  if (!aliasSymbol && namedUnions.length === 1 && reducedTypes.length === 0) {
51287
51322
  return namedUnions[0];
@@ -52357,7 +52392,7 @@ var ts;
52357
52392
  var result;
52358
52393
  var extraTypes;
52359
52394
  var tailCount = 0;
52360
- var _loop_18 = function () {
52395
+ var _loop_19 = function () {
52361
52396
  if (tailCount === 1000) {
52362
52397
  error(currentNode, ts.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite);
52363
52398
  result = errorType;
@@ -52431,7 +52466,7 @@ var ts;
52431
52466
  return "break";
52432
52467
  };
52433
52468
  while (true) {
52434
- var state_5 = _loop_18();
52469
+ var state_5 = _loop_19();
52435
52470
  if (typeof state_5 === "object")
52436
52471
  return state_5.value;
52437
52472
  if (state_5 === "break")
@@ -53032,7 +53067,7 @@ var ts;
53032
53067
  switch (mapper.kind) {
53033
53068
  case 0:
53034
53069
  return type === mapper.source ? mapper.target : type;
53035
- case 1:
53070
+ case 1: {
53036
53071
  var sources = mapper.sources;
53037
53072
  var targets = mapper.targets;
53038
53073
  for (var i = 0; i < sources.length; i++) {
@@ -53041,43 +53076,64 @@ var ts;
53041
53076
  }
53042
53077
  }
53043
53078
  return type;
53044
- case 2:
53045
- return mapper.func(type);
53079
+ }
53080
+ case 2: {
53081
+ var sources = mapper.sources;
53082
+ var targets = mapper.targets;
53083
+ for (var i = 0; i < sources.length; i++) {
53084
+ if (type === sources[i]) {
53085
+ return targets[i]();
53086
+ }
53087
+ }
53088
+ return type;
53089
+ }
53046
53090
  case 3:
53091
+ return mapper.func(type);
53047
53092
  case 4:
53093
+ case 5:
53048
53094
  var t1 = getMappedType(type, mapper.mapper1);
53049
- return t1 !== type && mapper.kind === 3 ? instantiateType(t1, mapper.mapper2) : getMappedType(t1, mapper.mapper2);
53095
+ return t1 !== type && mapper.kind === 4 ? instantiateType(t1, mapper.mapper2) : getMappedType(t1, mapper.mapper2);
53050
53096
  }
53051
53097
  }
53098
+ function attachDebugPrototypeIfDebug(mapper) {
53099
+ if (ts.Debug.isDebugging) {
53100
+ return Object.setPrototypeOf(mapper, DebugTypeMapper.prototype);
53101
+ }
53102
+ return mapper;
53103
+ }
53052
53104
  function makeUnaryTypeMapper(source, target) {
53053
- return { kind: 0, source: source, target: target };
53105
+ return attachDebugPrototypeIfDebug({ kind: 0, source: source, target: target });
53054
53106
  }
53055
53107
  function makeArrayTypeMapper(sources, targets) {
53056
- return { kind: 1, sources: sources, targets: targets };
53108
+ return attachDebugPrototypeIfDebug({ kind: 1, sources: sources, targets: targets });
53109
+ }
53110
+ function makeFunctionTypeMapper(func, debugInfo) {
53111
+ return attachDebugPrototypeIfDebug({ kind: 3, func: func, debugInfo: ts.Debug.isDebugging ? debugInfo : undefined });
53057
53112
  }
53058
- function makeFunctionTypeMapper(func) {
53059
- return { kind: 2, func: func };
53113
+ function makeDeferredTypeMapper(sources, targets) {
53114
+ return attachDebugPrototypeIfDebug({ kind: 2, sources: sources, targets: targets });
53060
53115
  }
53061
53116
  function makeCompositeTypeMapper(kind, mapper1, mapper2) {
53062
- return { kind: kind, mapper1: mapper1, mapper2: mapper2 };
53117
+ return attachDebugPrototypeIfDebug({ kind: kind, mapper1: mapper1, mapper2: mapper2 });
53063
53118
  }
53064
53119
  function createTypeEraser(sources) {
53065
53120
  return createTypeMapper(sources, undefined);
53066
53121
  }
53067
53122
  function createBackreferenceMapper(context, index) {
53068
- return makeFunctionTypeMapper(function (t) { return ts.findIndex(context.inferences, function (info) { return info.typeParameter === t; }) >= index ? unknownType : t; });
53123
+ var forwardInferences = context.inferences.slice(index);
53124
+ return createTypeMapper(ts.map(forwardInferences, function (i) { return i.typeParameter; }), ts.map(forwardInferences, function () { return unknownType; }));
53069
53125
  }
53070
53126
  function combineTypeMappers(mapper1, mapper2) {
53071
- return mapper1 ? makeCompositeTypeMapper(3, mapper1, mapper2) : mapper2;
53127
+ return mapper1 ? makeCompositeTypeMapper(4, mapper1, mapper2) : mapper2;
53072
53128
  }
53073
53129
  function mergeTypeMappers(mapper1, mapper2) {
53074
- return mapper1 ? makeCompositeTypeMapper(4, mapper1, mapper2) : mapper2;
53130
+ return mapper1 ? makeCompositeTypeMapper(5, mapper1, mapper2) : mapper2;
53075
53131
  }
53076
53132
  function prependTypeMapping(source, target, mapper) {
53077
- return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(4, makeUnaryTypeMapper(source, target), mapper);
53133
+ return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(5, makeUnaryTypeMapper(source, target), mapper);
53078
53134
  }
53079
53135
  function appendTypeMapping(mapper, source, target) {
53080
- return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(4, mapper, makeUnaryTypeMapper(source, target));
53136
+ return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(5, mapper, makeUnaryTypeMapper(source, target));
53081
53137
  }
53082
53138
  function getRestrictiveTypeParameter(tp) {
53083
53139
  return tp.constraint === unknownType ? tp : tp.restrictiveInstantiation || (tp.restrictiveInstantiation = createTypeParameter(tp.symbol),
@@ -54757,7 +54813,7 @@ var ts;
54757
54813
  reducedTarget = findMatchingDiscriminantType(source, target, isRelatedTo) || filterPrimitivesIfContainsNonPrimitive(target);
54758
54814
  checkTypes = reducedTarget.flags & 1048576 ? reducedTarget.types : [reducedTarget];
54759
54815
  }
54760
- var _loop_19 = function (prop) {
54816
+ var _loop_20 = function (prop) {
54761
54817
  if (shouldCheckAsExcessProperty(prop, source.symbol) && !isIgnoredJsxProperty(source, prop)) {
54762
54818
  if (!isKnownProperty(reducedTarget, prop.escapedName, isComparingJsxAttributes)) {
54763
54819
  if (reportErrors) {
@@ -54810,7 +54866,7 @@ var ts;
54810
54866
  };
54811
54867
  for (var _i = 0, _b = getPropertiesOfType(source); _i < _b.length; _i++) {
54812
54868
  var prop = _b[_i];
54813
- var state_6 = _loop_19(prop);
54869
+ var state_6 = _loop_20(prop);
54814
54870
  if (typeof state_6 === "object")
54815
54871
  return state_6.value;
54816
54872
  }
@@ -54998,10 +55054,10 @@ var ts;
54998
55054
  if (outofbandVarianceMarkerHandler) {
54999
55055
  var saved = entry & 24;
55000
55056
  if (saved & 8) {
55001
- instantiateType(source, makeFunctionTypeMapper(reportUnmeasurableMarkers));
55057
+ instantiateType(source, reportUnmeasurableMapper);
55002
55058
  }
55003
55059
  if (saved & 16) {
55004
- instantiateType(source, makeFunctionTypeMapper(reportUnreliableMarkers));
55060
+ instantiateType(source, reportUnreliableMapper);
55005
55061
  }
55006
55062
  }
55007
55063
  return entry & 1 ? -1 : 0;
@@ -55338,7 +55394,7 @@ var ts;
55338
55394
  if (relation === comparableRelation) {
55339
55395
  return templateLiteralTypesDefinitelyUnrelated(source, target) ? 0 : -1;
55340
55396
  }
55341
- instantiateType(source, makeFunctionTypeMapper(reportUnreliableMarkers));
55397
+ instantiateType(source, reportUnreliableMapper);
55342
55398
  }
55343
55399
  if (isTypeMatchedByTemplateLiteralType(source, target)) {
55344
55400
  return -1;
@@ -55550,25 +55606,13 @@ var ts;
55550
55606
  }
55551
55607
  }
55552
55608
  }
55553
- function reportUnmeasurableMarkers(p) {
55554
- if (outofbandVarianceMarkerHandler && (p === markerSuperType || p === markerSubType || p === markerOtherType)) {
55555
- outofbandVarianceMarkerHandler(false);
55556
- }
55557
- return p;
55558
- }
55559
- function reportUnreliableMarkers(p) {
55560
- if (outofbandVarianceMarkerHandler && (p === markerSuperType || p === markerSubType || p === markerOtherType)) {
55561
- outofbandVarianceMarkerHandler(true);
55562
- }
55563
- return p;
55564
- }
55565
55609
  function mappedTypeRelatedTo(source, target, reportErrors) {
55566
55610
  var modifiersRelated = relation === comparableRelation || (relation === identityRelation ? getMappedTypeModifiers(source) === getMappedTypeModifiers(target) :
55567
55611
  getCombinedMappedTypeOptionality(source) <= getCombinedMappedTypeOptionality(target));
55568
55612
  if (modifiersRelated) {
55569
55613
  var result_10;
55570
55614
  var targetConstraint = getConstraintTypeFromMappedType(target);
55571
- var sourceConstraint = instantiateType(getConstraintTypeFromMappedType(source), makeFunctionTypeMapper(getCombinedMappedTypeOptionality(source) < 0 ? reportUnmeasurableMarkers : reportUnreliableMarkers));
55615
+ var sourceConstraint = instantiateType(getConstraintTypeFromMappedType(source), getCombinedMappedTypeOptionality(source) < 0 ? reportUnmeasurableMapper : reportUnreliableMapper);
55572
55616
  if (result_10 = isRelatedTo(targetConstraint, sourceConstraint, 3, reportErrors)) {
55573
55617
  var mapper = createTypeMapper([getTypeParameterFromMappedType(source)], [getTypeParameterFromMappedType(target)]);
55574
55618
  if (instantiateType(getNameTypeFromMappedType(source), mapper) === instantiateType(getNameTypeFromMappedType(target), mapper)) {
@@ -55604,11 +55648,11 @@ var ts;
55604
55648
  }
55605
55649
  var discriminantCombinations = ts.cartesianProduct(sourceDiscriminantTypes);
55606
55650
  var matchingTypes = [];
55607
- var _loop_20 = function (combination) {
55651
+ var _loop_21 = function (combination) {
55608
55652
  var hasMatch = false;
55609
55653
  outer: for (var _c = 0, _d = target.types; _c < _d.length; _c++) {
55610
55654
  var type = _d[_c];
55611
- var _loop_21 = function (i) {
55655
+ var _loop_22 = function (i) {
55612
55656
  var sourceProperty = sourcePropertiesFiltered[i];
55613
55657
  var targetProperty = getPropertyOfType(type, sourceProperty.escapedName);
55614
55658
  if (!targetProperty)
@@ -55621,7 +55665,7 @@ var ts;
55621
55665
  }
55622
55666
  };
55623
55667
  for (var i = 0; i < sourcePropertiesFiltered.length; i++) {
55624
- var state_8 = _loop_21(i);
55668
+ var state_8 = _loop_22(i);
55625
55669
  switch (state_8) {
55626
55670
  case "continue-outer": continue outer;
55627
55671
  }
@@ -55635,7 +55679,7 @@ var ts;
55635
55679
  };
55636
55680
  for (var _a = 0, discriminantCombinations_1 = discriminantCombinations; _a < discriminantCombinations_1.length; _a++) {
55637
55681
  var combination = discriminantCombinations_1[_a];
55638
- var state_7 = _loop_20(combination);
55682
+ var state_7 = _loop_21(combination);
55639
55683
  if (typeof state_7 === "object")
55640
55684
  return state_7.value;
55641
55685
  }
@@ -56041,7 +56085,7 @@ var ts;
56041
56085
  return function (source, target) { return reportIncompatibleError(ts.Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible, typeToString(source), typeToString(target)); };
56042
56086
  }
56043
56087
  function signatureRelatedTo(source, target, erase, reportErrors, incompatibleReporter) {
56044
- return compareSignaturesRelated(erase ? getErasedSignature(source) : source, erase ? getErasedSignature(target) : target, relation === strictSubtypeRelation ? 8 : 0, reportErrors, reportError, incompatibleReporter, isRelatedToWorker, makeFunctionTypeMapper(reportUnreliableMarkers));
56088
+ return compareSignaturesRelated(erase ? getErasedSignature(source) : source, erase ? getErasedSignature(target) : target, relation === strictSubtypeRelation ? 8 : 0, reportErrors, reportError, incompatibleReporter, isRelatedToWorker, reportUnreliableMapper);
56045
56089
  }
56046
56090
  function signaturesIdenticalTo(source, target, kind) {
56047
56091
  var sourceSignatures = getSignaturesOfType(source, kind);
@@ -56279,7 +56323,7 @@ var ts;
56279
56323
  ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.push("checkTypes", "getVariancesWorker", { arity: typeParameters.length, id: getTypeId(getDeclaredTypeOfSymbol(symbol)) });
56280
56324
  links.variances = ts.emptyArray;
56281
56325
  var variances = [];
56282
- var _loop_22 = function (tp) {
56326
+ var _loop_23 = function (tp) {
56283
56327
  var modifiers = getVarianceModifiers(tp);
56284
56328
  var variance = modifiers & 65536 ?
56285
56329
  modifiers & 32768 ? 0 : 1 :
@@ -56308,9 +56352,9 @@ var ts;
56308
56352
  }
56309
56353
  variances.push(variance);
56310
56354
  };
56311
- for (var _i = 0, typeParameters_1 = typeParameters; _i < typeParameters_1.length; _i++) {
56312
- var tp = typeParameters_1[_i];
56313
- _loop_22(tp);
56355
+ for (var _i = 0, typeParameters_2 = typeParameters; _i < typeParameters_2.length; _i++) {
56356
+ var tp = typeParameters_2[_i];
56357
+ _loop_23(tp);
56314
56358
  }
56315
56359
  links.variances = variances;
56316
56360
  ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.pop({ variances: variances.map(ts.Debug.formatVariance) });
@@ -57178,25 +57222,27 @@ var ts;
57178
57222
  signature: signature,
57179
57223
  flags: flags,
57180
57224
  compareTypes: compareTypes,
57181
- mapper: makeFunctionTypeMapper(function (t) { return mapToInferredType(context, t, true); }),
57182
- nonFixingMapper: makeFunctionTypeMapper(function (t) { return mapToInferredType(context, t, false); }),
57225
+ mapper: reportUnmeasurableMapper,
57226
+ nonFixingMapper: reportUnmeasurableMapper,
57183
57227
  };
57228
+ context.mapper = makeFixingMapperForContext(context);
57229
+ context.nonFixingMapper = makeNonFixingMapperForContext(context);
57184
57230
  return context;
57185
57231
  }
57186
- function mapToInferredType(context, t, fix) {
57187
- var inferences = context.inferences;
57188
- for (var i = 0; i < inferences.length; i++) {
57189
- var inference = inferences[i];
57190
- if (t === inference.typeParameter) {
57191
- if (fix && !inference.isFixed) {
57192
- inferFromIntraExpressionSites(context);
57193
- clearCachedInferences(inferences);
57194
- inference.isFixed = true;
57195
- }
57196
- return getInferredType(context, i);
57232
+ function makeFixingMapperForContext(context) {
57233
+ return makeDeferredTypeMapper(ts.map(context.inferences, function (i) { return i.typeParameter; }), ts.map(context.inferences, function (inference, i) { return function () {
57234
+ if (!inference.isFixed) {
57235
+ inferFromIntraExpressionSites(context);
57236
+ clearCachedInferences(context.inferences);
57237
+ inference.isFixed = true;
57197
57238
  }
57198
- }
57199
- return t;
57239
+ return getInferredType(context, i);
57240
+ }; }));
57241
+ }
57242
+ function makeNonFixingMapperForContext(context) {
57243
+ return makeDeferredTypeMapper(ts.map(context.inferences, function (i) { return i.typeParameter; }), ts.map(context.inferences, function (_, i) { return function () {
57244
+ return getInferredType(context, i);
57245
+ }; }));
57200
57246
  }
57201
57247
  function clearCachedInferences(inferences) {
57202
57248
  for (var _i = 0, inferences_1 = inferences; _i < inferences_1.length; _i++) {
@@ -57946,7 +57992,7 @@ var ts;
57946
57992
  var matches = inferTypesFromTemplateLiteralType(source, target);
57947
57993
  var types = target.types;
57948
57994
  if (matches || ts.every(target.texts, function (s) { return s.length === 0; })) {
57949
- var _loop_23 = function (i) {
57995
+ var _loop_24 = function (i) {
57950
57996
  var source_1 = matches ? matches[i] : neverType;
57951
57997
  var target_3 = types[i];
57952
57998
  if (source_1.flags & 128 && target_3.flags & 8650752) {
@@ -57990,7 +58036,7 @@ var ts;
57990
58036
  inferFromTypes(source_1, target_3);
57991
58037
  };
57992
58038
  for (var i = 0; i < types.length; i++) {
57993
- _loop_23(i);
58039
+ _loop_24(i);
57994
58040
  }
57995
58041
  }
57996
58042
  }
@@ -58460,7 +58506,7 @@ var ts;
58460
58506
  function mapTypesByKeyProperty(types, name) {
58461
58507
  var map = new ts.Map();
58462
58508
  var count = 0;
58463
- var _loop_24 = function (type) {
58509
+ var _loop_25 = function (type) {
58464
58510
  if (type.flags & (524288 | 2097152 | 58982400)) {
58465
58511
  var discriminant = getTypeOfPropertyOfType(type, name);
58466
58512
  if (discriminant) {
@@ -58486,7 +58532,7 @@ var ts;
58486
58532
  };
58487
58533
  for (var _i = 0, types_15 = types; _i < types_15.length; _i++) {
58488
58534
  var type = types_15[_i];
58489
- var state_9 = _loop_24(type);
58535
+ var state_9 = _loop_25(type);
58490
58536
  if (typeof state_9 === "object")
58491
58537
  return state_9.value;
58492
58538
  }
@@ -63895,7 +63941,7 @@ var ts;
63895
63941
  var spreadIndex = getSpreadArgumentIndex(args);
63896
63942
  if (spreadIndex >= 0) {
63897
63943
  var effectiveArgs_1 = args.slice(0, spreadIndex);
63898
- var _loop_25 = function (i) {
63944
+ var _loop_26 = function (i) {
63899
63945
  var arg = args[i];
63900
63946
  var spreadType = arg.kind === 225 && (flowLoopCount ? checkExpression(arg.expression) : checkExpressionCached(arg.expression));
63901
63947
  if (spreadType && isTupleType(spreadType)) {
@@ -63911,7 +63957,7 @@ var ts;
63911
63957
  }
63912
63958
  };
63913
63959
  for (var i = spreadIndex; i < args.length; i++) {
63914
- _loop_25(i);
63960
+ _loop_26(i);
63915
63961
  }
63916
63962
  return effectiveArgs_1;
63917
63963
  }
@@ -64161,7 +64207,7 @@ var ts;
64161
64207
  var min_3 = Number.MAX_VALUE;
64162
64208
  var minIndex = 0;
64163
64209
  var i_1 = 0;
64164
- var _loop_26 = function (c) {
64210
+ var _loop_27 = function (c) {
64165
64211
  var chain_2 = function () { return ts.chainDiagnosticMessages(undefined, ts.Diagnostics.Overload_0_of_1_2_gave_the_following_error, i_1 + 1, candidates.length, signatureToString(c)); };
64166
64212
  var diags_2 = getSignatureApplicabilityError(node, args, c, assignableRelation, 0, true, chain_2);
64167
64213
  if (diags_2) {
@@ -64179,7 +64225,7 @@ var ts;
64179
64225
  };
64180
64226
  for (var _a = 0, candidatesForArgumentError_1 = candidatesForArgumentError; _a < candidatesForArgumentError_1.length; _a++) {
64181
64227
  var c = candidatesForArgumentError_1[_a];
64182
- _loop_26(c);
64228
+ _loop_27(c);
64183
64229
  }
64184
64230
  var diags_3 = max > 1 ? allDiagnostics[minIndex] : ts.flatten(allDiagnostics);
64185
64231
  ts.Debug.assert(diags_3.length > 0, "No errors reported for 3 or fewer overload signatures");
@@ -64322,7 +64368,7 @@ var ts;
64322
64368
  }
64323
64369
  var _a = ts.minAndMax(candidates, getNumNonRestParameters), minArgumentCount = _a.min, maxNonRestParam = _a.max;
64324
64370
  var parameters = [];
64325
- var _loop_27 = function (i) {
64371
+ var _loop_28 = function (i) {
64326
64372
  var symbols = ts.mapDefined(candidates, function (s) { return signatureHasRestParameter(s) ?
64327
64373
  i < s.parameters.length - 1 ? s.parameters[i] : ts.last(s.parameters) :
64328
64374
  i < s.parameters.length ? s.parameters[i] : undefined; });
@@ -64330,7 +64376,7 @@ var ts;
64330
64376
  parameters.push(createCombinedSymbolFromTypes(symbols, ts.mapDefined(candidates, function (candidate) { return tryGetTypeAtPosition(candidate, i); })));
64331
64377
  };
64332
64378
  for (var i = 0; i < maxNonRestParam; i++) {
64333
- _loop_27(i);
64379
+ _loop_28(i);
64334
64380
  }
64335
64381
  var restParameterSymbols = ts.mapDefined(candidates, function (c) { return signatureHasRestParameter(c) ? ts.last(c.parameters) : undefined; });
64336
64382
  var flags = 0;
@@ -67307,8 +67353,8 @@ var ts;
67307
67353
  var result = [];
67308
67354
  var oldTypeParameters;
67309
67355
  var newTypeParameters;
67310
- for (var _i = 0, typeParameters_2 = typeParameters; _i < typeParameters_2.length; _i++) {
67311
- var tp = typeParameters_2[_i];
67356
+ for (var _i = 0, typeParameters_3 = typeParameters; _i < typeParameters_3.length; _i++) {
67357
+ var tp = typeParameters_3[_i];
67312
67358
  var name = tp.symbol.escapedName;
67313
67359
  if (hasTypeParameterByName(context.inferredTypeParameters, name) || hasTypeParameterByName(result, name)) {
67314
67360
  var newName = getUniqueTypeParameterName(ts.concatenate(context.inferredTypeParameters, result), name);
@@ -67918,7 +67964,7 @@ var ts;
67918
67964
  var indexSymbol = getIndexSymbol(getSymbolOfNode(node));
67919
67965
  if (indexSymbol === null || indexSymbol === void 0 ? void 0 : indexSymbol.declarations) {
67920
67966
  var indexSignatureMap_1 = new ts.Map();
67921
- var _loop_28 = function (declaration) {
67967
+ var _loop_29 = function (declaration) {
67922
67968
  if (declaration.parameters.length === 1 && declaration.parameters[0].type) {
67923
67969
  forEachType(getTypeFromTypeNode(declaration.parameters[0].type), function (type) {
67924
67970
  var entry = indexSignatureMap_1.get(getTypeId(type));
@@ -67933,7 +67979,7 @@ var ts;
67933
67979
  };
67934
67980
  for (var _i = 0, _a = indexSymbol.declarations; _i < _a.length; _i++) {
67935
67981
  var declaration = _a[_i];
67936
- _loop_28(declaration);
67982
+ _loop_29(declaration);
67937
67983
  }
67938
67984
  indexSignatureMap_1.forEach(function (entry) {
67939
67985
  if (entry.declarations.length > 1) {
@@ -68125,6 +68171,12 @@ var ts;
68125
68171
  function checkMissingDeclaration(node) {
68126
68172
  checkDecorators(node);
68127
68173
  }
68174
+ function getEffectiveTypeArgumentAtIndex(node, typeParameters, index) {
68175
+ if (index < typeParameters.length) {
68176
+ return getTypeFromTypeNode(node.typeArguments[index]);
68177
+ }
68178
+ return getEffectiveTypeArguments(node, typeParameters)[index];
68179
+ }
68128
68180
  function getEffectiveTypeArguments(node, typeParameters) {
68129
68181
  return fillMissingTypeArguments(ts.map(node.typeArguments, getTypeFromTypeNode), typeParameters, getMinTypeArgumentCount(typeParameters), ts.isInJSFile(node));
68130
68182
  }
@@ -68782,20 +68834,30 @@ var ts;
68782
68834
  isAwaitedTypeInstantiation(type) ? type.aliasTypeArguments[0] :
68783
68835
  type;
68784
68836
  }
68785
- function createAwaitedTypeIfNeeded(type) {
68786
- if (isTypeAny(type)) {
68787
- return type;
68788
- }
68789
- if (isAwaitedTypeInstantiation(type)) {
68790
- return type;
68837
+ function isAwaitedTypeNeeded(type) {
68838
+ if (isTypeAny(type) || isAwaitedTypeInstantiation(type)) {
68839
+ return false;
68791
68840
  }
68792
68841
  if (isGenericObjectType(type)) {
68793
68842
  var baseConstraint = getBaseConstraintOfType(type);
68794
68843
  if (!baseConstraint || (baseConstraint.flags & 3) || isEmptyObjectType(baseConstraint) || isThenableType(baseConstraint)) {
68795
- var awaitedSymbol = getGlobalAwaitedSymbol(true);
68796
- if (awaitedSymbol) {
68797
- return getTypeAliasInstantiation(awaitedSymbol, [unwrapAwaitedType(type)]);
68798
- }
68844
+ return true;
68845
+ }
68846
+ }
68847
+ return false;
68848
+ }
68849
+ function tryCreateAwaitedType(type) {
68850
+ var awaitedSymbol = getGlobalAwaitedSymbol(true);
68851
+ if (awaitedSymbol) {
68852
+ return getTypeAliasInstantiation(awaitedSymbol, [unwrapAwaitedType(type)]);
68853
+ }
68854
+ return undefined;
68855
+ }
68856
+ function createAwaitedTypeIfNeeded(type) {
68857
+ if (isAwaitedTypeNeeded(type)) {
68858
+ var awaitedType = tryCreateAwaitedType(type);
68859
+ if (awaitedType) {
68860
+ return awaitedType;
68799
68861
  }
68800
68862
  }
68801
68863
  ts.Debug.assert(getPromisedTypeOfPromise(type) === undefined, "type provided should not be a non-generic 'promise'-like.");
@@ -68829,6 +68891,9 @@ var ts;
68829
68891
  awaitedTypeStack.pop();
68830
68892
  return typeAsAwaitable.awaitedTypeOfType = mapped;
68831
68893
  }
68894
+ if (isAwaitedTypeNeeded(type)) {
68895
+ return typeAsAwaitable.awaitedTypeOfType = type;
68896
+ }
68832
68897
  var thisTypeForErrorOut = { value: undefined };
68833
68898
  var promisedType = getPromisedTypeOfPromise(type, undefined, thisTypeForErrorOut);
68834
68899
  if (promisedType) {
@@ -69332,8 +69397,8 @@ var ts;
69332
69397
  return;
69333
69398
  var typeParameters = ts.getEffectiveTypeParameterDeclarations(node);
69334
69399
  var seenParentsWithEveryUnused = new ts.Set();
69335
- for (var _i = 0, typeParameters_3 = typeParameters; _i < typeParameters_3.length; _i++) {
69336
- var typeParameter = typeParameters_3[_i];
69400
+ for (var _i = 0, typeParameters_4 = typeParameters; _i < typeParameters_4.length; _i++) {
69401
+ var typeParameter = typeParameters_4[_i];
69337
69402
  if (!isTypeParameterUnused(typeParameter))
69338
69403
  continue;
69339
69404
  var name = ts.idText(typeParameter.name);
@@ -70797,7 +70862,7 @@ var ts;
70797
70862
  var interfaceDeclaration = ts.getObjectFlags(type) & 2 ? ts.getDeclarationOfKind(type.symbol, 258) : undefined;
70798
70863
  var localPropDeclaration = declaration && declaration.kind === 221 ||
70799
70864
  name && name.kind === 162 || getParentOfSymbol(prop) === type.symbol ? declaration : undefined;
70800
- var _loop_29 = function (info) {
70865
+ var _loop_30 = function (info) {
70801
70866
  var localIndexDeclaration = info.declaration && getParentOfSymbol(getSymbolOfNode(info.declaration)) === type.symbol ? info.declaration : undefined;
70802
70867
  var errorNode = localPropDeclaration || localIndexDeclaration ||
70803
70868
  (interfaceDeclaration && !ts.some(getBaseTypes(type), function (base) { return !!getPropertyOfObjectType(base, prop.escapedName) && !!getIndexTypeOfType(base, info.keyType); }) ? interfaceDeclaration : undefined);
@@ -70807,7 +70872,7 @@ var ts;
70807
70872
  };
70808
70873
  for (var _i = 0, indexInfos_9 = indexInfos; _i < indexInfos_9.length; _i++) {
70809
70874
  var info = indexInfos_9[_i];
70810
- _loop_29(info);
70875
+ _loop_30(info);
70811
70876
  }
70812
70877
  }
70813
70878
  function checkIndexConstraintForIndexSignature(type, checkInfo) {
@@ -70815,7 +70880,7 @@ var ts;
70815
70880
  var indexInfos = getApplicableIndexInfos(type, checkInfo.keyType);
70816
70881
  var interfaceDeclaration = ts.getObjectFlags(type) & 2 ? ts.getDeclarationOfKind(type.symbol, 258) : undefined;
70817
70882
  var localCheckDeclaration = declaration && getParentOfSymbol(getSymbolOfNode(declaration)) === type.symbol ? declaration : undefined;
70818
- var _loop_30 = function (info) {
70883
+ var _loop_31 = function (info) {
70819
70884
  if (info === checkInfo)
70820
70885
  return "continue";
70821
70886
  var localIndexDeclaration = info.declaration && getParentOfSymbol(getSymbolOfNode(info.declaration)) === type.symbol ? info.declaration : undefined;
@@ -70827,7 +70892,7 @@ var ts;
70827
70892
  };
70828
70893
  for (var _i = 0, indexInfos_10 = indexInfos; _i < indexInfos_10.length; _i++) {
70829
70894
  var info = indexInfos_10[_i];
70830
- _loop_30(info);
70895
+ _loop_31(info);
70831
70896
  }
70832
70897
  }
70833
70898
  function checkTypeNameIsReserved(name, message) {
@@ -71122,7 +71187,7 @@ var ts;
71122
71187
  var baseTypes = baseTypeNode && getBaseTypes(type);
71123
71188
  var baseWithThis = (baseTypes === null || baseTypes === void 0 ? void 0 : baseTypes.length) ? getTypeWithThisArgument(ts.first(baseTypes), type.thisType) : undefined;
71124
71189
  var baseStaticType = getBaseConstructorTypeOfClass(type);
71125
- var _loop_31 = function (member) {
71190
+ var _loop_32 = function (member) {
71126
71191
  if (ts.hasAmbientModifier(member)) {
71127
71192
  return "continue";
71128
71193
  }
@@ -71137,7 +71202,7 @@ var ts;
71137
71202
  };
71138
71203
  for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
71139
71204
  var member = _a[_i];
71140
- _loop_31(member);
71205
+ _loop_32(member);
71141
71206
  }
71142
71207
  }
71143
71208
  function checkExistingMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, member, memberIsParameterProperty, reportErrors) {
@@ -71212,7 +71277,7 @@ var ts;
71212
71277
  }
71213
71278
  function issueMemberSpecificError(node, typeWithThis, baseWithThis, broadDiag) {
71214
71279
  var issuedMemberError = false;
71215
- var _loop_32 = function (member) {
71280
+ var _loop_33 = function (member) {
71216
71281
  if (ts.isStatic(member)) {
71217
71282
  return "continue";
71218
71283
  }
@@ -71230,7 +71295,7 @@ var ts;
71230
71295
  };
71231
71296
  for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
71232
71297
  var member = _a[_i];
71233
- _loop_32(member);
71298
+ _loop_33(member);
71234
71299
  }
71235
71300
  if (!issuedMemberError) {
71236
71301
  checkTypeAssignableTo(typeWithThis, baseWithThis, node.name || node, broadDiag);
@@ -71277,7 +71342,7 @@ var ts;
71277
71342
  function checkKindsOfPropertyMemberOverrides(type, baseType) {
71278
71343
  var _a, _b, _c, _d;
71279
71344
  var baseProperties = getPropertiesOfType(baseType);
71280
- var _loop_33 = function (baseProperty) {
71345
+ var _loop_34 = function (baseProperty) {
71281
71346
  var base = getTargetSymbol(baseProperty);
71282
71347
  if (base.flags & 4194304) {
71283
71348
  return "continue";
@@ -71375,7 +71440,7 @@ var ts;
71375
71440
  };
71376
71441
  basePropertyCheck: for (var _i = 0, baseProperties_1 = baseProperties; _i < baseProperties_1.length; _i++) {
71377
71442
  var baseProperty = baseProperties_1[_i];
71378
- var state_10 = _loop_33(baseProperty);
71443
+ var state_10 = _loop_34(baseProperty);
71379
71444
  switch (state_10) {
71380
71445
  case "continue-basePropertyCheck": continue basePropertyCheck;
71381
71446
  }
@@ -91847,7 +91912,6 @@ var ts;
91847
91912
  newBuildInfo.program = buildInfo.program;
91848
91913
  if (newBuildInfo.program && changedDtsText !== undefined && config.options.composite) {
91849
91914
  newBuildInfo.program.outSignature = ts.computeSignature(changedDtsText, createHash, changedDtsData);
91850
- newBuildInfo.program.dtsChangeTime = ts.getCurrentTime(host).getTime();
91851
91915
  }
91852
91916
  var _a = buildInfo.bundle, js = _a.js, dts = _a.dts, sourceFiles = _a.sourceFiles;
91853
91917
  newBuildInfo.bundle.js.sources = js.sources;
@@ -100225,7 +100289,7 @@ var ts;
100225
100289
  state.outSignature = oldState === null || oldState === void 0 ? void 0 : oldState.outSignature;
100226
100290
  }
100227
100291
  state.changedFilesSet = new ts.Set();
100228
- state.dtsChangeTime = compilerOptions.composite ? oldState === null || oldState === void 0 ? void 0 : oldState.dtsChangeTime : undefined;
100292
+ state.latestChangedDtsFile = compilerOptions.composite ? oldState === null || oldState === void 0 ? void 0 : oldState.latestChangedDtsFile : undefined;
100229
100293
  var useOldState = ts.BuilderState.canReuseOldState(state.referencedMap, oldState);
100230
100294
  var oldCompilerOptions = useOldState ? oldState.compilerOptions : undefined;
100231
100295
  var canCopySemanticDiagnostics = useOldState && oldState.semanticDiagnosticsPerFile && !!state.semanticDiagnosticsPerFile &&
@@ -100332,7 +100396,7 @@ var ts;
100332
100396
  programEmitComplete: state.programEmitComplete,
100333
100397
  emitSignatures: state.emitSignatures && new ts.Map(state.emitSignatures),
100334
100398
  outSignature: state.outSignature,
100335
- dtsChangeTime: state.dtsChangeTime,
100399
+ latestChangedDtsFile: state.latestChangedDtsFile,
100336
100400
  hasChangedEmitSignature: state.hasChangedEmitSignature,
100337
100401
  changedFilesSet: outFilePath ? new ts.Set(state.changedFilesSet) : undefined,
100338
100402
  };
@@ -100345,7 +100409,7 @@ var ts;
100345
100409
  state.programEmitComplete = savedEmitState.programEmitComplete;
100346
100410
  state.emitSignatures = savedEmitState.emitSignatures;
100347
100411
  state.outSignature = savedEmitState.outSignature;
100348
- state.dtsChangeTime = savedEmitState.dtsChangeTime;
100412
+ state.latestChangedDtsFile = savedEmitState.latestChangedDtsFile;
100349
100413
  state.hasChangedEmitSignature = savedEmitState.hasChangedEmitSignature;
100350
100414
  if (savedEmitState.changedFilesSet)
100351
100415
  state.changedFilesSet = savedEmitState.changedFilesSet;
@@ -100575,13 +100639,13 @@ var ts;
100575
100639
  return !!ts.outFile(info.options || {});
100576
100640
  }
100577
100641
  ts.isProgramBundleEmitBuildInfo = isProgramBundleEmitBuildInfo;
100578
- function getProgramBuildInfo(state, getCanonicalFileName, host) {
100642
+ function getProgramBuildInfo(state, getCanonicalFileName) {
100579
100643
  var outFilePath = ts.outFile(state.compilerOptions);
100580
100644
  if (outFilePath && !state.compilerOptions.composite)
100581
100645
  return;
100582
100646
  var currentDirectory = ts.Debug.checkDefined(state.program).getCurrentDirectory();
100583
100647
  var buildInfoDirectory = ts.getDirectoryPath(ts.getNormalizedAbsolutePath(ts.getTsBuildInfoEmitOutputFilePath(state.compilerOptions), currentDirectory));
100584
- state.dtsChangeTime = state.hasChangedEmitSignature ? ts.getCurrentTime(host).getTime() : state.dtsChangeTime;
100648
+ var latestChangedDtsFile = state.latestChangedDtsFile ? relativeToBuildInfoEnsuringAbsolutePath(state.latestChangedDtsFile) : undefined;
100585
100649
  if (outFilePath) {
100586
100650
  var fileNames_1 = [];
100587
100651
  var fileInfos_1 = [];
@@ -100597,7 +100661,7 @@ var ts;
100597
100661
  fileInfos: fileInfos_1,
100598
100662
  options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions, "affectsBundleEmitBuildInfo"),
100599
100663
  outSignature: state.outSignature,
100600
- dtsChangeTime: state.dtsChangeTime,
100664
+ latestChangedDtsFile: latestChangedDtsFile,
100601
100665
  };
100602
100666
  return result_15;
100603
100667
  }
@@ -100692,7 +100756,7 @@ var ts;
100692
100756
  affectedFilesPendingEmit: affectedFilesPendingEmit,
100693
100757
  changeFileSet: changeFileSet,
100694
100758
  emitSignatures: emitSignatures,
100695
- dtsChangeTime: state.dtsChangeTime,
100759
+ latestChangedDtsFile: latestChangedDtsFile,
100696
100760
  };
100697
100761
  return result;
100698
100762
  function relativeToBuildInfoEnsuringAbsolutePath(path) {
@@ -100850,7 +100914,7 @@ var ts;
100850
100914
  var getCanonicalFileName = ts.createGetCanonicalFileName(host.useCaseSensitiveFileNames());
100851
100915
  var computeHash = ts.maybeBind(host, host.createHash);
100852
100916
  var state = createBuilderProgramState(newProgram, getCanonicalFileName, oldState, host.disableUseFileVersionAsSignature);
100853
- newProgram.getProgramBuildInfo = function () { return getProgramBuildInfo(state, getCanonicalFileName, host); };
100917
+ newProgram.getProgramBuildInfo = function () { return getProgramBuildInfo(state, getCanonicalFileName); };
100854
100918
  newProgram = undefined;
100855
100919
  oldProgram = undefined;
100856
100920
  oldState = undefined;
@@ -100859,6 +100923,7 @@ var ts;
100859
100923
  builderProgram.getState = getState;
100860
100924
  builderProgram.saveEmitState = function () { return backupBuilderProgramEmitState(state); };
100861
100925
  builderProgram.restoreEmitState = function (saved) { return restoreBuilderProgramEmitState(state, saved); };
100926
+ builderProgram.hasChangedEmitSignature = function () { return !!state.hasChangedEmitSignature; };
100862
100927
  builderProgram.getAllDependencies = function (sourceFile) { return ts.BuilderState.getAllDependencies(state, ts.Debug.checkDefined(state.program), sourceFile); };
100863
100928
  builderProgram.getSemanticDiagnostics = getSemanticDiagnostics;
100864
100929
  builderProgram.emit = emit;
@@ -100947,18 +101012,20 @@ var ts;
100947
101012
  var filePath = sourceFiles[0].resolvedPath;
100948
101013
  var oldSignature = (_f = state.emitSignatures) === null || _f === void 0 ? void 0 : _f.get(filePath);
100949
101014
  emitSignature !== null && emitSignature !== void 0 ? emitSignature : (emitSignature = computeSignature(text, computeHash, data));
100950
- if (emitSignature !== oldSignature) {
100951
- ((_g = state.emitSignatures) !== null && _g !== void 0 ? _g : (state.emitSignatures = new ts.Map())).set(filePath, emitSignature);
100952
- state.hasChangedEmitSignature = true;
100953
- }
101015
+ if (emitSignature === oldSignature)
101016
+ return;
101017
+ ((_g = state.emitSignatures) !== null && _g !== void 0 ? _g : (state.emitSignatures = new ts.Map())).set(filePath, emitSignature);
101018
+ state.hasChangedEmitSignature = true;
101019
+ state.latestChangedDtsFile = fileName;
100954
101020
  }
100955
101021
  }
100956
101022
  else if (state.compilerOptions.composite) {
100957
101023
  var newSignature = computeSignature(text, computeHash, data);
100958
- if (newSignature !== state.outSignature) {
100959
- state.outSignature = newSignature;
100960
- state.hasChangedEmitSignature = true;
100961
- }
101024
+ if (newSignature === state.outSignature)
101025
+ return;
101026
+ state.outSignature = newSignature;
101027
+ state.hasChangedEmitSignature = true;
101028
+ state.latestChangedDtsFile = fileName;
100962
101029
  }
100963
101030
  }
100964
101031
  if (writeFile)
@@ -101079,11 +101146,12 @@ var ts;
101079
101146
  var state;
101080
101147
  var filePaths;
101081
101148
  var filePathsSetList;
101149
+ var latestChangedDtsFile = program.latestChangedDtsFile ? toAbsolutePath(program.latestChangedDtsFile) : undefined;
101082
101150
  if (isProgramBundleEmitBuildInfo(program)) {
101083
101151
  state = {
101084
101152
  fileInfos: new ts.Map(),
101085
101153
  compilerOptions: program.options ? ts.convertToOptionsWithAbsolutePaths(program.options, toAbsolutePath) : {},
101086
- dtsChangeTime: program.dtsChangeTime,
101154
+ latestChangedDtsFile: latestChangedDtsFile,
101087
101155
  outSignature: program.outSignature,
101088
101156
  };
101089
101157
  }
@@ -101116,7 +101184,7 @@ var ts;
101116
101184
  affectedFilesPendingEmitKind: program.affectedFilesPendingEmit && ts.arrayToMap(program.affectedFilesPendingEmit, function (value) { return toFilePath(value[0]); }, function (value) { return value[1]; }),
101117
101185
  affectedFilesPendingEmitIndex: program.affectedFilesPendingEmit && 0,
101118
101186
  changedFilesSet: new ts.Set(ts.map(program.changeFileSet, toFilePath)),
101119
- dtsChangeTime: program.dtsChangeTime,
101187
+ latestChangedDtsFile: latestChangedDtsFile,
101120
101188
  emitSignatures: (emitSignatures_1 === null || emitSignatures_1 === void 0 ? void 0 : emitSignatures_1.size) ? emitSignatures_1 : undefined,
101121
101189
  };
101122
101190
  }
@@ -101143,6 +101211,7 @@ var ts;
101143
101211
  getSemanticDiagnosticsOfNextAffectedFile: ts.notImplemented,
101144
101212
  emitBuildInfo: ts.notImplemented,
101145
101213
  close: ts.noop,
101214
+ hasChangedEmitSignature: ts.returnFalse,
101146
101215
  };
101147
101216
  function toPath(path) {
101148
101217
  return ts.toPath(path, buildInfoDirectory, getCanonicalFileName);
@@ -102283,7 +102352,7 @@ var ts;
102283
102352
  importedFileFromNodeModules = importedFileFromNodeModules || isInNodeModules;
102284
102353
  });
102285
102354
  var sortedPaths = [];
102286
- var _loop_34 = function (directory) {
102355
+ var _loop_35 = function (directory) {
102287
102356
  var directoryStart = ts.ensureTrailingDirectorySeparator(directory);
102288
102357
  var pathsInDirectory;
102289
102358
  allFileNames.forEach(function (_a, fileName) {
@@ -102307,7 +102376,7 @@ var ts;
102307
102376
  };
102308
102377
  var out_directory_1;
102309
102378
  for (var directory = ts.getDirectoryPath(importingFileName); allFileNames.size !== 0;) {
102310
- var state_11 = _loop_34(directory);
102379
+ var state_11 = _loop_35(directory);
102311
102380
  directory = out_directory_1;
102312
102381
  if (state_11 === "break")
102313
102382
  break;
@@ -103080,7 +103149,6 @@ var ts;
103080
103149
  readDirectory: ts.maybeBind(host, host.readDirectory),
103081
103150
  disableUseFileVersionAsSignature: host.disableUseFileVersionAsSignature,
103082
103151
  storeFilesChangingSignatureDuringEmit: host.storeFilesChangingSignatureDuringEmit,
103083
- now: ts.maybeBind(host, host.now),
103084
103152
  };
103085
103153
  function writeFile(fileName, text, writeByteOrderMark, onError) {
103086
103154
  try {
@@ -103219,7 +103287,6 @@ var ts;
103219
103287
  host.createHash = ts.maybeBind(system, system.createHash);
103220
103288
  host.disableUseFileVersionAsSignature = system.disableUseFileVersionAsSignature;
103221
103289
  host.storeFilesChangingSignatureDuringEmit = system.storeFilesChangingSignatureDuringEmit;
103222
- host.now = ts.maybeBind(system, system.now);
103223
103290
  ts.setGetSourceFileAsHashVersioned(host, system);
103224
103291
  ts.changeCompilerHostLikeToUseCache(host, function (fileName) { return ts.toPath(fileName, host.getCurrentDirectory(), host.getCanonicalFileName); });
103225
103292
  return host;
@@ -104443,8 +104510,7 @@ var ts;
104443
104510
  };
104444
104511
  }
104445
104512
  var host = state.host, compilerHost = state.compilerHost;
104446
- var resultFlags = BuildResultFlags.DeclarationOutputUnchanged;
104447
- var existingBuildInfo = ((_d = state.buildInfoCache.get(projectPath)) === null || _d === void 0 ? void 0 : _d.buildInfo) || undefined;
104513
+ var resultFlags = ((_d = program.hasChangedEmitSignature) === null || _d === void 0 ? void 0 : _d.call(program)) ? BuildResultFlags.None : BuildResultFlags.DeclarationOutputUnchanged;
104448
104514
  var emitterDiagnostics = ts.createDiagnosticCollection();
104449
104515
  var emittedOutputs = new ts.Map();
104450
104516
  var options = program.getCompilerOptions();
@@ -104452,16 +104518,11 @@ var ts;
104452
104518
  var outputTimeStampMap;
104453
104519
  var now;
104454
104520
  outputFiles.forEach(function (_a) {
104455
- var _b, _c;
104456
104521
  var name = _a.name, text = _a.text, writeByteOrderMark = _a.writeByteOrderMark, buildInfo = _a.buildInfo;
104457
104522
  var path = toPath(state, name);
104458
104523
  emittedOutputs.set(toPath(state, name), name);
104459
- if (buildInfo) {
104460
- setBuildInfo(state, buildInfo, projectPath, options);
104461
- if (((_b = buildInfo.program) === null || _b === void 0 ? void 0 : _b.dtsChangeTime) !== ((_c = existingBuildInfo === null || existingBuildInfo === void 0 ? void 0 : existingBuildInfo.program) === null || _c === void 0 ? void 0 : _c.dtsChangeTime)) {
104462
- resultFlags &= ~BuildResultFlags.DeclarationOutputUnchanged;
104463
- }
104464
- }
104524
+ if (buildInfo)
104525
+ setBuildInfo(state, buildInfo, projectPath, options, resultFlags);
104465
104526
  ts.writeFile(writeFileCallback ? { writeFile: writeFileCallback } : compilerHost, emitterDiagnostics, name, text, writeByteOrderMark);
104466
104527
  if (!isIncremental && state.watch) {
104467
104528
  (outputTimeStampMap || (outputTimeStampMap = getOutputTimeStampMap(state, projectPath))).set(path, now || (now = getCurrentTime(state.host)));
@@ -104475,7 +104536,7 @@ var ts;
104475
104536
  ts.Debug.assert(step === BuildStep.EmitBuildInfo);
104476
104537
  var emitResult = program.emitBuildInfo(function (name, text, writeByteOrderMark, onError, sourceFiles, data) {
104477
104538
  if (data === null || data === void 0 ? void 0 : data.buildInfo)
104478
- setBuildInfo(state, data.buildInfo, projectPath, program.getCompilerOptions());
104539
+ setBuildInfo(state, data.buildInfo, projectPath, program.getCompilerOptions(), BuildResultFlags.DeclarationOutputUnchanged);
104479
104540
  if (writeFileCallback)
104480
104541
  writeFileCallback(name, text, writeByteOrderMark, onError, sourceFiles, data);
104481
104542
  else
@@ -104507,7 +104568,6 @@ var ts;
104507
104568
  state.diagnostics.delete(projectPath);
104508
104569
  state.projectStatus.set(projectPath, {
104509
104570
  type: ts.UpToDateStatusType.UpToDate,
104510
- newestDeclarationFileContentChangedTime: getDtsChangeTime(state, config.options, projectPath),
104511
104571
  oldestOutputFileName: oldestOutputFileName
104512
104572
  });
104513
104573
  afterProgramDone(state, program, config);
@@ -104547,10 +104607,10 @@ var ts;
104547
104607
  var name = _a.name, text = _a.text, writeByteOrderMark = _a.writeByteOrderMark, buildInfo = _a.buildInfo;
104548
104608
  emittedOutputs.set(toPath(state, name), name);
104549
104609
  if (buildInfo) {
104550
- setBuildInfo(state, buildInfo, projectPath, config.options);
104551
- if (((_b = buildInfo.program) === null || _b === void 0 ? void 0 : _b.dtsChangeTime) !== ((_c = existingBuildInfo.program) === null || _c === void 0 ? void 0 : _c.dtsChangeTime)) {
104610
+ if (((_b = buildInfo.program) === null || _b === void 0 ? void 0 : _b.outSignature) !== ((_c = existingBuildInfo.program) === null || _c === void 0 ? void 0 : _c.outSignature)) {
104552
104611
  resultFlags &= ~BuildResultFlags.DeclarationOutputUnchanged;
104553
104612
  }
104613
+ setBuildInfo(state, buildInfo, projectPath, config.options, resultFlags);
104554
104614
  }
104555
104615
  ts.writeFile(writeFileCallback ? { writeFile: writeFileCallback } : compilerHost, emitterDiagnostics, name, text, writeByteOrderMark);
104556
104616
  });
@@ -104799,15 +104859,23 @@ var ts;
104799
104859
  state.outputTimeStamps.set(resolvedConfigFilePath, result = new ts.Map());
104800
104860
  return result;
104801
104861
  }
104802
- function setBuildInfo(state, buildInfo, resolvedConfigPath, options) {
104862
+ function setBuildInfo(state, buildInfo, resolvedConfigPath, options, resultFlags) {
104803
104863
  var buildInfoPath = ts.getTsBuildInfoEmitOutputFilePath(options);
104804
104864
  var existing = getBuildInfoCacheEntry(state, buildInfoPath, resolvedConfigPath);
104865
+ var modifiedTime = getCurrentTime(state.host);
104805
104866
  if (existing) {
104806
104867
  existing.buildInfo = buildInfo;
104807
- existing.modifiedTime = getCurrentTime(state.host);
104868
+ existing.modifiedTime = modifiedTime;
104869
+ if (!(resultFlags & BuildResultFlags.DeclarationOutputUnchanged))
104870
+ existing.latestChangedDtsTime = modifiedTime;
104808
104871
  }
104809
104872
  else {
104810
- state.buildInfoCache.set(resolvedConfigPath, { path: toPath(state, buildInfoPath), buildInfo: buildInfo, modifiedTime: getCurrentTime(state.host) });
104873
+ state.buildInfoCache.set(resolvedConfigPath, {
104874
+ path: toPath(state, buildInfoPath),
104875
+ buildInfo: buildInfo,
104876
+ modifiedTime: modifiedTime,
104877
+ latestChangedDtsTime: resultFlags & BuildResultFlags.DeclarationOutputUnchanged ? undefined : modifiedTime,
104878
+ });
104811
104879
  }
104812
104880
  }
104813
104881
  function getBuildInfoCacheEntry(state, buildInfoPath, resolvedConfigPath) {
@@ -104838,7 +104906,7 @@ var ts;
104838
104906
  }
104839
104907
  }
104840
104908
  function getUpToDateStatusWorker(state, project, resolvedPath) {
104841
- var _a, _b, _c;
104909
+ var _a, _b;
104842
104910
  if (!project.fileNames.length && !ts.canJsonReportNoInputFiles(project.raw)) {
104843
104911
  return {
104844
104912
  type: ts.UpToDateStatusType.ContainerOnly
@@ -104848,8 +104916,8 @@ var ts;
104848
104916
  var force = !!state.options.force;
104849
104917
  if (project.projectReferences) {
104850
104918
  state.projectStatus.set(resolvedPath, { type: ts.UpToDateStatusType.ComputingUpstream });
104851
- for (var _i = 0, _d = project.projectReferences; _i < _d.length; _i++) {
104852
- var ref = _d[_i];
104919
+ for (var _i = 0, _c = project.projectReferences; _i < _c.length; _i++) {
104920
+ var ref = _c[_i];
104853
104921
  var resolvedRef = ts.resolveProjectReferencePath(ref);
104854
104922
  var resolvedRefPath = toResolvedConfigFilePath(state, resolvedRef);
104855
104923
  var resolvedConfig = parseConfigFile(state, resolvedRef, resolvedRefPath);
@@ -104885,7 +104953,6 @@ var ts;
104885
104953
  var buildInfoTime;
104886
104954
  var buildInfoProgram;
104887
104955
  var buildInfoVersionMap;
104888
- var newestDeclarationFileContentChangedTime;
104889
104956
  if (buildInfoPath) {
104890
104957
  var buildInfoCacheEntry_1 = getBuildInfoCacheEntry(state, buildInfoPath, resolvedPath);
104891
104958
  buildInfoTime = (buildInfoCacheEntry_1 === null || buildInfoCacheEntry_1 === void 0 ? void 0 : buildInfoCacheEntry_1.modifiedTime) || ts.getModifiedTime(host, buildInfoPath);
@@ -104921,13 +104988,12 @@ var ts;
104921
104988
  }
104922
104989
  oldestOutputFileTime = buildInfoTime;
104923
104990
  oldestOutputFileName = buildInfoPath;
104924
- newestDeclarationFileContentChangedTime = ((_c = buildInfo.program) === null || _c === void 0 ? void 0 : _c.dtsChangeTime) ? new Date(buildInfo.program.dtsChangeTime) : undefined;
104925
104991
  }
104926
104992
  var newestInputFileName = undefined;
104927
104993
  var newestInputFileTime = minimumDate;
104928
104994
  var pseudoInputUpToDate = false;
104929
- for (var _e = 0, _f = project.fileNames; _e < _f.length; _e++) {
104930
- var inputFile = _f[_e];
104995
+ for (var _d = 0, _e = project.fileNames; _d < _e.length; _d++) {
104996
+ var inputFile = _e[_d];
104931
104997
  var inputTime = getModifiedTime(state, inputFile);
104932
104998
  if (inputTime === ts.missingFileModifiedTime) {
104933
104999
  return {
@@ -104963,8 +105029,8 @@ var ts;
104963
105029
  if (!buildInfoPath) {
104964
105030
  var outputs = ts.getAllProjectOutputs(project, !host.useCaseSensitiveFileNames());
104965
105031
  var outputTimeStampMap = getOutputTimeStampMap(state, resolvedPath);
104966
- for (var _g = 0, outputs_1 = outputs; _g < outputs_1.length; _g++) {
104967
- var output = outputs_1[_g];
105032
+ for (var _f = 0, outputs_1 = outputs; _f < outputs_1.length; _f++) {
105033
+ var output = outputs_1[_f];
104968
105034
  var path = toPath(state, output);
104969
105035
  var outputTime = outputTimeStampMap === null || outputTimeStampMap === void 0 ? void 0 : outputTimeStampMap.get(path);
104970
105036
  if (!outputTime) {
@@ -104997,8 +105063,8 @@ var ts;
104997
105063
  var usesPrepend = false;
104998
105064
  var upstreamChangedProject;
104999
105065
  if (referenceStatuses) {
105000
- for (var _h = 0, referenceStatuses_1 = referenceStatuses; _h < referenceStatuses_1.length; _h++) {
105001
- var _j = referenceStatuses_1[_h], ref = _j.ref, refStatus = _j.refStatus, resolvedConfig = _j.resolvedConfig, resolvedRefPath = _j.resolvedRefPath;
105066
+ for (var _g = 0, referenceStatuses_1 = referenceStatuses; _g < referenceStatuses_1.length; _g++) {
105067
+ var _h = referenceStatuses_1[_g], ref = _h.ref, refStatus = _h.refStatus, resolvedConfig = _h.resolvedConfig, resolvedRefPath = _h.resolvedRefPath;
105002
105068
  usesPrepend = usesPrepend || !!(ref.prepend);
105003
105069
  if (refStatus.newestInputFileTime && refStatus.newestInputFileTime <= oldestOutputFileTime) {
105004
105070
  continue;
@@ -105010,7 +105076,8 @@ var ts;
105010
105076
  newerProjectName: ref.path
105011
105077
  };
105012
105078
  }
105013
- if (refStatus.newestDeclarationFileContentChangedTime && refStatus.newestDeclarationFileContentChangedTime <= oldestOutputFileTime) {
105079
+ var newestDeclarationFileContentChangedTime = getLatestChangedDtsTime(state, resolvedConfig.options, resolvedRefPath);
105080
+ if (newestDeclarationFileContentChangedTime && newestDeclarationFileContentChangedTime <= oldestOutputFileTime) {
105014
105081
  pseudoUpToDate = true;
105015
105082
  upstreamChangedProject = ref.path;
105016
105083
  continue;
@@ -105048,7 +105115,6 @@ var ts;
105048
105115
  pseudoInputUpToDate ?
105049
105116
  ts.UpToDateStatusType.UpToDateWithInputFileText :
105050
105117
  ts.UpToDateStatusType.UpToDate,
105051
- newestDeclarationFileContentChangedTime: newestDeclarationFileContentChangedTime,
105052
105118
  newestInputFileTime: newestInputFileTime,
105053
105119
  newestInputFileName: newestInputFileName,
105054
105120
  oldestOutputFileName: oldestOutputFileName
@@ -105127,13 +105193,17 @@ var ts;
105127
105193
  outputTimeStampMap.delete(key);
105128
105194
  });
105129
105195
  }
105130
- function getDtsChangeTime(state, options, resolvedConfigPath) {
105131
- var _a;
105196
+ function getLatestChangedDtsTime(state, options, resolvedConfigPath) {
105132
105197
  if (!options.composite)
105133
105198
  return undefined;
105134
- var buildInfoPath = ts.getTsBuildInfoEmitOutputFilePath(options);
105135
- var buildInfo = getBuildInfo(state, buildInfoPath, resolvedConfigPath, undefined);
105136
- return ((_a = buildInfo === null || buildInfo === void 0 ? void 0 : buildInfo.program) === null || _a === void 0 ? void 0 : _a.dtsChangeTime) ? new Date(buildInfo.program.dtsChangeTime) : undefined;
105199
+ var entry = ts.Debug.checkDefined(state.buildInfoCache.get(resolvedConfigPath));
105200
+ if (entry.latestChangedDtsTime !== undefined)
105201
+ return entry.latestChangedDtsTime || undefined;
105202
+ var latestChangedDtsTime = entry.buildInfo && entry.buildInfo.program && entry.buildInfo.program.latestChangedDtsFile ?
105203
+ state.host.getModifiedTime(ts.getNormalizedAbsolutePath(entry.buildInfo.program.latestChangedDtsFile, ts.getDirectoryPath(entry.path))) :
105204
+ undefined;
105205
+ entry.latestChangedDtsTime = latestChangedDtsTime || false;
105206
+ return latestChangedDtsTime;
105137
105207
  }
105138
105208
  function updateOutputTimestamps(state, proj, resolvedPath) {
105139
105209
  if (state.options.dry) {
@@ -105142,7 +105212,6 @@ var ts;
105142
105212
  updateOutputTimestampsWorker(state, proj, resolvedPath, ts.Diagnostics.Updating_output_timestamps_of_project_0);
105143
105213
  state.projectStatus.set(resolvedPath, {
105144
105214
  type: ts.UpToDateStatusType.UpToDate,
105145
- newestDeclarationFileContentChangedTime: getDtsChangeTime(state, proj.options, resolvedPath),
105146
105215
  oldestOutputFileName: ts.getFirstProjectOutput(proj, !state.host.useCaseSensitiveFileNames())
105147
105216
  });
105148
105217
  }