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.
---

Reply via email to