public boolean isSuperType ( Type t , Type s ) { switch ( t . getTag ( ) ) { case ERROR : return true ; case UNDETVAR : { UndetVar undet = ( UndetVar ) t ; if ( t == s || undet . qtype == s || s . hasTag ( ERROR ) || s . hasTag ( BOT ) ) { return true ; } undet . addBound ( InferenceBound . LOWER , s , this ) ; return true ; } default : return isSubtype ( s , t ) ; } }
Is t a supertype of s?