Compiler patch for runtime reflection

Vladimir Panteleev vladimir at thecybershadow.net
Fri Oct 21 12:07:34 PDT 2011


Hi,

Igor Stepanov has created a patch for DMD and Druntime which adds RTTI  
information for class and struct members.

Example:

import std.stdio;

class Foo
{
	static void PrintHello()
	{
		writeln("Hello");
	}
}
void main()
{
	auto info = cast(OffsetTypeInfo_StaticMethod)Foo.classinfo.m_offTi[0];
	assert(info.name == "PrintHello");
	auto print = cast(void function())info.pointer;
	print(); //prints "Hello"
}

While the inclusion of such functionality into the language remains a  
disputed matter, would anyone be interested in an unofficial patch for  
this?

Walter: would it be okay if the compiler changes were published as a  
GitHub fork, or should we stick to patches?

-- 
Best regards,
  Vladimir                            mailto:vladimir at thecybershadow.net


More information about the Digitalmars-d mailing list