When the low bound of a subrange type is more than the high bound, or the low bound of a case label range is bigger than the high bound, this error message is displayed.
program Produce; type SubrangeType = 1..0; (*Gets: Low bound exceeds high bound *) begin case True of True..False: (*Gets: Low bound exceeds high bound *) Writeln('Expected result'); else Writeln('Unexpected result'); end; end.
Instead of considering the ranges as empty in the preceding example, the compiler throws an error. The reversing of the bounds was most likely unintentional.
program Solve; type SubrangeType = 0..1; begin case True of False..True: Writeln('Expected result'); else Writeln('Unexpected result'); end; end.
Make sure the boundaries are stated in the correct order.
Leave a Reply