W-expressions should be forbidden by type checker
Brought to you by:
han_joosten,
oblosys
Consider this:
CLASSIFY Lemon ISA Citrus CLASSIFY Orange ISA Citrus CLASSIFY Lime ISA Citrus CLASSIFY Limorange IS Lime /\ Orange
Currently, the following expression is considered correct by the type checker:
ownsCitrus;I[Orange];I[Lime];I[Citrus];I[Lemon]
This expression can never have any population, because there is no concept for any Citrus that is both Lemon and Limorange. (Yes, the example could be simpler, but I cherish the way Martijn thought of this...)
In ShouldFail, I have included Martijn's script called SpecEdit.adl, which he made to test interface functionality. The example is taken from that script.