using System; using System.Collections.Generic; using System.Linq; namespace Repro { public enum Bla { A,B } class Driver { static void TestEnumerator () { object obj = new K[10]; IEnumerable dd = (IEnumerable)obj; var tx = dd.GetEnumerator (); IEnumerator x = (IEnumerator)tx; x.MoveNext (); T t = x.Current; } static void TestBadEnumerator () { try { object obj = new K[10]; IEnumerable dd = (IEnumerable)obj; var tx = dd.GetEnumerator (); IEnumerator x = (IEnumerator)tx; x.MoveNext (); T t = x.Current; throw new Exception (string.Format ("An InvalidCastException should be thrown for {0} and {1}", typeof (K), typeof (T))); } catch (InvalidCastException) { } } public static int Main () { TestEnumerator (); TestEnumerator (); TestEnumerator (); TestEnumerator (); TestEnumerator (); TestEnumerator (); TestEnumerator (); TestEnumerator (); TestEnumerator (); TestEnumerator (); TestEnumerator (); TestEnumerator (); TestEnumerator> (); TestEnumerator> (); TestEnumerator> (); TestEnumerator> (); TestEnumerator> (); TestEnumerator> (); TestEnumerator (); TestEnumerator (); TestBadEnumerator (); TestBadEnumerator (); TestBadEnumerator (); TestBadEnumerator> (); TestEnumerator (); TestEnumerator> (); TestEnumerator> (); TestEnumerator> (); return 0; } } }