match ty.node {
TyPath(ref qpath) => {
let def = cx.tables.qpath_def(qpath, ast_ty.id);
- if let Some(def_id) = opt_def_id(def) {
- if Some(def_id) == cx.tcx.lang_items.owned_box() {
- if_let_chain! {[
- let QPath::Resolved(None, ref path) = *qpath,
- let [ref bx] = *path.segments,
- let PathParameters::AngleBracketedParameters(ref ab_data) = bx.parameters,
- let [ref inner] = *ab_data.types
- ], {
- let ltopt = if lt.is_elided() {
- "".to_owned()
- } else {
- format!("{} ", lt.name.as_str())
- };
- let mutopt = if *mutbl == Mutability::MutMutable {
- "mut "
- } else {
- ""
- };
- span_lint_and_then(cx,
- BORROWED_BOX,
- ast_ty.span,
- "you seem to be trying to use `&Box<T>`. Consider using just `&T`",
- |db| {
- db.span_suggestion(ast_ty.span,
- "try",
- format!("&{}{}{}", ltopt, mutopt, &snippet(cx, inner.span, "..")));
- }
- );
- return; // don't recurse into the type
- }};
- }
- }
+ if_let_chain! {[
+ let Some(def_id) = opt_def_id(def),
+ Some(def_id) == cx.tcx.lang_items.owned_box(),
+ let QPath::Resolved(None, ref path) = *qpath,
+ let [ref bx] = *path.segments,
+ let PathParameters::AngleBracketedParameters(ref ab_data) = bx.parameters,
+ let [ref inner] = *ab_data.types
+ ], {
+ let ltopt = if lt.is_elided() {
+ "".to_owned()
+ } else {
+ format!("{} ", lt.name.as_str())
+ };
+ let mutopt = if *mutbl == Mutability::MutMutable {
+ "mut "
+ } else {
+ ""
+ };
+ span_lint_and_then(cx,
+ BORROWED_BOX,
+ ast_ty.span,
+ "you seem to be trying to use `&Box<T>`. Consider using just `&T`",
+ |db| {
+ db.span_suggestion(ast_ty.span,
+ "try",
+ format!("&{}{}{}", ltopt, mutopt, &snippet(cx, inner.span, "..")));
+ }
+ );
+ return; // don't recurse into the type
+ }};
check_ty(cx, ty, is_local);
},
_ => check_ty(cx, ty, is_local),