public void mergeWith ( ReturnPathType fact ) { if ( fact . isTop ( ) ) { // other fact is top: no change to this one return ; } else if ( this . isTop ( ) ) { // this fact is top: copy other fact this . copyFrom ( fact ) ; } else { // neither fact is top: as long as one of the two // facts represents a (possible) normal return, then the result // is a possible normal return if ( fact . type == CAN_RETURN_NORMALLY ) { this . type = CAN_RETURN_NORMALLY ; } } }
Merge this fact with given fact .