summaryrefslogtreecommitdiff
path: root/mcs/errors/cs1674-3.cs
blob: ebc28e6dd9f1249e4aa300fe41953cf8600ea604 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// 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 ()){
		}
	}
	
}