Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit f819259

Browse filesBrowse files
committed
Intersection with 'never' type always produces 'never'
1 parent a404eda commit f819259
Copy full SHA for f819259

1 file changed

+8-1Lines changed: 8 additions & 1 deletion

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎src/compiler/checker.ts‎

Copy file name to clipboardExpand all lines: src/compiler/checker.ts
+8-1Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7168,6 +7168,7 @@ namespace ts {
71687168
containsAny?: boolean;
71697169
containsUndefined?: boolean;
71707170
containsNull?: boolean;
7171+
containsNever?: boolean;
71717172
containsNonWideningType?: boolean;
71727173
containsString?: boolean;
71737174
containsNumber?: boolean;
@@ -7369,10 +7370,13 @@ namespace ts {
73697370
else if (type.flags & TypeFlags.Any) {
73707371
typeSet.containsAny = true;
73717372
}
7373+
else if (type.flags & TypeFlags.Never) {
7374+
typeSet.containsNever = true;
7375+
}
73727376
else if (getObjectFlags(type) & ObjectFlags.Anonymous && isEmptyObjectType(type)) {
73737377
typeSet.containsEmptyObject = true;
73747378
}
7375-
else if (!(type.flags & TypeFlags.Never) && (strictNullChecks || !(type.flags & TypeFlags.Nullable)) && !contains(typeSet, type)) {
7379+
else if ((strictNullChecks || !(type.flags & TypeFlags.Nullable)) && !contains(typeSet, type)) {
73767380
if (type.flags & TypeFlags.Object) {
73777381
typeSet.containsObjectType = true;
73787382
}
@@ -7410,6 +7414,9 @@ namespace ts {
74107414
}
74117415
const typeSet = [] as TypeSet;
74127416
addTypesToIntersection(typeSet, types);
7417+
if (typeSet.containsNever) {
7418+
return neverType;
7419+
}
74137420
if (typeSet.containsAny) {
74147421
return anyType;
74157422
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.