librustc: Remove cross-borrowing of Box<T>
to &T
from the language,
except where trait objects are involved. Part of issue #15349, though I'm leaving it open for trait objects. Cross borrowing for trait objects remains because it is needed until we have DST. This will break code like: fn foo(x: &int) { ... } let a = box 3i; foo(a); Change this code to: fn foo(x: &int) { ... } let a = box 3i; foo(&*a); [breaking-change]
This commit is contained in:
parent
ca24abd4d2
commit
de70d76373
72 changed files with 206 additions and 204 deletions
|
@ -502,7 +502,9 @@ impl<'a> Parser<'a> {
|
|||
inedible: &[token::Token]) {
|
||||
debug!("commit_stmt {:?}", s);
|
||||
let _s = s; // unused, but future checks might want to inspect `s`.
|
||||
if self.last_token.as_ref().map_or(false, |t| is_ident_or_path(*t)) {
|
||||
if self.last_token
|
||||
.as_ref()
|
||||
.map_or(false, |t| is_ident_or_path(&**t)) {
|
||||
let expected = edible.iter().map(|x| (*x).clone()).collect::<Vec<_>>()
|
||||
.append(inedible.as_slice());
|
||||
self.check_for_erroneous_unit_struct_expecting(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue