While playing with a scenario from another thread, I ran into something that looks like a compiler issue. Here’s the demonstration code:
"A Bug in the Garden"
An herb is a kind of value. Some herbs are thyme, rosemary, basil, sage, fennel, marjoram and parsley.
A sprig is a kind of thing.
A sprig has an herb. [problem line]
Pseudo-presence relates various herbs to various things. The verb to gather means the reversed pseudo-presence relation.
A small herbal bouquet is a thing.
The printed name of the herbal bouquet is "small bouquet of [list of herbs gathered by the item described]". [confuses compiler here]
The Herb Garden is a room.
The Problem message produced is:
Problem. In the sentence ‘“small bouquet of [list of herbs gathered by the item described]”’ , it looks as if you intend ‘herbs gathered by the item described’ to be a description, but that would mean applying the pseudo-presence relation (between a herb and a thing) to kinds of value which do not fit - a herbs valued property and an object - so this must be incorrect.
I was trying to match this phrase:
list of (herbs gathered by the item described - description of values)
herbs gathered by the item described = a description
I got other Problem messages in various iterations of code while trying to pinpoint the cause.
At a guess, the issue stems from the compiler being confused into thinking that the word “herb” in
list of herbs gathered by the item described means the nameless
herb property for the
sprig kind. If the assertion creating that property (the commented “problem line”) is removed, then compilation succeeds.
This is observed in 9.3/6M62 and 10.1.2. Is it a known bug?
The long-form phrases listed in WWI 13.13 Relations involving values are not affected by this confusion, so using them is one possible workaround.