private @ CheckForNull ValueNumber findValueKnownNonnullOnBranch ( UnconditionalValueDerefSet fact , Edge edge ) { IsNullValueFrame invFrame = invDataflow . getResultFact ( edge . getSource ( ) ) ; if ( ! invFrame . isValid ( ) ) { return null ; } IsNullConditionDecision decision = invFrame . getDecision ( ) ; if ( decision == null ) { return null ; } IsNullValue inv = decision . getDecision ( edge . getType ( ) ) ; if ( inv == null || ! inv . isDefinitelyNotNull ( ) ) { return null ; } ValueNumber value = decision . getValue ( ) ; if ( DEBUG ) { System . out . println ( "Value number " + value + " is known nonnull on " + edge ) ; } return value ; }
Clear deref sets of values if this edge is the non - null branch of an if comparison .