phobos/internal/invariant.d
2007-09-10 04:44:12 +00:00

25 lines
441 B
D

/*
* Placed into the Public Domain
* written by Walter Bright
* www.digitalmars.com
*/
void _d_invariant(Object o)
{ ClassInfo c;
//printf("__d_invariant(%p)\n", o);
// BUG: needs to be filename/line of caller, not library routine
assert(o !is null); // just do null check, not invariant check
c = o.classinfo;
do
{
if (c.classInvariant)
{
(*c.classInvariant)(o);
}
c = c.base;
} while (c);
}