1 use clippy_utils
::diagnostics
::span_lint
;
2 use clippy_utils
::{is_expr_diagnostic_item, ty::is_uninit_value_valid_for_ty}
;
3 use if_chain
::if_chain
;
5 use rustc_lint
::LateContext
;
8 use super::UNINIT_ASSUMED_INIT
;
10 /// lint for `MaybeUninit::uninit().assume_init()` (we already have the latter)
11 pub(super) fn check(cx
: &LateContext
<'_
>, expr
: &hir
::Expr
<'_
>, recv
: &hir
::Expr
<'_
>) {
13 if let hir
::ExprKind
::Call(callee
, args
) = recv
.kind
;
15 if is_expr_diagnostic_item(cx
, callee
, sym
::maybe_uninit_uninit
);
16 if !is_uninit_value_valid_for_ty(cx
, cx
.typeck_results().expr_ty_adjusted(expr
));
22 "this call for this type may be undefined behavior"