A variety of tests around reachability. These tests in general check two things:
- that we get unreachable code warnings in reasonable locations;
- that we permit coercions into
!
from expressions which diverge, where an expression "diverges" if it must execute some subexpression of type!
, or it has type!
itself.