diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-04-22 21:54:29 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-04-29 14:30:55 -0700 |
| commit | a12a3db5b44d539f5512376a2e7bb40fbab63683 (patch) | |
| tree | 02ceafdad102d0050eb4d5661bbfa1f2bf0fdf10 | |
| parent | 17723d18de8262058c77def1cd284d4bf072c13b (diff) | |
| download | rust-a12a3db5b44d539f5512376a2e7bb40fbab63683.tar.gz rust-a12a3db5b44d539f5512376a2e7bb40fbab63683.zip | |
librustc: Make `&fn` by-copy by default and remove the mode from `frame_address`.
| -rw-r--r-- | src/libcore/stackwalk.rs | 3 | ||||
| -rw-r--r-- | src/librustc/middle/ty.rs | 8 | ||||
| -rw-r--r-- | src/librustc/middle/typeck/check/mod.rs | 2 |
3 files changed, 4 insertions, 9 deletions
diff --git a/src/libcore/stackwalk.rs b/src/libcore/stackwalk.rs index be5f8989368..ebf36e4e09a 100644 --- a/src/libcore/stackwalk.rs +++ b/src/libcore/stackwalk.rs @@ -93,7 +93,10 @@ pub mod rustrt { pub mod rusti { #[abi = "rust-intrinsic"] pub extern "rust-intrinsic" { + #[cfg(stage0)] pub fn frame_address(f: &once fn(x: *u8)); + #[cfg(not(stage0))] + pub fn frame_address(+f: &once fn(x: *u8)); } } diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index edd3a295bf9..053b03bf6d7 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -1259,14 +1259,6 @@ pub fn mach_sty(cfg: @session::config, t: t) -> sty { } pub fn default_arg_mode_for_ty(tcx: ctxt, ty: ty::t) -> ast::rmode { - // FIXME(#2202) --- We retain by-ref for &fn things to workaround a - // memory leak that otherwise results when @fn is upcast to &fn. - match ty::get(ty).sty { - ty::ty_closure(ClosureTy {sigil: ast::BorrowedSigil, _}) => { - return ast::by_ref; - } - _ => {} - } return if tcx.legacy_modes { if type_is_borrowed(ty) { // the old mode default was ++ for things like &ptr, but to be diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs index f81c7bb8524..c6ab5affd10 100644 --- a/src/librustc/middle/typeck/check/mod.rs +++ b/src/librustc/middle/typeck/check/mod.rs @@ -3496,7 +3496,7 @@ pub fn check_intrinsic_type(ccx: @mut CrateCtxt, it: @ast::foreign_item) { output: ty::mk_nil() } }); - (0u, ~[arg(ast::by_ref, fty)], ty::mk_nil()) + (0u, ~[arg(ast::by_copy, fty)], ty::mk_nil()) } ~"morestack_addr" => { (0u, ~[], ty::mk_nil_ptr(ccx.tcx)) |
