X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Ftests%2Fgtest-078.cs;h=46ec88e450573f3780cf354d2341a1ab335452ea;hb=bcefc710782c9e95d3e9bcad58d4bcf1a944150d;hp=4ef3c9b44ff9119d195522d4cdf6415557fdfe5c;hpb=0443306d611d0830e27327e1f0a3ef3457dfa535;p=mono.git diff --git a/mcs/tests/gtest-078.cs b/mcs/tests/gtest-078.cs index 4ef3c9b44ff..46ec88e4505 100644 --- a/mcs/tests/gtest-078.cs +++ b/mcs/tests/gtest-078.cs @@ -1,17 +1,66 @@ using System; -using System.Collections; -public class Test +struct S : IDisposable { - public static void Main () - { - foreach (object o in new Test ()) - Console.WriteLine (o); - } - - public IEnumerator GetEnumerator () - { - foreach (int i in new ArrayList ()) - yield return i; - } + public static int hit; + + void IDisposable.Dispose () + { + hit++; + } + + public void Dispose () + { + throw new ApplicationException (); + } +} + +class C : IDisposable +{ + + void IDisposable.Dispose () + { + } + + public void Dispose () + { + throw new ApplicationException (); + } +} + +class Test +{ + public static int Main () + { + S? nullable = null; + using (var a = nullable) { + } + + if (S.hit != 0) + return 1; + + using (var s = new S ()) { + } + + if (S.hit != 1) + return 2; + + C c = null; + GenMethod (c); + + using (S? a = nullable, b = nullable) { + } + + if (S.hit != 1) + return 3; + + Console.WriteLine ("ok"); + return 0; + } + + static void GenMethod (T t) where T : IDisposable + { + using (T t2 = t) { + } + } }