Skip to content

Commit 39c263b

Browse files
committed
Fix bivariant checking of signatures returning type predicates
1 parent df50477 commit 39c263b

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/compiler/checker.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -11960,8 +11960,8 @@ namespace ts {
1196011960

1196111961
// The following block preserves behavior forbidding boolean returning functions from being assignable to type guard returning functions
1196211962
const targetTypePredicate = getTypePredicateOfSignature(target);
11963-
if (targetTypePredicate) {
11964-
const sourceTypePredicate = getTypePredicateOfSignature(source);
11963+
const sourceTypePredicate = getTypePredicateOfSignature(source);
11964+
if (targetTypePredicate && (sourceTypePredicate || callbackCheck !== CallbackCheck.Bivariant)) {
1196511965
if (sourceTypePredicate) {
1196611966
result &= callbackCheck === CallbackCheck.Bivariant && compareTypePredicateRelatedTo(targetTypePredicate, sourceTypePredicate, /*reportErrors*/ false, /*errorReporter*/ undefined, compareTypes) ||
1196711967
compareTypePredicateRelatedTo(sourceTypePredicate, targetTypePredicate, reportErrors, errorReporter, compareTypes);

0 commit comments

Comments
 (0)