Browse Source

Fixed enum constants.

pull/124/head
Daniel Grunwald 15 years ago
parent
commit
6c6dc0e36b
  1. 12
      ICSharpCode.Decompiler/Ast/AstBuilder.cs

12
ICSharpCode.Decompiler/Ast/AstBuilder.cs

@ -870,10 +870,16 @@ namespace ICSharpCode.Decompiler.Ast
astField.ReturnType = ConvertType(fieldDef.FieldType, fieldDef); astField.ReturnType = ConvertType(fieldDef.FieldType, fieldDef);
astField.Modifiers = ConvertModifiers(fieldDef); astField.Modifiers = ConvertModifiers(fieldDef);
if (fieldDef.HasConstant) { if (fieldDef.HasConstant) {
if (fieldDef.Constant == null) if (fieldDef.Constant == null) {
initializer.Initializer = new NullReferenceExpression(); initializer.Initializer = new NullReferenceExpression();
else } else {
initializer.Initializer = new PrimitiveExpression(fieldDef.Constant); TypeCode c = Type.GetTypeCode(fieldDef.Constant.GetType());
if (c >= TypeCode.SByte && c <= TypeCode.UInt64) {
initializer.Initializer = MakePrimitive((long)CSharpPrimitiveCast.Cast(TypeCode.Int64, fieldDef.Constant, false), fieldDef.FieldType);
} else {
initializer.Initializer = new PrimitiveExpression(fieldDef.Constant);
}
}
} }
ConvertAttributes(astField, fieldDef); ConvertAttributes(astField, fieldDef);
return astField; return astField;

Loading…
Cancel
Save