// use ldftn on non-boxed instances either to share mutated state
//
parent = sm_parent.Parent.PartialContainer;
- }
- } else {
- //
- // For iterators we can host everything in one class
- //
- if (sm is IteratorStorey)
+ } else if (sm is IteratorStorey) {
+ //
+ // For iterators we can host everything in one class
+ //
parent = storey = sm;
+ }
}
}
--- /dev/null
+using System.Collections.Generic;
+using System.Linq;
+
+class B
+{
+ public object Foo (object obj)
+ {
+ return null;
+ }
+}
+
+class C
+{
+ B ctx = new B ();
+
+ public static void Main ()
+ {
+ foreach (var c in new C ().Test ()) {
+ }
+ }
+
+ IEnumerable<ushort> Test ()
+ {
+ string[] s = new[] { "a", "b", "c" };
+
+ var m = s.Select (l => ctx.Foo (l)).ToArray ();
+
+ yield break;
+ }
+}
+
<method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable<int>.GetEnumerator()" attrs="481">\r
<size>40</size>\r
</method>\r
- <method name="Void <Test>m__0()" attrs="129">\r
- <size>52</size>\r
- </method>\r
<method name="Void .ctor()" attrs="6278">\r
<size>7</size>\r
</method>\r
+ <method name="Void <>m__0()" attrs="131">\r
+ <size>57</size>\r
+ </method>\r
</type>\r
- <type name="M+<Test>c__AnonStorey1">\r
+ <type name="M+<Test>c__Iterator0+<Test>c__AnonStorey1">\r
<method name="Void <>m__1()" attrs="131">\r
<size>24</size>\r
</method>\r
</method>\r
</type>\r
</test>\r
+ <test name="gtest-iter-31.cs">\r
+ <type name="B">\r
+ <method name="System.Object Foo(System.Object)" attrs="134">\r
+ <size>10</size>\r
+ </method>\r
+ <method name="Void .ctor()" attrs="6278">\r
+ <size>7</size>\r
+ </method>\r
+ </type>\r
+ <type name="C">\r
+ <method name="Void Main()" attrs="150">\r
+ <size>62</size>\r
+ </method>\r
+ <method name="System.Collections.Generic.IEnumerable`1[System.UInt16] Test()" attrs="129">\r
+ <size>30</size>\r
+ </method>\r
+ <method name="Void .ctor()" attrs="6278">\r
+ <size>18</size>\r
+ </method>\r
+ </type>\r
+ <type name="C+<Test>c__Iterator0">\r
+ <method name="UInt16 System.Collections.Generic.IEnumerator<ushort>.get_Current()" attrs="2529">\r
+ <size>14</size>\r
+ </method>\r
+ <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">\r
+ <size>19</size>\r
+ </method>\r
+ <method name="Boolean MoveNext()" attrs="486">\r
+ <size>81</size>\r
+ </method>\r
+ <method name="Void Dispose()" attrs="486">\r
+ <size>1</size>\r
+ </method>\r
+ <method name="Void Reset()" attrs="486">\r
+ <size>6</size>\r
+ </method>\r
+ <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">\r
+ <size>14</size>\r
+ </method>\r
+ <method name="System.Collections.Generic.IEnumerator`1[System.UInt16] System.Collections.Generic.IEnumerable<ushort>.GetEnumerator()" attrs="481">\r
+ <size>40</size>\r
+ </method>\r
+ <method name="System.Object <>m__0(System.String)" attrs="131">\r
+ <size>25</size>\r
+ </method>\r
+ <method name="Void .ctor()" attrs="6278">\r
+ <size>7</size>\r
+ </method>\r
+ </type>\r
+ </test>\r
<test name="gtest-lambda-01.cs">\r
<type name="IntFunc">\r
<method name="Int32 Invoke(Int32)" attrs="454">\r