diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2014-07-07 16:35:15 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2014-07-17 14:05:36 -0700 |
| commit | de70d76373e05fcf0f421cedb185b08de10a714c (patch) | |
| tree | ccfdaa415ce2bb947f40746a3b06a8980ab6cd16 /src/libsyntax/visit.rs | |
| parent | ca24abd4d2d02dd96ef323074c9a21d44b3fd202 (diff) | |
| download | rust-de70d76373e05fcf0f421cedb185b08de10a714c.tar.gz rust-de70d76373e05fcf0f421cedb185b08de10a714c.zip | |
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]
Diffstat (limited to 'src/libsyntax/visit.rs')
| -rw-r--r-- | src/libsyntax/visit.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 6760d7a3932..cd953607ea2 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -215,7 +215,7 @@ pub fn walk_explicit_self<E: Clone, V: Visitor<E>>(visitor: &mut V, SelfRegion(ref lifetime, _, _) => { visitor.visit_opt_lifetime_ref(explicit_self.span, lifetime, env) } - SelfExplicit(ref typ, _) => visitor.visit_ty(*typ, env.clone()), + SelfExplicit(ref typ, _) => visitor.visit_ty(&**typ, env.clone()), } } @@ -565,8 +565,8 @@ pub fn walk_method_helper<E: Clone, V: Visitor<E>>(visitor: &mut V, MethDecl(ident, ref generics, _, _, decl, body, _) => { visitor.visit_ident(method.span, ident, env.clone()); visitor.visit_fn(&FkMethod(ident, generics, method), - decl, - body, + &*decl, + &*body, method.span, method.id, env.clone()); |
