a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
61 lines
896 B
C#
61 lines
896 B
C#
// Compiler options: -langversion:default
|
|
|
|
using System;
|
|
using System.Collections;
|
|
|
|
public class Foo : IDisposable
|
|
{
|
|
public readonly int Data;
|
|
|
|
public Foo (int data)
|
|
{
|
|
this.Data = data;
|
|
}
|
|
|
|
public bool disposed;
|
|
|
|
public void Dispose ()
|
|
{
|
|
disposed = true;
|
|
}
|
|
}
|
|
|
|
class X
|
|
{
|
|
public static IEnumerable Test (int a, int b)
|
|
{
|
|
Foo foo3, foo4;
|
|
|
|
using (Foo foo1 = new Foo (a), foo2 = new Foo (b)) {
|
|
yield return foo1.Data;
|
|
yield return foo2.Data;
|
|
|
|
foo3 = foo1;
|
|
foo4 = foo2;
|
|
}
|
|
|
|
yield return foo3.disposed;
|
|
yield return foo4.disposed;
|
|
}
|
|
|
|
public static int Main ()
|
|
{
|
|
ArrayList list = new ArrayList ();
|
|
foreach (object data in Test (3, 5))
|
|
list.Add (data);
|
|
|
|
if (list.Count != 4)
|
|
return 1;
|
|
if ((int) list [0] != 3)
|
|
return 2;
|
|
if ((int) list [1] != 5)
|
|
return 3;
|
|
if (!(bool) list [2])
|
|
return 4;
|
|
if (!(bool) list [3])
|
|
return 5;
|
|
|
|
return 0;
|
|
}
|
|
}
|