Remove cross-borrowing for traits.
Closes #15349 [breaking-change] Trait objects are no longer implicitly coerced from Box<T> to &T. You must make an explicit coercion using `&*`.
This commit is contained in:
parent
e9bd650cad
commit
7f72884f13
12 changed files with 40 additions and 19 deletions
|
@ -351,7 +351,7 @@ impl<'a> Parser<'a> {
|
|||
mut rdr: Box<Reader+'a>)
|
||||
-> Parser<'a>
|
||||
{
|
||||
let tok0 = real_token(rdr);
|
||||
let tok0 = real_token(&mut *rdr);
|
||||
let span = tok0.sp;
|
||||
let placeholder = TokenAndSpan {
|
||||
tok: token::UNDERSCORE,
|
||||
|
@ -899,7 +899,7 @@ impl<'a> Parser<'a> {
|
|||
None
|
||||
};
|
||||
let next = if self.buffer_start == self.buffer_end {
|
||||
real_token(self.reader)
|
||||
real_token(&mut *self.reader)
|
||||
} else {
|
||||
// Avoid token copies with `replace`.
|
||||
let buffer_start = self.buffer_start as uint;
|
||||
|
@ -943,7 +943,7 @@ impl<'a> Parser<'a> {
|
|||
-> R {
|
||||
let dist = distance as int;
|
||||
while self.buffer_length() < dist {
|
||||
self.buffer[self.buffer_end as uint] = real_token(self.reader);
|
||||
self.buffer[self.buffer_end as uint] = real_token(&mut *self.reader);
|
||||
self.buffer_end = (self.buffer_end + 1) & 3;
|
||||
}
|
||||
f(&self.buffer[((self.buffer_start + dist - 1) & 3) as uint].tok)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue