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