about summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2016-02-13 15:51:27 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2016-02-13 15:51:27 +0300
commit9f414a44a747edc7dc229e0eaf6fbda5e6ea10e1 (patch)
tree50806db4794c6b9d8bd1c3b4e685db0322c0d007 /src/libsyntax/ext
parent14adc9bb63998d552bff351ad2184244cbc952f6 (diff)
downloadrust-9f414a44a747edc7dc229e0eaf6fbda5e6ea10e1.tar.gz
rust-9f414a44a747edc7dc229e0eaf6fbda5e6ea10e1.zip
Split ast::PatKind::Enum into tuple struct and path patterns
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/build.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs
index 312154e5a8d..0eb42f17f68 100644
--- a/src/libsyntax/ext/build.rs
+++ b/src/libsyntax/ext/build.rs
@@ -827,7 +827,11 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
         self.pat(span, pat)
     }
     fn pat_enum(&self, span: Span, path: ast::Path, subpats: Vec<P<ast::Pat>>) -> P<ast::Pat> {
-        let pat = PatKind::Enum(path, Some(subpats));
+        let pat = if subpats.is_empty() {
+            PatKind::Path(path)
+        } else {
+            PatKind::TupleStruct(path, Some(subpats))
+        };
         self.pat(span, pat)
     }
     fn pat_struct(&self, span: Span,