about summary refs log tree commit diff
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2014-02-15 22:10:16 -0800
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2014-02-21 19:57:03 -0800
commit0135b521ad38615e9a07aac54d9c22627af57ca4 (patch)
treeab6d61e7aeaa134a1a207bd132962e6a326f0e0d
parentbb8721da69e4c54fc2e22c3352d74c406e817049 (diff)
downloadrust-0135b521ad38615e9a07aac54d9c22627af57ca4.tar.gz
rust-0135b521ad38615e9a07aac54d9c22627af57ca4.zip
syntax: add syntax extension helper to make simple view items
-rw-r--r--src/libsyntax/ext/build.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs
index d311a542ac6..7ac324e5092 100644
--- a/src/libsyntax/ext/build.rs
+++ b/src/libsyntax/ext/build.rs
@@ -242,6 +242,9 @@ pub trait AstBuilder {
 
     fn view_use(&self, sp: Span,
                 vis: ast::Visibility, vp: ~[@ast::ViewPath]) -> ast::ViewItem;
+    fn view_use_simple(&self, sp: Span, vis: ast::Visibility, path: ast::Path) -> ast::ViewItem;
+    fn view_use_simple_(&self, sp: Span, vis: ast::Visibility,
+                        ident: ast::Ident, path: ast::Path) -> ast::ViewItem;
     fn view_use_list(&self, sp: Span, vis: ast::Visibility,
                      path: ~[ast::Ident], imports: &[ast::Ident]) -> ast::ViewItem;
     fn view_use_glob(&self, sp: Span,
@@ -900,6 +903,20 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
         }
     }
 
+    fn view_use_simple(&self, sp: Span, vis: ast::Visibility, path: ast::Path) -> ast::ViewItem {
+        let last = path.segments.last().unwrap().identifier;
+        self.view_use_simple_(sp, vis, last, path)
+    }
+
+    fn view_use_simple_(&self, sp: Span, vis: ast::Visibility,
+                        ident: ast::Ident, path: ast::Path) -> ast::ViewItem {
+        self.view_use(sp, vis,
+                      ~[@respan(sp,
+                                ast::ViewPathSimple(ident,
+                                                    path,
+                                                    ast::DUMMY_NODE_ID))])
+    }
+
     fn view_use_list(&self, sp: Span, vis: ast::Visibility,
                      path: ~[ast::Ident], imports: &[ast::Ident]) -> ast::ViewItem {
         let imports = imports.map(|id| {