Auto merge of #7068 - boxdot:remove-std-ptr-null, r=camsteffen

Remove paths::STD_PTR_NULL

Related to #5393

changelog: none
This commit is contained in:
bors 2021-04-12 18:37:31 +00:00
commit e9728b80ce
2 changed files with 7 additions and 9 deletions

View File

@ -1,6 +1,6 @@
use crate::consts::{constant_context, Constant};
use clippy_utils::diagnostics::span_lint;
use clippy_utils::{match_qpath, paths};
use clippy_utils::{match_def_path, paths};
use if_chain::if_chain;
use rustc_ast::LitKind;
use rustc_hir::{Expr, ExprKind};
@ -38,10 +38,10 @@ fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) {
if_chain! {
if let ExprKind::Call(func, args) = expr.kind;
if let ExprKind::Path(ref path) = func.kind;
if match_qpath(path, &paths::STD_MEM_TRANSMUTE);
if args.len() == 1;
if let ExprKind::Path(ref path) = func.kind;
if let Some(func_def_id) = cx.qpath_res(path, func.hir_id).opt_def_id();
if match_def_path(cx, func_def_id, &paths::TRANSMUTE);
then {
// Catching transmute over constants that resolve to `null`.
@ -69,10 +69,10 @@ fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) {
// Catching:
// `std::mem::transmute(std::ptr::null::<i32>())`
if_chain! {
if let ExprKind::Call(func1, args1) = args[0].kind;
if let ExprKind::Call(func1, []) = args[0].kind;
if let ExprKind::Path(ref path1) = func1.kind;
if match_qpath(path1, &paths::STD_PTR_NULL);
if args1.is_empty();
if let Some(func1_def_id) = cx.qpath_res(path1, func1.hir_id).opt_def_id();
if match_def_path(cx, func1_def_id, &paths::PTR_NULL);
then {
span_lint(cx, TRANSMUTING_NULL, expr.span, LINT_MSG)
}

View File

@ -142,8 +142,6 @@
pub const STDOUT: [&str; 4] = ["std", "io", "stdio", "stdout"];
pub const STD_CONVERT_IDENTITY: [&str; 3] = ["std", "convert", "identity"];
pub const STD_FS_CREATE_DIR: [&str; 3] = ["std", "fs", "create_dir"];
pub const STD_MEM_TRANSMUTE: [&str; 3] = ["std", "mem", "transmute"];
pub const STD_PTR_NULL: [&str; 3] = ["std", "ptr", "null"];
pub const STRING_AS_MUT_STR: [&str; 4] = ["alloc", "string", "String", "as_mut_str"];
pub const STRING_AS_STR: [&str; 4] = ["alloc", "string", "String", "as_str"];
pub const STR_ENDS_WITH: [&str; 4] = ["core", "str", "<impl str>", "ends_with"];