Remove nonNullUnknownType (#57665)

This commit is contained in:
Jake Bailey 2024-03-15 14:58:30 -07:00 committed by GitHub
parent 76f8de0a0d
commit 21c7f1cbb8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1968,7 +1968,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
var nonInferrableAnyType = createIntrinsicType(TypeFlags.Any, "any", ObjectFlags.ContainsWideningType, "non-inferrable");
var intrinsicMarkerType = createIntrinsicType(TypeFlags.Any, "intrinsic");
var unknownType = createIntrinsicType(TypeFlags.Unknown, "unknown");
var nonNullUnknownType = createIntrinsicType(TypeFlags.Unknown, "unknown", /*objectFlags*/ undefined, "non-null");
var undefinedType = createIntrinsicType(TypeFlags.Undefined, "undefined");
var undefinedWideningType = strictNullChecks ? undefinedType : createIntrinsicType(TypeFlags.Undefined, "undefined", ObjectFlags.ContainsWideningType, "widening");
var missingType = createIntrinsicType(TypeFlags.Undefined, "undefined", /*objectFlags*/ undefined, "missing");
@ -17293,7 +17292,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
if (includes & TypeFlags.AnyOrUnknown) {
return includes & TypeFlags.Any ?
includes & TypeFlags.IncludesWildcard ? wildcardType : anyType :
includes & TypeFlags.Null || containsType(typeSet, unknownType) ? unknownType : nonNullUnknownType;
unknownType;
}
if (includes & TypeFlags.Undefined) {
// If type set contains both undefinedType and missingType, remove missingType
@ -27738,8 +27737,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
if (resultType === unreachableNeverType || reference.parent && reference.parent.kind === SyntaxKind.NonNullExpression && !(resultType.flags & TypeFlags.Never) && getTypeWithFacts(resultType, TypeFacts.NEUndefinedOrNull).flags & TypeFlags.Never) {
return declaredType;
}
// The non-null unknown type should never escape control flow analysis.
return resultType === nonNullUnknownType ? unknownType : resultType;
return resultType;
function getOrSetCacheKey() {
if (isKeySet) {