// Copyright 2023 The Fuchsia Authors // // Licensed under a BSD-style license , Apache License, Version 2.0 // , or the MIT // license , at your option. // This file may not be copied, modified, or distributed except according to // those terms. extern crate zerocopy; use zerocopy::KnownLayout; fn main() {} // These tests cause errors which are generated by a later compilation pass than // the other errors we generate, and so if they're compiled in the same file, // the compiler will never get to that pass, and so we won't get the errors. // // KnownLayout errors // fn assert_kl(_: &T) {} // | `repr(C)`? | generic? | `KnownLayout`? | `Sized`? | Type Name | // | N | Y | N | N | KL04 | #[derive(KnownLayout)] struct KL04(u8, T); fn test_kl04(kl: &KL04) { assert_kl(kl); } // | `repr(C)`? | generic? | `KnownLayout`? | `Sized`? | Type Name | // | N | Y | Y | N | KL06 | #[derive(KnownLayout)] struct KL06(u8, T); fn test_kl06(kl: &KL06) { assert_kl(kl); } // | `repr(C)`? | generic? | `KnownLayout`? | `Sized`? | Type Name | // | Y | Y | N | N | KL12 | #[derive(KnownLayout)] #[repr(C)] struct KL12(u8, T); fn test_kl12(kl: &KL12) { assert_kl(kl) } // | `repr(C)`? | generic? | `KnownLayout`? | `Sized`? | Type Name | // | Y | Y | N | Y | KL13 | #[derive(KnownLayout)] #[repr(C)] struct KL13(u8, T); fn test_kl13(t: T) -> impl KnownLayout { KL13(0u8, t) }