From 540344acb9ebaa0141e991217c9fd9e2a5ec717a Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Thu, 21 Apr 2011 20:34:04 -0400 Subject: Fix the signature of expr_ext The extension body is just a string, not an expression. --- src/comp/front/ast.rs | 2 +- src/comp/front/extfmt.rs | 2 +- src/comp/front/parser.rs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/comp/front') diff --git a/src/comp/front/ast.rs b/src/comp/front/ast.rs index 882b70a4..95522c0c 100644 --- a/src/comp/front/ast.rs +++ b/src/comp/front/ast.rs @@ -275,7 +275,7 @@ tag expr_ { expr_field(@expr, ident, ann); expr_index(@expr, @expr, ann); expr_path(path, option.t[def], ann); - expr_ext(path, vec[@expr], option.t[@expr], @expr, ann); + expr_ext(path, vec[@expr], option.t[str], @expr, ann); expr_fail(ann); expr_break(ann); expr_cont(ann); diff --git a/src/comp/front/extfmt.rs b/src/comp/front/extfmt.rs index e8f0c252..39c074c3 100644 --- a/src/comp/front/extfmt.rs +++ b/src/comp/front/extfmt.rs @@ -46,7 +46,7 @@ export expand_syntax_ext; // FIXME: Need to thread parser through here to handle errors correctly fn expand_syntax_ext(vec[@ast.expr] args, - option.t[@ast.expr] body) -> @ast.expr { + option.t[str] body) -> @ast.expr { if (_vec.len[@ast.expr](args) == 0u) { log_err "malformed #fmt call"; diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs index 26d3b89d..fdd41cf0 100644 --- a/src/comp/front/parser.rs +++ b/src/comp/front/parser.rs @@ -794,7 +794,7 @@ fn parse_bottom_expr(parser p) -> @ast.expr { pf, p); hi = es.span.hi; ex = expand_syntax_ext(p, es.span, pth, es.node, - none[@ast.expr]); + none[str]); } case (token.FAIL) { @@ -935,7 +935,7 @@ fn parse_bottom_expr(parser p) -> @ast.expr { fn expand_syntax_ext(parser p, ast.span sp, &ast.path path, vec[@ast.expr] args, - option.t[@ast.expr] body) -> ast.expr_ { + option.t[str] body) -> ast.expr_ { check (_vec.len[ast.ident](path.node.idents) > 0u); auto extname = path.node.idents.(0); -- cgit v1.2.3