| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library conformance; |
| |
| union UnionWithBoundString { |
| 1: string:5 boundFiveStr; |
| }; |
| |
| struct UnionWithBoundStringStruct { |
| UnionWithBoundString v; |
| }; |
| |
| union SingleVariantUnion { |
| 1: uint32 x; |
| }; |
| |
| struct SingleVariantUnionStruct { |
| SingleVariantUnion u; |
| }; |
| |
| // Union tags follow the explicit ordinal order, not source order. |
| union ReverseOrdinalUnion { |
| 4: int64 x; // tag 2 |
| 3: reserved; |
| 2: bool y; // tag 1 |
| 1: uint32 z; // tag 0 |
| }; |
| |
| struct ReverseOrdinalUnionStruct { |
| ReverseOrdinalUnion u; |
| }; |
| |
| [BindingsDenylist = "dart"] |
| union RecursiveVectorUnion { |
| 1: vector<RecursiveVectorUnion?> vec; |
| }; |
| |
| [BindingsDenylist = "dart"] |
| struct RecursiveVectorUnionStruct { |
| RecursiveVectorUnion u; |
| }; |
| |
| [BindingsDenylist = "dart"] |
| union MutualRecursionUnion { |
| 1: MutualRecursionUnionStruct s; |
| }; |
| |
| [BindingsDenylist = "dart"] |
| struct MutualRecursionUnionStruct { |
| MutualRecursionUnion? u; |
| }; |