Adjective bug?

I’ve come across a curious circumstance that looks like a bug. This does not compile:

Test is a room.

A vessel is a kind of thing. A vessel can be full or empty.

The shot glass is a full vessel in Test.

The tiny handbag is a container with carrying capacity 1. It is carried by the player.

Definition: The handbag is full rather than empty if it contains something.

This produces the following problem message:

Obviously, the handbag is a thing, and that’s not the problem here. After a good deal of poking around, I discovered that the error disappears if I change the line about the shot glass to this:

The shot glass is a vessel in Test. It is full.

What’s happening here? Should there actually be a compiler error? And if so, shouldn’t it say something more helpful?

I don’t think Inform allows declaring the kind of something along with adjectives. For example, I do this a lot: Bob is a man, here. which means Bob is a man. Bob is here. The comma is necessary, and I can’t write it as Bob is a man here. So I’m inclined to call it a limitation or feature suggestion than a bug.

But go ahead & report it at www.inform7.com/bugs/ if you’ve the time because who knows, maybe they’ll amend matters.

I don’t think that’s true. If I take out the container, I get this:

[code]Test is a room.

A vessel is a kind of thing. A vessel can be full or empty.

The shot glass is a full vessel in Test.

Test me with “showme glass”[/code]

As you can see, declaring the shot glass as a “full vessel” successfully sets the kind to vessel and the full/empty property to full.

Reported here:

inform7.com/mantis/view.php?id=533

I think the problem is the order of declarations here, as this compiles.

Test is a room.

A vessel is a kind of thing. A vessel can be full or empty.

The tiny handbag is a container with carrying capacity 1. It is carried by the player.

The shot glass is a full vessel in Test.


Definition: The handbag is full rather than empty if it contains something.

In the OP I’m guessing the shot glass references the definition, which references the handbag that hasn’t been declared yet – I’ve heard there are some corner cases where order of declaration is important in I7, so maybe this is one of them. In any case, it doesn’t seem like the expected behavior.