From 2db4259b3531e0cfa1f6df2ff95e30a4c871a105 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Mon, 30 Apr 2012 10:37:58 -0700 Subject: Stop inferring bot/static when types/regions are unconstrained. Also, some other changes that came up along the way: - add a 'blk' region for the current block. - detect unused type/region variables. --- src/libcore/priv.rs | 4 ++-- src/libcore/vec.rs | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/libcore') diff --git a/src/libcore/priv.rs b/src/libcore/priv.rs index 90fc9239e14..4aa8b57568f 100644 --- a/src/libcore/priv.rs +++ b/src/libcore/priv.rs @@ -14,7 +14,7 @@ native mod rustrt { fn rust_task_unweaken(ch: rust_port_id); } -type global_ptr = *libc::uintptr_t; +type global_ptr = *libc::uintptr_t; #[doc = " Atomically gets a channel from a pointer to a pointer-sized memory location @@ -22,7 +22,7 @@ or, if no channel exists creates and installs a new channel and sets up a new task to receive from it. "] unsafe fn chan_from_global_ptr( - global: global_ptr, + global: global_ptr, builder: fn() -> task::builder, f: fn~(comm::port) ) -> comm::chan { diff --git a/src/libcore/vec.rs b/src/libcore/vec.rs index ad1c3f2344a..3215f3b9f28 100644 --- a/src/libcore/vec.rs +++ b/src/libcore/vec.rs @@ -1168,7 +1168,9 @@ mod unsafe { #[inline(always)] unsafe fn form_slice(p: *T, len: uint, f: fn([T]/&) -> U) -> U { let pair = (p, len * sys::size_of::()); - let v : *([T]/&) = ::unsafe::reinterpret_cast(ptr::addr_of(pair)); + // FIXME: should use &blk not &static here, but a snapshot is req'd + let v : *([T]/&static) = + ::unsafe::reinterpret_cast(ptr::addr_of(pair)); f(*v) } } -- cgit 1.4.1-3-g733a5