]> git.lizzy.rs Git - rust.git/commitdiff
Remove LoopIdResult
authorest31 <MTest31@outlook.com>
Mon, 14 May 2018 17:07:05 +0000 (19:07 +0200)
committerest31 <MTest31@outlook.com>
Tue, 15 May 2018 13:47:32 +0000 (15:47 +0200)
It's redundant as Result already implements Encodable
as well as Decodable.

src/librustc/cfg/construct.rs
src/librustc/hir/intravisit.rs
src/librustc/hir/lowering.rs
src/librustc/hir/mod.rs
src/librustc/ich/impls_hir.rs
src/librustc/middle/liveness.rs
src/librustc_mir/hair/cx/expr.rs
src/librustc_passes/loops.rs

index 96be361ee8a1592247b6993939ff97cbd3a9669c..d8cf147e3ee4b0b8530e9729e01c8be1a196ed9b 100644 (file)
@@ -582,7 +582,7 @@ fn find_scope_edge(&self,
                   scope_cf_kind: ScopeCfKind) -> (region::Scope, CFGIndex) {
 
         match destination.target_id {
-            hir::LoopIdResult::Ok(loop_id) => {
+            Ok(loop_id) => {
                 for b in &self.breakable_block_scopes {
                     if b.block_expr_id == self.tcx.hir.node_to_hir_id(loop_id).local_id {
                         let scope_id = self.tcx.hir.node_to_hir_id(loop_id).local_id;
@@ -603,7 +603,7 @@ fn find_scope_edge(&self,
                 }
                 span_bug!(expr.span, "no scope for id {}", loop_id);
             }
-            hir::LoopIdResult::Err(err) => span_bug!(expr.span, "scope error: {}",  err),
+            Err(err) => span_bug!(expr.span, "scope error: {}",  err),
         }
     }
 }
index fb10e33ef33b75b4e98eaca23300424cd035d7bf..1fb496cca629ed0210d3f9f851a2e9a3cebeb855 100644 (file)
@@ -1039,9 +1039,8 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr) {
             if let Some(ref label) = destination.label {
                 visitor.visit_label(label);
                 match destination.target_id {
-                    LoopIdResult::Ok(node_id) =>
-                        visitor.visit_def_mention(Def::Label(node_id)),
-                    LoopIdResult::Err(_) => {},
+                    Ok(node_id) => visitor.visit_def_mention(Def::Label(node_id)),
+                    Err(_) => {},
                 };
             }
             walk_list!(visitor, visit_expr, opt_expr);
@@ -1050,9 +1049,8 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr) {
             if let Some(ref label) = destination.label {
                 visitor.visit_label(label);
                 match destination.target_id {
-                    LoopIdResult::Ok(node_id) =>
-                        visitor.visit_def_mention(Def::Label(node_id)),
-                    LoopIdResult::Err(_) => {},
+                    Ok(node_id) => visitor.visit_def_mention(Def::Label(node_id)),
+                    Err(_) => {},
                 };
             }
         }
index c5fbf9758624e7c2f73be8e206d535d3c8f3441a..d5d3746bc184f5fe9c447ace3f765958d7532453 100644 (file)
@@ -929,9 +929,9 @@ fn lower_loop_destination(&mut self, destination: Option<(NodeId, Label)>) -> hi
         match destination {
             Some((id, label)) => {
                 let target_id = if let Def::Label(loop_id) = self.expect_full_def(id) {
-                    hir::LoopIdResult::Ok(self.lower_node_id(loop_id).node_id)
+                    Ok(self.lower_node_id(loop_id).node_id)
                 } else {
-                    hir::LoopIdResult::Err(hir::LoopIdError::UnresolvedLabel)
+                    Err(hir::LoopIdError::UnresolvedLabel)
                 };
                 hir::Destination {
                     label: self.lower_label(Some(label)),
@@ -3598,7 +3598,7 @@ fn lower_expr(&mut self, e: &Expr) -> hir::Expr {
                             hir::ExprBreak(
                                 hir::Destination {
                                     label: None,
-                                    target_id: hir::LoopIdResult::Ok(catch_node),
+                                    target_id: Ok(catch_node),
                                 },
                                 Some(from_err_expr),
                             ),
index 4ab9c4936571546feebb292b91d5f0e20f57dd5c..3f49e0bfd19837b018ce65970fd9e14de1a59bb2 100644 (file)
@@ -1502,39 +1502,6 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
     }
 }
 
-// FIXME(cramertj) this should use `Result` once master compiles w/ a vesion of Rust where
-// `Result` implements `Encodable`/`Decodable`
-#[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug, Copy)]
-pub enum LoopIdResult {
-    Ok(NodeId),
-    Err(LoopIdError),
-}
-impl Into<Result<NodeId, LoopIdError>> for LoopIdResult {
-    fn into(self) -> Result<NodeId, LoopIdError> {
-        match self {
-            LoopIdResult::Ok(ok) => Ok(ok),
-            LoopIdResult::Err(err) => Err(err),
-        }
-    }
-}
-impl From<Result<NodeId, LoopIdError>> for LoopIdResult {
-    fn from(res: Result<NodeId, LoopIdError>) -> Self {
-        match res {
-            Ok(ok) => LoopIdResult::Ok(ok),
-            Err(err) => LoopIdResult::Err(err),
-        }
-    }
-}
-
-impl LoopIdResult {
-    pub fn ok(self) -> Option<NodeId> {
-        match self {
-            LoopIdResult::Ok(node_id) => Some(node_id),
-            LoopIdResult::Err(_) => None,
-        }
-    }
-}
-
 #[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug, Copy)]
 pub struct Destination {
     // This is `Some(_)` iff there is an explicit user-specified `label
@@ -1542,7 +1509,7 @@ pub struct Destination {
 
     // These errors are caught and then reported during the diagnostics pass in
     // librustc_passes/loops.rs
-    pub target_id: LoopIdResult,
+    pub target_id: Result<NodeId, LoopIdError>,
 }
 
 #[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug, Copy)]
index daf59cafc164f90ee643c0049f28d40467116418..6edf1b35bdd734247f59d5c169afdf05d3dedc9e 100644 (file)
@@ -656,11 +656,6 @@ fn hash_stable<W: StableHasherResult>(&self,
 
 impl_stable_hash_for_spanned!(ast::Ident);
 
-impl_stable_hash_for!(enum hir::LoopIdResult {
-    Ok(node_id),
-    Err(loop_id_error)
-});
-
 impl_stable_hash_for!(enum hir::LoopIdError {
     OutsideLoopScope,
     UnlabeledCfInWhileCondition,
index a9436da5a3b7eb98a8385b2ecc3809377724d125..2b1663bed2f40d57844a89bdf7e18c341c234bec 100644 (file)
@@ -1051,9 +1051,8 @@ fn propagate_through_expr(&mut self, expr: &Expr, succ: LiveNode)
           hir::ExprBreak(label, ref opt_expr) => {
               // Find which label this break jumps to
               let target = match label.target_id {
-                    hir::LoopIdResult::Ok(node_id) => self.break_ln.get(&node_id),
-                    hir::LoopIdResult::Err(err) =>
-                        span_bug!(expr.span, "loop scope error: {}", err),
+                    Ok(node_id) => self.break_ln.get(&node_id),
+                    Err(err) => span_bug!(expr.span, "loop scope error: {}", err),
               }.map(|x| *x);
 
               // Now that we know the label we're going to,
@@ -1068,9 +1067,8 @@ fn propagate_through_expr(&mut self, expr: &Expr, succ: LiveNode)
           hir::ExprAgain(label) => {
               // Find which label this expr continues to
               let sc = match label.target_id {
-                    hir::LoopIdResult::Ok(node_id) => node_id,
-                    hir::LoopIdResult::Err(err) =>
-                        span_bug!(expr.span, "loop scope error: {}", err),
+                    Ok(node_id) => node_id,
+                    Err(err) => span_bug!(expr.span, "loop scope error: {}", err),
               };
 
               // Now that we know the label we're going to,
index 50096a7a79ec070ef05c2c9bd6817263d0be19c0..3e432d84c699d2846be64074ff6d79edc46b578b 100644 (file)
@@ -536,21 +536,19 @@ fn make_mirror_unadjusted<'a, 'gcx, 'tcx>(cx: &mut Cx<'a, 'gcx, 'tcx>,
         hir::ExprRet(ref v) => ExprKind::Return { value: v.to_ref() },
         hir::ExprBreak(dest, ref value) => {
             match dest.target_id {
-                hir::LoopIdResult::Ok(target_id) => ExprKind::Break {
+                Ok(target_id) => ExprKind::Break {
                     label: region::Scope::Node(cx.tcx.hir.node_to_hir_id(target_id).local_id),
                     value: value.to_ref(),
                 },
-                hir::LoopIdResult::Err(err) =>
-                    bug!("invalid loop id for break: {}", err)
+                Err(err) => bug!("invalid loop id for break: {}", err)
             }
         }
         hir::ExprAgain(dest) => {
             match dest.target_id {
-                hir::LoopIdResult::Ok(loop_id) => ExprKind::Continue {
+                Ok(loop_id) => ExprKind::Continue {
                     label: region::Scope::Node(cx.tcx.hir.node_to_hir_id(loop_id).local_id),
                 },
-                hir::LoopIdResult::Err(err) =>
-                    bug!("invalid loop id for continue: {}", err)
+                Err(err) => bug!("invalid loop id for continue: {}", err)
             }
         }
         hir::ExprMatch(ref discr, ref arms, _) => {
index aebffbbb0b4593c93950610cc014cf4c67327499..81299f4ba9f66cf004732458ec7ed8cc683e70aa 100644 (file)
@@ -133,8 +133,7 @@ fn visit_expr(&mut self, e: &'hir hir::Expr) {
                 self.require_loop("break", e.span);
             }
             hir::ExprAgain(label) => {
-                if let hir::LoopIdResult::Err(
-                        hir::LoopIdError::UnlabeledCfInWhileCondition) = label.target_id {
+                if let Err(hir::LoopIdError::UnlabeledCfInWhileCondition) = label.target_id {
                     self.emit_unlabled_cf_in_while_condition(e.span, "continue");
                 }
                 self.require_loop("continue", e.span)