- if (!MemberType.IsValueType && MemberType != TypeManager.string_type && !value.IsDefaultValue) {
- Error_ConstantCanBeInitializedWithNullOnly (Location, GetSignatureForError ());
- return false;
+ Constant c = value.ConvertImplicitly (MemberType);
+ if (c == null) {
+ if (!MemberType.IsValueType && MemberType != TypeManager.string_type && !value.IsDefaultValue)
+ Error_ConstantCanBeInitializedWithNullOnly (Location, GetSignatureForError ());
+ else
+ value.Error_ValueCannotBeConverted (null, Location, MemberType, false);