[ https://issues.apache.org/jira/browse/THRIFT-2640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14503725#comment-14503725 ]
ASF GitHub Bot commented on THRIFT-2640: ---------------------------------------- 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. ``` > Compact Protocol in Cocoa > ------------------------- > > Key: THRIFT-2640 > URL: https://issues.apache.org/jira/browse/THRIFT-2640 > Project: Thrift > Issue Type: Sub-task > Components: Cocoa - Library > Affects Versions: 0.9.1 > Reporter: Mark Hornsby > Assignee: Jens Geyer > Priority: Minor > -- This message was sent by Atlassian JIRA (v6.3.4#6332)