mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
code review
This commit is contained in:
parent
fbdb13cfb0
commit
bca125935c
@ -103,7 +103,7 @@ fn check_ty<'a, 'tcx>(cx: &LateContext<'a, 'tcx>, span: Span, ty: Ty<'tcx>) {
|
|||||||
.iter()
|
.iter()
|
||||||
.any(|path| match_def_path(cx, def.did, &**path))
|
.any(|path| match_def_path(cx, def.did, &**path))
|
||||||
{
|
{
|
||||||
let key_type = concrete_type(Some(substs.type_at(0)));
|
let key_type = concrete_type(substs.type_at(0));
|
||||||
if let Some(key_type) = key_type {
|
if let Some(key_type) = key_type {
|
||||||
if !key_type.is_freeze(cx.tcx, cx.param_env, span) {
|
if !key_type.is_freeze(cx.tcx, cx.param_env, span) {
|
||||||
span_lint(cx, MUTABLE_KEY_TYPE, span, "mutable key type");
|
span_lint(cx, MUTABLE_KEY_TYPE, span, "mutable key type");
|
||||||
@ -113,13 +113,10 @@ fn check_ty<'a, 'tcx>(cx: &LateContext<'a, 'tcx>, span: Span, ty: Ty<'tcx>) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn concrete_type(ty: Option<Ty<'_>>) -> Option<Ty<'_>> {
|
fn concrete_type(ty: Ty<'_>) -> Option<Ty<'_>> {
|
||||||
if let Some(ty) = ty {
|
match ty.kind {
|
||||||
match ty.kind {
|
RawPtr(TypeAndMut { ty: inner_ty, .. }) | Ref(_, inner_ty, _) => concrete_type(inner_ty),
|
||||||
RawPtr(TypeAndMut { ty: inner_ty, .. }) | Ref(_, inner_ty, _) => return concrete_type(Some(inner_ty)),
|
Dynamic(..) | Opaque(..) | Param(..) => None,
|
||||||
Dynamic(..) | Opaque(..) | Param(..) => return None,
|
_ => Some(ty),
|
||||||
_ => return Some(ty),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
None
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user