I7: Enumerated properties vs Kinds of Value

I’m a bit annoyed at I7 right now. Properties and KoV can look pretty similar, but the symmetry breaks in odd ways. This code works:

Color is a kind of value. The colors are red, green, and blue.
John is a man. John has a color.

Every turn:
	if the color of John is:
		-- red: say "Red";
		-- green: say "Green";
		-- blue: say "Blue";
	
Home is a room.

This, however, does not:

John is a man.
John can be red, green, or blue (this is his color).

Every turn:
	if the color of John is:
		-- red: say "Red";
		-- green: say "Green";
		-- blue: say "Blue";
	
Home is a room.

Which is all well and good, except for the error message, which states that

I mean, one would think there’d be a way in Inform to typecast to a property, especially when properties and KoV are intended to behave so much alike. Right?

I don’t have an answer beyond this: The property definition is a shortcut for defining a KoV, and the shortcut is less able than spelling it out.

In the shortcut case, the literals “red”, “blue”, “green” do not compile to color values. I’m not sure you’re allowed to use them at all outside of declarations like “John is red”. In particular, the line

say “[blue]”;

…actually displays John’s current color value, rather than the constant blue.

…This was filed as inform7.com/mantis/view.php?id=880 , and Graham just commented that it’s the intended behavior. Might need better error messages, though.

Thanks, zarf. Yeah, it’s not really a crippling flaw. 'twould have been nice as a feature I suppose, but on balance I’d rather wait for the next release to be done before piling new requests on Graham; I suspect he may be feeling rather swamped at the moment.