This relaxes an assertion that required symbols to start before the end of a block. Instead, symbols are now required to end on or before the end of a block. This fixes two important corner cases: Symbols at the start of empty blocks/sections, and block/section end symbols.