Skip to content

Commit 551f0dd

Browse files
author
TypeScript Bot
committed
Bump version to 3.9.2 and LKG
1 parent 8bd8a88 commit 551f0dd

8 files changed

+205
-86
lines changed

lib/tsc.js

Lines changed: 29 additions & 14 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.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

Comments
 (0)