Skip to content

Commit c6f9343

Browse files
author
TypeScript Bot
committed
Bump version to 3.9.6 and LKG
1 parent 1ee1212 commit c6f9343

8 files changed

+242
-80
lines changed

lib/tsc.js

Lines changed: 40 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
6767
var 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

Comments
 (0)