// Compiler options: -unsafe

unsafe struct S
{
	T Test<T> ()
	{
		return default (T);
	}

	public void M ()
	{
		fixed (S* ptr = &this)
			ptr->Test<string> ();
	}
}

class A
{
	public static int Main ()
	{
		new S ().M ();
		return 0;
	}
}