about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2019-01-19 04:29:26 +0100
committerJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2019-01-19 04:29:26 +0100
commita5d4aeddc8e2ecf1279f2138788777a29fedc3c5 (patch)
tree21afcda5a07aa59b1b58f53b0ea7df5158523335
parent13dc584db39e5f36755b7b051a908277f5e5505f (diff)
downloadrust-a5d4aeddc8e2ecf1279f2138788777a29fedc3c5.tar.gz
rust-a5d4aeddc8e2ecf1279f2138788777a29fedc3c5.zip
Address some comments
-rw-r--r--src/librustc_passes/ast_validation.rs19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/librustc_passes/ast_validation.rs b/src/librustc_passes/ast_validation.rs
index 20f63b14299..d1a3d7c1f81 100644
--- a/src/librustc_passes/ast_validation.rs
+++ b/src/librustc_passes/ast_validation.rs
@@ -6,6 +6,7 @@
 // This pass is supposed to perform only simple checks not requiring name resolution
 // or type checking or some other kind of complex analysis.
 
+use std::mem;
 use rustc::lint;
 use rustc::session::Session;
 use syntax::ast::*;
@@ -32,22 +33,16 @@ struct AstValidator<'a> {
 }
 
 impl<'a> AstValidator<'a> {
-    fn with_banned_impl_trait<F>(&mut self, f: F)
-        where F: FnOnce(&mut Self)
-    {
-        let old_is_impl_trait_banned = self.is_impl_trait_banned;
-        self.is_impl_trait_banned = true;
+    fn with_banned_impl_trait(&mut self, f: impl FnOnce(&mut Self)) {
+        let old = mem::replace(&mut self.is_impl_trait_banned, true);
         f(self);
-        self.is_impl_trait_banned = old_is_impl_trait_banned;
+        self.is_impl_trait_banned = old;
     }
 
-    fn with_impl_trait<F>(&mut self, outer_impl_trait: Option<Span>, f: F)
-        where F: FnOnce(&mut Self)
-    {
-        let old_outer_impl_trait = self.outer_impl_trait;
-        self.outer_impl_trait = outer_impl_trait;
+    fn with_impl_trait(&mut self, outer_impl_trait: Option<Span>, f: impl FnOnce(&mut Self)) {
+        let old = mem::replace(&mut self.outer_impl_trait, outer_impl_trait);
         f(self);
-        self.outer_impl_trait = old_outer_impl_trait;
+        self.outer_impl_trait = old;
     }
 
     // Mirrors visit::walk_ty, but tracks relevant state