Browse Source

Update test case for #1145

pull/1600/head
Siegfried Pammer 8 years ago
parent
commit
497de76a2f
  1. 7
      ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1145.cs
  2. 41
      ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1145.il

7
ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1145.cs

@ -1,7 +1,12 @@
using System; using System;
public sealed class EvType : MulticastDelegate
{
}
[Serializable] [Serializable]
public class OwningClass public class OwningClass
{ {
public event Action EvName; public event EvType EvName;
} }

41
ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1145.il

@ -1,39 +1,44 @@
.class public auto ansi sealed EvType extends [mscorlib]System.MulticastDelegate
{
// Methods not included. Just the run of the mill ctor + {Begin|End}?Invoke
}
.class public auto ansi serializable beforefieldinit OwningClass .class public auto ansi serializable beforefieldinit OwningClass
{ {
.field class [System.Core]System.Action EvName .field class EvType EvName
.event [System.Core]System.Action EvName .event EvType EvName
{ {
.addon instance void OwningClass::add_EvName(class [System.Core]System.Action) .addon instance void OwningClass::add_EvName(class EvType)
.removeon instance void OwningClass::remove_EvName(class [System.Core]System.Action) .removeon instance void OwningClass::remove_EvName(class EvType)
} }
.method public hidebysig specialname .method public hidebysig specialname
instance void add_EvName ( instance void add_EvName (
class [System.Core]System.Action 'value' class EvType 'value'
) cil managed ) cil managed
{ {
.maxstack 3 .maxstack 3
.locals init ( .locals init (
[0] class [System.Core]System.Action, [0] class EvType,
[1] class [System.Core]System.Action [1] class EvType
) )
IL_0000: ldarg.0 IL_0000: ldarg.0
IL_0001: ldfld class [System.Core]System.Action OwningClass::EvName IL_0001: ldfld class EvType OwningClass::EvName
IL_0006: stloc.0 IL_0006: stloc.0
// loop start (head: IL_0007) // loop start (head: IL_0007)
IL_0007: ldloc.0 IL_0007: ldloc.0
IL_0008: stloc.1 IL_0008: stloc.1
IL_0009: ldarg.0 IL_0009: ldarg.0
IL_000a: ldflda class [System.Core]System.Action OwningClass::EvName IL_000a: ldflda class EvType OwningClass::EvName
IL_000f: ldloc.1 IL_000f: ldloc.1
IL_0010: ldarg.1 IL_0010: ldarg.1
IL_0011: call class [mscorlib]System.Delegate [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate) IL_0011: call class [mscorlib]System.Delegate [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
IL_0016: castclass [System.Core]System.Action IL_0016: castclass EvType
IL_001b: ldloc.0 IL_001b: ldloc.0
IL_001c: call !!0 [mscorlib]System.Threading.Interlocked::CompareExchange<class [System.Core]System.Action>(!!0&, !!0, !!0) IL_001c: call !!0 [mscorlib]System.Threading.Interlocked::CompareExchange<class EvType>(!!0&, !!0, !!0)
IL_0021: stloc.0 IL_0021: stloc.0
IL_0022: ldloc.0 IL_0022: ldloc.0
IL_0023: ldloc.1 IL_0023: ldloc.1
@ -44,29 +49,29 @@
.method public hidebysig specialname .method public hidebysig specialname
instance void remove_EvName ( instance void remove_EvName (
class [System.Core]System.Action 'value' class EvType 'value'
) cil managed ) cil managed
{ {
.maxstack 3 .maxstack 3
.locals init ( .locals init (
[0] class [System.Core]System.Action, [0] class EvType,
[1] class [System.Core]System.Action [1] class EvType
) )
IL_0000: ldarg.0 IL_0000: ldarg.0
IL_0001: ldfld class [System.Core]System.Action OwningClass::EvName IL_0001: ldfld class EvType OwningClass::EvName
IL_0006: stloc.0 IL_0006: stloc.0
// loop start (head: IL_0007) // loop start (head: IL_0007)
IL_0007: ldloc.0 IL_0007: ldloc.0
IL_0008: stloc.1 IL_0008: stloc.1
IL_0009: ldarg.0 IL_0009: ldarg.0
IL_000a: ldflda class [System.Core]System.Action OwningClass::EvName IL_000a: ldflda class EvType OwningClass::EvName
IL_000f: ldloc.1 IL_000f: ldloc.1
IL_0010: ldarg.1 IL_0010: ldarg.1
IL_0011: call class [mscorlib]System.Delegate [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate) IL_0011: call class [mscorlib]System.Delegate [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
IL_0016: castclass [System.Core]System.Action IL_0016: castclass EvType
IL_001b: ldloc.0 IL_001b: ldloc.0
IL_001c: call !!0 [mscorlib]System.Threading.Interlocked::CompareExchange<class [System.Core]System.Action>(!!0&, !!0, !!0) IL_001c: call !!0 [mscorlib]System.Threading.Interlocked::CompareExchange<class EvType>(!!0&, !!0, !!0)
IL_0021: stloc.0 IL_0021: stloc.0
IL_0022: ldloc.0 IL_0022: ldloc.0
IL_0023: ldloc.1 IL_0023: ldloc.1

Loading…
Cancel
Save