From 8b883ab2681e34ef94575f45c6c0e6c2bca23ab7 Mon Sep 17 00:00:00 2001 From: Flavio Percoco Date: Sun, 28 Dec 2014 23:33:18 +0100 Subject: Add syntax for negative implementations of traits This commit introduces the syntax for negative implmenetations of traits as shown below: `impl !Trait for Type {}` cc #13231 Part of RFC #3 --- src/libsyntax/ext/deriving/generic/mod.rs | 1 + src/libsyntax/ext/expand.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'src/libsyntax/ext') diff --git a/src/libsyntax/ext/deriving/generic/mod.rs b/src/libsyntax/ext/deriving/generic/mod.rs index 8863de8757b..459abf15b33 100644 --- a/src/libsyntax/ext/deriving/generic/mod.rs +++ b/src/libsyntax/ext/deriving/generic/mod.rs @@ -488,6 +488,7 @@ impl<'a> TraitDef<'a> { ident, a, ast::ItemImpl(ast::Unsafety::Normal, + ast::ImplPolarity::Positive, trait_generics, opt_trait_ref, self_type, diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index e65ecc19ea1..b3f30dd4581 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -1111,7 +1111,7 @@ impl<'a, 'b> Folder for MacroExpander<'a, 'b> { fn fold_item(&mut self, item: P) -> SmallVector> { let prev_type = self.current_impl_type.clone(); - if let ast::Item_::ItemImpl(_, _, _, ref ty, _) = item.node { + if let ast::Item_::ItemImpl(_, _, _, _, ref ty, _) = item.node { self.current_impl_type = Some(ty.clone()); } -- cgit 1.4.1-3-g733a5