<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS0312</ErrorName>
  <Examples>
    <string>// CS0312: The type `E?' cannot be used as type parameter `T' in the generic type or method `C&lt;System.Enum&gt;.Foo&lt;T&gt;(T)'. The nullable type `E?' does not satisfy constraint `System.Enum'
// Line: 16

enum E
{
}

class C&lt;U&gt;
{
	static void Foo&lt;T&gt; (T value) where T : U
	{
	}

	static void Test (E? s)
	{
		C&lt;System.Enum&gt;.Foo (s);
	}
}
</string>
    <string>// CS0312: The type `S?' cannot be used as type parameter `T' in the generic type or method `C&lt;S&gt;.Foo&lt;T&gt;(T)'. The nullable type `S?' does not satisfy constraint `S'
// Line: 16

struct S
{
}

class C&lt;U&gt;
{
	static void Foo&lt;T&gt; (T value) where T : U
	{
	}

	static void Test (S? s)
	{
		C&lt;S&gt;.Foo (s);
	}
}
</string>
    <string>// CS0312: The type `E?' cannot be used as type parameter `T' in the generic type or method `C&lt;E&gt;.Foo&lt;T&gt;(T)'. The nullable type `E?' does not satisfy constraint `E'
// Line: 16

enum E
{
}

class C&lt;U&gt;
{
	static void Foo&lt;T&gt; (T value) where T : U
	{
	}

	static void Test (E? e)
	{
		C&lt;E&gt;.Foo (e);
	}
}
</string>
  </Examples>
</ErrorDocumentation>