diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index 5401da8cd053b..0361a71c2e9a6 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -164,6 +164,47 @@ pub trait MacResult { } } +/// Single type implementing MacResult with Option fields for all the types +/// MacResult can return, and a Default impl that fills in None. +pub struct MacGeneral { + expr: Option
>, + pat: Option
>,
+ items: Option >,
+ pat: Option >,
+ items: Option > {
+ self.expr
+ }
+ fn make_pat(self: Box > {
+ self.pat
+ }
+ fn make_items(self: Box