Fix bad error message with ::< in types

This commit is contained in:
mcarton 2016-09-02 01:58:44 +02:00
parent 46d39f3329
commit f7cc6dc1ed
No known key found for this signature in database
GPG key ID: 5E427C794CBA45E8
2 changed files with 34 additions and 0 deletions

View file

@ -1757,6 +1757,17 @@ impl<'a> Parser<'a> {
// First, parse an identifier.
let identifier = self.parse_path_segment_ident()?;
if self.check(&token::ModSep) && self.look_ahead(1, |t| *t == token::Lt) {
self.bump();
let prev_span = self.prev_span;
let mut err = self.diagnostic().struct_span_err(prev_span,
"unexpected token: `::`");
err.help(
"use `<...>` instead of `::<...>` if you meant to specify type arguments");
err.emit();
}
// Parse types, optionally.
let parameters = if self.eat_lt() {
let (lifetimes, types, bindings) = self.parse_generic_values_after_lt()?;