Update trans/save's span hacks for fully qualified UFCS paths.
This commit is contained in:
parent
9ac073604c
commit
f0efa2d843
1 changed files with 11 additions and 3 deletions
|
|
@ -238,6 +238,7 @@ impl<'a> SpanUtils<'a> {
|
|||
let mut toks = self.retokenise_span(span);
|
||||
// We keep track of how many brackets we're nested in
|
||||
let mut bracket_count = 0;
|
||||
let mut found_ufcs_sep = false;
|
||||
loop {
|
||||
let ts = toks.real_token();
|
||||
if ts.tok == token::Eof {
|
||||
|
|
@ -254,13 +255,20 @@ impl<'a> SpanUtils<'a> {
|
|||
}
|
||||
bracket_count += match ts.tok {
|
||||
token::Lt => 1,
|
||||
token::Gt => -1,
|
||||
token::Gt => {
|
||||
// Ignore the `>::` in `<Type as Trait>::AssocTy`.
|
||||
if !found_ufcs_sep && bracket_count == 0 {
|
||||
found_ufcs_sep = true;
|
||||
0
|
||||
} else {
|
||||
-1
|
||||
}
|
||||
}
|
||||
token::BinOp(token::Shl) => 2,
|
||||
token::BinOp(token::Shr) => -2,
|
||||
_ => 0
|
||||
};
|
||||
if ts.tok.is_ident() &&
|
||||
bracket_count == nesting {
|
||||
if ts.tok.is_ident() && bracket_count == nesting {
|
||||
result.push(self.make_sub_span(span, Some(ts.sp)).unwrap());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue