Do not trigger trailing_empty_array in tests (#13844)

Close #13837

changelog: [`trailing_empty_array`]: do not trigger on tests
This commit is contained in:
llogiq 2024-12-29 00:10:58 +00:00 committed by GitHub
commit 786f090bb9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 19 additions and 2 deletions

View file

@ -1,5 +1,5 @@
use clippy_utils::diagnostics::span_lint_and_help;
use clippy_utils::has_repr_attr;
use clippy_utils::{has_repr_attr, is_in_test};
use rustc_hir::{Item, ItemKind};
use rustc_lint::{LateContext, LateLintPass};
use rustc_middle::ty;
@ -37,7 +37,10 @@ declare_lint_pass!(TrailingEmptyArray => [TRAILING_EMPTY_ARRAY]);
impl<'tcx> LateLintPass<'tcx> for TrailingEmptyArray {
fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'tcx>) {
if is_struct_with_trailing_zero_sized_array(cx, item) && !has_repr_attr(cx, item.hir_id()) {
if is_struct_with_trailing_zero_sized_array(cx, item)
&& !has_repr_attr(cx, item.hir_id())
&& !is_in_test(cx.tcx, item.hir_id())
{
span_lint_and_help(
cx,
TRAILING_EMPTY_ARRAY,

View file

@ -193,3 +193,17 @@ type C = ConstParamNoDefault<0>;
type D = ConstParamNonZeroDefault<0>;
fn main() {}
#[cfg(test)]
mod tests {
pub struct Friend {
age: u8,
}
#[test]
fn oldest_empty_is_none() {
struct Michael {
friends: [Friend; 0],
}
}
}