<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS0034</ErrorName>
  <Examples>
    <string>// CS0034: Operator `+' is ambiguous on operands of type `A' and `A'
// Line: 22

public class A {
	public static implicit operator int (A a)
	{
		return 0;
	}

	public static implicit operator string (A a)
	{
		return "a";
	}

	public static void Main ()
	{
		A a = new A ();
		object o = a + a;
		System.Console.WriteLine (o);
	}
}
</string>
    <string>// CS0034: Operator `+' is ambiguous on operands of type `Y' and `X'
// Line: 22
public class Y {
	public static implicit operator int (Y y) {
		return 0;
	}

	public static implicit operator string (Y y) {
		return null;
	}

	public static implicit operator Y (string y) {
		return null;
	}

	public static implicit operator Y (int y) {
		return null;
	}
}

public class X {
	public static implicit operator int (X x) {
		return 0;
	}

	public static implicit operator string (X x) {
		return null;
	}
}

public class C {
	public static void Main ()
	{
		Y y = new Y () + new X ();
	}
}

</string>
    <string>// CS0034: Operator `==' is ambiguous on operands of type `A' and `A'
// Line: 36

using System;

struct A
{
	public static implicit operator string (A c)
	{
		return null;
	}

	public static implicit operator Delegate (A c)
	{
		return null;
	}
}


class Program
{
	public static void Main ()
	{
		bool b = new A () == new A ();
	}
}
</string>
    <string>// CS0034: Operator `+' is ambiguous on operands of type `null' and `null'
// Line: 8

class C
{
	public static void Main ()
	{
		const string s3 = null + null;
	}
}</string>
    <string>// CS0034: Operator `==' is ambiguous on operands of type `Foo' and `Foo'
// Line: 23

public struct Foo
{
	public static implicit operator int? (Foo f)
	{
		return 1;
	}

	public static implicit operator bool? (Foo f)
	{
		return false;
	}
}

class C
{
	public static void Main ()
	{
		Foo f;
		Foo f2;
		var v = f == f2;
	}
}</string>
    <string>// CS0034: Operator `!=' is ambiguous on operands of type `Program.A' and `Program.B'
// Line: 36

using System;

class Program
{
	public class A
	{
		public static implicit operator string (A c)
		{
			return null;
		}
		
		public static implicit operator Delegate (A c)
		{
			return null;
		}
	}
	
	public class B
	{
		public static implicit operator string (B c)
		{
			return null;
		}
		
		public static implicit operator Delegate (B c)
		{
			return null;
		}
	}

	public static void Main (string [] args)
	{
		bool b = new A () != new B ();
	}
}
</string>
  </Examples>
</ErrorDocumentation>