about summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorJohn Clements <clements@racket-lang.org>2013-03-04 13:58:31 -0800
committerJohn Clements <clements@racket-lang.org>2013-03-04 16:21:35 -0800
commit4f3a968f91bbc2991056e1fb7e6e38829bbce57d (patch)
tree31f439d206d2c000f5c714f7b77e1eaa964f1b41 /src/libsyntax/ext
parentdd34178b4b4c0dbd4d5e5fda44fbdd608b733b3a (diff)
downloadrust-4f3a968f91bbc2991056e1fb7e6e38829bbce57d.tar.gz
rust-4f3a968f91bbc2991056e1fb7e6e38829bbce57d.zip
better error message for macros with MOD_SEPs
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/expand.rs18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index 858ce4b17a3..ce8bf797ddb 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -38,10 +38,14 @@ pub fn expand_expr(extsbox: @mut SyntaxEnv,
         // entry-point for all syntax extensions.
         expr_mac(ref mac) => {
             match (*mac).node {
-                // Token-tree macros, these will be the only case when we're
-                // finished transitioning.
+                // Token-tree macros:
                 mac_invoc_tt(pth, ref tts) => {
-                    assert (vec::len(pth.idents) == 1u);
+                    if (pth.idents.len() > 1u) {
+                        cx.span_fatal(
+                            pth.span,
+                            fmt!("expected macro name without module \
+                                  separators, got: '%?'",pth));
+                    }
                     /* using idents and token::special_idents would make the
                     the macro names be hygienic */
                     let extname = cx.parse_sess().interner.get(pth.idents[0]);
@@ -320,8 +324,12 @@ pub fn expand_stmt(extsbox: @mut SyntaxEnv,
         }
         _ => return orig(s, sp, fld)
     };
-
-    assert(vec::len(pth.idents) == 1u);
+    if (pth.idents.len() > 1u) {
+        cx.span_fatal(
+            pth.span,
+            fmt!("expected macro name without module \
+                  separators, got: '%?'",pth));
+    }
     let extname = cx.parse_sess().interner.get(pth.idents[0]);
     let (fully_expanded, sp) = match (*extsbox).find(&extname) {
         None =>