Browse Source

Fix #1227: System.InvalidCastException: Cast from Int64 to Empty not supported.

pull/1420/head
Siegfried Pammer 7 years ago
parent
commit
57597caf1f
  1. 14
      ICSharpCode.Decompiler/CSharp/StatementBuilder.cs

14
ICSharpCode.Decompiler/CSharp/StatementBuilder.cs

@ -108,9 +108,19 @@ namespace ICSharpCode.Decompiler.CSharp
yield break; yield break;
} else if (type.Kind == TypeKind.Enum) { } else if (type.Kind == TypeKind.Enum) {
var enumType = type.GetDefinition().EnumUnderlyingType; var enumType = type.GetDefinition().EnumUnderlyingType;
value = CSharpPrimitiveCast.Cast(ReflectionHelper.GetTypeCode(enumType), i, false); TypeCode typeCode = ReflectionHelper.GetTypeCode(enumType);
if (typeCode != TypeCode.Empty) {
value = CSharpPrimitiveCast.Cast(typeCode, i, false);
} else {
value = i;
}
} else { } else {
value = CSharpPrimitiveCast.Cast(ReflectionHelper.GetTypeCode(type), i, false); TypeCode typeCode = ReflectionHelper.GetTypeCode(type);
if (typeCode != TypeCode.Empty) {
value = CSharpPrimitiveCast.Cast(typeCode, i, false);
} else {
value = i;
}
} }
yield return new ConstantResolveResult(type, value); yield return new ConstantResolveResult(type, value);
} }

Loading…
Cancel
Save