@@ -67,7 +67,7 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
67
67
var ts;
68
68
(function (ts) {
69
69
ts.versionMajorMinor = "3.9";
70
- ts.version = "3.9.5 ";
70
+ ts.version = "3.9.6 ";
71
71
function tryGetNativeMap() {
72
72
return typeof Map !== "undefined" && "entries" in Map.prototype ? Map : undefined;
73
73
}
@@ -5022,6 +5022,7 @@ var ts;
5022
5022
Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0: diag(5081, ts.DiagnosticCategory.Error, "Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081", "Cannot find a tsconfig.json file at the current directory: {0}."),
5023
5023
_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1: diag(5082, ts.DiagnosticCategory.Error, "_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082", "'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'."),
5024
5024
Cannot_read_file_0: diag(5083, ts.DiagnosticCategory.Error, "Cannot_read_file_0_5083", "Cannot read file '{0}'."),
5025
+ The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary: diag(5088, ts.DiagnosticCategory.Error, "The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088", "The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary."),
5025
5026
Generates_a_sourcemap_for_each_corresponding_d_ts_file: diag(6000, ts.DiagnosticCategory.Message, "Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000", "Generates a sourcemap for each corresponding '.d.ts' file."),
5026
5027
Concatenate_and_emit_output_to_single_file: diag(6001, ts.DiagnosticCategory.Message, "Concatenate_and_emit_output_to_single_file_6001", "Concatenate and emit output to single file."),
5027
5028
Generates_corresponding_d_ts_file: diag(6002, ts.DiagnosticCategory.Message, "Generates_corresponding_d_ts_file_6002", "Generates corresponding '.d.ts' file."),
@@ -12287,7 +12288,7 @@ var ts;
12287
12288
if (!(name.kind === 154 || name.kind === 195)) {
12288
12289
return false;
12289
12290
}
12290
- var expr = ts.isElementAccessExpression(name) ? name.argumentExpression : name.expression;
12291
+ var expr = ts.isElementAccessExpression(name) ? skipParentheses( name.argumentExpression) : name.expression;
12291
12292
return !isStringOrNumericLiteralLike(expr) &&
12292
12293
!isSignedNumericLiteral(expr) &&
12293
12294
!isWellKnownSymbolSyntactically(expr);
@@ -31818,15 +31819,29 @@ var ts;
31818
31819
context.inferTypeParameters = type.root.inferTypeParameters;
31819
31820
var extendsTypeNode = typeToTypeNodeHelper(type.extendsType, context);
31820
31821
context.inferTypeParameters = saveInferTypeParameters;
31821
- var trueTypeNode = typeToTypeNodeHelper (getTrueTypeFromConditionalType(type), context );
31822
- var falseTypeNode = typeToTypeNodeHelper (getFalseTypeFromConditionalType(type), context );
31822
+ var trueTypeNode = typeToTypeNodeOrCircularityElision (getTrueTypeFromConditionalType(type));
31823
+ var falseTypeNode = typeToTypeNodeOrCircularityElision (getFalseTypeFromConditionalType(type));
31823
31824
context.approximateLength += 15;
31824
31825
return ts.createConditionalTypeNode(checkTypeNode, extendsTypeNode, trueTypeNode, falseTypeNode);
31825
31826
}
31826
31827
if (type.flags & 33554432) {
31827
31828
return typeToTypeNodeHelper(type.baseType, context);
31828
31829
}
31829
31830
return ts.Debug.fail("Should be unreachable.");
31831
+ function typeToTypeNodeOrCircularityElision(type) {
31832
+ var _a, _b;
31833
+ if (type.flags & 1048576) {
31834
+ if (context.visitedTypes && context.visitedTypes.has("" + getTypeId(type))) {
31835
+ if (!(context.flags & 131072)) {
31836
+ context.encounteredError = true;
31837
+ (_b = (_a = context.tracker) === null || _a === void 0 ? void 0 : _a.reportCyclicStructureError) === null || _b === void 0 ? void 0 : _b.call(_a);
31838
+ }
31839
+ return createElidedInformationPlaceholder(context);
31840
+ }
31841
+ return visitAndTransformType(type, function (type) { return typeToTypeNodeHelper(type, context); });
31842
+ }
31843
+ return typeToTypeNodeHelper(type, context);
31844
+ }
31830
31845
function createMappedTypeNodeFromType(type) {
31831
31846
ts.Debug.assert(!!(type.flags & 524288));
31832
31847
var readonlyToken = type.declaration.readonlyToken ? ts.createToken(type.declaration.readonlyToken.kind) : undefined;
@@ -38485,10 +38500,12 @@ var ts;
38485
38500
}
38486
38501
return links.resolvedType;
38487
38502
}
38488
- function createIndexedAccessType(objectType, indexType) {
38503
+ function createIndexedAccessType(objectType, indexType, aliasSymbol, aliasTypeArguments ) {
38489
38504
var type = createType(8388608);
38490
38505
type.objectType = objectType;
38491
38506
type.indexType = indexType;
38507
+ type.aliasSymbol = aliasSymbol;
38508
+ type.aliasTypeArguments = aliasTypeArguments;
38492
38509
return type;
38493
38510
}
38494
38511
function isJSLiteralType(type) {
@@ -38762,10 +38779,10 @@ var ts;
38762
38779
var templateMapper = combineTypeMappers(objectType.mapper, mapper);
38763
38780
return instantiateType(getTemplateTypeFromMappedType(objectType), templateMapper);
38764
38781
}
38765
- function getIndexedAccessType(objectType, indexType, accessNode) {
38766
- return getIndexedAccessTypeOrUndefined(objectType, indexType, accessNode, 0) || (accessNode ? errorType : unknownType);
38782
+ function getIndexedAccessType(objectType, indexType, accessNode, aliasSymbol, aliasTypeArguments ) {
38783
+ return getIndexedAccessTypeOrUndefined(objectType, indexType, accessNode, 0, aliasSymbol, aliasTypeArguments ) || (accessNode ? errorType : unknownType);
38767
38784
}
38768
- function getIndexedAccessTypeOrUndefined(objectType, indexType, accessNode, accessFlags) {
38785
+ function getIndexedAccessTypeOrUndefined(objectType, indexType, accessNode, accessFlags, aliasSymbol, aliasTypeArguments ) {
38769
38786
if (accessFlags === void 0) { accessFlags = 0; }
38770
38787
if (objectType === wildcardType || indexType === wildcardType) {
38771
38788
return wildcardType;
@@ -38780,7 +38797,7 @@ var ts;
38780
38797
var id = objectType.id + "," + indexType.id;
38781
38798
var type = indexedAccessTypes.get(id);
38782
38799
if (!type) {
38783
- indexedAccessTypes.set(id, type = createIndexedAccessType(objectType, indexType));
38800
+ indexedAccessTypes.set(id, type = createIndexedAccessType(objectType, indexType, aliasSymbol, aliasTypeArguments ));
38784
38801
}
38785
38802
return type;
38786
38803
}
@@ -38804,7 +38821,7 @@ var ts;
38804
38821
if (wasMissingProp) {
38805
38822
return undefined;
38806
38823
}
38807
- return accessFlags & 2 ? getIntersectionType(propTypes) : getUnionType(propTypes);
38824
+ return accessFlags & 2 ? getIntersectionType(propTypes, aliasSymbol, aliasTypeArguments ) : getUnionType(propTypes, 1, aliasSymbol, aliasTypeArguments );
38808
38825
}
38809
38826
return getPropertyTypeForIndexType(objectType, apparentObjectType, indexType, indexType, false, accessNode, accessFlags | 4);
38810
38827
}
@@ -38813,7 +38830,8 @@ var ts;
38813
38830
if (!links.resolvedType) {
38814
38831
var objectType = getTypeFromTypeNode(node.objectType);
38815
38832
var indexType = getTypeFromTypeNode(node.indexType);
38816
- var resolved = getIndexedAccessType(objectType, indexType, node);
38833
+ var potentialAlias = getAliasSymbolForTypeNode(node);
38834
+ var resolved = getIndexedAccessType(objectType, indexType, node, potentialAlias, getTypeArgumentsForAliasSymbol(potentialAlias));
38817
38835
links.resolvedType = resolved.flags & 8388608 &&
38818
38836
resolved.objectType === objectType &&
38819
38837
resolved.indexType === indexType ?
@@ -39762,7 +39780,7 @@ var ts;
39762
39780
return getIndexType(instantiateType(type.type, mapper));
39763
39781
}
39764
39782
if (flags & 8388608) {
39765
- return getIndexedAccessType(instantiateType(type.objectType, mapper), instantiateType(type.indexType, mapper));
39783
+ return getIndexedAccessType(instantiateType(type.objectType, mapper), instantiateType(type.indexType, mapper), undefined, type.aliasSymbol, instantiateTypes(type.aliasTypeArguments, mapper) );
39766
39784
}
39767
39785
if (flags & 16777216) {
39768
39786
return getConditionalTypeInstantiation(type, combineTypeMappers(type.mapper, mapper));
@@ -46242,6 +46260,9 @@ var ts;
46242
46260
return ts.Debug.assertNever(kind);
46243
46261
}
46244
46262
}
46263
+ function isCircularMappedProperty(symbol) {
46264
+ return !!(ts.getCheckFlags(symbol) & 262144 && !symbol.type && findResolutionCycleStartIndex(symbol, 0) >= 0);
46265
+ }
46245
46266
function getTypeOfPropertyOfContextualType(type, name) {
46246
46267
return mapType(type, function (t) {
46247
46268
if (isGenericMappedType(t)) {
@@ -46255,7 +46276,7 @@ var ts;
46255
46276
else if (t.flags & 3670016) {
46256
46277
var prop = getPropertyOfType(t, name);
46257
46278
if (prop) {
46258
- return getTypeOfSymbol(prop);
46279
+ return isCircularMappedProperty(prop) ? undefined : getTypeOfSymbol(prop);
46259
46280
}
46260
46281
if (isTupleType(t)) {
46261
46282
var restType = getRestTypeOfTupleType(t);
@@ -75534,6 +75555,7 @@ var ts;
75534
75555
trackSymbol: trackSymbol,
75535
75556
reportInaccessibleThisError: reportInaccessibleThisError,
75536
75557
reportInaccessibleUniqueSymbolError: reportInaccessibleUniqueSymbolError,
75558
+ reportCyclicStructureError: reportCyclicStructureError,
75537
75559
reportPrivateInBaseOfClassExpression: reportPrivateInBaseOfClassExpression,
75538
75560
reportLikelyUnsafeImportRequiredError: reportLikelyUnsafeImportRequiredError,
75539
75561
moduleResolverHost: host,
@@ -75615,6 +75637,11 @@ var ts;
75615
75637
context.addDiagnostic(ts.createDiagnosticForNode(errorNameNode, ts.Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, ts.declarationNameToString(errorNameNode), "unique symbol"));
75616
75638
}
75617
75639
}
75640
+ function reportCyclicStructureError() {
75641
+ if (errorNameNode) {
75642
+ context.addDiagnostic(ts.createDiagnosticForNode(errorNameNode, ts.Diagnostics.The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary, ts.declarationNameToString(errorNameNode)));
75643
+ }
75644
+ }
75618
75645
function reportInaccessibleThisError() {
75619
75646
if (errorNameNode) {
75620
75647
context.addDiagnostic(ts.createDiagnosticForNode(errorNameNode, ts.Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, ts.declarationNameToString(errorNameNode), "this"));
0 commit comments