public override Constant ConvertInitializer (ResolveContext rc, Constant expr) { if (expr is EnumConstant) expr = ((EnumConstant) expr).Child; var en = (Enum)Parent; var underlying = en.UnderlyingType; if (expr != null) { expr = expr.ImplicitConversionRequired (rc, underlying); if (expr != null && !IsValidEnumType (expr.Type)) { en.Error_UnderlyingType (Location); expr = null; } } if (expr == null) expr = New.Constantify (underlying, Location); return new EnumConstant (expr, MemberType); }
public override Constant ConvertInitializer (ResolveContext rc, Constant expr) { return expr.ImplicitConversionRequired (rc, rc.BuiltinTypes.Int); }