// CS1674: `NoIDispose': type used in a using statement must be implicitly convertible to `System.IDisposable'
// Line: 27

using System;

class MyDispose : IDisposable {
	public bool disposed;
	
	public void Dispose ()
	{
		disposed = true;
	}
}

class NoIDispose {
	static public MyDispose x;

	public NoIDispose ()
	{
	}
	
	static NoIDispose ()
	{
		x = new MyDispose ();
	}
	
	public static implicit operator MyDispose (NoIDispose a)
	{
		return x;
	}
}

class Y {
	static void B ()
	{
		using (NoIDispose a = new NoIDispose ()){
		}
	}
	
}