@@ -2304,7 +2304,7 @@ module.exports = __toCommonJS(server_exports);
23042304
23052305// src/compiler/corePublic.ts
23062306var versionMajorMinor = "5.1";
2307- var version = "5.1.5 ";
2307+ var version = "5.1.6 ";
23082308var Comparison = /* @__PURE__ */ ((Comparison3) => {
23092309 Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
23102310 Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -57293,19 +57293,13 @@ function createTypeChecker(host) {
5729357293 if (getObjectFlags(type) & 4 /* Reference */) {
5729457294 const target = type.target;
5729557295 const typeArguments = getTypeArguments(type);
57296- if (length(target.typeParameters) === length(typeArguments)) {
57297- const ref = createTypeReference(target, concatenate(typeArguments, [thisArgument || target.thisType]));
57298- return needApparentType ? getApparentType(ref) : ref;
57299- }
57296+ return length(target.typeParameters) === length(typeArguments) ? createTypeReference(target, concatenate(typeArguments, [thisArgument || target.thisType])) : type;
5730057297 } else if (type.flags & 2097152 /* Intersection */) {
5730157298 const types = sameMap(type.types, (t) => getTypeWithThisArgument(t, thisArgument, needApparentType));
5730257299 return types !== type.types ? getIntersectionType(types) : type;
5730357300 }
5730457301 return needApparentType ? getApparentType(type) : type;
5730557302 }
57306- function getThisArgument(type) {
57307- return getObjectFlags(type) & 4 /* Reference */ && length(getTypeArguments(type)) > getTypeReferenceArity(type) ? last(getTypeArguments(type)) : type;
57308- }
5730957303 function resolveObjectTypeMembers(type, source, typeParameters, typeArguments) {
5731057304 let mapper;
5731157305 let members;
@@ -58371,7 +58365,7 @@ function createTypeChecker(host) {
5837158365 return type.resolvedBaseConstraint;
5837258366 }
5837358367 const stack = [];
58374- return type.resolvedBaseConstraint = getTypeWithThisArgument( getImmediateBaseConstraint(type), getThisArgument(type) );
58368+ return type.resolvedBaseConstraint = getImmediateBaseConstraint(type);
5837558369 function getImmediateBaseConstraint(t) {
5837658370 if (!t.immediateBaseConstraint) {
5837758371 if (!pushTypeResolution(t, 4 /* ImmediateBaseConstraint */)) {
@@ -58463,18 +58457,18 @@ function createTypeChecker(host) {
5846358457 }
5846458458 if (isGenericTupleType(t)) {
5846558459 const newElements = map(getElementTypes(t), (v, i) => {
58466- const constraint = t.target.elementFlags[i] & 8 /* Variadic */ && getBaseConstraint(v) || v;
58467- return constraint && everyType(constraint, (c) => isArrayOrTupleType(c) && !isGenericTupleType(c)) ? constraint : v;
58460+ const constraint = v.flags & 262144 /* TypeParameter */ && t.target.elementFlags[i] & 8 /* Variadic */ && getBaseConstraint(v) || v;
58461+ return constraint !== v && everyType(constraint, (c) => isArrayOrTupleType(c) && !isGenericTupleType(c)) ? constraint : v;
5846858462 });
5846958463 return createTupleType(newElements, t.target.elementFlags, t.target.readonly, t.target.labeledElementDeclarations);
5847058464 }
5847158465 return t;
5847258466 }
5847358467 }
58474- function getApparentTypeOfIntersectionType(type) {
58468+ function getApparentTypeOfIntersectionType(type, thisArgument ) {
5847558469 return type.resolvedApparentType || (type.resolvedApparentType = getTypeWithThisArgument(
5847658470 type,
58477- type ,
58471+ thisArgument ,
5847858472 /*needApparentType*/
5847958473 true
5848058474 ));
@@ -58525,8 +58519,9 @@ function createTypeChecker(host) {
5852558519 return !!(type.flags & 8388608 /* IndexedAccess */ && getObjectFlags(objectType = type.objectType) & 32 /* Mapped */ && !isGenericMappedType(objectType) && isGenericIndexType(type.indexType) && !(getMappedTypeModifiers(objectType) & 8 /* ExcludeOptional */) && !objectType.declaration.nameType);
5852658520 }
5852758521 function getApparentType(type) {
58528- const t = !(type.flags & 465829888 /* Instantiable */) ? type : getBaseConstraintOfType(type) || unknownType;
58529- return getObjectFlags(t) & 32 /* Mapped */ ? getApparentTypeOfMappedType(t) : t.flags & 2097152 /* Intersection */ ? getApparentTypeOfIntersectionType(t) : t.flags & 402653316 /* StringLike */ ? globalStringType : t.flags & 296 /* NumberLike */ ? globalNumberType : t.flags & 2112 /* BigIntLike */ ? getGlobalBigIntType() : t.flags & 528 /* BooleanLike */ ? globalBooleanType : t.flags & 12288 /* ESSymbolLike */ ? getGlobalESSymbolType() : t.flags & 67108864 /* NonPrimitive */ ? emptyObjectType : t.flags & 4194304 /* Index */ ? keyofConstraintType : t.flags & 2 /* Unknown */ && !strictNullChecks ? emptyObjectType : t;
58522+ const t = type.flags & 465829888 /* Instantiable */ ? getBaseConstraintOfType(type) || unknownType : type;
58523+ const objectFlags = getObjectFlags(t);
58524+ return objectFlags & 32 /* Mapped */ ? getApparentTypeOfMappedType(t) : objectFlags & 4 /* Reference */ && t !== type ? getTypeWithThisArgument(t, type) : t.flags & 2097152 /* Intersection */ ? getApparentTypeOfIntersectionType(t, type) : t.flags & 402653316 /* StringLike */ ? globalStringType : t.flags & 296 /* NumberLike */ ? globalNumberType : t.flags & 2112 /* BigIntLike */ ? getGlobalBigIntType() : t.flags & 528 /* BooleanLike */ ? globalBooleanType : t.flags & 12288 /* ESSymbolLike */ ? getGlobalESSymbolType() : t.flags & 67108864 /* NonPrimitive */ ? emptyObjectType : t.flags & 4194304 /* Index */ ? keyofConstraintType : t.flags & 2 /* Unknown */ && !strictNullChecks ? emptyObjectType : t;
5853058525 }
5853158526 function getReducedApparentType(type) {
5853258527 return getReducedType(getApparentType(getReducedType(type)));
@@ -65314,7 +65309,7 @@ function createTypeChecker(host) {
6531465309 return 3 /* Maybe */;
6531565310 }
6531665311 const c = target2;
65317- if (!c.root.inferTypeParameters && !isDistributionDependent(c.root)) {
65312+ if (!c.root.inferTypeParameters && !isDistributionDependent(c.root) && !(source2.flags & 16777216 /* Conditional */ && source2.root === c.root) ) {
6531865313 const skipTrue = !isTypeAssignableTo(getPermissiveInstantiation(c.checkType), getPermissiveInstantiation(c.extendsType));
6531965314 const skipFalse = !skipTrue && isTypeAssignableTo(getRestrictiveInstantiation(c.checkType), getRestrictiveInstantiation(c.extendsType));
6532065315 if (result2 = skipTrue ? -1 /* True */ : isRelatedTo(
0 commit comments