blob: 960517e9654c556ddcb7d090f9f02bb7b83c6956 [file] [log] [blame]
// 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;
};