From c1c2cd23765bf7dbaa41a99ae6f8f763ed6852b4 Mon Sep 17 00:00:00 2001 From: Eduard-Mihai Burtescu Date: Tue, 6 Jun 2017 22:43:59 +0300 Subject: [PATCH] Statements do not have types. --- src/librustc_typeck/check/mod.rs | 39 ++++++-------------------- src/librustc_typeck/check/writeback.rs | 5 ---- 2 files changed, 9 insertions(+), 35 deletions(-) diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index c3bce8048796b..04469dcaf2bd5 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -120,7 +120,7 @@ use syntax::feature_gate::{GateIssue, emit_feature_err}; use syntax::ptr::P; use syntax::symbol::{Symbol, InternedString, keywords}; use syntax::util::lev_distance::find_best_match_for_name; -use syntax_pos::{self, BytePos, Span, DUMMY_SP}; +use syntax_pos::{self, BytePos, Span}; use rustc::hir::intravisit::{self, Visitor, NestedVisitorMap}; use rustc::hir::itemlikevisit::ItemLikeVisitor; @@ -1901,14 +1901,6 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { value) } - pub fn write_nil(&self, node_id: ast::NodeId) { - self.write_ty(node_id, self.tcx.mk_nil()); - } - - pub fn write_error(&self, node_id: ast::NodeId) { - self.write_ty(node_id, self.tcx.types.err); - } - pub fn require_type_meets(&self, ty: Ty<'tcx>, span: Span, @@ -4020,11 +4012,10 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { pub fn check_stmt(&self, stmt: &'gcx hir::Stmt) { // Don't do all the complex logic below for DeclItem. match stmt.node { - hir::StmtDecl(ref decl, id) => { + hir::StmtDecl(ref decl, _) => { match decl.node { hir::DeclLocal(_) => {} hir::DeclItem(_) => { - self.write_nil(id); return; } } @@ -4040,34 +4031,22 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { self.diverges.set(Diverges::Maybe); self.has_errors.set(false); - let (node_id, _span) = match stmt.node { - hir::StmtDecl(ref decl, id) => { - let span = match decl.node { + match stmt.node { + hir::StmtDecl(ref decl, _) => { + match decl.node { hir::DeclLocal(ref l) => { self.check_decl_local(&l); - l.span } - hir::DeclItem(_) => {/* ignore for now */ - DUMMY_SP - } - }; - (id, span) + hir::DeclItem(_) => {/* ignore for now */} + } } - hir::StmtExpr(ref expr, id) => { + hir::StmtExpr(ref expr, _) => { // Check with expected type of () self.check_expr_has_type(&expr, self.tcx.mk_nil()); - (id, expr.span) } - hir::StmtSemi(ref expr, id) => { + hir::StmtSemi(ref expr, _) => { self.check_expr(&expr); - (id, expr.span) } - }; - - if self.has_errors.get() { - self.write_error(node_id); - } else { - self.write_nil(node_id); } // Combine the diverging and has_error flags. diff --git a/src/librustc_typeck/check/writeback.rs b/src/librustc_typeck/check/writeback.rs index 012fde16d875e..4af262bcb78df 100644 --- a/src/librustc_typeck/check/writeback.rs +++ b/src/librustc_typeck/check/writeback.rs @@ -155,11 +155,6 @@ impl<'cx, 'gcx, 'tcx> Visitor<'gcx> for WritebackCx<'cx, 'gcx, 'tcx> { NestedVisitorMap::None } - fn visit_stmt(&mut self, s: &'gcx hir::Stmt) { - self.visit_node_id(s.span, s.node.id()); - intravisit::walk_stmt(self, s); - } - fn visit_expr(&mut self, e: &'gcx hir::Expr) { self.fix_scalar_builtin_expr(e);