@@ -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.1-rc ";
70+ ts.version = "3.9.2 ";
7171 function tryGetNativeMap() {
7272 return typeof Map !== "undefined" && "entries" in Map.prototype ? Map : undefined;
7373 }
@@ -27221,18 +27221,17 @@ var ts;
2722127221 if (ts.isIdentifier(node.left.expression) && container === file && isExportsOrModuleExportsOrAlias(file, node.left.expression)) {
2722227222 bindExportsPropertyAssignment(node);
2722327223 }
27224+ else if (ts.hasDynamicName(node)) {
27225+ bindAnonymousDeclaration(node, 4 | 67108864, "__computed");
27226+ var sym = bindPotentiallyMissingNamespaces(parentSymbol, node.left.expression, isTopLevelNamespaceAssignment(node.left), false, false);
27227+ addLateBoundAssignmentDeclarationToSymbol(node, sym);
27228+ }
2722427229 else {
27225- if (ts.hasDynamicName(node)) {
27226- bindAnonymousDeclaration(node, 4 | 67108864, "__computed");
27227- var sym = bindPotentiallyMissingNamespaces(parentSymbol, node.left.expression, isTopLevelNamespaceAssignment(node.left), false, false);
27228- addLateBoundAssignmentDeclarationToSymbol(node, sym);
27229- }
27230- else {
27231- bindStaticPropertyAssignment(ts.cast(node.left, ts.isBindableStaticAccessExpression));
27232- }
27230+ bindStaticPropertyAssignment(ts.cast(node.left, ts.isBindableStaticNameExpression));
2723327231 }
2723427232 }
2723527233 function bindStaticPropertyAssignment(node) {
27234+ ts.Debug.assert(!ts.isIdentifier(node));
2723627235 node.expression.parent = node;
2723727236 bindPropertyAssignment(node.expression, node, false, false);
2723827237 }
@@ -29808,7 +29807,9 @@ var ts;
2980829807 lastLocation === location.name && ts.isBindingPattern(lastLocation))) {
2980929808 var root = ts.getRootDeclaration(location);
2981029809 if (root.kind === 156) {
29811- associatedDeclarationForContainingInitializerOrBindingName = location;
29810+ if (!associatedDeclarationForContainingInitializerOrBindingName) {
29811+ associatedDeclarationForContainingInitializerOrBindingName = location;
29812+ }
2981229813 }
2981329814 }
2981429815 break;
@@ -32762,12 +32763,15 @@ var ts;
3276232763 function getDeclarationWithTypeAnnotation(symbol, enclosingDeclaration) {
3276332764 return symbol.declarations && ts.find(symbol.declarations, function (s) { return !!ts.getEffectiveTypeAnnotationNode(s) && (!enclosingDeclaration || !!ts.findAncestor(s, function (n) { return n === enclosingDeclaration; })); });
3276432765 }
32766+ function existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type) {
32767+ return !(ts.getObjectFlags(type) & 4) || !ts.isTypeReferenceNode(existing) || ts.length(existing.typeArguments) >= getMinTypeArgumentCount(type.target.typeParameters);
32768+ }
3276532769 function serializeTypeForDeclaration(context, type, symbol, enclosingDeclaration, includePrivateSymbol, bundled) {
3276632770 if (type !== errorType && enclosingDeclaration) {
3276732771 var declWithExistingAnnotation = getDeclarationWithTypeAnnotation(symbol, enclosingDeclaration);
3276832772 if (declWithExistingAnnotation && !ts.isFunctionLikeDeclaration(declWithExistingAnnotation)) {
3276932773 var existing = ts.getEffectiveTypeAnnotationNode(declWithExistingAnnotation);
32770- if (getTypeFromTypeNode(existing) === type) {
32774+ if (getTypeFromTypeNode(existing) === type && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type) ) {
3277132775 var result_4 = serializeExistingTypeNode(context, existing, includePrivateSymbol, bundled);
3277232776 if (result_4) {
3277332777 return result_4;
@@ -32787,7 +32791,7 @@ var ts;
3278732791 function serializeReturnTypeForSignature(context, type, signature, includePrivateSymbol, bundled) {
3278832792 if (type !== errorType && context.enclosingDeclaration) {
3278932793 var annotation = signature.declaration && ts.getEffectiveReturnTypeNode(signature.declaration);
32790- if (!!ts.findAncestor(annotation, function (n) { return n === context.enclosingDeclaration; }) && annotation && instantiateType(getTypeFromTypeNode(annotation), signature.mapper) === type) {
32794+ if (!!ts.findAncestor(annotation, function (n) { return n === context.enclosingDeclaration; }) && annotation && instantiateType(getTypeFromTypeNode(annotation), signature.mapper) === type && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(annotation, type) ) {
3279132795 var result = serializeExistingTypeNode(context, annotation, includePrivateSymbol, bundled);
3279232796 if (result) {
3279332797 return result;
@@ -32826,6 +32830,14 @@ var ts;
3282632830 if (ts.isJSDocVariadicType(node)) {
3282732831 return ts.createArrayTypeNode(ts.visitNode(node.type, visitExistingNodeTreeSymbols));
3282832832 }
32833+ if (ts.isJSDocTypeLiteral(node)) {
32834+ return ts.createTypeLiteralNode(ts.map(node.jsDocPropertyTags, function (t) {
32835+ var name = ts.isIdentifier(t.name) ? t.name : t.name.right;
32836+ var typeViaParent = getTypeOfPropertyOfType(getTypeFromTypeNode(node), name.escapedText);
32837+ var overrideTypeNode = typeViaParent && t.typeExpression && getTypeFromTypeNode(t.typeExpression.type) !== typeViaParent ? typeToTypeNodeHelper(typeViaParent, context) : undefined;
32838+ return ts.createPropertySignature(undefined, name, t.typeExpression && ts.isJSDocOptionalType(t.typeExpression.type) ? ts.createToken(57) : undefined, overrideTypeNode || (t.typeExpression && ts.visitNode(t.typeExpression.type, visitExistingNodeTreeSymbols)) || ts.createKeywordTypeNode(125), undefined);
32839+ }));
32840+ }
3282932841 if (ts.isTypeReferenceNode(node) && ts.isIdentifier(node.typeName) && node.typeName.escapedText === "") {
3283032842 return ts.setOriginalNode(ts.createKeywordTypeNode(125), node);
3283132843 }
@@ -32841,6 +32853,9 @@ var ts;
3284132853 return ts.createFunctionTypeNode(ts.visitNodes(node.typeParameters, visitExistingNodeTreeSymbols), ts.map(node.parameters, function (p, i) { return ts.createParameter(undefined, undefined, getEffectiveDotDotDotForParameter(p), p.name || getEffectiveDotDotDotForParameter(p) ? "args" : "arg" + i, p.questionToken, ts.visitNode(p.type, visitExistingNodeTreeSymbols), undefined); }), ts.visitNode(node.type, visitExistingNodeTreeSymbols));
3284232854 }
3284332855 }
32856+ if (ts.isTypeReferenceNode(node) && ts.isInJSDoc(node) && (getIntendedTypeFromJSDocTypeReference(node) || unknownSymbol === resolveTypeReferenceName(getTypeReferenceName(node), 788968, true))) {
32857+ return ts.setOriginalNode(typeToTypeNodeHelper(getTypeFromTypeNode(node), context), node);
32858+ }
3284432859 if (ts.isLiteralImportTypeNode(node)) {
3284532860 return ts.updateImportTypeNode(node, ts.updateLiteralTypeNode(node.argument, rewriteModuleSpecifier(node, node.argument.literal)), node.qualifier, ts.visitNodes(node.typeArguments, visitExistingNodeTreeSymbols, ts.isTypeNode), node.isTypeOf);
3284632861 }
@@ -40940,7 +40955,7 @@ var ts;
4094040955 }
4094140956 }
4094240957 if (result && !inPropertyCheck && (target.flags & 2097152 && (isPerformingExcessPropertyChecks || isPerformingCommonPropertyChecks) ||
40943- isNonGenericObjectType(target) && source.flags & 2097152 && getApparentType(source).flags & 3670016 && !ts.some(source.types, function (t) { return !!(ts.getObjectFlags(t) & 2097152); }))) {
40958+ isNonGenericObjectType(target) && !isArrayType(target) && !isTupleType(target) && source.flags & 2097152 && getApparentType(source).flags & 3670016 && !ts.some(source.types, function (t) { return !!(ts.getObjectFlags(t) & 2097152); }))) {
4094440959 inPropertyCheck = true;
4094540960 result &= recursiveTypeRelatedTo(source, target, reportErrors, 4);
4094640961 inPropertyCheck = false;
@@ -44661,7 +44676,7 @@ var ts;
4466144676 var predicate = getTypePredicateOfSignature(signature);
4466244677 if (predicate && (predicate.kind === 2 || predicate.kind === 3)) {
4466344678 var flowType = getTypeAtFlowNode(flow.antecedent);
44664- var type = getTypeFromFlowType(flowType);
44679+ var type = finalizeEvolvingArrayType( getTypeFromFlowType(flowType) );
4466544680 var narrowedType = predicate.type ? narrowTypeByTypePredicate(type, predicate, flow.node, true) :
4466644681 predicate.kind === 3 && predicate.parameterIndex >= 0 && predicate.parameterIndex < flow.node.arguments.length ? narrowTypeByAssertion(type, flow.node.arguments[predicate.parameterIndex]) :
4466744682 type;
0 commit comments