about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2015-12-02 17:31:49 -0800
committerAlex Crichton <alex@alexcrichton.com>2015-12-05 15:09:44 -0800
commit464cdff102993ff1900eebbf65209e0a3c0be0d5 (patch)
tree12910564caf0946c19be1ac48355210a49b7afee /src/test
parentac0e84522437331f9a06d04a5842acf0234cc86e (diff)
downloadrust-464cdff102993ff1900eebbf65209e0a3c0be0d5.tar.gz
rust-464cdff102993ff1900eebbf65209e0a3c0be0d5.zip
std: Stabilize APIs for the 1.6 release
This commit is the standard API stabilization commit for the 1.6 release cycle.
The list of issues and APIs below have all been through their cycle-long FCP and
the libs team decisions are listed below

Stabilized APIs

* `Read::read_exact`
* `ErrorKind::UnexpectedEof` (renamed from `UnexpectedEOF`)
* libcore -- this was a bit of a nuanced stabilization, the crate itself is now
  marked as `#[stable]` and the methods appearing via traits for primitives like
  `char` and `str` are now also marked as stable. Note that the extension traits
  themeselves are marked as unstable as they're imported via the prelude. The
  `try!` macro was also moved from the standard library into libcore to have the
  same interface. Otherwise the functions all have copied stability from the
  standard library now.
* The `#![no_std]` attribute
* `fs::DirBuilder`
* `fs::DirBuilder::new`
* `fs::DirBuilder::recursive`
* `fs::DirBuilder::create`
* `os::unix::fs::DirBuilderExt`
* `os::unix::fs::DirBuilderExt::mode`
* `vec::Drain`
* `vec::Vec::drain`
* `string::Drain`
* `string::String::drain`
* `vec_deque::Drain`
* `vec_deque::VecDeque::drain`
* `collections::hash_map::Drain`
* `collections::hash_map::HashMap::drain`
* `collections::hash_set::Drain`
* `collections::hash_set::HashSet::drain`
* `collections::binary_heap::Drain`
* `collections::binary_heap::BinaryHeap::drain`
* `Vec::extend_from_slice` (renamed from `push_all`)
* `Mutex::get_mut`
* `Mutex::into_inner`
* `RwLock::get_mut`
* `RwLock::into_inner`
* `Iterator::min_by_key` (renamed from `min_by`)
* `Iterator::max_by_key` (renamed from `max_by`)

Deprecated APIs

* `ErrorKind::UnexpectedEOF` (renamed to `UnexpectedEof`)
* `OsString::from_bytes`
* `OsStr::to_cstring`
* `OsStr::to_bytes`
* `fs::walk_dir` and `fs::WalkDir`
* `path::Components::peek`
* `slice::bytes::MutableByteVector`
* `slice::bytes::copy_memory`
* `Vec::push_all` (renamed to `extend_from_slice`)
* `Duration::span`
* `IpAddr`
* `SocketAddr::ip`
* `Read::tee`
* `io::Tee`
* `Write::broadcast`
* `io::Broadcast`
* `Iterator::min_by` (renamed to `min_by_key`)
* `Iterator::max_by` (renamed to `max_by_key`)
* `net::lookup_addr`

New APIs (still unstable)

* `<[T]>::sort_by_key` (added to mirror `min_by_key`)

Closes #27585
Closes #27704
Closes #27707
Closes #27710
Closes #27711
Closes #27727
Closes #27740
Closes #27744
Closes #27799
Closes #27801
cc #27801 (doesn't close as `Chars` is still unstable)
Closes #28968
Diffstat (limited to 'src/test')
-rw-r--r--src/test/auxiliary/allocator-dummy.rs2
-rw-r--r--src/test/auxiliary/allocator1.rs2
-rw-r--r--src/test/auxiliary/allocator2.rs2
-rw-r--r--src/test/auxiliary/allocator3.rs2
-rw-r--r--src/test/auxiliary/lang-item-public.rs2
-rw-r--r--src/test/auxiliary/needs_allocator.rs2
-rw-r--r--src/test/auxiliary/no_std_crate.rs1
-rw-r--r--src/test/auxiliary/weak-lang-items.rs1
-rw-r--r--src/test/compile-fail/cfg-attr-crate-2.rs2
-rw-r--r--src/test/compile-fail/derive-no-std-not-supported.rs1
-rw-r--r--src/test/compile-fail/fail-no-dead-code-core.rs5
-rw-r--r--src/test/compile-fail/gated-no-core.rs (renamed from src/test/compile-fail/gated-no-std.rs)2
-rw-r--r--src/test/compile-fail/lint-dead-code-1.rs1
-rw-r--r--src/test/compile-fail/no-std-inject.rs1
-rw-r--r--src/test/compile-fail/no_owned_box_lang_item.rs2
-rw-r--r--src/test/compile-fail/placement-expr-unstable.rs1
-rw-r--r--src/test/compile-fail/single-primitive-inherent-impl.rs1
-rw-r--r--src/test/compile-fail/unused-attr.rs2
-rw-r--r--src/test/compile-fail/warn-pub-extern-crate.rs8
-rw-r--r--src/test/compile-fail/weak-lang-item.rs1
-rw-r--r--src/test/run-make/alloc-extern-crates/fakealloc.rs2
-rw-r--r--src/test/run-make/no-duplicate-libs/bar.rs4
-rw-r--r--src/test/run-make/no-duplicate-libs/foo.rs2
-rw-r--r--src/test/run-make/use-extern-for-plugins/foo.rs1
-rw-r--r--src/test/run-pass/cfg-attr-crate.rs2
-rw-r--r--src/test/run-pass/derive-no-std.rs2
-rw-r--r--src/test/run-pass/for-loop-no-std.rs2
-rw-r--r--src/test/run-pass/format-no-std.rs2
-rw-r--r--src/test/run-pass/issue-13655.rs2
-rw-r--r--src/test/run-pass/issue-14958.rs2
-rw-r--r--src/test/run-pass/issue-14959.rs2
-rw-r--r--src/test/run-pass/issue-16739.rs2
-rw-r--r--src/test/run-pass/issue-18661.rs4
-rw-r--r--src/test/run-pass/issue-19098.rs9
-rw-r--r--src/test/run-pass/issue-19982.rs2
-rw-r--r--src/test/run-pass/issue-20544.rs2
-rw-r--r--src/test/run-pass/last-use-in-cap-clause.rs10
-rw-r--r--src/test/run-pass/no-std-1.rs1
-rw-r--r--src/test/run-pass/no-std-2.rs1
-rw-r--r--src/test/run-pass/no-std-3.rs1
-rw-r--r--src/test/run-pass/overloaded-calls-param-vtables.rs2
-rw-r--r--src/test/run-pass/overloaded-calls-simple.rs2
-rw-r--r--src/test/run-pass/overloaded-calls-zero-args.rs2
-rw-r--r--src/test/run-pass/regions-copy-closure.rs7
-rw-r--r--src/test/run-pass/regions-static-closure.rs7
-rw-r--r--src/test/run-pass/unboxed-closures-extern-fn-hr.rs7
-rw-r--r--src/test/run-pass/unboxed-closures-fn-as-fnmut-and-fnonce.rs2
-rw-r--r--src/test/run-pass/unboxed-closures-fnmut-as-fnonce.rs4
-rw-r--r--src/test/run-pass/unboxed-closures-infer-recursive-fn.rs3
-rw-r--r--src/test/run-pass/unboxed-closures-manual-impl.rs5
-rw-r--r--src/test/run-pass/unboxed-closures-monomorphization.rs13
-rw-r--r--src/test/run-pass/unboxed-closures-prelude.rs7
-rw-r--r--src/test/run-pass/vec-macro-no-std.rs4
-rw-r--r--src/test/rustdoc/issue-15318.rs1
-rw-r--r--src/test/rustdoc/issue-23511.rs2
55 files changed, 50 insertions, 114 deletions
diff --git a/src/test/auxiliary/allocator-dummy.rs b/src/test/auxiliary/allocator-dummy.rs
index 0194fb1ddda..a1d21db8f4d 100644
--- a/src/test/auxiliary/allocator-dummy.rs
+++ b/src/test/auxiliary/allocator-dummy.rs
@@ -10,7 +10,7 @@
 
 // no-prefer-dynamic
 
-#![feature(allocator, no_std, core, core_intrinsics, libc)]
+#![feature(allocator, core_intrinsics, libc)]
 #![allocator]
 #![crate_type = "rlib"]
 #![no_std]
diff --git a/src/test/auxiliary/allocator1.rs b/src/test/auxiliary/allocator1.rs
index 4e9cef64348..b24784838d0 100644
--- a/src/test/auxiliary/allocator1.rs
+++ b/src/test/auxiliary/allocator1.rs
@@ -10,7 +10,7 @@
 
 // no-prefer-dynamic
 
-#![feature(allocator, no_std, core)]
+#![feature(allocator)]
 #![allocator]
 #![crate_type = "rlib"]
 #![no_std]
diff --git a/src/test/auxiliary/allocator2.rs b/src/test/auxiliary/allocator2.rs
index 4e9cef64348..b24784838d0 100644
--- a/src/test/auxiliary/allocator2.rs
+++ b/src/test/auxiliary/allocator2.rs
@@ -10,7 +10,7 @@
 
 // no-prefer-dynamic
 
-#![feature(allocator, no_std, core)]
+#![feature(allocator)]
 #![allocator]
 #![crate_type = "rlib"]
 #![no_std]
diff --git a/src/test/auxiliary/allocator3.rs b/src/test/auxiliary/allocator3.rs
index 1ee21bc7ddb..d3eb1f6f7ab 100644
--- a/src/test/auxiliary/allocator3.rs
+++ b/src/test/auxiliary/allocator3.rs
@@ -10,7 +10,7 @@
 
 // no-prefer-dynamic
 
-#![feature(no_std, allocator)]
+#![feature(allocator)]
 #![no_std]
 #![allocator]
 #![crate_type = "rlib"]
diff --git a/src/test/auxiliary/lang-item-public.rs b/src/test/auxiliary/lang-item-public.rs
index 7d78c426281..41ceb924ab3 100644
--- a/src/test/auxiliary/lang-item-public.rs
+++ b/src/test/auxiliary/lang-item-public.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(no_std, core, libc)]
+#![feature(libc)]
 #![no_std]
 #![feature(lang_items)]
 
diff --git a/src/test/auxiliary/needs_allocator.rs b/src/test/auxiliary/needs_allocator.rs
index c09b153d921..51003160427 100644
--- a/src/test/auxiliary/needs_allocator.rs
+++ b/src/test/auxiliary/needs_allocator.rs
@@ -10,7 +10,7 @@
 
 // no-prefer-dynamic
 
-#![feature(no_std, needs_allocator)]
+#![feature(needs_allocator)]
 #![no_std]
 #![needs_allocator]
 #![crate_type = "rlib"]
diff --git a/src/test/auxiliary/no_std_crate.rs b/src/test/auxiliary/no_std_crate.rs
index d830aef54f5..7cfae6d121d 100644
--- a/src/test/auxiliary/no_std_crate.rs
+++ b/src/test/auxiliary/no_std_crate.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(no_std)]
 #![no_std]
 
 pub fn foo() {}
diff --git a/src/test/auxiliary/weak-lang-items.rs b/src/test/auxiliary/weak-lang-items.rs
index 7342652fb96..6434e62b6f7 100644
--- a/src/test/auxiliary/weak-lang-items.rs
+++ b/src/test/auxiliary/weak-lang-items.rs
@@ -13,7 +13,6 @@
 // This aux-file will require the eh_personality function to be codegen'd, but
 // it hasn't been defined just yet. Make sure we don't explode.
 
-#![feature(no_std)]
 #![no_std]
 #![crate_type = "rlib"]
 
diff --git a/src/test/compile-fail/cfg-attr-crate-2.rs b/src/test/compile-fail/cfg-attr-crate-2.rs
index 4867dd8d0b4..a79c7663861 100644
--- a/src/test/compile-fail/cfg-attr-crate-2.rs
+++ b/src/test/compile-fail/cfg-attr-crate-2.rs
@@ -12,6 +12,6 @@
 
 // https://github.com/rust-lang/rust/issues/21833#issuecomment-72353044
 
-#![cfg_attr(broken, no_std)] //~ ERROR no_std is experimental
+#![cfg_attr(broken, no_core)] //~ ERROR no_core is experimental
 
 fn main() { }
diff --git a/src/test/compile-fail/derive-no-std-not-supported.rs b/src/test/compile-fail/derive-no-std-not-supported.rs
index 327e2c9e0f9..01c81a8bbce 100644
--- a/src/test/compile-fail/derive-no-std-not-supported.rs
+++ b/src/test/compile-fail/derive-no-std-not-supported.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(no_std)]
 #![no_std]
 
 extern crate core;
diff --git a/src/test/compile-fail/fail-no-dead-code-core.rs b/src/test/compile-fail/fail-no-dead-code-core.rs
index 9923db3c566..aed76e36fca 100644
--- a/src/test/compile-fail/fail-no-dead-code-core.rs
+++ b/src/test/compile-fail/fail-no-dead-code-core.rs
@@ -10,10 +10,9 @@
 
 #![deny(dead_code)]
 #![allow(unreachable_code)]
-#![feature(core)]
-
-#[macro_use] extern crate core;
 
+#[macro_use]
+extern crate core;
 
 fn foo() { //~ ERROR function is never used
 
diff --git a/src/test/compile-fail/gated-no-std.rs b/src/test/compile-fail/gated-no-core.rs
index 893ba8a8a86..0a55a8a78ce 100644
--- a/src/test/compile-fail/gated-no-std.rs
+++ b/src/test/compile-fail/gated-no-core.rs
@@ -8,6 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![no_std] //~ ERROR no_std is experimental
+#![no_core] //~ ERROR no_core is experimental
 
 fn main() {}
diff --git a/src/test/compile-fail/lint-dead-code-1.rs b/src/test/compile-fail/lint-dead-code-1.rs
index 9749e596895..26770a1d37c 100644
--- a/src/test/compile-fail/lint-dead-code-1.rs
+++ b/src/test/compile-fail/lint-dead-code-1.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(no_std)]
 #![no_std]
 #![allow(unused_variables)]
 #![allow(non_camel_case_types)]
diff --git a/src/test/compile-fail/no-std-inject.rs b/src/test/compile-fail/no-std-inject.rs
index a03972410c9..21675434e24 100644
--- a/src/test/compile-fail/no-std-inject.rs
+++ b/src/test/compile-fail/no-std-inject.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(no_std, core)]
 #![no_std]
 
 extern crate core; //~ ERROR: an external crate named `core` has already
diff --git a/src/test/compile-fail/no_owned_box_lang_item.rs b/src/test/compile-fail/no_owned_box_lang_item.rs
index 39fec2ddfbd..72eb687adc6 100644
--- a/src/test/compile-fail/no_owned_box_lang_item.rs
+++ b/src/test/compile-fail/no_owned_box_lang_item.rs
@@ -12,8 +12,8 @@
 
 // error-pattern: requires `owned_box` lang_item
 
+#![feature(lang_items, box_syntax)]
 #![no_std]
-#![feature(lang_items, no_std, box_syntax)]
 
 fn main() {
     let x = box 1i32;
diff --git a/src/test/compile-fail/placement-expr-unstable.rs b/src/test/compile-fail/placement-expr-unstable.rs
index 23fc8e7a07e..b3aa4e9187d 100644
--- a/src/test/compile-fail/placement-expr-unstable.rs
+++ b/src/test/compile-fail/placement-expr-unstable.rs
@@ -11,7 +11,6 @@
 // Check that placement in respects unstable code checks.
 
 #![feature(placement_in_syntax)]
-#![feature(core)]
 
 extern crate core;
 
diff --git a/src/test/compile-fail/single-primitive-inherent-impl.rs b/src/test/compile-fail/single-primitive-inherent-impl.rs
index b2cfcfab78b..5ceb870528a 100644
--- a/src/test/compile-fail/single-primitive-inherent-impl.rs
+++ b/src/test/compile-fail/single-primitive-inherent-impl.rs
@@ -12,7 +12,6 @@
 
 #![crate_type = "lib"]
 #![feature(lang_items)]
-#![feature(no_std)]
 #![no_std]
 
 // OK
diff --git a/src/test/compile-fail/unused-attr.rs b/src/test/compile-fail/unused-attr.rs
index af242b96a84..6416e1cacdc 100644
--- a/src/test/compile-fail/unused-attr.rs
+++ b/src/test/compile-fail/unused-attr.rs
@@ -10,7 +10,7 @@
 
 #![deny(unused_attributes)]
 #![allow(dead_code, unused_imports)]
-#![feature(core, custom_attribute)]
+#![feature(custom_attribute)]
 
 #![foo] //~ ERROR unused attribute
 
diff --git a/src/test/compile-fail/warn-pub-extern-crate.rs b/src/test/compile-fail/warn-pub-extern-crate.rs
index fec0b8e1a4c..de3cc27c49b 100644
--- a/src/test/compile-fail/warn-pub-extern-crate.rs
+++ b/src/test/compile-fail/warn-pub-extern-crate.rs
@@ -8,11 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// Check that `pub extern crate` gives a warning.
-
+#![feature(rustc_attrs)]
 
 pub extern crate core; //~WARN `pub extern crate` does not work
-//~^ ERROR core
 
-fn main() {
-}
+#[rustc_error]
+fn main() {} //~ ERROR: compilation successful
diff --git a/src/test/compile-fail/weak-lang-item.rs b/src/test/compile-fail/weak-lang-item.rs
index e3a905c536b..fdf50c27bf4 100644
--- a/src/test/compile-fail/weak-lang-item.rs
+++ b/src/test/compile-fail/weak-lang-item.rs
@@ -12,7 +12,6 @@
 // error-pattern: language item required, but not found: `panic_fmt`
 // error-pattern: language item required, but not found: `eh_personality`
 
-#![feature(no_std)]
 #![no_std]
 
 extern crate core;
diff --git a/src/test/run-make/alloc-extern-crates/fakealloc.rs b/src/test/run-make/alloc-extern-crates/fakealloc.rs
index c64b3170ffe..43f97489314 100644
--- a/src/test/run-make/alloc-extern-crates/fakealloc.rs
+++ b/src/test/run-make/alloc-extern-crates/fakealloc.rs
@@ -9,10 +9,8 @@
 // except according to those terms.
 
 #![crate_type = "rlib"]
-#![feature(no_std)]
 #![no_std]
 
-
 #[inline]
 pub unsafe fn allocate(_size: usize, _align: usize) -> *mut u8 { 0 as *mut u8 }
 
diff --git a/src/test/run-make/no-duplicate-libs/bar.rs b/src/test/run-make/no-duplicate-libs/bar.rs
index 2df7604f961..8a15afb328a 100644
--- a/src/test/run-make/no-duplicate-libs/bar.rs
+++ b/src/test/run-make/no-duplicate-libs/bar.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(lang_items, no_std, libc)]
-#![no_std]
+#![feature(lang_items, libc)]
 #![crate_type = "dylib"]
+#![no_std]
 
 extern crate libc;
 
diff --git a/src/test/run-make/no-duplicate-libs/foo.rs b/src/test/run-make/no-duplicate-libs/foo.rs
index 4e81f0ea06e..ab8d2eca936 100644
--- a/src/test/run-make/no-duplicate-libs/foo.rs
+++ b/src/test/run-make/no-duplicate-libs/foo.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(lang_items, no_std, libc)]
+#![feature(lang_items, libc)]
 #![no_std]
 #![crate_type = "dylib"]
 
diff --git a/src/test/run-make/use-extern-for-plugins/foo.rs b/src/test/run-make/use-extern-for-plugins/foo.rs
index 554c0fe0326..0afd3be466d 100644
--- a/src/test/run-make/use-extern-for-plugins/foo.rs
+++ b/src/test/run-make/use-extern-for-plugins/foo.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(no_std)]
 #![no_std]
 #![crate_type = "lib"]
 #![crate_name = "a"]
diff --git a/src/test/run-pass/cfg-attr-crate.rs b/src/test/run-pass/cfg-attr-crate.rs
index 25d689475fb..21dc7ff7e01 100644
--- a/src/test/run-pass/cfg-attr-crate.rs
+++ b/src/test/run-pass/cfg-attr-crate.rs
@@ -12,6 +12,6 @@
 
 // pretty-expanded FIXME #23616
 
-#![cfg_attr(not_used, no_std)]
+#![cfg_attr(not_used, no_core)]
 
 fn main() { }
diff --git a/src/test/run-pass/derive-no-std.rs b/src/test/run-pass/derive-no-std.rs
index e7c6b67b820..78e9da001f7 100644
--- a/src/test/run-pass/derive-no-std.rs
+++ b/src/test/run-pass/derive-no-std.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(no_std, rand, collections, rustc_private)]
+#![feature(rand, collections, rustc_private)]
 #![no_std]
 
 extern crate rand;
diff --git a/src/test/run-pass/for-loop-no-std.rs b/src/test/run-pass/for-loop-no-std.rs
index 2f327bdebbf..73de1fa9c0d 100644
--- a/src/test/run-pass/for-loop-no-std.rs
+++ b/src/test/run-pass/for-loop-no-std.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(lang_items, start, no_std, core_slice_ext, collections)]
+#![feature(lang_items, start, collections)]
 #![no_std]
 
 extern crate std as other;
diff --git a/src/test/run-pass/format-no-std.rs b/src/test/run-pass/format-no-std.rs
index baa159b0e0e..62d54da56b2 100644
--- a/src/test/run-pass/format-no-std.rs
+++ b/src/test/run-pass/format-no-std.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(lang_items, start, no_std, collections)]
+#![feature(lang_items, start, collections)]
 #![no_std]
 
 extern crate std as other;
diff --git a/src/test/run-pass/issue-13655.rs b/src/test/run-pass/issue-13655.rs
index 11219b04f2b..51a9c9264a8 100644
--- a/src/test/run-pass/issue-13655.rs
+++ b/src/test/run-pass/issue-13655.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(unboxed_closures, core)]
+#![feature(fn_traits, unboxed_closures)]
 use std::ops::Fn;
 
 struct Foo<T>(T);
diff --git a/src/test/run-pass/issue-14958.rs b/src/test/run-pass/issue-14958.rs
index ec482a776de..0709ccf1406 100644
--- a/src/test/run-pass/issue-14958.rs
+++ b/src/test/run-pass/issue-14958.rs
@@ -10,7 +10,7 @@
 
 // pretty-expanded FIXME #23616
 
-#![feature(unboxed_closures, core)]
+#![feature(fn_traits, unboxed_closures)]
 
 trait Foo { fn dummy(&self) { }}
 
diff --git a/src/test/run-pass/issue-14959.rs b/src/test/run-pass/issue-14959.rs
index 5accaf36349..42824b563be 100644
--- a/src/test/run-pass/issue-14959.rs
+++ b/src/test/run-pass/issue-14959.rs
@@ -10,7 +10,7 @@
 
 // pretty-expanded FIXME #23616
 
-#![feature(unboxed_closures, core)]
+#![feature(fn_traits, unboxed_closures)]
 
 use std::ops::Fn;
 
diff --git a/src/test/run-pass/issue-16739.rs b/src/test/run-pass/issue-16739.rs
index f8cffdd38ca..ca2b9209eba 100644
--- a/src/test/run-pass/issue-16739.rs
+++ b/src/test/run-pass/issue-16739.rs
@@ -11,7 +11,7 @@
 
 #![allow(unknown_features)]
 #![feature(box_syntax)]
-#![feature(unboxed_closures, core)]
+#![feature(unboxed_closures, fn_traits)]
 
 // Test that unboxing shim for calling rust-call ABI methods through a
 // trait box works and does not cause an ICE.
diff --git a/src/test/run-pass/issue-18661.rs b/src/test/run-pass/issue-18661.rs
index 302f5ddcc6c..48d29095ec6 100644
--- a/src/test/run-pass/issue-18661.rs
+++ b/src/test/run-pass/issue-18661.rs
@@ -13,10 +13,8 @@
 
 // pretty-expanded FIXME #23616
 
-#![feature(unboxed_closures, core)]
-
 pub fn inside<F: Fn()>(c: F) {
-    c.call(());
+    c();
 }
 
 // Use different number of type parameters and closure type to trigger
diff --git a/src/test/run-pass/issue-19098.rs b/src/test/run-pass/issue-19098.rs
index a0368063f2c..e54fdfb5b5e 100644
--- a/src/test/run-pass/issue-19098.rs
+++ b/src/test/run-pass/issue-19098.rs
@@ -8,18 +8,13 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// pretty-expanded FIXME #23616
-
-#![feature(unboxed_closures, core)]
-
 pub trait Handler {
     fn handle(&self, &mut String);
 }
 
-impl<F> Handler for F
-where F: for<'a, 'b> Fn(&'a mut String) {
+impl<F> Handler for F where F: for<'a, 'b> Fn(&'a mut String) {
     fn handle(&self, st: &mut String) {
-        self.call((st,))
+        self(st)
     }
 }
 
diff --git a/src/test/run-pass/issue-19982.rs b/src/test/run-pass/issue-19982.rs
index 9442b039bc6..30edf24e8b1 100644
--- a/src/test/run-pass/issue-19982.rs
+++ b/src/test/run-pass/issue-19982.rs
@@ -10,7 +10,7 @@
 
 // pretty-expanded FIXME #23616
 
-#![feature(core,unboxed_closures)]
+#![feature(fn_traits, unboxed_closures)]
 
 #[allow(dead_code)]
 struct Foo;
diff --git a/src/test/run-pass/issue-20544.rs b/src/test/run-pass/issue-20544.rs
index c70b059d3e7..322c326ef0d 100644
--- a/src/test/run-pass/issue-20544.rs
+++ b/src/test/run-pass/issue-20544.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 #![feature(unboxed_closures)]
-#![feature(core)]
+#![feature(fn_traits)]
 
 struct Fun<F>(F);
 
diff --git a/src/test/run-pass/last-use-in-cap-clause.rs b/src/test/run-pass/last-use-in-cap-clause.rs
index 867cb35f1f6..5fbcfadf870 100644
--- a/src/test/run-pass/last-use-in-cap-clause.rs
+++ b/src/test/run-pass/last-use-in-cap-clause.rs
@@ -10,21 +10,15 @@
 
 // Make sure #1399 stays fixed
 
-
-#![allow(unknown_features)]
-#![feature(box_syntax)]
-#![feature(unboxed_closures, core)]
-
 struct A { a: Box<isize> }
 
 fn foo() -> Box<FnMut() -> isize + 'static> {
-    let k: Box<_> = box 22;
+    let k: Box<_> = Box::new(22);
     let _u = A {a: k.clone()};
     let result  = || 22;
-    // FIXME (#22405): Replace `Box::new` with `box` here when/if possible.
     Box::new(result)
 }
 
 pub fn main() {
-    assert_eq!(foo().call_mut(()), 22);
+    assert_eq!(foo()(), 22);
 }
diff --git a/src/test/run-pass/no-std-1.rs b/src/test/run-pass/no-std-1.rs
index 95bf3158e12..9298d74f9c4 100644
--- a/src/test/run-pass/no-std-1.rs
+++ b/src/test/run-pass/no-std-1.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(no_std)]
 #![no_std]
 
 extern crate std;
diff --git a/src/test/run-pass/no-std-2.rs b/src/test/run-pass/no-std-2.rs
index 043b016bdb9..1b24987052b 100644
--- a/src/test/run-pass/no-std-2.rs
+++ b/src/test/run-pass/no-std-2.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(no_std)]
 #![no_std]
 
 extern crate std;
diff --git a/src/test/run-pass/no-std-3.rs b/src/test/run-pass/no-std-3.rs
index 318b29d99cc..685c62f5a53 100644
--- a/src/test/run-pass/no-std-3.rs
+++ b/src/test/run-pass/no-std-3.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(no_std)]
 #![no_std]
 
 extern crate std;
diff --git a/src/test/run-pass/overloaded-calls-param-vtables.rs b/src/test/run-pass/overloaded-calls-param-vtables.rs
index 597075c5500..c15c6df5fac 100644
--- a/src/test/run-pass/overloaded-calls-param-vtables.rs
+++ b/src/test/run-pass/overloaded-calls-param-vtables.rs
@@ -12,7 +12,7 @@
 
 // pretty-expanded FIXME #23616
 
-#![feature(unboxed_closures, core)]
+#![feature(unboxed_closures, fn_traits)]
 
 use std::marker::PhantomData;
 use std::ops::Fn;
diff --git a/src/test/run-pass/overloaded-calls-simple.rs b/src/test/run-pass/overloaded-calls-simple.rs
index 6566f6c1260..24a79a26837 100644
--- a/src/test/run-pass/overloaded-calls-simple.rs
+++ b/src/test/run-pass/overloaded-calls-simple.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#![feature(lang_items, unboxed_closures, core)]
+#![feature(lang_items, unboxed_closures, fn_traits)]
 
 use std::ops::{Fn, FnMut, FnOnce};
 
diff --git a/src/test/run-pass/overloaded-calls-zero-args.rs b/src/test/run-pass/overloaded-calls-zero-args.rs
index 621b2f94209..5fd6d5cb10f 100644
--- a/src/test/run-pass/overloaded-calls-zero-args.rs
+++ b/src/test/run-pass/overloaded-calls-zero-args.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-#![feature(unboxed_closures, core)]
+#![feature(unboxed_closures, fn_traits)]
 
 use std::ops::FnMut;
 
diff --git a/src/test/run-pass/regions-copy-closure.rs b/src/test/run-pass/regions-copy-closure.rs
index 3c01a7f8923..371823ece29 100644
--- a/src/test/run-pass/regions-copy-closure.rs
+++ b/src/test/run-pass/regions-copy-closure.rs
@@ -8,10 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-
-#![allow(unknown_features)]
-#![feature(unboxed_closures, core)]
-
 struct closure_box<'a> {
     cl: Box<FnMut() + 'a>,
 }
@@ -25,9 +21,8 @@ pub fn main() {
     assert_eq!(i, 3);
     {
         let cl = || i += 1;
-        // FIXME (#22405): Replace `Box::new` with `box` here when/if possible.
         let mut cl_box = box_it(Box::new(cl));
-        cl_box.cl.call_mut(());
+        (cl_box.cl)();
     }
     assert_eq!(i, 4);
 }
diff --git a/src/test/run-pass/regions-static-closure.rs b/src/test/run-pass/regions-static-closure.rs
index ae39c266808..fa1c3b230c6 100644
--- a/src/test/run-pass/regions-static-closure.rs
+++ b/src/test/run-pass/regions-static-closure.rs
@@ -8,10 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![allow(unknown_features)]
-#![feature(box_syntax)]
-#![feature(unboxed_closures, core)]
-
 struct closure_box<'a> {
     cl: Box<FnMut() + 'a>,
 }
@@ -21,11 +17,10 @@ fn box_it<'a>(x: Box<FnMut() + 'a>) -> closure_box<'a> {
 }
 
 fn call_static_closure(mut cl: closure_box<'static>) {
-    cl.cl.call_mut(())
+    (cl.cl)();
 }
 
 pub fn main() {
-    // FIXME (#22405): Replace `Box::new` with `box` here when/if possible.
     let cl_box = box_it(Box::new(|| println!("Hello, world!")));
     call_static_closure(cl_box);
 }
diff --git a/src/test/run-pass/unboxed-closures-extern-fn-hr.rs b/src/test/run-pass/unboxed-closures-extern-fn-hr.rs
index e71757abd0e..75cd61b9cf0 100644
--- a/src/test/run-pass/unboxed-closures-extern-fn-hr.rs
+++ b/src/test/run-pass/unboxed-closures-extern-fn-hr.rs
@@ -10,11 +10,6 @@
 
 // Checks that higher-ranked extern fn pointers implement the full range of Fn traits.
 
-
-#![feature(unboxed_closures, core)]
-
-use std::ops::{Fn,FnMut,FnOnce};
-
 fn square(x: &isize) -> isize { (*x) * (*x) }
 
 fn call_it<F:Fn(&isize)->isize>(f: &F, x: isize) -> isize {
@@ -22,7 +17,7 @@ fn call_it<F:Fn(&isize)->isize>(f: &F, x: isize) -> isize {
 }
 
 fn call_it_boxed(f: &Fn(&isize) -> isize, x: isize) -> isize {
-    f.call((&x,))
+    f(&x)
 }
 
 fn call_it_mut<F:FnMut(&isize)->isize>(f: &mut F, x: isize) -> isize {
diff --git a/src/test/run-pass/unboxed-closures-fn-as-fnmut-and-fnonce.rs b/src/test/run-pass/unboxed-closures-fn-as-fnmut-and-fnonce.rs
index 5d6d372ea5c..2e63c600a46 100644
--- a/src/test/run-pass/unboxed-closures-fn-as-fnmut-and-fnonce.rs
+++ b/src/test/run-pass/unboxed-closures-fn-as-fnmut-and-fnonce.rs
@@ -12,7 +12,7 @@
 // any Fn trait to be used where Fn is implemented.
 
 
-#![feature(unboxed_closures, core)]
+#![feature(unboxed_closures, fn_traits)]
 
 use std::ops::{Fn,FnMut,FnOnce};
 
diff --git a/src/test/run-pass/unboxed-closures-fnmut-as-fnonce.rs b/src/test/run-pass/unboxed-closures-fnmut-as-fnonce.rs
index c19b5b273c7..ce93fcafc9e 100644
--- a/src/test/run-pass/unboxed-closures-fnmut-as-fnonce.rs
+++ b/src/test/run-pass/unboxed-closures-fnmut-as-fnonce.rs
@@ -12,9 +12,7 @@
 // FnMut or FnOnce to be used where FnMut is implemented.
 
 
-#![feature(unboxed_closures, core)]
-
-use std::ops::{FnMut,FnOnce};
+#![feature(unboxed_closures, fn_traits)]
 
 struct S;
 
diff --git a/src/test/run-pass/unboxed-closures-infer-recursive-fn.rs b/src/test/run-pass/unboxed-closures-infer-recursive-fn.rs
index e499ab5cca0..ac303e3a090 100644
--- a/src/test/run-pass/unboxed-closures-infer-recursive-fn.rs
+++ b/src/test/run-pass/unboxed-closures-infer-recursive-fn.rs
@@ -8,8 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-
-#![feature(core,unboxed_closures)]
+#![feature(fn_traits, unboxed_closures)]
 
 use std::marker::PhantomData;
 
diff --git a/src/test/run-pass/unboxed-closures-manual-impl.rs b/src/test/run-pass/unboxed-closures-manual-impl.rs
index 74c5f694908..e2d05884f3a 100644
--- a/src/test/run-pass/unboxed-closures-manual-impl.rs
+++ b/src/test/run-pass/unboxed-closures-manual-impl.rs
@@ -8,10 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-
-#![feature(unboxed_closures, core)]
-
-use std::ops::FnMut;
+#![feature(unboxed_closures, fn_traits)]
 
 struct S;
 
diff --git a/src/test/run-pass/unboxed-closures-monomorphization.rs b/src/test/run-pass/unboxed-closures-monomorphization.rs
index f16f757c645..d0d36d969b7 100644
--- a/src/test/run-pass/unboxed-closures-monomorphization.rs
+++ b/src/test/run-pass/unboxed-closures-monomorphization.rs
@@ -11,30 +11,25 @@
 // Test that unboxed closures in contexts with free type parameters
 // monomorphize correctly (issue #16791)
 
-#![allow(unknown_features)]
-#![feature(box_syntax)]
-#![feature(unboxed_closures, core)]
-
 fn main(){
     fn bar<'a, T:Clone+'a> (t: T) -> Box<FnMut()->T + 'a> {
-        // FIXME (#22405): Replace `Box::new` with `box` here when/if possible.
         Box::new(move || t.clone())
     }
 
     let mut f = bar(42_u32);
-    assert_eq!(f.call_mut(()), 42);
+    assert_eq!(f(), 42);
 
     let mut f = bar("forty-two");
-    assert_eq!(f.call_mut(()), "forty-two");
+    assert_eq!(f(), "forty-two");
 
     let x = 42_u32;
     let mut f = bar(&x);
-    assert_eq!(f.call_mut(()), &x);
+    assert_eq!(f(), &x);
 
     #[derive(Clone, Copy, Debug, PartialEq)]
     struct Foo(usize, &'static str);
 
     let x = Foo(42, "forty-two");
     let mut f = bar(x);
-    assert_eq!(f.call_mut(()), x);
+    assert_eq!(f(), x);
 }
diff --git a/src/test/run-pass/unboxed-closures-prelude.rs b/src/test/run-pass/unboxed-closures-prelude.rs
index 313fb67637e..b7835324010 100644
--- a/src/test/run-pass/unboxed-closures-prelude.rs
+++ b/src/test/run-pass/unboxed-closures-prelude.rs
@@ -12,14 +12,9 @@
 
 // pretty-expanded FIXME #23616
 
-#![allow(unknown_features)]
-#![feature(box_syntax)]
-#![feature(unboxed_closures, core)]
-
 fn main() {
-    // FIXME (#22405): Replace `Box::new` with `box` here when/if possible.
     let task: Box<Fn(isize) -> isize> = Box::new(|x| x);
-    task.call((0, ));
+    task(0);
 
     let mut task: Box<FnMut(isize) -> isize> = Box::new(|x| x);
     task(0);
diff --git a/src/test/run-pass/vec-macro-no-std.rs b/src/test/run-pass/vec-macro-no-std.rs
index ddac0ecc13c..a51ef732264 100644
--- a/src/test/run-pass/vec-macro-no-std.rs
+++ b/src/test/run-pass/vec-macro-no-std.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(lang_items, start, no_std, core_slice_ext, libc, collections)]
+#![feature(lang_items, start, libc, collections)]
 #![no_std]
 
 extern crate std as other;
@@ -18,8 +18,6 @@ extern crate libc;
 #[macro_use]
 extern crate collections;
 
-use core::option::Option::Some;
-use core::slice::SliceExt;
 use collections::vec::Vec;
 
 // Issue #16806
diff --git a/src/test/rustdoc/issue-15318.rs b/src/test/rustdoc/issue-15318.rs
index fd46b6e9909..bd22548a888 100644
--- a/src/test/rustdoc/issue-15318.rs
+++ b/src/test/rustdoc/issue-15318.rs
@@ -11,7 +11,6 @@
 // aux-build:issue-15318.rs
 // ignore-cross-compile
 
-#![feature(no_std)]
 #![no_std]
 
 extern crate issue_15318;
diff --git a/src/test/rustdoc/issue-23511.rs b/src/test/rustdoc/issue-23511.rs
index 1e8d20f74f9..50c31d309ee 100644
--- a/src/test/rustdoc/issue-23511.rs
+++ b/src/test/rustdoc/issue-23511.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(no_std, lang_items, core)]
+#![feature(lang_items)]
 #![no_std]
 
 pub mod str {