An internal error has occurred: unowned

The following code crashes the parser:

A fluid is a kind of thing.

A fluid container is a kind of thing.

Filling it with is an action applying to one carried thing and one visible thing.

Understand "fill [a carried thing] with [a visible thing]" as filling.

Dummy Room is a room. The player is here.

The whole error (long):

Problem. An internal error has occurred: unowned. The current sentence is ‘Understand “fill [a carried thing] with [a visible thing]” as filling’ ; the error was detected at line 886 of “inform7/if-module/Chapter 5/Understand Sentences.w”. This should never happen, and I am now halting in abject failure.

What has happened here is that one of the checks Inform carries out internally, to see if it is working properly, has failed. There must be a bug in this copy of Inform. It may be worth checking whether you have the current, up-to-date version. If so, please report this problem via Bugs | Inform 7.

Any advice? Is this a known bug? Seems strange I can’t even program a simple FILL command.

Aaand that will go down in history as the fastest a problem was solved by the original poster. The action on the understand line should be “fill it with” (though I don’t think that should really crash the parser in any case).

1 Like

Congrats on catching the issue! And yes, one of the enduring ironies of that “this should never happen” error is that it actually happens all the time, usually for ploddingly prosaic reasons.

Having been in the IT industry for 30 years, yeah, I can confirm, things that “should never happen” usually happen at least once a week.

2 Likes

This was already fixed in dev.

  >--> You wrote 'Understand "fill [a carried thing] with [a visible thing]" as
    filling' (source text, line 7): but this meaning looks like a form of
    action, but needs to be written more simply, just as the action itself and
    without any details about what is acted on. For example, 'Understand ... as
    examining' is fine, but 'Understand ... as examining a door' is not. (What
    will be examined depends on what is in the actual command this 'Understand'
    instruction will try to work on - we cannot know yet whether it will be a
    door.)
    Because of this problem, the source could not be translated into a working
    game. (Correct the source text to remove the difficulty and click on Go
    once again.)
1 Like