Closed curiousdannii-testing closed 2 years ago
557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:
Comment by zarf :
I believe the problem is that "the number of things the actor is touching" is not a meaningful expression. The compiler must be going down some garden path trying to parse it.
Now generates a sensible problem message.
Reported by : nightpool
Description :
I managed to write a condition, "if the number of things the actor is touching is greater than the number of arms of the actor" that Inform compiled into i6 as (self == self). "The number of arms" is a property of people, and "touching" is a various-to-various relation. A minimal reproduction is attached.
I was able, after consulting with a friend, to rewrite the condition into "if the number of things touched by the actor is the number of arms of the actor:" but I believe the original statement should either work or be a parser errorâ”the current behavior, always being true, seems like a pretty definite bug.
Steps to reproduce :
Additional information :
This is the snippet of relevant i6 output:
! [2: if the number of things the actor is touching is greater than the number of arms of the actor]
if (((self == self)))
P.S. If anyone knows a better way to write "[(list of things that the actor relates to by the touching relation) with definite articles]", I'm all ears, the current phrasing seems very clunky to me.
imported from: [Mantis 2103] Condition code generated as self == self