From 99fd6dcb3e96c84f8746e0da9d0dbf17a00dbdc4 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sat, 21 May 2016 11:17:30 -0700 Subject: [PATCH] Fix subtype relationship for 'never' type --- src/compiler/checker.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 422e08eccd5..87fdfb0ef9f 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5859,7 +5859,7 @@ namespace ts { } if (!(target.flags & TypeFlags.Never)) { - if (target.flags & TypeFlags.Any) return Ternary.True; + if (target.flags & TypeFlags.Any || source.flags & TypeFlags.Never) return Ternary.True; if (source.flags & TypeFlags.Undefined) { if (!strictNullChecks || target.flags & (TypeFlags.Undefined | TypeFlags.Void) || source === emptyArrayElementType) return Ternary.True; } @@ -5874,7 +5874,7 @@ namespace ts { } if (source.flags & TypeFlags.StringLiteral && target === stringType) return Ternary.True; if (relation === assignableRelation || relation === comparableRelation) { - if (source.flags & (TypeFlags.Any | TypeFlags.Never)) return Ternary.True; + if (source.flags & TypeFlags.Any) return Ternary.True; if (source === numberType && target.flags & TypeFlags.Enum) return Ternary.True; } if (source.flags & TypeFlags.Boolean && target.flags & TypeFlags.Boolean) {