don't convert types into identical types

example: let x: String = String::new().into();
This commit is contained in:
Matthias Krüger 2021-09-11 10:31:56 +02:00
parent 22719efcc5
commit 545d8d675c
4 changed files with 5 additions and 5 deletions

View File

@ -1036,7 +1036,7 @@ impl<'a> State<'a> {
self.maybe_print_comment(st.span.lo()); self.maybe_print_comment(st.span.lo());
match st.kind { match st.kind {
hir::StmtKind::Local(ref loc) => { hir::StmtKind::Local(ref loc) => {
self.print_local(loc.init.as_deref(), |this| this.print_local_decl(&loc)); self.print_local(loc.init, |this| this.print_local_decl(&loc));
} }
hir::StmtKind::Item(item) => self.ann.nested(self, Nested::Item(item)), hir::StmtKind::Item(item) => self.ann.nested(self, Nested::Item(item)),
hir::StmtKind::Expr(ref expr) => { hir::StmtKind::Expr(ref expr) => {

View File

@ -2345,7 +2345,7 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
); );
err.span_suggestion( err.span_suggestion(
generics.where_clause.tail_span_for_suggestion(), generics.where_clause.tail_span_for_suggestion(),
"consider adding a where clause".into(), "consider adding a where clause",
suggestion, suggestion,
Applicability::MaybeIncorrect, Applicability::MaybeIncorrect,
); );

View File

@ -775,7 +775,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
if blk.targeted_by_break { if blk.targeted_by_break {
self.break_ln.insert(blk.hir_id, succ); self.break_ln.insert(blk.hir_id, succ);
} }
let succ = self.propagate_through_opt_expr(blk.expr.as_deref(), succ); let succ = self.propagate_through_opt_expr(blk.expr, succ);
blk.stmts.iter().rev().fold(succ, |succ, stmt| self.propagate_through_stmt(stmt, succ)) blk.stmts.iter().rev().fold(succ, |succ, stmt| self.propagate_through_stmt(stmt, succ))
} }
@ -796,7 +796,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
// initialization, which is mildly more complex than checking // initialization, which is mildly more complex than checking
// once at the func header but otherwise equivalent. // once at the func header but otherwise equivalent.
let succ = self.propagate_through_opt_expr(local.init.as_deref(), succ); let succ = self.propagate_through_opt_expr(local.init, succ);
self.define_bindings_in_pat(&local.pat, succ) self.define_bindings_in_pat(&local.pat, succ)
} }
hir::StmtKind::Item(..) => succ, hir::StmtKind::Item(..) => succ,

View File

@ -812,7 +812,7 @@ impl<'tcx> Visitor<'tcx> for RegionResolutionVisitor<'tcx> {
resolve_expr(self, ex); resolve_expr(self, ex);
} }
fn visit_local(&mut self, l: &'tcx Local<'tcx>) { fn visit_local(&mut self, l: &'tcx Local<'tcx>) {
resolve_local(self, Some(&l.pat), l.init.as_deref()); resolve_local(self, Some(&l.pat), l.init);
} }
} }