Update LKG.

This commit is contained in:
Daniel Rosenwasser 2019-04-18 18:12:26 -04:00
parent a1d91c91f5
commit 635fdf85b2
6 changed files with 398 additions and 360 deletions

View File

@ -60,7 +60,7 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
var ts;
(function (ts) {
ts.versionMajorMinor = "3.4";
ts.version = ts.versionMajorMinor + ".3";
ts.version = ts.versionMajorMinor + ".4";
})(ts || (ts = {}));
(function (ts) {
ts.emptyArray = [];
@ -9899,7 +9899,7 @@ var ts;
}
ts.getClassLikeDeclarationOfSymbol = getClassLikeDeclarationOfSymbol;
function getObjectFlags(type) {
return type.flags & 3768320 ? type.objectFlags : 0;
return type.flags & 3899392 ? type.objectFlags : 0;
}
ts.getObjectFlags = getObjectFlags;
function typeHasCallOrConstructSignatures(type, checker) {
@ -25788,10 +25788,10 @@ var ts;
var wildcardType = createIntrinsicType(1, "any");
var errorType = createIntrinsicType(1, "error");
var unknownType = createIntrinsicType(2, "unknown");
var undefinedType = createNullableType(32768, "undefined", 0);
var undefinedWideningType = strictNullChecks ? undefinedType : createNullableType(32768, "undefined", 131072);
var nullType = createNullableType(65536, "null", 0);
var nullWideningType = strictNullChecks ? nullType : createNullableType(65536, "null", 131072);
var undefinedType = createIntrinsicType(32768, "undefined");
var undefinedWideningType = strictNullChecks ? undefinedType : createIntrinsicType(32768, "undefined", 131072);
var nullType = createIntrinsicType(65536, "null");
var nullWideningType = strictNullChecks ? nullType : createIntrinsicType(65536, "null", 131072);
var stringType = createIntrinsicType(4, "string");
var numberType = createIntrinsicType(8, "number");
var bigintType = createIntrinsicType(64, "bigint");
@ -25815,6 +25815,7 @@ var ts;
var voidType = createIntrinsicType(16384, "void");
var neverType = createIntrinsicType(131072, "never");
var silentNeverType = createIntrinsicType(131072, "never");
var nonInferrableType = createIntrinsicType(131072, "never", 524288);
var implicitNeverType = createIntrinsicType(131072, "never");
var nonPrimitiveType = createIntrinsicType(67108864, "object");
var stringNumberSymbolType = getUnionType([stringType, numberType, esSymbolType]);
@ -27542,13 +27543,10 @@ var ts;
result.id = typeCount;
return result;
}
function createIntrinsicType(kind, intrinsicName) {
function createIntrinsicType(kind, intrinsicName, objectFlags) {
if (objectFlags === void 0) { objectFlags = 0; }
var type = createType(kind);
type.intrinsicName = intrinsicName;
return type;
}
function createNullableType(kind, intrinsicName, objectFlags) {
var type = createIntrinsicType(kind, intrinsicName);
type.objectFlags = objectFlags;
return type;
}
@ -33598,7 +33596,7 @@ var ts;
return newResult;
}
function getConditionalTypeWorker(root, mapper, checkType, extendsType, trueType, falseType) {
if (falseType.flags & 131072 && isTypeIdenticalTo(getActualTypeVariable(trueType), getActualTypeVariable(checkType))) {
if (falseType.flags & 131072 && getActualTypeVariable(trueType) === getActualTypeVariable(checkType)) {
if (checkType.flags & 1 || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) {
return trueType;
}
@ -33606,7 +33604,7 @@ var ts;
return neverType;
}
}
else if (trueType.flags & 131072 && isTypeIdenticalTo(getActualTypeVariable(falseType), getActualTypeVariable(checkType))) {
else if (trueType.flags & 131072 && getActualTypeVariable(falseType) === getActualTypeVariable(checkType)) {
if (!(checkType.flags & 1) && isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) {
return neverType;
}
@ -36898,7 +36896,7 @@ var ts;
var stringIndexInfo = getIndexInfoOfType(type, 0);
var numberIndexInfo = getIndexInfoOfType(type, 1);
var result = createAnonymousType(type.symbol, members, ts.emptyArray, ts.emptyArray, stringIndexInfo && createIndexInfo(getWidenedType(stringIndexInfo.type), stringIndexInfo.isReadonly), numberIndexInfo && createIndexInfo(getWidenedType(numberIndexInfo.type), numberIndexInfo.isReadonly));
result.objectFlags |= (ts.getObjectFlags(type) & 16384);
result.objectFlags |= (ts.getObjectFlags(type) & (16384 | 524288));
return result;
}
function getWidenedType(type) {
@ -37172,16 +37170,9 @@ var ts;
return type;
}
function createReverseMappedType(source, target, constraint) {
var properties = getPropertiesOfType(source);
if (properties.length === 0 && !getIndexInfoOfType(source, 0)) {
if (ts.getObjectFlags(source) & 524288 || getPropertiesOfType(source).length === 0 && !getIndexInfoOfType(source, 0)) {
return undefined;
}
for (var _i = 0, properties_3 = properties; _i < properties_3.length; _i++) {
var prop = properties_3[_i];
if (ts.getObjectFlags(getTypeOfSymbol(prop)) & 524288) {
return undefined;
}
}
if (isArrayType(source)) {
return createArrayType(inferReverseMappedType(source.typeArguments[0], target, constraint), isReadonlyArrayType(source));
}
@ -37208,16 +37199,16 @@ var ts;
return getTypeFromInference(inference);
}
function getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties) {
var properties, _i, properties_4, targetProp, sourceProp, targetType, sourceType;
var properties, _i, properties_3, targetProp, sourceProp, targetType, sourceType;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
properties = target.flags & 2097152 ? getPropertiesOfUnionOrIntersectionType(target) : getPropertiesOfObjectType(target);
_i = 0, properties_4 = properties;
_i = 0, properties_3 = properties;
_a.label = 1;
case 1:
if (!(_i < properties_4.length)) return [3, 6];
targetProp = properties_4[_i];
if (!(_i < properties_3.length)) return [3, 6];
targetProp = properties_3[_i];
if (!(requireOptionalProperties || !(targetProp.flags & 16777216))) return [3, 5];
sourceProp = getPropertyOfType(source, targetProp.escapedName);
if (!!sourceProp) return [3, 3];
@ -37410,20 +37401,32 @@ var ts;
inferFromTypes(source, target.falseType);
}
else if (target.flags & 3145728) {
var typeVariableCount = 0;
for (var _d = 0, _e = target.types; _d < _e.length; _d++) {
var t = _e[_d];
var savePriority = priority;
if (getInferenceInfoForType(t)) {
priority |= 1;
typeVariableCount++;
}
else {
inferFromTypes(source, t);
}
}
if (target.flags & 1048576 ? typeVariableCount !== 0 : typeVariableCount === 1) {
var savePriority = priority;
priority |= 1;
for (var _f = 0, _g = target.types; _f < _g.length; _f++) {
var t = _g[_f];
if (getInferenceInfoForType(t)) {
inferFromTypes(source, t);
}
}
inferFromTypes(source, t);
priority = savePriority;
}
}
else if (source.flags & 1048576) {
var sourceTypes = source.types;
for (var _f = 0, sourceTypes_3 = sourceTypes; _f < sourceTypes_3.length; _f++) {
var sourceType = sourceTypes_3[_f];
for (var _h = 0, sourceTypes_3 = sourceTypes; _h < sourceTypes_3.length; _h++) {
var sourceType = sourceTypes_3[_h];
inferFromTypes(sourceType, target);
}
}
@ -37573,8 +37576,8 @@ var ts;
}
}
var properties = getPropertiesOfObjectType(target);
for (var _i = 0, properties_5 = properties; _i < properties_5.length; _i++) {
var targetProp = properties_5[_i];
for (var _i = 0, properties_4 = properties; _i < properties_4.length; _i++) {
var targetProp = properties_4[_i];
var sourceProp = getPropertyOfType(source, targetProp.escapedName);
if (sourceProp) {
inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp));
@ -41924,7 +41927,7 @@ var ts;
spanArray = ts.createNodeArray(args);
if (hasSpreadArgument && argCount) {
var nextArg = ts.elementAt(args, getSpreadArgumentIndex(args) + 1) || undefined;
spanArray = ts.createNodeArray(args.slice(max > argCount && nextArg ? args.indexOf(nextArg) : max));
spanArray = ts.createNodeArray(args.slice(max > argCount && nextArg ? args.indexOf(nextArg) : Math.min(max, args.length - 1)));
}
}
else {
@ -42581,7 +42584,7 @@ var ts;
checkGrammarArguments(node.arguments);
var signature = getResolvedSignature(node, undefined, checkMode);
if (signature === resolvingSignature) {
return silentNeverType;
return nonInferrableType;
}
if (node.expression.kind === 98) {
return voidType;
@ -43570,8 +43573,8 @@ var ts;
if (strictNullChecks && properties.length === 0) {
return checkNonNullType(sourceType, node);
}
for (var _i = 0, properties_6 = properties; _i < properties_6.length; _i++) {
var p = properties_6[_i];
for (var _i = 0, properties_5 = properties; _i < properties_5.length; _i++) {
var p = properties_5[_i];
checkObjectLiteralDestructuringPropertyAssignment(sourceType, p, properties, rightIsThis);
}
return sourceType;
@ -47214,8 +47217,8 @@ var ts;
for (var _i = 0, baseTypes_2 = baseTypes; _i < baseTypes_2.length; _i++) {
var base = baseTypes_2[_i];
var properties = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType));
for (var _a = 0, properties_7 = properties; _a < properties_7.length; _a++) {
var prop = properties_7[_a];
for (var _a = 0, properties_6 = properties; _a < properties_6.length; _a++) {
var prop = properties_6[_a];
var existing = seen.get(prop.escapedName);
if (!existing) {
seen.set(prop.escapedName, { prop: prop, containingType: base });
@ -49380,7 +49383,7 @@ var ts;
if (autoArrayType === emptyObjectType) {
autoArrayType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
}
globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", 1);
globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", 1) || globalArrayType;
anyReadonlyArrayType = globalReadonlyArrayType ? createTypeFromGenericGlobalType(globalReadonlyArrayType, [anyType]) : anyArrayType;
globalThisType = getGlobalTypeOrUndefined("ThisType", 1);
if (augmentations) {
@ -53915,27 +53918,27 @@ var ts;
function createExpressionForAccessorDeclaration(properties, property, receiver, multiLine) {
var _a = ts.getAllAccessorDeclarations(properties, property), firstAccessor = _a.firstAccessor, getAccessor = _a.getAccessor, setAccessor = _a.setAccessor;
if (property === firstAccessor) {
var properties_8 = [];
var properties_7 = [];
if (getAccessor) {
var getterFunction = ts.createFunctionExpression(getAccessor.modifiers, undefined, undefined, undefined, getAccessor.parameters, undefined, getAccessor.body);
ts.setTextRange(getterFunction, getAccessor);
ts.setOriginalNode(getterFunction, getAccessor);
var getter = ts.createPropertyAssignment("get", getterFunction);
properties_8.push(getter);
properties_7.push(getter);
}
if (setAccessor) {
var setterFunction = ts.createFunctionExpression(setAccessor.modifiers, undefined, undefined, undefined, setAccessor.parameters, undefined, setAccessor.body);
ts.setTextRange(setterFunction, setAccessor);
ts.setOriginalNode(setterFunction, setAccessor);
var setter = ts.createPropertyAssignment("set", setterFunction);
properties_8.push(setter);
properties_7.push(setter);
}
properties_8.push(ts.createPropertyAssignment("enumerable", ts.createTrue()));
properties_8.push(ts.createPropertyAssignment("configurable", ts.createTrue()));
properties_7.push(ts.createPropertyAssignment("enumerable", ts.createTrue()));
properties_7.push(ts.createPropertyAssignment("configurable", ts.createTrue()));
var expression = ts.setTextRange(ts.createCall(ts.createPropertyAccess(ts.createIdentifier("Object"), "defineProperty"), undefined, [
receiver,
createExpressionForPropertyName(property.name),
ts.createObjectLiteral(properties_8, multiLine)
ts.createObjectLiteral(properties_7, multiLine)
]), firstAccessor);
return ts.aggregateTransformFlags(expression);
}
@ -57301,8 +57304,8 @@ var ts;
&& member.initializer !== undefined;
}
function addInitializedPropertyStatements(statements, properties, receiver) {
for (var _i = 0, properties_9 = properties; _i < properties_9.length; _i++) {
var property = properties_9[_i];
for (var _i = 0, properties_8 = properties; _i < properties_8.length; _i++) {
var property = properties_8[_i];
var statement = ts.createExpressionStatement(transformInitializedProperty(property, receiver));
ts.setSourceMapRange(statement, ts.moveRangePastModifiers(property));
ts.setCommentRange(statement, property);
@ -57312,8 +57315,8 @@ var ts;
}
function generateInitializedPropertyExpressions(properties, receiver) {
var expressions = [];
for (var _i = 0, properties_10 = properties; _i < properties_10.length; _i++) {
var property = properties_10[_i];
for (var _i = 0, properties_9 = properties; _i < properties_9.length; _i++) {
var property = properties_9[_i];
var expression = transformInitializedProperty(property, receiver);
ts.startOnNewLine(expression);
ts.setSourceMapRange(expression, ts.moveRangePastModifiers(property));

View File

@ -85,7 +85,7 @@ var ts;
// If changing the text in this section, be sure to test `configureNightly` too.
ts.versionMajorMinor = "3.4";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".3";
ts.version = ts.versionMajorMinor + ".4";
})(ts || (ts = {}));
(function (ts) {
/* @internal */
@ -3490,7 +3490,7 @@ var ts;
TypeFlags[TypeFlags["Instantiable"] = 63176704] = "Instantiable";
TypeFlags[TypeFlags["StructuredOrInstantiable"] = 66846720] = "StructuredOrInstantiable";
/* @internal */
TypeFlags[TypeFlags["ObjectFlagsType"] = 3768320] = "ObjectFlagsType";
TypeFlags[TypeFlags["ObjectFlagsType"] = 3899392] = "ObjectFlagsType";
// 'Narrowable' types are types where narrowing actually narrows.
// This *should* be every type other than null, undefined, void, and never
TypeFlags[TypeFlags["Narrowable"] = 133970943] = "Narrowable";
@ -3538,7 +3538,7 @@ var ts;
/* @internal */
ObjectFlags[ObjectFlags["ContainsObjectLiteral"] = 262144] = "ContainsObjectLiteral";
/* @internal */
ObjectFlags[ObjectFlags["ContainsAnyFunctionType"] = 524288] = "ContainsAnyFunctionType";
ObjectFlags[ObjectFlags["NonInferrableType"] = 524288] = "NonInferrableType";
ObjectFlags[ObjectFlags["ClassOrInterface"] = 3] = "ClassOrInterface";
/* @internal */
ObjectFlags[ObjectFlags["RequiresWidening"] = 393216] = "RequiresWidening";
@ -12614,7 +12614,7 @@ var ts;
}
ts.getClassLikeDeclarationOfSymbol = getClassLikeDeclarationOfSymbol;
function getObjectFlags(type) {
return type.flags & 3768320 /* ObjectFlagsType */ ? type.objectFlags : 0;
return type.flags & 3899392 /* ObjectFlagsType */ ? type.objectFlags : 0;
}
ts.getObjectFlags = getObjectFlags;
function typeHasCallOrConstructSignatures(type, checker) {
@ -31471,10 +31471,10 @@ var ts;
var wildcardType = createIntrinsicType(1 /* Any */, "any");
var errorType = createIntrinsicType(1 /* Any */, "error");
var unknownType = createIntrinsicType(2 /* Unknown */, "unknown");
var undefinedType = createNullableType(32768 /* Undefined */, "undefined", 0);
var undefinedWideningType = strictNullChecks ? undefinedType : createNullableType(32768 /* Undefined */, "undefined", 131072 /* ContainsWideningType */);
var nullType = createNullableType(65536 /* Null */, "null", 0);
var nullWideningType = strictNullChecks ? nullType : createNullableType(65536 /* Null */, "null", 131072 /* ContainsWideningType */);
var undefinedType = createIntrinsicType(32768 /* Undefined */, "undefined");
var undefinedWideningType = strictNullChecks ? undefinedType : createIntrinsicType(32768 /* Undefined */, "undefined", 131072 /* ContainsWideningType */);
var nullType = createIntrinsicType(65536 /* Null */, "null");
var nullWideningType = strictNullChecks ? nullType : createIntrinsicType(65536 /* Null */, "null", 131072 /* ContainsWideningType */);
var stringType = createIntrinsicType(4 /* String */, "string");
var numberType = createIntrinsicType(8 /* Number */, "number");
var bigintType = createIntrinsicType(64 /* BigInt */, "bigint");
@ -31500,6 +31500,7 @@ var ts;
var voidType = createIntrinsicType(16384 /* Void */, "void");
var neverType = createIntrinsicType(131072 /* Never */, "never");
var silentNeverType = createIntrinsicType(131072 /* Never */, "never");
var nonInferrableType = createIntrinsicType(131072 /* Never */, "never", 524288 /* NonInferrableType */);
var implicitNeverType = createIntrinsicType(131072 /* Never */, "never");
var nonPrimitiveType = createIntrinsicType(67108864 /* NonPrimitive */, "object");
var stringNumberSymbolType = getUnionType([stringType, numberType, esSymbolType]);
@ -31516,7 +31517,7 @@ var ts;
var anyFunctionType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
// The anyFunctionType contains the anyFunctionType by definition. The flag is further propagated
// in getPropagatingFlagsOfTypes, and it is checked in inferFromTypes.
anyFunctionType.objectFlags |= 524288 /* ContainsAnyFunctionType */;
anyFunctionType.objectFlags |= 524288 /* NonInferrableType */;
var noConstraintType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
var circularConstraintType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
var resolvingDefaultType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
@ -33618,13 +33619,10 @@ var ts;
result.id = typeCount;
return result;
}
function createIntrinsicType(kind, intrinsicName) {
function createIntrinsicType(kind, intrinsicName, objectFlags) {
if (objectFlags === void 0) { objectFlags = 0; }
var type = createType(kind);
type.intrinsicName = intrinsicName;
return type;
}
function createNullableType(kind, intrinsicName, objectFlags) {
var type = createIntrinsicType(kind, intrinsicName);
type.objectFlags = objectFlags;
return type;
}
@ -40457,7 +40455,7 @@ var ts;
}
function getConditionalTypeWorker(root, mapper, checkType, extendsType, trueType, falseType) {
// Simplifications for types of the form `T extends U ? T : never` and `T extends U ? never : T`.
if (falseType.flags & 131072 /* Never */ && isTypeIdenticalTo(getActualTypeVariable(trueType), getActualTypeVariable(checkType))) {
if (falseType.flags & 131072 /* Never */ && getActualTypeVariable(trueType) === getActualTypeVariable(checkType)) {
if (checkType.flags & 1 /* Any */ || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) { // Always true
return trueType;
}
@ -40465,7 +40463,7 @@ var ts;
return neverType;
}
}
else if (trueType.flags & 131072 /* Never */ && isTypeIdenticalTo(getActualTypeVariable(falseType), getActualTypeVariable(checkType))) {
else if (trueType.flags & 131072 /* Never */ && getActualTypeVariable(falseType) === getActualTypeVariable(checkType)) {
if (!(checkType.flags & 1 /* Any */) && isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) { // Always true
return neverType;
}
@ -44212,7 +44210,7 @@ var ts;
var stringIndexInfo = getIndexInfoOfType(type, 0 /* String */);
var numberIndexInfo = getIndexInfoOfType(type, 1 /* Number */);
var result = createAnonymousType(type.symbol, members, ts.emptyArray, ts.emptyArray, stringIndexInfo && createIndexInfo(getWidenedType(stringIndexInfo.type), stringIndexInfo.isReadonly), numberIndexInfo && createIndexInfo(getWidenedType(numberIndexInfo.type), numberIndexInfo.isReadonly));
result.objectFlags |= (ts.getObjectFlags(type) & 16384 /* JSLiteral */); // Retain js literal flag through widening
result.objectFlags |= (ts.getObjectFlags(type) & (16384 /* JSLiteral */ | 524288 /* NonInferrableType */)); // Retain js literal flag through widening
return result;
}
function getWidenedType(type) {
@ -44513,17 +44511,10 @@ var ts;
return type;
}
function createReverseMappedType(source, target, constraint) {
var properties = getPropertiesOfType(source);
if (properties.length === 0 && !getIndexInfoOfType(source, 0 /* String */)) {
return undefined;
}
// If any property contains context sensitive functions that have been skipped, the source type
// is incomplete and we can't infer a meaningful input type.
for (var _i = 0, properties_3 = properties; _i < properties_3.length; _i++) {
var prop = properties_3[_i];
if (ts.getObjectFlags(getTypeOfSymbol(prop)) & 524288 /* ContainsAnyFunctionType */) {
return undefined;
}
if (ts.getObjectFlags(source) & 524288 /* NonInferrableType */ || getPropertiesOfType(source).length === 0 && !getIndexInfoOfType(source, 0 /* String */)) {
return undefined;
}
// For arrays and tuples we infer new arrays and tuples where the reverse mapping has been
// applied to the element type(s).
@ -44555,16 +44546,16 @@ var ts;
return getTypeFromInference(inference);
}
function getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties) {
var properties, _i, properties_4, targetProp, sourceProp, targetType, sourceType;
var properties, _i, properties_3, targetProp, sourceProp, targetType, sourceType;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
properties = target.flags & 2097152 /* Intersection */ ? getPropertiesOfUnionOrIntersectionType(target) : getPropertiesOfObjectType(target);
_i = 0, properties_4 = properties;
_i = 0, properties_3 = properties;
_a.label = 1;
case 1:
if (!(_i < properties_4.length)) return [3 /*break*/, 6];
targetProp = properties_4[_i];
if (!(_i < properties_3.length)) return [3 /*break*/, 6];
targetProp = properties_3[_i];
if (!(requireOptionalProperties || !(targetProp.flags & 16777216 /* Optional */))) return [3 /*break*/, 5];
sourceProp = getPropertyOfType(source, targetProp.escapedName);
if (!!sourceProp) return [3 /*break*/, 3];
@ -44688,7 +44679,7 @@ var ts;
// not contain anyFunctionType when we come back to this argument for its second round
// of inference. Also, we exclude inferences for silentNeverType (which is used as a wildcard
// when constructing types from type parameters that had no inference candidates).
if (ts.getObjectFlags(source) & 524288 /* ContainsAnyFunctionType */ || source === silentNeverType || (priority & 8 /* ReturnType */ && (source === autoType || source === autoArrayType))) {
if (ts.getObjectFlags(source) & 524288 /* NonInferrableType */ || source === silentNeverType || (priority & 8 /* ReturnType */ && (source === autoType || source === autoArrayType))) {
return;
}
var inference = getInferenceInfoForType(target);
@ -44788,24 +44779,40 @@ var ts;
inferFromTypes(source, target.falseType);
}
else if (target.flags & 3145728 /* UnionOrIntersection */) {
// We infer from types that are not naked type variables first so that inferences we
// make from nested naked type variables and given slightly higher priority by virtue
// of being first in the candidates array.
var typeVariableCount = 0;
for (var _d = 0, _e = target.types; _d < _e.length; _d++) {
var t = _e[_d];
var savePriority = priority;
// Inferences directly to naked type variables are given lower priority as they are
// less specific. For example, when inferring from Promise<string> to T | Promise<T>,
// we want to infer string for T, not Promise<string> | string.
if (getInferenceInfoForType(t)) {
priority |= 1 /* NakedTypeVariable */;
typeVariableCount++;
}
else {
inferFromTypes(source, t);
}
}
// Inferences directly to naked type variables are given lower priority as they are
// less specific. For example, when inferring from Promise<string> to T | Promise<T>,
// we want to infer string for T, not Promise<string> | string. For intersection types
// we only infer to single naked type variables.
if (target.flags & 1048576 /* Union */ ? typeVariableCount !== 0 : typeVariableCount === 1) {
var savePriority = priority;
priority |= 1 /* NakedTypeVariable */;
for (var _f = 0, _g = target.types; _f < _g.length; _f++) {
var t = _g[_f];
if (getInferenceInfoForType(t)) {
inferFromTypes(source, t);
}
}
inferFromTypes(source, t);
priority = savePriority;
}
}
else if (source.flags & 1048576 /* Union */) {
// Source is a union or intersection type, infer from each constituent type
var sourceTypes = source.types;
for (var _f = 0, sourceTypes_3 = sourceTypes; _f < sourceTypes_3.length; _f++) {
var sourceType = sourceTypes_3[_f];
for (var _h = 0, sourceTypes_3 = sourceTypes; _h < sourceTypes_3.length; _h++) {
var sourceType = sourceTypes_3[_h];
inferFromTypes(sourceType, target);
}
}
@ -44984,8 +44991,8 @@ var ts;
}
}
var properties = getPropertiesOfObjectType(target);
for (var _i = 0, properties_5 = properties; _i < properties_5.length; _i++) {
var targetProp = properties_5[_i];
for (var _i = 0, properties_4 = properties; _i < properties_4.length; _i++) {
var targetProp = properties_4[_i];
var sourceProp = getPropertyOfType(source, targetProp.escapedName);
if (sourceProp) {
inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp));
@ -44998,7 +45005,7 @@ var ts;
var sourceLen = sourceSignatures.length;
var targetLen = targetSignatures.length;
var len = sourceLen < targetLen ? sourceLen : targetLen;
var skipParameters = !!(ts.getObjectFlags(source) & 524288 /* ContainsAnyFunctionType */);
var skipParameters = !!(ts.getObjectFlags(source) & 524288 /* NonInferrableType */);
for (var i = 0; i < len; i++) {
inferFromSignature(getBaseSignature(sourceSignatures[sourceLen - len + i]), getBaseSignature(targetSignatures[targetLen - len + i]), skipParameters);
}
@ -50158,7 +50165,7 @@ var ts;
spanArray = ts.createNodeArray(args);
if (hasSpreadArgument && argCount) {
var nextArg = ts.elementAt(args, getSpreadArgumentIndex(args) + 1) || undefined;
spanArray = ts.createNodeArray(args.slice(max > argCount && nextArg ? args.indexOf(nextArg) : max));
spanArray = ts.createNodeArray(args.slice(max > argCount && nextArg ? args.indexOf(nextArg) : Math.min(max, args.length - 1)));
}
}
else {
@ -50579,7 +50586,7 @@ var ts;
// returns a function type, we choose to defer processing. This narrowly permits function composition
// operators to flow inferences through return types, but otherwise processes calls right away. We
// use the resolvingSignature singleton to indicate that we deferred processing. This result will be
// propagated out and eventually turned into silentNeverType (a type that is assignable to anything and
// propagated out and eventually turned into nonInferrableType (a type that is assignable to anything and
// from which we never make inferences).
if (checkMode & 8 /* SkipGenericFunctions */ && !node.typeArguments && callSignatures.some(isGenericFunctionReturningFunction)) {
skippedGenericFunction(node, checkMode);
@ -51002,8 +51009,8 @@ var ts;
var signature = getResolvedSignature(node, /*candidatesOutArray*/ undefined, checkMode);
if (signature === resolvingSignature) {
// CheckMode.SkipGenericFunctions is enabled and this is a call to a generic function that
// returns a function type. We defer checking and return anyFunctionType.
return silentNeverType;
// returns a function type. We defer checking and return nonInferrableType.
return nonInferrableType;
}
if (node.expression.kind === 98 /* SuperKeyword */) {
return voidType;
@ -51742,7 +51749,7 @@ var ts;
var returnType = getReturnTypeFromBody(node, checkMode);
var returnOnlySignature = createSignature(undefined, undefined, undefined, ts.emptyArray, returnType, /*resolvedTypePredicate*/ undefined, 0, /*hasRestParameter*/ false, /*hasLiteralTypes*/ false);
var returnOnlyType = createAnonymousType(node.symbol, emptySymbols, [returnOnlySignature], ts.emptyArray, undefined, undefined);
returnOnlyType.objectFlags |= 524288 /* ContainsAnyFunctionType */;
returnOnlyType.objectFlags |= 524288 /* NonInferrableType */;
return links_1.contextFreeType = returnOnlyType;
}
return anyFunctionType;
@ -52124,8 +52131,8 @@ var ts;
if (strictNullChecks && properties.length === 0) {
return checkNonNullType(sourceType, node);
}
for (var _i = 0, properties_6 = properties; _i < properties_6.length; _i++) {
var p = properties_6[_i];
for (var _i = 0, properties_5 = properties; _i < properties_5.length; _i++) {
var p = properties_5[_i];
checkObjectLiteralDestructuringPropertyAssignment(sourceType, p, properties, rightIsThis);
}
return sourceType;
@ -56483,8 +56490,8 @@ var ts;
for (var _i = 0, baseTypes_2 = baseTypes; _i < baseTypes_2.length; _i++) {
var base = baseTypes_2[_i];
var properties = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType));
for (var _a = 0, properties_7 = properties; _a < properties_7.length; _a++) {
var prop = properties_7[_a];
for (var _a = 0, properties_6 = properties; _a < properties_6.length; _a++) {
var prop = properties_6[_a];
var existing = seen.get(prop.escapedName);
if (!existing) {
seen.set(prop.escapedName, { prop: prop, containingType: base });
@ -58931,7 +58938,7 @@ var ts;
// autoArrayType is used as a marker, so even if global Array type is not defined, it needs to be a unique type
autoArrayType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
}
globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", /*arity*/ 1);
globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", /*arity*/ 1) || globalArrayType;
anyReadonlyArrayType = globalReadonlyArrayType ? createTypeFromGenericGlobalType(globalReadonlyArrayType, [anyType]) : anyArrayType;
globalThisType = getGlobalTypeOrUndefined("ThisType", /*arity*/ 1);
if (augmentations) {
@ -63754,7 +63761,7 @@ var ts;
function createExpressionForAccessorDeclaration(properties, property, receiver, multiLine) {
var _a = ts.getAllAccessorDeclarations(properties, property), firstAccessor = _a.firstAccessor, getAccessor = _a.getAccessor, setAccessor = _a.setAccessor;
if (property === firstAccessor) {
var properties_8 = [];
var properties_7 = [];
if (getAccessor) {
var getterFunction = ts.createFunctionExpression(getAccessor.modifiers,
/*asteriskToken*/ undefined,
@ -63765,7 +63772,7 @@ var ts;
ts.setTextRange(getterFunction, getAccessor);
ts.setOriginalNode(getterFunction, getAccessor);
var getter = ts.createPropertyAssignment("get", getterFunction);
properties_8.push(getter);
properties_7.push(getter);
}
if (setAccessor) {
var setterFunction = ts.createFunctionExpression(setAccessor.modifiers,
@ -63777,15 +63784,15 @@ var ts;
ts.setTextRange(setterFunction, setAccessor);
ts.setOriginalNode(setterFunction, setAccessor);
var setter = ts.createPropertyAssignment("set", setterFunction);
properties_8.push(setter);
properties_7.push(setter);
}
properties_8.push(ts.createPropertyAssignment("enumerable", ts.createTrue()));
properties_8.push(ts.createPropertyAssignment("configurable", ts.createTrue()));
properties_7.push(ts.createPropertyAssignment("enumerable", ts.createTrue()));
properties_7.push(ts.createPropertyAssignment("configurable", ts.createTrue()));
var expression = ts.setTextRange(ts.createCall(ts.createPropertyAccess(ts.createIdentifier("Object"), "defineProperty"),
/*typeArguments*/ undefined, [
receiver,
createExpressionForPropertyName(property.name),
ts.createObjectLiteral(properties_8, multiLine)
ts.createObjectLiteral(properties_7, multiLine)
]),
/*location*/ firstAccessor);
return ts.aggregateTransformFlags(expression);
@ -68269,8 +68276,8 @@ var ts;
* @param receiver The receiver on which each property should be assigned.
*/
function addInitializedPropertyStatements(statements, properties, receiver) {
for (var _i = 0, properties_9 = properties; _i < properties_9.length; _i++) {
var property = properties_9[_i];
for (var _i = 0, properties_8 = properties; _i < properties_8.length; _i++) {
var property = properties_8[_i];
var statement = ts.createExpressionStatement(transformInitializedProperty(property, receiver));
ts.setSourceMapRange(statement, ts.moveRangePastModifiers(property));
ts.setCommentRange(statement, property);
@ -68286,8 +68293,8 @@ var ts;
*/
function generateInitializedPropertyExpressions(properties, receiver) {
var expressions = [];
for (var _i = 0, properties_10 = properties; _i < properties_10.length; _i++) {
var property = properties_10[_i];
for (var _i = 0, properties_9 = properties; _i < properties_9.length; _i++) {
var property = properties_9[_i];
var expression = transformInitializedProperty(property, receiver);
ts.startOnNewLine(expression);
ts.setSourceMapRange(expression, ts.moveRangePastModifiers(property));

View File

@ -84,7 +84,7 @@ var ts;
// If changing the text in this section, be sure to test `configureNightly` too.
ts.versionMajorMinor = "3.4";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".3";
ts.version = ts.versionMajorMinor + ".4";
})(ts || (ts = {}));
(function (ts) {
/* @internal */
@ -3489,7 +3489,7 @@ var ts;
TypeFlags[TypeFlags["Instantiable"] = 63176704] = "Instantiable";
TypeFlags[TypeFlags["StructuredOrInstantiable"] = 66846720] = "StructuredOrInstantiable";
/* @internal */
TypeFlags[TypeFlags["ObjectFlagsType"] = 3768320] = "ObjectFlagsType";
TypeFlags[TypeFlags["ObjectFlagsType"] = 3899392] = "ObjectFlagsType";
// 'Narrowable' types are types where narrowing actually narrows.
// This *should* be every type other than null, undefined, void, and never
TypeFlags[TypeFlags["Narrowable"] = 133970943] = "Narrowable";
@ -3537,7 +3537,7 @@ var ts;
/* @internal */
ObjectFlags[ObjectFlags["ContainsObjectLiteral"] = 262144] = "ContainsObjectLiteral";
/* @internal */
ObjectFlags[ObjectFlags["ContainsAnyFunctionType"] = 524288] = "ContainsAnyFunctionType";
ObjectFlags[ObjectFlags["NonInferrableType"] = 524288] = "NonInferrableType";
ObjectFlags[ObjectFlags["ClassOrInterface"] = 3] = "ClassOrInterface";
/* @internal */
ObjectFlags[ObjectFlags["RequiresWidening"] = 393216] = "RequiresWidening";
@ -12613,7 +12613,7 @@ var ts;
}
ts.getClassLikeDeclarationOfSymbol = getClassLikeDeclarationOfSymbol;
function getObjectFlags(type) {
return type.flags & 3768320 /* ObjectFlagsType */ ? type.objectFlags : 0;
return type.flags & 3899392 /* ObjectFlagsType */ ? type.objectFlags : 0;
}
ts.getObjectFlags = getObjectFlags;
function typeHasCallOrConstructSignatures(type, checker) {
@ -31470,10 +31470,10 @@ var ts;
var wildcardType = createIntrinsicType(1 /* Any */, "any");
var errorType = createIntrinsicType(1 /* Any */, "error");
var unknownType = createIntrinsicType(2 /* Unknown */, "unknown");
var undefinedType = createNullableType(32768 /* Undefined */, "undefined", 0);
var undefinedWideningType = strictNullChecks ? undefinedType : createNullableType(32768 /* Undefined */, "undefined", 131072 /* ContainsWideningType */);
var nullType = createNullableType(65536 /* Null */, "null", 0);
var nullWideningType = strictNullChecks ? nullType : createNullableType(65536 /* Null */, "null", 131072 /* ContainsWideningType */);
var undefinedType = createIntrinsicType(32768 /* Undefined */, "undefined");
var undefinedWideningType = strictNullChecks ? undefinedType : createIntrinsicType(32768 /* Undefined */, "undefined", 131072 /* ContainsWideningType */);
var nullType = createIntrinsicType(65536 /* Null */, "null");
var nullWideningType = strictNullChecks ? nullType : createIntrinsicType(65536 /* Null */, "null", 131072 /* ContainsWideningType */);
var stringType = createIntrinsicType(4 /* String */, "string");
var numberType = createIntrinsicType(8 /* Number */, "number");
var bigintType = createIntrinsicType(64 /* BigInt */, "bigint");
@ -31499,6 +31499,7 @@ var ts;
var voidType = createIntrinsicType(16384 /* Void */, "void");
var neverType = createIntrinsicType(131072 /* Never */, "never");
var silentNeverType = createIntrinsicType(131072 /* Never */, "never");
var nonInferrableType = createIntrinsicType(131072 /* Never */, "never", 524288 /* NonInferrableType */);
var implicitNeverType = createIntrinsicType(131072 /* Never */, "never");
var nonPrimitiveType = createIntrinsicType(67108864 /* NonPrimitive */, "object");
var stringNumberSymbolType = getUnionType([stringType, numberType, esSymbolType]);
@ -31515,7 +31516,7 @@ var ts;
var anyFunctionType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
// The anyFunctionType contains the anyFunctionType by definition. The flag is further propagated
// in getPropagatingFlagsOfTypes, and it is checked in inferFromTypes.
anyFunctionType.objectFlags |= 524288 /* ContainsAnyFunctionType */;
anyFunctionType.objectFlags |= 524288 /* NonInferrableType */;
var noConstraintType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
var circularConstraintType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
var resolvingDefaultType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
@ -33617,13 +33618,10 @@ var ts;
result.id = typeCount;
return result;
}
function createIntrinsicType(kind, intrinsicName) {
function createIntrinsicType(kind, intrinsicName, objectFlags) {
if (objectFlags === void 0) { objectFlags = 0; }
var type = createType(kind);
type.intrinsicName = intrinsicName;
return type;
}
function createNullableType(kind, intrinsicName, objectFlags) {
var type = createIntrinsicType(kind, intrinsicName);
type.objectFlags = objectFlags;
return type;
}
@ -40456,7 +40454,7 @@ var ts;
}
function getConditionalTypeWorker(root, mapper, checkType, extendsType, trueType, falseType) {
// Simplifications for types of the form `T extends U ? T : never` and `T extends U ? never : T`.
if (falseType.flags & 131072 /* Never */ && isTypeIdenticalTo(getActualTypeVariable(trueType), getActualTypeVariable(checkType))) {
if (falseType.flags & 131072 /* Never */ && getActualTypeVariable(trueType) === getActualTypeVariable(checkType)) {
if (checkType.flags & 1 /* Any */ || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) { // Always true
return trueType;
}
@ -40464,7 +40462,7 @@ var ts;
return neverType;
}
}
else if (trueType.flags & 131072 /* Never */ && isTypeIdenticalTo(getActualTypeVariable(falseType), getActualTypeVariable(checkType))) {
else if (trueType.flags & 131072 /* Never */ && getActualTypeVariable(falseType) === getActualTypeVariable(checkType)) {
if (!(checkType.flags & 1 /* Any */) && isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) { // Always true
return neverType;
}
@ -44211,7 +44209,7 @@ var ts;
var stringIndexInfo = getIndexInfoOfType(type, 0 /* String */);
var numberIndexInfo = getIndexInfoOfType(type, 1 /* Number */);
var result = createAnonymousType(type.symbol, members, ts.emptyArray, ts.emptyArray, stringIndexInfo && createIndexInfo(getWidenedType(stringIndexInfo.type), stringIndexInfo.isReadonly), numberIndexInfo && createIndexInfo(getWidenedType(numberIndexInfo.type), numberIndexInfo.isReadonly));
result.objectFlags |= (ts.getObjectFlags(type) & 16384 /* JSLiteral */); // Retain js literal flag through widening
result.objectFlags |= (ts.getObjectFlags(type) & (16384 /* JSLiteral */ | 524288 /* NonInferrableType */)); // Retain js literal flag through widening
return result;
}
function getWidenedType(type) {
@ -44512,17 +44510,10 @@ var ts;
return type;
}
function createReverseMappedType(source, target, constraint) {
var properties = getPropertiesOfType(source);
if (properties.length === 0 && !getIndexInfoOfType(source, 0 /* String */)) {
return undefined;
}
// If any property contains context sensitive functions that have been skipped, the source type
// is incomplete and we can't infer a meaningful input type.
for (var _i = 0, properties_3 = properties; _i < properties_3.length; _i++) {
var prop = properties_3[_i];
if (ts.getObjectFlags(getTypeOfSymbol(prop)) & 524288 /* ContainsAnyFunctionType */) {
return undefined;
}
if (ts.getObjectFlags(source) & 524288 /* NonInferrableType */ || getPropertiesOfType(source).length === 0 && !getIndexInfoOfType(source, 0 /* String */)) {
return undefined;
}
// For arrays and tuples we infer new arrays and tuples where the reverse mapping has been
// applied to the element type(s).
@ -44554,16 +44545,16 @@ var ts;
return getTypeFromInference(inference);
}
function getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties) {
var properties, _i, properties_4, targetProp, sourceProp, targetType, sourceType;
var properties, _i, properties_3, targetProp, sourceProp, targetType, sourceType;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
properties = target.flags & 2097152 /* Intersection */ ? getPropertiesOfUnionOrIntersectionType(target) : getPropertiesOfObjectType(target);
_i = 0, properties_4 = properties;
_i = 0, properties_3 = properties;
_a.label = 1;
case 1:
if (!(_i < properties_4.length)) return [3 /*break*/, 6];
targetProp = properties_4[_i];
if (!(_i < properties_3.length)) return [3 /*break*/, 6];
targetProp = properties_3[_i];
if (!(requireOptionalProperties || !(targetProp.flags & 16777216 /* Optional */))) return [3 /*break*/, 5];
sourceProp = getPropertyOfType(source, targetProp.escapedName);
if (!!sourceProp) return [3 /*break*/, 3];
@ -44687,7 +44678,7 @@ var ts;
// not contain anyFunctionType when we come back to this argument for its second round
// of inference. Also, we exclude inferences for silentNeverType (which is used as a wildcard
// when constructing types from type parameters that had no inference candidates).
if (ts.getObjectFlags(source) & 524288 /* ContainsAnyFunctionType */ || source === silentNeverType || (priority & 8 /* ReturnType */ && (source === autoType || source === autoArrayType))) {
if (ts.getObjectFlags(source) & 524288 /* NonInferrableType */ || source === silentNeverType || (priority & 8 /* ReturnType */ && (source === autoType || source === autoArrayType))) {
return;
}
var inference = getInferenceInfoForType(target);
@ -44787,24 +44778,40 @@ var ts;
inferFromTypes(source, target.falseType);
}
else if (target.flags & 3145728 /* UnionOrIntersection */) {
// We infer from types that are not naked type variables first so that inferences we
// make from nested naked type variables and given slightly higher priority by virtue
// of being first in the candidates array.
var typeVariableCount = 0;
for (var _d = 0, _e = target.types; _d < _e.length; _d++) {
var t = _e[_d];
var savePriority = priority;
// Inferences directly to naked type variables are given lower priority as they are
// less specific. For example, when inferring from Promise<string> to T | Promise<T>,
// we want to infer string for T, not Promise<string> | string.
if (getInferenceInfoForType(t)) {
priority |= 1 /* NakedTypeVariable */;
typeVariableCount++;
}
else {
inferFromTypes(source, t);
}
}
// Inferences directly to naked type variables are given lower priority as they are
// less specific. For example, when inferring from Promise<string> to T | Promise<T>,
// we want to infer string for T, not Promise<string> | string. For intersection types
// we only infer to single naked type variables.
if (target.flags & 1048576 /* Union */ ? typeVariableCount !== 0 : typeVariableCount === 1) {
var savePriority = priority;
priority |= 1 /* NakedTypeVariable */;
for (var _f = 0, _g = target.types; _f < _g.length; _f++) {
var t = _g[_f];
if (getInferenceInfoForType(t)) {
inferFromTypes(source, t);
}
}
inferFromTypes(source, t);
priority = savePriority;
}
}
else if (source.flags & 1048576 /* Union */) {
// Source is a union or intersection type, infer from each constituent type
var sourceTypes = source.types;
for (var _f = 0, sourceTypes_3 = sourceTypes; _f < sourceTypes_3.length; _f++) {
var sourceType = sourceTypes_3[_f];
for (var _h = 0, sourceTypes_3 = sourceTypes; _h < sourceTypes_3.length; _h++) {
var sourceType = sourceTypes_3[_h];
inferFromTypes(sourceType, target);
}
}
@ -44983,8 +44990,8 @@ var ts;
}
}
var properties = getPropertiesOfObjectType(target);
for (var _i = 0, properties_5 = properties; _i < properties_5.length; _i++) {
var targetProp = properties_5[_i];
for (var _i = 0, properties_4 = properties; _i < properties_4.length; _i++) {
var targetProp = properties_4[_i];
var sourceProp = getPropertyOfType(source, targetProp.escapedName);
if (sourceProp) {
inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp));
@ -44997,7 +45004,7 @@ var ts;
var sourceLen = sourceSignatures.length;
var targetLen = targetSignatures.length;
var len = sourceLen < targetLen ? sourceLen : targetLen;
var skipParameters = !!(ts.getObjectFlags(source) & 524288 /* ContainsAnyFunctionType */);
var skipParameters = !!(ts.getObjectFlags(source) & 524288 /* NonInferrableType */);
for (var i = 0; i < len; i++) {
inferFromSignature(getBaseSignature(sourceSignatures[sourceLen - len + i]), getBaseSignature(targetSignatures[targetLen - len + i]), skipParameters);
}
@ -50157,7 +50164,7 @@ var ts;
spanArray = ts.createNodeArray(args);
if (hasSpreadArgument && argCount) {
var nextArg = ts.elementAt(args, getSpreadArgumentIndex(args) + 1) || undefined;
spanArray = ts.createNodeArray(args.slice(max > argCount && nextArg ? args.indexOf(nextArg) : max));
spanArray = ts.createNodeArray(args.slice(max > argCount && nextArg ? args.indexOf(nextArg) : Math.min(max, args.length - 1)));
}
}
else {
@ -50578,7 +50585,7 @@ var ts;
// returns a function type, we choose to defer processing. This narrowly permits function composition
// operators to flow inferences through return types, but otherwise processes calls right away. We
// use the resolvingSignature singleton to indicate that we deferred processing. This result will be
// propagated out and eventually turned into silentNeverType (a type that is assignable to anything and
// propagated out and eventually turned into nonInferrableType (a type that is assignable to anything and
// from which we never make inferences).
if (checkMode & 8 /* SkipGenericFunctions */ && !node.typeArguments && callSignatures.some(isGenericFunctionReturningFunction)) {
skippedGenericFunction(node, checkMode);
@ -51001,8 +51008,8 @@ var ts;
var signature = getResolvedSignature(node, /*candidatesOutArray*/ undefined, checkMode);
if (signature === resolvingSignature) {
// CheckMode.SkipGenericFunctions is enabled and this is a call to a generic function that
// returns a function type. We defer checking and return anyFunctionType.
return silentNeverType;
// returns a function type. We defer checking and return nonInferrableType.
return nonInferrableType;
}
if (node.expression.kind === 98 /* SuperKeyword */) {
return voidType;
@ -51741,7 +51748,7 @@ var ts;
var returnType = getReturnTypeFromBody(node, checkMode);
var returnOnlySignature = createSignature(undefined, undefined, undefined, ts.emptyArray, returnType, /*resolvedTypePredicate*/ undefined, 0, /*hasRestParameter*/ false, /*hasLiteralTypes*/ false);
var returnOnlyType = createAnonymousType(node.symbol, emptySymbols, [returnOnlySignature], ts.emptyArray, undefined, undefined);
returnOnlyType.objectFlags |= 524288 /* ContainsAnyFunctionType */;
returnOnlyType.objectFlags |= 524288 /* NonInferrableType */;
return links_1.contextFreeType = returnOnlyType;
}
return anyFunctionType;
@ -52123,8 +52130,8 @@ var ts;
if (strictNullChecks && properties.length === 0) {
return checkNonNullType(sourceType, node);
}
for (var _i = 0, properties_6 = properties; _i < properties_6.length; _i++) {
var p = properties_6[_i];
for (var _i = 0, properties_5 = properties; _i < properties_5.length; _i++) {
var p = properties_5[_i];
checkObjectLiteralDestructuringPropertyAssignment(sourceType, p, properties, rightIsThis);
}
return sourceType;
@ -56482,8 +56489,8 @@ var ts;
for (var _i = 0, baseTypes_2 = baseTypes; _i < baseTypes_2.length; _i++) {
var base = baseTypes_2[_i];
var properties = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType));
for (var _a = 0, properties_7 = properties; _a < properties_7.length; _a++) {
var prop = properties_7[_a];
for (var _a = 0, properties_6 = properties; _a < properties_6.length; _a++) {
var prop = properties_6[_a];
var existing = seen.get(prop.escapedName);
if (!existing) {
seen.set(prop.escapedName, { prop: prop, containingType: base });
@ -58930,7 +58937,7 @@ var ts;
// autoArrayType is used as a marker, so even if global Array type is not defined, it needs to be a unique type
autoArrayType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
}
globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", /*arity*/ 1);
globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", /*arity*/ 1) || globalArrayType;
anyReadonlyArrayType = globalReadonlyArrayType ? createTypeFromGenericGlobalType(globalReadonlyArrayType, [anyType]) : anyArrayType;
globalThisType = getGlobalTypeOrUndefined("ThisType", /*arity*/ 1);
if (augmentations) {
@ -63753,7 +63760,7 @@ var ts;
function createExpressionForAccessorDeclaration(properties, property, receiver, multiLine) {
var _a = ts.getAllAccessorDeclarations(properties, property), firstAccessor = _a.firstAccessor, getAccessor = _a.getAccessor, setAccessor = _a.setAccessor;
if (property === firstAccessor) {
var properties_8 = [];
var properties_7 = [];
if (getAccessor) {
var getterFunction = ts.createFunctionExpression(getAccessor.modifiers,
/*asteriskToken*/ undefined,
@ -63764,7 +63771,7 @@ var ts;
ts.setTextRange(getterFunction, getAccessor);
ts.setOriginalNode(getterFunction, getAccessor);
var getter = ts.createPropertyAssignment("get", getterFunction);
properties_8.push(getter);
properties_7.push(getter);
}
if (setAccessor) {
var setterFunction = ts.createFunctionExpression(setAccessor.modifiers,
@ -63776,15 +63783,15 @@ var ts;
ts.setTextRange(setterFunction, setAccessor);
ts.setOriginalNode(setterFunction, setAccessor);
var setter = ts.createPropertyAssignment("set", setterFunction);
properties_8.push(setter);
properties_7.push(setter);
}
properties_8.push(ts.createPropertyAssignment("enumerable", ts.createTrue()));
properties_8.push(ts.createPropertyAssignment("configurable", ts.createTrue()));
properties_7.push(ts.createPropertyAssignment("enumerable", ts.createTrue()));
properties_7.push(ts.createPropertyAssignment("configurable", ts.createTrue()));
var expression = ts.setTextRange(ts.createCall(ts.createPropertyAccess(ts.createIdentifier("Object"), "defineProperty"),
/*typeArguments*/ undefined, [
receiver,
createExpressionForPropertyName(property.name),
ts.createObjectLiteral(properties_8, multiLine)
ts.createObjectLiteral(properties_7, multiLine)
]),
/*location*/ firstAccessor);
return ts.aggregateTransformFlags(expression);
@ -68268,8 +68275,8 @@ var ts;
* @param receiver The receiver on which each property should be assigned.
*/
function addInitializedPropertyStatements(statements, properties, receiver) {
for (var _i = 0, properties_9 = properties; _i < properties_9.length; _i++) {
var property = properties_9[_i];
for (var _i = 0, properties_8 = properties; _i < properties_8.length; _i++) {
var property = properties_8[_i];
var statement = ts.createExpressionStatement(transformInitializedProperty(property, receiver));
ts.setSourceMapRange(statement, ts.moveRangePastModifiers(property));
ts.setCommentRange(statement, property);
@ -68285,8 +68292,8 @@ var ts;
*/
function generateInitializedPropertyExpressions(properties, receiver) {
var expressions = [];
for (var _i = 0, properties_10 = properties; _i < properties_10.length; _i++) {
var property = properties_10[_i];
for (var _i = 0, properties_9 = properties; _i < properties_9.length; _i++) {
var property = properties_9[_i];
var expression = transformInitializedProperty(property, receiver);
ts.startOnNewLine(expression);
ts.setSourceMapRange(expression, ts.moveRangePastModifiers(property));

View File

@ -75,7 +75,7 @@ var ts;
// If changing the text in this section, be sure to test `configureNightly` too.
ts.versionMajorMinor = "3.4";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".3";
ts.version = ts.versionMajorMinor + ".4";
})(ts || (ts = {}));
(function (ts) {
/* @internal */
@ -3480,7 +3480,7 @@ var ts;
TypeFlags[TypeFlags["Instantiable"] = 63176704] = "Instantiable";
TypeFlags[TypeFlags["StructuredOrInstantiable"] = 66846720] = "StructuredOrInstantiable";
/* @internal */
TypeFlags[TypeFlags["ObjectFlagsType"] = 3768320] = "ObjectFlagsType";
TypeFlags[TypeFlags["ObjectFlagsType"] = 3899392] = "ObjectFlagsType";
// 'Narrowable' types are types where narrowing actually narrows.
// This *should* be every type other than null, undefined, void, and never
TypeFlags[TypeFlags["Narrowable"] = 133970943] = "Narrowable";
@ -3528,7 +3528,7 @@ var ts;
/* @internal */
ObjectFlags[ObjectFlags["ContainsObjectLiteral"] = 262144] = "ContainsObjectLiteral";
/* @internal */
ObjectFlags[ObjectFlags["ContainsAnyFunctionType"] = 524288] = "ContainsAnyFunctionType";
ObjectFlags[ObjectFlags["NonInferrableType"] = 524288] = "NonInferrableType";
ObjectFlags[ObjectFlags["ClassOrInterface"] = 3] = "ClassOrInterface";
/* @internal */
ObjectFlags[ObjectFlags["RequiresWidening"] = 393216] = "RequiresWidening";
@ -12604,7 +12604,7 @@ var ts;
}
ts.getClassLikeDeclarationOfSymbol = getClassLikeDeclarationOfSymbol;
function getObjectFlags(type) {
return type.flags & 3768320 /* ObjectFlagsType */ ? type.objectFlags : 0;
return type.flags & 3899392 /* ObjectFlagsType */ ? type.objectFlags : 0;
}
ts.getObjectFlags = getObjectFlags;
function typeHasCallOrConstructSignatures(type, checker) {
@ -31461,10 +31461,10 @@ var ts;
var wildcardType = createIntrinsicType(1 /* Any */, "any");
var errorType = createIntrinsicType(1 /* Any */, "error");
var unknownType = createIntrinsicType(2 /* Unknown */, "unknown");
var undefinedType = createNullableType(32768 /* Undefined */, "undefined", 0);
var undefinedWideningType = strictNullChecks ? undefinedType : createNullableType(32768 /* Undefined */, "undefined", 131072 /* ContainsWideningType */);
var nullType = createNullableType(65536 /* Null */, "null", 0);
var nullWideningType = strictNullChecks ? nullType : createNullableType(65536 /* Null */, "null", 131072 /* ContainsWideningType */);
var undefinedType = createIntrinsicType(32768 /* Undefined */, "undefined");
var undefinedWideningType = strictNullChecks ? undefinedType : createIntrinsicType(32768 /* Undefined */, "undefined", 131072 /* ContainsWideningType */);
var nullType = createIntrinsicType(65536 /* Null */, "null");
var nullWideningType = strictNullChecks ? nullType : createIntrinsicType(65536 /* Null */, "null", 131072 /* ContainsWideningType */);
var stringType = createIntrinsicType(4 /* String */, "string");
var numberType = createIntrinsicType(8 /* Number */, "number");
var bigintType = createIntrinsicType(64 /* BigInt */, "bigint");
@ -31490,6 +31490,7 @@ var ts;
var voidType = createIntrinsicType(16384 /* Void */, "void");
var neverType = createIntrinsicType(131072 /* Never */, "never");
var silentNeverType = createIntrinsicType(131072 /* Never */, "never");
var nonInferrableType = createIntrinsicType(131072 /* Never */, "never", 524288 /* NonInferrableType */);
var implicitNeverType = createIntrinsicType(131072 /* Never */, "never");
var nonPrimitiveType = createIntrinsicType(67108864 /* NonPrimitive */, "object");
var stringNumberSymbolType = getUnionType([stringType, numberType, esSymbolType]);
@ -31506,7 +31507,7 @@ var ts;
var anyFunctionType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
// The anyFunctionType contains the anyFunctionType by definition. The flag is further propagated
// in getPropagatingFlagsOfTypes, and it is checked in inferFromTypes.
anyFunctionType.objectFlags |= 524288 /* ContainsAnyFunctionType */;
anyFunctionType.objectFlags |= 524288 /* NonInferrableType */;
var noConstraintType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
var circularConstraintType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
var resolvingDefaultType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
@ -33608,13 +33609,10 @@ var ts;
result.id = typeCount;
return result;
}
function createIntrinsicType(kind, intrinsicName) {
function createIntrinsicType(kind, intrinsicName, objectFlags) {
if (objectFlags === void 0) { objectFlags = 0; }
var type = createType(kind);
type.intrinsicName = intrinsicName;
return type;
}
function createNullableType(kind, intrinsicName, objectFlags) {
var type = createIntrinsicType(kind, intrinsicName);
type.objectFlags = objectFlags;
return type;
}
@ -40447,7 +40445,7 @@ var ts;
}
function getConditionalTypeWorker(root, mapper, checkType, extendsType, trueType, falseType) {
// Simplifications for types of the form `T extends U ? T : never` and `T extends U ? never : T`.
if (falseType.flags & 131072 /* Never */ && isTypeIdenticalTo(getActualTypeVariable(trueType), getActualTypeVariable(checkType))) {
if (falseType.flags & 131072 /* Never */ && getActualTypeVariable(trueType) === getActualTypeVariable(checkType)) {
if (checkType.flags & 1 /* Any */ || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) { // Always true
return trueType;
}
@ -40455,7 +40453,7 @@ var ts;
return neverType;
}
}
else if (trueType.flags & 131072 /* Never */ && isTypeIdenticalTo(getActualTypeVariable(falseType), getActualTypeVariable(checkType))) {
else if (trueType.flags & 131072 /* Never */ && getActualTypeVariable(falseType) === getActualTypeVariable(checkType)) {
if (!(checkType.flags & 1 /* Any */) && isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) { // Always true
return neverType;
}
@ -44202,7 +44200,7 @@ var ts;
var stringIndexInfo = getIndexInfoOfType(type, 0 /* String */);
var numberIndexInfo = getIndexInfoOfType(type, 1 /* Number */);
var result = createAnonymousType(type.symbol, members, ts.emptyArray, ts.emptyArray, stringIndexInfo && createIndexInfo(getWidenedType(stringIndexInfo.type), stringIndexInfo.isReadonly), numberIndexInfo && createIndexInfo(getWidenedType(numberIndexInfo.type), numberIndexInfo.isReadonly));
result.objectFlags |= (ts.getObjectFlags(type) & 16384 /* JSLiteral */); // Retain js literal flag through widening
result.objectFlags |= (ts.getObjectFlags(type) & (16384 /* JSLiteral */ | 524288 /* NonInferrableType */)); // Retain js literal flag through widening
return result;
}
function getWidenedType(type) {
@ -44503,17 +44501,10 @@ var ts;
return type;
}
function createReverseMappedType(source, target, constraint) {
var properties = getPropertiesOfType(source);
if (properties.length === 0 && !getIndexInfoOfType(source, 0 /* String */)) {
return undefined;
}
// If any property contains context sensitive functions that have been skipped, the source type
// is incomplete and we can't infer a meaningful input type.
for (var _i = 0, properties_3 = properties; _i < properties_3.length; _i++) {
var prop = properties_3[_i];
if (ts.getObjectFlags(getTypeOfSymbol(prop)) & 524288 /* ContainsAnyFunctionType */) {
return undefined;
}
if (ts.getObjectFlags(source) & 524288 /* NonInferrableType */ || getPropertiesOfType(source).length === 0 && !getIndexInfoOfType(source, 0 /* String */)) {
return undefined;
}
// For arrays and tuples we infer new arrays and tuples where the reverse mapping has been
// applied to the element type(s).
@ -44545,16 +44536,16 @@ var ts;
return getTypeFromInference(inference);
}
function getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties) {
var properties, _i, properties_4, targetProp, sourceProp, targetType, sourceType;
var properties, _i, properties_3, targetProp, sourceProp, targetType, sourceType;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
properties = target.flags & 2097152 /* Intersection */ ? getPropertiesOfUnionOrIntersectionType(target) : getPropertiesOfObjectType(target);
_i = 0, properties_4 = properties;
_i = 0, properties_3 = properties;
_a.label = 1;
case 1:
if (!(_i < properties_4.length)) return [3 /*break*/, 6];
targetProp = properties_4[_i];
if (!(_i < properties_3.length)) return [3 /*break*/, 6];
targetProp = properties_3[_i];
if (!(requireOptionalProperties || !(targetProp.flags & 16777216 /* Optional */))) return [3 /*break*/, 5];
sourceProp = getPropertyOfType(source, targetProp.escapedName);
if (!!sourceProp) return [3 /*break*/, 3];
@ -44678,7 +44669,7 @@ var ts;
// not contain anyFunctionType when we come back to this argument for its second round
// of inference. Also, we exclude inferences for silentNeverType (which is used as a wildcard
// when constructing types from type parameters that had no inference candidates).
if (ts.getObjectFlags(source) & 524288 /* ContainsAnyFunctionType */ || source === silentNeverType || (priority & 8 /* ReturnType */ && (source === autoType || source === autoArrayType))) {
if (ts.getObjectFlags(source) & 524288 /* NonInferrableType */ || source === silentNeverType || (priority & 8 /* ReturnType */ && (source === autoType || source === autoArrayType))) {
return;
}
var inference = getInferenceInfoForType(target);
@ -44778,24 +44769,40 @@ var ts;
inferFromTypes(source, target.falseType);
}
else if (target.flags & 3145728 /* UnionOrIntersection */) {
// We infer from types that are not naked type variables first so that inferences we
// make from nested naked type variables and given slightly higher priority by virtue
// of being first in the candidates array.
var typeVariableCount = 0;
for (var _d = 0, _e = target.types; _d < _e.length; _d++) {
var t = _e[_d];
var savePriority = priority;
// Inferences directly to naked type variables are given lower priority as they are
// less specific. For example, when inferring from Promise<string> to T | Promise<T>,
// we want to infer string for T, not Promise<string> | string.
if (getInferenceInfoForType(t)) {
priority |= 1 /* NakedTypeVariable */;
typeVariableCount++;
}
else {
inferFromTypes(source, t);
}
}
// Inferences directly to naked type variables are given lower priority as they are
// less specific. For example, when inferring from Promise<string> to T | Promise<T>,
// we want to infer string for T, not Promise<string> | string. For intersection types
// we only infer to single naked type variables.
if (target.flags & 1048576 /* Union */ ? typeVariableCount !== 0 : typeVariableCount === 1) {
var savePriority = priority;
priority |= 1 /* NakedTypeVariable */;
for (var _f = 0, _g = target.types; _f < _g.length; _f++) {
var t = _g[_f];
if (getInferenceInfoForType(t)) {
inferFromTypes(source, t);
}
}
inferFromTypes(source, t);
priority = savePriority;
}
}
else if (source.flags & 1048576 /* Union */) {
// Source is a union or intersection type, infer from each constituent type
var sourceTypes = source.types;
for (var _f = 0, sourceTypes_3 = sourceTypes; _f < sourceTypes_3.length; _f++) {
var sourceType = sourceTypes_3[_f];
for (var _h = 0, sourceTypes_3 = sourceTypes; _h < sourceTypes_3.length; _h++) {
var sourceType = sourceTypes_3[_h];
inferFromTypes(sourceType, target);
}
}
@ -44974,8 +44981,8 @@ var ts;
}
}
var properties = getPropertiesOfObjectType(target);
for (var _i = 0, properties_5 = properties; _i < properties_5.length; _i++) {
var targetProp = properties_5[_i];
for (var _i = 0, properties_4 = properties; _i < properties_4.length; _i++) {
var targetProp = properties_4[_i];
var sourceProp = getPropertyOfType(source, targetProp.escapedName);
if (sourceProp) {
inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp));
@ -44988,7 +44995,7 @@ var ts;
var sourceLen = sourceSignatures.length;
var targetLen = targetSignatures.length;
var len = sourceLen < targetLen ? sourceLen : targetLen;
var skipParameters = !!(ts.getObjectFlags(source) & 524288 /* ContainsAnyFunctionType */);
var skipParameters = !!(ts.getObjectFlags(source) & 524288 /* NonInferrableType */);
for (var i = 0; i < len; i++) {
inferFromSignature(getBaseSignature(sourceSignatures[sourceLen - len + i]), getBaseSignature(targetSignatures[targetLen - len + i]), skipParameters);
}
@ -50148,7 +50155,7 @@ var ts;
spanArray = ts.createNodeArray(args);
if (hasSpreadArgument && argCount) {
var nextArg = ts.elementAt(args, getSpreadArgumentIndex(args) + 1) || undefined;
spanArray = ts.createNodeArray(args.slice(max > argCount && nextArg ? args.indexOf(nextArg) : max));
spanArray = ts.createNodeArray(args.slice(max > argCount && nextArg ? args.indexOf(nextArg) : Math.min(max, args.length - 1)));
}
}
else {
@ -50569,7 +50576,7 @@ var ts;
// returns a function type, we choose to defer processing. This narrowly permits function composition
// operators to flow inferences through return types, but otherwise processes calls right away. We
// use the resolvingSignature singleton to indicate that we deferred processing. This result will be
// propagated out and eventually turned into silentNeverType (a type that is assignable to anything and
// propagated out and eventually turned into nonInferrableType (a type that is assignable to anything and
// from which we never make inferences).
if (checkMode & 8 /* SkipGenericFunctions */ && !node.typeArguments && callSignatures.some(isGenericFunctionReturningFunction)) {
skippedGenericFunction(node, checkMode);
@ -50992,8 +50999,8 @@ var ts;
var signature = getResolvedSignature(node, /*candidatesOutArray*/ undefined, checkMode);
if (signature === resolvingSignature) {
// CheckMode.SkipGenericFunctions is enabled and this is a call to a generic function that
// returns a function type. We defer checking and return anyFunctionType.
return silentNeverType;
// returns a function type. We defer checking and return nonInferrableType.
return nonInferrableType;
}
if (node.expression.kind === 98 /* SuperKeyword */) {
return voidType;
@ -51732,7 +51739,7 @@ var ts;
var returnType = getReturnTypeFromBody(node, checkMode);
var returnOnlySignature = createSignature(undefined, undefined, undefined, ts.emptyArray, returnType, /*resolvedTypePredicate*/ undefined, 0, /*hasRestParameter*/ false, /*hasLiteralTypes*/ false);
var returnOnlyType = createAnonymousType(node.symbol, emptySymbols, [returnOnlySignature], ts.emptyArray, undefined, undefined);
returnOnlyType.objectFlags |= 524288 /* ContainsAnyFunctionType */;
returnOnlyType.objectFlags |= 524288 /* NonInferrableType */;
return links_1.contextFreeType = returnOnlyType;
}
return anyFunctionType;
@ -52114,8 +52121,8 @@ var ts;
if (strictNullChecks && properties.length === 0) {
return checkNonNullType(sourceType, node);
}
for (var _i = 0, properties_6 = properties; _i < properties_6.length; _i++) {
var p = properties_6[_i];
for (var _i = 0, properties_5 = properties; _i < properties_5.length; _i++) {
var p = properties_5[_i];
checkObjectLiteralDestructuringPropertyAssignment(sourceType, p, properties, rightIsThis);
}
return sourceType;
@ -56473,8 +56480,8 @@ var ts;
for (var _i = 0, baseTypes_2 = baseTypes; _i < baseTypes_2.length; _i++) {
var base = baseTypes_2[_i];
var properties = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType));
for (var _a = 0, properties_7 = properties; _a < properties_7.length; _a++) {
var prop = properties_7[_a];
for (var _a = 0, properties_6 = properties; _a < properties_6.length; _a++) {
var prop = properties_6[_a];
var existing = seen.get(prop.escapedName);
if (!existing) {
seen.set(prop.escapedName, { prop: prop, containingType: base });
@ -58921,7 +58928,7 @@ var ts;
// autoArrayType is used as a marker, so even if global Array type is not defined, it needs to be a unique type
autoArrayType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
}
globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", /*arity*/ 1);
globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", /*arity*/ 1) || globalArrayType;
anyReadonlyArrayType = globalReadonlyArrayType ? createTypeFromGenericGlobalType(globalReadonlyArrayType, [anyType]) : anyArrayType;
globalThisType = getGlobalTypeOrUndefined("ThisType", /*arity*/ 1);
if (augmentations) {
@ -63744,7 +63751,7 @@ var ts;
function createExpressionForAccessorDeclaration(properties, property, receiver, multiLine) {
var _a = ts.getAllAccessorDeclarations(properties, property), firstAccessor = _a.firstAccessor, getAccessor = _a.getAccessor, setAccessor = _a.setAccessor;
if (property === firstAccessor) {
var properties_8 = [];
var properties_7 = [];
if (getAccessor) {
var getterFunction = ts.createFunctionExpression(getAccessor.modifiers,
/*asteriskToken*/ undefined,
@ -63755,7 +63762,7 @@ var ts;
ts.setTextRange(getterFunction, getAccessor);
ts.setOriginalNode(getterFunction, getAccessor);
var getter = ts.createPropertyAssignment("get", getterFunction);
properties_8.push(getter);
properties_7.push(getter);
}
if (setAccessor) {
var setterFunction = ts.createFunctionExpression(setAccessor.modifiers,
@ -63767,15 +63774,15 @@ var ts;
ts.setTextRange(setterFunction, setAccessor);
ts.setOriginalNode(setterFunction, setAccessor);
var setter = ts.createPropertyAssignment("set", setterFunction);
properties_8.push(setter);
properties_7.push(setter);
}
properties_8.push(ts.createPropertyAssignment("enumerable", ts.createTrue()));
properties_8.push(ts.createPropertyAssignment("configurable", ts.createTrue()));
properties_7.push(ts.createPropertyAssignment("enumerable", ts.createTrue()));
properties_7.push(ts.createPropertyAssignment("configurable", ts.createTrue()));
var expression = ts.setTextRange(ts.createCall(ts.createPropertyAccess(ts.createIdentifier("Object"), "defineProperty"),
/*typeArguments*/ undefined, [
receiver,
createExpressionForPropertyName(property.name),
ts.createObjectLiteral(properties_8, multiLine)
ts.createObjectLiteral(properties_7, multiLine)
]),
/*location*/ firstAccessor);
return ts.aggregateTransformFlags(expression);
@ -68259,8 +68266,8 @@ var ts;
* @param receiver The receiver on which each property should be assigned.
*/
function addInitializedPropertyStatements(statements, properties, receiver) {
for (var _i = 0, properties_9 = properties; _i < properties_9.length; _i++) {
var property = properties_9[_i];
for (var _i = 0, properties_8 = properties; _i < properties_8.length; _i++) {
var property = properties_8[_i];
var statement = ts.createExpressionStatement(transformInitializedProperty(property, receiver));
ts.setSourceMapRange(statement, ts.moveRangePastModifiers(property));
ts.setCommentRange(statement, property);
@ -68276,8 +68283,8 @@ var ts;
*/
function generateInitializedPropertyExpressions(properties, receiver) {
var expressions = [];
for (var _i = 0, properties_10 = properties; _i < properties_10.length; _i++) {
var property = properties_10[_i];
for (var _i = 0, properties_9 = properties; _i < properties_9.length; _i++) {
var property = properties_9[_i];
var expression = transformInitializedProperty(property, receiver);
ts.startOnNewLine(expression);
ts.setSourceMapRange(expression, ts.moveRangePastModifiers(property));

View File

@ -75,7 +75,7 @@ var ts;
// If changing the text in this section, be sure to test `configureNightly` too.
ts.versionMajorMinor = "3.4";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".3";
ts.version = ts.versionMajorMinor + ".4";
})(ts || (ts = {}));
(function (ts) {
/* @internal */
@ -3480,7 +3480,7 @@ var ts;
TypeFlags[TypeFlags["Instantiable"] = 63176704] = "Instantiable";
TypeFlags[TypeFlags["StructuredOrInstantiable"] = 66846720] = "StructuredOrInstantiable";
/* @internal */
TypeFlags[TypeFlags["ObjectFlagsType"] = 3768320] = "ObjectFlagsType";
TypeFlags[TypeFlags["ObjectFlagsType"] = 3899392] = "ObjectFlagsType";
// 'Narrowable' types are types where narrowing actually narrows.
// This *should* be every type other than null, undefined, void, and never
TypeFlags[TypeFlags["Narrowable"] = 133970943] = "Narrowable";
@ -3528,7 +3528,7 @@ var ts;
/* @internal */
ObjectFlags[ObjectFlags["ContainsObjectLiteral"] = 262144] = "ContainsObjectLiteral";
/* @internal */
ObjectFlags[ObjectFlags["ContainsAnyFunctionType"] = 524288] = "ContainsAnyFunctionType";
ObjectFlags[ObjectFlags["NonInferrableType"] = 524288] = "NonInferrableType";
ObjectFlags[ObjectFlags["ClassOrInterface"] = 3] = "ClassOrInterface";
/* @internal */
ObjectFlags[ObjectFlags["RequiresWidening"] = 393216] = "RequiresWidening";
@ -12604,7 +12604,7 @@ var ts;
}
ts.getClassLikeDeclarationOfSymbol = getClassLikeDeclarationOfSymbol;
function getObjectFlags(type) {
return type.flags & 3768320 /* ObjectFlagsType */ ? type.objectFlags : 0;
return type.flags & 3899392 /* ObjectFlagsType */ ? type.objectFlags : 0;
}
ts.getObjectFlags = getObjectFlags;
function typeHasCallOrConstructSignatures(type, checker) {
@ -31461,10 +31461,10 @@ var ts;
var wildcardType = createIntrinsicType(1 /* Any */, "any");
var errorType = createIntrinsicType(1 /* Any */, "error");
var unknownType = createIntrinsicType(2 /* Unknown */, "unknown");
var undefinedType = createNullableType(32768 /* Undefined */, "undefined", 0);
var undefinedWideningType = strictNullChecks ? undefinedType : createNullableType(32768 /* Undefined */, "undefined", 131072 /* ContainsWideningType */);
var nullType = createNullableType(65536 /* Null */, "null", 0);
var nullWideningType = strictNullChecks ? nullType : createNullableType(65536 /* Null */, "null", 131072 /* ContainsWideningType */);
var undefinedType = createIntrinsicType(32768 /* Undefined */, "undefined");
var undefinedWideningType = strictNullChecks ? undefinedType : createIntrinsicType(32768 /* Undefined */, "undefined", 131072 /* ContainsWideningType */);
var nullType = createIntrinsicType(65536 /* Null */, "null");
var nullWideningType = strictNullChecks ? nullType : createIntrinsicType(65536 /* Null */, "null", 131072 /* ContainsWideningType */);
var stringType = createIntrinsicType(4 /* String */, "string");
var numberType = createIntrinsicType(8 /* Number */, "number");
var bigintType = createIntrinsicType(64 /* BigInt */, "bigint");
@ -31490,6 +31490,7 @@ var ts;
var voidType = createIntrinsicType(16384 /* Void */, "void");
var neverType = createIntrinsicType(131072 /* Never */, "never");
var silentNeverType = createIntrinsicType(131072 /* Never */, "never");
var nonInferrableType = createIntrinsicType(131072 /* Never */, "never", 524288 /* NonInferrableType */);
var implicitNeverType = createIntrinsicType(131072 /* Never */, "never");
var nonPrimitiveType = createIntrinsicType(67108864 /* NonPrimitive */, "object");
var stringNumberSymbolType = getUnionType([stringType, numberType, esSymbolType]);
@ -31506,7 +31507,7 @@ var ts;
var anyFunctionType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
// The anyFunctionType contains the anyFunctionType by definition. The flag is further propagated
// in getPropagatingFlagsOfTypes, and it is checked in inferFromTypes.
anyFunctionType.objectFlags |= 524288 /* ContainsAnyFunctionType */;
anyFunctionType.objectFlags |= 524288 /* NonInferrableType */;
var noConstraintType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
var circularConstraintType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
var resolvingDefaultType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
@ -33608,13 +33609,10 @@ var ts;
result.id = typeCount;
return result;
}
function createIntrinsicType(kind, intrinsicName) {
function createIntrinsicType(kind, intrinsicName, objectFlags) {
if (objectFlags === void 0) { objectFlags = 0; }
var type = createType(kind);
type.intrinsicName = intrinsicName;
return type;
}
function createNullableType(kind, intrinsicName, objectFlags) {
var type = createIntrinsicType(kind, intrinsicName);
type.objectFlags = objectFlags;
return type;
}
@ -40447,7 +40445,7 @@ var ts;
}
function getConditionalTypeWorker(root, mapper, checkType, extendsType, trueType, falseType) {
// Simplifications for types of the form `T extends U ? T : never` and `T extends U ? never : T`.
if (falseType.flags & 131072 /* Never */ && isTypeIdenticalTo(getActualTypeVariable(trueType), getActualTypeVariable(checkType))) {
if (falseType.flags & 131072 /* Never */ && getActualTypeVariable(trueType) === getActualTypeVariable(checkType)) {
if (checkType.flags & 1 /* Any */ || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) { // Always true
return trueType;
}
@ -40455,7 +40453,7 @@ var ts;
return neverType;
}
}
else if (trueType.flags & 131072 /* Never */ && isTypeIdenticalTo(getActualTypeVariable(falseType), getActualTypeVariable(checkType))) {
else if (trueType.flags & 131072 /* Never */ && getActualTypeVariable(falseType) === getActualTypeVariable(checkType)) {
if (!(checkType.flags & 1 /* Any */) && isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) { // Always true
return neverType;
}
@ -44202,7 +44200,7 @@ var ts;
var stringIndexInfo = getIndexInfoOfType(type, 0 /* String */);
var numberIndexInfo = getIndexInfoOfType(type, 1 /* Number */);
var result = createAnonymousType(type.symbol, members, ts.emptyArray, ts.emptyArray, stringIndexInfo && createIndexInfo(getWidenedType(stringIndexInfo.type), stringIndexInfo.isReadonly), numberIndexInfo && createIndexInfo(getWidenedType(numberIndexInfo.type), numberIndexInfo.isReadonly));
result.objectFlags |= (ts.getObjectFlags(type) & 16384 /* JSLiteral */); // Retain js literal flag through widening
result.objectFlags |= (ts.getObjectFlags(type) & (16384 /* JSLiteral */ | 524288 /* NonInferrableType */)); // Retain js literal flag through widening
return result;
}
function getWidenedType(type) {
@ -44503,17 +44501,10 @@ var ts;
return type;
}
function createReverseMappedType(source, target, constraint) {
var properties = getPropertiesOfType(source);
if (properties.length === 0 && !getIndexInfoOfType(source, 0 /* String */)) {
return undefined;
}
// If any property contains context sensitive functions that have been skipped, the source type
// is incomplete and we can't infer a meaningful input type.
for (var _i = 0, properties_3 = properties; _i < properties_3.length; _i++) {
var prop = properties_3[_i];
if (ts.getObjectFlags(getTypeOfSymbol(prop)) & 524288 /* ContainsAnyFunctionType */) {
return undefined;
}
if (ts.getObjectFlags(source) & 524288 /* NonInferrableType */ || getPropertiesOfType(source).length === 0 && !getIndexInfoOfType(source, 0 /* String */)) {
return undefined;
}
// For arrays and tuples we infer new arrays and tuples where the reverse mapping has been
// applied to the element type(s).
@ -44545,16 +44536,16 @@ var ts;
return getTypeFromInference(inference);
}
function getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties) {
var properties, _i, properties_4, targetProp, sourceProp, targetType, sourceType;
var properties, _i, properties_3, targetProp, sourceProp, targetType, sourceType;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
properties = target.flags & 2097152 /* Intersection */ ? getPropertiesOfUnionOrIntersectionType(target) : getPropertiesOfObjectType(target);
_i = 0, properties_4 = properties;
_i = 0, properties_3 = properties;
_a.label = 1;
case 1:
if (!(_i < properties_4.length)) return [3 /*break*/, 6];
targetProp = properties_4[_i];
if (!(_i < properties_3.length)) return [3 /*break*/, 6];
targetProp = properties_3[_i];
if (!(requireOptionalProperties || !(targetProp.flags & 16777216 /* Optional */))) return [3 /*break*/, 5];
sourceProp = getPropertyOfType(source, targetProp.escapedName);
if (!!sourceProp) return [3 /*break*/, 3];
@ -44678,7 +44669,7 @@ var ts;
// not contain anyFunctionType when we come back to this argument for its second round
// of inference. Also, we exclude inferences for silentNeverType (which is used as a wildcard
// when constructing types from type parameters that had no inference candidates).
if (ts.getObjectFlags(source) & 524288 /* ContainsAnyFunctionType */ || source === silentNeverType || (priority & 8 /* ReturnType */ && (source === autoType || source === autoArrayType))) {
if (ts.getObjectFlags(source) & 524288 /* NonInferrableType */ || source === silentNeverType || (priority & 8 /* ReturnType */ && (source === autoType || source === autoArrayType))) {
return;
}
var inference = getInferenceInfoForType(target);
@ -44778,24 +44769,40 @@ var ts;
inferFromTypes(source, target.falseType);
}
else if (target.flags & 3145728 /* UnionOrIntersection */) {
// We infer from types that are not naked type variables first so that inferences we
// make from nested naked type variables and given slightly higher priority by virtue
// of being first in the candidates array.
var typeVariableCount = 0;
for (var _d = 0, _e = target.types; _d < _e.length; _d++) {
var t = _e[_d];
var savePriority = priority;
// Inferences directly to naked type variables are given lower priority as they are
// less specific. For example, when inferring from Promise<string> to T | Promise<T>,
// we want to infer string for T, not Promise<string> | string.
if (getInferenceInfoForType(t)) {
priority |= 1 /* NakedTypeVariable */;
typeVariableCount++;
}
else {
inferFromTypes(source, t);
}
}
// Inferences directly to naked type variables are given lower priority as they are
// less specific. For example, when inferring from Promise<string> to T | Promise<T>,
// we want to infer string for T, not Promise<string> | string. For intersection types
// we only infer to single naked type variables.
if (target.flags & 1048576 /* Union */ ? typeVariableCount !== 0 : typeVariableCount === 1) {
var savePriority = priority;
priority |= 1 /* NakedTypeVariable */;
for (var _f = 0, _g = target.types; _f < _g.length; _f++) {
var t = _g[_f];
if (getInferenceInfoForType(t)) {
inferFromTypes(source, t);
}
}
inferFromTypes(source, t);
priority = savePriority;
}
}
else if (source.flags & 1048576 /* Union */) {
// Source is a union or intersection type, infer from each constituent type
var sourceTypes = source.types;
for (var _f = 0, sourceTypes_3 = sourceTypes; _f < sourceTypes_3.length; _f++) {
var sourceType = sourceTypes_3[_f];
for (var _h = 0, sourceTypes_3 = sourceTypes; _h < sourceTypes_3.length; _h++) {
var sourceType = sourceTypes_3[_h];
inferFromTypes(sourceType, target);
}
}
@ -44974,8 +44981,8 @@ var ts;
}
}
var properties = getPropertiesOfObjectType(target);
for (var _i = 0, properties_5 = properties; _i < properties_5.length; _i++) {
var targetProp = properties_5[_i];
for (var _i = 0, properties_4 = properties; _i < properties_4.length; _i++) {
var targetProp = properties_4[_i];
var sourceProp = getPropertyOfType(source, targetProp.escapedName);
if (sourceProp) {
inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp));
@ -44988,7 +44995,7 @@ var ts;
var sourceLen = sourceSignatures.length;
var targetLen = targetSignatures.length;
var len = sourceLen < targetLen ? sourceLen : targetLen;
var skipParameters = !!(ts.getObjectFlags(source) & 524288 /* ContainsAnyFunctionType */);
var skipParameters = !!(ts.getObjectFlags(source) & 524288 /* NonInferrableType */);
for (var i = 0; i < len; i++) {
inferFromSignature(getBaseSignature(sourceSignatures[sourceLen - len + i]), getBaseSignature(targetSignatures[targetLen - len + i]), skipParameters);
}
@ -50148,7 +50155,7 @@ var ts;
spanArray = ts.createNodeArray(args);
if (hasSpreadArgument && argCount) {
var nextArg = ts.elementAt(args, getSpreadArgumentIndex(args) + 1) || undefined;
spanArray = ts.createNodeArray(args.slice(max > argCount && nextArg ? args.indexOf(nextArg) : max));
spanArray = ts.createNodeArray(args.slice(max > argCount && nextArg ? args.indexOf(nextArg) : Math.min(max, args.length - 1)));
}
}
else {
@ -50569,7 +50576,7 @@ var ts;
// returns a function type, we choose to defer processing. This narrowly permits function composition
// operators to flow inferences through return types, but otherwise processes calls right away. We
// use the resolvingSignature singleton to indicate that we deferred processing. This result will be
// propagated out and eventually turned into silentNeverType (a type that is assignable to anything and
// propagated out and eventually turned into nonInferrableType (a type that is assignable to anything and
// from which we never make inferences).
if (checkMode & 8 /* SkipGenericFunctions */ && !node.typeArguments && callSignatures.some(isGenericFunctionReturningFunction)) {
skippedGenericFunction(node, checkMode);
@ -50992,8 +50999,8 @@ var ts;
var signature = getResolvedSignature(node, /*candidatesOutArray*/ undefined, checkMode);
if (signature === resolvingSignature) {
// CheckMode.SkipGenericFunctions is enabled and this is a call to a generic function that
// returns a function type. We defer checking and return anyFunctionType.
return silentNeverType;
// returns a function type. We defer checking and return nonInferrableType.
return nonInferrableType;
}
if (node.expression.kind === 98 /* SuperKeyword */) {
return voidType;
@ -51732,7 +51739,7 @@ var ts;
var returnType = getReturnTypeFromBody(node, checkMode);
var returnOnlySignature = createSignature(undefined, undefined, undefined, ts.emptyArray, returnType, /*resolvedTypePredicate*/ undefined, 0, /*hasRestParameter*/ false, /*hasLiteralTypes*/ false);
var returnOnlyType = createAnonymousType(node.symbol, emptySymbols, [returnOnlySignature], ts.emptyArray, undefined, undefined);
returnOnlyType.objectFlags |= 524288 /* ContainsAnyFunctionType */;
returnOnlyType.objectFlags |= 524288 /* NonInferrableType */;
return links_1.contextFreeType = returnOnlyType;
}
return anyFunctionType;
@ -52114,8 +52121,8 @@ var ts;
if (strictNullChecks && properties.length === 0) {
return checkNonNullType(sourceType, node);
}
for (var _i = 0, properties_6 = properties; _i < properties_6.length; _i++) {
var p = properties_6[_i];
for (var _i = 0, properties_5 = properties; _i < properties_5.length; _i++) {
var p = properties_5[_i];
checkObjectLiteralDestructuringPropertyAssignment(sourceType, p, properties, rightIsThis);
}
return sourceType;
@ -56473,8 +56480,8 @@ var ts;
for (var _i = 0, baseTypes_2 = baseTypes; _i < baseTypes_2.length; _i++) {
var base = baseTypes_2[_i];
var properties = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType));
for (var _a = 0, properties_7 = properties; _a < properties_7.length; _a++) {
var prop = properties_7[_a];
for (var _a = 0, properties_6 = properties; _a < properties_6.length; _a++) {
var prop = properties_6[_a];
var existing = seen.get(prop.escapedName);
if (!existing) {
seen.set(prop.escapedName, { prop: prop, containingType: base });
@ -58921,7 +58928,7 @@ var ts;
// autoArrayType is used as a marker, so even if global Array type is not defined, it needs to be a unique type
autoArrayType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
}
globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", /*arity*/ 1);
globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", /*arity*/ 1) || globalArrayType;
anyReadonlyArrayType = globalReadonlyArrayType ? createTypeFromGenericGlobalType(globalReadonlyArrayType, [anyType]) : anyArrayType;
globalThisType = getGlobalTypeOrUndefined("ThisType", /*arity*/ 1);
if (augmentations) {
@ -63744,7 +63751,7 @@ var ts;
function createExpressionForAccessorDeclaration(properties, property, receiver, multiLine) {
var _a = ts.getAllAccessorDeclarations(properties, property), firstAccessor = _a.firstAccessor, getAccessor = _a.getAccessor, setAccessor = _a.setAccessor;
if (property === firstAccessor) {
var properties_8 = [];
var properties_7 = [];
if (getAccessor) {
var getterFunction = ts.createFunctionExpression(getAccessor.modifiers,
/*asteriskToken*/ undefined,
@ -63755,7 +63762,7 @@ var ts;
ts.setTextRange(getterFunction, getAccessor);
ts.setOriginalNode(getterFunction, getAccessor);
var getter = ts.createPropertyAssignment("get", getterFunction);
properties_8.push(getter);
properties_7.push(getter);
}
if (setAccessor) {
var setterFunction = ts.createFunctionExpression(setAccessor.modifiers,
@ -63767,15 +63774,15 @@ var ts;
ts.setTextRange(setterFunction, setAccessor);
ts.setOriginalNode(setterFunction, setAccessor);
var setter = ts.createPropertyAssignment("set", setterFunction);
properties_8.push(setter);
properties_7.push(setter);
}
properties_8.push(ts.createPropertyAssignment("enumerable", ts.createTrue()));
properties_8.push(ts.createPropertyAssignment("configurable", ts.createTrue()));
properties_7.push(ts.createPropertyAssignment("enumerable", ts.createTrue()));
properties_7.push(ts.createPropertyAssignment("configurable", ts.createTrue()));
var expression = ts.setTextRange(ts.createCall(ts.createPropertyAccess(ts.createIdentifier("Object"), "defineProperty"),
/*typeArguments*/ undefined, [
receiver,
createExpressionForPropertyName(property.name),
ts.createObjectLiteral(properties_8, multiLine)
ts.createObjectLiteral(properties_7, multiLine)
]),
/*location*/ firstAccessor);
return ts.aggregateTransformFlags(expression);
@ -68259,8 +68266,8 @@ var ts;
* @param receiver The receiver on which each property should be assigned.
*/
function addInitializedPropertyStatements(statements, properties, receiver) {
for (var _i = 0, properties_9 = properties; _i < properties_9.length; _i++) {
var property = properties_9[_i];
for (var _i = 0, properties_8 = properties; _i < properties_8.length; _i++) {
var property = properties_8[_i];
var statement = ts.createExpressionStatement(transformInitializedProperty(property, receiver));
ts.setSourceMapRange(statement, ts.moveRangePastModifiers(property));
ts.setCommentRange(statement, property);
@ -68276,8 +68283,8 @@ var ts;
*/
function generateInitializedPropertyExpressions(properties, receiver) {
var expressions = [];
for (var _i = 0, properties_10 = properties; _i < properties_10.length; _i++) {
var property = properties_10[_i];
for (var _i = 0, properties_9 = properties; _i < properties_9.length; _i++) {
var property = properties_9[_i];
var expression = transformInitializedProperty(property, receiver);
ts.startOnNewLine(expression);
ts.setSourceMapRange(expression, ts.moveRangePastModifiers(property));

View File

@ -76,7 +76,7 @@ var ts;
// If changing the text in this section, be sure to test `configureNightly` too.
ts.versionMajorMinor = "3.4";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".3";
ts.version = ts.versionMajorMinor + ".4";
})(ts || (ts = {}));
(function (ts) {
/* @internal */
@ -3481,7 +3481,7 @@ var ts;
TypeFlags[TypeFlags["Instantiable"] = 63176704] = "Instantiable";
TypeFlags[TypeFlags["StructuredOrInstantiable"] = 66846720] = "StructuredOrInstantiable";
/* @internal */
TypeFlags[TypeFlags["ObjectFlagsType"] = 3768320] = "ObjectFlagsType";
TypeFlags[TypeFlags["ObjectFlagsType"] = 3899392] = "ObjectFlagsType";
// 'Narrowable' types are types where narrowing actually narrows.
// This *should* be every type other than null, undefined, void, and never
TypeFlags[TypeFlags["Narrowable"] = 133970943] = "Narrowable";
@ -3529,7 +3529,7 @@ var ts;
/* @internal */
ObjectFlags[ObjectFlags["ContainsObjectLiteral"] = 262144] = "ContainsObjectLiteral";
/* @internal */
ObjectFlags[ObjectFlags["ContainsAnyFunctionType"] = 524288] = "ContainsAnyFunctionType";
ObjectFlags[ObjectFlags["NonInferrableType"] = 524288] = "NonInferrableType";
ObjectFlags[ObjectFlags["ClassOrInterface"] = 3] = "ClassOrInterface";
/* @internal */
ObjectFlags[ObjectFlags["RequiresWidening"] = 393216] = "RequiresWidening";
@ -12605,7 +12605,7 @@ var ts;
}
ts.getClassLikeDeclarationOfSymbol = getClassLikeDeclarationOfSymbol;
function getObjectFlags(type) {
return type.flags & 3768320 /* ObjectFlagsType */ ? type.objectFlags : 0;
return type.flags & 3899392 /* ObjectFlagsType */ ? type.objectFlags : 0;
}
ts.getObjectFlags = getObjectFlags;
function typeHasCallOrConstructSignatures(type, checker) {
@ -31462,10 +31462,10 @@ var ts;
var wildcardType = createIntrinsicType(1 /* Any */, "any");
var errorType = createIntrinsicType(1 /* Any */, "error");
var unknownType = createIntrinsicType(2 /* Unknown */, "unknown");
var undefinedType = createNullableType(32768 /* Undefined */, "undefined", 0);
var undefinedWideningType = strictNullChecks ? undefinedType : createNullableType(32768 /* Undefined */, "undefined", 131072 /* ContainsWideningType */);
var nullType = createNullableType(65536 /* Null */, "null", 0);
var nullWideningType = strictNullChecks ? nullType : createNullableType(65536 /* Null */, "null", 131072 /* ContainsWideningType */);
var undefinedType = createIntrinsicType(32768 /* Undefined */, "undefined");
var undefinedWideningType = strictNullChecks ? undefinedType : createIntrinsicType(32768 /* Undefined */, "undefined", 131072 /* ContainsWideningType */);
var nullType = createIntrinsicType(65536 /* Null */, "null");
var nullWideningType = strictNullChecks ? nullType : createIntrinsicType(65536 /* Null */, "null", 131072 /* ContainsWideningType */);
var stringType = createIntrinsicType(4 /* String */, "string");
var numberType = createIntrinsicType(8 /* Number */, "number");
var bigintType = createIntrinsicType(64 /* BigInt */, "bigint");
@ -31491,6 +31491,7 @@ var ts;
var voidType = createIntrinsicType(16384 /* Void */, "void");
var neverType = createIntrinsicType(131072 /* Never */, "never");
var silentNeverType = createIntrinsicType(131072 /* Never */, "never");
var nonInferrableType = createIntrinsicType(131072 /* Never */, "never", 524288 /* NonInferrableType */);
var implicitNeverType = createIntrinsicType(131072 /* Never */, "never");
var nonPrimitiveType = createIntrinsicType(67108864 /* NonPrimitive */, "object");
var stringNumberSymbolType = getUnionType([stringType, numberType, esSymbolType]);
@ -31507,7 +31508,7 @@ var ts;
var anyFunctionType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
// The anyFunctionType contains the anyFunctionType by definition. The flag is further propagated
// in getPropagatingFlagsOfTypes, and it is checked in inferFromTypes.
anyFunctionType.objectFlags |= 524288 /* ContainsAnyFunctionType */;
anyFunctionType.objectFlags |= 524288 /* NonInferrableType */;
var noConstraintType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
var circularConstraintType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
var resolvingDefaultType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
@ -33609,13 +33610,10 @@ var ts;
result.id = typeCount;
return result;
}
function createIntrinsicType(kind, intrinsicName) {
function createIntrinsicType(kind, intrinsicName, objectFlags) {
if (objectFlags === void 0) { objectFlags = 0; }
var type = createType(kind);
type.intrinsicName = intrinsicName;
return type;
}
function createNullableType(kind, intrinsicName, objectFlags) {
var type = createIntrinsicType(kind, intrinsicName);
type.objectFlags = objectFlags;
return type;
}
@ -40448,7 +40446,7 @@ var ts;
}
function getConditionalTypeWorker(root, mapper, checkType, extendsType, trueType, falseType) {
// Simplifications for types of the form `T extends U ? T : never` and `T extends U ? never : T`.
if (falseType.flags & 131072 /* Never */ && isTypeIdenticalTo(getActualTypeVariable(trueType), getActualTypeVariable(checkType))) {
if (falseType.flags & 131072 /* Never */ && getActualTypeVariable(trueType) === getActualTypeVariable(checkType)) {
if (checkType.flags & 1 /* Any */ || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) { // Always true
return trueType;
}
@ -40456,7 +40454,7 @@ var ts;
return neverType;
}
}
else if (trueType.flags & 131072 /* Never */ && isTypeIdenticalTo(getActualTypeVariable(falseType), getActualTypeVariable(checkType))) {
else if (trueType.flags & 131072 /* Never */ && getActualTypeVariable(falseType) === getActualTypeVariable(checkType)) {
if (!(checkType.flags & 1 /* Any */) && isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) { // Always true
return neverType;
}
@ -44203,7 +44201,7 @@ var ts;
var stringIndexInfo = getIndexInfoOfType(type, 0 /* String */);
var numberIndexInfo = getIndexInfoOfType(type, 1 /* Number */);
var result = createAnonymousType(type.symbol, members, ts.emptyArray, ts.emptyArray, stringIndexInfo && createIndexInfo(getWidenedType(stringIndexInfo.type), stringIndexInfo.isReadonly), numberIndexInfo && createIndexInfo(getWidenedType(numberIndexInfo.type), numberIndexInfo.isReadonly));
result.objectFlags |= (ts.getObjectFlags(type) & 16384 /* JSLiteral */); // Retain js literal flag through widening
result.objectFlags |= (ts.getObjectFlags(type) & (16384 /* JSLiteral */ | 524288 /* NonInferrableType */)); // Retain js literal flag through widening
return result;
}
function getWidenedType(type) {
@ -44504,17 +44502,10 @@ var ts;
return type;
}
function createReverseMappedType(source, target, constraint) {
var properties = getPropertiesOfType(source);
if (properties.length === 0 && !getIndexInfoOfType(source, 0 /* String */)) {
return undefined;
}
// If any property contains context sensitive functions that have been skipped, the source type
// is incomplete and we can't infer a meaningful input type.
for (var _i = 0, properties_3 = properties; _i < properties_3.length; _i++) {
var prop = properties_3[_i];
if (ts.getObjectFlags(getTypeOfSymbol(prop)) & 524288 /* ContainsAnyFunctionType */) {
return undefined;
}
if (ts.getObjectFlags(source) & 524288 /* NonInferrableType */ || getPropertiesOfType(source).length === 0 && !getIndexInfoOfType(source, 0 /* String */)) {
return undefined;
}
// For arrays and tuples we infer new arrays and tuples where the reverse mapping has been
// applied to the element type(s).
@ -44546,16 +44537,16 @@ var ts;
return getTypeFromInference(inference);
}
function getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties) {
var properties, _i, properties_4, targetProp, sourceProp, targetType, sourceType;
var properties, _i, properties_3, targetProp, sourceProp, targetType, sourceType;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
properties = target.flags & 2097152 /* Intersection */ ? getPropertiesOfUnionOrIntersectionType(target) : getPropertiesOfObjectType(target);
_i = 0, properties_4 = properties;
_i = 0, properties_3 = properties;
_a.label = 1;
case 1:
if (!(_i < properties_4.length)) return [3 /*break*/, 6];
targetProp = properties_4[_i];
if (!(_i < properties_3.length)) return [3 /*break*/, 6];
targetProp = properties_3[_i];
if (!(requireOptionalProperties || !(targetProp.flags & 16777216 /* Optional */))) return [3 /*break*/, 5];
sourceProp = getPropertyOfType(source, targetProp.escapedName);
if (!!sourceProp) return [3 /*break*/, 3];
@ -44679,7 +44670,7 @@ var ts;
// not contain anyFunctionType when we come back to this argument for its second round
// of inference. Also, we exclude inferences for silentNeverType (which is used as a wildcard
// when constructing types from type parameters that had no inference candidates).
if (ts.getObjectFlags(source) & 524288 /* ContainsAnyFunctionType */ || source === silentNeverType || (priority & 8 /* ReturnType */ && (source === autoType || source === autoArrayType))) {
if (ts.getObjectFlags(source) & 524288 /* NonInferrableType */ || source === silentNeverType || (priority & 8 /* ReturnType */ && (source === autoType || source === autoArrayType))) {
return;
}
var inference = getInferenceInfoForType(target);
@ -44779,24 +44770,40 @@ var ts;
inferFromTypes(source, target.falseType);
}
else if (target.flags & 3145728 /* UnionOrIntersection */) {
// We infer from types that are not naked type variables first so that inferences we
// make from nested naked type variables and given slightly higher priority by virtue
// of being first in the candidates array.
var typeVariableCount = 0;
for (var _d = 0, _e = target.types; _d < _e.length; _d++) {
var t = _e[_d];
var savePriority = priority;
// Inferences directly to naked type variables are given lower priority as they are
// less specific. For example, when inferring from Promise<string> to T | Promise<T>,
// we want to infer string for T, not Promise<string> | string.
if (getInferenceInfoForType(t)) {
priority |= 1 /* NakedTypeVariable */;
typeVariableCount++;
}
else {
inferFromTypes(source, t);
}
}
// Inferences directly to naked type variables are given lower priority as they are
// less specific. For example, when inferring from Promise<string> to T | Promise<T>,
// we want to infer string for T, not Promise<string> | string. For intersection types
// we only infer to single naked type variables.
if (target.flags & 1048576 /* Union */ ? typeVariableCount !== 0 : typeVariableCount === 1) {
var savePriority = priority;
priority |= 1 /* NakedTypeVariable */;
for (var _f = 0, _g = target.types; _f < _g.length; _f++) {
var t = _g[_f];
if (getInferenceInfoForType(t)) {
inferFromTypes(source, t);
}
}
inferFromTypes(source, t);
priority = savePriority;
}
}
else if (source.flags & 1048576 /* Union */) {
// Source is a union or intersection type, infer from each constituent type
var sourceTypes = source.types;
for (var _f = 0, sourceTypes_3 = sourceTypes; _f < sourceTypes_3.length; _f++) {
var sourceType = sourceTypes_3[_f];
for (var _h = 0, sourceTypes_3 = sourceTypes; _h < sourceTypes_3.length; _h++) {
var sourceType = sourceTypes_3[_h];
inferFromTypes(sourceType, target);
}
}
@ -44975,8 +44982,8 @@ var ts;
}
}
var properties = getPropertiesOfObjectType(target);
for (var _i = 0, properties_5 = properties; _i < properties_5.length; _i++) {
var targetProp = properties_5[_i];
for (var _i = 0, properties_4 = properties; _i < properties_4.length; _i++) {
var targetProp = properties_4[_i];
var sourceProp = getPropertyOfType(source, targetProp.escapedName);
if (sourceProp) {
inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp));
@ -44989,7 +44996,7 @@ var ts;
var sourceLen = sourceSignatures.length;
var targetLen = targetSignatures.length;
var len = sourceLen < targetLen ? sourceLen : targetLen;
var skipParameters = !!(ts.getObjectFlags(source) & 524288 /* ContainsAnyFunctionType */);
var skipParameters = !!(ts.getObjectFlags(source) & 524288 /* NonInferrableType */);
for (var i = 0; i < len; i++) {
inferFromSignature(getBaseSignature(sourceSignatures[sourceLen - len + i]), getBaseSignature(targetSignatures[targetLen - len + i]), skipParameters);
}
@ -50149,7 +50156,7 @@ var ts;
spanArray = ts.createNodeArray(args);
if (hasSpreadArgument && argCount) {
var nextArg = ts.elementAt(args, getSpreadArgumentIndex(args) + 1) || undefined;
spanArray = ts.createNodeArray(args.slice(max > argCount && nextArg ? args.indexOf(nextArg) : max));
spanArray = ts.createNodeArray(args.slice(max > argCount && nextArg ? args.indexOf(nextArg) : Math.min(max, args.length - 1)));
}
}
else {
@ -50570,7 +50577,7 @@ var ts;
// returns a function type, we choose to defer processing. This narrowly permits function composition
// operators to flow inferences through return types, but otherwise processes calls right away. We
// use the resolvingSignature singleton to indicate that we deferred processing. This result will be
// propagated out and eventually turned into silentNeverType (a type that is assignable to anything and
// propagated out and eventually turned into nonInferrableType (a type that is assignable to anything and
// from which we never make inferences).
if (checkMode & 8 /* SkipGenericFunctions */ && !node.typeArguments && callSignatures.some(isGenericFunctionReturningFunction)) {
skippedGenericFunction(node, checkMode);
@ -50993,8 +51000,8 @@ var ts;
var signature = getResolvedSignature(node, /*candidatesOutArray*/ undefined, checkMode);
if (signature === resolvingSignature) {
// CheckMode.SkipGenericFunctions is enabled and this is a call to a generic function that
// returns a function type. We defer checking and return anyFunctionType.
return silentNeverType;
// returns a function type. We defer checking and return nonInferrableType.
return nonInferrableType;
}
if (node.expression.kind === 98 /* SuperKeyword */) {
return voidType;
@ -51733,7 +51740,7 @@ var ts;
var returnType = getReturnTypeFromBody(node, checkMode);
var returnOnlySignature = createSignature(undefined, undefined, undefined, ts.emptyArray, returnType, /*resolvedTypePredicate*/ undefined, 0, /*hasRestParameter*/ false, /*hasLiteralTypes*/ false);
var returnOnlyType = createAnonymousType(node.symbol, emptySymbols, [returnOnlySignature], ts.emptyArray, undefined, undefined);
returnOnlyType.objectFlags |= 524288 /* ContainsAnyFunctionType */;
returnOnlyType.objectFlags |= 524288 /* NonInferrableType */;
return links_1.contextFreeType = returnOnlyType;
}
return anyFunctionType;
@ -52115,8 +52122,8 @@ var ts;
if (strictNullChecks && properties.length === 0) {
return checkNonNullType(sourceType, node);
}
for (var _i = 0, properties_6 = properties; _i < properties_6.length; _i++) {
var p = properties_6[_i];
for (var _i = 0, properties_5 = properties; _i < properties_5.length; _i++) {
var p = properties_5[_i];
checkObjectLiteralDestructuringPropertyAssignment(sourceType, p, properties, rightIsThis);
}
return sourceType;
@ -56474,8 +56481,8 @@ var ts;
for (var _i = 0, baseTypes_2 = baseTypes; _i < baseTypes_2.length; _i++) {
var base = baseTypes_2[_i];
var properties = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType));
for (var _a = 0, properties_7 = properties; _a < properties_7.length; _a++) {
var prop = properties_7[_a];
for (var _a = 0, properties_6 = properties; _a < properties_6.length; _a++) {
var prop = properties_6[_a];
var existing = seen.get(prop.escapedName);
if (!existing) {
seen.set(prop.escapedName, { prop: prop, containingType: base });
@ -58922,7 +58929,7 @@ var ts;
// autoArrayType is used as a marker, so even if global Array type is not defined, it needs to be a unique type
autoArrayType = createAnonymousType(undefined, emptySymbols, ts.emptyArray, ts.emptyArray, undefined, undefined);
}
globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", /*arity*/ 1);
globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray", /*arity*/ 1) || globalArrayType;
anyReadonlyArrayType = globalReadonlyArrayType ? createTypeFromGenericGlobalType(globalReadonlyArrayType, [anyType]) : anyArrayType;
globalThisType = getGlobalTypeOrUndefined("ThisType", /*arity*/ 1);
if (augmentations) {
@ -63745,7 +63752,7 @@ var ts;
function createExpressionForAccessorDeclaration(properties, property, receiver, multiLine) {
var _a = ts.getAllAccessorDeclarations(properties, property), firstAccessor = _a.firstAccessor, getAccessor = _a.getAccessor, setAccessor = _a.setAccessor;
if (property === firstAccessor) {
var properties_8 = [];
var properties_7 = [];
if (getAccessor) {
var getterFunction = ts.createFunctionExpression(getAccessor.modifiers,
/*asteriskToken*/ undefined,
@ -63756,7 +63763,7 @@ var ts;
ts.setTextRange(getterFunction, getAccessor);
ts.setOriginalNode(getterFunction, getAccessor);
var getter = ts.createPropertyAssignment("get", getterFunction);
properties_8.push(getter);
properties_7.push(getter);
}
if (setAccessor) {
var setterFunction = ts.createFunctionExpression(setAccessor.modifiers,
@ -63768,15 +63775,15 @@ var ts;
ts.setTextRange(setterFunction, setAccessor);
ts.setOriginalNode(setterFunction, setAccessor);
var setter = ts.createPropertyAssignment("set", setterFunction);
properties_8.push(setter);
properties_7.push(setter);
}
properties_8.push(ts.createPropertyAssignment("enumerable", ts.createTrue()));
properties_8.push(ts.createPropertyAssignment("configurable", ts.createTrue()));
properties_7.push(ts.createPropertyAssignment("enumerable", ts.createTrue()));
properties_7.push(ts.createPropertyAssignment("configurable", ts.createTrue()));
var expression = ts.setTextRange(ts.createCall(ts.createPropertyAccess(ts.createIdentifier("Object"), "defineProperty"),
/*typeArguments*/ undefined, [
receiver,
createExpressionForPropertyName(property.name),
ts.createObjectLiteral(properties_8, multiLine)
ts.createObjectLiteral(properties_7, multiLine)
]),
/*location*/ firstAccessor);
return ts.aggregateTransformFlags(expression);
@ -68260,8 +68267,8 @@ var ts;
* @param receiver The receiver on which each property should be assigned.
*/
function addInitializedPropertyStatements(statements, properties, receiver) {
for (var _i = 0, properties_9 = properties; _i < properties_9.length; _i++) {
var property = properties_9[_i];
for (var _i = 0, properties_8 = properties; _i < properties_8.length; _i++) {
var property = properties_8[_i];
var statement = ts.createExpressionStatement(transformInitializedProperty(property, receiver));
ts.setSourceMapRange(statement, ts.moveRangePastModifiers(property));
ts.setCommentRange(statement, property);
@ -68277,8 +68284,8 @@ var ts;
*/
function generateInitializedPropertyExpressions(properties, receiver) {
var expressions = [];
for (var _i = 0, properties_10 = properties; _i < properties_10.length; _i++) {
var property = properties_10[_i];
for (var _i = 0, properties_9 = properties; _i < properties_9.length; _i++) {
var property = properties_9[_i];
var expression = transformInitializedProperty(property, receiver);
ts.startOnNewLine(expression);
ts.setSourceMapRange(expression, ts.moveRangePastModifiers(property));