MantisBT - Core Inform
View Issue Details
0000218Core InformAssertions and creationspublic2010-07-24 15:232010-10-28 00:30
Andreas 
graham 
normalcosmeticalways
closedfixed 
x86WindowsXP
6E72 
6F95 
(cosmetic) Error message is badly worded
0000218: Contradiction message fails to account for the underlying cause
I (EmacsUser) am splitting this off of 0000209 because it concerns a distinct error message.

When compiling the attached source text, Inform correctly recognizes that the author has asked for a contradiction: hairspray, an object because it was not declared otherwise, needs to be part of two hairstyles, even though incorporation is modeled as a tree. However, the error message is just:

Problem. You wrote 'There is a hairstyle' , but in another sentence 'There is a hairstyle' : but this looks like a contradiction, which might be because I have misunderstood what was meant to be the subject of one or both of those sentences.

There is no mention of the line ``Every hairstyle incorporates hairspray,'' which is the crux of the matter.

This might not be so easy to fix though. Consider:

Example A
- - - -
There is a room.
A hairstyle is a kind of thing.
A hairspray is a kind of thing.
Every hairstyle incorporates a hairspray.
Every hairspray incorporates a propellant.
There is a hairstyle.
There is a hairstyle.
- - - -

In that case the blame could be put on either the fourth or the fifth lines (or both).

Interestingly, triggering this error with the help of the pre-declared person ``yourself,''

Example B
- - - -
There is a room.
Every person incorporates a mind.
There is a person.
- - - -

yields a different sort of message:

Problem. You wrote 'There is a person' , but in another sentence 'Every person incorporates a mind' : but this looks like a contradiction, which might be because I have misunderstood what was meant to be the subject of one or both of those sentences.

Similarly,

Example C
- - - -
There is a room.
A mind is a kind of thing.
Every person incorporates a mind.
Every mind incorporates a neuron.
There is a person.
- - - -

results in

Problem. You wrote 'There is a person' , but in another sentence 'Every mind incorporates a neuron' : but this looks like a contradiction, which might be because I have misunderstood what was meant to be the subject of one or both of those sentences.

which would suggest that, for consistency, Inform should blame the propellant line in Example A.
There is a room.
A hairstyle is a kind of thing.
Every hairstyle incorporates hairspray.
There is a hairstyle.
There is a hairstyle.
No tags attached.
related to 0000209closed graham Failing to make all parts of a kind kinds themselves, generates unclear compile errors. 
Issue History
2010-07-24 15:23EmacsUserNew Issue
2010-07-24 15:23EmacsUserIssue generated from0000209
2010-07-24 15:24EmacsUserStatusnew => confirmed
2010-08-06 17:42EmacsUserReporterEmacsUser => Andreas
2010-08-06 17:43EmacsUserDescription Updatedbug_revision_view_page.php?rev_id=184#r184
2010-09-01 12:16grahamNote Added: 0000482
2010-09-01 12:16grahamStatusconfirmed => resolved
2010-09-01 12:16grahamResolutionopen => fixed
2010-09-01 12:16grahamAssigned To => graham
2010-09-01 23:41jmcgrewRelationship addedrelated to 0000209
2010-10-25 21:14jmcgrewFixed in Version => 6F95
2010-10-28 00:30jmcgrewStatusresolved => closed

Notes
(0000482)
graham   
2010-09-01 12:16   
An interesting one, since Inform is correctly diagnosing the problem, even though in a way which doesn't help the user at all. I have improved the problem message for spatial-model contradictions to make it more explicit, and this seems to improve matters:

Problem. You wrote 'There is a hairstyle' , but also 'There is a hairstyle' : that seems to be saying that the same object (hairspray) must be in two different places (nameless hairstyle created in the sentence 'There is a hairstyle' and nameless hairstyle created in the sentence 'There is a hairstyle' ). This looks like a contradiction.

...While that still looks a little odd, the source links clarify matters, and at the end of the day this was an odd sort of source text. It does at least provide the crucial clue - that there's only one hairspray object.