Fix parsing of interpolated paths

This commit is contained in:
Brian Anderson 2012-11-19 13:59:59 -08:00
parent 371be3c6c4
commit 9bed0ddb0e
2 changed files with 18 additions and 1 deletions

View File

@ -566,7 +566,8 @@ impl Parser {
self.parse_borrowed_pointee()
} else if self.token_is_fn_keyword(self.token) {
self.parse_ty_fn(None, None)
} else if self.token == token::MOD_SEP || is_ident(self.token) {
} else if self.token == token::MOD_SEP
|| is_ident_or_path(self.token) {
let path = self.parse_path_with_tps(colons_before_params);
ty_path(path, self.get_id())
} else { self.fatal(~"expected type"); };

View File

@ -0,0 +1,16 @@
mod m {
pub type t = int;
}
fn macros() {
macro_rules! foo {
($p:path) => {
fn f() -> $p { 10 }
f()
}
}
}
fn main() {
assert foo!(m::t) == 10;
}