| // Copyright 2020 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; |
| |
| struct RecursiveOptionalStruct { |
| RecursiveOptionalStruct? inner; |
| }; |
| |
| // Wrap with an extra layer of struct and array which should not add any more |
| // out of line recursion depth. |
| struct RecursiveOptionalStructArrayWrapper { |
| array<RecursiveOptionalStruct>:1 arr; |
| }; |
| |
| union RecursiveOptionalAndUnion { |
| 1: RecursiveOptionalStruct recursive_optional; |
| }; |
| |
| struct RecursiveOptionalAndUnionStruct { |
| RecursiveOptionalAndUnion u; |
| }; |
| |
| table RecursiveOptionalAndTable { |
| 1: RecursiveOptionalStruct recursive_optional; |
| }; |
| |
| struct RecursiveOptionalAndTableStruct { |
| RecursiveOptionalAndTable t; |
| }; |
| |
| struct RecursiveOptionalAndVectorStruct { |
| vector<RecursiveOptionalStruct> vec; |
| }; |
| |
| struct RecursiveOptionalStructWithString { |
| RecursiveOptionalStructWithString? inner; |
| string? str; |
| }; |