Browse Source

Update test case for #1145

pull/1600/head
Siegfried Pammer 7 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 @@ @@ -1,7 +1,12 @@
using System;
public sealed class EvType : MulticastDelegate
{
}
[Serializable]
public class OwningClass
{
public event Action EvName;
public event EvType EvName;
}

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

@ -1,39 +1,44 @@ @@ -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
{
.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)
.removeon instance void OwningClass::remove_EvName(class [System.Core]System.Action)
.addon instance void OwningClass::add_EvName(class EvType)
.removeon instance void OwningClass::remove_EvName(class EvType)
}
.method public hidebysig specialname
instance void add_EvName (
class [System.Core]System.Action 'value'
class EvType 'value'
) cil managed
{
.maxstack 3
.locals init (
[0] class [System.Core]System.Action,
[1] class [System.Core]System.Action
[0] class EvType,
[1] class EvType
)
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
// loop start (head: IL_0007)
IL_0007: ldloc.0
IL_0008: stloc.1
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_0010: ldarg.1
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_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_0022: ldloc.0
IL_0023: ldloc.1
@ -44,29 +49,29 @@ @@ -44,29 +49,29 @@
.method public hidebysig specialname
instance void remove_EvName (
class [System.Core]System.Action 'value'
class EvType 'value'
) cil managed
{
.maxstack 3
.locals init (
[0] class [System.Core]System.Action,
[1] class [System.Core]System.Action
[0] class EvType,
[1] class EvType
)
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
// loop start (head: IL_0007)
IL_0007: ldloc.0
IL_0008: stloc.1
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_0010: ldarg.1
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_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_0022: ldloc.0
IL_0023: ldloc.1

Loading…
Cancel
Save