From 8211fbcd270b4c9dc88b1fd14cbea1393c89ebc1 Mon Sep 17 00:00:00 2001 From: Joshua Liebow-Feeser Date: Tue, 3 Dec 2024 07:40:01 -0800 Subject: [PATCH] [derive] Don't emit #[cfg(coverage_nightly)] (#2123) As of nightly-2024-11-20 - specifically [1] - this triggers an `unexpected_cfgs` lint even when emitted in derive-generated code. [1] https://github.com/rust-lang/rust/pull/132577 Fixes #2117 gherrit-pr-id: I9d536f0ea08475afe0b65411b225aa55f4db449a --- zerocopy-derive/src/lib.rs | 1 - zerocopy-derive/src/output_tests.rs | 1 - zerocopy-derive/tests/issue_2117.rs | 20 ++++++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 zerocopy-derive/tests/issue_2117.rs diff --git a/zerocopy-derive/src/lib.rs b/zerocopy-derive/src/lib.rs index a94ba719be..79caa5ff2d 100644 --- a/zerocopy-derive/src/lib.rs +++ b/zerocopy-derive/src/lib.rs @@ -301,7 +301,6 @@ fn derive_known_layout_inner(ast: &DeriveInput, _top_level: Trait) -> Result::PointerMetadata; diff --git a/zerocopy-derive/src/output_tests.rs b/zerocopy-derive/src/output_tests.rs index 6b1931f80f..18fd2b0227 100644 --- a/zerocopy-derive/src/output_tests.rs +++ b/zerocopy-derive/src/output_tests.rs @@ -192,7 +192,6 @@ fn test_known_layout() { ::MaybeUninit: ::zerocopy::KnownLayout, { #[allow(clippy::missing_inline_in_public_items)] - #[cfg_attr(coverage_nightly, coverage(off))] fn only_derive_is_allowed_to_implement_this_trait() {} type PointerMetadata = as ::zerocopy::KnownLayout>::PointerMetadata; type MaybeUninit = Self; diff --git a/zerocopy-derive/tests/issue_2117.rs b/zerocopy-derive/tests/issue_2117.rs new file mode 100644 index 0000000000..1ee809ae70 --- /dev/null +++ b/zerocopy-derive/tests/issue_2117.rs @@ -0,0 +1,20 @@ +// Copyright 2024 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. + +// See comment in `include.rs` for why we disable the prelude. +#![no_implicit_prelude] +#![allow(warnings)] +#![forbid(unexpected_cfgs)] + +include!("include.rs"); + +// Make sure no unexpected `cfg`s are emitted by our derives (see #2117). + +#[derive(imp::KnownLayout)] +#[repr(C)] +pub struct Test(pub [u8; 32]);