[Issue 1083] New: classtype.classinfo.name can't be evaluated in compile-time
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Mar 27 21:30:31 PDT 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1083
Summary: classtype.classinfo.name can't be evaluated in compile-
time
Product: D
Version: 1.010
Platform: PC
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P1
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: davidl at 126.com
template typeadder(T)
{
const char[] typeadder=T.classinfo.name~"hello";
}
class classa
{
}
void main()
{
pragma(msg,typeadder!(classa));
}
above should compile
and following throws me insane error message
class MyClass
{
}
class MyClassInLine
{
}
template classcast(T)
{
const char[] inlinename=T.classinfo.name~"InLine";
char[] classcastfunc(T.classinfo.name)
{
auto ktype= addinline(T.classinfo.name);
return
inlinename~" classcast("~T.classinfo.name~" base)
{
"~inlinename~" ret;
ret = cast("~inlinename~")cast(void*)base;
ret.classinfo.vtbl="~inlinename~".classinfo.vtbl;
return ret;
}"
;
}
mixin(classcastfunc(T.name));
}
void main()
{
MyClass a= new MyClass;
MyClassInLine v;
v.classinfo.vtbl = MyClass.classinfo.vtbl;
v= classcast!(MyClass)(a);
}
error message:
testclassinfo.d(13): Error: no property 'classinfo' for type
'testclassinfo.MyClass'
Yet MyClass should has the property classinfo
--
More information about the Digitalmars-d-bugs
mailing list