[Oberon] Case statements containing base type labels

August Karlstrom fusionfile at gmail.com
Mon Aug 28 19:27:44 CEST 2023

On 2023-08-28 15:20, Chris Burrows wrote:
> Refer to the pair of examples on P 61 of Programming in Oberon, 2014:
> https://people.inf.ethz.ch/wirth/Oberon/PIO.pdf 
> <https://people.inf.ethz.ch/wirth/Oberon/PIO.pdf>

The examples you refer to in "Programming in Oberon" are in the context 
of message records and all labels are (proper) direct extensions of the 
base type Message so there is no ambiguity in this case; the labels can 
be arranged in any order without affecting the behavior of the case 
statement (as it should be).

My current conclusion is that a case statement where one type label is 
an extension of another is not well-defined. I think an ambitious 
compiler could even reject such a statement, similar to how repeated 
case labels can be handled.


More information about the Oberon mailing list