<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS0208</ErrorName>
  <Examples>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `X&lt;A&gt;'
// Line: 12
// Compiler options: -unsafe

class X &lt;Y&gt; {
}

unsafe class A {

	static void Main ()
	{
		int size = sizeof (X&lt;A&gt;);
	}
}
</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `Splay&lt;T&gt;.Node'
// Line: 9
// Compiler options: /unsafe

public class Splay&lt;T&gt;
{
  unsafe private struct Node
  {
    private Node *            parent;
    private T                 data;
  } 
}

</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `Splay&lt;T&gt;.Node'
// Line: 10
// Compiler options: /unsafe
// Similar code to #75772, but without field of type T.

public class Splay&lt;T&gt;
{
  unsafe private struct Node
  {
    private Node *            parent;
  } 
}

</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `Splay&lt;T&gt;.Node'
// Line: 9
// Compiler options: /unsafe

public class Splay&lt;T&gt;
{
  unsafe private class Node
  {
    private Node *            parent;
    private T                 data;
  } 
}

</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `T'
// Line: 8

class X
{
	public static void Foo&lt;T&gt; (T t)
	{
		object o = sizeof (T);
	}
}
</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `S&lt;int&gt;.N'
// Line: 16
// Compiler options: -unsafe

struct S&lt;T&gt;
{
	public struct N
	{
	}
}

unsafe class Test
{
	public static void Main()
	{
		S&lt;int&gt;.N* a;
	}
}
</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `Foo'
// Line: 11
// Compiler options: -unsafe

public unsafe partial struct Foo
{
}

public unsafe partial struct Foo
{
	public Foo *foo;
	string x;
}


</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `T'
// Line: 7
// Compiler options: -unsafe

unsafe class Foo&lt;T&gt; where T : struct
{
	public T* Elements {
		get {
			return null;
		}
	}
}
</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `S'
// Line: 9
// Compiler options: /unsafe

unsafe public class C
{
	S* i;
}

public struct S
{
	AC ac;
}

abstract class AC
{
}
</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `CS208.Foo'
// Line: 20
// Compiler options: -unsafe

namespace CS208
{
	public class Foo
	{
	}

	public class Bar
	{
		unsafe static void Main ()
		{			
			Foo f = new Foo ();
			Foo *s = &amp;f;
		}
	}
}
</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `Foo.P'
// Line: 18
// Compiler options: -unsafe

public unsafe class Foo
{
        public class P
        {
            public P* GetEnumerator ()
            {
                return null;
            }
        }
       
        public static void Main ()
        {
            P o = new P ();
            foreach (P p in o)
            {
            }
        }
}
</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `object'
// Line: 11
// Compiler options: -unsafe

using System;
using System.Runtime.InteropServices;

class C
{
	[DllImport ("xml2")]
	unsafe static extern object* valuePop (IntPtr context);
	public static void Main ()
	{
	}
}
</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `X'
// Line: 8
// Compiler options: -unsafe

unsafe struct X {
	string a;
	static void Main () {
		X* y;
	}
}

</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `X'
// Line: 8
// Compiler options: -unsafe

unsafe struct X {
	string a;
	static void Main () {
		X x;
		void* y = &amp;x;
	}
}

</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `foo'
// Line: 11
// Compiler options: -unsafe

struct foo {
	public delegate void bar (int x);
	public bar barf;
}

unsafe class t {
	static void Main () {
		foo *f = null;
	}
}
</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `_Port'
// Line: 16
// Compiler options: -unsafe

using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential)]
internal unsafe struct _Port {
	[MarshalAs(UnmanagedType.ByValTStr, SizeConst=128)] char[] port;
}

unsafe class d {
	static void Main ()
	{
		_Port * port = null;
	}
}
</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `Foo'
// Line: 7
// Compiler options: -t:library -unsafe

public unsafe struct Foo
{
        public Foo *foo;
	string x;
}


</string>
    <string>// CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type `CS208.Foo'
// Line: 20
// Compiler options: -unsafe

namespace CS208
{
	public class Foo
	{
		public int Add (int a, int b)
		{
			return a + b;
		}
	}

	public class Bar
	{
		unsafe static void Main ()
		{			
			Foo f = new Foo ();
			void *s = &amp;f;
		}
	}
}
</string>
  </Examples>
</ErrorDocumentation>