diff --git a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj index 3c8938bcb..7a1f3e8bc 100644 --- a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj +++ b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj @@ -67,6 +67,7 @@ + diff --git a/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs b/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs index 15cd282f6..b306afe72 100644 --- a/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs +++ b/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs @@ -320,6 +320,12 @@ namespace ICSharpCode.Decompiler.Tests RunForLibrary(cscOptions: cscOptions); } + [Test] + public void CustomAttributeConflicts([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) + { + RunForLibrary(cscOptions: cscOptions); + } + [Test] public void CustomAttributeSamples([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.cs new file mode 100644 index 000000000..4a2892ffb --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.cs @@ -0,0 +1,184 @@ +using CustomAttributeConflicts.NS1; +using CustomAttributeConflicts.NS2; +using CustomAttributeConflicts.NSWithConflictingTypes; +using CustomAttributeConflicts.NSWithConflictingTypes2; +using System; + +namespace CustomAttributeConflicts +{ + internal class AttributeWithSameNameAsNormalType + { + } + + internal class TestClass + { + [Other] + public void Test1() + { + } + + [CustomAttributeConflicts.NS1.Simple] + public void Test2() + { + } + + [CustomAttributeConflicts.NS2.Simple] + public void Test3() + { + } + + [CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType] + public void Test4() + { + } + + [@My] + public void Test5() + { + } + + [@MyAttribute] + public void Test6() + { + } + + [CustomAttributeConflicts.NSWithConflictingTypes2.@MyOther] + public void Test7() + { + } + + [CustomAttributeConflicts.NSWithConflictingTypes2.@MyOtherAttribute] + public void Test8() + { + } + } +} +// The order of types in namespaces is completely different when compiling with the Roslyn compiler +#if ROSLYN +namespace CustomAttributeConflicts.NS1 +{ + internal class OtherAttribute : Attribute + { + } + internal class SimpleAttribute : Attribute + { + } +} +namespace CustomAttributeConflicts.NS2 +{ + internal class SimpleAttribute : Attribute + { + } +} +namespace CustomAttributeConflicts.NS1 +{ + internal class AttributeWithSameNameAsNormalType : Attribute + { + } +} +namespace CustomAttributeConflicts.NSWithConflictingTypes +{ + internal class My : Attribute + { + } + internal class MyAttribute : Attribute + { + } +} +namespace CustomAttributeConflicts.NSWithConflictingTypes2 +{ + + internal class MyOther : Attribute + { + } + internal class MyOtherAttribute : Attribute + { + } + internal class MyOtherAttributeAttribute : Attribute + { + } +} +namespace CustomAttributeConflicts.NSWithConflictingTypes +{ + internal class MyAttributeAttribute : Attribute + { + } + internal class MyOther : Attribute + { + } + internal class MyOtherAttribute : Attribute + { + } + internal class MyOtherAttributeAttribute : Attribute + { + } +} +#else +namespace CustomAttributeConflicts.NS1 +{ + internal class OtherAttribute : Attribute + { + } + + internal class SimpleAttribute : Attribute + { + } +} + +namespace CustomAttributeConflicts.NS2 +{ + internal class SimpleAttribute : Attribute + { + } +} + +namespace CustomAttributeConflicts.NS1 +{ + internal class AttributeWithSameNameAsNormalType : Attribute + { + } +} +namespace CustomAttributeConflicts.NSWithConflictingTypes +{ + internal class My : Attribute + { + } + internal class MyAttribute : Attribute + { + } +} +namespace CustomAttributeConflicts.NSWithConflictingTypes2 +{ + internal class MyOther : Attribute + { + } + internal class MyOtherAttribute : Attribute + { + } +} +namespace CustomAttributeConflicts.NSWithConflictingTypes +{ + internal class MyAttributeAttribute : Attribute + { + } + + internal class MyOther : Attribute + { + } + + internal class MyOtherAttribute : Attribute + { + } + + internal class MyOtherAttributeAttribute : Attribute + { + } +} + +namespace CustomAttributeConflicts.NSWithConflictingTypes2 +{ + internal class MyOtherAttributeAttribute : Attribute + { + } +} +#endif \ No newline at end of file diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.il new file mode 100644 index 000000000..e3e19eea9 --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.il @@ -0,0 +1,340 @@ + + + + +// 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 CustomAttributeConflicts +{ + .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 CustomAttributeConflicts.dll +.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 CustomAttributeConflicts.AttributeWithSameNameAsNormalType + 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 AttributeWithSameNameAsNormalType::.ctor + +} // end of class CustomAttributeConflicts.AttributeWithSameNameAsNormalType + +.class private auto ansi beforefieldinit CustomAttributeConflicts.TestClass + extends [mscorlib]System.Object +{ + .method public hidebysig instance void + Test1() cil managed + { + .custom instance void CustomAttributeConflicts.NS1.OtherAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test1 + + .method public hidebysig instance void + Test2() cil managed + { + .custom instance void CustomAttributeConflicts.NS1.SimpleAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test2 + + .method public hidebysig instance void + Test3() cil managed + { + .custom instance void CustomAttributeConflicts.NS2.SimpleAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test3 + + .method public hidebysig instance void + Test4() cil managed + { + .custom instance void CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test4 + + .method public hidebysig instance void + Test5() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes.My::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test5 + + .method public hidebysig instance void + Test6() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes.MyAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test6 + + .method public hidebysig instance void + Test7() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes2.MyOther::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test7 + + .method public hidebysig instance void + Test8() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test8 + + .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 TestClass::.ctor + +} // end of class CustomAttributeConflicts.TestClass + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS1.OtherAttribute + extends [mscorlib]System.Attribute +{ + .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 OtherAttribute::.ctor + +} // end of class CustomAttributeConflicts.NS1.OtherAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS1.SimpleAttribute + extends [mscorlib]System.Attribute +{ + .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 SimpleAttribute::.ctor + +} // end of class CustomAttributeConflicts.NS1.SimpleAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS2.SimpleAttribute + extends [mscorlib]System.Attribute +{ + .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 SimpleAttribute::.ctor + +} // end of class CustomAttributeConflicts.NS2.SimpleAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType + extends [mscorlib]System.Attribute +{ + .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 AttributeWithSameNameAsNormalType::.ctor + +} // end of class CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.My + extends [mscorlib]System.Attribute +{ + .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 My::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.My + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyAttribute + extends [mscorlib]System.Attribute +{ + .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 MyAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes2.MyOther + extends [mscorlib]System.Attribute +{ + .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 MyOther::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes2.MyOther + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyAttributeAttribute + extends [mscorlib]System.Attribute +{ + .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 MyAttributeAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyAttributeAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyOther + extends [mscorlib]System.Attribute +{ + .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 MyOther::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyOther + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttributeAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttributeAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttributeAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttributeAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttributeAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttributeAttribute + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.opt.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.opt.il new file mode 100644 index 000000000..6c6098f3a --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.opt.il @@ -0,0 +1,332 @@ + + + + +// 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 CustomAttributeConflicts.opt +{ + .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 CustomAttributeConflicts.opt.dll +.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 CustomAttributeConflicts.AttributeWithSameNameAsNormalType + 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 AttributeWithSameNameAsNormalType::.ctor + +} // end of class CustomAttributeConflicts.AttributeWithSameNameAsNormalType + +.class private auto ansi beforefieldinit CustomAttributeConflicts.TestClass + extends [mscorlib]System.Object +{ + .method public hidebysig instance void + Test1() cil managed + { + .custom instance void CustomAttributeConflicts.NS1.OtherAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test1 + + .method public hidebysig instance void + Test2() cil managed + { + .custom instance void CustomAttributeConflicts.NS1.SimpleAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test2 + + .method public hidebysig instance void + Test3() cil managed + { + .custom instance void CustomAttributeConflicts.NS2.SimpleAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test3 + + .method public hidebysig instance void + Test4() cil managed + { + .custom instance void CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test4 + + .method public hidebysig instance void + Test5() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes.My::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test5 + + .method public hidebysig instance void + Test6() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes.MyAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test6 + + .method public hidebysig instance void + Test7() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes2.MyOther::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test7 + + .method public hidebysig instance void + Test8() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test8 + + .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 TestClass::.ctor + +} // end of class CustomAttributeConflicts.TestClass + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS1.OtherAttribute + extends [mscorlib]System.Attribute +{ + .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 OtherAttribute::.ctor + +} // end of class CustomAttributeConflicts.NS1.OtherAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS1.SimpleAttribute + extends [mscorlib]System.Attribute +{ + .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 SimpleAttribute::.ctor + +} // end of class CustomAttributeConflicts.NS1.SimpleAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS2.SimpleAttribute + extends [mscorlib]System.Attribute +{ + .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 SimpleAttribute::.ctor + +} // end of class CustomAttributeConflicts.NS2.SimpleAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType + extends [mscorlib]System.Attribute +{ + .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 AttributeWithSameNameAsNormalType::.ctor + +} // end of class CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.My + extends [mscorlib]System.Attribute +{ + .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 My::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.My + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyAttribute + extends [mscorlib]System.Attribute +{ + .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 MyAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes2.MyOther + extends [mscorlib]System.Attribute +{ + .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 MyOther::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes2.MyOther + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyAttributeAttribute + extends [mscorlib]System.Attribute +{ + .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 MyAttributeAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyAttributeAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyOther + extends [mscorlib]System.Attribute +{ + .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 MyOther::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyOther + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttributeAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttributeAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttributeAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttributeAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttributeAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttributeAttribute + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.opt.roslyn.il new file mode 100644 index 000000000..1a6fb98b7 --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.opt.roslyn.il @@ -0,0 +1,336 @@ + + + + +// 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 CustomAttributeConflicts +{ + .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 CustomAttributeConflicts.dll +.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 CustomAttributeConflicts.AttributeWithSameNameAsNormalType + 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 AttributeWithSameNameAsNormalType::.ctor + +} // end of class CustomAttributeConflicts.AttributeWithSameNameAsNormalType + +.class private auto ansi beforefieldinit CustomAttributeConflicts.TestClass + extends [mscorlib]System.Object +{ + .method public hidebysig instance void + Test1() cil managed + { + .custom instance void CustomAttributeConflicts.NS1.OtherAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test1 + + .method public hidebysig instance void + Test2() cil managed + { + .custom instance void CustomAttributeConflicts.NS1.SimpleAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test2 + + .method public hidebysig instance void + Test3() cil managed + { + .custom instance void CustomAttributeConflicts.NS2.SimpleAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test3 + + .method public hidebysig instance void + Test4() cil managed + { + .custom instance void CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test4 + + .method public hidebysig instance void + Test5() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes.My::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test5 + + .method public hidebysig instance void + Test6() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes.MyAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test6 + + .method public hidebysig instance void + Test7() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes2.MyOther::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test7 + + .method public hidebysig instance void + Test8() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method TestClass::Test8 + + .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 TestClass::.ctor + +} // end of class CustomAttributeConflicts.TestClass + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes2.MyOther + extends [mscorlib]System.Attribute +{ + .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 MyOther::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes2.MyOther + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttributeAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttributeAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttributeAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.My + extends [mscorlib]System.Attribute +{ + .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 My::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.My + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyAttribute + extends [mscorlib]System.Attribute +{ + .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 MyAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyAttributeAttribute + extends [mscorlib]System.Attribute +{ + .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 MyAttributeAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyAttributeAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyOther + extends [mscorlib]System.Attribute +{ + .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 MyOther::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyOther + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttributeAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttributeAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttributeAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS2.SimpleAttribute + extends [mscorlib]System.Attribute +{ + .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 SimpleAttribute::.ctor + +} // end of class CustomAttributeConflicts.NS2.SimpleAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS1.OtherAttribute + extends [mscorlib]System.Attribute +{ + .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 OtherAttribute::.ctor + +} // end of class CustomAttributeConflicts.NS1.OtherAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS1.SimpleAttribute + extends [mscorlib]System.Attribute +{ + .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 SimpleAttribute::.ctor + +} // end of class CustomAttributeConflicts.NS1.SimpleAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType + extends [mscorlib]System.Attribute +{ + .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 AttributeWithSameNameAsNormalType::.ctor + +} // end of class CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.roslyn.il new file mode 100644 index 000000000..3494427e1 --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CustomAttributeConflicts.roslyn.il @@ -0,0 +1,359 @@ + + + + +// 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 CustomAttributeConflicts +{ + .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 CustomAttributeConflicts.dll +.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 CustomAttributeConflicts.AttributeWithSameNameAsNormalType + 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 AttributeWithSameNameAsNormalType::.ctor + +} // end of class CustomAttributeConflicts.AttributeWithSameNameAsNormalType + +.class private auto ansi beforefieldinit CustomAttributeConflicts.TestClass + extends [mscorlib]System.Object +{ + .method public hidebysig instance void + Test1() cil managed + { + .custom instance void CustomAttributeConflicts.NS1.OtherAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test1 + + .method public hidebysig instance void + Test2() cil managed + { + .custom instance void CustomAttributeConflicts.NS1.SimpleAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test2 + + .method public hidebysig instance void + Test3() cil managed + { + .custom instance void CustomAttributeConflicts.NS2.SimpleAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test3 + + .method public hidebysig instance void + Test4() cil managed + { + .custom instance void CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test4 + + .method public hidebysig instance void + Test5() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes.My::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test5 + + .method public hidebysig instance void + Test6() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes.MyAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test6 + + .method public hidebysig instance void + Test7() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes2.MyOther::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test7 + + .method public hidebysig instance void + Test8() cil managed + { + .custom instance void CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method TestClass::Test8 + + .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 TestClass::.ctor + +} // end of class CustomAttributeConflicts.TestClass + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes2.MyOther + extends [mscorlib]System.Attribute +{ + .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 MyOther::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes2.MyOther + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttributeAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttributeAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes2.MyOtherAttributeAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.My + extends [mscorlib]System.Attribute +{ + .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 My::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.My + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyAttribute + extends [mscorlib]System.Attribute +{ + .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 MyAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyAttributeAttribute + extends [mscorlib]System.Attribute +{ + .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 MyAttributeAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyAttributeAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyOther + extends [mscorlib]System.Attribute +{ + .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 MyOther::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyOther + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttributeAttribute + extends [mscorlib]System.Attribute +{ + .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 MyOtherAttributeAttribute::.ctor + +} // end of class CustomAttributeConflicts.NSWithConflictingTypes.MyOtherAttributeAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS2.SimpleAttribute + extends [mscorlib]System.Attribute +{ + .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 SimpleAttribute::.ctor + +} // end of class CustomAttributeConflicts.NS2.SimpleAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS1.OtherAttribute + extends [mscorlib]System.Attribute +{ + .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 OtherAttribute::.ctor + +} // end of class CustomAttributeConflicts.NS1.OtherAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS1.SimpleAttribute + extends [mscorlib]System.Attribute +{ + .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 SimpleAttribute::.ctor + +} // end of class CustomAttributeConflicts.NS1.SimpleAttribute + +.class private auto ansi beforefieldinit CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType + extends [mscorlib]System.Attribute +{ + .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 AttributeWithSameNameAsNormalType::.ctor + +} // end of class CustomAttributeConflicts.NS1.AttributeWithSameNameAsNormalType + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE ***********************