<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS0453</ErrorName>
  <Examples>
    <string>// CS0453: The type `Bar?' must be a non-nullable value type in order to use it as type parameter `T' in the generic type or method `Foo&lt;T&gt;'
// Line: 14
public class Foo&lt;T&gt;
	where T : struct
{ }

public struct Bar
{ }

class X
{
	static void Main ()
	{
		Foo&lt;Bar?&gt; foo;
	}
}
</string>
    <string>// CS0453: The type `B.M' must be a non-nullable value type in order to use it as type parameter `T' in the generic type or method `Foo.Test_2&lt;T&gt;(this T)'
// Line: 20


using System;

public static class Foo
{
	public static string Test_2&lt;T&gt; (this T s) where T : struct
	{
		return null;
	}
}

namespace B
{
	public class M
	{
		public static void Main ()
		{
			new M().Test_2();
		}
	}
}</string>
    <string>// CS0453: The type `string' must be a non-nullable value type in order to use it as type parameter `T' in the generic type or method `C&lt;T&gt;'
// Line: 10

public class C&lt;T&gt; where T : struct
{
}

class A
{
	public void Foo (C&lt;string&gt;[] args)
	{
	}
}

</string>
    <string>// CS0453: The type `T' must be a non-nullable value type in order to use it as type parameter `T' in the generic type or method `System.Nullable&lt;T&gt;'
// Line: 14

using System;

public static class Nullable_Test {
	public static int Compare&lt;T&gt; (Nullable&lt;T&gt; left)
	{
		return 0;
	}
}</string>
    <string>// CS0453: The type `string' must be a non-nullable value type in order to use it as type parameter `T' in the generic type or method `C&lt;T&gt;'
// Line: 10

public class C&lt;T&gt; where T : struct
{
}

class A
{
	public C&lt;string&gt; Foo ()
	{
	}
}

</string>
    <string>// CS0453: The type `dynamic' must be a non-nullable value type in order to use it as type parameter `T' in the generic type or method `Tester.Foo&lt;T&gt;(T)'
// Line: 10

class Tester
{
	static void Foo&lt;T&gt; (T t) where T : struct
	{
	}
	
	public static int Main ()
	{
		dynamic d = 1;
		Foo&lt;dynamic&gt;(d);
		return 0;
	}
}
</string>
    <string>// CS0453: The type `Foo' must be a non-nullable value type in order to use it as type parameter `T' in the generic type or method `System.Nullable&lt;T&gt;'
// Line: 10
public class Foo
{ }

class X
{
	static void Main ()
	{
		Foo? foo = new Foo ();
	}
}
</string>
    <string>// CS0453: The type `X' must be a non-nullable value type in order to use it as type parameter `T' in the generic type or method `MyValue&lt;T&gt;'
// Line: 10
public class MyValue&lt;T&gt;
	where T : struct
{ }

class X
{
	MyValue&lt;X&gt; x;

	static void Main ()
	{ }
}
</string>
  </Examples>
</ErrorDocumentation>