C error messages use type instead of "Object"
commita6e4fe2b108c177d91f4a4cca4e9a10da64e1439
authorJonathan Wright <jonathan@quag.geek.nz>
Fri, 20 Apr 2007 11:48:17 +0000 (20 23:48 +1200)
committerJonathan Wright <jonathan@quag.geek.nz>
Fri, 20 Apr 2007 11:48:17 +0000 (20 23:48 +1200)
treea3870d3daf8511d24b469b32c9d9421ab7e6a586
parent285e99abf3c5d63fb7158d42ead8ae599de1f89b
C error messages use type instead of "Object"

Examples
--------

Io> MyProto := Object clone

Io> MyProto missingSlot

  Exception: MyProto does not respond to 'missingSlot'

Io> list(1,2,3) at(MyProto)

  Exception: argument 0 to method 'at' must be a Number, not a 'MyProto'

Io> list(1,2,3) at(nil)

  Exception: argument 0 to method 'at' must be a Number, not a 'nil'

Implementation
--------------

const char *IoObject_name(IoObject *self)

IoObject_name has been changed to check for a type slot. If type contains a
IoSeq, then it is returned instead of the tag's name.

IoObject_name is often used when building up exception messages. To help avoid
loops where a type method itself causes an exception, the type slot is not
activated. If it does not contain a string, IoObject_name falls back to using
the tag's name.
libs/iovm/io/Z_Importer.io
libs/iovm/source/IoObject.c
libs/iovm/source/IoObject.h