--- /dev/null
--- /dev/null
++// Compiler options: -langversion:default
++
++using System;
++using System.Collections;
++
++public class Test
++{
++ public IEnumerable Foo (int a)
++ {
++ yield return a;
++ yield return a * a;
++ yield break;
++ }
++}
++
++class X
++{
++ static int Main ()
++ {
++ Test test = new Test ();
++
++ IEnumerable a = test.Foo (5);
++
++ IEnumerator c = a.GetEnumerator ();
++ if (!c.MoveNext ())
++ return 5;
++ if ((int) c.Current != 5)
++ return 6;
++ if (!c.MoveNext ())
++ return 7;
++ if ((int) c.Current != 25)
++ return 8;
++
++ IEnumerator d = a.GetEnumerator ();
++
++ if ((int) c.Current != 25)
++ return 9;
++ if (!d.MoveNext ())
++ return 10;
++ if ((int) c.Current != 25)
++ return 11;
++ if ((int) d.Current != 5)
++ return 12;
++
++ if (c.MoveNext ())
++ return 13;
++
++ ((IDisposable) a).Dispose ();
++ return 0;
++ }
++}