diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 35d7e166306..29fdc884604 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -1131,8 +1131,13 @@ class parser { // the interpolation of matchers maybe_whole!{self, nt_matchers}; let name_idx = @mut 0u; - return self.parse_matcher_subseq( - name_idx, token::LBRACE, token::RBRACE); + return alt self.token { + token::LBRACE | token::LPAREN | token::LBRACKET { + self.parse_matcher_subseq(name_idx, copy self.token, + token::flip_delimiter(self.token)) + } + _ { self.fatal(~"expected open delimiter"); } + } }