enable #[allow(clippy::unsafe_derive_deserialize)]
This commit is contained in:
parent
2d4c3379d3
commit
50a86d4927
@ -1,7 +1,7 @@
|
||||
use crate::utils::paths;
|
||||
use crate::utils::{
|
||||
get_trait_def_id, is_automatically_derived, is_copy, match_path, span_lint_and_help, span_lint_and_note,
|
||||
span_lint_and_then,
|
||||
get_trait_def_id, is_allowed, is_automatically_derived, is_copy, match_path, span_lint_and_help,
|
||||
span_lint_and_note, span_lint_and_then,
|
||||
};
|
||||
use if_chain::if_chain;
|
||||
use rustc_hir::def_id::DefId;
|
||||
@ -354,7 +354,9 @@ fn check_unsafe_derive_deserialize<'tcx>(
|
||||
if_chain! {
|
||||
if match_path(&trait_ref.path, &paths::SERDE_DESERIALIZE);
|
||||
if let ty::Adt(def, _) = ty.kind;
|
||||
if def.did.is_local();
|
||||
if let Some(local_def_id) = def.did.as_local();
|
||||
let adt_hir_id = cx.tcx.hir().as_local_hir_id(local_def_id);
|
||||
if !is_allowed(cx, UNSAFE_DERIVE_DESERIALIZE, adt_hir_id);
|
||||
if cx.tcx.inherent_impls(def.did)
|
||||
.iter()
|
||||
.map(|imp_did| item_from_def_id(cx, *imp_did))
|
||||
|
@ -57,4 +57,14 @@ impl E {
|
||||
#[derive(Deserialize)]
|
||||
pub struct F {}
|
||||
|
||||
// Check that we honor the `allow` attribute on the ADT
|
||||
#[allow(clippy::unsafe_derive_deserialize)]
|
||||
#[derive(Deserialize)]
|
||||
pub struct G {}
|
||||
impl G {
|
||||
pub fn unsafe_block(&self) {
|
||||
unsafe {}
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
Loading…
Reference in New Issue
Block a user