Commit c7f4c7bc authored by Thomas Van Lenten's avatar Thomas Van Lenten Committed by GitHub

Merge pull request #2654 from TeBoring/3.2.x

Cherry-pick Objc changes
parents 593e917c e3583877
...@@ -96,7 +96,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -96,7 +96,7 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized GPBInt32Array with a copy of the values. * @return A newly initialized GPBInt32Array with a copy of the values.
**/ **/
- (instancetype)initWithValues:(const int32_t [])values - (instancetype)initWithValues:(const int32_t [__nullable])values
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -161,7 +161,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -161,7 +161,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param values The values to add to this array. * @param values The values to add to this array.
* @param count The number of elements to add. * @param count The number of elements to add.
**/ **/
- (void)addValues:(const int32_t [])values count:(NSUInteger)count; - (void)addValues:(const int32_t [__nullable])values count:(NSUInteger)count;
/** /**
* Adds the values from the given array to this array. * Adds the values from the given array to this array.
...@@ -268,7 +268,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -268,7 +268,7 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized GPBUInt32Array with a copy of the values. * @return A newly initialized GPBUInt32Array with a copy of the values.
**/ **/
- (instancetype)initWithValues:(const uint32_t [])values - (instancetype)initWithValues:(const uint32_t [__nullable])values
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -333,7 +333,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -333,7 +333,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param values The values to add to this array. * @param values The values to add to this array.
* @param count The number of elements to add. * @param count The number of elements to add.
**/ **/
- (void)addValues:(const uint32_t [])values count:(NSUInteger)count; - (void)addValues:(const uint32_t [__nullable])values count:(NSUInteger)count;
/** /**
* Adds the values from the given array to this array. * Adds the values from the given array to this array.
...@@ -440,7 +440,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -440,7 +440,7 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized GPBInt64Array with a copy of the values. * @return A newly initialized GPBInt64Array with a copy of the values.
**/ **/
- (instancetype)initWithValues:(const int64_t [])values - (instancetype)initWithValues:(const int64_t [__nullable])values
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -505,7 +505,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -505,7 +505,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param values The values to add to this array. * @param values The values to add to this array.
* @param count The number of elements to add. * @param count The number of elements to add.
**/ **/
- (void)addValues:(const int64_t [])values count:(NSUInteger)count; - (void)addValues:(const int64_t [__nullable])values count:(NSUInteger)count;
/** /**
* Adds the values from the given array to this array. * Adds the values from the given array to this array.
...@@ -612,7 +612,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -612,7 +612,7 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized GPBUInt64Array with a copy of the values. * @return A newly initialized GPBUInt64Array with a copy of the values.
**/ **/
- (instancetype)initWithValues:(const uint64_t [])values - (instancetype)initWithValues:(const uint64_t [__nullable])values
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -677,7 +677,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -677,7 +677,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param values The values to add to this array. * @param values The values to add to this array.
* @param count The number of elements to add. * @param count The number of elements to add.
**/ **/
- (void)addValues:(const uint64_t [])values count:(NSUInteger)count; - (void)addValues:(const uint64_t [__nullable])values count:(NSUInteger)count;
/** /**
* Adds the values from the given array to this array. * Adds the values from the given array to this array.
...@@ -784,7 +784,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -784,7 +784,7 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized GPBFloatArray with a copy of the values. * @return A newly initialized GPBFloatArray with a copy of the values.
**/ **/
- (instancetype)initWithValues:(const float [])values - (instancetype)initWithValues:(const float [__nullable])values
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -849,7 +849,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -849,7 +849,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param values The values to add to this array. * @param values The values to add to this array.
* @param count The number of elements to add. * @param count The number of elements to add.
**/ **/
- (void)addValues:(const float [])values count:(NSUInteger)count; - (void)addValues:(const float [__nullable])values count:(NSUInteger)count;
/** /**
* Adds the values from the given array to this array. * Adds the values from the given array to this array.
...@@ -956,7 +956,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -956,7 +956,7 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized GPBDoubleArray with a copy of the values. * @return A newly initialized GPBDoubleArray with a copy of the values.
**/ **/
- (instancetype)initWithValues:(const double [])values - (instancetype)initWithValues:(const double [__nullable])values
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -1021,7 +1021,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1021,7 +1021,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param values The values to add to this array. * @param values The values to add to this array.
* @param count The number of elements to add. * @param count The number of elements to add.
**/ **/
- (void)addValues:(const double [])values count:(NSUInteger)count; - (void)addValues:(const double [__nullable])values count:(NSUInteger)count;
/** /**
* Adds the values from the given array to this array. * Adds the values from the given array to this array.
...@@ -1128,7 +1128,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1128,7 +1128,7 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized GPBBoolArray with a copy of the values. * @return A newly initialized GPBBoolArray with a copy of the values.
**/ **/
- (instancetype)initWithValues:(const BOOL [])values - (instancetype)initWithValues:(const BOOL [__nullable])values
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -1193,7 +1193,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1193,7 +1193,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param values The values to add to this array. * @param values The values to add to this array.
* @param count The number of elements to add. * @param count The number of elements to add.
**/ **/
- (void)addValues:(const BOOL [])values count:(NSUInteger)count; - (void)addValues:(const BOOL [__nullable])values count:(NSUInteger)count;
/** /**
* Adds the values from the given array to this array. * Adds the values from the given array to this array.
...@@ -1325,7 +1325,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1325,7 +1325,7 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly initialized GPBEnumArray with a copy of the values. * @return A newly initialized GPBEnumArray with a copy of the values.
**/ **/
- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -1435,7 +1435,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1435,7 +1435,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param values The values to add to this array. * @param values The values to add to this array.
* @param count The number of elements to add. * @param count The number of elements to add.
**/ **/
- (void)addValues:(const int32_t [])values count:(NSUInteger)count; - (void)addValues:(const int32_t [__nullable])values count:(NSUInteger)count;
/** /**
...@@ -1486,7 +1486,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1486,7 +1486,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param values Array containing the raw enum values to add to this array. * @param values Array containing the raw enum values to add to this array.
* @param count The number of raw values to add. * @param count The number of raw values to add.
**/ **/
- (void)addRawValues:(const int32_t [])values count:(NSUInteger)count; - (void)addRawValues:(const int32_t [__nullable])values count:(NSUInteger)count;
/** /**
* Inserts a raw enum value at the given index. * Inserts a raw enum value at the given index.
...@@ -1613,7 +1613,7 @@ NS_ASSUME_NONNULL_END ...@@ -1613,7 +1613,7 @@ NS_ASSUME_NONNULL_END
//% * //% *
//% * @return A newly initialized GPB##NAME##Array with a copy of the values. //% * @return A newly initialized GPB##NAME##Array with a copy of the values.
//% **/ //% **/
//%- (instancetype)initWithValues:(const TYPE [])values //%- (instancetype)initWithValues:(const TYPE [__nullable])values
//% count:(NSUInteger)count; //% count:(NSUInteger)count;
//% //%
//%/** //%/**
...@@ -1730,7 +1730,7 @@ NS_ASSUME_NONNULL_END ...@@ -1730,7 +1730,7 @@ NS_ASSUME_NONNULL_END
//% * @return A newly initialized GPB##NAME##Array with a copy of the values. //% * @return A newly initialized GPB##NAME##Array with a copy of the values.
//% **/ //% **/
//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func //%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
//% rawValues:(const TYPE [])values //% rawValues:(const TYPE [__nullable])values
//% count:(NSUInteger)count; //% count:(NSUInteger)count;
//% //%
//%/** //%/**
...@@ -1849,7 +1849,7 @@ NS_ASSUME_NONNULL_END ...@@ -1849,7 +1849,7 @@ NS_ASSUME_NONNULL_END
//% * @param values The values to add to this array. //% * @param values The values to add to this array.
//% * @param count The number of elements to add. //% * @param count The number of elements to add.
//% **/ //% **/
//%- (void)addValues:(const TYPE [])values count:(NSUInteger)count; //%- (void)addValues:(const TYPE [__nullable])values count:(NSUInteger)count;
//% //%
//%ARRAY_EXTRA_MUTABLE_METHODS1_##HELPER_NAME(NAME, TYPE) //%ARRAY_EXTRA_MUTABLE_METHODS1_##HELPER_NAME(NAME, TYPE)
//%/** //%/**
...@@ -1939,7 +1939,7 @@ NS_ASSUME_NONNULL_END ...@@ -1939,7 +1939,7 @@ NS_ASSUME_NONNULL_END
//% * @param values Array containing the raw enum values to add to this array. //% * @param values Array containing the raw enum values to add to this array.
//% * @param count The number of raw values to add. //% * @param count The number of raw values to add.
//% **/ //% **/
//%- (void)addRawValues:(const TYPE [])values count:(NSUInteger)count; //%- (void)addRawValues:(const TYPE [__nullable])values count:(NSUInteger)count;
//% //%
//%/** //%/**
//% * Inserts a raw enum value at the given index. //% * Inserts a raw enum value at the given index.
......
...@@ -84,8 +84,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -84,8 +84,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithUInt32s:(const uint32_t [])values + (instancetype)dictionaryWithUInt32s:(const uint32_t [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -117,8 +117,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -117,8 +117,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithUInt32s:(const uint32_t [])values - (instancetype)initWithUInt32s:(const uint32_t [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -228,8 +228,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -228,8 +228,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithInt32s:(const int32_t [])values + (instancetype)dictionaryWithInt32s:(const int32_t [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -261,8 +261,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -261,8 +261,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithInt32s:(const int32_t [])values - (instancetype)initWithInt32s:(const int32_t [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -372,8 +372,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -372,8 +372,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithUInt64s:(const uint64_t [])values + (instancetype)dictionaryWithUInt64s:(const uint64_t [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -405,8 +405,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -405,8 +405,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithUInt64s:(const uint64_t [])values - (instancetype)initWithUInt64s:(const uint64_t [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -516,8 +516,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -516,8 +516,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithInt64s:(const int64_t [])values + (instancetype)dictionaryWithInt64s:(const int64_t [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -549,8 +549,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -549,8 +549,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithInt64s:(const int64_t [])values - (instancetype)initWithInt64s:(const int64_t [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -660,8 +660,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -660,8 +660,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithBools:(const BOOL [])values + (instancetype)dictionaryWithBools:(const BOOL [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -693,8 +693,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -693,8 +693,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithBools:(const BOOL [])values - (instancetype)initWithBools:(const BOOL [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -804,8 +804,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -804,8 +804,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithFloats:(const float [])values + (instancetype)dictionaryWithFloats:(const float [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -837,8 +837,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -837,8 +837,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithFloats:(const float [])values - (instancetype)initWithFloats:(const float [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -948,8 +948,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -948,8 +948,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithDoubles:(const double [])values + (instancetype)dictionaryWithDoubles:(const double [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -981,8 +981,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -981,8 +981,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithDoubles:(const double [])values - (instancetype)initWithDoubles:(const double [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -1107,8 +1107,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1107,8 +1107,8 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func + (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -1153,8 +1153,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1153,8 +1153,8 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly initialized dictionary with the keys and values in it. * @return A newly initialized dictionary with the keys and values in it.
**/ **/
- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -1318,8 +1318,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1318,8 +1318,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithObjects:(const ObjectType GPB_UNSAFE_UNRETAINED [])objects + (instancetype)dictionaryWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -1351,8 +1351,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1351,8 +1351,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithObjects:(const ObjectType GPB_UNSAFE_UNRETAINED [])objects - (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
forKeys:(const uint32_t [])keys forKeys:(const uint32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -1461,8 +1461,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1461,8 +1461,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithUInt32s:(const uint32_t [])values + (instancetype)dictionaryWithUInt32s:(const uint32_t [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -1494,8 +1494,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1494,8 +1494,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithUInt32s:(const uint32_t [])values - (instancetype)initWithUInt32s:(const uint32_t [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -1605,8 +1605,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1605,8 +1605,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithInt32s:(const int32_t [])values + (instancetype)dictionaryWithInt32s:(const int32_t [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -1638,8 +1638,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1638,8 +1638,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithInt32s:(const int32_t [])values - (instancetype)initWithInt32s:(const int32_t [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -1749,8 +1749,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1749,8 +1749,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithUInt64s:(const uint64_t [])values + (instancetype)dictionaryWithUInt64s:(const uint64_t [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -1782,8 +1782,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1782,8 +1782,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithUInt64s:(const uint64_t [])values - (instancetype)initWithUInt64s:(const uint64_t [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -1893,8 +1893,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1893,8 +1893,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithInt64s:(const int64_t [])values + (instancetype)dictionaryWithInt64s:(const int64_t [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -1926,8 +1926,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1926,8 +1926,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithInt64s:(const int64_t [])values - (instancetype)initWithInt64s:(const int64_t [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -2037,8 +2037,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2037,8 +2037,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithBools:(const BOOL [])values + (instancetype)dictionaryWithBools:(const BOOL [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -2070,8 +2070,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2070,8 +2070,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithBools:(const BOOL [])values - (instancetype)initWithBools:(const BOOL [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -2181,8 +2181,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2181,8 +2181,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithFloats:(const float [])values + (instancetype)dictionaryWithFloats:(const float [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -2214,8 +2214,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2214,8 +2214,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithFloats:(const float [])values - (instancetype)initWithFloats:(const float [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -2325,8 +2325,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2325,8 +2325,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithDoubles:(const double [])values + (instancetype)dictionaryWithDoubles:(const double [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -2358,8 +2358,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2358,8 +2358,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithDoubles:(const double [])values - (instancetype)initWithDoubles:(const double [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -2484,8 +2484,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2484,8 +2484,8 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func + (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -2530,8 +2530,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2530,8 +2530,8 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly initialized dictionary with the keys and values in it. * @return A newly initialized dictionary with the keys and values in it.
**/ **/
- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -2695,8 +2695,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2695,8 +2695,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithObjects:(const ObjectType GPB_UNSAFE_UNRETAINED [])objects + (instancetype)dictionaryWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -2728,8 +2728,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2728,8 +2728,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithObjects:(const ObjectType GPB_UNSAFE_UNRETAINED [])objects - (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
forKeys:(const int32_t [])keys forKeys:(const int32_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -2838,8 +2838,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2838,8 +2838,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithUInt32s:(const uint32_t [])values + (instancetype)dictionaryWithUInt32s:(const uint32_t [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -2871,8 +2871,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2871,8 +2871,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithUInt32s:(const uint32_t [])values - (instancetype)initWithUInt32s:(const uint32_t [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -2982,8 +2982,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -2982,8 +2982,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithInt32s:(const int32_t [])values + (instancetype)dictionaryWithInt32s:(const int32_t [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -3015,8 +3015,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3015,8 +3015,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithInt32s:(const int32_t [])values - (instancetype)initWithInt32s:(const int32_t [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -3126,8 +3126,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3126,8 +3126,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithUInt64s:(const uint64_t [])values + (instancetype)dictionaryWithUInt64s:(const uint64_t [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -3159,8 +3159,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3159,8 +3159,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithUInt64s:(const uint64_t [])values - (instancetype)initWithUInt64s:(const uint64_t [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -3270,8 +3270,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3270,8 +3270,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithInt64s:(const int64_t [])values + (instancetype)dictionaryWithInt64s:(const int64_t [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -3303,8 +3303,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3303,8 +3303,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithInt64s:(const int64_t [])values - (instancetype)initWithInt64s:(const int64_t [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -3414,8 +3414,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3414,8 +3414,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithBools:(const BOOL [])values + (instancetype)dictionaryWithBools:(const BOOL [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -3447,8 +3447,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3447,8 +3447,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithBools:(const BOOL [])values - (instancetype)initWithBools:(const BOOL [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -3558,8 +3558,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3558,8 +3558,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithFloats:(const float [])values + (instancetype)dictionaryWithFloats:(const float [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -3591,8 +3591,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3591,8 +3591,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithFloats:(const float [])values - (instancetype)initWithFloats:(const float [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -3702,8 +3702,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3702,8 +3702,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithDoubles:(const double [])values + (instancetype)dictionaryWithDoubles:(const double [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -3735,8 +3735,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3735,8 +3735,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithDoubles:(const double [])values - (instancetype)initWithDoubles:(const double [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -3861,8 +3861,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3861,8 +3861,8 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func + (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -3907,8 +3907,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -3907,8 +3907,8 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly initialized dictionary with the keys and values in it. * @return A newly initialized dictionary with the keys and values in it.
**/ **/
- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -4072,8 +4072,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4072,8 +4072,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithObjects:(const ObjectType GPB_UNSAFE_UNRETAINED [])objects + (instancetype)dictionaryWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -4105,8 +4105,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4105,8 +4105,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithObjects:(const ObjectType GPB_UNSAFE_UNRETAINED [])objects - (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
forKeys:(const uint64_t [])keys forKeys:(const uint64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -4215,8 +4215,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4215,8 +4215,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithUInt32s:(const uint32_t [])values + (instancetype)dictionaryWithUInt32s:(const uint32_t [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -4248,8 +4248,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4248,8 +4248,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithUInt32s:(const uint32_t [])values - (instancetype)initWithUInt32s:(const uint32_t [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -4359,8 +4359,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4359,8 +4359,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithInt32s:(const int32_t [])values + (instancetype)dictionaryWithInt32s:(const int32_t [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -4392,8 +4392,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4392,8 +4392,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithInt32s:(const int32_t [])values - (instancetype)initWithInt32s:(const int32_t [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -4503,8 +4503,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4503,8 +4503,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithUInt64s:(const uint64_t [])values + (instancetype)dictionaryWithUInt64s:(const uint64_t [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -4536,8 +4536,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4536,8 +4536,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithUInt64s:(const uint64_t [])values - (instancetype)initWithUInt64s:(const uint64_t [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -4647,8 +4647,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4647,8 +4647,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithInt64s:(const int64_t [])values + (instancetype)dictionaryWithInt64s:(const int64_t [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -4680,8 +4680,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4680,8 +4680,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithInt64s:(const int64_t [])values - (instancetype)initWithInt64s:(const int64_t [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -4791,8 +4791,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4791,8 +4791,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithBools:(const BOOL [])values + (instancetype)dictionaryWithBools:(const BOOL [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -4824,8 +4824,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4824,8 +4824,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithBools:(const BOOL [])values - (instancetype)initWithBools:(const BOOL [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -4935,8 +4935,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4935,8 +4935,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithFloats:(const float [])values + (instancetype)dictionaryWithFloats:(const float [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -4968,8 +4968,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -4968,8 +4968,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithFloats:(const float [])values - (instancetype)initWithFloats:(const float [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -5079,8 +5079,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -5079,8 +5079,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithDoubles:(const double [])values + (instancetype)dictionaryWithDoubles:(const double [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -5112,8 +5112,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -5112,8 +5112,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithDoubles:(const double [])values - (instancetype)initWithDoubles:(const double [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -5238,8 +5238,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -5238,8 +5238,8 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func + (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -5284,8 +5284,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -5284,8 +5284,8 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly initialized dictionary with the keys and values in it. * @return A newly initialized dictionary with the keys and values in it.
**/ **/
- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -5449,8 +5449,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -5449,8 +5449,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithObjects:(const ObjectType GPB_UNSAFE_UNRETAINED [])objects + (instancetype)dictionaryWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -5482,8 +5482,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -5482,8 +5482,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithObjects:(const ObjectType GPB_UNSAFE_UNRETAINED [])objects - (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
forKeys:(const int64_t [])keys forKeys:(const int64_t [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -5592,8 +5592,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -5592,8 +5592,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithUInt32s:(const uint32_t [])values + (instancetype)dictionaryWithUInt32s:(const uint32_t [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -5625,8 +5625,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -5625,8 +5625,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithUInt32s:(const uint32_t [])values - (instancetype)initWithUInt32s:(const uint32_t [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -5736,8 +5736,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -5736,8 +5736,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithInt32s:(const int32_t [])values + (instancetype)dictionaryWithInt32s:(const int32_t [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -5769,8 +5769,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -5769,8 +5769,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithInt32s:(const int32_t [])values - (instancetype)initWithInt32s:(const int32_t [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -5880,8 +5880,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -5880,8 +5880,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithUInt64s:(const uint64_t [])values + (instancetype)dictionaryWithUInt64s:(const uint64_t [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -5913,8 +5913,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -5913,8 +5913,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithUInt64s:(const uint64_t [])values - (instancetype)initWithUInt64s:(const uint64_t [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -6024,8 +6024,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6024,8 +6024,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithInt64s:(const int64_t [])values + (instancetype)dictionaryWithInt64s:(const int64_t [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -6057,8 +6057,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6057,8 +6057,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithInt64s:(const int64_t [])values - (instancetype)initWithInt64s:(const int64_t [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -6168,8 +6168,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6168,8 +6168,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithBools:(const BOOL [])values + (instancetype)dictionaryWithBools:(const BOOL [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -6201,8 +6201,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6201,8 +6201,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithBools:(const BOOL [])values - (instancetype)initWithBools:(const BOOL [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -6312,8 +6312,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6312,8 +6312,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithFloats:(const float [])values + (instancetype)dictionaryWithFloats:(const float [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -6345,8 +6345,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6345,8 +6345,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithFloats:(const float [])values - (instancetype)initWithFloats:(const float [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -6456,8 +6456,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6456,8 +6456,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithDoubles:(const double [])values + (instancetype)dictionaryWithDoubles:(const double [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -6489,8 +6489,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6489,8 +6489,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithDoubles:(const double [])values - (instancetype)initWithDoubles:(const double [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -6615,8 +6615,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6615,8 +6615,8 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func + (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -6661,8 +6661,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6661,8 +6661,8 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly initialized dictionary with the keys and values in it. * @return A newly initialized dictionary with the keys and values in it.
**/ **/
- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -6826,8 +6826,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6826,8 +6826,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithObjects:(const ObjectType GPB_UNSAFE_UNRETAINED [])objects + (instancetype)dictionaryWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -6859,8 +6859,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6859,8 +6859,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithObjects:(const ObjectType GPB_UNSAFE_UNRETAINED [])objects - (instancetype)initWithObjects:(const ObjectType __nonnull GPB_UNSAFE_UNRETAINED [__nullable])objects
forKeys:(const BOOL [])keys forKeys:(const BOOL [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -6969,8 +6969,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -6969,8 +6969,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithUInt32s:(const uint32_t [])values + (instancetype)dictionaryWithUInt32s:(const uint32_t [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -7002,8 +7002,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7002,8 +7002,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithUInt32s:(const uint32_t [])values - (instancetype)initWithUInt32s:(const uint32_t [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -7113,8 +7113,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7113,8 +7113,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithInt32s:(const int32_t [])values + (instancetype)dictionaryWithInt32s:(const int32_t [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -7146,8 +7146,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7146,8 +7146,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithInt32s:(const int32_t [])values - (instancetype)initWithInt32s:(const int32_t [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -7257,8 +7257,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7257,8 +7257,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithUInt64s:(const uint64_t [])values + (instancetype)dictionaryWithUInt64s:(const uint64_t [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -7290,8 +7290,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7290,8 +7290,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithUInt64s:(const uint64_t [])values - (instancetype)initWithUInt64s:(const uint64_t [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -7401,8 +7401,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7401,8 +7401,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithInt64s:(const int64_t [])values + (instancetype)dictionaryWithInt64s:(const int64_t [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -7434,8 +7434,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7434,8 +7434,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithInt64s:(const int64_t [])values - (instancetype)initWithInt64s:(const int64_t [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -7545,8 +7545,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7545,8 +7545,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithBools:(const BOOL [])values + (instancetype)dictionaryWithBools:(const BOOL [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -7578,8 +7578,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7578,8 +7578,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithBools:(const BOOL [])values - (instancetype)initWithBools:(const BOOL [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -7689,8 +7689,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7689,8 +7689,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithFloats:(const float [])values + (instancetype)dictionaryWithFloats:(const float [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -7722,8 +7722,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7722,8 +7722,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithFloats:(const float [])values - (instancetype)initWithFloats:(const float [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -7833,8 +7833,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7833,8 +7833,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithDoubles:(const double [])values + (instancetype)dictionaryWithDoubles:(const double [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -7866,8 +7866,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7866,8 +7866,8 @@ NS_ASSUME_NONNULL_BEGIN
* *
* @return A newly initialized dictionary with a copy of the values and keys. * @return A newly initialized dictionary with a copy of the values and keys.
**/ **/
- (instancetype)initWithDoubles:(const double [])values - (instancetype)initWithDoubles:(const double [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -7992,8 +7992,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -7992,8 +7992,8 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly instanced dictionary with the keys and values in it. * @return A newly instanced dictionary with the keys and values in it.
**/ **/
+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func + (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count; count:(NSUInteger)count;
/** /**
...@@ -8038,8 +8038,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -8038,8 +8038,8 @@ NS_ASSUME_NONNULL_BEGIN
* @return A newly initialized dictionary with the keys and values in it. * @return A newly initialized dictionary with the keys and values in it.
**/ **/
- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func - (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
rawValues:(const int32_t [])values rawValues:(const int32_t [__nullable])values
forKeys:(const NSString * GPB_UNSAFE_UNRETAINED [])keys forKeys:(const NSString * __nonnull GPB_UNSAFE_UNRETAINED [__nullable])keys
count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
/** /**
...@@ -8218,7 +8218,7 @@ NS_ASSUME_NONNULL_END ...@@ -8218,7 +8218,7 @@ NS_ASSUME_NONNULL_END
//%PDDM-DEFINE ARRAY_ARG_MODIFIEREnum() //%PDDM-DEFINE ARRAY_ARG_MODIFIEREnum()
// Nothing // Nothing
//%PDDM-DEFINE ARRAY_ARG_MODIFIEROBJECT() //%PDDM-DEFINE ARRAY_ARG_MODIFIEROBJECT()
//%GPB_UNSAFE_UNRETAINED ## //%__nonnull GPB_UNSAFE_UNRETAINED ##
//%PDDM-DEFINE DICTIONARY_CLASS_DECLPOD(KEY_NAME, VALUE_NAME, VALUE_TYPE) //%PDDM-DEFINE DICTIONARY_CLASS_DECLPOD(KEY_NAME, VALUE_NAME, VALUE_TYPE)
//%GPB##KEY_NAME##VALUE_NAME##Dictionary //%GPB##KEY_NAME##VALUE_NAME##Dictionary
//%PDDM-DEFINE DICTIONARY_CLASS_DECLEnum(KEY_NAME, VALUE_NAME, VALUE_TYPE) //%PDDM-DEFINE DICTIONARY_CLASS_DECLEnum(KEY_NAME, VALUE_NAME, VALUE_TYPE)
...@@ -8264,8 +8264,8 @@ NS_ASSUME_NONNULL_END ...@@ -8264,8 +8264,8 @@ NS_ASSUME_NONNULL_END
//% * //% *
//% * @return A newly instanced dictionary with the keys and values in it. //% * @return A newly instanced dictionary with the keys and values in it.
//% **/ //% **/
//%+ (instancetype)dictionaryWith##VNAME##s:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[])##VNAME_VAR##s //%+ (instancetype)dictionaryWith##VNAME##s:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[__nullable])##VNAME_VAR##s
//% ##VNAME$S## forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[])keys //% ##VNAME$S## forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[__nullable])keys
//% ##VNAME$S## count:(NSUInteger)count; //% ##VNAME$S## count:(NSUInteger)count;
//% //%
//%/** //%/**
...@@ -8297,8 +8297,8 @@ NS_ASSUME_NONNULL_END ...@@ -8297,8 +8297,8 @@ NS_ASSUME_NONNULL_END
//% * //% *
//% * @return A newly initialized dictionary with a copy of the values and keys. //% * @return A newly initialized dictionary with a copy of the values and keys.
//% **/ //% **/
//%- (instancetype)initWith##VNAME##s:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[])##VNAME_VAR##s //%- (instancetype)initWith##VNAME##s:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[__nullable])##VNAME_VAR##s
//% ##VNAME$S## forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[])keys //% ##VNAME$S## forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[__nullable])keys
//% ##VNAME$S## count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; //% ##VNAME$S## count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
//% //%
//%/** //%/**
...@@ -8390,8 +8390,8 @@ NS_ASSUME_NONNULL_END ...@@ -8390,8 +8390,8 @@ NS_ASSUME_NONNULL_END
//% * @return A newly instanced dictionary with the keys and values in it. //% * @return A newly instanced dictionary with the keys and values in it.
//% **/ //% **/
//%+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func //%+ (instancetype)dictionaryWithValidationFunction:(nullable GPBEnumValidationFunc)func
//% rawValues:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[])values //% rawValues:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[__nullable])values
//% forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[])keys //% forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[__nullable])keys
//% count:(NSUInteger)count; //% count:(NSUInteger)count;
//% //%
//%/** //%/**
...@@ -8436,8 +8436,8 @@ NS_ASSUME_NONNULL_END ...@@ -8436,8 +8436,8 @@ NS_ASSUME_NONNULL_END
//% * @return A newly initialized dictionary with the keys and values in it. //% * @return A newly initialized dictionary with the keys and values in it.
//% **/ //% **/
//%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func //%- (instancetype)initWithValidationFunction:(nullable GPBEnumValidationFunc)func
//% rawValues:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[])values //% rawValues:(const VALUE_TYPE ARRAY_ARG_MODIFIER##VHELPER()[__nullable])values
//% forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[])keys //% forKeys:(const KEY_TYPE##KisP$S##KisP ARRAY_ARG_MODIFIER##KHELPER()[__nullable])keys
//% count:(NSUInteger)count NS_DESIGNATED_INITIALIZER; //% count:(NSUInteger)count NS_DESIGNATED_INITIALIZER;
//% //%
//%/** //%/**
......
...@@ -112,16 +112,27 @@ typedef NS_ENUM(NSInteger, GPBWellKnownTypesErrorCode) { ...@@ -112,16 +112,27 @@ typedef NS_ENUM(NSInteger, GPBWellKnownTypesErrorCode) {
* @note: Not all second/nanos combinations can be represented in a * @note: Not all second/nanos combinations can be represented in a
* NSTimeInterval, so getting this could be a lossy transform. * NSTimeInterval, so getting this could be a lossy transform.
**/ **/
@property(nonatomic, readwrite) NSTimeInterval timeIntervalSince1970; @property(nonatomic, readwrite) NSTimeInterval timeInterval;
/** /**
* Initializes a GPBDuration with the given NSTimeInterval. * Initializes a GPBDuration with the given NSTimeInterval.
* *
* @param timeIntervalSince1970 Time interval to configure the GPBDuration with. * @param timeInterval Time interval to configure the GPBDuration with.
* *
* @return A newly initialized GPBDuration. * @return A newly initialized GPBDuration.
**/ **/
- (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970; - (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval;
// These next two methods are deprecated because GBPDuration has no need of a
// "base" time. The older methods were about symmetry with GBPTimestamp, but
// the unix epoch usage is too confusing.
/** Deprecated, use timeInterval instead. */
@property(nonatomic, readwrite) NSTimeInterval timeIntervalSince1970
__attribute__((deprecated("Use timeInterval")));
/** Deprecated, use initWithTimeInterval: instead. */
- (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970
__attribute__((deprecated("Use initWithTimeInterval:")));
@end @end
......
...@@ -41,15 +41,25 @@ NSString *const GPBWellKnownTypesErrorDomain = ...@@ -41,15 +41,25 @@ NSString *const GPBWellKnownTypesErrorDomain =
static NSString *kTypePrefixGoogleApisCom = @"type.googleapis.com/"; static NSString *kTypePrefixGoogleApisCom = @"type.googleapis.com/";
static NSTimeInterval TimeIntervalSince1970FromSecondsAndNanos(int64_t seconds, static NSTimeInterval TimeIntervalFromSecondsAndNanos(int64_t seconds,
int32_t nanos) { int32_t nanos) {
return seconds + (NSTimeInterval)nanos / 1e9; return seconds + (NSTimeInterval)nanos / 1e9;
} }
static int32_t SecondsAndNanosFromTimeIntervalSince1970(NSTimeInterval time, static int32_t SecondsAndNanosFromTimeInterval(NSTimeInterval time,
int64_t *outSeconds) { int64_t *outSeconds,
BOOL nanosMustBePositive) {
NSTimeInterval seconds; NSTimeInterval seconds;
NSTimeInterval nanos = modf(time, &seconds); NSTimeInterval nanos = modf(time, &seconds);
if (nanosMustBePositive && (nanos < 0)) {
// Per Timestamp.proto, nanos is non-negative and "Negative second values with
// fractions must still have non-negative nanos values that count forward in
// time. Must be from 0 to 999,999,999 inclusive."
--seconds;
nanos = 1.0 + nanos;
}
nanos *= 1e9; nanos *= 1e9;
*outSeconds = (int64_t)seconds; *outSeconds = (int64_t)seconds;
return (int32_t)nanos; return (int32_t)nanos;
...@@ -88,8 +98,8 @@ static NSString *ParseTypeFromURL(NSString *typeURLString) { ...@@ -88,8 +98,8 @@ static NSString *ParseTypeFromURL(NSString *typeURLString) {
- (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 { - (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 {
if ((self = [super init])) { if ((self = [super init])) {
int64_t seconds; int64_t seconds;
int32_t nanos = SecondsAndNanosFromTimeIntervalSince1970( int32_t nanos = SecondsAndNanosFromTimeInterval(
timeIntervalSince1970, &seconds); timeIntervalSince1970, &seconds, YES);
self.seconds = seconds; self.seconds = seconds;
self.nanos = nanos; self.nanos = nanos;
} }
...@@ -105,13 +115,13 @@ static NSString *ParseTypeFromURL(NSString *typeURLString) { ...@@ -105,13 +115,13 @@ static NSString *ParseTypeFromURL(NSString *typeURLString) {
} }
- (NSTimeInterval)timeIntervalSince1970 { - (NSTimeInterval)timeIntervalSince1970 {
return TimeIntervalSince1970FromSecondsAndNanos(self.seconds, self.nanos); return TimeIntervalFromSecondsAndNanos(self.seconds, self.nanos);
} }
- (void)setTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 { - (void)setTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 {
int64_t seconds; int64_t seconds;
int32_t nanos = int32_t nanos =
SecondsAndNanosFromTimeIntervalSince1970(timeIntervalSince1970, &seconds); SecondsAndNanosFromTimeInterval(timeIntervalSince1970, &seconds, YES);
self.seconds = seconds; self.seconds = seconds;
self.nanos = nanos; self.nanos = nanos;
} }
...@@ -122,29 +132,41 @@ static NSString *ParseTypeFromURL(NSString *typeURLString) { ...@@ -122,29 +132,41 @@ static NSString *ParseTypeFromURL(NSString *typeURLString) {
@implementation GPBDuration (GBPWellKnownTypes) @implementation GPBDuration (GBPWellKnownTypes)
- (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 { - (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval {
if ((self = [super init])) { if ((self = [super init])) {
int64_t seconds; int64_t seconds;
int32_t nanos = SecondsAndNanosFromTimeIntervalSince1970( int32_t nanos = SecondsAndNanosFromTimeInterval(
timeIntervalSince1970, &seconds); timeInterval, &seconds, NO);
self.seconds = seconds; self.seconds = seconds;
self.nanos = nanos; self.nanos = nanos;
} }
return self; return self;
} }
- (NSTimeInterval)timeIntervalSince1970 { - (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 {
return TimeIntervalSince1970FromSecondsAndNanos(self.seconds, self.nanos); return [self initWithTimeInterval:timeIntervalSince1970];
} }
- (void)setTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 { - (NSTimeInterval)timeInterval {
return TimeIntervalFromSecondsAndNanos(self.seconds, self.nanos);
}
- (void)setTimeInterval:(NSTimeInterval)timeInterval {
int64_t seconds; int64_t seconds;
int32_t nanos = int32_t nanos =
SecondsAndNanosFromTimeIntervalSince1970(timeIntervalSince1970, &seconds); SecondsAndNanosFromTimeInterval(timeInterval, &seconds, NO);
self.seconds = seconds; self.seconds = seconds;
self.nanos = nanos; self.nanos = nanos;
} }
- (NSTimeInterval)timeIntervalSince1970 {
return self.timeInterval;
}
- (void)setTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 {
self.timeInterval = timeIntervalSince1970;
}
@end @end
#pragma mark - GPBAny #pragma mark - GPBAny
......
...@@ -32,11 +32,9 @@ ...@@ -32,11 +32,9 @@
#import <XCTest/XCTest.h> #import <XCTest/XCTest.h>
#import "GPBTestUtilities.h"
#import "google/protobuf/AnyTest.pbobjc.h" #import "google/protobuf/AnyTest.pbobjc.h"
// A basically random interval into the future for testing with.
static const NSTimeInterval kFutureOffsetInterval = 15000;
// Nanosecond time accuracy // Nanosecond time accuracy
static const NSTimeInterval kTimeAccuracy = 1e-9; static const NSTimeInterval kTimeAccuracy = 1e-9;
...@@ -46,59 +44,117 @@ static const NSTimeInterval kTimeAccuracy = 1e-9; ...@@ -46,59 +44,117 @@ static const NSTimeInterval kTimeAccuracy = 1e-9;
@implementation WellKnownTypesTest @implementation WellKnownTypesTest
- (void)testTimeStamp { - (void)testTimeStamp {
// Test Creation. // Test negative and positive values.
NSDate *date = [NSDate date]; NSTimeInterval values[] = {
GPBTimestamp *timeStamp = [[GPBTimestamp alloc] initWithDate:date]; -428027599.483999967, -1234567.0, -0.5, 0, 0.75, 54321.0, 2468086,483999967
NSDate *timeStampDate = timeStamp.date; };
for (size_t i = 0; i < GPBARRAYSIZE(values); ++i) {
// Comparing timeIntervals instead of directly comparing dates because date NSTimeInterval value = values[i];
// equality requires the time intervals to be exactly the same, and the
// timeintervals go through a bit of floating point error as they are // Test Creation - date.
// converted back and forth from the internal representation. NSDate *date = [NSDate dateWithTimeIntervalSince1970:value];
XCTAssertEqualWithAccuracy(date.timeIntervalSince1970, GPBTimestamp *timeStamp = [[GPBTimestamp alloc] initWithDate:date];
timeStampDate.timeIntervalSince1970,
kTimeAccuracy); XCTAssertGreaterThanOrEqual(timeStamp.nanos, 0,
@"Offset %f - Date: %@", (double)value, date);
NSTimeInterval time = [date timeIntervalSince1970]; XCTAssertLessThan(timeStamp.nanos, 1e9,
GPBTimestamp *timeStamp2 = @"Offset %f - Date: %@", (double)value, date);
[[GPBTimestamp alloc] initWithTimeIntervalSince1970:time];
NSTimeInterval durationTime = timeStamp2.timeIntervalSince1970; // Comparing timeIntervals instead of directly comparing dates because date
XCTAssertEqualWithAccuracy(time, durationTime, kTimeAccuracy); // equality requires the time intervals to be exactly the same, and the
[timeStamp release]; // timeintervals go through a bit of floating point error as they are
// converted back and forth from the internal representation.
// Test Mutation. XCTAssertEqualWithAccuracy(value, timeStamp.date.timeIntervalSince1970,
date = [NSDate dateWithTimeIntervalSinceNow:kFutureOffsetInterval]; kTimeAccuracy,
timeStamp2.date = date; @"Offset %f - Date: %@", (double)value, date);
timeStampDate = timeStamp2.date; [timeStamp release];
XCTAssertEqualWithAccuracy(date.timeIntervalSince1970,
timeStampDate.timeIntervalSince1970, // Test Creation - timeIntervalSince1970.
kTimeAccuracy); timeStamp = [[GPBTimestamp alloc] initWithTimeIntervalSince1970:value];
time = date.timeIntervalSince1970; XCTAssertGreaterThanOrEqual(timeStamp.nanos, 0,
timeStamp2.timeIntervalSince1970 = time; @"Offset %f - Date: %@", (double)value, date);
durationTime = timeStamp2.timeIntervalSince1970; XCTAssertLessThan(timeStamp.nanos, 1e9,
XCTAssertEqualWithAccuracy(time, durationTime, kTimeAccuracy); @"Offset %f - Date: %@", (double)value, date);
[timeStamp2 release];
XCTAssertEqualWithAccuracy(value, timeStamp.timeIntervalSince1970,
kTimeAccuracy,
@"Offset %f - Date: %@", (double)value, date);
[timeStamp release];
// Test Mutation - date.
timeStamp = [[GPBTimestamp alloc] init];
timeStamp.date = date;
XCTAssertGreaterThanOrEqual(timeStamp.nanos, 0,
@"Offset %f - Date: %@", (double)value, date);
XCTAssertLessThan(timeStamp.nanos, 1e9,
@"Offset %f - Date: %@", (double)value, date);
XCTAssertEqualWithAccuracy(value, timeStamp.date.timeIntervalSince1970,
kTimeAccuracy,
@"Offset %f - Date: %@", (double)value, date);
[timeStamp release];
// Test Mutation - timeIntervalSince1970.
timeStamp = [[GPBTimestamp alloc] init];
timeStamp.timeIntervalSince1970 = value;
XCTAssertGreaterThanOrEqual(timeStamp.nanos, 0,
@"Offset %f - Date: %@", (double)value, date);
XCTAssertLessThan(timeStamp.nanos, 1e9,
@"Offset %f - Date: %@", (double)value, date);
XCTAssertEqualWithAccuracy(value, timeStamp.date.timeIntervalSince1970,
kTimeAccuracy,
@"Offset %f - Date: %@", (double)value, date);
[timeStamp release];
}
} }
- (void)testDuration { - (void)testDuration {
// Test Creation. // Test negative and positive values.
NSTimeInterval time = [[NSDate date] timeIntervalSince1970]; NSTimeInterval values[] = { -1000.0001, -500.0, -0.5, 0, 0.75, 1000.0, 2000.0002 };
GPBDuration *duration = for (size_t i = 0; i < GPBARRAYSIZE(values); ++i) {
[[GPBDuration alloc] initWithTimeIntervalSince1970:time]; NSTimeInterval value = values[i];
NSTimeInterval durationTime = duration.timeIntervalSince1970;
XCTAssertEqualWithAccuracy(time, durationTime, kTimeAccuracy); // Test Creation.
[duration release]; GPBDuration *duration =
[[GPBDuration alloc] initWithTimeInterval:value];
// Test Mutation. XCTAssertEqualWithAccuracy(value, duration.timeInterval, kTimeAccuracy,
GPBDuration *duration2 = @"For interval %f", (double)value);
[[GPBDuration alloc] initWithTimeIntervalSince1970:time]; if (value > 0) {
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:kFutureOffsetInterval]; XCTAssertGreaterThanOrEqual(duration.seconds, 0,
time = date.timeIntervalSince1970; @"For interval %f", (double)value);
duration2.timeIntervalSince1970 = time; XCTAssertGreaterThanOrEqual(duration.nanos, 0,
durationTime = duration2.timeIntervalSince1970; @"For interval %f", (double)value);
XCTAssertEqualWithAccuracy(time, durationTime, kTimeAccuracy); } else {
[duration2 release]; XCTAssertLessThanOrEqual(duration.seconds, 0,
@"For interval %f", (double)value);
XCTAssertLessThanOrEqual(duration.nanos, 0,
@"For interval %f", (double)value);
}
[duration release];
// Test Mutation.
duration = [[GPBDuration alloc] init];
duration.timeInterval = value;
XCTAssertEqualWithAccuracy(value, duration.timeInterval, kTimeAccuracy,
@"For interval %f", (double)value);
if (value > 0) {
XCTAssertGreaterThanOrEqual(duration.seconds, 0,
@"For interval %f", (double)value);
XCTAssertGreaterThanOrEqual(duration.nanos, 0,
@"For interval %f", (double)value);
} else {
XCTAssertLessThanOrEqual(duration.seconds, 0,
@"For interval %f", (double)value);
XCTAssertLessThanOrEqual(duration.nanos, 0,
@"For interval %f", (double)value);
}
[duration release];
}
} }
- (void)testAnyHelpers { - (void)testAnyHelpers {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment