<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS0425</ErrorName>
  <Examples>
    <string>// CS0425: The constraints for type parameter `T' of method `Test.Baz.Method&lt;T,V&gt;()' must match the constraints for type parameter `T' of interface method `Test.IBar.Method&lt;T,V&gt;()'. Consider using an explicit interface implementation instead
// Line: 18
namespace Test
{
    using System;

    public interface IFoo
    {
    }

    public interface IBar
    {
        void Method&lt;T, V&gt;() where T : IFoo where V : T;
    }

    public class Baz : IBar
    {
        public void Method&lt;T, V&gt;() where T : IBar where V : T
        {
        }
    }
}
</string>
    <string>// CS0425: The constraints for type parameter `V' of method `Foo&lt;T&gt;.Test&lt;V&gt;()' must match the constraints for type parameter `U' of interface method `IFoo&lt;T&gt;.Test&lt;U&gt;()'. Consider using an explicit interface implementation instead
// Line: 13
interface IFoo&lt;T&gt;
{
	void Test&lt;U&gt; ()
		where U : T;
}

class Foo&lt;T&gt; : IFoo&lt;T&gt;
{
	public void Test&lt;V&gt; ()
		where V :X
	{ }
}

class X
{
	static void Main ()
	{ }
}
</string>
    <string>// CS0425: The constraints for type parameter `T' of method `CA.Foo&lt;T&gt;()' must match the constraints for type parameter `U' of interface method `IA.Foo&lt;U&gt;()'. Consider using an explicit interface implementation instead
// Line: 16

interface IA
{
	void Foo&lt;U&gt; ();
}

class CA
{
	public void Foo&lt;T&gt; () where T : class
	{
	}
}

class CB : CA, IA
{
	public static void Main ()
	{
	}
}
</string>
    <string>// CS0425: The constraints for type parameter `T' of method `C.Foo&lt;T&gt;()' must match the constraints for type parameter `T' of interface method `I.Foo&lt;T&gt;()'. Consider using an explicit interface implementation instead
// Line: 11

interface I
{
	void Foo&lt;T&gt; ();
}

class C : I
{
	public void Foo&lt;T&gt; () where T : struct
	{
	}
}
</string>
    <string>// CS0425: The constraints for type parameter `V' of method `Foo&lt;T,X&gt;.Test&lt;V&gt;()' must match the constraints for type parameter `U' of interface method `IFoo&lt;T&gt;.Test&lt;U&gt;()'. Consider using an explicit interface implementation instead
// Line: 11

interface IFoo&lt;T&gt;
{
	void Test&lt;U&gt; () where U : T;
}

class Foo&lt;T, X&gt; : IFoo&lt;T&gt;
{
	public void Test&lt;V&gt; () where V : X
	{
	}
}
</string>
    <string>// CS0425: The constraints for type parameter `T' of method `CA.Foo&lt;T&gt;()' must match the constraints for type parameter `U' of interface method `IA.Foo&lt;U&gt;()'. Consider using an explicit interface implementation instead
// Line: 5
// Compiler options: -r:CS0425-7-lib.dll

public class CB : CA, IA
{
	public static void Main ()
	{
	}
}
</string>
    <string>// CS0425: The constraints for type parameter `V' of method `Foo&lt;T&gt;.Test&lt;V&gt;()' must match the constraints for type parameter `U' of interface method `IFoo&lt;T&gt;.Test&lt;U&gt;()'. Consider using an explicit interface implementation instead
// Line: 12
interface IFoo&lt;T&gt;
{
	void Test&lt;U&gt; ()
		where U : T;
}

class Foo&lt;T&gt; : IFoo&lt;T&gt;
{
	public void Test&lt;V&gt; ()
	{ }
}

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