diff options
| author | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2019-01-19 04:29:26 +0100 |
|---|---|---|
| committer | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2019-01-19 04:29:26 +0100 |
| commit | a5d4aeddc8e2ecf1279f2138788777a29fedc3c5 (patch) | |
| tree | 21afcda5a07aa59b1b58f53b0ea7df5158523335 | |
| parent | 13dc584db39e5f36755b7b051a908277f5e5505f (diff) | |
| download | rust-a5d4aeddc8e2ecf1279f2138788777a29fedc3c5.tar.gz rust-a5d4aeddc8e2ecf1279f2138788777a29fedc3c5.zip | |
Address some comments
| -rw-r--r-- | src/librustc_passes/ast_validation.rs | 19 |
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 |
