mirror of https://github.com/icsharpcode/ILSpy.git
Browse Source
Add an option to not transform `Activator.CreateInstance<T>()` to `new T()`pull/3481/merge
17 changed files with 1180 additions and 3 deletions
@ -0,0 +1,68 @@ |
|||||||
|
using System; |
||||||
|
using System.Collections.Generic; |
||||||
|
|
||||||
|
namespace ICSharpCode.Decompiler.Tests.TestCases.Ugly |
||||||
|
{ |
||||||
|
internal class NoNewOfT<TOnType> where TOnType : new() |
||||||
|
{ |
||||||
|
public static TOnType CreateTOnType() |
||||||
|
{ |
||||||
|
#if !ROSLYN
|
||||||
|
#if OPT
|
||||||
|
if (default(TOnType) != null) |
||||||
|
{ |
||||||
|
return default(TOnType); |
||||||
|
} |
||||||
|
return Activator.CreateInstance<TOnType>(); |
||||||
|
#else
|
||||||
|
return (default(TOnType) == null) ? Activator.CreateInstance<TOnType>() : default(TOnType); |
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
return Activator.CreateInstance<TOnType>(); |
||||||
|
#endif
|
||||||
|
} |
||||||
|
|
||||||
|
public static T CreateUnconstrainedT<T>() where T : new() |
||||||
|
{ |
||||||
|
#if !ROSLYN
|
||||||
|
#if OPT
|
||||||
|
if (default(T) != null) |
||||||
|
{ |
||||||
|
return default(T); |
||||||
|
} |
||||||
|
return Activator.CreateInstance<T>(); |
||||||
|
#else
|
||||||
|
return (default(T) == null) ? Activator.CreateInstance<T>() : default(T); |
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
return Activator.CreateInstance<T>(); |
||||||
|
#endif
|
||||||
|
} |
||||||
|
|
||||||
|
public static T CreateClassT<T>() where T : class, new() |
||||||
|
{ |
||||||
|
return Activator.CreateInstance<T>(); |
||||||
|
} |
||||||
|
|
||||||
|
public static T CollectionInitializer<T>() where T : IList<int>, new() |
||||||
|
{ |
||||||
|
#if ROSLYN
|
||||||
|
T result = Activator.CreateInstance<T>(); |
||||||
|
result.Add(1); |
||||||
|
result.Add(2); |
||||||
|
result.Add(3); |
||||||
|
result.Add(4); |
||||||
|
result.Add(5); |
||||||
|
return result; |
||||||
|
#else
|
||||||
|
T val = ((default(T) == null) ? Activator.CreateInstance<T>() : default(T)); |
||||||
|
val.Add(1); |
||||||
|
val.Add(2); |
||||||
|
val.Add(3); |
||||||
|
val.Add(4); |
||||||
|
val.Add(5); |
||||||
|
return val; |
||||||
|
#endif
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
using System.Collections.Generic; |
||||||
|
|
||||||
|
namespace ICSharpCode.Decompiler.Tests.TestCases.Ugly |
||||||
|
{ |
||||||
|
internal class NoNewOfT<TOnType> where TOnType : new() |
||||||
|
{ |
||||||
|
public static TOnType CreateTOnType() |
||||||
|
{ |
||||||
|
return new TOnType(); |
||||||
|
} |
||||||
|
|
||||||
|
public static T CreateUnconstrainedT<T>() where T : new() |
||||||
|
{ |
||||||
|
return new T(); |
||||||
|
} |
||||||
|
|
||||||
|
public static T CreateClassT<T>() where T : class, new() |
||||||
|
{ |
||||||
|
return new T(); |
||||||
|
} |
||||||
|
|
||||||
|
public static T CollectionInitializer<T>() where T : IList<int>, new() |
||||||
|
{ |
||||||
|
return new T() { 1, 2, 3, 4, 5 }; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,176 @@ |
|||||||
|
|
||||||
|
// .NET IL Disassembler. Version 9.0.4 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Metadata version: v4.0.30319 |
||||||
|
.assembly extern mscorlib |
||||||
|
{ |
||||||
|
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. |
||||||
|
.ver 4:0:0:0 |
||||||
|
} |
||||||
|
.assembly tmpvpdwr1 |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx |
||||||
|
63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. |
||||||
|
.permissionset reqmin |
||||||
|
= {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} |
||||||
|
.hash algorithm 0x00008004 |
||||||
|
.ver 0:0:0:0 |
||||||
|
} |
||||||
|
.module tmpvpdwr1.tmp |
||||||
|
// MVID: {8447adbb-757d-4626-b7b7-846d745d90d0} |
||||||
|
.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.imagebase 0x10000000 |
||||||
|
.file alignment 0x00000200 |
||||||
|
.stackreserve 0x00100000 |
||||||
|
.subsystem 0x0003 // WINDOWS_CUI |
||||||
|
.corflags 0x00000001 // ILONLY |
||||||
|
|
||||||
|
|
||||||
|
// =============== CLASS MEMBERS DECLARATION =================== |
||||||
|
|
||||||
|
.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Ugly.NoNewOfT`1<.ctor TOnType> |
||||||
|
extends [mscorlib]System.Object |
||||||
|
{ |
||||||
|
.method public hidebysig static !TOnType |
||||||
|
CreateTOnType() cil managed |
||||||
|
{ |
||||||
|
// Code size 39 (0x27) |
||||||
|
.maxstack 1 |
||||||
|
.locals init (!TOnType V_0, |
||||||
|
!TOnType V_1) |
||||||
|
IL_0000: nop |
||||||
|
IL_0001: ldloca.s V_1 |
||||||
|
IL_0003: initobj !TOnType |
||||||
|
IL_0009: ldloc.1 |
||||||
|
IL_000a: box !TOnType |
||||||
|
IL_000f: brfalse.s IL_001c |
||||||
|
|
||||||
|
IL_0011: ldloca.s V_1 |
||||||
|
IL_0013: initobj !TOnType |
||||||
|
IL_0019: ldloc.1 |
||||||
|
IL_001a: br.s IL_0021 |
||||||
|
|
||||||
|
IL_001c: call !!0 [mscorlib]System.Activator::CreateInstance<!TOnType>() |
||||||
|
IL_0021: nop |
||||||
|
IL_0022: stloc.0 |
||||||
|
IL_0023: br.s IL_0025 |
||||||
|
|
||||||
|
IL_0025: ldloc.0 |
||||||
|
IL_0026: ret |
||||||
|
} // end of method NoNewOfT`1::CreateTOnType |
||||||
|
|
||||||
|
.method public hidebysig static !!T CreateUnconstrainedT<.ctor T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 39 (0x27) |
||||||
|
.maxstack 1 |
||||||
|
.locals init (!!T V_0, |
||||||
|
!!T V_1) |
||||||
|
IL_0000: nop |
||||||
|
IL_0001: ldloca.s V_1 |
||||||
|
IL_0003: initobj !!T |
||||||
|
IL_0009: ldloc.1 |
||||||
|
IL_000a: box !!T |
||||||
|
IL_000f: brfalse.s IL_001c |
||||||
|
|
||||||
|
IL_0011: ldloca.s V_1 |
||||||
|
IL_0013: initobj !!T |
||||||
|
IL_0019: ldloc.1 |
||||||
|
IL_001a: br.s IL_0021 |
||||||
|
|
||||||
|
IL_001c: call !!0 [mscorlib]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0021: nop |
||||||
|
IL_0022: stloc.0 |
||||||
|
IL_0023: br.s IL_0025 |
||||||
|
|
||||||
|
IL_0025: ldloc.0 |
||||||
|
IL_0026: ret |
||||||
|
} // end of method NoNewOfT`1::CreateUnconstrainedT |
||||||
|
|
||||||
|
.method public hidebysig static !!T CreateClassT<class .ctor T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 11 (0xb) |
||||||
|
.maxstack 1 |
||||||
|
.locals init (!!T V_0) |
||||||
|
IL_0000: nop |
||||||
|
IL_0001: call !!0 [mscorlib]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0006: stloc.0 |
||||||
|
IL_0007: br.s IL_0009 |
||||||
|
|
||||||
|
IL_0009: ldloc.0 |
||||||
|
IL_000a: ret |
||||||
|
} // end of method NoNewOfT`1::CreateClassT |
||||||
|
|
||||||
|
.method public hidebysig static !!T CollectionInitializer<.ctor (class [mscorlib]System.Collections.Generic.IList`1<int32>) T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 106 (0x6a) |
||||||
|
.maxstack 2 |
||||||
|
.locals init (!!T V_0, |
||||||
|
!!T V_1, |
||||||
|
!!T V_2) |
||||||
|
IL_0000: nop |
||||||
|
IL_0001: ldloca.s V_2 |
||||||
|
IL_0003: initobj !!T |
||||||
|
IL_0009: ldloc.2 |
||||||
|
IL_000a: box !!T |
||||||
|
IL_000f: brfalse.s IL_001c |
||||||
|
|
||||||
|
IL_0011: ldloca.s V_2 |
||||||
|
IL_0013: initobj !!T |
||||||
|
IL_0019: ldloc.2 |
||||||
|
IL_001a: br.s IL_0021 |
||||||
|
|
||||||
|
IL_001c: call !!0 [mscorlib]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0021: nop |
||||||
|
IL_0022: stloc.0 |
||||||
|
IL_0023: ldloc.0 |
||||||
|
IL_0024: box !!T |
||||||
|
IL_0029: ldc.i4.1 |
||||||
|
IL_002a: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_002f: nop |
||||||
|
IL_0030: ldloc.0 |
||||||
|
IL_0031: box !!T |
||||||
|
IL_0036: ldc.i4.2 |
||||||
|
IL_0037: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_003c: nop |
||||||
|
IL_003d: ldloc.0 |
||||||
|
IL_003e: box !!T |
||||||
|
IL_0043: ldc.i4.3 |
||||||
|
IL_0044: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0049: nop |
||||||
|
IL_004a: ldloc.0 |
||||||
|
IL_004b: box !!T |
||||||
|
IL_0050: ldc.i4.4 |
||||||
|
IL_0051: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0056: nop |
||||||
|
IL_0057: ldloc.0 |
||||||
|
IL_0058: box !!T |
||||||
|
IL_005d: ldc.i4.5 |
||||||
|
IL_005e: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0063: nop |
||||||
|
IL_0064: ldloc.0 |
||||||
|
IL_0065: stloc.1 |
||||||
|
IL_0066: br.s IL_0068 |
||||||
|
|
||||||
|
IL_0068: ldloc.1 |
||||||
|
IL_0069: ret |
||||||
|
} // end of method NoNewOfT`1::CollectionInitializer |
||||||
|
|
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor() cil managed |
||||||
|
{ |
||||||
|
// Code size 7 (0x7) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Object::.ctor() |
||||||
|
IL_0006: ret |
||||||
|
} // end of method NoNewOfT`1::.ctor |
||||||
|
|
||||||
|
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Ugly.NoNewOfT`1 |
||||||
|
|
||||||
|
|
||||||
|
// ============================================================= |
||||||
|
|
||||||
|
// *********** DISASSEMBLY COMPLETE *********************** |
@ -0,0 +1,241 @@ |
|||||||
|
|
||||||
|
// .NET IL Disassembler. Version 9.0.4 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Metadata version: v4.0.30319 |
||||||
|
.assembly extern mscorlib |
||||||
|
{ |
||||||
|
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. |
||||||
|
.ver 4:0:0:0 |
||||||
|
} |
||||||
|
.assembly tmpyccvci |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx |
||||||
|
63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. |
||||||
|
|
||||||
|
// --- The following custom attribute is added automatically, do not uncomment ------- |
||||||
|
// .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 07 01 00 00 00 00 ) |
||||||
|
|
||||||
|
.permissionset reqmin |
||||||
|
= {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} |
||||||
|
.hash algorithm 0x00008004 |
||||||
|
.ver 0:0:0:0 |
||||||
|
} |
||||||
|
.module tmpyccvci.tmp |
||||||
|
// MVID: {ff6a33b6-7f19-447b-b168-f5c528dc4b6f} |
||||||
|
.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.custom instance void System.Runtime.CompilerServices.RefSafetyRulesAttribute::.ctor(int32) = ( 01 00 0B 00 00 00 00 00 ) |
||||||
|
.imagebase 0x10000000 |
||||||
|
.file alignment 0x00000200 |
||||||
|
.stackreserve 0x00100000 |
||||||
|
.subsystem 0x0003 // WINDOWS_CUI |
||||||
|
.corflags 0x00000001 // ILONLY |
||||||
|
|
||||||
|
|
||||||
|
// =============== CLASS MEMBERS DECLARATION =================== |
||||||
|
|
||||||
|
.class private auto ansi sealed beforefieldinit Microsoft.CodeAnalysis.EmbeddedAttribute |
||||||
|
extends [mscorlib]System.Attribute |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.custom instance void Microsoft.CodeAnalysis.EmbeddedAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor() cil managed |
||||||
|
{ |
||||||
|
// Code size 8 (0x8) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Attribute::.ctor() |
||||||
|
IL_0006: nop |
||||||
|
IL_0007: ret |
||||||
|
} // end of method EmbeddedAttribute::.ctor |
||||||
|
|
||||||
|
} // end of class Microsoft.CodeAnalysis.EmbeddedAttribute |
||||||
|
|
||||||
|
.class private auto ansi sealed beforefieldinit System.Runtime.CompilerServices.RefSafetyRulesAttribute |
||||||
|
extends [mscorlib]System.Attribute |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.custom instance void Microsoft.CodeAnalysis.EmbeddedAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.custom instance void [mscorlib]System.AttributeUsageAttribute::.ctor(valuetype [mscorlib]System.AttributeTargets) = ( 01 00 02 00 00 00 02 00 54 02 0D 41 6C 6C 6F 77 // ........T..Allow |
||||||
|
4D 75 6C 74 69 70 6C 65 00 54 02 09 49 6E 68 65 // Multiple.T..Inhe |
||||||
|
72 69 74 65 64 00 ) // rited. |
||||||
|
.field public initonly int32 Version |
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor(int32 A_1) cil managed |
||||||
|
{ |
||||||
|
// Code size 15 (0xf) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Attribute::.ctor() |
||||||
|
IL_0006: nop |
||||||
|
IL_0007: ldarg.0 |
||||||
|
IL_0008: ldarg.1 |
||||||
|
IL_0009: stfld int32 System.Runtime.CompilerServices.RefSafetyRulesAttribute::Version |
||||||
|
IL_000e: ret |
||||||
|
} // end of method RefSafetyRulesAttribute::.ctor |
||||||
|
|
||||||
|
} // end of class System.Runtime.CompilerServices.RefSafetyRulesAttribute |
||||||
|
|
||||||
|
.class private auto ansi sealed beforefieldinit System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute |
||||||
|
extends [mscorlib]System.Attribute |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.AttributeUsageAttribute::.ctor(valuetype [mscorlib]System.AttributeTargets) = ( 01 00 FF 7F 00 00 02 00 54 02 0D 41 6C 6C 6F 77 // ........T..Allow |
||||||
|
4D 75 6C 74 69 70 6C 65 01 54 02 09 49 6E 68 65 // Multiple.T..Inhe |
||||||
|
72 69 74 65 64 00 ) // rited. |
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor(string featureName) cil managed |
||||||
|
{ |
||||||
|
// Code size 9 (0x9) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Attribute::.ctor() |
||||||
|
IL_0006: nop |
||||||
|
IL_0007: nop |
||||||
|
IL_0008: ret |
||||||
|
} // end of method CompilerFeatureRequiredAttribute::.ctor |
||||||
|
|
||||||
|
} // end of class System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute |
||||||
|
|
||||||
|
.class private auto ansi beforefieldinit System.Runtime.CompilerServices.IsExternalInit |
||||||
|
extends [mscorlib]System.Object |
||||||
|
{ |
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor() cil managed |
||||||
|
{ |
||||||
|
// Code size 8 (0x8) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Object::.ctor() |
||||||
|
IL_0006: nop |
||||||
|
IL_0007: ret |
||||||
|
} // end of method IsExternalInit::.ctor |
||||||
|
|
||||||
|
} // end of class System.Runtime.CompilerServices.IsExternalInit |
||||||
|
|
||||||
|
.class private auto ansi sealed beforefieldinit System.Runtime.CompilerServices.RequiredMemberAttribute |
||||||
|
extends [mscorlib]System.Attribute |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.AttributeUsageAttribute::.ctor(valuetype [mscorlib]System.AttributeTargets) = ( 01 00 8C 01 00 00 02 00 54 02 0D 41 6C 6C 6F 77 // ........T..Allow |
||||||
|
4D 75 6C 74 69 70 6C 65 00 54 02 09 49 6E 68 65 // Multiple.T..Inhe |
||||||
|
72 69 74 65 64 00 ) // rited. |
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor() cil managed |
||||||
|
{ |
||||||
|
// Code size 8 (0x8) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Attribute::.ctor() |
||||||
|
IL_0006: nop |
||||||
|
IL_0007: ret |
||||||
|
} // end of method RequiredMemberAttribute::.ctor |
||||||
|
|
||||||
|
} // end of class System.Runtime.CompilerServices.RequiredMemberAttribute |
||||||
|
|
||||||
|
.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Ugly.NoNewOfT`1<.ctor TOnType> |
||||||
|
extends [mscorlib]System.Object |
||||||
|
{ |
||||||
|
.method public hidebysig static !TOnType |
||||||
|
CreateTOnType() cil managed |
||||||
|
{ |
||||||
|
// Code size 11 (0xb) |
||||||
|
.maxstack 1 |
||||||
|
.locals init (!TOnType V_0) |
||||||
|
IL_0000: nop |
||||||
|
IL_0001: call !!0 [mscorlib]System.Activator::CreateInstance<!TOnType>() |
||||||
|
IL_0006: stloc.0 |
||||||
|
IL_0007: br.s IL_0009 |
||||||
|
|
||||||
|
IL_0009: ldloc.0 |
||||||
|
IL_000a: ret |
||||||
|
} // end of method NoNewOfT`1::CreateTOnType |
||||||
|
|
||||||
|
.method public hidebysig static !!T CreateUnconstrainedT<.ctor T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 11 (0xb) |
||||||
|
.maxstack 1 |
||||||
|
.locals init (!!T V_0) |
||||||
|
IL_0000: nop |
||||||
|
IL_0001: call !!0 [mscorlib]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0006: stloc.0 |
||||||
|
IL_0007: br.s IL_0009 |
||||||
|
|
||||||
|
IL_0009: ldloc.0 |
||||||
|
IL_000a: ret |
||||||
|
} // end of method NoNewOfT`1::CreateUnconstrainedT |
||||||
|
|
||||||
|
.method public hidebysig static !!T CreateClassT<class .ctor T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 11 (0xb) |
||||||
|
.maxstack 1 |
||||||
|
.locals init (!!T V_0) |
||||||
|
IL_0000: nop |
||||||
|
IL_0001: call !!0 [mscorlib]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0006: stloc.0 |
||||||
|
IL_0007: br.s IL_0009 |
||||||
|
|
||||||
|
IL_0009: ldloc.0 |
||||||
|
IL_000a: ret |
||||||
|
} // end of method NoNewOfT`1::CreateClassT |
||||||
|
|
||||||
|
.method public hidebysig static !!T CollectionInitializer<.ctor (class [mscorlib]System.Collections.Generic.IList`1<int32>) T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 88 (0x58) |
||||||
|
.maxstack 2 |
||||||
|
.locals init (!!T V_0, |
||||||
|
!!T V_1) |
||||||
|
IL_0000: nop |
||||||
|
IL_0001: call !!0 [mscorlib]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0006: stloc.0 |
||||||
|
IL_0007: ldloca.s V_0 |
||||||
|
IL_0009: ldc.i4.1 |
||||||
|
IL_000a: constrained. !!T |
||||||
|
IL_0010: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0015: nop |
||||||
|
IL_0016: ldloca.s V_0 |
||||||
|
IL_0018: ldc.i4.2 |
||||||
|
IL_0019: constrained. !!T |
||||||
|
IL_001f: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0024: nop |
||||||
|
IL_0025: ldloca.s V_0 |
||||||
|
IL_0027: ldc.i4.3 |
||||||
|
IL_0028: constrained. !!T |
||||||
|
IL_002e: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0033: nop |
||||||
|
IL_0034: ldloca.s V_0 |
||||||
|
IL_0036: ldc.i4.4 |
||||||
|
IL_0037: constrained. !!T |
||||||
|
IL_003d: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0042: nop |
||||||
|
IL_0043: ldloca.s V_0 |
||||||
|
IL_0045: ldc.i4.5 |
||||||
|
IL_0046: constrained. !!T |
||||||
|
IL_004c: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0051: nop |
||||||
|
IL_0052: ldloc.0 |
||||||
|
IL_0053: stloc.1 |
||||||
|
IL_0054: br.s IL_0056 |
||||||
|
|
||||||
|
IL_0056: ldloc.1 |
||||||
|
IL_0057: ret |
||||||
|
} // end of method NoNewOfT`1::CollectionInitializer |
||||||
|
|
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor() cil managed |
||||||
|
{ |
||||||
|
// Code size 8 (0x8) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Object::.ctor() |
||||||
|
IL_0006: nop |
||||||
|
IL_0007: ret |
||||||
|
} // end of method NoNewOfT`1::.ctor |
||||||
|
|
||||||
|
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Ugly.NoNewOfT`1 |
||||||
|
|
||||||
|
|
||||||
|
// ============================================================= |
||||||
|
|
||||||
|
// *********** DISASSEMBLY COMPLETE *********************** |
@ -0,0 +1,147 @@ |
|||||||
|
|
||||||
|
// .NET IL Disassembler. Version 9.0.4 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Metadata version: v4.0.30319 |
||||||
|
.assembly extern mscorlib |
||||||
|
{ |
||||||
|
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. |
||||||
|
.ver 4:0:0:0 |
||||||
|
} |
||||||
|
.assembly tmp1ekgox |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx |
||||||
|
63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. |
||||||
|
.permissionset reqmin |
||||||
|
= {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} |
||||||
|
.hash algorithm 0x00008004 |
||||||
|
.ver 0:0:0:0 |
||||||
|
} |
||||||
|
.module tmp1ekgox.tmp |
||||||
|
// MVID: {67ce32bd-0144-4136-a198-2fc9f941f624} |
||||||
|
.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.imagebase 0x10000000 |
||||||
|
.file alignment 0x00000200 |
||||||
|
.stackreserve 0x00100000 |
||||||
|
.subsystem 0x0003 // WINDOWS_CUI |
||||||
|
.corflags 0x00000001 // ILONLY |
||||||
|
|
||||||
|
|
||||||
|
// =============== CLASS MEMBERS DECLARATION =================== |
||||||
|
|
||||||
|
.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Ugly.NoNewOfT`1<.ctor TOnType> |
||||||
|
extends [mscorlib]System.Object |
||||||
|
{ |
||||||
|
.method public hidebysig static !TOnType |
||||||
|
CreateTOnType() cil managed |
||||||
|
{ |
||||||
|
// Code size 32 (0x20) |
||||||
|
.maxstack 1 |
||||||
|
.locals init (!TOnType V_0, |
||||||
|
!TOnType V_1) |
||||||
|
IL_0000: ldloca.s V_0 |
||||||
|
IL_0002: initobj !TOnType |
||||||
|
IL_0008: ldloc.0 |
||||||
|
IL_0009: box !TOnType |
||||||
|
IL_000e: brfalse.s IL_001a |
||||||
|
|
||||||
|
IL_0010: ldloca.s V_1 |
||||||
|
IL_0012: initobj !TOnType |
||||||
|
IL_0018: ldloc.1 |
||||||
|
IL_0019: ret |
||||||
|
|
||||||
|
IL_001a: call !!0 [mscorlib]System.Activator::CreateInstance<!TOnType>() |
||||||
|
IL_001f: ret |
||||||
|
} // end of method NoNewOfT`1::CreateTOnType |
||||||
|
|
||||||
|
.method public hidebysig static !!T CreateUnconstrainedT<.ctor T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 32 (0x20) |
||||||
|
.maxstack 1 |
||||||
|
.locals init (!!T V_0, |
||||||
|
!!T V_1) |
||||||
|
IL_0000: ldloca.s V_0 |
||||||
|
IL_0002: initobj !!T |
||||||
|
IL_0008: ldloc.0 |
||||||
|
IL_0009: box !!T |
||||||
|
IL_000e: brfalse.s IL_001a |
||||||
|
|
||||||
|
IL_0010: ldloca.s V_1 |
||||||
|
IL_0012: initobj !!T |
||||||
|
IL_0018: ldloc.1 |
||||||
|
IL_0019: ret |
||||||
|
|
||||||
|
IL_001a: call !!0 [mscorlib]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_001f: ret |
||||||
|
} // end of method NoNewOfT`1::CreateUnconstrainedT |
||||||
|
|
||||||
|
.method public hidebysig static !!T CreateClassT<class .ctor T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 6 (0x6) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: call !!0 [mscorlib]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0005: ret |
||||||
|
} // end of method NoNewOfT`1::CreateClassT |
||||||
|
|
||||||
|
.method public hidebysig static !!T CollectionInitializer<.ctor (class [mscorlib]System.Collections.Generic.IList`1<int32>) T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 95 (0x5f) |
||||||
|
.maxstack 2 |
||||||
|
.locals init (!!T V_0, |
||||||
|
!!T V_1, |
||||||
|
!!T V_2) |
||||||
|
IL_0000: ldloca.s V_1 |
||||||
|
IL_0002: initobj !!T |
||||||
|
IL_0008: ldloc.1 |
||||||
|
IL_0009: box !!T |
||||||
|
IL_000e: brfalse.s IL_001b |
||||||
|
|
||||||
|
IL_0010: ldloca.s V_2 |
||||||
|
IL_0012: initobj !!T |
||||||
|
IL_0018: ldloc.2 |
||||||
|
IL_0019: br.s IL_0020 |
||||||
|
|
||||||
|
IL_001b: call !!0 [mscorlib]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0020: stloc.0 |
||||||
|
IL_0021: ldloc.0 |
||||||
|
IL_0022: box !!T |
||||||
|
IL_0027: ldc.i4.1 |
||||||
|
IL_0028: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_002d: ldloc.0 |
||||||
|
IL_002e: box !!T |
||||||
|
IL_0033: ldc.i4.2 |
||||||
|
IL_0034: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0039: ldloc.0 |
||||||
|
IL_003a: box !!T |
||||||
|
IL_003f: ldc.i4.3 |
||||||
|
IL_0040: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0045: ldloc.0 |
||||||
|
IL_0046: box !!T |
||||||
|
IL_004b: ldc.i4.4 |
||||||
|
IL_004c: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0051: ldloc.0 |
||||||
|
IL_0052: box !!T |
||||||
|
IL_0057: ldc.i4.5 |
||||||
|
IL_0058: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_005d: ldloc.0 |
||||||
|
IL_005e: ret |
||||||
|
} // end of method NoNewOfT`1::CollectionInitializer |
||||||
|
|
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor() cil managed |
||||||
|
{ |
||||||
|
// Code size 7 (0x7) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Object::.ctor() |
||||||
|
IL_0006: ret |
||||||
|
} // end of method NoNewOfT`1::.ctor |
||||||
|
|
||||||
|
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Ugly.NoNewOfT`1 |
||||||
|
|
||||||
|
|
||||||
|
// ============================================================= |
||||||
|
|
||||||
|
// *********** DISASSEMBLY COMPLETE *********************** |
@ -0,0 +1,205 @@ |
|||||||
|
|
||||||
|
// .NET IL Disassembler. Version 9.0.4 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Metadata version: v4.0.30319 |
||||||
|
.assembly extern mscorlib |
||||||
|
{ |
||||||
|
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. |
||||||
|
.ver 4:0:0:0 |
||||||
|
} |
||||||
|
.assembly tmp4xstme |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx |
||||||
|
63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. |
||||||
|
|
||||||
|
// --- The following custom attribute is added automatically, do not uncomment ------- |
||||||
|
// .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 02 00 00 00 00 00 ) |
||||||
|
|
||||||
|
.permissionset reqmin |
||||||
|
= {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} |
||||||
|
.hash algorithm 0x00008004 |
||||||
|
.ver 0:0:0:0 |
||||||
|
} |
||||||
|
.module tmp4xstme.tmp |
||||||
|
// MVID: {a031faef-fcb2-420c-9cd3-6e9b01e7f81e} |
||||||
|
.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.custom instance void System.Runtime.CompilerServices.RefSafetyRulesAttribute::.ctor(int32) = ( 01 00 0B 00 00 00 00 00 ) |
||||||
|
.imagebase 0x10000000 |
||||||
|
.file alignment 0x00000200 |
||||||
|
.stackreserve 0x00100000 |
||||||
|
.subsystem 0x0003 // WINDOWS_CUI |
||||||
|
.corflags 0x00000001 // ILONLY |
||||||
|
|
||||||
|
|
||||||
|
// =============== CLASS MEMBERS DECLARATION =================== |
||||||
|
|
||||||
|
.class private auto ansi sealed beforefieldinit Microsoft.CodeAnalysis.EmbeddedAttribute |
||||||
|
extends [mscorlib]System.Attribute |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.custom instance void Microsoft.CodeAnalysis.EmbeddedAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor() cil managed |
||||||
|
{ |
||||||
|
// Code size 7 (0x7) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Attribute::.ctor() |
||||||
|
IL_0006: ret |
||||||
|
} // end of method EmbeddedAttribute::.ctor |
||||||
|
|
||||||
|
} // end of class Microsoft.CodeAnalysis.EmbeddedAttribute |
||||||
|
|
||||||
|
.class private auto ansi sealed beforefieldinit System.Runtime.CompilerServices.RefSafetyRulesAttribute |
||||||
|
extends [mscorlib]System.Attribute |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.custom instance void Microsoft.CodeAnalysis.EmbeddedAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.custom instance void [mscorlib]System.AttributeUsageAttribute::.ctor(valuetype [mscorlib]System.AttributeTargets) = ( 01 00 02 00 00 00 02 00 54 02 0D 41 6C 6C 6F 77 // ........T..Allow |
||||||
|
4D 75 6C 74 69 70 6C 65 00 54 02 09 49 6E 68 65 // Multiple.T..Inhe |
||||||
|
72 69 74 65 64 00 ) // rited. |
||||||
|
.field public initonly int32 Version |
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor(int32 A_1) cil managed |
||||||
|
{ |
||||||
|
// Code size 14 (0xe) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Attribute::.ctor() |
||||||
|
IL_0006: ldarg.0 |
||||||
|
IL_0007: ldarg.1 |
||||||
|
IL_0008: stfld int32 System.Runtime.CompilerServices.RefSafetyRulesAttribute::Version |
||||||
|
IL_000d: ret |
||||||
|
} // end of method RefSafetyRulesAttribute::.ctor |
||||||
|
|
||||||
|
} // end of class System.Runtime.CompilerServices.RefSafetyRulesAttribute |
||||||
|
|
||||||
|
.class private auto ansi sealed beforefieldinit System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute |
||||||
|
extends [mscorlib]System.Attribute |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.AttributeUsageAttribute::.ctor(valuetype [mscorlib]System.AttributeTargets) = ( 01 00 FF 7F 00 00 02 00 54 02 0D 41 6C 6C 6F 77 // ........T..Allow |
||||||
|
4D 75 6C 74 69 70 6C 65 01 54 02 09 49 6E 68 65 // Multiple.T..Inhe |
||||||
|
72 69 74 65 64 00 ) // rited. |
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor(string featureName) cil managed |
||||||
|
{ |
||||||
|
// Code size 7 (0x7) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Attribute::.ctor() |
||||||
|
IL_0006: ret |
||||||
|
} // end of method CompilerFeatureRequiredAttribute::.ctor |
||||||
|
|
||||||
|
} // end of class System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute |
||||||
|
|
||||||
|
.class private auto ansi beforefieldinit System.Runtime.CompilerServices.IsExternalInit |
||||||
|
extends [mscorlib]System.Object |
||||||
|
{ |
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor() cil managed |
||||||
|
{ |
||||||
|
// Code size 7 (0x7) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Object::.ctor() |
||||||
|
IL_0006: ret |
||||||
|
} // end of method IsExternalInit::.ctor |
||||||
|
|
||||||
|
} // end of class System.Runtime.CompilerServices.IsExternalInit |
||||||
|
|
||||||
|
.class private auto ansi sealed beforefieldinit System.Runtime.CompilerServices.RequiredMemberAttribute |
||||||
|
extends [mscorlib]System.Attribute |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.AttributeUsageAttribute::.ctor(valuetype [mscorlib]System.AttributeTargets) = ( 01 00 8C 01 00 00 02 00 54 02 0D 41 6C 6C 6F 77 // ........T..Allow |
||||||
|
4D 75 6C 74 69 70 6C 65 00 54 02 09 49 6E 68 65 // Multiple.T..Inhe |
||||||
|
72 69 74 65 64 00 ) // rited. |
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor() cil managed |
||||||
|
{ |
||||||
|
// Code size 7 (0x7) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Attribute::.ctor() |
||||||
|
IL_0006: ret |
||||||
|
} // end of method RequiredMemberAttribute::.ctor |
||||||
|
|
||||||
|
} // end of class System.Runtime.CompilerServices.RequiredMemberAttribute |
||||||
|
|
||||||
|
.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Ugly.NoNewOfT`1<.ctor TOnType> |
||||||
|
extends [mscorlib]System.Object |
||||||
|
{ |
||||||
|
.method public hidebysig static !TOnType |
||||||
|
CreateTOnType() cil managed |
||||||
|
{ |
||||||
|
// Code size 6 (0x6) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: call !!0 [mscorlib]System.Activator::CreateInstance<!TOnType>() |
||||||
|
IL_0005: ret |
||||||
|
} // end of method NoNewOfT`1::CreateTOnType |
||||||
|
|
||||||
|
.method public hidebysig static !!T CreateUnconstrainedT<.ctor T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 6 (0x6) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: call !!0 [mscorlib]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0005: ret |
||||||
|
} // end of method NoNewOfT`1::CreateUnconstrainedT |
||||||
|
|
||||||
|
.method public hidebysig static !!T CreateClassT<class .ctor T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 6 (0x6) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: call !!0 [mscorlib]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0005: ret |
||||||
|
} // end of method NoNewOfT`1::CreateClassT |
||||||
|
|
||||||
|
.method public hidebysig static !!T CollectionInitializer<.ctor (class [mscorlib]System.Collections.Generic.IList`1<int32>) T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 78 (0x4e) |
||||||
|
.maxstack 2 |
||||||
|
.locals init (!!T V_0) |
||||||
|
IL_0000: call !!0 [mscorlib]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0005: stloc.0 |
||||||
|
IL_0006: ldloca.s V_0 |
||||||
|
IL_0008: ldc.i4.1 |
||||||
|
IL_0009: constrained. !!T |
||||||
|
IL_000f: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0014: ldloca.s V_0 |
||||||
|
IL_0016: ldc.i4.2 |
||||||
|
IL_0017: constrained. !!T |
||||||
|
IL_001d: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0022: ldloca.s V_0 |
||||||
|
IL_0024: ldc.i4.3 |
||||||
|
IL_0025: constrained. !!T |
||||||
|
IL_002b: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0030: ldloca.s V_0 |
||||||
|
IL_0032: ldc.i4.4 |
||||||
|
IL_0033: constrained. !!T |
||||||
|
IL_0039: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_003e: ldloca.s V_0 |
||||||
|
IL_0040: ldc.i4.5 |
||||||
|
IL_0041: constrained. !!T |
||||||
|
IL_0047: callvirt instance void class [mscorlib]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_004c: ldloc.0 |
||||||
|
IL_004d: ret |
||||||
|
} // end of method NoNewOfT`1::CollectionInitializer |
||||||
|
|
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor() cil managed |
||||||
|
{ |
||||||
|
// Code size 7 (0x7) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Object::.ctor() |
||||||
|
IL_0006: ret |
||||||
|
} // end of method NoNewOfT`1::.ctor |
||||||
|
|
||||||
|
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Ugly.NoNewOfT`1 |
||||||
|
|
||||||
|
|
||||||
|
// ============================================================= |
||||||
|
|
||||||
|
// *********** DISASSEMBLY COMPLETE *********************** |
@ -0,0 +1,115 @@ |
|||||||
|
|
||||||
|
// .NET IL Disassembler. Version 9.0.4 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Metadata version: v4.0.30319 |
||||||
|
.assembly extern System.Runtime |
||||||
|
{ |
||||||
|
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: |
||||||
|
.ver 10:0:0:0 |
||||||
|
} |
||||||
|
.assembly tmpauzspg |
||||||
|
{ |
||||||
|
.custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) |
||||||
|
.custom instance void [System.Runtime]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx |
||||||
|
63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. |
||||||
|
|
||||||
|
// --- The following custom attribute is added automatically, do not uncomment ------- |
||||||
|
// .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 02 00 00 00 00 00 ) |
||||||
|
|
||||||
|
.custom instance void [System.Runtime]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string) = ( 01 00 19 2E 4E 45 54 43 6F 72 65 41 70 70 2C 56 // ....NETCoreApp,V |
||||||
|
65 72 73 69 6F 6E 3D 76 31 30 2E 30 00 00 ) // ersion=v10.0.. |
||||||
|
.permissionset reqmin |
||||||
|
= {[System.Runtime]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} |
||||||
|
.hash algorithm 0x00008004 |
||||||
|
.ver 0:0:0:0 |
||||||
|
} |
||||||
|
.module tmpauzspg.tmp |
||||||
|
// MVID: {6d3a3b63-d01c-49f7-9515-565421f78266} |
||||||
|
.custom instance void [System.Runtime]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.custom instance void [System.Runtime]System.Runtime.CompilerServices.RefSafetyRulesAttribute::.ctor(int32) = ( 01 00 0B 00 00 00 00 00 ) |
||||||
|
.imagebase 0x10000000 |
||||||
|
.file alignment 0x00000200 |
||||||
|
.stackreserve 0x00100000 |
||||||
|
.subsystem 0x0003 // WINDOWS_CUI |
||||||
|
.corflags 0x00000001 // ILONLY |
||||||
|
|
||||||
|
|
||||||
|
// =============== CLASS MEMBERS DECLARATION =================== |
||||||
|
|
||||||
|
.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Ugly.NoNewOfT`1<.ctor TOnType> |
||||||
|
extends [System.Runtime]System.Object |
||||||
|
{ |
||||||
|
.method public hidebysig static !TOnType |
||||||
|
CreateTOnType() cil managed |
||||||
|
{ |
||||||
|
// Code size 6 (0x6) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: call !!0 [System.Runtime]System.Activator::CreateInstance<!TOnType>() |
||||||
|
IL_0005: ret |
||||||
|
} // end of method NoNewOfT`1::CreateTOnType |
||||||
|
|
||||||
|
.method public hidebysig static !!T CreateUnconstrainedT<.ctor T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 6 (0x6) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: call !!0 [System.Runtime]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0005: ret |
||||||
|
} // end of method NoNewOfT`1::CreateUnconstrainedT |
||||||
|
|
||||||
|
.method public hidebysig static !!T CreateClassT<class .ctor T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 6 (0x6) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: call !!0 [System.Runtime]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0005: ret |
||||||
|
} // end of method NoNewOfT`1::CreateClassT |
||||||
|
|
||||||
|
.method public hidebysig static !!T CollectionInitializer<.ctor (class [System.Runtime]System.Collections.Generic.IList`1<int32>) T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 78 (0x4e) |
||||||
|
.maxstack 2 |
||||||
|
.locals init (!!T V_0) |
||||||
|
IL_0000: call !!0 [System.Runtime]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0005: stloc.0 |
||||||
|
IL_0006: ldloca.s V_0 |
||||||
|
IL_0008: ldc.i4.1 |
||||||
|
IL_0009: constrained. !!T |
||||||
|
IL_000f: callvirt instance void class [System.Runtime]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0014: ldloca.s V_0 |
||||||
|
IL_0016: ldc.i4.2 |
||||||
|
IL_0017: constrained. !!T |
||||||
|
IL_001d: callvirt instance void class [System.Runtime]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0022: ldloca.s V_0 |
||||||
|
IL_0024: ldc.i4.3 |
||||||
|
IL_0025: constrained. !!T |
||||||
|
IL_002b: callvirt instance void class [System.Runtime]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0030: ldloca.s V_0 |
||||||
|
IL_0032: ldc.i4.4 |
||||||
|
IL_0033: constrained. !!T |
||||||
|
IL_0039: callvirt instance void class [System.Runtime]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_003e: ldloca.s V_0 |
||||||
|
IL_0040: ldc.i4.5 |
||||||
|
IL_0041: constrained. !!T |
||||||
|
IL_0047: callvirt instance void class [System.Runtime]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_004c: ldloc.0 |
||||||
|
IL_004d: ret |
||||||
|
} // end of method NoNewOfT`1::CollectionInitializer |
||||||
|
|
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor() cil managed |
||||||
|
{ |
||||||
|
// Code size 7 (0x7) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [System.Runtime]System.Object::.ctor() |
||||||
|
IL_0006: ret |
||||||
|
} // end of method NoNewOfT`1::.ctor |
||||||
|
|
||||||
|
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Ugly.NoNewOfT`1 |
||||||
|
|
||||||
|
|
||||||
|
// ============================================================= |
||||||
|
|
||||||
|
// *********** DISASSEMBLY COMPLETE *********************** |
@ -0,0 +1,145 @@ |
|||||||
|
|
||||||
|
// .NET IL Disassembler. Version 9.0.4 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Metadata version: v4.0.30319 |
||||||
|
.assembly extern System.Runtime |
||||||
|
{ |
||||||
|
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: |
||||||
|
.ver 10:0:0:0 |
||||||
|
} |
||||||
|
.assembly tmpybdlca |
||||||
|
{ |
||||||
|
.custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) |
||||||
|
.custom instance void [System.Runtime]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx |
||||||
|
63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. |
||||||
|
|
||||||
|
// --- The following custom attribute is added automatically, do not uncomment ------- |
||||||
|
// .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 07 01 00 00 00 00 ) |
||||||
|
|
||||||
|
.custom instance void [System.Runtime]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string) = ( 01 00 19 2E 4E 45 54 43 6F 72 65 41 70 70 2C 56 // ....NETCoreApp,V |
||||||
|
65 72 73 69 6F 6E 3D 76 31 30 2E 30 00 00 ) // ersion=v10.0.. |
||||||
|
.permissionset reqmin |
||||||
|
= {[System.Runtime]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} |
||||||
|
.hash algorithm 0x00008004 |
||||||
|
.ver 0:0:0:0 |
||||||
|
} |
||||||
|
.module tmpybdlca.tmp |
||||||
|
// MVID: {b57f13a4-d291-42ea-b595-3766c1f1470c} |
||||||
|
.custom instance void [System.Runtime]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) |
||||||
|
.custom instance void [System.Runtime]System.Runtime.CompilerServices.RefSafetyRulesAttribute::.ctor(int32) = ( 01 00 0B 00 00 00 00 00 ) |
||||||
|
.imagebase 0x10000000 |
||||||
|
.file alignment 0x00000200 |
||||||
|
.stackreserve 0x00100000 |
||||||
|
.subsystem 0x0003 // WINDOWS_CUI |
||||||
|
.corflags 0x00000001 // ILONLY |
||||||
|
|
||||||
|
|
||||||
|
// =============== CLASS MEMBERS DECLARATION =================== |
||||||
|
|
||||||
|
.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Ugly.NoNewOfT`1<.ctor TOnType> |
||||||
|
extends [System.Runtime]System.Object |
||||||
|
{ |
||||||
|
.method public hidebysig static !TOnType |
||||||
|
CreateTOnType() cil managed |
||||||
|
{ |
||||||
|
// Code size 11 (0xb) |
||||||
|
.maxstack 1 |
||||||
|
.locals init (!TOnType V_0) |
||||||
|
IL_0000: nop |
||||||
|
IL_0001: call !!0 [System.Runtime]System.Activator::CreateInstance<!TOnType>() |
||||||
|
IL_0006: stloc.0 |
||||||
|
IL_0007: br.s IL_0009 |
||||||
|
|
||||||
|
IL_0009: ldloc.0 |
||||||
|
IL_000a: ret |
||||||
|
} // end of method NoNewOfT`1::CreateTOnType |
||||||
|
|
||||||
|
.method public hidebysig static !!T CreateUnconstrainedT<.ctor T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 11 (0xb) |
||||||
|
.maxstack 1 |
||||||
|
.locals init (!!T V_0) |
||||||
|
IL_0000: nop |
||||||
|
IL_0001: call !!0 [System.Runtime]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0006: stloc.0 |
||||||
|
IL_0007: br.s IL_0009 |
||||||
|
|
||||||
|
IL_0009: ldloc.0 |
||||||
|
IL_000a: ret |
||||||
|
} // end of method NoNewOfT`1::CreateUnconstrainedT |
||||||
|
|
||||||
|
.method public hidebysig static !!T CreateClassT<class .ctor T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 11 (0xb) |
||||||
|
.maxstack 1 |
||||||
|
.locals init (!!T V_0) |
||||||
|
IL_0000: nop |
||||||
|
IL_0001: call !!0 [System.Runtime]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0006: stloc.0 |
||||||
|
IL_0007: br.s IL_0009 |
||||||
|
|
||||||
|
IL_0009: ldloc.0 |
||||||
|
IL_000a: ret |
||||||
|
} // end of method NoNewOfT`1::CreateClassT |
||||||
|
|
||||||
|
.method public hidebysig static !!T CollectionInitializer<.ctor (class [System.Runtime]System.Collections.Generic.IList`1<int32>) T>() cil managed |
||||||
|
{ |
||||||
|
// Code size 88 (0x58) |
||||||
|
.maxstack 2 |
||||||
|
.locals init (!!T V_0, |
||||||
|
!!T V_1) |
||||||
|
IL_0000: nop |
||||||
|
IL_0001: call !!0 [System.Runtime]System.Activator::CreateInstance<!!0>() |
||||||
|
IL_0006: stloc.0 |
||||||
|
IL_0007: ldloca.s V_0 |
||||||
|
IL_0009: ldc.i4.1 |
||||||
|
IL_000a: constrained. !!T |
||||||
|
IL_0010: callvirt instance void class [System.Runtime]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0015: nop |
||||||
|
IL_0016: ldloca.s V_0 |
||||||
|
IL_0018: ldc.i4.2 |
||||||
|
IL_0019: constrained. !!T |
||||||
|
IL_001f: callvirt instance void class [System.Runtime]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0024: nop |
||||||
|
IL_0025: ldloca.s V_0 |
||||||
|
IL_0027: ldc.i4.3 |
||||||
|
IL_0028: constrained. !!T |
||||||
|
IL_002e: callvirt instance void class [System.Runtime]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0033: nop |
||||||
|
IL_0034: ldloca.s V_0 |
||||||
|
IL_0036: ldc.i4.4 |
||||||
|
IL_0037: constrained. !!T |
||||||
|
IL_003d: callvirt instance void class [System.Runtime]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0042: nop |
||||||
|
IL_0043: ldloca.s V_0 |
||||||
|
IL_0045: ldc.i4.5 |
||||||
|
IL_0046: constrained. !!T |
||||||
|
IL_004c: callvirt instance void class [System.Runtime]System.Collections.Generic.ICollection`1<int32>::Add(!0) |
||||||
|
IL_0051: nop |
||||||
|
IL_0052: ldloc.0 |
||||||
|
IL_0053: stloc.1 |
||||||
|
IL_0054: br.s IL_0056 |
||||||
|
|
||||||
|
IL_0056: ldloc.1 |
||||||
|
IL_0057: ret |
||||||
|
} // end of method NoNewOfT`1::CollectionInitializer |
||||||
|
|
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor() cil managed |
||||||
|
{ |
||||||
|
// Code size 8 (0x8) |
||||||
|
.maxstack 8 |
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [System.Runtime]System.Object::.ctor() |
||||||
|
IL_0006: nop |
||||||
|
IL_0007: ret |
||||||
|
} // end of method NoNewOfT`1::.ctor |
||||||
|
|
||||||
|
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Ugly.NoNewOfT`1 |
||||||
|
|
||||||
|
|
||||||
|
// ============================================================= |
||||||
|
|
||||||
|
// *********** DISASSEMBLY COMPLETE *********************** |
Loading…
Reference in new issue