diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 53d618e3340..4a84a31dd55 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -2728,8 +2728,9 @@ pub impl Parser { } self.bump(); } - token::IDENT(*) => { + token::MOD_SEP | token::IDENT(*) => { let maybe_bound = match *self.token { + token::MOD_SEP => None, token::IDENT(copy sid, _) => { match *self.id_to_str(sid) { ~"send" | @@ -2757,7 +2758,7 @@ pub impl Parser { result.push(bound); } None => { - let ty = self.parse_ty(false); + let ty = self.parse_ty(true); result.push(TraitTyParamBound(ty)); } } diff --git a/src/test/run-pass/issue-5572.rs b/src/test/run-pass/issue-5572.rs new file mode 100644 index 00000000000..d0db5e5cb3c --- /dev/null +++ b/src/test/run-pass/issue-5572.rs @@ -0,0 +1,3 @@ +fn foo(t: T) { } + +fn main() { }