public void OldStyleNonCapturingLambda() { var ilSource = @" .class public auto ansi beforefieldinit C extends [mscorlib]System.Object { .method public hidebysig instance void M() cil managed { ldnull throw } .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { ldarg.0 call instance void [mscorlib]System.Object::.ctor() ret } .method private hidebysig static int32 '<M>b__0'() cil managed { ldnull throw } } // end of class C "; var module = ExpressionCompilerTestHelpers.GetModuleInstanceForIL(ilSource); var runtime = CreateRuntimeInstance(module, new[] { MscorlibRef }); var context = CreateMethodContext(runtime, "C.<M>b__0"); VerifyNoThis(context); }
public void AccessType() { var ilSource = @" .class public auto ansi beforefieldinit C extends [mscorlib]System.Object { .field private int32 Private .field family int32 Protected .field assembly int32 Internal .field public int32 Public .field famorassem int32 ProtectedInternal .field famandassem int32 ProtectedAndInternal .method public hidebysig instance void Test() cil managed { ret } .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { ldarg.0 call instance void [mscorlib]System.Object::.ctor() ret } // end of method C::.ctor } // end of class C "; var module = ExpressionCompilerTestHelpers.GetModuleInstanceForIL(ilSource); var runtime = CreateRuntimeInstance(module, new[] { MscorlibRef }); var context = CreateMethodContext(runtime, methodName: "C.Test"); Assert.Equal(DkmEvaluationResultAccessType.Private, GetResultProperties(context, "Private").AccessType); Assert.Equal(DkmEvaluationResultAccessType.Protected, GetResultProperties(context, "Protected").AccessType); Assert.Equal(DkmEvaluationResultAccessType.Internal, GetResultProperties(context, "Internal").AccessType); Assert.Equal(DkmEvaluationResultAccessType.Public, GetResultProperties(context, "Public").AccessType); // As in dev12. Assert.Equal(DkmEvaluationResultAccessType.Internal, GetResultProperties(context, "ProtectedInternal").AccessType); Assert.Equal(DkmEvaluationResultAccessType.Internal, GetResultProperties(context, "ProtectedAndInternal").AccessType); Assert.Equal(DkmEvaluationResultAccessType.None, GetResultProperties(context, "null").AccessType); }
public void InstanceIterator_ExplicitInterfaceImplementation_OldName() { var ilSource = @" .class interface public abstract auto ansi I`1<T> { .method public hidebysig newslot abstract virtual instance class [mscorlib]System.Collections.IEnumerable F() cil managed { } // end of method I`1::F } // end of class I`1 .class public auto ansi beforefieldinit C extends [mscorlib]System.Object implements class I`1<int32> { .class auto ansi sealed nested private beforefieldinit '<I<System.Int32>'.'F>d__0' extends [mscorlib]System.Object implements class [mscorlib]System.Collections.Generic.IEnumerable`1<object>, [mscorlib]System.Collections.IEnumerable, class [mscorlib]System.Collections.Generic.IEnumerator`1<object>, [mscorlib]System.Collections.IEnumerator, [mscorlib]System.IDisposable { .field private object '<>2__current' .field private int32 '<>1__state' .field private int32 '<>l__initialThreadId' .field public class C '<>4__this' .method private hidebysig newslot virtual final instance class [mscorlib]System.Collections.Generic.IEnumerator`1<object> 'System.Collections.Generic.IEnumerable<System.Object>.GetEnumerator'() cil managed { ldnull throw } .method private hidebysig newslot virtual final instance class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() cil managed { ldnull throw } .method private hidebysig newslot virtual final instance bool MoveNext() cil managed { ldnull throw } .method private hidebysig newslot specialname virtual final instance object 'System.Collections.Generic.IEnumerator<System.Object>.get_Current'() cil managed { ldnull throw } .method private hidebysig newslot virtual final instance void System.Collections.IEnumerator.Reset() cil managed { ldnull throw } .method private hidebysig newslot virtual final instance void System.IDisposable.Dispose() cil managed { ldnull throw } .method private hidebysig newslot specialname virtual final instance object System.Collections.IEnumerator.get_Current() cil managed { ldnull throw } .method public hidebysig specialname rtspecialname instance void .ctor(int32 '<>1__state') cil managed { ldarg.0 call instance void [mscorlib]System.Object::.ctor() ret } .property instance object 'System.Collections.Generic.IEnumerator<System.Object>.Current'() { .get instance object C/'<I<System.Int32>'.'F>d__0'::'System.Collections.Generic.IEnumerator<System.Object>.get_Current'() } .property instance object System.Collections.IEnumerator.Current() { .get instance object C/'<I<System.Int32>'.'F>d__0'::System.Collections.IEnumerator.get_Current() } } // end of class '<I<System.Int32>'.'F>d__0' .method private hidebysig newslot virtual final instance class [mscorlib]System.Collections.IEnumerable 'I<System.Int32>.F'() cil managed { ldnull throw } .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { ldarg.0 call instance void [mscorlib]System.Object::.ctor() ret } } // end of class C "; var module = ExpressionCompilerTestHelpers.GetModuleInstanceForIL(ilSource); var runtime = CreateRuntimeInstance(module, new[] { MscorlibRef }); var context = CreateMethodContext(runtime, "C.<I<System.Int32>.F>d__0.MoveNext"); VerifyHasThis(context, "C", @" { // Code size 7 (0x7) .maxstack 1 IL_0000: ldarg.0 IL_0001: ldfld ""C C.<I<System.Int32>.F>d__0.<>4__this"" IL_0006: ret }"); }