mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-10 15:25:54 -06:00
Update LKG.
This commit is contained in:
parent
a1d91c91f5
commit
635fdf85b2
103
lib/tsc.js
103
lib/tsc.js
@ -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));
|
||||
|
||||
131
lib/tsserver.js
131
lib/tsserver.js
@ -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));
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user