Browse Source

Incorrect icon for const decimal fields. Closes #218

pull/252/head
Ed Harvey 15 years ago
parent
commit
50e8fbc48e
  1. 25
      ILSpy/TreeNodes/FieldTreeNode.cs

25
ILSpy/TreeNodes/FieldTreeNode.cs

@ -59,12 +59,31 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -59,12 +59,31 @@ namespace ICSharpCode.ILSpy.TreeNodes
if (field.IsLiteral)
return Images.GetIcon(MemberIcon.Literal, GetOverlayIcon(field.Attributes), false);
else if (field.IsInitOnly)
return Images.GetIcon(MemberIcon.FieldReadOnly, GetOverlayIcon(field.Attributes), field.IsStatic);
else
else if (field.IsInitOnly) {
if (IsDecimalConstant(field))
return Images.GetIcon(MemberIcon.Literal, GetOverlayIcon(field.Attributes), false);
else
return Images.GetIcon(MemberIcon.FieldReadOnly, GetOverlayIcon(field.Attributes), field.IsStatic);
} else
return Images.GetIcon(MemberIcon.Field, GetOverlayIcon(field.Attributes), field.IsStatic);
}
private static bool IsDecimalConstant(Mono.Cecil.FieldDefinition field)
{
var fieldType = field.FieldType;
if (fieldType.Name == "Decimal" && fieldType.Namespace == "System") {
if (field.HasCustomAttributes) {
var attrs = field.CustomAttributes;
for (int i = 0; i < attrs.Count; i++) {
var attrType = attrs[i].AttributeType;
if (attrType.Name == "DecimalConstantAttribute" && attrType.Namespace == "System.Runtime.CompilerServices")
return true;
}
}
}
return false;
}
private static AccessOverlayIcon GetOverlayIcon(FieldAttributes fieldAttributes)
{
switch (fieldAttributes & FieldAttributes.FieldAccessMask) {

Loading…
Cancel
Save