Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000521Core InformAssertions and creationspublic2011-01-27 19:402014-05-07 07:35
ReporterChrisC 
Assigned Tograham 
PrioritynormalSeverityseriousReproducibilityalways
StatusclosedResolutionfixed 
Platformx86OSWindowsOS Version7
Product Version6G60 
Target VersionFixed in Version6L02 
Summary0000521: Writing two "[direction] is nowhere" statements in a row results in error message.
DescriptionUncommenting the last statement results in the problem message "You wrote 'The south is a direction', but in another sentence 'West is nowhere': south would need to have two different and incompatible kinds to make both sentences true, and this is a contradiction." Judging by the way it conflates the two different directions, the compiler seems to be getting very confused by the presence of two "[direction] is nowhere" statements, even though they should both be identified as specifically modifying the exits from Desert rather than general statements about the behavior and assembly of the model world.
Minimal Source Text To Reproduce
Forest is a room. Desert is north, northeast, east from Mountain. South is nowhere. [West is nowhere.]
Additional InformationIncidentally, if the code is run with the last statement commented out, Desert is connected to Forest through 2 directions rather than to Mountain by 3. This seems to be incorrect behavior.
TagsNo tags attached.
Effect(serious) Compiler rejects valid code
Attached Files

- Relationships

-  Notes
(0000983)
EmacsUser (manager)
2011-02-01 15:53

Confirmed. But note that Inform is behaving sensibly in its handling of

- - - -
Desert is north, northeast, east from Mountain.
- - - -

if we read ``from mountain'' as applying just to ``east,'' rather than every direction in the list. (Hence the error message if you try to compile this sentence on its own.)
(0001062)
ChrisC (reporter)
2011-02-27 22:31

I realized why this happens. Take the following minimal source:

There is a room.

Another room is northwest. Southeast is nowhere. It is dark.

This refuses to compile, because "You wrote 'It is dark' : but the property dark for the southeast is not allowed to exist, ..." It seems that after "Southeast is nowhere," the direction southeast becomes the subject of subsequent statements, rather than the subject remaining Another room. This is a bug, surely? I can't imagine any situation where the author would intend to start altering the properties of directions in the middle of defining map connections.

Moreover, it WILL compile if a valid room name appears instead of "nowhere".
(0002326)
graham (administrator)
2014-01-19 07:07

The multiple-uses-of-nowhere bug is gone; the rest, I'm not convinced is a bug.

- Issue History
Date Modified Username Field Change
2011-01-27 19:40 ChrisC New Issue
2011-01-28 19:01 jmcgrew Status new => acknowledged
2011-02-01 15:53 EmacsUser Note Added: 0000983
2011-02-01 15:53 EmacsUser Status acknowledged => confirmed
2011-02-27 22:31 ChrisC Note Added: 0001062
2014-01-19 07:07 graham Note Added: 0002326
2014-01-19 07:07 graham Status confirmed => resolved
2014-01-19 07:07 graham Resolution open => fixed
2014-01-19 07:07 graham Assigned To => graham
2014-05-07 07:34 jmcgrew Fixed in Version => 6L02
2014-05-07 07:35 jmcgrew Status resolved => closed


Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker