Possible Inform bug - is this new?

I came across this odd error today, and spent some time searching Mantis and this forum to see if it was already known. Is this a bug? Is it already listed in Mantis somewhere or should I try to file a formal report?

"Bugtesting" by Shadow Wolf

The Colossal Cave is a room.

To frotz the plover egg:
	Let the individual in question be the actor;
	say "[The actor] has frotzed the plover."
	
Table 1
message
"Why can't I print [the actor]'s name?"

This produces three errors, but they’re all the same thing (and commenting out the offending lines for any two of them will still leave the third). Essentially, the “actor” variable apparently can’t be used inside a phrase, or in a text in a table. You can substitute “noun”, “second noun”, or any variable for “actor” and the errors will not appear - it seems to be very specific to “actor”.

Error output (spoiler tag because it’s long):

[spoiler]This is the report produced by Inform 7 (build 6G60) on its most recent run through:

Problem. In the sentence ‘Let the individual in question be the actor’ , I was expecting to read a value, but instead found some text that I couldn’t understand - ‘actor’.

I was trying to match one of these phrases:

  1. let (individual in question - a new name) be (actor - description of relations of values to values)
  2. let (individual in question - a new name) be (actor - name of kind)
  3. let (individual in question - a new name) be (actor - value)
  4. let (individual in question - a temporary named value) be (actor - value)

This was what I found out:

individual in question = something unrecognised
actor = something unrecognised


Problem. In the sentence ‘say “[The actor] has frotzed the plover.”’ , I was expecting to read an object, but instead found some text that I couldn’t understand - ‘actor’.

I was trying to match one of these phrases:

  1. say “[The actor - object]”
  2. say “[the actor - object]”
  3. say “actor - text”
  4. say “[actor - number]”
  5. say “[actor - unicode character]”
  6. say “[actor - sayable value]”
  7. say “” has frotzed the plover." - text"

This was what I found out:

actor = something unrecognised


Problem. In the sentence ‘“Why can’t I print [the actor]'s name?”’ , I was expecting to read an object, but instead found some text that I couldn’t understand - ‘actor’.

I was trying to match one of these phrases:

  1. say "“Why can’t I print " - text”
  2. say “[the actor - object]”
  3. say “actor - text”
  4. say “[actor - number]”
  5. say “[actor - unicode character]”
  6. say “[actor - sayable value]”
  7. say “”'s name?" - text"

This was what I found out:

actor = something unrecognised[/spoiler]

I don’t think this is a bug. If you look at 12.14 of the documentation, it says that “the actor” is a special value for use inside action rules for any actor (rules beginning “Instead of an actor taking a container…” instead of “Instead of taking a container”). So it’s not clear to me that this is meant to make sense outside of such a rule.

What if you use “The person asked” instead? I’m never quite clear on the difference between “the person asked” and “the actor,” but “the person asked” seems to be like “the noun” in that you can use it outside action rules. And if you try the following program it seems to work right.

[code]The Colossal Cave is a room.

To frotz the plover egg:
Let the individual in question be the person asked;
say “[The person asked] has frotzed the plover.”

Table 1
message
“Why can’t I print [the person asked]'s name?”

Bob is a man in Colossal Cave.
Persuasion rule: persuasion succeeds.

Instead of an actor singing: frotz the plover egg.
Instead of jumping: try bob singing.

Test me with “sing/bob, sing/jump”.[/code]

“the person asked” is the old I6 actor global variable. It more or less means “whoever is carrying out the current action or the most recent action, depending on where we are in the processing sequence.” (Which sounds unreliable, but is no worse than “noun” or “second noun”, really.)

OK, I did some testing and it looks like “the person asked” works. I had thought that it only applied when the player’s command was “BOB, TAKE APPLE” or you used “try asking Bob to try taking the apple”.

Yeah, I think this is one of the places where the documentation is very unclear. In fact I’m putting up a uservoice request to clarify that in the documentation, so you can go vote it up if you want!