typescript 4.8.0-dev.20220629 → 4.8.0-dev.20220703

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.20220629";
72
+ ts.version = ts.versionMajorMinor + ".0-dev.20220703";
73
73
  var NativeCollections;
74
74
  (function (NativeCollections) {
75
75
  var globals = typeof globalThis !== "undefined" ? globalThis :
@@ -2667,6 +2667,22 @@ var ts;
2667
2667
  return wrapFunction(deprecation, func);
2668
2668
  }
2669
2669
  Debug.deprecate = deprecate;
2670
+ function formatVariance(varianceFlags) {
2671
+ var variance = varianceFlags & 7;
2672
+ var result = variance === 0 ? "in out" :
2673
+ variance === 3 ? "[bivariant]" :
2674
+ variance === 2 ? "in" :
2675
+ variance === 1 ? "out" :
2676
+ variance === 4 ? "[independent]" : "";
2677
+ if (varianceFlags & 8) {
2678
+ result += " (unmeasurable)";
2679
+ }
2680
+ else if (varianceFlags & 16) {
2681
+ result += " (unreliable)";
2682
+ }
2683
+ return result;
2684
+ }
2685
+ Debug.formatVariance = formatVariance;
2670
2686
  })(Debug = ts.Debug || (ts.Debug = {}));
2671
2687
  })(ts || (ts = {}));
2672
2688
  var ts;
@@ -3239,9 +3255,9 @@ var ts;
3239
3255
  eventStack.push({ phase: phase, name: name, args: args, time: 1000 * ts.timestamp(), separateBeginAndEnd: separateBeginAndEnd });
3240
3256
  }
3241
3257
  tracingEnabled.push = push;
3242
- function pop() {
3258
+ function pop(results) {
3243
3259
  ts.Debug.assert(eventStack.length > 0);
3244
- writeStackEvent(eventStack.length - 1, 1000 * ts.timestamp());
3260
+ writeStackEvent(eventStack.length - 1, 1000 * ts.timestamp(), results);
3245
3261
  eventStack.length--;
3246
3262
  }
3247
3263
  tracingEnabled.pop = pop;
@@ -3254,13 +3270,14 @@ var ts;
3254
3270
  }
3255
3271
  tracingEnabled.popAll = popAll;
3256
3272
  var sampleInterval = 1000 * 10;
3257
- function writeStackEvent(index, endTime) {
3273
+ function writeStackEvent(index, endTime, results) {
3258
3274
  var _a = eventStack[index], phase = _a.phase, name = _a.name, args = _a.args, time = _a.time, separateBeginAndEnd = _a.separateBeginAndEnd;
3259
3275
  if (separateBeginAndEnd) {
3276
+ ts.Debug.assert(!results, "`results` are not supported for events with `separateBeginAndEnd`");
3260
3277
  writeEvent("E", phase, name, args, undefined, endTime);
3261
3278
  }
3262
3279
  else if (sampleInterval - (time % sampleInterval) <= endTime - time) {
3263
- writeEvent("X", phase, name, args, "\"dur\":" + (endTime - time), time);
3280
+ writeEvent("X", phase, name, __assign(__assign({}, args), { results: results }), "\"dur\":" + (endTime - time), time);
3264
3281
  }
3265
3282
  }
3266
3283
  function writeEvent(eventType, phase, name, args, extras, time) {
@@ -39809,6 +39826,24 @@ var ts;
39809
39826
  var Symbol = ts.objectAllocator.getSymbolConstructor();
39810
39827
  var Type = ts.objectAllocator.getTypeConstructor();
39811
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
+ }());
39812
39847
  var typeCount = 0;
39813
39848
  var symbolCount = 0;
39814
39849
  var enumCount = 0;
@@ -40256,10 +40291,23 @@ var ts;
40256
40291
  var numberOrBigIntType = getUnionType([numberType, bigintType]);
40257
40292
  var templateConstraintType = getUnionType([stringType, numberType, booleanType, bigintType, nullType, undefinedType]);
40258
40293
  var numericStringType = getTemplateLiteralType(["", ""], [numberType]);
40259
- var restrictiveMapper = makeFunctionTypeMapper(function (t) { return t.flags & 262144 ? getRestrictiveTypeParameter(t) : t; });
40260
- 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)"; });
40261
40296
  var uniqueLiteralType = createIntrinsicType(131072, "never");
40262
- 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)"; });
40263
40311
  var emptyObjectType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, ts.emptyArray);
40264
40312
  var emptyJsxObjectType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, ts.emptyArray);
40265
40313
  emptyJsxObjectType.objectFlags |= 2048;
@@ -40408,7 +40456,6 @@ var ts;
40408
40456
  var typeofType = createTypeofType();
40409
40457
  var _jsxNamespace;
40410
40458
  var _jsxFactoryEntity;
40411
- var outofbandVarianceMarkerHandler;
40412
40459
  var subtypeRelation = new ts.Map();
40413
40460
  var strictSubtypeRelation = new ts.Map();
40414
40461
  var assignableRelation = new ts.Map();
@@ -43704,7 +43751,7 @@ var ts;
43704
43751
  var name = typeParameterToName(newParam, context);
43705
43752
  var newTypeVariable = ts.factory.createTypeReferenceNode(name);
43706
43753
  context.approximateLength += 37;
43707
- var newMapper = prependTypeMapping(type.root.checkType, newParam, type.combinedMapper || type.mapper);
43754
+ var newMapper = prependTypeMapping(type.root.checkType, newParam, type.mapper);
43708
43755
  var saveInferTypeParameters_1 = context.inferTypeParameters;
43709
43756
  context.inferTypeParameters = type.root.inferTypeParameters;
43710
43757
  var extendsTypeNode_1 = typeToTypeNodeHelper(instantiateType(type.root.extendsType, newMapper), context);
@@ -50128,19 +50175,20 @@ var ts;
50128
50175
  var _a;
50129
50176
  var inferences;
50130
50177
  if ((_a = typeParameter.symbol) === null || _a === void 0 ? void 0 : _a.declarations) {
50131
- for (var _i = 0, _b = typeParameter.symbol.declarations; _i < _b.length; _i++) {
50132
- var declaration = _b[_i];
50178
+ var _loop_15 = function (declaration) {
50133
50179
  if (declaration.parent.kind === 190) {
50134
50180
  var _c = ts.walkUpParenthesizedTypesAndGetParentAndChild(declaration.parent.parent), _d = _c[0], childTypeParameter = _d === void 0 ? declaration.parent : _d, grandParent = _c[1];
50135
50181
  if (grandParent.kind === 178 && !omitTypeReferences) {
50136
- var typeReference = grandParent;
50137
- var typeParameters = getTypeParametersForTypeReference(typeReference);
50138
- if (typeParameters) {
50139
- var index = typeReference.typeArguments.indexOf(childTypeParameter);
50140
- if (index < typeParameters.length) {
50141
- 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]);
50142
50188
  if (declaredConstraint) {
50143
- 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
+ }; }));
50144
50192
  var constraint = instantiateType(declaredConstraint, mapper);
50145
50193
  if (constraint !== typeParameter) {
50146
50194
  inferences = ts.append(inferences, constraint);
@@ -50169,6 +50217,10 @@ var ts;
50169
50217
  inferences = ts.append(inferences, instantiateType(nodeType, makeUnaryTypeMapper(getDeclaredTypeOfTypeParameter(getSymbolOfNode(checkMappedType_1.typeParameter)), checkMappedType_1.typeParameter.constraint ? getTypeFromTypeNode(checkMappedType_1.typeParameter.constraint) : keyofConstraintType)));
50170
50218
  }
50171
50219
  }
50220
+ };
50221
+ for (var _i = 0, _b = typeParameter.symbol.declarations; _i < _b.length; _i++) {
50222
+ var declaration = _b[_i];
50223
+ _loop_15(declaration);
50172
50224
  }
50173
50225
  }
50174
50226
  return inferences && getIntersectionType(inferences);
@@ -50976,7 +51028,7 @@ var ts;
50976
51028
  var lastRequiredIndex = -1;
50977
51029
  var firstRestIndex = -1;
50978
51030
  var lastOptionalOrRestIndex = -1;
50979
- var _loop_15 = function (i) {
51031
+ var _loop_16 = function (i) {
50980
51032
  var type = elementTypes[i];
50981
51033
  var flags = target.elementFlags[i];
50982
51034
  if (flags & 8) {
@@ -51002,7 +51054,7 @@ var ts;
51002
51054
  }
51003
51055
  };
51004
51056
  for (var i = 0; i < elementTypes.length; i++) {
51005
- var state_4 = _loop_15(i);
51057
+ var state_4 = _loop_16(i);
51006
51058
  if (typeof state_4 === "object")
51007
51059
  return state_4.value;
51008
51060
  }
@@ -51179,7 +51231,7 @@ var ts;
51179
51231
  var templates = ts.filter(types, isPatternLiteralType);
51180
51232
  if (templates.length) {
51181
51233
  var i = types.length;
51182
- var _loop_16 = function () {
51234
+ var _loop_17 = function () {
51183
51235
  i--;
51184
51236
  var t = types[i];
51185
51237
  if (t.flags & 128 && ts.some(templates, function (template) { return isTypeMatchedByTemplateLiteralType(t, template); })) {
@@ -51187,7 +51239,7 @@ var ts;
51187
51239
  }
51188
51240
  };
51189
51241
  while (i > 0) {
51190
- _loop_16();
51242
+ _loop_17();
51191
51243
  }
51192
51244
  }
51193
51245
  }
@@ -51257,14 +51309,14 @@ var ts;
51257
51309
  var namedUnions = [];
51258
51310
  addNamedUnions(namedUnions, types);
51259
51311
  var reducedTypes = [];
51260
- var _loop_17 = function (t) {
51312
+ var _loop_18 = function (t) {
51261
51313
  if (!ts.some(namedUnions, function (union) { return containsType(union.types, t); })) {
51262
51314
  reducedTypes.push(t);
51263
51315
  }
51264
51316
  };
51265
51317
  for (var _i = 0, typeSet_1 = typeSet; _i < typeSet_1.length; _i++) {
51266
51318
  var t = typeSet_1[_i];
51267
- _loop_17(t);
51319
+ _loop_18(t);
51268
51320
  }
51269
51321
  if (!aliasSymbol && namedUnions.length === 1 && reducedTypes.length === 0) {
51270
51322
  return namedUnions[0];
@@ -52340,7 +52392,7 @@ var ts;
52340
52392
  var result;
52341
52393
  var extraTypes;
52342
52394
  var tailCount = 0;
52343
- var _loop_18 = function () {
52395
+ var _loop_19 = function () {
52344
52396
  if (tailCount === 1000) {
52345
52397
  error(currentNode, ts.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite);
52346
52398
  result = errorType;
@@ -52414,7 +52466,7 @@ var ts;
52414
52466
  return "break";
52415
52467
  };
52416
52468
  while (true) {
52417
- var state_5 = _loop_18();
52469
+ var state_5 = _loop_19();
52418
52470
  if (typeof state_5 === "object")
52419
52471
  return state_5.value;
52420
52472
  if (state_5 === "break")
@@ -53015,7 +53067,7 @@ var ts;
53015
53067
  switch (mapper.kind) {
53016
53068
  case 0:
53017
53069
  return type === mapper.source ? mapper.target : type;
53018
- case 1:
53070
+ case 1: {
53019
53071
  var sources = mapper.sources;
53020
53072
  var targets = mapper.targets;
53021
53073
  for (var i = 0; i < sources.length; i++) {
@@ -53024,43 +53076,64 @@ var ts;
53024
53076
  }
53025
53077
  }
53026
53078
  return type;
53027
- case 2:
53028
- 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
+ }
53029
53090
  case 3:
53091
+ return mapper.func(type);
53030
53092
  case 4:
53093
+ case 5:
53031
53094
  var t1 = getMappedType(type, mapper.mapper1);
53032
- 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);
53033
53096
  }
53034
53097
  }
53098
+ function attachDebugPrototypeIfDebug(mapper) {
53099
+ if (ts.Debug.isDebugging) {
53100
+ return Object.setPrototypeOf(mapper, DebugTypeMapper.prototype);
53101
+ }
53102
+ return mapper;
53103
+ }
53035
53104
  function makeUnaryTypeMapper(source, target) {
53036
- return { kind: 0, source: source, target: target };
53105
+ return attachDebugPrototypeIfDebug({ kind: 0, source: source, target: target });
53037
53106
  }
53038
53107
  function makeArrayTypeMapper(sources, targets) {
53039
- 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 });
53040
53112
  }
53041
- function makeFunctionTypeMapper(func) {
53042
- return { kind: 2, func: func };
53113
+ function makeDeferredTypeMapper(sources, targets) {
53114
+ return attachDebugPrototypeIfDebug({ kind: 2, sources: sources, targets: targets });
53043
53115
  }
53044
53116
  function makeCompositeTypeMapper(kind, mapper1, mapper2) {
53045
- return { kind: kind, mapper1: mapper1, mapper2: mapper2 };
53117
+ return attachDebugPrototypeIfDebug({ kind: kind, mapper1: mapper1, mapper2: mapper2 });
53046
53118
  }
53047
53119
  function createTypeEraser(sources) {
53048
53120
  return createTypeMapper(sources, undefined);
53049
53121
  }
53050
53122
  function createBackreferenceMapper(context, index) {
53051
- 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; }));
53052
53125
  }
53053
53126
  function combineTypeMappers(mapper1, mapper2) {
53054
- return mapper1 ? makeCompositeTypeMapper(3, mapper1, mapper2) : mapper2;
53127
+ return mapper1 ? makeCompositeTypeMapper(4, mapper1, mapper2) : mapper2;
53055
53128
  }
53056
53129
  function mergeTypeMappers(mapper1, mapper2) {
53057
- return mapper1 ? makeCompositeTypeMapper(4, mapper1, mapper2) : mapper2;
53130
+ return mapper1 ? makeCompositeTypeMapper(5, mapper1, mapper2) : mapper2;
53058
53131
  }
53059
53132
  function prependTypeMapping(source, target, mapper) {
53060
- return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(4, makeUnaryTypeMapper(source, target), mapper);
53133
+ return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(5, makeUnaryTypeMapper(source, target), mapper);
53061
53134
  }
53062
53135
  function appendTypeMapping(mapper, source, target) {
53063
- return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(4, mapper, makeUnaryTypeMapper(source, target));
53136
+ return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(5, mapper, makeUnaryTypeMapper(source, target));
53064
53137
  }
53065
53138
  function getRestrictiveTypeParameter(tp) {
53066
53139
  return tp.constraint === unknownType ? tp : tp.restrictiveInstantiation || (tp.restrictiveInstantiation = createTypeParameter(tp.symbol),
@@ -54740,7 +54813,7 @@ var ts;
54740
54813
  reducedTarget = findMatchingDiscriminantType(source, target, isRelatedTo) || filterPrimitivesIfContainsNonPrimitive(target);
54741
54814
  checkTypes = reducedTarget.flags & 1048576 ? reducedTarget.types : [reducedTarget];
54742
54815
  }
54743
- var _loop_19 = function (prop) {
54816
+ var _loop_20 = function (prop) {
54744
54817
  if (shouldCheckAsExcessProperty(prop, source.symbol) && !isIgnoredJsxProperty(source, prop)) {
54745
54818
  if (!isKnownProperty(reducedTarget, prop.escapedName, isComparingJsxAttributes)) {
54746
54819
  if (reportErrors) {
@@ -54793,7 +54866,7 @@ var ts;
54793
54866
  };
54794
54867
  for (var _i = 0, _b = getPropertiesOfType(source); _i < _b.length; _i++) {
54795
54868
  var prop = _b[_i];
54796
- var state_6 = _loop_19(prop);
54869
+ var state_6 = _loop_20(prop);
54797
54870
  if (typeof state_6 === "object")
54798
54871
  return state_6.value;
54799
54872
  }
@@ -54981,10 +55054,10 @@ var ts;
54981
55054
  if (outofbandVarianceMarkerHandler) {
54982
55055
  var saved = entry & 24;
54983
55056
  if (saved & 8) {
54984
- instantiateType(source, makeFunctionTypeMapper(reportUnmeasurableMarkers));
55057
+ instantiateType(source, reportUnmeasurableMapper);
54985
55058
  }
54986
55059
  if (saved & 16) {
54987
- instantiateType(source, makeFunctionTypeMapper(reportUnreliableMarkers));
55060
+ instantiateType(source, reportUnreliableMapper);
54988
55061
  }
54989
55062
  }
54990
55063
  return entry & 1 ? -1 : 0;
@@ -55321,7 +55394,7 @@ var ts;
55321
55394
  if (relation === comparableRelation) {
55322
55395
  return templateLiteralTypesDefinitelyUnrelated(source, target) ? 0 : -1;
55323
55396
  }
55324
- instantiateType(source, makeFunctionTypeMapper(reportUnreliableMarkers));
55397
+ instantiateType(source, reportUnreliableMapper);
55325
55398
  }
55326
55399
  if (isTypeMatchedByTemplateLiteralType(source, target)) {
55327
55400
  return -1;
@@ -55533,25 +55606,13 @@ var ts;
55533
55606
  }
55534
55607
  }
55535
55608
  }
55536
- function reportUnmeasurableMarkers(p) {
55537
- if (outofbandVarianceMarkerHandler && (p === markerSuperType || p === markerSubType || p === markerOtherType)) {
55538
- outofbandVarianceMarkerHandler(false);
55539
- }
55540
- return p;
55541
- }
55542
- function reportUnreliableMarkers(p) {
55543
- if (outofbandVarianceMarkerHandler && (p === markerSuperType || p === markerSubType || p === markerOtherType)) {
55544
- outofbandVarianceMarkerHandler(true);
55545
- }
55546
- return p;
55547
- }
55548
55609
  function mappedTypeRelatedTo(source, target, reportErrors) {
55549
55610
  var modifiersRelated = relation === comparableRelation || (relation === identityRelation ? getMappedTypeModifiers(source) === getMappedTypeModifiers(target) :
55550
55611
  getCombinedMappedTypeOptionality(source) <= getCombinedMappedTypeOptionality(target));
55551
55612
  if (modifiersRelated) {
55552
55613
  var result_10;
55553
55614
  var targetConstraint = getConstraintTypeFromMappedType(target);
55554
- var sourceConstraint = instantiateType(getConstraintTypeFromMappedType(source), makeFunctionTypeMapper(getCombinedMappedTypeOptionality(source) < 0 ? reportUnmeasurableMarkers : reportUnreliableMarkers));
55615
+ var sourceConstraint = instantiateType(getConstraintTypeFromMappedType(source), getCombinedMappedTypeOptionality(source) < 0 ? reportUnmeasurableMapper : reportUnreliableMapper);
55555
55616
  if (result_10 = isRelatedTo(targetConstraint, sourceConstraint, 3, reportErrors)) {
55556
55617
  var mapper = createTypeMapper([getTypeParameterFromMappedType(source)], [getTypeParameterFromMappedType(target)]);
55557
55618
  if (instantiateType(getNameTypeFromMappedType(source), mapper) === instantiateType(getNameTypeFromMappedType(target), mapper)) {
@@ -55587,11 +55648,11 @@ var ts;
55587
55648
  }
55588
55649
  var discriminantCombinations = ts.cartesianProduct(sourceDiscriminantTypes);
55589
55650
  var matchingTypes = [];
55590
- var _loop_20 = function (combination) {
55651
+ var _loop_21 = function (combination) {
55591
55652
  var hasMatch = false;
55592
55653
  outer: for (var _c = 0, _d = target.types; _c < _d.length; _c++) {
55593
55654
  var type = _d[_c];
55594
- var _loop_21 = function (i) {
55655
+ var _loop_22 = function (i) {
55595
55656
  var sourceProperty = sourcePropertiesFiltered[i];
55596
55657
  var targetProperty = getPropertyOfType(type, sourceProperty.escapedName);
55597
55658
  if (!targetProperty)
@@ -55604,7 +55665,7 @@ var ts;
55604
55665
  }
55605
55666
  };
55606
55667
  for (var i = 0; i < sourcePropertiesFiltered.length; i++) {
55607
- var state_8 = _loop_21(i);
55668
+ var state_8 = _loop_22(i);
55608
55669
  switch (state_8) {
55609
55670
  case "continue-outer": continue outer;
55610
55671
  }
@@ -55618,7 +55679,7 @@ var ts;
55618
55679
  };
55619
55680
  for (var _a = 0, discriminantCombinations_1 = discriminantCombinations; _a < discriminantCombinations_1.length; _a++) {
55620
55681
  var combination = discriminantCombinations_1[_a];
55621
- var state_7 = _loop_20(combination);
55682
+ var state_7 = _loop_21(combination);
55622
55683
  if (typeof state_7 === "object")
55623
55684
  return state_7.value;
55624
55685
  }
@@ -56024,7 +56085,7 @@ var ts;
56024
56085
  return function (source, target) { return reportIncompatibleError(ts.Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible, typeToString(source), typeToString(target)); };
56025
56086
  }
56026
56087
  function signatureRelatedTo(source, target, erase, reportErrors, incompatibleReporter) {
56027
- 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);
56028
56089
  }
56029
56090
  function signaturesIdenticalTo(source, target, kind) {
56030
56091
  var sourceSignatures = getSignaturesOfType(source, kind);
@@ -56262,7 +56323,7 @@ var ts;
56262
56323
  ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.push("checkTypes", "getVariancesWorker", { arity: typeParameters.length, id: getTypeId(getDeclaredTypeOfSymbol(symbol)) });
56263
56324
  links.variances = ts.emptyArray;
56264
56325
  var variances = [];
56265
- var _loop_22 = function (tp) {
56326
+ var _loop_23 = function (tp) {
56266
56327
  var modifiers = getVarianceModifiers(tp);
56267
56328
  var variance = modifiers & 65536 ?
56268
56329
  modifiers & 32768 ? 0 : 1 :
@@ -56291,12 +56352,12 @@ var ts;
56291
56352
  }
56292
56353
  variances.push(variance);
56293
56354
  };
56294
- for (var _i = 0, typeParameters_1 = typeParameters; _i < typeParameters_1.length; _i++) {
56295
- var tp = typeParameters_1[_i];
56296
- _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);
56297
56358
  }
56298
56359
  links.variances = variances;
56299
- ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.pop();
56360
+ ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.pop({ variances: variances.map(ts.Debug.formatVariance) });
56300
56361
  }
56301
56362
  return links.variances;
56302
56363
  }
@@ -57161,25 +57222,27 @@ var ts;
57161
57222
  signature: signature,
57162
57223
  flags: flags,
57163
57224
  compareTypes: compareTypes,
57164
- mapper: makeFunctionTypeMapper(function (t) { return mapToInferredType(context, t, true); }),
57165
- nonFixingMapper: makeFunctionTypeMapper(function (t) { return mapToInferredType(context, t, false); }),
57225
+ mapper: reportUnmeasurableMapper,
57226
+ nonFixingMapper: reportUnmeasurableMapper,
57166
57227
  };
57228
+ context.mapper = makeFixingMapperForContext(context);
57229
+ context.nonFixingMapper = makeNonFixingMapperForContext(context);
57167
57230
  return context;
57168
57231
  }
57169
- function mapToInferredType(context, t, fix) {
57170
- var inferences = context.inferences;
57171
- for (var i = 0; i < inferences.length; i++) {
57172
- var inference = inferences[i];
57173
- if (t === inference.typeParameter) {
57174
- if (fix && !inference.isFixed) {
57175
- inferFromIntraExpressionSites(context);
57176
- clearCachedInferences(inferences);
57177
- inference.isFixed = true;
57178
- }
57179
- 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;
57180
57238
  }
57181
- }
57182
- 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
+ }; }));
57183
57246
  }
57184
57247
  function clearCachedInferences(inferences) {
57185
57248
  for (var _i = 0, inferences_1 = inferences; _i < inferences_1.length; _i++) {
@@ -57929,7 +57992,7 @@ var ts;
57929
57992
  var matches = inferTypesFromTemplateLiteralType(source, target);
57930
57993
  var types = target.types;
57931
57994
  if (matches || ts.every(target.texts, function (s) { return s.length === 0; })) {
57932
- var _loop_23 = function (i) {
57995
+ var _loop_24 = function (i) {
57933
57996
  var source_1 = matches ? matches[i] : neverType;
57934
57997
  var target_3 = types[i];
57935
57998
  if (source_1.flags & 128 && target_3.flags & 8650752) {
@@ -57973,7 +58036,7 @@ var ts;
57973
58036
  inferFromTypes(source_1, target_3);
57974
58037
  };
57975
58038
  for (var i = 0; i < types.length; i++) {
57976
- _loop_23(i);
58039
+ _loop_24(i);
57977
58040
  }
57978
58041
  }
57979
58042
  }
@@ -58443,7 +58506,7 @@ var ts;
58443
58506
  function mapTypesByKeyProperty(types, name) {
58444
58507
  var map = new ts.Map();
58445
58508
  var count = 0;
58446
- var _loop_24 = function (type) {
58509
+ var _loop_25 = function (type) {
58447
58510
  if (type.flags & (524288 | 2097152 | 58982400)) {
58448
58511
  var discriminant = getTypeOfPropertyOfType(type, name);
58449
58512
  if (discriminant) {
@@ -58469,7 +58532,7 @@ var ts;
58469
58532
  };
58470
58533
  for (var _i = 0, types_15 = types; _i < types_15.length; _i++) {
58471
58534
  var type = types_15[_i];
58472
- var state_9 = _loop_24(type);
58535
+ var state_9 = _loop_25(type);
58473
58536
  if (typeof state_9 === "object")
58474
58537
  return state_9.value;
58475
58538
  }
@@ -63878,7 +63941,7 @@ var ts;
63878
63941
  var spreadIndex = getSpreadArgumentIndex(args);
63879
63942
  if (spreadIndex >= 0) {
63880
63943
  var effectiveArgs_1 = args.slice(0, spreadIndex);
63881
- var _loop_25 = function (i) {
63944
+ var _loop_26 = function (i) {
63882
63945
  var arg = args[i];
63883
63946
  var spreadType = arg.kind === 225 && (flowLoopCount ? checkExpression(arg.expression) : checkExpressionCached(arg.expression));
63884
63947
  if (spreadType && isTupleType(spreadType)) {
@@ -63894,7 +63957,7 @@ var ts;
63894
63957
  }
63895
63958
  };
63896
63959
  for (var i = spreadIndex; i < args.length; i++) {
63897
- _loop_25(i);
63960
+ _loop_26(i);
63898
63961
  }
63899
63962
  return effectiveArgs_1;
63900
63963
  }
@@ -64144,7 +64207,7 @@ var ts;
64144
64207
  var min_3 = Number.MAX_VALUE;
64145
64208
  var minIndex = 0;
64146
64209
  var i_1 = 0;
64147
- var _loop_26 = function (c) {
64210
+ var _loop_27 = function (c) {
64148
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)); };
64149
64212
  var diags_2 = getSignatureApplicabilityError(node, args, c, assignableRelation, 0, true, chain_2);
64150
64213
  if (diags_2) {
@@ -64162,7 +64225,7 @@ var ts;
64162
64225
  };
64163
64226
  for (var _a = 0, candidatesForArgumentError_1 = candidatesForArgumentError; _a < candidatesForArgumentError_1.length; _a++) {
64164
64227
  var c = candidatesForArgumentError_1[_a];
64165
- _loop_26(c);
64228
+ _loop_27(c);
64166
64229
  }
64167
64230
  var diags_3 = max > 1 ? allDiagnostics[minIndex] : ts.flatten(allDiagnostics);
64168
64231
  ts.Debug.assert(diags_3.length > 0, "No errors reported for 3 or fewer overload signatures");
@@ -64305,7 +64368,7 @@ var ts;
64305
64368
  }
64306
64369
  var _a = ts.minAndMax(candidates, getNumNonRestParameters), minArgumentCount = _a.min, maxNonRestParam = _a.max;
64307
64370
  var parameters = [];
64308
- var _loop_27 = function (i) {
64371
+ var _loop_28 = function (i) {
64309
64372
  var symbols = ts.mapDefined(candidates, function (s) { return signatureHasRestParameter(s) ?
64310
64373
  i < s.parameters.length - 1 ? s.parameters[i] : ts.last(s.parameters) :
64311
64374
  i < s.parameters.length ? s.parameters[i] : undefined; });
@@ -64313,7 +64376,7 @@ var ts;
64313
64376
  parameters.push(createCombinedSymbolFromTypes(symbols, ts.mapDefined(candidates, function (candidate) { return tryGetTypeAtPosition(candidate, i); })));
64314
64377
  };
64315
64378
  for (var i = 0; i < maxNonRestParam; i++) {
64316
- _loop_27(i);
64379
+ _loop_28(i);
64317
64380
  }
64318
64381
  var restParameterSymbols = ts.mapDefined(candidates, function (c) { return signatureHasRestParameter(c) ? ts.last(c.parameters) : undefined; });
64319
64382
  var flags = 0;
@@ -67290,8 +67353,8 @@ var ts;
67290
67353
  var result = [];
67291
67354
  var oldTypeParameters;
67292
67355
  var newTypeParameters;
67293
- for (var _i = 0, typeParameters_2 = typeParameters; _i < typeParameters_2.length; _i++) {
67294
- var tp = typeParameters_2[_i];
67356
+ for (var _i = 0, typeParameters_3 = typeParameters; _i < typeParameters_3.length; _i++) {
67357
+ var tp = typeParameters_3[_i];
67295
67358
  var name = tp.symbol.escapedName;
67296
67359
  if (hasTypeParameterByName(context.inferredTypeParameters, name) || hasTypeParameterByName(result, name)) {
67297
67360
  var newName = getUniqueTypeParameterName(ts.concatenate(context.inferredTypeParameters, result), name);
@@ -67584,12 +67647,14 @@ var ts;
67584
67647
  error(node, ts.Diagnostics.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types);
67585
67648
  }
67586
67649
  else if (modifiers === 32768 || modifiers === 65536) {
67650
+ ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.push("checkTypes", "checkTypeParameterDeferred", { parent: getTypeId(getDeclaredTypeOfSymbol(symbol)), id: getTypeId(typeParameter) });
67587
67651
  var source = createMarkerType(symbol, typeParameter, modifiers === 65536 ? markerSubTypeForCheck : markerSuperTypeForCheck);
67588
67652
  var target = createMarkerType(symbol, typeParameter, modifiers === 65536 ? markerSuperTypeForCheck : markerSubTypeForCheck);
67589
67653
  var saveVarianceTypeParameter = typeParameter;
67590
67654
  varianceTypeParameter = typeParameter;
67591
67655
  checkTypeAssignableTo(source, target, node, ts.Diagnostics.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation);
67592
67656
  varianceTypeParameter = saveVarianceTypeParameter;
67657
+ ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.pop();
67593
67658
  }
67594
67659
  }
67595
67660
  }
@@ -67899,7 +67964,7 @@ var ts;
67899
67964
  var indexSymbol = getIndexSymbol(getSymbolOfNode(node));
67900
67965
  if (indexSymbol === null || indexSymbol === void 0 ? void 0 : indexSymbol.declarations) {
67901
67966
  var indexSignatureMap_1 = new ts.Map();
67902
- var _loop_28 = function (declaration) {
67967
+ var _loop_29 = function (declaration) {
67903
67968
  if (declaration.parameters.length === 1 && declaration.parameters[0].type) {
67904
67969
  forEachType(getTypeFromTypeNode(declaration.parameters[0].type), function (type) {
67905
67970
  var entry = indexSignatureMap_1.get(getTypeId(type));
@@ -67914,7 +67979,7 @@ var ts;
67914
67979
  };
67915
67980
  for (var _i = 0, _a = indexSymbol.declarations; _i < _a.length; _i++) {
67916
67981
  var declaration = _a[_i];
67917
- _loop_28(declaration);
67982
+ _loop_29(declaration);
67918
67983
  }
67919
67984
  indexSignatureMap_1.forEach(function (entry) {
67920
67985
  if (entry.declarations.length > 1) {
@@ -68106,6 +68171,12 @@ var ts;
68106
68171
  function checkMissingDeclaration(node) {
68107
68172
  checkDecorators(node);
68108
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
+ }
68109
68180
  function getEffectiveTypeArguments(node, typeParameters) {
68110
68181
  return fillMissingTypeArguments(ts.map(node.typeArguments, getTypeFromTypeNode), typeParameters, getMinTypeArgumentCount(typeParameters), ts.isInJSFile(node));
68111
68182
  }
@@ -68763,20 +68834,30 @@ var ts;
68763
68834
  isAwaitedTypeInstantiation(type) ? type.aliasTypeArguments[0] :
68764
68835
  type;
68765
68836
  }
68766
- function createAwaitedTypeIfNeeded(type) {
68767
- if (isTypeAny(type)) {
68768
- return type;
68769
- }
68770
- if (isAwaitedTypeInstantiation(type)) {
68771
- return type;
68837
+ function isAwaitedTypeNeeded(type) {
68838
+ if (isTypeAny(type) || isAwaitedTypeInstantiation(type)) {
68839
+ return false;
68772
68840
  }
68773
68841
  if (isGenericObjectType(type)) {
68774
68842
  var baseConstraint = getBaseConstraintOfType(type);
68775
68843
  if (!baseConstraint || (baseConstraint.flags & 3) || isEmptyObjectType(baseConstraint) || isThenableType(baseConstraint)) {
68776
- var awaitedSymbol = getGlobalAwaitedSymbol(true);
68777
- if (awaitedSymbol) {
68778
- return getTypeAliasInstantiation(awaitedSymbol, [unwrapAwaitedType(type)]);
68779
- }
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;
68780
68861
  }
68781
68862
  }
68782
68863
  ts.Debug.assert(getPromisedTypeOfPromise(type) === undefined, "type provided should not be a non-generic 'promise'-like.");
@@ -68798,8 +68879,20 @@ var ts;
68798
68879
  return typeAsAwaitable.awaitedTypeOfType;
68799
68880
  }
68800
68881
  if (type.flags & 1048576) {
68882
+ if (awaitedTypeStack.lastIndexOf(type.id) >= 0) {
68883
+ if (errorNode) {
68884
+ error(errorNode, ts.Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);
68885
+ }
68886
+ return undefined;
68887
+ }
68801
68888
  var mapper = errorNode ? function (constituentType) { return getAwaitedTypeNoAlias(constituentType, errorNode, diagnosticMessage, arg0); } : getAwaitedTypeNoAlias;
68802
- return typeAsAwaitable.awaitedTypeOfType = mapType(type, mapper);
68889
+ awaitedTypeStack.push(type.id);
68890
+ var mapped = mapType(type, mapper);
68891
+ awaitedTypeStack.pop();
68892
+ return typeAsAwaitable.awaitedTypeOfType = mapped;
68893
+ }
68894
+ if (isAwaitedTypeNeeded(type)) {
68895
+ return typeAsAwaitable.awaitedTypeOfType = type;
68803
68896
  }
68804
68897
  var thisTypeForErrorOut = { value: undefined };
68805
68898
  var promisedType = getPromisedTypeOfPromise(type, undefined, thisTypeForErrorOut);
@@ -69304,8 +69397,8 @@ var ts;
69304
69397
  return;
69305
69398
  var typeParameters = ts.getEffectiveTypeParameterDeclarations(node);
69306
69399
  var seenParentsWithEveryUnused = new ts.Set();
69307
- for (var _i = 0, typeParameters_3 = typeParameters; _i < typeParameters_3.length; _i++) {
69308
- var typeParameter = typeParameters_3[_i];
69400
+ for (var _i = 0, typeParameters_4 = typeParameters; _i < typeParameters_4.length; _i++) {
69401
+ var typeParameter = typeParameters_4[_i];
69309
69402
  if (!isTypeParameterUnused(typeParameter))
69310
69403
  continue;
69311
69404
  var name = ts.idText(typeParameter.name);
@@ -70769,7 +70862,7 @@ var ts;
70769
70862
  var interfaceDeclaration = ts.getObjectFlags(type) & 2 ? ts.getDeclarationOfKind(type.symbol, 258) : undefined;
70770
70863
  var localPropDeclaration = declaration && declaration.kind === 221 ||
70771
70864
  name && name.kind === 162 || getParentOfSymbol(prop) === type.symbol ? declaration : undefined;
70772
- var _loop_29 = function (info) {
70865
+ var _loop_30 = function (info) {
70773
70866
  var localIndexDeclaration = info.declaration && getParentOfSymbol(getSymbolOfNode(info.declaration)) === type.symbol ? info.declaration : undefined;
70774
70867
  var errorNode = localPropDeclaration || localIndexDeclaration ||
70775
70868
  (interfaceDeclaration && !ts.some(getBaseTypes(type), function (base) { return !!getPropertyOfObjectType(base, prop.escapedName) && !!getIndexTypeOfType(base, info.keyType); }) ? interfaceDeclaration : undefined);
@@ -70779,7 +70872,7 @@ var ts;
70779
70872
  };
70780
70873
  for (var _i = 0, indexInfos_9 = indexInfos; _i < indexInfos_9.length; _i++) {
70781
70874
  var info = indexInfos_9[_i];
70782
- _loop_29(info);
70875
+ _loop_30(info);
70783
70876
  }
70784
70877
  }
70785
70878
  function checkIndexConstraintForIndexSignature(type, checkInfo) {
@@ -70787,7 +70880,7 @@ var ts;
70787
70880
  var indexInfos = getApplicableIndexInfos(type, checkInfo.keyType);
70788
70881
  var interfaceDeclaration = ts.getObjectFlags(type) & 2 ? ts.getDeclarationOfKind(type.symbol, 258) : undefined;
70789
70882
  var localCheckDeclaration = declaration && getParentOfSymbol(getSymbolOfNode(declaration)) === type.symbol ? declaration : undefined;
70790
- var _loop_30 = function (info) {
70883
+ var _loop_31 = function (info) {
70791
70884
  if (info === checkInfo)
70792
70885
  return "continue";
70793
70886
  var localIndexDeclaration = info.declaration && getParentOfSymbol(getSymbolOfNode(info.declaration)) === type.symbol ? info.declaration : undefined;
@@ -70799,7 +70892,7 @@ var ts;
70799
70892
  };
70800
70893
  for (var _i = 0, indexInfos_10 = indexInfos; _i < indexInfos_10.length; _i++) {
70801
70894
  var info = indexInfos_10[_i];
70802
- _loop_30(info);
70895
+ _loop_31(info);
70803
70896
  }
70804
70897
  }
70805
70898
  function checkTypeNameIsReserved(name, message) {
@@ -71094,7 +71187,7 @@ var ts;
71094
71187
  var baseTypes = baseTypeNode && getBaseTypes(type);
71095
71188
  var baseWithThis = (baseTypes === null || baseTypes === void 0 ? void 0 : baseTypes.length) ? getTypeWithThisArgument(ts.first(baseTypes), type.thisType) : undefined;
71096
71189
  var baseStaticType = getBaseConstructorTypeOfClass(type);
71097
- var _loop_31 = function (member) {
71190
+ var _loop_32 = function (member) {
71098
71191
  if (ts.hasAmbientModifier(member)) {
71099
71192
  return "continue";
71100
71193
  }
@@ -71109,7 +71202,7 @@ var ts;
71109
71202
  };
71110
71203
  for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
71111
71204
  var member = _a[_i];
71112
- _loop_31(member);
71205
+ _loop_32(member);
71113
71206
  }
71114
71207
  }
71115
71208
  function checkExistingMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, member, memberIsParameterProperty, reportErrors) {
@@ -71184,7 +71277,7 @@ var ts;
71184
71277
  }
71185
71278
  function issueMemberSpecificError(node, typeWithThis, baseWithThis, broadDiag) {
71186
71279
  var issuedMemberError = false;
71187
- var _loop_32 = function (member) {
71280
+ var _loop_33 = function (member) {
71188
71281
  if (ts.isStatic(member)) {
71189
71282
  return "continue";
71190
71283
  }
@@ -71202,7 +71295,7 @@ var ts;
71202
71295
  };
71203
71296
  for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
71204
71297
  var member = _a[_i];
71205
- _loop_32(member);
71298
+ _loop_33(member);
71206
71299
  }
71207
71300
  if (!issuedMemberError) {
71208
71301
  checkTypeAssignableTo(typeWithThis, baseWithThis, node.name || node, broadDiag);
@@ -71249,7 +71342,7 @@ var ts;
71249
71342
  function checkKindsOfPropertyMemberOverrides(type, baseType) {
71250
71343
  var _a, _b, _c, _d;
71251
71344
  var baseProperties = getPropertiesOfType(baseType);
71252
- var _loop_33 = function (baseProperty) {
71345
+ var _loop_34 = function (baseProperty) {
71253
71346
  var base = getTargetSymbol(baseProperty);
71254
71347
  if (base.flags & 4194304) {
71255
71348
  return "continue";
@@ -71347,7 +71440,7 @@ var ts;
71347
71440
  };
71348
71441
  basePropertyCheck: for (var _i = 0, baseProperties_1 = baseProperties; _i < baseProperties_1.length; _i++) {
71349
71442
  var baseProperty = baseProperties_1[_i];
71350
- var state_10 = _loop_33(baseProperty);
71443
+ var state_10 = _loop_34(baseProperty);
71351
71444
  switch (state_10) {
71352
71445
  case "continue-basePropertyCheck": continue basePropertyCheck;
71353
71446
  }
@@ -91819,7 +91912,6 @@ var ts;
91819
91912
  newBuildInfo.program = buildInfo.program;
91820
91913
  if (newBuildInfo.program && changedDtsText !== undefined && config.options.composite) {
91821
91914
  newBuildInfo.program.outSignature = ts.computeSignature(changedDtsText, createHash, changedDtsData);
91822
- newBuildInfo.program.dtsChangeTime = ts.getCurrentTime(host).getTime();
91823
91915
  }
91824
91916
  var _a = buildInfo.bundle, js = _a.js, dts = _a.dts, sourceFiles = _a.sourceFiles;
91825
91917
  newBuildInfo.bundle.js.sources = js.sources;
@@ -100197,7 +100289,7 @@ var ts;
100197
100289
  state.outSignature = oldState === null || oldState === void 0 ? void 0 : oldState.outSignature;
100198
100290
  }
100199
100291
  state.changedFilesSet = new ts.Set();
100200
- 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;
100201
100293
  var useOldState = ts.BuilderState.canReuseOldState(state.referencedMap, oldState);
100202
100294
  var oldCompilerOptions = useOldState ? oldState.compilerOptions : undefined;
100203
100295
  var canCopySemanticDiagnostics = useOldState && oldState.semanticDiagnosticsPerFile && !!state.semanticDiagnosticsPerFile &&
@@ -100304,7 +100396,7 @@ var ts;
100304
100396
  programEmitComplete: state.programEmitComplete,
100305
100397
  emitSignatures: state.emitSignatures && new ts.Map(state.emitSignatures),
100306
100398
  outSignature: state.outSignature,
100307
- dtsChangeTime: state.dtsChangeTime,
100399
+ latestChangedDtsFile: state.latestChangedDtsFile,
100308
100400
  hasChangedEmitSignature: state.hasChangedEmitSignature,
100309
100401
  changedFilesSet: outFilePath ? new ts.Set(state.changedFilesSet) : undefined,
100310
100402
  };
@@ -100317,7 +100409,7 @@ var ts;
100317
100409
  state.programEmitComplete = savedEmitState.programEmitComplete;
100318
100410
  state.emitSignatures = savedEmitState.emitSignatures;
100319
100411
  state.outSignature = savedEmitState.outSignature;
100320
- state.dtsChangeTime = savedEmitState.dtsChangeTime;
100412
+ state.latestChangedDtsFile = savedEmitState.latestChangedDtsFile;
100321
100413
  state.hasChangedEmitSignature = savedEmitState.hasChangedEmitSignature;
100322
100414
  if (savedEmitState.changedFilesSet)
100323
100415
  state.changedFilesSet = savedEmitState.changedFilesSet;
@@ -100547,13 +100639,13 @@ var ts;
100547
100639
  return !!ts.outFile(info.options || {});
100548
100640
  }
100549
100641
  ts.isProgramBundleEmitBuildInfo = isProgramBundleEmitBuildInfo;
100550
- function getProgramBuildInfo(state, getCanonicalFileName, host) {
100642
+ function getProgramBuildInfo(state, getCanonicalFileName) {
100551
100643
  var outFilePath = ts.outFile(state.compilerOptions);
100552
100644
  if (outFilePath && !state.compilerOptions.composite)
100553
100645
  return;
100554
100646
  var currentDirectory = ts.Debug.checkDefined(state.program).getCurrentDirectory();
100555
100647
  var buildInfoDirectory = ts.getDirectoryPath(ts.getNormalizedAbsolutePath(ts.getTsBuildInfoEmitOutputFilePath(state.compilerOptions), currentDirectory));
100556
- state.dtsChangeTime = state.hasChangedEmitSignature ? ts.getCurrentTime(host).getTime() : state.dtsChangeTime;
100648
+ var latestChangedDtsFile = state.latestChangedDtsFile ? relativeToBuildInfoEnsuringAbsolutePath(state.latestChangedDtsFile) : undefined;
100557
100649
  if (outFilePath) {
100558
100650
  var fileNames_1 = [];
100559
100651
  var fileInfos_1 = [];
@@ -100569,7 +100661,7 @@ var ts;
100569
100661
  fileInfos: fileInfos_1,
100570
100662
  options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions, "affectsBundleEmitBuildInfo"),
100571
100663
  outSignature: state.outSignature,
100572
- dtsChangeTime: state.dtsChangeTime,
100664
+ latestChangedDtsFile: latestChangedDtsFile,
100573
100665
  };
100574
100666
  return result_15;
100575
100667
  }
@@ -100664,7 +100756,7 @@ var ts;
100664
100756
  affectedFilesPendingEmit: affectedFilesPendingEmit,
100665
100757
  changeFileSet: changeFileSet,
100666
100758
  emitSignatures: emitSignatures,
100667
- dtsChangeTime: state.dtsChangeTime,
100759
+ latestChangedDtsFile: latestChangedDtsFile,
100668
100760
  };
100669
100761
  return result;
100670
100762
  function relativeToBuildInfoEnsuringAbsolutePath(path) {
@@ -100822,7 +100914,7 @@ var ts;
100822
100914
  var getCanonicalFileName = ts.createGetCanonicalFileName(host.useCaseSensitiveFileNames());
100823
100915
  var computeHash = ts.maybeBind(host, host.createHash);
100824
100916
  var state = createBuilderProgramState(newProgram, getCanonicalFileName, oldState, host.disableUseFileVersionAsSignature);
100825
- newProgram.getProgramBuildInfo = function () { return getProgramBuildInfo(state, getCanonicalFileName, host); };
100917
+ newProgram.getProgramBuildInfo = function () { return getProgramBuildInfo(state, getCanonicalFileName); };
100826
100918
  newProgram = undefined;
100827
100919
  oldProgram = undefined;
100828
100920
  oldState = undefined;
@@ -100831,6 +100923,7 @@ var ts;
100831
100923
  builderProgram.getState = getState;
100832
100924
  builderProgram.saveEmitState = function () { return backupBuilderProgramEmitState(state); };
100833
100925
  builderProgram.restoreEmitState = function (saved) { return restoreBuilderProgramEmitState(state, saved); };
100926
+ builderProgram.hasChangedEmitSignature = function () { return !!state.hasChangedEmitSignature; };
100834
100927
  builderProgram.getAllDependencies = function (sourceFile) { return ts.BuilderState.getAllDependencies(state, ts.Debug.checkDefined(state.program), sourceFile); };
100835
100928
  builderProgram.getSemanticDiagnostics = getSemanticDiagnostics;
100836
100929
  builderProgram.emit = emit;
@@ -100919,18 +101012,20 @@ var ts;
100919
101012
  var filePath = sourceFiles[0].resolvedPath;
100920
101013
  var oldSignature = (_f = state.emitSignatures) === null || _f === void 0 ? void 0 : _f.get(filePath);
100921
101014
  emitSignature !== null && emitSignature !== void 0 ? emitSignature : (emitSignature = computeSignature(text, computeHash, data));
100922
- if (emitSignature !== oldSignature) {
100923
- ((_g = state.emitSignatures) !== null && _g !== void 0 ? _g : (state.emitSignatures = new ts.Map())).set(filePath, emitSignature);
100924
- state.hasChangedEmitSignature = true;
100925
- }
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;
100926
101020
  }
100927
101021
  }
100928
101022
  else if (state.compilerOptions.composite) {
100929
101023
  var newSignature = computeSignature(text, computeHash, data);
100930
- if (newSignature !== state.outSignature) {
100931
- state.outSignature = newSignature;
100932
- state.hasChangedEmitSignature = true;
100933
- }
101024
+ if (newSignature === state.outSignature)
101025
+ return;
101026
+ state.outSignature = newSignature;
101027
+ state.hasChangedEmitSignature = true;
101028
+ state.latestChangedDtsFile = fileName;
100934
101029
  }
100935
101030
  }
100936
101031
  if (writeFile)
@@ -101051,11 +101146,12 @@ var ts;
101051
101146
  var state;
101052
101147
  var filePaths;
101053
101148
  var filePathsSetList;
101149
+ var latestChangedDtsFile = program.latestChangedDtsFile ? toAbsolutePath(program.latestChangedDtsFile) : undefined;
101054
101150
  if (isProgramBundleEmitBuildInfo(program)) {
101055
101151
  state = {
101056
101152
  fileInfos: new ts.Map(),
101057
101153
  compilerOptions: program.options ? ts.convertToOptionsWithAbsolutePaths(program.options, toAbsolutePath) : {},
101058
- dtsChangeTime: program.dtsChangeTime,
101154
+ latestChangedDtsFile: latestChangedDtsFile,
101059
101155
  outSignature: program.outSignature,
101060
101156
  };
101061
101157
  }
@@ -101088,7 +101184,7 @@ var ts;
101088
101184
  affectedFilesPendingEmitKind: program.affectedFilesPendingEmit && ts.arrayToMap(program.affectedFilesPendingEmit, function (value) { return toFilePath(value[0]); }, function (value) { return value[1]; }),
101089
101185
  affectedFilesPendingEmitIndex: program.affectedFilesPendingEmit && 0,
101090
101186
  changedFilesSet: new ts.Set(ts.map(program.changeFileSet, toFilePath)),
101091
- dtsChangeTime: program.dtsChangeTime,
101187
+ latestChangedDtsFile: latestChangedDtsFile,
101092
101188
  emitSignatures: (emitSignatures_1 === null || emitSignatures_1 === void 0 ? void 0 : emitSignatures_1.size) ? emitSignatures_1 : undefined,
101093
101189
  };
101094
101190
  }
@@ -101115,6 +101211,7 @@ var ts;
101115
101211
  getSemanticDiagnosticsOfNextAffectedFile: ts.notImplemented,
101116
101212
  emitBuildInfo: ts.notImplemented,
101117
101213
  close: ts.noop,
101214
+ hasChangedEmitSignature: ts.returnFalse,
101118
101215
  };
101119
101216
  function toPath(path) {
101120
101217
  return ts.toPath(path, buildInfoDirectory, getCanonicalFileName);
@@ -102255,7 +102352,7 @@ var ts;
102255
102352
  importedFileFromNodeModules = importedFileFromNodeModules || isInNodeModules;
102256
102353
  });
102257
102354
  var sortedPaths = [];
102258
- var _loop_34 = function (directory) {
102355
+ var _loop_35 = function (directory) {
102259
102356
  var directoryStart = ts.ensureTrailingDirectorySeparator(directory);
102260
102357
  var pathsInDirectory;
102261
102358
  allFileNames.forEach(function (_a, fileName) {
@@ -102279,7 +102376,7 @@ var ts;
102279
102376
  };
102280
102377
  var out_directory_1;
102281
102378
  for (var directory = ts.getDirectoryPath(importingFileName); allFileNames.size !== 0;) {
102282
- var state_11 = _loop_34(directory);
102379
+ var state_11 = _loop_35(directory);
102283
102380
  directory = out_directory_1;
102284
102381
  if (state_11 === "break")
102285
102382
  break;
@@ -103052,7 +103149,6 @@ var ts;
103052
103149
  readDirectory: ts.maybeBind(host, host.readDirectory),
103053
103150
  disableUseFileVersionAsSignature: host.disableUseFileVersionAsSignature,
103054
103151
  storeFilesChangingSignatureDuringEmit: host.storeFilesChangingSignatureDuringEmit,
103055
- now: ts.maybeBind(host, host.now),
103056
103152
  };
103057
103153
  function writeFile(fileName, text, writeByteOrderMark, onError) {
103058
103154
  try {
@@ -103191,7 +103287,6 @@ var ts;
103191
103287
  host.createHash = ts.maybeBind(system, system.createHash);
103192
103288
  host.disableUseFileVersionAsSignature = system.disableUseFileVersionAsSignature;
103193
103289
  host.storeFilesChangingSignatureDuringEmit = system.storeFilesChangingSignatureDuringEmit;
103194
- host.now = ts.maybeBind(system, system.now);
103195
103290
  ts.setGetSourceFileAsHashVersioned(host, system);
103196
103291
  ts.changeCompilerHostLikeToUseCache(host, function (fileName) { return ts.toPath(fileName, host.getCurrentDirectory(), host.getCanonicalFileName); });
103197
103292
  return host;
@@ -104415,8 +104510,7 @@ var ts;
104415
104510
  };
104416
104511
  }
104417
104512
  var host = state.host, compilerHost = state.compilerHost;
104418
- var resultFlags = BuildResultFlags.DeclarationOutputUnchanged;
104419
- 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;
104420
104514
  var emitterDiagnostics = ts.createDiagnosticCollection();
104421
104515
  var emittedOutputs = new ts.Map();
104422
104516
  var options = program.getCompilerOptions();
@@ -104424,16 +104518,11 @@ var ts;
104424
104518
  var outputTimeStampMap;
104425
104519
  var now;
104426
104520
  outputFiles.forEach(function (_a) {
104427
- var _b, _c;
104428
104521
  var name = _a.name, text = _a.text, writeByteOrderMark = _a.writeByteOrderMark, buildInfo = _a.buildInfo;
104429
104522
  var path = toPath(state, name);
104430
104523
  emittedOutputs.set(toPath(state, name), name);
104431
- if (buildInfo) {
104432
- setBuildInfo(state, buildInfo, projectPath, options);
104433
- 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)) {
104434
- resultFlags &= ~BuildResultFlags.DeclarationOutputUnchanged;
104435
- }
104436
- }
104524
+ if (buildInfo)
104525
+ setBuildInfo(state, buildInfo, projectPath, options, resultFlags);
104437
104526
  ts.writeFile(writeFileCallback ? { writeFile: writeFileCallback } : compilerHost, emitterDiagnostics, name, text, writeByteOrderMark);
104438
104527
  if (!isIncremental && state.watch) {
104439
104528
  (outputTimeStampMap || (outputTimeStampMap = getOutputTimeStampMap(state, projectPath))).set(path, now || (now = getCurrentTime(state.host)));
@@ -104447,7 +104536,7 @@ var ts;
104447
104536
  ts.Debug.assert(step === BuildStep.EmitBuildInfo);
104448
104537
  var emitResult = program.emitBuildInfo(function (name, text, writeByteOrderMark, onError, sourceFiles, data) {
104449
104538
  if (data === null || data === void 0 ? void 0 : data.buildInfo)
104450
- setBuildInfo(state, data.buildInfo, projectPath, program.getCompilerOptions());
104539
+ setBuildInfo(state, data.buildInfo, projectPath, program.getCompilerOptions(), BuildResultFlags.DeclarationOutputUnchanged);
104451
104540
  if (writeFileCallback)
104452
104541
  writeFileCallback(name, text, writeByteOrderMark, onError, sourceFiles, data);
104453
104542
  else
@@ -104479,7 +104568,6 @@ var ts;
104479
104568
  state.diagnostics.delete(projectPath);
104480
104569
  state.projectStatus.set(projectPath, {
104481
104570
  type: ts.UpToDateStatusType.UpToDate,
104482
- newestDeclarationFileContentChangedTime: getDtsChangeTime(state, config.options, projectPath),
104483
104571
  oldestOutputFileName: oldestOutputFileName
104484
104572
  });
104485
104573
  afterProgramDone(state, program, config);
@@ -104519,10 +104607,10 @@ var ts;
104519
104607
  var name = _a.name, text = _a.text, writeByteOrderMark = _a.writeByteOrderMark, buildInfo = _a.buildInfo;
104520
104608
  emittedOutputs.set(toPath(state, name), name);
104521
104609
  if (buildInfo) {
104522
- setBuildInfo(state, buildInfo, projectPath, config.options);
104523
- 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)) {
104524
104611
  resultFlags &= ~BuildResultFlags.DeclarationOutputUnchanged;
104525
104612
  }
104613
+ setBuildInfo(state, buildInfo, projectPath, config.options, resultFlags);
104526
104614
  }
104527
104615
  ts.writeFile(writeFileCallback ? { writeFile: writeFileCallback } : compilerHost, emitterDiagnostics, name, text, writeByteOrderMark);
104528
104616
  });
@@ -104771,15 +104859,23 @@ var ts;
104771
104859
  state.outputTimeStamps.set(resolvedConfigFilePath, result = new ts.Map());
104772
104860
  return result;
104773
104861
  }
104774
- function setBuildInfo(state, buildInfo, resolvedConfigPath, options) {
104862
+ function setBuildInfo(state, buildInfo, resolvedConfigPath, options, resultFlags) {
104775
104863
  var buildInfoPath = ts.getTsBuildInfoEmitOutputFilePath(options);
104776
104864
  var existing = getBuildInfoCacheEntry(state, buildInfoPath, resolvedConfigPath);
104865
+ var modifiedTime = getCurrentTime(state.host);
104777
104866
  if (existing) {
104778
104867
  existing.buildInfo = buildInfo;
104779
- existing.modifiedTime = getCurrentTime(state.host);
104868
+ existing.modifiedTime = modifiedTime;
104869
+ if (!(resultFlags & BuildResultFlags.DeclarationOutputUnchanged))
104870
+ existing.latestChangedDtsTime = modifiedTime;
104780
104871
  }
104781
104872
  else {
104782
- 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
+ });
104783
104879
  }
104784
104880
  }
104785
104881
  function getBuildInfoCacheEntry(state, buildInfoPath, resolvedConfigPath) {
@@ -104810,7 +104906,7 @@ var ts;
104810
104906
  }
104811
104907
  }
104812
104908
  function getUpToDateStatusWorker(state, project, resolvedPath) {
104813
- var _a, _b, _c;
104909
+ var _a, _b;
104814
104910
  if (!project.fileNames.length && !ts.canJsonReportNoInputFiles(project.raw)) {
104815
104911
  return {
104816
104912
  type: ts.UpToDateStatusType.ContainerOnly
@@ -104820,8 +104916,8 @@ var ts;
104820
104916
  var force = !!state.options.force;
104821
104917
  if (project.projectReferences) {
104822
104918
  state.projectStatus.set(resolvedPath, { type: ts.UpToDateStatusType.ComputingUpstream });
104823
- for (var _i = 0, _d = project.projectReferences; _i < _d.length; _i++) {
104824
- var ref = _d[_i];
104919
+ for (var _i = 0, _c = project.projectReferences; _i < _c.length; _i++) {
104920
+ var ref = _c[_i];
104825
104921
  var resolvedRef = ts.resolveProjectReferencePath(ref);
104826
104922
  var resolvedRefPath = toResolvedConfigFilePath(state, resolvedRef);
104827
104923
  var resolvedConfig = parseConfigFile(state, resolvedRef, resolvedRefPath);
@@ -104857,7 +104953,6 @@ var ts;
104857
104953
  var buildInfoTime;
104858
104954
  var buildInfoProgram;
104859
104955
  var buildInfoVersionMap;
104860
- var newestDeclarationFileContentChangedTime;
104861
104956
  if (buildInfoPath) {
104862
104957
  var buildInfoCacheEntry_1 = getBuildInfoCacheEntry(state, buildInfoPath, resolvedPath);
104863
104958
  buildInfoTime = (buildInfoCacheEntry_1 === null || buildInfoCacheEntry_1 === void 0 ? void 0 : buildInfoCacheEntry_1.modifiedTime) || ts.getModifiedTime(host, buildInfoPath);
@@ -104893,13 +104988,12 @@ var ts;
104893
104988
  }
104894
104989
  oldestOutputFileTime = buildInfoTime;
104895
104990
  oldestOutputFileName = buildInfoPath;
104896
- newestDeclarationFileContentChangedTime = ((_c = buildInfo.program) === null || _c === void 0 ? void 0 : _c.dtsChangeTime) ? new Date(buildInfo.program.dtsChangeTime) : undefined;
104897
104991
  }
104898
104992
  var newestInputFileName = undefined;
104899
104993
  var newestInputFileTime = minimumDate;
104900
104994
  var pseudoInputUpToDate = false;
104901
- for (var _e = 0, _f = project.fileNames; _e < _f.length; _e++) {
104902
- var inputFile = _f[_e];
104995
+ for (var _d = 0, _e = project.fileNames; _d < _e.length; _d++) {
104996
+ var inputFile = _e[_d];
104903
104997
  var inputTime = getModifiedTime(state, inputFile);
104904
104998
  if (inputTime === ts.missingFileModifiedTime) {
104905
104999
  return {
@@ -104935,8 +105029,8 @@ var ts;
104935
105029
  if (!buildInfoPath) {
104936
105030
  var outputs = ts.getAllProjectOutputs(project, !host.useCaseSensitiveFileNames());
104937
105031
  var outputTimeStampMap = getOutputTimeStampMap(state, resolvedPath);
104938
- for (var _g = 0, outputs_1 = outputs; _g < outputs_1.length; _g++) {
104939
- var output = outputs_1[_g];
105032
+ for (var _f = 0, outputs_1 = outputs; _f < outputs_1.length; _f++) {
105033
+ var output = outputs_1[_f];
104940
105034
  var path = toPath(state, output);
104941
105035
  var outputTime = outputTimeStampMap === null || outputTimeStampMap === void 0 ? void 0 : outputTimeStampMap.get(path);
104942
105036
  if (!outputTime) {
@@ -104969,8 +105063,8 @@ var ts;
104969
105063
  var usesPrepend = false;
104970
105064
  var upstreamChangedProject;
104971
105065
  if (referenceStatuses) {
104972
- for (var _h = 0, referenceStatuses_1 = referenceStatuses; _h < referenceStatuses_1.length; _h++) {
104973
- 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;
104974
105068
  usesPrepend = usesPrepend || !!(ref.prepend);
104975
105069
  if (refStatus.newestInputFileTime && refStatus.newestInputFileTime <= oldestOutputFileTime) {
104976
105070
  continue;
@@ -104982,7 +105076,8 @@ var ts;
104982
105076
  newerProjectName: ref.path
104983
105077
  };
104984
105078
  }
104985
- if (refStatus.newestDeclarationFileContentChangedTime && refStatus.newestDeclarationFileContentChangedTime <= oldestOutputFileTime) {
105079
+ var newestDeclarationFileContentChangedTime = getLatestChangedDtsTime(state, resolvedConfig.options, resolvedRefPath);
105080
+ if (newestDeclarationFileContentChangedTime && newestDeclarationFileContentChangedTime <= oldestOutputFileTime) {
104986
105081
  pseudoUpToDate = true;
104987
105082
  upstreamChangedProject = ref.path;
104988
105083
  continue;
@@ -105020,7 +105115,6 @@ var ts;
105020
105115
  pseudoInputUpToDate ?
105021
105116
  ts.UpToDateStatusType.UpToDateWithInputFileText :
105022
105117
  ts.UpToDateStatusType.UpToDate,
105023
- newestDeclarationFileContentChangedTime: newestDeclarationFileContentChangedTime,
105024
105118
  newestInputFileTime: newestInputFileTime,
105025
105119
  newestInputFileName: newestInputFileName,
105026
105120
  oldestOutputFileName: oldestOutputFileName
@@ -105099,13 +105193,17 @@ var ts;
105099
105193
  outputTimeStampMap.delete(key);
105100
105194
  });
105101
105195
  }
105102
- function getDtsChangeTime(state, options, resolvedConfigPath) {
105103
- var _a;
105196
+ function getLatestChangedDtsTime(state, options, resolvedConfigPath) {
105104
105197
  if (!options.composite)
105105
105198
  return undefined;
105106
- var buildInfoPath = ts.getTsBuildInfoEmitOutputFilePath(options);
105107
- var buildInfo = getBuildInfo(state, buildInfoPath, resolvedConfigPath, undefined);
105108
- 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;
105109
105207
  }
105110
105208
  function updateOutputTimestamps(state, proj, resolvedPath) {
105111
105209
  if (state.options.dry) {
@@ -105114,7 +105212,6 @@ var ts;
105114
105212
  updateOutputTimestampsWorker(state, proj, resolvedPath, ts.Diagnostics.Updating_output_timestamps_of_project_0);
105115
105213
  state.projectStatus.set(resolvedPath, {
105116
105214
  type: ts.UpToDateStatusType.UpToDate,
105117
- newestDeclarationFileContentChangedTime: getDtsChangeTime(state, proj.options, resolvedPath),
105118
105215
  oldestOutputFileName: ts.getFirstProjectOutput(proj, !state.host.useCaseSensitiveFileNames())
105119
105216
  });
105120
105217
  }