[roll] Roll fuchsia [fidl][cpp] Strict unions cannot be default constructed

By making this change, we avoid having to answer questions such as "what
is the default state of a strict union" and "what happens when the user
calls Which on that union". Now these cases are ruled out at compile
time.

Of course, within the FIDL we still need to make those unions during
decoding. That ability is exposed through the
|fidl::internal::DefaultConstructPossiblyInvalidObject| trait, which end
users won't be able to use.

The main hurdle was adjusting the various codes that materialize FIDL
objects to use this trait, and making this trait work for arrays of
(arrays of (...)) strict unions.

It adds some subtle C++ complexity but makes the end user API simpler.

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/666560
Original-Revision: f2fa7845b92d1a78784e1420d7be94eee78cbb3d
GitOrigin-RevId: c6d4cbb5b926d843b513b9eb167d5ee8111a18aa
Change-Id: If5b0676b8694055bd8fc65f609318cdf11b0fe44
1 file changed
tree: e1ff44635794e29f5e078cf474cf7d86c43ac827
  1. infra/
  2. third_party/
  3. cts
  4. firmware
  5. flower
  6. jiri.lock
  7. minimal
  8. prebuilts
  9. README.md
  10. stem
  11. test_durations
  12. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.