vimeo/psalm
instanceof redundant for class, but not for interface
Ouverte
#7 341 ouverte le 8 janv. 2022
Help wantedbug
Métriques du dépôt
- Stars
- (5 369 étoiles)
- Métriques de merge PR
- (Métriques PR en attente)
Description
psalm is inconsistent in when it says "RedundantCondition" on instanceof checks.
https://psalm.dev/r/377cb86ce7
interface I {}
class C {}
/**
* @param I $o
*/
function fI(I $o): void {
// Not redundant?
if ($o instanceof I) {
print 'yes';
}
}
/**
* @param C $o
*/
function fC(C $o): void {
// ERROR: RedundantCondition - 20:9 - Type C for $o is always C
if ($o instanceof C) {
print 'yes';
}
}