@@ -8907,7 +8907,9 @@ namespace ts {
89078907 if (target.flags & TypeFlags.StringOrNumberLiteral && target.flags & TypeFlags.FreshLiteral) {
89088908 target = (<LiteralType>target).regularType;
89098909 }
8910- if (source === target || relation !== identityRelation && isSimpleTypeRelatedTo(source, target, relation)) {
8910+ if (source === target ||
8911+ relation === comparableRelation && !(target.flags & TypeFlags.Never) && isSimpleTypeRelatedTo(target, source, relation) ||
8912+ relation !== identityRelation && isSimpleTypeRelatedTo(source, target, relation)) {
89118913 return true;
89128914 }
89138915 if (source.flags & TypeFlags.Object && target.flags & TypeFlags.Object) {
@@ -9050,7 +9052,8 @@ namespace ts {
90509052 return isIdenticalTo(source, target);
90519053 }
90529054
9053- if (isSimpleTypeRelatedTo(source, target, relation, reportErrors ? reportError : undefined)) return Ternary.True;
9055+ if (relation === comparableRelation && !(target.flags & TypeFlags.Never) && isSimpleTypeRelatedTo(target, source, relation) ||
9056+ isSimpleTypeRelatedTo(source, target, relation, reportErrors ? reportError : undefined)) return Ternary.True;
90549057
90559058 if (isObjectLiteralType(source) && source.flags & TypeFlags.FreshLiteral) {
90569059 if (hasExcessProperties(<FreshObjectLiteralType>source, target, reportErrors)) {
0 commit comments