• Rafi Kamal's avatar
    Fix for wrappers with a zero value (#7195) (#7201) · 37fc4327
    Rafi Kamal authored
    * Add failing tests for issues with wrapped values where the value is the default
    
    * Add test for wrapped values without a value set
    
    * Bugfix for wrapper types with default values.
    
    The previous optimizations for wrapper types had a bug that prevented
    wrappers from registering as "present" if the "value" field was not
    present on the wire.
    
    In practice the "value" field will not be serialized when it is zero,
    according to proto3 semantics, but due to the optimization this
    prevented it from creating a new object to represent the presence of the
    field.
    
    The fix is to ensure that if the wrapper message is present on the wire,
    we always initialize its value to zero.
    Co-authored-by: 's avatarJoshua Haberman <jhaberman@gmail.com>
    Co-authored-by: 's avatarDan Quan <dan@quan.io>
    37fc4327
basic.rb 18.1 KB