(&mut self, block: BlockIdx)
| 9879 | } |
| 9880 | |
| 9881 | fn switch_to_block(&mut self, block: BlockIdx) { |
| 9882 | let code = self.current_code_info(); |
| 9883 | let prev = code.current_block; |
| 9884 | assert_ne!(prev, block, "recursive switching {prev:?} -> {block:?}"); |
| 9885 | assert_eq!( |
| 9886 | code.blocks[block].next, |
| 9887 | BlockIdx::NULL, |
| 9888 | "switching {prev:?} -> {block:?} to completed block" |
| 9889 | ); |
| 9890 | let prev_block = &mut code.blocks[prev.idx()]; |
| 9891 | assert_eq!( |
| 9892 | u32::from(prev_block.next), |
| 9893 | u32::MAX, |
| 9894 | "switching {prev:?} -> {block:?} from block that's already got a next" |
| 9895 | ); |
| 9896 | prev_block.next = block; |
| 9897 | code.current_block = block; |
| 9898 | } |
| 9899 | |
| 9900 | const fn set_source_range(&mut self, range: TextRange) { |
| 9901 | self.current_source_range = range; |
no test coverage detected