view tests/mini/classinfo5.d @ 1401:e2cf1f67ca33

Don't print the entire declaration of the alliassee when `->toChars()` is called on an `AliasDeclaration`; just printing the name will do. This fixes #305, which otherwise tries to generate {{{ class E { void A() { alias /* recurse into E->toCBuffer() */ m; } } }}} by way of an infinite recursion (causing a segfault when the stack runs out).
author Frits van Bommel <fvbommel wxs.nl>
date Wed, 20 May 2009 16:20:59 +0200
parents 8d46c475842a
children
line wrap: on
line source

extern(C) int printf(char*, ...);

class BaseClass {} 
 
void main() 
{ 
    Object o_cr = BaseClass.classinfo.create();
    Object o_new = new BaseClass;
    printf("CIaddr: %X\n", cast(size_t*)BaseClass.classinfo);
    printf("Create: %X\n", cast(size_t*)o_cr.classinfo);
    printf("New:    %X\n", cast(size_t*)o_new.classinfo);
    assert(cast(size_t*)o_cr.classinfo == cast(size_t*)o_new.classinfo);
}