|Anonymous | Login | Signup for a new account||2018-01-22 11:57 PST|
|Main | My View | View Issues | Change Log | Roadmap|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000335||Core Inform||Kinds and type checking||public||2010-10-17 22:36||2010-10-28 00:31|
|Target Version||Fixed in Version||6F95|
|Summary||0000335: Internal error when a description of non-objects passed as parameter into decide phrase.|
|Description||When a description variable is passed into a To decide ...: phrase, but it is a description not of an object (e.g. a 'description of persons' or 'description of containers') Inform fails to compile with this internal error: "bad const check-against in run-time type check".|
|Minimal Source Text To Reproduce|
"Debug" by Newbot Home is a room. To decide which person is the master (collection - a description of objects): decide on the player. To decide which person is the master person (collection - a description of persons): decide on the player. Instead of waiting: let A be the master something; let B be the master person something.
|Additional Information||This is only a problem with To decide ...: phrases, not To ...: phrases. For instance, the following compiles and runs:|
"Debug" by Newbot
Home is a room.
To conquer the world with (collection - a description of objects): say "Conquered!".
To conquer the person world with (collection - a description of persons): say "Conquered!".
Instead of waiting:
conquer the world with something;
conquer the person world with something.
|Tags||No tags attached.|
|Effect||(critical) Compiler reports internal error|
|Fixed. The source text is incorrect, and now produces a helpful problem message. The trouble is that "something" is a description of things, not a description of people. It can't, in any safe way, be used as such, because if so then the construction of a list of items it describes would make an unsafe list of people (one that contained other things too, that is). This is why "description of ..." is covariant, not contravariant; it's more like the representation of a set than like the representation of an indicator function.|
|2010-10-17 22:36||Newbot||New Issue|
|2010-10-18 00:15||jmcgrew||Priority||low => normal|
|2010-10-18 00:15||jmcgrew||Status||new => acknowledged|
|2010-10-18 08:39||jmcgrew||Status||acknowledged => confirmed|
|2010-10-24 02:13||graham||Note Added: 0000728|
|2010-10-24 02:13||graham||Status||confirmed => resolved|
|2010-10-24 02:13||graham||Resolution||open => fixed|
|2010-10-24 02:13||graham||Assigned To||=> graham|
|2010-10-25 21:14||jmcgrew||Fixed in Version||=> 6F95|
|2010-10-28 00:31||jmcgrew||Status||resolved => closed|
|Copyright © 2000 - 2010 MantisBT Group|