Move colon-check to recover_colon_before_qpath_proj()
This commit is contained in:
parent
88d64a0931
commit
45fb7232ab
1 changed files with 23 additions and 15 deletions
|
@ -71,21 +71,7 @@ impl<'a> Parser<'a> {
|
||||||
debug!("parse_qpath: (decrement) count={:?}", self.unmatched_angle_bracket_count);
|
debug!("parse_qpath: (decrement) count={:?}", self.unmatched_angle_bracket_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.token.kind == token::Colon {
|
if !self.recover_colon_before_qpath_proj() {
|
||||||
// <Bar as Baz<T>>:Qux
|
|
||||||
// ^
|
|
||||||
self.bump();
|
|
||||||
|
|
||||||
self.diagnostic()
|
|
||||||
.struct_span_err(self.prev_span, "found single colon where type path was expected")
|
|
||||||
.span_suggestion(
|
|
||||||
self.prev_span,
|
|
||||||
"use double colon",
|
|
||||||
"::".to_string(),
|
|
||||||
Applicability::MachineApplicable,
|
|
||||||
)
|
|
||||||
.emit();
|
|
||||||
} else {
|
|
||||||
self.expect(&token::ModSep)?;
|
self.expect(&token::ModSep)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,6 +81,28 @@ impl<'a> Parser<'a> {
|
||||||
Ok((qself, Path { segments: path.segments, span: lo.to(self.prev_span) }))
|
Ok((qself, Path { segments: path.segments, span: lo.to(self.prev_span) }))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn recover_colon_before_qpath_proj(&mut self) -> bool {
|
||||||
|
if self.token.kind != token::Colon {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// <Bar as Baz<T>>:Qux
|
||||||
|
// ^
|
||||||
|
self.bump();
|
||||||
|
|
||||||
|
self.diagnostic()
|
||||||
|
.struct_span_err(self.prev_span, "found single colon where type path was expected")
|
||||||
|
.span_suggestion(
|
||||||
|
self.prev_span,
|
||||||
|
"use double colon",
|
||||||
|
"::".to_string(),
|
||||||
|
Applicability::MachineApplicable,
|
||||||
|
)
|
||||||
|
.emit();
|
||||||
|
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
/// Parses simple paths.
|
/// Parses simple paths.
|
||||||
///
|
///
|
||||||
/// `path = [::] segment+`
|
/// `path = [::] segment+`
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue