Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ObjC Proto3 optional support #7421

Merged
merged 8 commits into from Apr 24, 2020
Merged

Commits on Apr 24, 2020

  1. [ObjC] Move over some custom logic to Descriptor provided info.

    FieldDescriptor::has_presence works as a replacement for the custom logic we
    had for FieldGenerator::WantsHasProperty(), and is already proto3 optional
    aware.
    thomasvl committed Apr 24, 2020
    Copy the full SHA
    65eafce View commit details
    Browse the repository at this point in the history
  2. [ObjC] Update oneof generation for proto3 optional.

    - Don't make an OneofGenerator for synthetic oneofs.
    - Update the field calculations that determine if hasbits are needed to
      know about synthetic oneofs and ignore them.
    thomasvl committed Apr 24, 2020
    Copy the full SHA
    cde2fc4 View commit details
    Browse the repository at this point in the history
  3. [ObjC] Runtime support for proto3 optional.

    - Add a Descriptor flag to capture if the field should clear on being zeroed.
    - Update the runtime to use the new clear on zero flag.
    - Add a flag on message initialization to indicate the sources were generated
      with/without this support so the runtime can backfill the flag for older
      generated sources.
    thomasvl committed Apr 24, 2020
    Copy the full SHA
    251d7c9 View commit details
    Browse the repository at this point in the history
  4. [ObjC] Update some library internals to not pass syntax versions.

    - With the new flags, the syntax isn't needed, so don't pass it.
    - To keep library binary compatibility, rename the helpers since one
      "Internal" method was called from generated code. Keep a shim with
      the old signature to support those generated sources.
    thomasvl committed Apr 24, 2020
    Copy the full SHA
    35631be View commit details
    Browse the repository at this point in the history
  5. [ObjC] Update oneof clearing internals.

    - Add/document an public api for clearing oneofs.
    - Move the current library internals to a new api and keep a shim for old
      generated code.
    thomasvl committed Apr 24, 2020
    Copy the full SHA
    a88c997 View commit details
    Browse the repository at this point in the history
  6. [ObjC] Generation changes around proto3 optional.

    - Bump the version marker in the generated code.
    - Set the flag to say clear on zero is known.
    - Set clear on zero for proto3 optional fields that aren't tagged as optional.
    - Also tweak the call from some C generated code to use different apis with
      better validation.
    - Mark the ObjC generator as supporting the proto3 optional feature.
    - Regenerate the WKTs to get the new flags.
    thomasvl committed Apr 24, 2020
    Copy the full SHA
    2900eb7 View commit details
    Browse the repository at this point in the history
  7. Copy the full SHA
    799691e View commit details
    Browse the repository at this point in the history
  8. Copy the full SHA
    5ef9c28 View commit details
    Browse the repository at this point in the history