<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS0455</ErrorName>
  <Examples>
    <string>// CS0455: Type parameter `Y' inherits conflicting constraints `class' and `long'
// Line: 11

abstract class A&lt;T&gt;
{
	public abstract void Foo&lt;U&gt; () where U : class, T;
}

class B : A&lt;long&gt;
{
	public override void Foo&lt;Y&gt; ()
	{
	}
}
</string>
    <string>// CS0455: Type parameter `T3' inherits conflicting constraints `X' and `Y'
// Line: 15

class X
{
}

class Y
{
}

class C&lt;T1, T2, T3, T4&gt;
	where T1 : X
	where T2 : T1
	where T3 : Y, T4
	where T4 : T2
{
}</string>
    <string>// CS0455: Type parameter `Y' inherits conflicting constraints `long' and `long?'
// Line: 11

abstract class A&lt;T1, T2&gt;
{
	public abstract void Foo&lt;U&gt; () where U : T1, T2;
}

class B : A&lt;long, long?&gt;
{
	public override void Foo&lt;Y&gt; ()
	{
	}
}
</string>
    <string>// CS0455: Type parameter `V' inherits conflicting constraints `B' and `A'
// Line: 13

class A
{ }

class B
{ }

class Foo&lt;T,U, V&gt;
	where T : A
	where U : B
	where V : U, T
{
}
</string>
    <string>// CS0455: Type parameter `T' inherits conflicting constraints `Test' and `World'
// Line: 11

class Test
{ }

class World
{ }

class Foo&lt;T,U&gt;
	where T : Test, U
	where U : World
{ }
</string>
    <string>// CS0455: Type parameter `T' inherits conflicting constraints `System.ValueType' and `Test'
// Line: 8

class Test
{ }

class Foo&lt;T,U&gt;
	where T : struct, U
	where U : Test
{ }
</string>
  </Examples>
</ErrorDocumentation>