Github user jeremy-w commented on the pull request: https://github.com/apache/thrift/pull/442#issuecomment-94576314 In that case, the remaining warnings I'm seeing are mostly implicit sign conversions and implicit precision loss (integer width narrowing), with a smattering of "ARC would like some `__autoreleasing` annotations". Some of these can be resolved by picking variable types that match their eventual uses, like field types should be 16-bit throughout. Most of these are due to protocol issues as discussed earlier. The protocol output needs updating to be 64-bit friendly as was done with the transport library code. Those issues need to be resolved in tandem with codegen changes, though. ``` thrift/lib/cocoa/src/protocol/TCompactProtocol.m:127:14: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion] if ((n & ~0x7F) == 0) { ~ ^~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:143:26: warning: implicit conversion changes signedness: 'const uint8_t' (aka 'const unsigned char') to 'int8_t' (aka 'signed char') [-Wsign-conversion] [self writeByteDirect: COMPACT_PROTOCOL_ID]; ~ ^~~~~~~~~~~~~~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:144:26: warning: implicit conversion changes signedness: 'uint8_t' (aka 'unsigned char') to 'int8_t' (aka 'signed char') [-Wsign-conversion] [self writeByteDirect: (uint8_t)((COMPACT_VERSION & COMPACT_VERSION_MASK) | ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:183:75: warning: implicit conversion loses integer precision: 'int' to 'uint8_t' (aka 'unsigned char') [-Wconversion] uint8_t typeToWrite = typeOverride == 0xFF ? [self compactTypeForTType: fieldType] : typeOverride; ~ ^~~~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:188:57: warning: implicit conversion loses integer precision: 'int' to 'int8_t' (aka 'signed char') [-Wconversion] [self writeByteDirect: (fieldID - lastFieldId) << 4 | typeToWrite]; ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:191:28: warning: implicit conversion changes signedness: 'uint8_t' (aka 'unsigned char') to 'int8_t' (aka 'signed char') [-Wsign-conversion] [self writeByteDirect: typeToWrite]; ~ ^~~~~~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:192:21: warning: implicit conversion loses integer precision: 'int' to 'short' [-Wconversion] [self writeI16: fieldID]; ~ ^~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:195:17: warning: implicit conversion loses integer precision: 'int' to 'short' [-Wconversion] lastFieldId = fieldID; ~ ^~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:211:69: warning: implicit conversion loses integer precision: 'int' to 'int8_t' (aka 'signed char') [-Wconversion] [self writeByteDirect: [self compactTypeForTType: keyType] << 4 | [self compactTypeForTType: valueType]]; ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:211:55: warning: implicit conversion loses integer precision: 'int' to 'uint8_t' (aka 'unsigned char') [-Wconversion] [self writeByteDirect: [self compactTypeForTType: keyType] << 4 | [self compactTypeForTType: valueType]]; ~ ^~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:211:98: warning: implicit conversion loses integer precision: 'int' to 'uint8_t' (aka 'unsigned char') [-Wconversion] [self writeByteDirect: [self compactTypeForTType: keyType] << 4 | [self compactTypeForTType: valueType]]; ~ ^~~~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:251:26: warning: implicit conversion changes signedness: 'uint8_t' (aka 'unsigned char') to 'int8_t' (aka 'signed char') [-Wsign-conversion] [self writeByteDirect: value]; ~ ^~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:302:38: warning: implicit conversion loses integer precision: 'int' to 'int8_t' (aka 'signed char') [-Wconversion] [self writeByteDirect: size << 4 | [self compactTypeForTType: elementType]]; ~ ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:302:67: warning: implicit conversion loses integer precision: 'int' to 'uint8_t' (aka 'unsigned char') [-Wconversion] [self writeByteDirect: size << 4 | [self compactTypeForTType: elementType]]; ~ ^~~~~~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:304:33: warning: implicit conversion changes signedness: 'int' to 'int8_t' (aka 'signed char') [-Wsign-conversion] [self writeByteDirect: 0xf0 | [self compactTypeForTType: elementType]]; ~ ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:304:62: warning: implicit conversion loses integer precision: 'int' to 'uint8_t' (aka 'unsigned char') [-Wconversion] [self writeByteDirect: 0xf0 | [self compactTypeForTType: elementType]]; ~ ^~~~~~~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:315:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long long' [-Wsign-conversion] if ((n & ~0x7FL) == 0) { ~ ^~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:324:52: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion] [mTransport write: varint64out offset: 0 length: idx]; ~ ^~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:344:55: warning: method parameter of type 'NSString *__autoreleasing *' with no explicit ownership [-Wexplicit-ownership-type] - (void) readMessageBeginReturningName: (NSString **) pname ^ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:376:54: warning: method parameter of type 'NSString *__autoreleasing *' with no explicit ownership [-Wexplicit-ownership-type] - (void) readStructBeginReturningName: (NSString **) pname ^ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:392:53: warning: method parameter of type 'NSString *__autoreleasing *' with no explicit ownership [-Wexplicit-ownership-type] - (void) readFieldBeginReturningName: (NSString **) pname ^ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:565:55: warning: implicit conversion changes signedness: 'int' to 'NSUInteger' (aka 'unsigned int') [-Wsign-conversion] NSMutableData* buf = [NSMutableData dataWithLength: length]; ~ ^~~~~~ thrift/lib/cocoa/src/protocol/TCompactProtocol.m:566:59: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion] [mTransport readAll: buf.mutableBytes offset: 0 length: length]; ~ ^~~~~~ 23 warnings generated. ```
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---