@@ -67,7 +67,7 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
6767var ts;
6868(function (ts) {
6969 ts.versionMajorMinor = "3.9";
70- ts.version = "3.9.5 ";
70+ ts.version = "3.9.6 ";
7171 function tryGetNativeMap() {
7272 return typeof Map !== "undefined" && "entries" in Map.prototype ? Map : undefined;
7373 }
@@ -5022,6 +5022,7 @@ var ts;
50225022 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}."),
50235023 _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}'."),
50245024 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."),
50255026 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."),
50265027 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."),
50275028 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;
1228712288 if (!(name.kind === 154 || name.kind === 195)) {
1228812289 return false;
1228912290 }
12290- var expr = ts.isElementAccessExpression(name) ? name.argumentExpression : name.expression;
12291+ var expr = ts.isElementAccessExpression(name) ? skipParentheses( name.argumentExpression) : name.expression;
1229112292 return !isStringOrNumericLiteralLike(expr) &&
1229212293 !isSignedNumericLiteral(expr) &&
1229312294 !isWellKnownSymbolSyntactically(expr);
@@ -31818,15 +31819,29 @@ var ts;
3181831819 context.inferTypeParameters = type.root.inferTypeParameters;
3181931820 var extendsTypeNode = typeToTypeNodeHelper(type.extendsType, context);
3182031821 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));
3182331824 context.approximateLength += 15;
3182431825 return ts.createConditionalTypeNode(checkTypeNode, extendsTypeNode, trueTypeNode, falseTypeNode);
3182531826 }
3182631827 if (type.flags & 33554432) {
3182731828 return typeToTypeNodeHelper(type.baseType, context);
3182831829 }
3182931830 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+ }
3183031845 function createMappedTypeNodeFromType(type) {
3183131846 ts.Debug.assert(!!(type.flags & 524288));
3183231847 var readonlyToken = type.declaration.readonlyToken ? ts.createToken(type.declaration.readonlyToken.kind) : undefined;
@@ -38485,10 +38500,12 @@ var ts;
3848538500 }
3848638501 return links.resolvedType;
3848738502 }
38488- function createIndexedAccessType(objectType, indexType) {
38503+ function createIndexedAccessType(objectType, indexType, aliasSymbol, aliasTypeArguments ) {
3848938504 var type = createType(8388608);
3849038505 type.objectType = objectType;
3849138506 type.indexType = indexType;
38507+ type.aliasSymbol = aliasSymbol;
38508+ type.aliasTypeArguments = aliasTypeArguments;
3849238509 return type;
3849338510 }
3849438511 function isJSLiteralType(type) {
@@ -38762,10 +38779,10 @@ var ts;
3876238779 var templateMapper = combineTypeMappers(objectType.mapper, mapper);
3876338780 return instantiateType(getTemplateTypeFromMappedType(objectType), templateMapper);
3876438781 }
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);
3876738784 }
38768- function getIndexedAccessTypeOrUndefined(objectType, indexType, accessNode, accessFlags) {
38785+ function getIndexedAccessTypeOrUndefined(objectType, indexType, accessNode, accessFlags, aliasSymbol, aliasTypeArguments ) {
3876938786 if (accessFlags === void 0) { accessFlags = 0; }
3877038787 if (objectType === wildcardType || indexType === wildcardType) {
3877138788 return wildcardType;
@@ -38780,7 +38797,7 @@ var ts;
3878038797 var id = objectType.id + "," + indexType.id;
3878138798 var type = indexedAccessTypes.get(id);
3878238799 if (!type) {
38783- indexedAccessTypes.set(id, type = createIndexedAccessType(objectType, indexType));
38800+ indexedAccessTypes.set(id, type = createIndexedAccessType(objectType, indexType, aliasSymbol, aliasTypeArguments ));
3878438801 }
3878538802 return type;
3878638803 }
@@ -38804,7 +38821,7 @@ var ts;
3880438821 if (wasMissingProp) {
3880538822 return undefined;
3880638823 }
38807- return accessFlags & 2 ? getIntersectionType(propTypes) : getUnionType(propTypes);
38824+ return accessFlags & 2 ? getIntersectionType(propTypes, aliasSymbol, aliasTypeArguments ) : getUnionType(propTypes, 1, aliasSymbol, aliasTypeArguments );
3880838825 }
3880938826 return getPropertyTypeForIndexType(objectType, apparentObjectType, indexType, indexType, false, accessNode, accessFlags | 4);
3881038827 }
@@ -38813,7 +38830,8 @@ var ts;
3881338830 if (!links.resolvedType) {
3881438831 var objectType = getTypeFromTypeNode(node.objectType);
3881538832 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));
3881738835 links.resolvedType = resolved.flags & 8388608 &&
3881838836 resolved.objectType === objectType &&
3881938837 resolved.indexType === indexType ?
@@ -39762,7 +39780,7 @@ var ts;
3976239780 return getIndexType(instantiateType(type.type, mapper));
3976339781 }
3976439782 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) );
3976639784 }
3976739785 if (flags & 16777216) {
3976839786 return getConditionalTypeInstantiation(type, combineTypeMappers(type.mapper, mapper));
@@ -46242,6 +46260,9 @@ var ts;
4624246260 return ts.Debug.assertNever(kind);
4624346261 }
4624446262 }
46263+ function isCircularMappedProperty(symbol) {
46264+ return !!(ts.getCheckFlags(symbol) & 262144 && !symbol.type && findResolutionCycleStartIndex(symbol, 0) >= 0);
46265+ }
4624546266 function getTypeOfPropertyOfContextualType(type, name) {
4624646267 return mapType(type, function (t) {
4624746268 if (isGenericMappedType(t)) {
@@ -46255,7 +46276,7 @@ var ts;
4625546276 else if (t.flags & 3670016) {
4625646277 var prop = getPropertyOfType(t, name);
4625746278 if (prop) {
46258- return getTypeOfSymbol(prop);
46279+ return isCircularMappedProperty(prop) ? undefined : getTypeOfSymbol(prop);
4625946280 }
4626046281 if (isTupleType(t)) {
4626146282 var restType = getRestTypeOfTupleType(t);
@@ -75534,6 +75555,7 @@ var ts;
7553475555 trackSymbol: trackSymbol,
7553575556 reportInaccessibleThisError: reportInaccessibleThisError,
7553675557 reportInaccessibleUniqueSymbolError: reportInaccessibleUniqueSymbolError,
75558+ reportCyclicStructureError: reportCyclicStructureError,
7553775559 reportPrivateInBaseOfClassExpression: reportPrivateInBaseOfClassExpression,
7553875560 reportLikelyUnsafeImportRequiredError: reportLikelyUnsafeImportRequiredError,
7553975561 moduleResolverHost: host,
@@ -75615,6 +75637,11 @@ var ts;
7561575637 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"));
7561675638 }
7561775639 }
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+ }
7561875645 function reportInaccessibleThisError() {
7561975646 if (errorNameNode) {
7562075647 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