A general block of code is examined statement by statement. If any statement (even compound ones) returns in all branches, then subsequent statements are not examined. @return logical OR of END_ flags
()
| 829 | * @return logical OR of END_* flags |
| 830 | */ |
| 831 | private int endCheckBlock() { |
| 832 | Node n; |
| 833 | int rv = END_DROPS_OFF; |
| 834 | |
| 835 | // check each statement and if the statement can continue onto the next |
| 836 | // one, then check the next statement |
| 837 | for (n = first; ((rv & END_DROPS_OFF) != 0) && n != null; n = n.next) { |
| 838 | rv &= ~END_DROPS_OFF; |
| 839 | rv |= n.endCheck(); |
| 840 | } |
| 841 | return rv; |
| 842 | } |
| 843 | |
| 844 | /** |
| 845 | * A labelled statement implies that there maybe a break to the label. The function processes |