I have a vague feeling of deja vu about this, but I have no idea if this bug has been observed by anyone before:
[code]Test is a room.
When play begins:
Remove every wearable thing from play.[/code]
The ‘wearable’ adjective is not necessary to produce the error, but I didn’t feel right about doing something that would remove the player from play.
I’m not sure “remove [something] from play” is supposed to take a set-description, but I thought I’d try it out and this is what I got. ‘Now every wearable thing is off-stage’ works fine, but obviously it would be better to have a Problem message that the former is invalid syntax than to be told that the compiler crashed…
It looks like the same bug as inform7.com/mantis/view.php?id=458 , which has been marked as a duplicate of 404, which is marked as fixed in the next release.
Repeat with item running through all wearable things: remove item from play.
Also, if I’m not mistaken, the real problem is that you can’t remove more than one thing from play at a time, isn’t it? Graham’s notes on those bugs seemed to suggest that they should be producing compiler errors, but crashed when doing so.
I think you can, you just can’t use the “remove” phrase. “now” works with set-descriptions, so you can also do it this way:
Now every wearable thing is off-stage.
“off-stage” is a little tricky because I never remember whether it’s one word, two words, or hyphenated. What do folks think about asking for synonyms on uservoice?
Yes – the only issue is that it’d probably break some existing code. (I think Tove said something about having a junk room called “offstage,” which only worked because it didn’t have the hyphen.)
Personally I’m against synonyms in the core language/library (as I’ve ranted before) but on the other hand this is exactly what Usevoice is for: you put in a suggestion and people can vote for it if they want to see it happen.
but in this particular case, I think it’d be good to allow “offstage” as well as “off-stage”; no one should be confused by that. I’m a little more agnostic about “off stage.”
I don’t mind strict syntax if there is a helpful compiler error. Being told that there is no object or property called “offstage”, but there is a construct called “off-stage” meaning “removed from play” would be perfectly sufficient.