Browse Source

Merge branch 'srm' of https://github.com/icsharpcode/ILSpy into srm

pull/1198/head
Siegfried Pammer 8 years ago
parent
commit
7cdf7c2e7a
  1. 5
      ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue982.cs
  2. 17
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/MemberTests.cs
  3. 51
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/MemberTests.il
  4. 45
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/MemberTests.opt.il
  5. 45
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/MemberTests.opt.roslyn.il
  6. 53
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/MemberTests.roslyn.il
  7. 2
      ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemTestCase.cs
  8. 2
      ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs
  9. 4
      ICSharpCode.Decompiler/CSharp/Resolver/CSharpOperators.cs
  10. 8
      ICSharpCode.Decompiler/CSharp/Resolver/ReducedExtensionMethod.cs
  11. 5
      ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs
  12. 4
      ICSharpCode.Decompiler/Semantics/MemberResolveResult.cs
  13. 2
      ICSharpCode.Decompiler/TypeSystem/ApplyAttributeTypeVisitor.cs
  14. 6
      ICSharpCode.Decompiler/TypeSystem/IEntity.cs
  15. 6
      ICSharpCode.Decompiler/TypeSystem/IField.cs
  16. 2
      ICSharpCode.Decompiler/TypeSystem/Implementation/FakeMember.cs
  17. 5
      ICSharpCode.Decompiler/TypeSystem/Implementation/KnownAttributes.cs
  18. 2
      ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataEvent.cs
  19. 9
      ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataField.cs
  20. 2
      ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataMethod.cs
  21. 5
      ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataProperty.cs
  22. 2
      ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataTypeDefinition.cs
  23. 4
      ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializedField.cs
  24. 4
      ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializedMember.cs
  25. 4
      ICSharpCode.Decompiler/TypeSystem/VarArgInstanceMethod.cs

5
ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue982.cs

@ -1,4 +1,6 @@
namespace ICSharpCode.Decompiler.Tests.TestCases.ILPretty using System.Runtime.CompilerServices;
namespace ICSharpCode.Decompiler.Tests.TestCases.ILPretty
{ {
internal class Issue982 internal class Issue982
{ {
@ -15,6 +17,7 @@
} }
} }
[IndexerName("Text2")]
public string this[int index] { public string this[int index] {
get { get {
return textStr2; return textStr2;

17
ICSharpCode.Decompiler.Tests/TestCases/Pretty/MemberTests.cs

@ -17,11 +17,28 @@
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
using System; using System;
using System.Reflection;
using System.Runtime.CompilerServices;
namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{ {
internal class MemberTests internal class MemberTests
{ {
public class IndexerNonDefaultName
{
[IndexerName("Foo")]
public int this[int index] {
get {
return 0;
}
}
}
[DefaultMember("Bar")]
public class NoDefaultMember
{
}
public const int IntConstant = 1; public const int IntConstant = 1;
public const decimal DecimalConstant = 2m; public const decimal DecimalConstant = 2m;

51
ICSharpCode.Decompiler.Tests/TestCases/Pretty/MemberTests.il

@ -32,6 +32,57 @@
.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.MemberTests .class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.MemberTests
extends [mscorlib]System.Object extends [mscorlib]System.Object
{ {
.class auto ansi nested public beforefieldinit IndexerNonDefaultName
extends [mscorlib]System.Object
{
.custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string) = ( 01 00 03 46 6F 6F 00 00 ) // ...Foo..
.method public hidebysig specialname
instance int32 get_Foo(int32 index) cil managed
{
// Code size 7 (0x7)
.maxstack 1
.locals init (int32 V_0)
IL_0000: nop
IL_0001: ldc.i4.0
IL_0002: stloc.0
IL_0003: br.s IL_0005
IL_0005: ldloc.0
IL_0006: ret
} // end of method IndexerNonDefaultName::get_Foo
.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 IndexerNonDefaultName::.ctor
.property instance int32 Foo(int32)
{
.get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MemberTests/IndexerNonDefaultName::get_Foo(int32)
} // end of property IndexerNonDefaultName::Foo
} // end of class IndexerNonDefaultName
.class auto ansi nested public beforefieldinit NoDefaultMember
extends [mscorlib]System.Object
{
.custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string) = ( 01 00 03 42 61 72 00 00 ) // ...Bar..
.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 NoDefaultMember::.ctor
} // end of class NoDefaultMember
.field public static literal int32 IntConstant = int32(0x00000001) .field public static literal int32 IntConstant = int32(0x00000001)
.field public static initonly valuetype [mscorlib]System.Decimal DecimalConstant .field public static initonly valuetype [mscorlib]System.Decimal DecimalConstant
.custom instance void [mscorlib]System.Runtime.CompilerServices.DecimalConstantAttribute::.ctor(uint8, .custom instance void [mscorlib]System.Runtime.CompilerServices.DecimalConstantAttribute::.ctor(uint8,

45
ICSharpCode.Decompiler.Tests/TestCases/Pretty/MemberTests.opt.il

@ -32,6 +32,51 @@
.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.MemberTests .class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.MemberTests
extends [mscorlib]System.Object extends [mscorlib]System.Object
{ {
.class auto ansi nested public beforefieldinit IndexerNonDefaultName
extends [mscorlib]System.Object
{
.custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string) = ( 01 00 03 46 6F 6F 00 00 ) // ...Foo..
.method public hidebysig specialname
instance int32 get_Foo(int32 index) cil managed
{
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: ret
} // end of method IndexerNonDefaultName::get_Foo
.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 IndexerNonDefaultName::.ctor
.property instance int32 Foo(int32)
{
.get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MemberTests/IndexerNonDefaultName::get_Foo(int32)
} // end of property IndexerNonDefaultName::Foo
} // end of class IndexerNonDefaultName
.class auto ansi nested public beforefieldinit NoDefaultMember
extends [mscorlib]System.Object
{
.custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string) = ( 01 00 03 42 61 72 00 00 ) // ...Bar..
.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 NoDefaultMember::.ctor
} // end of class NoDefaultMember
.field public static literal int32 IntConstant = int32(0x00000001) .field public static literal int32 IntConstant = int32(0x00000001)
.field public static initonly valuetype [mscorlib]System.Decimal DecimalConstant .field public static initonly valuetype [mscorlib]System.Decimal DecimalConstant
.custom instance void [mscorlib]System.Runtime.CompilerServices.DecimalConstantAttribute::.ctor(uint8, .custom instance void [mscorlib]System.Runtime.CompilerServices.DecimalConstantAttribute::.ctor(uint8,

45
ICSharpCode.Decompiler.Tests/TestCases/Pretty/MemberTests.opt.roslyn.il

@ -36,6 +36,51 @@
.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.MemberTests .class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.MemberTests
extends [mscorlib]System.Object extends [mscorlib]System.Object
{ {
.class auto ansi nested public beforefieldinit IndexerNonDefaultName
extends [mscorlib]System.Object
{
.custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string) = ( 01 00 03 46 6F 6F 00 00 ) // ...Foo..
.method public hidebysig specialname
instance int32 get_Foo(int32 index) cil managed
{
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: ret
} // end of method IndexerNonDefaultName::get_Foo
.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 IndexerNonDefaultName::.ctor
.property instance int32 Foo(int32)
{
.get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MemberTests/IndexerNonDefaultName::get_Foo(int32)
} // end of property IndexerNonDefaultName::Foo
} // end of class IndexerNonDefaultName
.class auto ansi nested public beforefieldinit NoDefaultMember
extends [mscorlib]System.Object
{
.custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string) = ( 01 00 03 42 61 72 00 00 ) // ...Bar..
.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 NoDefaultMember::.ctor
} // end of class NoDefaultMember
.field public static literal int32 IntConstant = int32(0x00000001) .field public static literal int32 IntConstant = int32(0x00000001)
.field public static initonly valuetype [mscorlib]System.Decimal DecimalConstant .field public static initonly valuetype [mscorlib]System.Decimal DecimalConstant
.custom instance void [mscorlib]System.Runtime.CompilerServices.DecimalConstantAttribute::.ctor(uint8, .custom instance void [mscorlib]System.Runtime.CompilerServices.DecimalConstantAttribute::.ctor(uint8,

53
ICSharpCode.Decompiler.Tests/TestCases/Pretty/MemberTests.roslyn.il

@ -36,6 +36,59 @@
.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.MemberTests .class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.MemberTests
extends [mscorlib]System.Object extends [mscorlib]System.Object
{ {
.class auto ansi nested public beforefieldinit IndexerNonDefaultName
extends [mscorlib]System.Object
{
.custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string) = ( 01 00 03 46 6F 6F 00 00 ) // ...Foo..
.method public hidebysig specialname
instance int32 get_Foo(int32 index) cil managed
{
// Code size 7 (0x7)
.maxstack 1
.locals init (int32 V_0)
IL_0000: nop
IL_0001: ldc.i4.0
IL_0002: stloc.0
IL_0003: br.s IL_0005
IL_0005: ldloc.0
IL_0006: ret
} // end of method IndexerNonDefaultName::get_Foo
.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 IndexerNonDefaultName::.ctor
.property instance int32 Foo(int32)
{
.get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MemberTests/IndexerNonDefaultName::get_Foo(int32)
} // end of property IndexerNonDefaultName::Foo
} // end of class IndexerNonDefaultName
.class auto ansi nested public beforefieldinit NoDefaultMember
extends [mscorlib]System.Object
{
.custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string) = ( 01 00 03 42 61 72 00 00 ) // ...Bar..
.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 NoDefaultMember::.ctor
} // end of class NoDefaultMember
.field public static literal int32 IntConstant = int32(0x00000001) .field public static literal int32 IntConstant = int32(0x00000001)
.field public static initonly valuetype [mscorlib]System.Decimal DecimalConstant .field public static initonly valuetype [mscorlib]System.Decimal DecimalConstant
.custom instance void [mscorlib]System.Runtime.CompilerServices.DecimalConstantAttribute::.ctor(uint8, .custom instance void [mscorlib]System.Runtime.CompilerServices.DecimalConstantAttribute::.ctor(uint8,

2
ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemTestCase.cs

@ -272,7 +272,7 @@ namespace ICSharpCode.Decompiler.Tests.TypeSystem
public interface IDerived : IBase1, IBase2 public interface IDerived : IBase1, IBase2
{ {
int Prop { get; set; } new int Prop { get; set; }
} }
public class ClassWithVirtualProperty public class ClassWithVirtualProperty

2
ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs

@ -1067,8 +1067,8 @@ namespace ICSharpCode.Decompiler.CSharp
Debug.Assert(decompilationContext.CurrentMember == property); Debug.Assert(decompilationContext.CurrentMember == property);
var typeSystemAstBuilder = CreateAstBuilder(decompilationContext); var typeSystemAstBuilder = CreateAstBuilder(decompilationContext);
EntityDeclaration propertyDecl = typeSystemAstBuilder.ConvertEntity(property); EntityDeclaration propertyDecl = typeSystemAstBuilder.ConvertEntity(property);
int lastDot = property.Name.LastIndexOf('.');
if (property.IsExplicitInterfaceImplementation && !property.IsIndexer) { if (property.IsExplicitInterfaceImplementation && !property.IsIndexer) {
int lastDot = property.Name.LastIndexOf('.');
propertyDecl.Name = property.Name.Substring(lastDot + 1); propertyDecl.Name = property.Name.Substring(lastDot + 1);
} }
FixParameterNames(propertyDecl); FixParameterNames(propertyDecl);

4
ICSharpCode.Decompiler/CSharp/Resolver/CSharpOperators.cs

@ -170,10 +170,6 @@ namespace ICSharpCode.Decompiler.CSharp.Resolver
get { return false; } get { return false; }
} }
bool IEntity.IsShadowing {
get { return false; }
}
bool IMember.IsExplicitInterfaceImplementation { bool IMember.IsExplicitInterfaceImplementation {
get { return false; } get { return false; }
} }

8
ICSharpCode.Decompiler/CSharp/Resolver/ReducedExtensionMethod.cs

@ -266,13 +266,7 @@ namespace ICSharpCode.Decompiler.CSharp.Resolver
return baseMethod.IsSealed; return baseMethod.IsSealed;
} }
} }
public bool IsShadowing {
get {
return baseMethod.IsShadowing;
}
}
#endregion #endregion
#region IHasAccessibility implementation #region IHasAccessibility implementation

5
ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs

@ -965,9 +965,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
} else if (typeDefinition.IsSealed) { } else if (typeDefinition.IsSealed) {
modifiers |= Modifiers.Sealed; modifiers |= Modifiers.Sealed;
} }
if (typeDefinition.IsShadowing) {
modifiers |= Modifiers.New;
}
} }
ClassType classType; ClassType classType;
@ -1360,8 +1357,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
if (member.IsSealed) if (member.IsSealed)
m |= Modifiers.Sealed; m |= Modifiers.Sealed;
} }
if (member.IsShadowing)
m |= Modifiers.New;
} }
return m; return m;
} }

4
ICSharpCode.Decompiler/Semantics/MemberResolveResult.cs

@ -72,8 +72,8 @@ namespace ICSharpCode.Decompiler.Semantics
case SymbolKind.Constructor: case SymbolKind.Constructor:
return member.DeclaringType ?? SpecialType.UnknownType; return member.DeclaringType ?? SpecialType.UnknownType;
case SymbolKind.Field: case SymbolKind.Field:
if (((IField)member).IsFixed) //if (((IField)member).IsFixed)
return new PointerType(member.ReturnType); // return new PointerType(member.ReturnType);
break; break;
} }
if (member.ReturnType.Kind == TypeKind.ByReference) if (member.ReturnType.Kind == TypeKind.ByReference)

2
ICSharpCode.Decompiler/TypeSystem/ApplyAttributeTypeVisitor.cs

@ -89,7 +89,7 @@ namespace ICSharpCode.Decompiler.TypeSystem
int dynamicTypeIndex = 0; int dynamicTypeIndex = 0;
int tupleTypeIndex = 0; int tupleTypeIndex = 0;
public ApplyAttributeTypeVisitor(ICompilation compilation, bool hasDynamicAttribute, bool[] dynamicAttributeData, bool useTupleTypes, string[] tupleElementNames) private ApplyAttributeTypeVisitor(ICompilation compilation, bool hasDynamicAttribute, bool[] dynamicAttributeData, bool useTupleTypes, string[] tupleElementNames)
{ {
this.compilation = compilation ?? throw new ArgumentNullException(nameof(compilation)); this.compilation = compilation ?? throw new ArgumentNullException(nameof(compilation));
this.hasDynamicAttribute = hasDynamicAttribute; this.hasDynamicAttribute = hasDynamicAttribute;

6
ICSharpCode.Decompiler/TypeSystem/IEntity.cs

@ -148,11 +148,5 @@ namespace ICSharpCode.Decompiler.TypeSystem
/// </summary> /// </summary>
/// <remarks>Static classes also count as sealed classes.</remarks> /// <remarks>Static classes also count as sealed classes.</remarks>
bool IsSealed { get; } bool IsSealed { get; }
/// <summary>
/// Gets whether this member is declared to be shadowing another member with the same name.
/// (C# 'new' keyword)
/// </summary>
bool IsShadowing { get; }
} }
} }

6
ICSharpCode.Decompiler/TypeSystem/IField.cs

@ -79,11 +79,5 @@ namespace ICSharpCode.Decompiler.TypeSystem
/// Gets whether this field is volatile. /// Gets whether this field is volatile.
/// </summary> /// </summary>
bool IsVolatile { get; } bool IsVolatile { get; }
/// <summary>
/// Gets whether this field is a fixed size buffer (C#-like fixed).
/// If this is true, then ConstantValue contains the size of the buffer.
/// </summary>
bool IsFixed { get; }
} }
} }

2
ICSharpCode.Decompiler/TypeSystem/Implementation/FakeMember.cs

@ -65,7 +65,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
public bool IsStatic { get; set; } public bool IsStatic { get; set; }
bool IEntity.IsAbstract => false; bool IEntity.IsAbstract => false;
bool IEntity.IsSealed => false; bool IEntity.IsSealed => false;
bool IEntity.IsShadowing => false;
public abstract SymbolKind SymbolKind { get; } public abstract SymbolKind SymbolKind { get; }
@ -107,7 +106,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
bool IField.IsReadOnly => false; bool IField.IsReadOnly => false;
bool IField.IsVolatile => false; bool IField.IsVolatile => false;
bool IField.IsFixed => false;
bool IVariable.IsConst => false; bool IVariable.IsConst => false;
object IVariable.ConstantValue => null; object IVariable.ConstantValue => null;

5
ICSharpCode.Decompiler/TypeSystem/Implementation/KnownAttributes.cs

@ -71,6 +71,9 @@ namespace ICSharpCode.Decompiler.TypeSystem
PreserveSig, PreserveSig,
MethodImpl, MethodImpl,
// Property attributes:
IndexerName,
// Parameter attributes: // Parameter attributes:
ParamArray, ParamArray,
In, In,
@ -121,6 +124,8 @@ namespace ICSharpCode.Decompiler.TypeSystem
new TopLevelTypeName("System.Runtime.InteropServices", nameof(DllImportAttribute)), new TopLevelTypeName("System.Runtime.InteropServices", nameof(DllImportAttribute)),
new TopLevelTypeName("System.Runtime.InteropServices", nameof(PreserveSigAttribute)), new TopLevelTypeName("System.Runtime.InteropServices", nameof(PreserveSigAttribute)),
new TopLevelTypeName("System.Runtime.CompilerServices", nameof(MethodImplAttribute)), new TopLevelTypeName("System.Runtime.CompilerServices", nameof(MethodImplAttribute)),
// Property attributes:
new TopLevelTypeName("System.Runtime.CompilerServices", nameof(IndexerNameAttribute)),
// Parameter attributes: // Parameter attributes:
new TopLevelTypeName("System", nameof(ParamArrayAttribute)), new TopLevelTypeName("System", nameof(ParamArrayAttribute)),
new TopLevelTypeName("System.Runtime.InteropServices", nameof(InAttribute)), new TopLevelTypeName("System.Runtime.InteropServices", nameof(InAttribute)),

2
ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataEvent.cs

@ -130,8 +130,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
public bool IsOverride => AnyAccessor?.IsOverride ?? false; public bool IsOverride => AnyAccessor?.IsOverride ?? false;
public bool IsOverridable => AnyAccessor?.IsOverridable ?? false; public bool IsOverridable => AnyAccessor?.IsOverridable ?? false;
bool IEntity.IsShadowing => AnyAccessor?.IsShadowing ?? false;
public IAssembly ParentAssembly => assembly; public IAssembly ParentAssembly => assembly;
public ICompilation Compilation => assembly.Compilation; public ICompilation Compilation => assembly.Compilation;

9
ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataField.cs

@ -97,14 +97,7 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
public bool IsReadOnly => (attributes & FieldAttributes.InitOnly) != 0; public bool IsReadOnly => (attributes & FieldAttributes.InitOnly) != 0;
public bool IsStatic => (attributes & FieldAttributes.Static) != 0; public bool IsStatic => (attributes & FieldAttributes.Static) != 0;
// not sure if we need IsFixed anywhere...
bool IField.IsFixed => false;
// Do we still want IsShadowing in the TS?
// We never set it for assemblies loaded from disk; only for those parsed from C#...
bool IEntity.IsShadowing => false;
SymbolKind ISymbol.SymbolKind => SymbolKind.Field; SymbolKind ISymbol.SymbolKind => SymbolKind.Field;
IMember IMember.MemberDefinition => this; IMember IMember.MemberDefinition => this;
TypeParameterSubstitution IMember.Substitution => TypeParameterSubstitution.Identity; TypeParameterSubstitution IMember.Substitution => TypeParameterSubstitution.Identity;

2
ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataMethod.cs

@ -422,8 +422,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
=> (attributes & (MethodAttributes.Abstract | MethodAttributes.Virtual)) != 0 => (attributes & (MethodAttributes.Abstract | MethodAttributes.Virtual)) != 0
&& (attributes & MethodAttributes.Final) == 0; && (attributes & MethodAttributes.Final) == 0;
bool IEntity.IsShadowing => false;
public string FullName => $"{DeclaringType?.FullName}.{Name}"; public string FullName => $"{DeclaringType?.FullName}.{Name}";
public string ReflectionName => $"{DeclaringType?.ReflectionName}.{Name}"; public string ReflectionName => $"{DeclaringType?.ReflectionName}.{Name}";
public string Namespace => DeclaringType?.Namespace ?? string.Empty; public string Namespace => DeclaringType?.Namespace ?? string.Empty;

5
ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataProperty.cs

@ -158,6 +158,9 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
var b = new AttributeListBuilder(assembly); var b = new AttributeListBuilder(assembly);
var metadata = assembly.metadata; var metadata = assembly.metadata;
var propertyDef = metadata.GetPropertyDefinition(propertyHandle); var propertyDef = metadata.GetPropertyDefinition(propertyHandle);
if (IsIndexer && Name != "Item" && !IsExplicitInterfaceImplementation) {
b.Add(KnownAttribute.IndexerName, KnownTypeCode.String, Name);
}
b.Add(propertyDef.GetCustomAttributes()); b.Add(propertyDef.GetCustomAttributes());
return b.Build(); return b.Build();
} }
@ -219,8 +222,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
public bool IsOverride => AnyAccessor?.IsOverride ?? false; public bool IsOverride => AnyAccessor?.IsOverride ?? false;
public bool IsOverridable => AnyAccessor?.IsOverridable ?? false; public bool IsOverridable => AnyAccessor?.IsOverridable ?? false;
bool IEntity.IsShadowing => AnyAccessor?.IsShadowing ?? false;
public IAssembly ParentAssembly => assembly; public IAssembly ParentAssembly => assembly;
public ICompilation Compilation => assembly.Compilation; public ICompilation Compilation => assembly.Compilation;

2
ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataTypeDefinition.cs

@ -405,8 +405,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
public bool IsAbstract => (attributes & TypeAttributes.Abstract) != 0; public bool IsAbstract => (attributes & TypeAttributes.Abstract) != 0;
public bool IsSealed => (attributes & TypeAttributes.Sealed) != 0; public bool IsSealed => (attributes & TypeAttributes.Sealed) != 0;
bool IEntity.IsShadowing => false;
public SymbolKind SymbolKind => SymbolKind.TypeDefinition; public SymbolKind SymbolKind => SymbolKind.TypeDefinition;
public ICompilation Compilation => assembly.Compilation; public ICompilation Compilation => assembly.Compilation;

4
ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializedField.cs

@ -60,10 +60,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
get { return fieldDefinition.IsConst; } get { return fieldDefinition.IsConst; }
} }
public bool IsFixed {
get { return fieldDefinition.IsFixed; }
}
public object ConstantValue { public object ConstantValue {
get { return fieldDefinition.ConstantValue; } get { return fieldDefinition.ConstantValue; }
} }

4
ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializedMember.cs

@ -183,10 +183,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
get { return baseMember.IsSealed; } get { return baseMember.IsSealed; }
} }
public bool IsShadowing {
get { return baseMember.IsShadowing; }
}
public string FullName { public string FullName {
get { return baseMember.FullName; } get { return baseMember.FullName; }
} }

4
ICSharpCode.Decompiler/TypeSystem/VarArgInstanceMethod.cs

@ -241,10 +241,6 @@ namespace ICSharpCode.Decompiler.TypeSystem
get { return baseMethod.IsSealed; } get { return baseMethod.IsSealed; }
} }
public bool IsShadowing {
get { return baseMethod.IsShadowing; }
}
#endregion #endregion
#region IHasAccessibility implementation #region IHasAccessibility implementation

Loading…
Cancel
Save