about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2015-03-05 18:33:58 -0800
committerBrian Anderson <banderson@mozilla.com>2015-03-23 14:40:26 -0700
commitdf290f127e923e0aacfe8223dd77f0fa222f0bc8 (patch)
tree65f8e1091b566595f7b5cae402c2121f22529db5
parent7770ea706b2ba10ebf9112b38af9aaad5cc6f24c (diff)
downloadrust-df290f127e923e0aacfe8223dd77f0fa222f0bc8.tar.gz
rust-df290f127e923e0aacfe8223dd77f0fa222f0bc8.zip
Require feature attributes, and add them where necessary
-rw-r--r--src/compiletest/compiletest.rs1
-rw-r--r--src/libcollections/lib.rs2
-rw-r--r--src/libcollectionstest/lib.rs1
-rw-r--r--src/libcoretest/lib.rs2
-rw-r--r--src/libflate/lib.rs1
-rw-r--r--src/librand/lib.rs2
-rw-r--r--src/librustc/lint/context.rs2
-rw-r--r--src/librustc/middle/stability.rs4
-rw-r--r--src/librustc_back/lib.rs1
-rw-r--r--src/librustc_bitflags/lib.rs1
-rw-r--r--src/libserialize/lib.rs2
-rw-r--r--src/libstd/lib.rs2
-rw-r--r--src/libtest/lib.rs1
-rw-r--r--src/libunicode/char.rs4
-rw-r--r--src/test/auxiliary/anon-extern-mod-cross-crate-1.rs1
-rw-r--r--src/test/auxiliary/check_static_recursion_foreign_helper.rs2
-rw-r--r--src/test/auxiliary/extern-crosscrate-source.rs1
-rw-r--r--src/test/auxiliary/foreign_lib.rs1
-rw-r--r--src/test/auxiliary/issue-3012-1.rs1
-rw-r--r--src/test/auxiliary/issue13507.rs2
-rw-r--r--src/test/auxiliary/issue_16723_multiple_items_syntax_ext.rs2
-rw-r--r--src/test/auxiliary/issue_3907.rs2
-rw-r--r--src/test/auxiliary/issue_5844_aux.rs2
-rw-r--r--src/test/auxiliary/linkage-visibility.rs2
-rw-r--r--src/test/auxiliary/lint_for_crate.rs2
-rw-r--r--src/test/auxiliary/lint_group_plugin_test.rs2
-rw-r--r--src/test/auxiliary/lint_plugin_test.rs2
-rw-r--r--src/test/auxiliary/logging_right_crate.rs2
-rw-r--r--src/test/auxiliary/macro_crate_MacroRulesTT.rs2
-rw-r--r--src/test/auxiliary/macro_crate_test.rs2
-rw-r--r--src/test/auxiliary/plugin_args.rs2
-rw-r--r--src/test/auxiliary/plugin_crate_outlive_expansion_phase.rs2
-rw-r--r--src/test/auxiliary/plugin_with_plugin_lib.rs2
-rw-r--r--src/test/auxiliary/private_trait_xc.rs2
-rw-r--r--src/test/auxiliary/procedural_mbe_matching.rs2
-rw-r--r--src/test/auxiliary/rlib_crate_test.rs2
-rw-r--r--src/test/auxiliary/roman_numerals.rs2
-rw-r--r--src/test/auxiliary/svh-a-base.rs1
-rw-r--r--src/test/auxiliary/svh-a-change-lit.rs1
-rw-r--r--src/test/auxiliary/svh-a-change-significant-cfg.rs1
-rw-r--r--src/test/auxiliary/svh-a-change-trait-bound.rs1
-rw-r--r--src/test/auxiliary/svh-a-change-type-arg.rs1
-rw-r--r--src/test/auxiliary/svh-a-change-type-ret.rs1
-rw-r--r--src/test/auxiliary/svh-a-change-type-static.rs1
-rw-r--r--src/test/auxiliary/svh-a-comment.rs1
-rw-r--r--src/test/auxiliary/svh-a-doc.rs1
-rw-r--r--src/test/auxiliary/svh-a-macro.rs1
-rw-r--r--src/test/auxiliary/svh-a-no-change.rs1
-rw-r--r--src/test/auxiliary/svh-a-redundant-cfg.rs1
-rw-r--r--src/test/auxiliary/svh-a-whitespace.rs1
-rw-r--r--src/test/auxiliary/syntax_extension_with_dll_deps_2.rs2
-rw-r--r--src/test/auxiliary/trait_impl_conflict.rs2
-rw-r--r--src/test/auxiliary/typeck-default-trait-impl-cross-crate-coherence-lib.rs2
-rw-r--r--src/test/auxiliary/typeid-intrinsic.rs2
-rw-r--r--src/test/auxiliary/typeid-intrinsic2.rs2
-rw-r--r--src/test/auxiliary/weak-lang-items.rs2
-rw-r--r--src/test/bench/core-map.rs2
-rw-r--r--src/test/bench/core-set.rs2
-rw-r--r--src/test/bench/core-std.rs2
-rw-r--r--src/test/bench/msgsend-pipes-shared.rs2
-rw-r--r--src/test/bench/msgsend-pipes.rs2
-rw-r--r--src/test/bench/msgsend-ring-mutex-arcs.rs2
-rw-r--r--src/test/bench/noise.rs2
-rw-r--r--src/test/bench/shootout-binarytrees.rs2
-rw-r--r--src/test/bench/shootout-fannkuch-redux.rs2
-rw-r--r--src/test/bench/shootout-fasta-redux.rs2
-rw-r--r--src/test/bench/shootout-fasta.rs2
-rw-r--r--src/test/bench/shootout-k-nucleotide-pipes.rs2
-rw-r--r--src/test/bench/shootout-k-nucleotide.rs2
-rw-r--r--src/test/bench/shootout-mandelbrot.rs2
-rw-r--r--src/test/bench/shootout-meteor.rs2
-rw-r--r--src/test/bench/shootout-nbody.rs2
-rw-r--r--src/test/bench/shootout-pfib.rs2
-rw-r--r--src/test/bench/shootout-reverse-complement.rs2
-rw-r--r--src/test/bench/shootout-spectralnorm.rs2
-rw-r--r--src/test/bench/std-smallintmap.rs2
-rw-r--r--src/test/bench/sudoku.rs2
-rw-r--r--src/test/bench/task-perf-alloc-unwind.rs2
-rw-r--r--src/test/compile-fail/internal-unstable-noallow.rs3
-rw-r--r--src/test/compile-fail/internal-unstable-thread-local.rs6
-rwxr-xr-xsrc/test/compile-fail/internal-unstable.rs15
-rw-r--r--src/test/compile-fail/lint-output-format.rs4
-rw-r--r--src/test/compile-fail/lint-stability-fields.rs84
-rw-r--r--src/test/compile-fail/lint-stability.rs144
-rw-r--r--src/test/debuginfo/constant-debug-locs.rs1
-rw-r--r--src/test/debuginfo/function-arg-initialization.rs2
-rw-r--r--src/test/debuginfo/function-prologue-stepping-no-stack-check.rs2
-rw-r--r--src/test/debuginfo/issue13213.rs3
-rw-r--r--src/test/debuginfo/simd.rs1
-rw-r--r--src/test/run-fail/extern-panic.rs1
-rw-r--r--src/test/run-fail/rt-set-exit-status-panic.rs2
-rw-r--r--src/test/run-fail/rt-set-exit-status-panic2.rs2
-rw-r--r--src/test/run-fail/rt-set-exit-status.rs2
-rw-r--r--src/test/run-make/allow-warnings-cmdline-stability/foo.rs2
-rw-r--r--src/test/run-make/cannot-read-embedded-idents/create_and_compile.rs2
-rw-r--r--src/test/run-make/extern-fn-reachable/main.rs2
-rw-r--r--src/test/run-make/intrinsic-unreachable/exit-unreachable.rs2
-rw-r--r--src/test/run-make/issue-19371/foo.rs2
-rw-r--r--src/test/run-make/link-path-order/main.rs2
-rw-r--r--src/test/run-make/lto-syntax-extension/main.rs2
-rw-r--r--src/test/run-make/no-duplicate-libs/bar.rs2
-rw-r--r--src/test/run-make/no-duplicate-libs/foo.rs2
-rw-r--r--src/test/run-make/rustdoc-default-impl/foo.rs2
-rw-r--r--src/test/run-make/save-analysis/foo.rs2
-rw-r--r--src/test/run-make/unicode-input/multiple_files.rs2
-rw-r--r--src/test/run-make/unicode-input/span_length.rs2
-rw-r--r--src/test/run-make/volatile-intrinsics/main.rs2
-rw-r--r--src/test/run-pass-fulldeps/compiler-calls.rs2
-rw-r--r--src/test/run-pass-fulldeps/issue-16992.rs2
-rw-r--r--src/test/run-pass-fulldeps/issue-18763-quote-token-tree.rs2
-rw-r--r--src/test/run-pass-fulldeps/quote-tokens.rs2
-rw-r--r--src/test/run-pass-fulldeps/quote-unused-sp-no-warning.rs2
-rw-r--r--src/test/run-pass-fulldeps/syntax-extension-with-dll-deps.rs2
-rw-r--r--src/test/run-pass-valgrind/cleanup-stdin.rs2
-rw-r--r--src/test/run-pass/anon-extern-mod.rs2
-rw-r--r--src/test/run-pass/associated-types-basic.rs2
-rw-r--r--src/test/run-pass/associated-types-issue-20371.rs2
-rw-r--r--src/test/run-pass/associated-types-nested-projections.rs2
-rw-r--r--src/test/run-pass/associated-types-normalize-in-bounds-binding.rs1
-rw-r--r--src/test/run-pass/associated-types-project-from-type-param-via-bound-in-where-clause.rs2
-rw-r--r--src/test/run-pass/attr-before-view-item.rs2
-rw-r--r--src/test/run-pass/attr-before-view-item2.rs2
-rw-r--r--src/test/run-pass/backtrace.rs2
-rw-r--r--src/test/run-pass/bitv-perf-test.rs2
-rw-r--r--src/test/run-pass/c-stack-as-value.rs2
-rw-r--r--src/test/run-pass/c-stack-returning-int64.rs2
-rw-r--r--src/test/run-pass/capturing-logging.rs2
-rw-r--r--src/test/run-pass/check-static-recursion-foreign.rs2
-rw-r--r--src/test/run-pass/child-outlives-parent.rs2
-rw-r--r--src/test/run-pass/cleanup-arm-conditional.rs2
-rw-r--r--src/test/run-pass/clone-with-exterior.rs2
-rw-r--r--src/test/run-pass/closure-reform.rs2
-rw-r--r--src/test/run-pass/comm.rs2
-rw-r--r--src/test/run-pass/conditional-debug-macro-off.rs2
-rw-r--r--src/test/run-pass/const-cast.rs2
-rw-r--r--src/test/run-pass/core-run-destroy.rs1
-rw-r--r--src/test/run-pass/derive-no-std.rs2
-rw-r--r--src/test/run-pass/deriving-encodable-decodable-box.rs2
-rw-r--r--src/test/run-pass/deriving-encodable-decodable-cell-refcell.rs2
-rw-r--r--src/test/run-pass/deriving-global.rs2
-rw-r--r--src/test/run-pass/deriving-hash.rs2
-rw-r--r--src/test/run-pass/deriving-primitive.rs2
-rw-r--r--src/test/run-pass/deriving-rand.rs2
-rw-r--r--src/test/run-pass/drop-with-type-ascription-1.rs2
-rw-r--r--src/test/run-pass/drop-with-type-ascription-2.rs2
-rw-r--r--src/test/run-pass/dropck_tarena_sound_drop.rs2
-rw-r--r--src/test/run-pass/dst-index.rs2
-rw-r--r--src/test/run-pass/enum-null-pointer-opt.rs1
-rw-r--r--src/test/run-pass/env-home-dir.rs2
-rw-r--r--src/test/run-pass/exponential-notation.rs2
-rw-r--r--src/test/run-pass/extern-call-deep.rs2
-rw-r--r--src/test/run-pass/extern-call-deep2.rs2
-rw-r--r--src/test/run-pass/extern-call-indirect.rs2
-rw-r--r--src/test/run-pass/extern-call-scrub.rs2
-rw-r--r--src/test/run-pass/extern-crosscrate.rs2
-rw-r--r--src/test/run-pass/extern-methods.rs2
-rw-r--r--src/test/run-pass/extern-mod-syntax.rs1
-rw-r--r--src/test/run-pass/float-nan.rs2
-rw-r--r--src/test/run-pass/for-loop-no-std.rs2
-rw-r--r--src/test/run-pass/foreach-external-iterators-hashmap-break-restart.rs2
-rw-r--r--src/test/run-pass/foreach-external-iterators-hashmap.rs2
-rw-r--r--src/test/run-pass/foreign-call-no-runtime.rs1
-rw-r--r--src/test/run-pass/foreign-dupe.rs2
-rw-r--r--src/test/run-pass/foreign-fn-linkname.rs2
-rw-r--r--src/test/run-pass/foreign-mod-unused-const.rs2
-rw-r--r--src/test/run-pass/foreign-no-abi.rs2
-rw-r--r--src/test/run-pass/foreign2.rs2
-rw-r--r--src/test/run-pass/format-no-std.rs2
-rw-r--r--src/test/run-pass/fsu-moves-and-copies.rs2
-rw-r--r--src/test/run-pass/generic-extern-mangle.rs2
-rw-r--r--src/test/run-pass/getopts_ref.rs2
-rw-r--r--src/test/run-pass/hashmap-memory.rs2
-rw-r--r--src/test/run-pass/init-large-type.rs2
-rw-r--r--src/test/run-pass/into-iterator-type-inference-shift.rs2
-rw-r--r--src/test/run-pass/intrinsic-assume.rs2
-rw-r--r--src/test/run-pass/intrinsic-unreachable.rs2
-rw-r--r--src/test/run-pass/intrinsics-math.rs2
-rw-r--r--src/test/run-pass/issue-10626.rs2
-rw-r--r--src/test/run-pass/issue-11709.rs2
-rw-r--r--src/test/run-pass/issue-11736.rs2
-rw-r--r--src/test/run-pass/issue-11881.rs2
-rw-r--r--src/test/run-pass/issue-11958.rs1
-rw-r--r--src/test/run-pass/issue-1251.rs2
-rw-r--r--src/test/run-pass/issue-12684.rs2
-rw-r--r--src/test/run-pass/issue-12699.rs2
-rw-r--r--src/test/run-pass/issue-12860.rs1
-rw-r--r--src/test/run-pass/issue-13105.rs2
-rw-r--r--src/test/run-pass/issue-13259-windows-tcb-trash.rs2
-rw-r--r--src/test/run-pass/issue-13304.rs1
-rw-r--r--src/test/run-pass/issue-13352.rs2
-rw-r--r--src/test/run-pass/issue-13494.rs2
-rw-r--r--src/test/run-pass/issue-13507-2.rs3
-rw-r--r--src/test/run-pass/issue-13655.rs2
-rw-r--r--src/test/run-pass/issue-13763.rs2
-rw-r--r--src/test/run-pass/issue-14021.rs2
-rw-r--r--src/test/run-pass/issue-14456.rs2
-rw-r--r--src/test/run-pass/issue-14901.rs2
-rw-r--r--src/test/run-pass/issue-14940.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-15673.rs2
-rw-r--r--src/test/run-pass/issue-15734.rs2
-rw-r--r--src/test/run-pass/issue-15924.rs2
-rw-r--r--src/test/run-pass/issue-16530.rs2
-rw-r--r--src/test/run-pass/issue-16739.rs2
-rw-r--r--src/test/run-pass/issue-1696.rs2
-rw-r--r--src/test/run-pass/issue-17322.rs2
-rw-r--r--src/test/run-pass/issue-17351.rs2
-rw-r--r--src/test/run-pass/issue-17718-static-unsafe-interior.rs2
-rw-r--r--src/test/run-pass/issue-17718.rs2
-rw-r--r--src/test/run-pass/issue-17897.rs2
-rw-r--r--src/test/run-pass/issue-18188.rs2
-rw-r--r--src/test/run-pass/issue-18619.rs2
-rw-r--r--src/test/run-pass/issue-18661.rs2
-rw-r--r--src/test/run-pass/issue-19098.rs2
-rw-r--r--src/test/run-pass/issue-19811-escape-unicode.rs2
-rw-r--r--src/test/run-pass/issue-20091.rs1
-rw-r--r--src/test/run-pass/issue-20454.rs2
-rw-r--r--src/test/run-pass/issue-20644.rs2
-rw-r--r--src/test/run-pass/issue-20797.rs2
-rw-r--r--src/test/run-pass/issue-21058.rs1
-rw-r--r--src/test/run-pass/issue-2190-1.rs2
-rw-r--r--src/test/run-pass/issue-2214.rs2
-rw-r--r--src/test/run-pass/issue-22577.rs2
-rw-r--r--src/test/run-pass/issue-2383.rs2
-rw-r--r--src/test/run-pass/issue-2718.rs2
-rw-r--r--src/test/run-pass/issue-2804-2.rs2
-rw-r--r--src/test/run-pass/issue-2804.rs3
-rw-r--r--src/test/run-pass/issue-2904.rs4
-rw-r--r--src/test/run-pass/issue-3012-2.rs2
-rw-r--r--src/test/run-pass/issue-3026.rs2
-rw-r--r--src/test/run-pass/issue-3424.rs2
-rw-r--r--src/test/run-pass/issue-3559.rs2
-rw-r--r--src/test/run-pass/issue-3563-3.rs2
-rw-r--r--src/test/run-pass/issue-3609.rs1
-rw-r--r--src/test/run-pass/issue-3656.rs2
-rw-r--r--src/test/run-pass/issue-3753.rs2
-rw-r--r--src/test/run-pass/issue-4016.rs1
-rw-r--r--src/test/run-pass/issue-4036.rs2
-rw-r--r--src/test/run-pass/issue-4333.rs2
-rw-r--r--src/test/run-pass/issue-4446.rs2
-rw-r--r--src/test/run-pass/issue-4735.rs2
-rw-r--r--src/test/run-pass/issue-5791.rs2
-rw-r--r--src/test/run-pass/issue-5988.rs2
-rw-r--r--src/test/run-pass/issue-6128.rs2
-rw-r--r--src/test/run-pass/issue-6898.rs2
-rw-r--r--src/test/run-pass/issue-7660.rs2
-rw-r--r--src/test/run-pass/issue-8398.rs2
-rw-r--r--src/test/run-pass/issue-8460.rs2
-rw-r--r--src/test/run-pass/issue-8827.rs2
-rw-r--r--src/test/run-pass/issue-9396.rs2
-rw-r--r--src/test/run-pass/issue22346.rs2
-rw-r--r--src/test/run-pass/istr.rs2
-rw-r--r--src/test/run-pass/item-attributes.rs2
-rw-r--r--src/test/run-pass/ivec-tag.rs2
-rw-r--r--src/test/run-pass/kindck-implicit-close-over-mut-var.rs2
-rw-r--r--src/test/run-pass/last-use-in-cap-clause.rs2
-rw-r--r--src/test/run-pass/linkage-visibility.rs2
-rw-r--r--src/test/run-pass/logging-enabled-debug.rs2
-rw-r--r--src/test/run-pass/logging-enabled.rs2
-rw-r--r--src/test/run-pass/logging-separate-lines.rs2
-rw-r--r--src/test/run-pass/macro-with-braces-in-expr-position.rs2
-rw-r--r--src/test/run-pass/method-mut-self-modifies-mut-slice-lvalue.rs2
-rw-r--r--src/test/run-pass/method-two-traits-distinguished-via-where-clause.rs2
-rw-r--r--src/test/run-pass/monomorphized-callees-with-ty-params-3314.rs2
-rw-r--r--src/test/run-pass/moves-based-on-type-capture-clause.rs2
-rw-r--r--src/test/run-pass/new-box-syntax.rs2
-rw-r--r--src/test/run-pass/new-unicode-escapes.rs2
-rw-r--r--src/test/run-pass/newtype-struct-with-dtor.rs2
-rw-r--r--src/test/run-pass/numeric-method-autoexport.rs2
-rw-r--r--src/test/run-pass/operator-overloading.rs2
-rw-r--r--src/test/run-pass/option-ext.rs2
-rw-r--r--src/test/run-pass/osx-frameworks.rs2
-rw-r--r--src/test/run-pass/out-of-stack-new-thread-no-split.rs2
-rw-r--r--src/test/run-pass/out-of-stack.rs2
-rw-r--r--src/test/run-pass/overloaded-autoderef.rs2
-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/overloaded-deref.rs2
-rw-r--r--src/test/run-pass/overloaded-index-assoc-list.rs2
-rw-r--r--src/test/run-pass/overloaded-index-autoderef.rs2
-rw-r--r--src/test/run-pass/overloaded-index-in-field.rs2
-rw-r--r--src/test/run-pass/overloaded-index.rs2
-rw-r--r--src/test/run-pass/placement-new-arena.rs2
-rw-r--r--src/test/run-pass/process-remove-from-env.rs2
-rw-r--r--src/test/run-pass/process-spawn-with-unicode-params.rs1
-rw-r--r--src/test/run-pass/realloc-16687.rs2
-rw-r--r--src/test/run-pass/regions-copy-closure.rs2
-rw-r--r--src/test/run-pass/regions-mock-tcx.rs2
-rw-r--r--src/test/run-pass/regions-mock-trans.rs2
-rw-r--r--src/test/run-pass/regions-static-closure.rs2
-rw-r--r--src/test/run-pass/rename-directory.rs2
-rw-r--r--src/test/run-pass/running-with-no-runtime.rs2
-rw-r--r--src/test/run-pass/rust-log-filter.rs2
-rw-r--r--src/test/run-pass/segfault-no-out-of-stack.rs2
-rw-r--r--src/test/run-pass/send-resource.rs2
-rw-r--r--src/test/run-pass/send_str_hashmap.rs2
-rw-r--r--src/test/run-pass/send_str_treemap.rs2
-rw-r--r--src/test/run-pass/signal-exit-status.rs3
-rw-r--r--src/test/run-pass/simd-binop.rs1
-rw-r--r--src/test/run-pass/simd-issue-10604.rs2
-rw-r--r--src/test/run-pass/slice.rs2
-rw-r--r--src/test/run-pass/smallest-hello-world.rs2
-rw-r--r--src/test/run-pass/spawn-fn.rs2
-rw-r--r--src/test/run-pass/stat.rs2
-rw-r--r--src/test/run-pass/static-mut-foreign.rs2
-rw-r--r--src/test/run-pass/std-sync-right-kind-impls.rs2
-rw-r--r--src/test/run-pass/supported-cast.rs2
-rw-r--r--src/test/run-pass/syntax-extension-source-utils.rs8
-rw-r--r--src/test/run-pass/syntax-trait-polarity.rs2
-rw-r--r--src/test/run-pass/task-comm-0.rs2
-rw-r--r--src/test/run-pass/task-comm-1.rs2
-rw-r--r--src/test/run-pass/task-comm-10.rs2
-rw-r--r--src/test/run-pass/task-comm-11.rs2
-rw-r--r--src/test/run-pass/task-comm-12.rs2
-rw-r--r--src/test/run-pass/task-comm-13.rs2
-rw-r--r--src/test/run-pass/task-comm-14.rs2
-rw-r--r--src/test/run-pass/task-comm-15.rs2
-rw-r--r--src/test/run-pass/task-comm-17.rs2
-rw-r--r--src/test/run-pass/task-comm-3.rs2
-rw-r--r--src/test/run-pass/task-comm-7.rs1
-rw-r--r--src/test/run-pass/task-comm-9.rs2
-rw-r--r--src/test/run-pass/task-life-0.rs2
-rw-r--r--src/test/run-pass/task-spawn-move-and-copy.rs2
-rw-r--r--src/test/run-pass/task-stderr.rs2
-rw-r--r--src/test/run-pass/tcp-accept-stress.rs2
-rw-r--r--src/test/run-pass/tcp-connect-timeouts.rs1
-rw-r--r--src/test/run-pass/tempfile.rs2
-rw-r--r--src/test/run-pass/test-fn-signature-verification-for-explicit-return-type.rs2
-rw-r--r--src/test/run-pass/threads.rs2
-rw-r--r--src/test/run-pass/trait-bounds-basic.rs1
-rw-r--r--src/test/run-pass/trait-bounds-in-arc.rs2
-rw-r--r--src/test/run-pass/trait-bounds-on-structs-and-enums.rs2
-rw-r--r--src/test/run-pass/trait-bounds-recursion.rs2
-rw-r--r--src/test/run-pass/trait-coercion.rs3
-rw-r--r--src/test/run-pass/trait-inheritance-num.rs2
-rw-r--r--src/test/run-pass/trait-inheritance-num0.rs2
-rw-r--r--src/test/run-pass/trait-inheritance-num1.rs2
-rw-r--r--src/test/run-pass/trait-inheritance-num2.rs2
-rw-r--r--src/test/run-pass/trait-inheritance-num3.rs2
-rw-r--r--src/test/run-pass/trait-inheritance-num5.rs2
-rw-r--r--src/test/run-pass/trait-inheritance-static2.rs2
-rw-r--r--src/test/run-pass/tydesc-name.rs1
-rw-r--r--src/test/run-pass/type-id-higher-rank.rs2
-rw-r--r--src/test/run-pass/typeid-intrinsic.rs2
-rw-r--r--src/test/run-pass/ufcs-polymorphic-paths.rs2
-rw-r--r--src/test/run-pass/unboxed-closures-extern-fn-hr.rs2
-rw-r--r--src/test/run-pass/unboxed-closures-fn-as-fnmut-and-fnonce.rs3
-rw-r--r--src/test/run-pass/unboxed-closures-fnmut-as-fnonce.rs3
-rw-r--r--src/test/run-pass/unboxed-closures-infer-argument-types-from-expected-bound.rs2
-rw-r--r--src/test/run-pass/unboxed-closures-infer-argument-types-from-expected-object-type.rs2
-rw-r--r--src/test/run-pass/unboxed-closures-infer-argument-types-with-bound-regions-from-expected-bound.rs2
-rw-r--r--src/test/run-pass/unboxed-closures-manual-impl.rs2
-rw-r--r--src/test/run-pass/unboxed-closures-monomorphization.rs2
-rw-r--r--src/test/run-pass/unboxed-closures-prelude.rs2
-rw-r--r--src/test/run-pass/unfold-cross-crate.rs2
-rw-r--r--src/test/run-pass/unit-like-struct-drop-run.rs2
-rw-r--r--src/test/run-pass/unsized3.rs2
-rw-r--r--src/test/run-pass/utf8_chars.rs2
-rw-r--r--src/test/run-pass/variadic-ffi.rs2
-rw-r--r--src/test/run-pass/variance-intersection-of-ref-and-opt-ref.rs1
-rw-r--r--src/test/run-pass/variance-vec-covariant.rs1
-rw-r--r--src/test/run-pass/vec-concat.rs2
-rw-r--r--src/test/run-pass/vec-macro-no-std.rs2
-rw-r--r--src/test/run-pass/vector-sort-panic-safe.rs2
-rw-r--r--src/test/run-pass/wait-forked-but-failed-child.rs2
-rw-r--r--src/test/run-pass/while-let.rs2
-rw-r--r--src/test/run-pass/while-prelude-drop.rs2
369 files changed, 702 insertions, 253 deletions
diff --git a/src/compiletest/compiletest.rs b/src/compiletest/compiletest.rs
index 01c4e99b77c..1aa5564d0a1 100644
--- a/src/compiletest/compiletest.rs
+++ b/src/compiletest/compiletest.rs
@@ -20,6 +20,7 @@
 #![feature(std_misc)]
 #![feature(test)]
 #![feature(path_ext)]
+#![feature(str_char)]
 
 #![deny(warnings)]
 
diff --git a/src/libcollections/lib.rs b/src/libcollections/lib.rs
index c4a01496763..cf9f6a39a55 100644
--- a/src/libcollections/lib.rs
+++ b/src/libcollections/lib.rs
@@ -36,7 +36,7 @@
 #![feature(unsafe_no_drop_flag)]
 #![feature(step_by)]
 #![feature(str_char)]
-#![cfg_attr(test, feature(rand, rustc_private, test))]
+#![cfg_attr(test, feature(rand, rustc_private, test, hash, collections))]
 #![cfg_attr(test, allow(deprecated))] // rand
 
 #![feature(no_std)]
diff --git a/src/libcollectionstest/lib.rs b/src/libcollectionstest/lib.rs
index 7f029340d25..365ef637a4c 100644
--- a/src/libcollectionstest/lib.rs
+++ b/src/libcollectionstest/lib.rs
@@ -20,6 +20,7 @@
 #![feature(unboxed_closures)]
 #![feature(unicode)]
 #![feature(unsafe_destructor)]
+#![cfg_attr(test, feature(str_char))]
 
 #[macro_use] extern crate log;
 
diff --git a/src/libcoretest/lib.rs b/src/libcoretest/lib.rs
index 536bce0d05f..33f9b63bc49 100644
--- a/src/libcoretest/lib.rs
+++ b/src/libcoretest/lib.rs
@@ -24,6 +24,8 @@
 #![feature(io)]
 #![feature(collections)]
 #![feature(debug_builders)]
+#![feature(unique)]
+#![feature(step_by)]
 #![allow(deprecated)] // rand
 
 extern crate core;
diff --git a/src/libflate/lib.rs b/src/libflate/lib.rs
index 695c71c73ed..63d1fe968fe 100644
--- a/src/libflate/lib.rs
+++ b/src/libflate/lib.rs
@@ -28,6 +28,7 @@
 #![feature(libc)]
 #![feature(staged_api)]
 #![feature(unique)]
+#![cfg_attr(test, feature(rustc_private, rand, collections))]
 
 #[cfg(test)] #[macro_use] extern crate log;
 
diff --git a/src/librand/lib.rs b/src/librand/lib.rs
index 5e52a176c9e..8de773e9fec 100644
--- a/src/librand/lib.rs
+++ b/src/librand/lib.rs
@@ -34,7 +34,7 @@
 #![deprecated(reason = "use the crates.io `rand` library instead",
               since = "1.0.0-alpha")]
 
-#![cfg_attr(test, feature(test, rand))]
+#![cfg_attr(test, feature(test, rand, rustc_private))]
 
 #![allow(deprecated)]
 
diff --git a/src/librustc/lint/context.rs b/src/librustc/lint/context.rs
index 9aa6395b7b2..9688447dc04 100644
--- a/src/librustc/lint/context.rs
+++ b/src/librustc/lint/context.rs
@@ -212,7 +212,7 @@ impl LintStore {
     fn maybe_stage_features(&mut self, sess: &Session) {
         let lvl = match sess.opts.unstable_features {
             UnstableFeatures::Default => return,
-            UnstableFeatures::Disallow => Warn,
+            UnstableFeatures::Disallow => Forbid,
             UnstableFeatures::Cheat => Allow
         };
         match self.by_name.get("unstable_features") {
diff --git a/src/librustc/middle/stability.rs b/src/librustc/middle/stability.rs
index 01766b0de08..96657b1d261 100644
--- a/src/librustc/middle/stability.rs
+++ b/src/librustc/middle/stability.rs
@@ -26,7 +26,7 @@ use syntax::ast::{Item, Generics, StructField};
 use syntax::ast_util::is_local;
 use syntax::attr::{Stability, AttrMetaMethods};
 use syntax::visit::{FnKind, Visitor};
-use syntax::feature_gate::emit_feature_warn;
+use syntax::feature_gate::emit_feature_err;
 use util::nodemap::{NodeMap, DefIdMap, FnvHashSet, FnvHashMap};
 use util::ppaux::Repr;
 
@@ -237,7 +237,7 @@ impl<'a, 'tcx> Checker<'a, 'tcx> {
                         None => format!("use of unstable library feature '{}'", &feature)
                     };
 
-                    emit_feature_warn(&self.tcx.sess.parse_sess.span_diagnostic,
+                    emit_feature_err(&self.tcx.sess.parse_sess.span_diagnostic,
                                       &feature, span, &msg);
                 }
             }
diff --git a/src/librustc_back/lib.rs b/src/librustc_back/lib.rs
index 99d24a60130..acc17edaf2c 100644
--- a/src/librustc_back/lib.rs
+++ b/src/librustc_back/lib.rs
@@ -49,6 +49,7 @@
 #![feature(std_misc)]
 #![feature(path_relative_from)]
 #![feature(step_by)]
+#![cfg_attr(test, feature(test, rand))]
 
 extern crate syntax;
 extern crate serialize;
diff --git a/src/librustc_bitflags/lib.rs b/src/librustc_bitflags/lib.rs
index 2992ddbc4f4..054bfec7a20 100644
--- a/src/librustc_bitflags/lib.rs
+++ b/src/librustc_bitflags/lib.rs
@@ -18,6 +18,7 @@
 #![feature(no_std)]
 #![no_std]
 #![unstable(feature = "rustc_private")]
+#![cfg_attr(test, feature(hash))]
 
 //! A typesafe bitmask flag generator.
 
diff --git a/src/libserialize/lib.rs b/src/libserialize/lib.rs
index 90cb88046e5..ee257dd0ac9 100644
--- a/src/libserialize/lib.rs
+++ b/src/libserialize/lib.rs
@@ -37,7 +37,7 @@ Core encoding and decoding interfaces.
 #![feature(std_misc)]
 #![feature(unicode)]
 #![feature(str_char)]
-#![cfg_attr(test, feature(test))]
+#![cfg_attr(test, feature(test, old_io))]
 
 // test harness access
 #[cfg(test)] extern crate test;
diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs
index b055796ba54..1aa2189d315 100644
--- a/src/libstd/lib.rs
+++ b/src/libstd/lib.rs
@@ -128,7 +128,7 @@
 #![feature(unique)]
 #![feature(allow_internal_unstable)]
 #![feature(str_char)]
-#![cfg_attr(test, feature(test, rustc_private))]
+#![cfg_attr(test, feature(test, rustc_private, std_misc))]
 
 // Don't link to std. We are std.
 #![feature(no_std)]
diff --git a/src/libtest/lib.rs b/src/libtest/lib.rs
index 51decbab858..34f1b68fa9b 100644
--- a/src/libtest/lib.rs
+++ b/src/libtest/lib.rs
@@ -45,6 +45,7 @@
 #![feature(libc)]
 #![feature(set_stdio)]
 #![feature(os)]
+#![cfg_attr(test, feature(old_io))]
 
 extern crate getopts;
 extern crate serialize;
diff --git a/src/libunicode/char.rs b/src/libunicode/char.rs
index 5e1070c6dc5..e0f013cbc80 100644
--- a/src/libunicode/char.rs
+++ b/src/libunicode/char.rs
@@ -653,6 +653,7 @@ impl char {
     /// In both of these examples, 'ß' takes two bytes to encode.
     ///
     /// ```
+    /// # #![feature(unicode)]
     /// let mut b = [0; 2];
     ///
     /// let result = 'ß'.encode_utf8(&mut b);
@@ -663,6 +664,7 @@ impl char {
     /// A buffer that's too small:
     ///
     /// ```
+    /// # #![feature(unicode)]
     /// let mut b = [0; 1];
     ///
     /// let result = 'ß'.encode_utf8(&mut b);
@@ -685,6 +687,7 @@ impl char {
     /// In both of these examples, 'ß' takes one `u16` to encode.
     ///
     /// ```
+    /// # #![feature(unicode)]
     /// let mut b = [0; 1];
     ///
     /// let result = 'ß'.encode_utf16(&mut b);
@@ -695,6 +698,7 @@ impl char {
     /// A buffer that's too small:
     ///
     /// ```
+    /// # #![feature(unicode)]
     /// let mut b = [0; 0];
     ///
     /// let result = 'ß'.encode_utf8(&mut b);
diff --git a/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs b/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs
index 12ab62267a3..197fb9a6d01 100644
--- a/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs
+++ b/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 #![crate_name="anonexternmod"]
+#![feature(libc)]
 
 extern crate libc;
 
diff --git a/src/test/auxiliary/check_static_recursion_foreign_helper.rs b/src/test/auxiliary/check_static_recursion_foreign_helper.rs
index b5c2a4f135f..c0d81cd8e1b 100644
--- a/src/test/auxiliary/check_static_recursion_foreign_helper.rs
+++ b/src/test/auxiliary/check_static_recursion_foreign_helper.rs
@@ -10,6 +10,8 @@
 
 // Helper definition for test/run-pass/check-static-recursion-foreign.rs.
 
+#![feature(libc)]
+
 #[crate_id = "check_static_recursion_foreign_helper"]
 #[crate_type = "lib"]
 
diff --git a/src/test/auxiliary/extern-crosscrate-source.rs b/src/test/auxiliary/extern-crosscrate-source.rs
index 0e3b531e458..fc2e328f686 100644
--- a/src/test/auxiliary/extern-crosscrate-source.rs
+++ b/src/test/auxiliary/extern-crosscrate-source.rs
@@ -10,6 +10,7 @@
 
 #![crate_name="externcallback"]
 #![crate_type = "lib"]
+#![feature(libc)]
 
 extern crate libc;
 
diff --git a/src/test/auxiliary/foreign_lib.rs b/src/test/auxiliary/foreign_lib.rs
index a5d672e3c0c..92239ce5598 100644
--- a/src/test/auxiliary/foreign_lib.rs
+++ b/src/test/auxiliary/foreign_lib.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 #![crate_name="foreign_lib"]
+#![feature(libc)]
 
 pub mod rustrt {
     extern crate libc;
diff --git a/src/test/auxiliary/issue-3012-1.rs b/src/test/auxiliary/issue-3012-1.rs
index 25eb67e0423..b6199f59ebe 100644
--- a/src/test/auxiliary/issue-3012-1.rs
+++ b/src/test/auxiliary/issue-3012-1.rs
@@ -10,6 +10,7 @@
 
 #![crate_name="socketlib"]
 #![crate_type = "lib"]
+#![feature(libc)]
 
 pub mod socket {
     extern crate libc;
diff --git a/src/test/auxiliary/issue13507.rs b/src/test/auxiliary/issue13507.rs
index f24721adb5d..4a8839abc7c 100644
--- a/src/test/auxiliary/issue13507.rs
+++ b/src/test/auxiliary/issue13507.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 pub mod testtypes {
     use std::any::TypeId;
 
diff --git a/src/test/auxiliary/issue_16723_multiple_items_syntax_ext.rs b/src/test/auxiliary/issue_16723_multiple_items_syntax_ext.rs
index f5a9063e1de..58dee1216ee 100644
--- a/src/test/auxiliary/issue_16723_multiple_items_syntax_ext.rs
+++ b/src/test/auxiliary/issue_16723_multiple_items_syntax_ext.rs
@@ -11,7 +11,7 @@
 // ignore-stage1
 // force-host
 
-#![feature(plugin_registrar, quote)]
+#![feature(plugin_registrar, quote, rustc_private)]
 #![crate_type = "dylib"]
 
 extern crate syntax;
diff --git a/src/test/auxiliary/issue_3907.rs b/src/test/auxiliary/issue_3907.rs
index c118f7e4854..3d5e52d709d 100644
--- a/src/test/auxiliary/issue_3907.rs
+++ b/src/test/auxiliary/issue_3907.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::marker::MarkerTrait;
 
 pub trait Foo : MarkerTrait {
diff --git a/src/test/auxiliary/issue_5844_aux.rs b/src/test/auxiliary/issue_5844_aux.rs
index e12af579c57..5c878b1e667 100644
--- a/src/test/auxiliary/issue_5844_aux.rs
+++ b/src/test/auxiliary/issue_5844_aux.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 extern crate libc;
 
 extern "C" {
diff --git a/src/test/auxiliary/linkage-visibility.rs b/src/test/auxiliary/linkage-visibility.rs
index 03fe2fd94dd..fd3e9b9ac9d 100644
--- a/src/test/auxiliary/linkage-visibility.rs
+++ b/src/test/auxiliary/linkage-visibility.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc, old_path)]
+
 use std::dynamic_lib::DynamicLibrary;
 
 #[no_mangle]
diff --git a/src/test/auxiliary/lint_for_crate.rs b/src/test/auxiliary/lint_for_crate.rs
index 1be37ce1780..3b45b0ae701 100644
--- a/src/test/auxiliary/lint_for_crate.rs
+++ b/src/test/auxiliary/lint_for_crate.rs
@@ -10,7 +10,7 @@
 
 // force-host
 
-#![feature(plugin_registrar)]
+#![feature(plugin_registrar, rustc_private)]
 #![feature(box_syntax)]
 
 extern crate syntax;
diff --git a/src/test/auxiliary/lint_group_plugin_test.rs b/src/test/auxiliary/lint_group_plugin_test.rs
index e9d98889ff8..ca5a7b75e06 100644
--- a/src/test/auxiliary/lint_group_plugin_test.rs
+++ b/src/test/auxiliary/lint_group_plugin_test.rs
@@ -11,7 +11,7 @@
 // force-host
 
 #![feature(plugin_registrar)]
-#![feature(box_syntax)]
+#![feature(box_syntax, rustc_private)]
 
 extern crate syntax;
 
diff --git a/src/test/auxiliary/lint_plugin_test.rs b/src/test/auxiliary/lint_plugin_test.rs
index ffb234f70c8..20799ce5b46 100644
--- a/src/test/auxiliary/lint_plugin_test.rs
+++ b/src/test/auxiliary/lint_plugin_test.rs
@@ -11,7 +11,7 @@
 // force-host
 
 #![feature(plugin_registrar)]
-#![feature(box_syntax)]
+#![feature(box_syntax, rustc_private)]
 
 extern crate syntax;
 
diff --git a/src/test/auxiliary/logging_right_crate.rs b/src/test/auxiliary/logging_right_crate.rs
index bf4ab975ced..974db7c9246 100644
--- a/src/test/auxiliary/logging_right_crate.rs
+++ b/src/test/auxiliary/logging_right_crate.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(rustc_private)]
+
 #[macro_use] extern crate log;
 
 pub fn foo<T>() {
diff --git a/src/test/auxiliary/macro_crate_MacroRulesTT.rs b/src/test/auxiliary/macro_crate_MacroRulesTT.rs
index d50c27a4e75..03cd70d9494 100644
--- a/src/test/auxiliary/macro_crate_MacroRulesTT.rs
+++ b/src/test/auxiliary/macro_crate_MacroRulesTT.rs
@@ -10,7 +10,7 @@
 
 // force-host
 
-#![feature(plugin_registrar)]
+#![feature(plugin_registrar, rustc_private)]
 
 extern crate syntax;
 extern crate rustc;
diff --git a/src/test/auxiliary/macro_crate_test.rs b/src/test/auxiliary/macro_crate_test.rs
index 36a34bc6c8b..5b7e52e9164 100644
--- a/src/test/auxiliary/macro_crate_test.rs
+++ b/src/test/auxiliary/macro_crate_test.rs
@@ -11,7 +11,7 @@
 // force-host
 
 #![feature(plugin_registrar, quote)]
-#![feature(box_syntax)]
+#![feature(box_syntax, rustc_private)]
 
 extern crate syntax;
 extern crate rustc;
diff --git a/src/test/auxiliary/plugin_args.rs b/src/test/auxiliary/plugin_args.rs
index 30b18a3618f..5a615502a95 100644
--- a/src/test/auxiliary/plugin_args.rs
+++ b/src/test/auxiliary/plugin_args.rs
@@ -11,7 +11,7 @@
 // force-host
 
 #![feature(plugin_registrar)]
-#![feature(box_syntax)]
+#![feature(box_syntax, rustc_private)]
 
 extern crate syntax;
 extern crate rustc;
diff --git a/src/test/auxiliary/plugin_crate_outlive_expansion_phase.rs b/src/test/auxiliary/plugin_crate_outlive_expansion_phase.rs
index 420151c471e..6f5f5047548 100644
--- a/src/test/auxiliary/plugin_crate_outlive_expansion_phase.rs
+++ b/src/test/auxiliary/plugin_crate_outlive_expansion_phase.rs
@@ -11,7 +11,7 @@
 // force-host
 
 #![feature(plugin_registrar)]
-#![feature(box_syntax)]
+#![feature(box_syntax, rustc_private)]
 
 extern crate rustc;
 
diff --git a/src/test/auxiliary/plugin_with_plugin_lib.rs b/src/test/auxiliary/plugin_with_plugin_lib.rs
index cfc8c015324..75f404c96cd 100644
--- a/src/test/auxiliary/plugin_with_plugin_lib.rs
+++ b/src/test/auxiliary/plugin_with_plugin_lib.rs
@@ -10,7 +10,7 @@
 
 // force-host
 
-#![feature(plugin_registrar)]
+#![feature(plugin_registrar, rustc_private)]
 #![deny(plugin_as_library)] // should have no effect in a plugin crate
 
 extern crate macro_crate_test;
diff --git a/src/test/auxiliary/private_trait_xc.rs b/src/test/auxiliary/private_trait_xc.rs
index 42691579491..dc08033602c 100644
--- a/src/test/auxiliary/private_trait_xc.rs
+++ b/src/test/auxiliary/private_trait_xc.rs
@@ -8,4 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 trait Foo : ::std::marker::MarkerTrait {}
diff --git a/src/test/auxiliary/procedural_mbe_matching.rs b/src/test/auxiliary/procedural_mbe_matching.rs
index d9a2b06e039..1adc794551e 100644
--- a/src/test/auxiliary/procedural_mbe_matching.rs
+++ b/src/test/auxiliary/procedural_mbe_matching.rs
@@ -11,7 +11,7 @@
 // force-host
 
 #![crate_type="dylib"]
-#![feature(plugin_registrar, quote)]
+#![feature(plugin_registrar, quote, rustc_private)]
 
 extern crate syntax;
 extern crate rustc;
diff --git a/src/test/auxiliary/rlib_crate_test.rs b/src/test/auxiliary/rlib_crate_test.rs
index be03a36393e..86ce3df9ba6 100644
--- a/src/test/auxiliary/rlib_crate_test.rs
+++ b/src/test/auxiliary/rlib_crate_test.rs
@@ -11,7 +11,7 @@
 // no-prefer-dynamic
 
 #![crate_type = "rlib"]
-#![feature(plugin_registrar)]
+#![feature(plugin_registrar, rustc_private)]
 
 extern crate rustc;
 
diff --git a/src/test/auxiliary/roman_numerals.rs b/src/test/auxiliary/roman_numerals.rs
index 0ea7c000570..a105cb7ae6c 100644
--- a/src/test/auxiliary/roman_numerals.rs
+++ b/src/test/auxiliary/roman_numerals.rs
@@ -11,7 +11,7 @@
 // force-host
 
 #![crate_type="dylib"]
-#![feature(plugin_registrar)]
+#![feature(plugin_registrar, rustc_private)]
 
 extern crate syntax;
 extern crate rustc;
diff --git a/src/test/auxiliary/svh-a-base.rs b/src/test/auxiliary/svh-a-base.rs
index 04f1062c16f..6d4ea499b2b 100644
--- a/src/test/auxiliary/svh-a-base.rs
+++ b/src/test/auxiliary/svh-a-base.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/svh-a-change-lit.rs b/src/test/auxiliary/svh-a-change-lit.rs
index fabd2289e9a..61e4aaf3258 100644
--- a/src/test/auxiliary/svh-a-change-lit.rs
+++ b/src/test/auxiliary/svh-a-change-lit.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/svh-a-change-significant-cfg.rs b/src/test/auxiliary/svh-a-change-significant-cfg.rs
index 3fdb861bd40..cfdb0902b5d 100644
--- a/src/test/auxiliary/svh-a-change-significant-cfg.rs
+++ b/src/test/auxiliary/svh-a-change-significant-cfg.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/svh-a-change-trait-bound.rs b/src/test/auxiliary/svh-a-change-trait-bound.rs
index 3116d24673d..e79738c0410 100644
--- a/src/test/auxiliary/svh-a-change-trait-bound.rs
+++ b/src/test/auxiliary/svh-a-change-trait-bound.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/svh-a-change-type-arg.rs b/src/test/auxiliary/svh-a-change-type-arg.rs
index b49a1533628..b22d553c02b 100644
--- a/src/test/auxiliary/svh-a-change-type-arg.rs
+++ b/src/test/auxiliary/svh-a-change-type-arg.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/svh-a-change-type-ret.rs b/src/test/auxiliary/svh-a-change-type-ret.rs
index 6562a93135f..78dbdc28b9f 100644
--- a/src/test/auxiliary/svh-a-change-type-ret.rs
+++ b/src/test/auxiliary/svh-a-change-type-ret.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/svh-a-change-type-static.rs b/src/test/auxiliary/svh-a-change-type-static.rs
index c7b392c6ee8..30592827039 100644
--- a/src/test/auxiliary/svh-a-change-type-static.rs
+++ b/src/test/auxiliary/svh-a-change-type-static.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/svh-a-comment.rs b/src/test/auxiliary/svh-a-comment.rs
index 450f6102026..4c457b099a4 100644
--- a/src/test/auxiliary/svh-a-comment.rs
+++ b/src/test/auxiliary/svh-a-comment.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/svh-a-doc.rs b/src/test/auxiliary/svh-a-doc.rs
index c000737c854..cab25ac9e4f 100644
--- a/src/test/auxiliary/svh-a-doc.rs
+++ b/src/test/auxiliary/svh-a-doc.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/svh-a-macro.rs b/src/test/auxiliary/svh-a-macro.rs
index 1e12659dc4b..01926dc8abc 100644
--- a/src/test/auxiliary/svh-a-macro.rs
+++ b/src/test/auxiliary/svh-a-macro.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/svh-a-no-change.rs b/src/test/auxiliary/svh-a-no-change.rs
index 04f1062c16f..6d4ea499b2b 100644
--- a/src/test/auxiliary/svh-a-no-change.rs
+++ b/src/test/auxiliary/svh-a-no-change.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/svh-a-redundant-cfg.rs b/src/test/auxiliary/svh-a-redundant-cfg.rs
index 1e82b74f1ef..f3a31df94b3 100644
--- a/src/test/auxiliary/svh-a-redundant-cfg.rs
+++ b/src/test/auxiliary/svh-a-redundant-cfg.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/svh-a-whitespace.rs b/src/test/auxiliary/svh-a-whitespace.rs
index 3c3dac9cdab..bec6b207c07 100644
--- a/src/test/auxiliary/svh-a-whitespace.rs
+++ b/src/test/auxiliary/svh-a-whitespace.rs
@@ -14,6 +14,7 @@
 //! (#14132).
 
 #![crate_name = "a"]
+#![feature(core)]
 
 use std::marker::MarkerTrait;
 
diff --git a/src/test/auxiliary/syntax_extension_with_dll_deps_2.rs b/src/test/auxiliary/syntax_extension_with_dll_deps_2.rs
index 07f3b863af8..54da1a1e451 100644
--- a/src/test/auxiliary/syntax_extension_with_dll_deps_2.rs
+++ b/src/test/auxiliary/syntax_extension_with_dll_deps_2.rs
@@ -11,7 +11,7 @@
 // force-host
 
 #![crate_type = "dylib"]
-#![feature(plugin_registrar, quote)]
+#![feature(plugin_registrar, quote, rustc_private)]
 
 extern crate "syntax_extension_with_dll_deps_1" as other;
 extern crate syntax;
diff --git a/src/test/auxiliary/trait_impl_conflict.rs b/src/test/auxiliary/trait_impl_conflict.rs
index 0982efbdbf4..4a4de2455e3 100644
--- a/src/test/auxiliary/trait_impl_conflict.rs
+++ b/src/test/auxiliary/trait_impl_conflict.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 pub trait Foo : ::std::marker::MarkerTrait {
 }
 
diff --git a/src/test/auxiliary/typeck-default-trait-impl-cross-crate-coherence-lib.rs b/src/test/auxiliary/typeck-default-trait-impl-cross-crate-coherence-lib.rs
index 506e7a00c75..5a7a3e7bcc6 100644
--- a/src/test/auxiliary/typeck-default-trait-impl-cross-crate-coherence-lib.rs
+++ b/src/test/auxiliary/typeck-default-trait-impl-cross-crate-coherence-lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(optin_builtin_traits)]
+#![feature(optin_builtin_traits, core)]
 #![crate_type = "rlib"]
 
 use std::marker::MarkerTrait;
diff --git a/src/test/auxiliary/typeid-intrinsic.rs b/src/test/auxiliary/typeid-intrinsic.rs
index 82f613ee117..82d07a9df4e 100644
--- a/src/test/auxiliary/typeid-intrinsic.rs
+++ b/src/test/auxiliary/typeid-intrinsic.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::any::TypeId;
 
 pub struct A;
diff --git a/src/test/auxiliary/typeid-intrinsic2.rs b/src/test/auxiliary/typeid-intrinsic2.rs
index 82f613ee117..82d07a9df4e 100644
--- a/src/test/auxiliary/typeid-intrinsic2.rs
+++ b/src/test/auxiliary/typeid-intrinsic2.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::any::TypeId;
 
 pub struct A;
diff --git a/src/test/auxiliary/weak-lang-items.rs b/src/test/auxiliary/weak-lang-items.rs
index 85f49b4bb7f..ceffae79677 100644
--- a/src/test/auxiliary/weak-lang-items.rs
+++ b/src/test/auxiliary/weak-lang-items.rs
@@ -13,7 +13,7 @@
 // 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)]
+#![feature(no_std, core)]
 #![no_std]
 #![crate_type = "rlib"]
 
diff --git a/src/test/bench/core-map.rs b/src/test/bench/core-map.rs
index 4909d84a34f..0cff90d61ed 100644
--- a/src/test/bench/core-map.rs
+++ b/src/test/bench/core-map.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, std_misc, rand)]
 
 use std::collections::{BTreeMap, HashMap, HashSet};
 use std::env;
diff --git a/src/test/bench/core-set.rs b/src/test/bench/core-set.rs
index 994c9605fc3..aeedaa288fe 100644
--- a/src/test/bench/core-set.rs
+++ b/src/test/bench/core-set.rs
@@ -10,7 +10,7 @@
 
 // ignore-pretty very bad with line comments
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, rand, std_misc, collections)]
 
 extern crate collections;
 extern crate rand;
diff --git a/src/test/bench/core-std.rs b/src/test/bench/core-std.rs
index c2ea097ed75..0344d6a46ee 100644
--- a/src/test/bench/core-std.rs
+++ b/src/test/bench/core-std.rs
@@ -11,7 +11,7 @@
 // ignore-lexer-test FIXME #15679
 // Microbenchmarks for various functions in std and extra
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, rand, old_io, old_path, std_misc, collections)]
 
 use std::old_io::*;
 use std::old_path::{Path, GenericPath};
diff --git a/src/test/bench/msgsend-pipes-shared.rs b/src/test/bench/msgsend-pipes-shared.rs
index b8d8f0cc9e6..fb95f92da77 100644
--- a/src/test/bench/msgsend-pipes-shared.rs
+++ b/src/test/bench/msgsend-pipes-shared.rs
@@ -18,6 +18,8 @@
 // different scalability characteristics compared to the select
 // version.
 
+#![feature(std_misc)]
+
 use std::sync::mpsc::{channel, Sender, Receiver};
 use std::env;
 use std::thread;
diff --git a/src/test/bench/msgsend-pipes.rs b/src/test/bench/msgsend-pipes.rs
index 3642eb82fdb..6d702242d76 100644
--- a/src/test/bench/msgsend-pipes.rs
+++ b/src/test/bench/msgsend-pipes.rs
@@ -14,6 +14,8 @@
 //
 // I *think* it's the same, more or less.
 
+#![feature(std_misc)]
+
 use std::sync::mpsc::{channel, Sender, Receiver};
 use std::env;
 use std::thread;
diff --git a/src/test/bench/msgsend-ring-mutex-arcs.rs b/src/test/bench/msgsend-ring-mutex-arcs.rs
index a980b7ed9e7..6fb2c954e02 100644
--- a/src/test/bench/msgsend-ring-mutex-arcs.rs
+++ b/src/test/bench/msgsend-ring-mutex-arcs.rs
@@ -18,6 +18,8 @@
 // no-pretty-expanded FIXME #15189
 // ignore-lexer-test FIXME #15679
 
+#![feature(std_misc)]
+
 use std::env;
 use std::sync::{Arc, Future, Mutex, Condvar};
 use std::time::Duration;
diff --git a/src/test/bench/noise.rs b/src/test/bench/noise.rs
index de88c7733b3..6cd75836187 100644
--- a/src/test/bench/noise.rs
+++ b/src/test/bench/noise.rs
@@ -12,6 +12,8 @@
 // See https://github.com/nsf/pnoise for timings and alternative implementations.
 // ignore-lexer-test FIXME #15679
 
+#![feature(rand, core)]
+
 use std::f32::consts::PI;
 use std::num::Float;
 use std::rand::{Rng, StdRng};
diff --git a/src/test/bench/shootout-binarytrees.rs b/src/test/bench/shootout-binarytrees.rs
index 38fc53ccd36..64c38722137 100644
--- a/src/test/bench/shootout-binarytrees.rs
+++ b/src/test/bench/shootout-binarytrees.rs
@@ -38,6 +38,8 @@
 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 // OF THE POSSIBILITY OF SUCH DAMAGE.
 
+#![feature(rustc_private, core)]
+
 extern crate arena;
 
 use std::iter::range_step;
diff --git a/src/test/bench/shootout-fannkuch-redux.rs b/src/test/bench/shootout-fannkuch-redux.rs
index 3688c224a7d..e23862f4286 100644
--- a/src/test/bench/shootout-fannkuch-redux.rs
+++ b/src/test/bench/shootout-fannkuch-redux.rs
@@ -38,6 +38,8 @@
 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 // OF THE POSSIBILITY OF SUCH DAMAGE.
 
+#![feature(core)]
+
 use std::{cmp, iter, mem};
 use std::thread;
 
diff --git a/src/test/bench/shootout-fasta-redux.rs b/src/test/bench/shootout-fasta-redux.rs
index 289f05a299b..709b23ef9dd 100644
--- a/src/test/bench/shootout-fasta-redux.rs
+++ b/src/test/bench/shootout-fasta-redux.rs
@@ -38,6 +38,8 @@
 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 // OF THE POSSIBILITY OF SUCH DAMAGE.
 
+#![feature(core, old_io, io, core)]
+
 use std::cmp::min;
 use std::old_io::*;
 use std::iter::repeat;
diff --git a/src/test/bench/shootout-fasta.rs b/src/test/bench/shootout-fasta.rs
index df839fc27ee..78d31faeb51 100644
--- a/src/test/bench/shootout-fasta.rs
+++ b/src/test/bench/shootout-fasta.rs
@@ -38,6 +38,8 @@
 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 // OF THE POSSIBILITY OF SUCH DAMAGE.
 
+#![feature(old_io, old_path, io, core)]
+
 use std::cmp::min;
 use std::old_io::*;
 use std::old_io;
diff --git a/src/test/bench/shootout-k-nucleotide-pipes.rs b/src/test/bench/shootout-k-nucleotide-pipes.rs
index 88c9f43f6ec..ebdc60cdd2b 100644
--- a/src/test/bench/shootout-k-nucleotide-pipes.rs
+++ b/src/test/bench/shootout-k-nucleotide-pipes.rs
@@ -13,7 +13,7 @@
 
 // multi tasking k-nucleotide
 
-#![feature(box_syntax)]
+#![feature(box_syntax, std_misc, old_io, collections, os)]
 
 use std::ascii::{AsciiExt, OwnedAsciiExt};
 use std::cmp::Ordering::{self, Less, Greater, Equal};
diff --git a/src/test/bench/shootout-k-nucleotide.rs b/src/test/bench/shootout-k-nucleotide.rs
index 9e5885041b6..ba4f2c9b1c5 100644
--- a/src/test/bench/shootout-k-nucleotide.rs
+++ b/src/test/bench/shootout-k-nucleotide.rs
@@ -40,7 +40,7 @@
 
 // ignore-android see #10393 #13206
 
-#![feature(box_syntax)]
+#![feature(box_syntax, std_misc, collections)]
 
 use std::ascii::OwnedAsciiExt;
 use std::env;
diff --git a/src/test/bench/shootout-mandelbrot.rs b/src/test/bench/shootout-mandelbrot.rs
index 128c92921fa..d248293103b 100644
--- a/src/test/bench/shootout-mandelbrot.rs
+++ b/src/test/bench/shootout-mandelbrot.rs
@@ -38,7 +38,7 @@
 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 // OF THE POSSIBILITY OF SUCH DAMAGE.
 
-#![feature(simd)]
+#![feature(simd, old_io, core, io)]
 
 // ignore-pretty very bad with line comments
 
diff --git a/src/test/bench/shootout-meteor.rs b/src/test/bench/shootout-meteor.rs
index 79a5245a408..150522fd02d 100644
--- a/src/test/bench/shootout-meteor.rs
+++ b/src/test/bench/shootout-meteor.rs
@@ -40,6 +40,8 @@
 
 // no-pretty-expanded FIXME #15189
 
+#![feature(core)]
+
 use std::iter::repeat;
 use std::sync::Arc;
 use std::sync::mpsc::channel;
diff --git a/src/test/bench/shootout-nbody.rs b/src/test/bench/shootout-nbody.rs
index 534dfe9548c..3748b65dacb 100644
--- a/src/test/bench/shootout-nbody.rs
+++ b/src/test/bench/shootout-nbody.rs
@@ -38,6 +38,8 @@
 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 // OF THE POSSIBILITY OF SUCH DAMAGE.
 
+#![feature(core)]
+
 use std::num::Float;
 
 const PI: f64 = 3.141592653589793;
diff --git a/src/test/bench/shootout-pfib.rs b/src/test/bench/shootout-pfib.rs
index a542c81f239..4d9bc951fa3 100644
--- a/src/test/bench/shootout-pfib.rs
+++ b/src/test/bench/shootout-pfib.rs
@@ -18,6 +18,8 @@
 
 */
 
+#![feature(std_misc, rustc_private)]
+
 extern crate getopts;
 
 use std::sync::mpsc::{channel, Sender};
diff --git a/src/test/bench/shootout-reverse-complement.rs b/src/test/bench/shootout-reverse-complement.rs
index 93aa5f2571b..875ec670d42 100644
--- a/src/test/bench/shootout-reverse-complement.rs
+++ b/src/test/bench/shootout-reverse-complement.rs
@@ -40,7 +40,7 @@
 
 // ignore-android see #10393 #13206
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, libc, old_io, collections, io, core)]
 
 extern crate libc;
 
diff --git a/src/test/bench/shootout-spectralnorm.rs b/src/test/bench/shootout-spectralnorm.rs
index f7514a3e884..3889b404d85 100644
--- a/src/test/bench/shootout-spectralnorm.rs
+++ b/src/test/bench/shootout-spectralnorm.rs
@@ -41,7 +41,7 @@
 // no-pretty-expanded FIXME #15189
 
 #![allow(non_snake_case)]
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core, os)]
 
 use std::iter::{repeat, AdditiveIterator};
 use std::thread;
diff --git a/src/test/bench/std-smallintmap.rs b/src/test/bench/std-smallintmap.rs
index a54a869412e..dd56b18c144 100644
--- a/src/test/bench/std-smallintmap.rs
+++ b/src/test/bench/std-smallintmap.rs
@@ -10,6 +10,8 @@
 
 // Microbenchmark for the smallintmap library
 
+#![feature(collections, std_misc)]
+
 use std::collections::VecMap;
 use std::env;
 use std::time::Duration;
diff --git a/src/test/bench/sudoku.rs b/src/test/bench/sudoku.rs
index 9a82614510e..3913de3a3f9 100644
--- a/src/test/bench/sudoku.rs
+++ b/src/test/bench/sudoku.rs
@@ -10,7 +10,7 @@
 
 // ignore-pretty very bad with line comments
 
-#![feature(box_syntax)]
+#![feature(box_syntax, core)]
 #![allow(non_snake_case)]
 
 use std::io::prelude::*;
diff --git a/src/test/bench/task-perf-alloc-unwind.rs b/src/test/bench/task-perf-alloc-unwind.rs
index 896b0ee57a0..d8f4603ab1a 100644
--- a/src/test/bench/task-perf-alloc-unwind.rs
+++ b/src/test/bench/task-perf-alloc-unwind.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(unsafe_destructor, box_syntax)]
+#![feature(unsafe_destructor, box_syntax, std_misc, collections)]
 
 use std::env;
 use std::thread;
diff --git a/src/test/compile-fail/internal-unstable-noallow.rs b/src/test/compile-fail/internal-unstable-noallow.rs
index 4e296198be8..2b48d47e940 100644
--- a/src/test/compile-fail/internal-unstable-noallow.rs
+++ b/src/test/compile-fail/internal-unstable-noallow.rs
@@ -16,13 +16,10 @@
 // aux-build:internal_unstable.rs
 // error-pattern:use of unstable library feature 'function'
 // error-pattern:use of unstable library feature 'struct_field'
-// error-pattern:compilation successful
-#![feature(rustc_attrs)]
 
 #[macro_use]
 extern crate internal_unstable;
 
-#[rustc_error]
 fn main() {
     call_unstable_noallow!();
 
diff --git a/src/test/compile-fail/internal-unstable-thread-local.rs b/src/test/compile-fail/internal-unstable-thread-local.rs
index ff158497546..74526fb3d83 100644
--- a/src/test/compile-fail/internal-unstable-thread-local.rs
+++ b/src/test/compile-fail/internal-unstable-thread-local.rs
@@ -10,14 +10,12 @@
 
 // aux-build:internal_unstable.rs
 
-#![feature(rustc_attrs)]
 #![allow(dead_code)]
 
 extern crate internal_unstable;
 
 
 thread_local!(static FOO: () = ());
-thread_local!(static BAR: () = internal_unstable::unstable()); //~ WARN use of unstable
+thread_local!(static BAR: () = internal_unstable::unstable()); //~ ERROR use of unstable
 
-#[rustc_error]
-fn main() {} //~ ERROR
+fn main() {}
diff --git a/src/test/compile-fail/internal-unstable.rs b/src/test/compile-fail/internal-unstable.rs
index 8674e8ab5b2..accc898b8a8 100755
--- a/src/test/compile-fail/internal-unstable.rs
+++ b/src/test/compile-fail/internal-unstable.rs
@@ -10,7 +10,7 @@
 
 // aux-build:internal_unstable.rs
 
-#![feature(rustc_attrs, allow_internal_unstable)]
+#![feature(allow_internal_unstable)]
 
 #[macro_use]
 extern crate internal_unstable;
@@ -19,7 +19,7 @@ macro_rules! foo {
     ($e: expr, $f: expr) => {{
         $e;
         $f;
-        internal_unstable::unstable(); //~ WARN use of unstable
+        internal_unstable::unstable(); //~ ERROR use of unstable
     }}
 }
 
@@ -32,20 +32,19 @@ macro_rules! bar {
     }}
 }
 
-#[rustc_error]
-fn main() { //~ ERROR
+fn main() {
     // ok, the instability is contained.
     call_unstable_allow!();
     construct_unstable_allow!(0);
 
     // bad.
-    pass_through_allow!(internal_unstable::unstable()); //~ WARN use of unstable
+    pass_through_allow!(internal_unstable::unstable()); //~ ERROR use of unstable
 
-    pass_through_noallow!(internal_unstable::unstable()); //~ WARN use of unstable
+    pass_through_noallow!(internal_unstable::unstable()); //~ ERROR use of unstable
 
 
 
-    println!("{:?}", internal_unstable::unstable()); //~ WARN use of unstable
+    println!("{:?}", internal_unstable::unstable()); //~ ERROR use of unstable
 
-    bar!(internal_unstable::unstable()); //~ WARN use of unstable
+    bar!(internal_unstable::unstable()); //~ ERROR use of unstable
 }
diff --git a/src/test/compile-fail/lint-output-format.rs b/src/test/compile-fail/lint-output-format.rs
index ec4e3c774db..d95ed7f10bd 100644
--- a/src/test/compile-fail/lint-output-format.rs
+++ b/src/test/compile-fail/lint-output-format.rs
@@ -13,10 +13,10 @@
 
 #![feature(foo)] //~ ERROR unused or unknown feature
 
-extern crate lint_output_format; //~ WARNING: use of unstable library feature
+extern crate lint_output_format; //~ ERROR use of unstable library feature
 use lint_output_format::{foo, bar};
 
 fn main() {
     let _x = foo(); //~ WARNING #[warn(deprecated)] on by default
-    let _y = bar(); //~ WARNING: use of unstable library feature
+    let _y = bar(); //~ ERROR use of unstable library feature
 }
diff --git a/src/test/compile-fail/lint-stability-fields.rs b/src/test/compile-fail/lint-stability-fields.rs
index c43ff198925..716d7674b2d 100644
--- a/src/test/compile-fail/lint-stability-fields.rs
+++ b/src/test/compile-fail/lint-stability-fields.rs
@@ -22,24 +22,24 @@ mod cross_crate {
     pub fn foo() {
         let x = Stable {
             inherit: 1,
-            override1: 2, //~ WARN use of unstable
+            override1: 2, //~ ERROR use of unstable
             override2: 3,
             //~^ ERROR use of deprecated item
-            //~^^ WARN use of unstable
+            //~^^ ERROR use of unstable
         };
 
         let _ = x.inherit;
-        let _ = x.override1; //~ WARN use of unstable
+        let _ = x.override1; //~ ERROR use of unstable
         let _ = x.override2;
         //~^ ERROR use of deprecated item
-        //~^^ WARN use of unstable
+        //~^^ ERROR use of unstable
 
         let Stable {
             inherit: _,
-            override1: _, //~ WARN use of unstable
+            override1: _, //~ ERROR use of unstable
             override2: _
             //~^ ERROR use of deprecated item
-            //~^^ WARN use of unstable
+            //~^^ ERROR use of unstable
         } = x;
         // all fine
         let Stable { .. } = x;
@@ -47,122 +47,122 @@ mod cross_crate {
         let x = Stable2(1, 2, 3);
 
         let _ = x.0;
-        let _ = x.1; //~ WARN use of unstable
+        let _ = x.1; //~ ERROR use of unstable
         let _ = x.2;
         //~^ ERROR use of deprecated item
-        //~^^ WARN use of unstable
+        //~^^ ERROR use of unstable
 
         let Stable2(_,
-                   _, //~ WARN use of unstable
+                   _, //~ ERROR use of unstable
                    _)
             //~^ ERROR use of deprecated item
-            //~^^ WARN use of unstable
+            //~^^ ERROR use of unstable
             = x;
         // all fine
         let Stable2(..) = x;
 
 
-        let x = Unstable { //~ WARN use of unstable
-            inherit: 1, //~ WARN use of unstable
+        let x = Unstable { //~ ERROR use of unstable
+            inherit: 1, //~ ERROR use of unstable
             override1: 2,
             override2: 3,
             //~^ ERROR use of deprecated item
-            //~^^ WARN use of unstable
+            //~^^ ERROR use of unstable
         };
 
-        let _ = x.inherit; //~ WARN use of unstable
+        let _ = x.inherit; //~ ERROR use of unstable
         let _ = x.override1;
         let _ = x.override2;
         //~^ ERROR use of deprecated item
-        //~^^ WARN use of unstable
+        //~^^ ERROR use of unstable
 
-        let Unstable { //~ WARN use of unstable
-            inherit: _, //~ WARN use of unstable
+        let Unstable { //~ ERROR use of unstable
+            inherit: _, //~ ERROR use of unstable
             override1: _,
             override2: _
             //~^ ERROR use of deprecated item
-            //~^^ WARN use of unstable
+            //~^^ ERROR use of unstable
         } = x;
 
-        let Unstable  //~ WARN use of unstable
+        let Unstable  //~ ERROR use of unstable
             // the patterns are all fine:
             { .. } = x;
 
 
-        let x = Unstable2(1, 2, 3); //~ WARN use of unstable
+        let x = Unstable2(1, 2, 3); //~ ERROR use of unstable
 
-        let _ = x.0; //~ WARN use of unstable
+        let _ = x.0; //~ ERROR use of unstable
         let _ = x.1;
         let _ = x.2;
         //~^ ERROR use of deprecated item
-        //~^^ WARN use of unstable
+        //~^^ ERROR use of unstable
 
-        let Unstable2  //~ WARN use of unstable
-            (_, //~ WARN use of unstable
+        let Unstable2  //~ ERROR use of unstable
+            (_, //~ ERROR use of unstable
              _,
              _)
             //~^ ERROR use of deprecated item
-            //~^^ WARN use of unstable
+            //~^^ ERROR use of unstable
             = x;
-        let Unstable2 //~ WARN use of unstable
+        let Unstable2 //~ ERROR use of unstable
             // the patterns are all fine:
             (..) = x;
 
 
         let x = Deprecated {
             //~^ ERROR use of deprecated item
-            //~^^ WARN use of unstable
+            //~^^ ERROR use of unstable
             inherit: 1,
             //~^ ERROR use of deprecated item
-            //~^^ WARN use of unstable
+            //~^^ ERROR use of unstable
             override1: 2,
-            override2: 3, //~ WARN use of unstable
+            override2: 3, //~ ERROR use of unstable
         };
 
         let _ = x.inherit;
         //~^ ERROR use of deprecated item
-        //~^^ WARN use of unstable
+        //~^^ ERROR use of unstable
         let _ = x.override1;
-        let _ = x.override2; //~ WARN use of unstable
+        let _ = x.override2; //~ ERROR use of unstable
 
         let Deprecated {
             //~^ ERROR use of deprecated item
-            //~^^ WARN use of unstable
+            //~^^ ERROR use of unstable
             inherit: _,
             //~^ ERROR use of deprecated item
-            //~^^ WARN use of unstable
+            //~^^ ERROR use of unstable
             override1: _,
-            override2: _ //~ WARN use of unstable
+            override2: _ //~ ERROR use of unstable
         } = x;
 
         let Deprecated
             //~^ ERROR use of deprecated item
-            //~^^ WARN use of unstable
+            //~^^ ERROR use of unstable
             // the patterns are all fine:
             { .. } = x;
 
         let x = Deprecated2(1, 2, 3);
         //~^ ERROR use of deprecated item
-        //~^^ WARN use of unstable
+        //~^^ ERROR use of unstable
 
         let _ = x.0;
         //~^ ERROR use of deprecated item
-        //~^^ WARN use of unstable
+        //~^^ ERROR use of unstable
         let _ = x.1;
-        let _ = x.2; //~ WARN use of unstable
+        let _ = x.2; //~ ERROR use of unstable
 
         let Deprecated2
         //~^ ERROR use of deprecated item
-        //~^^ WARN use of unstable
+        //~^^ ERROR use of unstable
             (_,
              //~^ ERROR use of deprecated item
-             //~^^ WARN use of unstable
+             //~^^ ERROR use of unstable
              _,
-             _) //~ WARN use of unstable
+             _) //~ ERROR use of unstable
             = x;
         let Deprecated2
         //~^ ERROR use of deprecated item
-        //~^^ WARN use of unstable
+        //~^^ ERROR use of unstable
             // the patterns are all fine:
             (..) = x;
     }
diff --git a/src/test/compile-fail/lint-stability.rs b/src/test/compile-fail/lint-stability.rs
index 12548c45396..391b49e1068 100644
--- a/src/test/compile-fail/lint-stability.rs
+++ b/src/test/compile-fail/lint-stability.rs
@@ -24,7 +24,7 @@ extern crate lint_stability;
 
 mod cross_crate {
     extern crate stability_cfg1;
-    extern crate stability_cfg2; //~ WARNING: use of unstable library feature
+    extern crate stability_cfg2; //~ ERROR use of unstable library feature
 
     use lint_stability::*;
 
@@ -51,64 +51,64 @@ mod cross_crate {
         <Foo as Trait>::trait_deprecated_text(&foo); //~ ERROR use of deprecated item: text
 
         deprecated_unstable(); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         foo.method_deprecated_unstable(); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         Foo::method_deprecated_unstable(&foo); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         <Foo>::method_deprecated_unstable(&foo); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         foo.trait_deprecated_unstable(); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         Trait::trait_deprecated_unstable(&foo); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         <Foo>::trait_deprecated_unstable(&foo); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         <Foo as Trait>::trait_deprecated_unstable(&foo); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
 
         deprecated_unstable_text(); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         foo.method_deprecated_unstable_text(); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         Foo::method_deprecated_unstable_text(&foo); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         <Foo>::method_deprecated_unstable_text(&foo); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         foo.trait_deprecated_unstable_text(); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         Trait::trait_deprecated_unstable_text(&foo); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         <Foo>::trait_deprecated_unstable_text(&foo); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         <Foo as Trait>::trait_deprecated_unstable_text(&foo); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
 
-        unstable(); //~ WARNING use of unstable library feature
-        foo.method_unstable(); //~ WARNING use of unstable library feature
-        Foo::method_unstable(&foo); //~ WARNING use of unstable library feature
-        <Foo>::method_unstable(&foo); //~ WARNING use of unstable library feature
-        foo.trait_unstable(); //~ WARNING use of unstable library feature
-        Trait::trait_unstable(&foo); //~ WARNING use of unstable library feature
-        <Foo>::trait_unstable(&foo); //~ WARNING use of unstable library feature
-        <Foo as Trait>::trait_unstable(&foo); //~ WARNING use of unstable library feature
+        unstable(); //~ ERROR use of unstable library feature
+        foo.method_unstable(); //~ ERROR use of unstable library feature
+        Foo::method_unstable(&foo); //~ ERROR use of unstable library feature
+        <Foo>::method_unstable(&foo); //~ ERROR use of unstable library feature
+        foo.trait_unstable(); //~ ERROR use of unstable library feature
+        Trait::trait_unstable(&foo); //~ ERROR use of unstable library feature
+        <Foo>::trait_unstable(&foo); //~ ERROR use of unstable library feature
+        <Foo as Trait>::trait_unstable(&foo); //~ ERROR use of unstable library feature
 
         unstable_text();
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
         foo.method_unstable_text();
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
         Foo::method_unstable_text(&foo);
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
         <Foo>::method_unstable_text(&foo);
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
         foo.trait_unstable_text();
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
         Trait::trait_unstable_text(&foo);
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
         <Foo>::trait_unstable_text(&foo);
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
         <Foo as Trait>::trait_unstable_text(&foo);
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
 
         stable();
         foo.method_stable();
@@ -130,26 +130,26 @@ mod cross_crate {
 
         let _ = DeprecatedStruct { i: 0 }; //~ ERROR use of deprecated item
         let _ = DeprecatedUnstableStruct { i: 0 }; //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
-        let _ = UnstableStruct { i: 0 }; //~ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
+        let _ = UnstableStruct { i: 0 }; //~ ERROR use of unstable library feature
         let _ = StableStruct { i: 0 };
 
         let _ = DeprecatedUnitStruct; //~ ERROR use of deprecated item
         let _ = DeprecatedUnstableUnitStruct; //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
-        let _ = UnstableUnitStruct; //~ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
+        let _ = UnstableUnitStruct; //~ ERROR use of unstable library feature
         let _ = StableUnitStruct;
 
         let _ = Enum::DeprecatedVariant; //~ ERROR use of deprecated item
         let _ = Enum::DeprecatedUnstableVariant; //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
-        let _ = Enum::UnstableVariant; //~ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
+        let _ = Enum::UnstableVariant; //~ ERROR use of unstable library feature
         let _ = Enum::StableVariant;
 
         let _ = DeprecatedTupleStruct (1); //~ ERROR use of deprecated item
         let _ = DeprecatedUnstableTupleStruct (1); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
-        let _ = UnstableTupleStruct (1); //~ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
+        let _ = UnstableTupleStruct (1); //~ ERROR use of unstable library feature
         let _ = StableTupleStruct (1);
 
         // At the moment, the lint checker only checks stability in
@@ -159,7 +159,7 @@ mod cross_crate {
         // on macros themselves are not yet linted.
         macro_test_arg!(deprecated_text()); //~ ERROR use of deprecated item: text
         macro_test_arg!(deprecated_unstable_text()); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         macro_test_arg!(macro_test_arg!(deprecated_text())); //~ ERROR use of deprecated item: text
     }
 
@@ -173,33 +173,33 @@ mod cross_crate {
         <Foo>::trait_deprecated_text(&foo); //~ ERROR use of deprecated item: text
         <Foo as Trait>::trait_deprecated_text(&foo); //~ ERROR use of deprecated item: text
         foo.trait_deprecated_unstable(); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         Trait::trait_deprecated_unstable(&foo); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         <Foo>::trait_deprecated_unstable(&foo); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         <Foo as Trait>::trait_deprecated_unstable(&foo); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         foo.trait_deprecated_unstable_text(); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         Trait::trait_deprecated_unstable_text(&foo); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         <Foo>::trait_deprecated_unstable_text(&foo); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         <Foo as Trait>::trait_deprecated_unstable_text(&foo); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
-        foo.trait_unstable(); //~ WARNING use of unstable library feature
-        Trait::trait_unstable(&foo); //~ WARNING use of unstable library feature
-        <Foo>::trait_unstable(&foo); //~ WARNING use of unstable library feature
-        <Foo as Trait>::trait_unstable(&foo); //~ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
+        foo.trait_unstable(); //~ ERROR use of unstable library feature
+        Trait::trait_unstable(&foo); //~ ERROR use of unstable library feature
+        <Foo>::trait_unstable(&foo); //~ ERROR use of unstable library feature
+        <Foo as Trait>::trait_unstable(&foo); //~ ERROR use of unstable library feature
         foo.trait_unstable_text();
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
         Trait::trait_unstable_text(&foo);
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
         <Foo>::trait_unstable_text(&foo);
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
         <Foo as Trait>::trait_unstable_text(&foo);
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
         foo.trait_stable();
         Trait::trait_stable(&foo);
         <Foo>::trait_stable(&foo);
@@ -210,46 +210,46 @@ mod cross_crate {
         foo.trait_deprecated(); //~ ERROR use of deprecated item
         foo.trait_deprecated_text(); //~ ERROR use of deprecated item: text
         foo.trait_deprecated_unstable(); //~ ERROR use of deprecated item
-        //~^ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
         foo.trait_deprecated_unstable_text(); //~ ERROR use of deprecated item: text
-        //~^ WARNING use of unstable library feature
-        foo.trait_unstable(); //~ WARNING use of unstable library feature
+        //~^ ERROR use of unstable library feature
+        foo.trait_unstable(); //~ ERROR use of unstable library feature
         foo.trait_unstable_text();
-        //~^ WARNING use of unstable library feature 'test_feature': text
+        //~^ ERROR use of unstable library feature 'test_feature': text
         foo.trait_stable();
     }
 
     struct S;
 
-    impl UnstableTrait for S { } //~ WARNING use of unstable library feature
+    impl UnstableTrait for S { } //~ ERROR use of unstable library feature
 
-    trait LocalTrait : UnstableTrait { } //~ WARNING use of unstable library feature
+    trait LocalTrait : UnstableTrait { } //~ ERROR use of unstable library feature
 
     impl Trait for S {
         fn trait_stable(&self) {}
-        fn trait_unstable(&self) {} //~ WARNING use of unstable library feature
+        fn trait_unstable(&self) {} //~ ERROR use of unstable library feature
     }
 }
 
 mod inheritance {
-    extern crate inherited_stability; //~ WARNING: use of unstable library feature
-    use self::inherited_stability::*; //~ WARNING: use of unstable library feature
+    extern crate inherited_stability; //~ ERROR use of unstable library feature
+    use self::inherited_stability::*; //~ ERROR use of unstable library feature
 
     fn test_inheritance() {
-        unstable(); //~ WARNING use of unstable library feature
+        unstable(); //~ ERROR use of unstable library feature
         stable();
 
-        stable_mod::unstable(); //~ WARNING use of unstable library feature
+        stable_mod::unstable(); //~ ERROR use of unstable library feature
         stable_mod::stable();
 
         unstable_mod::deprecated(); //~ ERROR use of deprecated item
-        unstable_mod::unstable(); //~ WARNING use of unstable library feature
+        unstable_mod::unstable(); //~ ERROR use of unstable library feature
 
-        let _ = Unstable::UnstableVariant; //~ WARNING use of unstable library feature
+        let _ = Unstable::UnstableVariant; //~ ERROR use of unstable library feature
         let _ = Unstable::StableVariant;
 
         let x: usize = 0;
-        x.unstable(); //~ WARNING use of unstable library feature
+        x.unstable(); //~ ERROR use of unstable library feature
         x.stable();
     }
 }
diff --git a/src/test/debuginfo/constant-debug-locs.rs b/src/test/debuginfo/constant-debug-locs.rs
index 24332e31775..f150e84b9fd 100644
--- a/src/test/debuginfo/constant-debug-locs.rs
+++ b/src/test/debuginfo/constant-debug-locs.rs
@@ -16,6 +16,7 @@
 #![allow(unused_variables)]
 #![allow(dead_code)]
 #![omit_gdb_pretty_printer_section]
+#![feature(std_misc, core)]
 
 // This test makes sure that the compiler doesn't crash when trying to assign
 // debug locations to const-expressions.
diff --git a/src/test/debuginfo/function-arg-initialization.rs b/src/test/debuginfo/function-arg-initialization.rs
index 7cefb6044f6..c161600f2c3 100644
--- a/src/test/debuginfo/function-arg-initialization.rs
+++ b/src/test/debuginfo/function-arg-initialization.rs
@@ -17,6 +17,8 @@
 
 // compile-flags:-g
 
+#![feature(old_io)]
+
 // === GDB TESTS ===================================================================================
 
 // gdb-command:run
diff --git a/src/test/debuginfo/function-prologue-stepping-no-stack-check.rs b/src/test/debuginfo/function-prologue-stepping-no-stack-check.rs
index 8d456f33432..99e31ab2302 100644
--- a/src/test/debuginfo/function-prologue-stepping-no-stack-check.rs
+++ b/src/test/debuginfo/function-prologue-stepping-no-stack-check.rs
@@ -20,6 +20,8 @@
 
 // compile-flags:-g
 
+#![feature(old_io)]
+
 // === GDB TESTS ===================================================================================
 
 // gdb-command:rbreak immediate_args
diff --git a/src/test/debuginfo/issue13213.rs b/src/test/debuginfo/issue13213.rs
index a079ddbd0f5..38b149ef243 100644
--- a/src/test/debuginfo/issue13213.rs
+++ b/src/test/debuginfo/issue13213.rs
@@ -11,6 +11,9 @@
 // min-lldb-version: 310
 
 // aux-build:issue13213aux.rs
+
+#![feature(old_io)]
+
 extern crate issue13213aux;
 
 // compile-flags:-g
diff --git a/src/test/debuginfo/simd.rs b/src/test/debuginfo/simd.rs
index 12c7b146342..16ae83ee8dc 100644
--- a/src/test/debuginfo/simd.rs
+++ b/src/test/debuginfo/simd.rs
@@ -42,6 +42,7 @@
 
 #![allow(unused_variables)]
 #![omit_gdb_pretty_printer_section]
+#![feature(core)]
 
 use std::simd::{i8x16, i16x8,i32x4,i64x2,u8x16,u16x8,u32x4,u64x2,f32x4,f64x2};
 
diff --git a/src/test/run-fail/extern-panic.rs b/src/test/run-fail/extern-panic.rs
index 127700e963a..bddab59e3e4 100644
--- a/src/test/run-fail/extern-panic.rs
+++ b/src/test/run-fail/extern-panic.rs
@@ -12,6 +12,7 @@
 // error-pattern:explicit failure
 // Testing that runtime failure doesn't cause callbacks to abort abnormally.
 // Instead the failure will be delivered after the callbacks return.
+#![feature(std_misc, libc)]
 
 extern crate libc;
 use std::task;
diff --git a/src/test/run-fail/rt-set-exit-status-panic.rs b/src/test/run-fail/rt-set-exit-status-panic.rs
index fd7c3f8cc0e..0e72ab22dc8 100644
--- a/src/test/run-fail/rt-set-exit-status-panic.rs
+++ b/src/test/run-fail/rt-set-exit-status-panic.rs
@@ -10,6 +10,8 @@
 
 // error-pattern:whatever
 
+#![feature(os, rustc_private)]
+
 #[macro_use] extern crate log;
 use std::os;
 
diff --git a/src/test/run-fail/rt-set-exit-status-panic2.rs b/src/test/run-fail/rt-set-exit-status-panic2.rs
index fb1e03c234d..2498b7c2be4 100644
--- a/src/test/run-fail/rt-set-exit-status-panic2.rs
+++ b/src/test/run-fail/rt-set-exit-status-panic2.rs
@@ -10,6 +10,8 @@
 
 // error-pattern:whatever
 
+#![feature(os, rustc_private)]
+
 #[macro_use] extern crate log;
 use std::os;
 use std::thread;
diff --git a/src/test/run-fail/rt-set-exit-status.rs b/src/test/run-fail/rt-set-exit-status.rs
index 39ece8a464a..9425a1b1902 100644
--- a/src/test/run-fail/rt-set-exit-status.rs
+++ b/src/test/run-fail/rt-set-exit-status.rs
@@ -10,6 +10,8 @@
 
 // error-pattern:whatever
 
+#![feature(rustc_private, os)]
+
 #[macro_use] extern crate log;
 use std::os;
 
diff --git a/src/test/run-make/allow-warnings-cmdline-stability/foo.rs b/src/test/run-make/allow-warnings-cmdline-stability/foo.rs
index fb23a214016..a36cc474c2b 100644
--- a/src/test/run-make/allow-warnings-cmdline-stability/foo.rs
+++ b/src/test/run-make/allow-warnings-cmdline-stability/foo.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(test_feature)]
+
 extern crate bar;
 
 pub fn main() { bar::baz() }
diff --git a/src/test/run-make/cannot-read-embedded-idents/create_and_compile.rs b/src/test/run-make/cannot-read-embedded-idents/create_and_compile.rs
index fd69d2786b8..02af5244b8a 100644
--- a/src/test/run-make/cannot-read-embedded-idents/create_and_compile.rs
+++ b/src/test/run-make/cannot-read-embedded-idents/create_and_compile.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io, old_path)]
+
 use std::env;
 use std::fs::File;
 use std::process::Command;
diff --git a/src/test/run-make/extern-fn-reachable/main.rs b/src/test/run-make/extern-fn-reachable/main.rs
index 86eed9dbe0a..2e1fad5a044 100644
--- a/src/test/run-make/extern-fn-reachable/main.rs
+++ b/src/test/run-make/extern-fn-reachable/main.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc, old_path, os)]
+
 use std::dynamic_lib::DynamicLibrary;
 use std::os;
 use std::old_path::Path;
diff --git a/src/test/run-make/intrinsic-unreachable/exit-unreachable.rs b/src/test/run-make/intrinsic-unreachable/exit-unreachable.rs
index 835e068c15c..aec76fdf1b2 100644
--- a/src/test/run-make/intrinsic-unreachable/exit-unreachable.rs
+++ b/src/test/run-make/intrinsic-unreachable/exit-unreachable.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(asm)]
+#![feature(asm, core)]
 #![crate_type="lib"]
 
 use std::intrinsics;
diff --git a/src/test/run-make/issue-19371/foo.rs b/src/test/run-make/issue-19371/foo.rs
index 1ed816ed729..b089b9269a2 100644
--- a/src/test/run-make/issue-19371/foo.rs
+++ b/src/test/run-make/issue-19371/foo.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(rustc_private, path)]
+
 extern crate rustc;
 extern crate rustc_driver;
 extern crate rustc_lint;
diff --git a/src/test/run-make/link-path-order/main.rs b/src/test/run-make/link-path-order/main.rs
index cd286af602a..b1576ccd48e 100644
--- a/src/test/run-make/link-path-order/main.rs
+++ b/src/test/run-make/link-path-order/main.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc, os)]
+
 extern crate libc;
 
 #[link(name="foo")]
diff --git a/src/test/run-make/lto-syntax-extension/main.rs b/src/test/run-make/lto-syntax-extension/main.rs
index a38b2cfb962..c9395f557fd 100644
--- a/src/test/run-make/lto-syntax-extension/main.rs
+++ b/src/test/run-make/lto-syntax-extension/main.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(rustc_private)]
+
 extern crate lib;
 #[macro_use] extern crate log;
 
diff --git a/src/test/run-make/no-duplicate-libs/bar.rs b/src/test/run-make/no-duplicate-libs/bar.rs
index 0bec6148189..29f52f97a88 100644
--- a/src/test/run-make/no-duplicate-libs/bar.rs
+++ b/src/test/run-make/no-duplicate-libs/bar.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)]
+#![feature(lang_items, no_std, libc)]
 #![no_std]
 #![crate_type = "dylib"]
 
diff --git a/src/test/run-make/no-duplicate-libs/foo.rs b/src/test/run-make/no-duplicate-libs/foo.rs
index 9e8afdc5696..ae424c6569d 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)]
+#![feature(lang_items, no_std, libc)]
 #![no_std]
 #![crate_type = "dylib"]
 
diff --git a/src/test/run-make/rustdoc-default-impl/foo.rs b/src/test/run-make/rustdoc-default-impl/foo.rs
index 08f3bd10e74..c2531bf4586 100644
--- a/src/test/run-make/rustdoc-default-impl/foo.rs
+++ b/src/test/run-make/rustdoc-default-impl/foo.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 pub mod bar {
     use std::marker;
 
diff --git a/src/test/run-make/save-analysis/foo.rs b/src/test/run-make/save-analysis/foo.rs
index 2e2b8d2578e..74251c3c63e 100644
--- a/src/test/run-make/save-analysis/foo.rs
+++ b/src/test/run-make/save-analysis/foo.rs
@@ -10,7 +10,7 @@
 
 #![ crate_name = "test" ]
 #![allow(unstable)]
-#![feature(box_syntax)]
+#![feature(box_syntax, old_io, rustc_private, core)]
 
 extern crate graphviz;
 // A simple rust project
diff --git a/src/test/run-make/unicode-input/multiple_files.rs b/src/test/run-make/unicode-input/multiple_files.rs
index 1826e035e24..aa2ce785771 100644
--- a/src/test/run-make/unicode-input/multiple_files.rs
+++ b/src/test/run-make/unicode-input/multiple_files.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(rand)]
+
 use std::fs::File;
 use std::io::prelude::*;
 use std::path::Path;
diff --git a/src/test/run-make/unicode-input/span_length.rs b/src/test/run-make/unicode-input/span_length.rs
index 9ed20ccaea5..ebf3226334c 100644
--- a/src/test/run-make/unicode-input/span_length.rs
+++ b/src/test/run-make/unicode-input/span_length.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(rand, core)]
+
 use std::fs::File;
 use std::io::prelude::*;
 use std::iter::repeat;
diff --git a/src/test/run-make/volatile-intrinsics/main.rs b/src/test/run-make/volatile-intrinsics/main.rs
index 6dffb53e4a3..bdd557b6cc2 100644
--- a/src/test/run-make/volatile-intrinsics/main.rs
+++ b/src/test/run-make/volatile-intrinsics/main.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::intrinsics::{volatile_load, volatile_store};
 
 pub fn main() {
diff --git a/src/test/run-pass-fulldeps/compiler-calls.rs b/src/test/run-pass-fulldeps/compiler-calls.rs
index 8492424a145..7a3c32a45f9 100644
--- a/src/test/run-pass-fulldeps/compiler-calls.rs
+++ b/src/test/run-pass-fulldeps/compiler-calls.rs
@@ -12,7 +12,7 @@
 
 // ignore-android
 
-#![feature(rustc_private)]
+#![feature(rustc_private, path)]
 #![feature(core)]
 
 extern crate getopts;
diff --git a/src/test/run-pass-fulldeps/issue-16992.rs b/src/test/run-pass-fulldeps/issue-16992.rs
index 9e3ad8ee283..40947b2e256 100644
--- a/src/test/run-pass-fulldeps/issue-16992.rs
+++ b/src/test/run-pass-fulldeps/issue-16992.rs
@@ -11,7 +11,7 @@
 // ignore-pretty
 // ignore-android
 
-#![feature(quote)]
+#![feature(quote, rustc_private)]
 
 extern crate syntax;
 
diff --git a/src/test/run-pass-fulldeps/issue-18763-quote-token-tree.rs b/src/test/run-pass-fulldeps/issue-18763-quote-token-tree.rs
index aeb6a89a98e..d4dc5627044 100644
--- a/src/test/run-pass-fulldeps/issue-18763-quote-token-tree.rs
+++ b/src/test/run-pass-fulldeps/issue-18763-quote-token-tree.rs
@@ -11,7 +11,7 @@
 // ignore-android
 // ignore-pretty: does not work well with `--test`
 
-#![feature(quote)]
+#![feature(quote, rustc_private)]
 
 extern crate syntax;
 
diff --git a/src/test/run-pass-fulldeps/quote-tokens.rs b/src/test/run-pass-fulldeps/quote-tokens.rs
index 020f5f562d2..0e2e1f2dd86 100644
--- a/src/test/run-pass-fulldeps/quote-tokens.rs
+++ b/src/test/run-pass-fulldeps/quote-tokens.rs
@@ -11,7 +11,7 @@
 // ignore-android
 // ignore-pretty: does not work well with `--test`
 
-#![feature(quote)]
+#![feature(quote, rustc_private)]
 
 extern crate syntax;
 
diff --git a/src/test/run-pass-fulldeps/quote-unused-sp-no-warning.rs b/src/test/run-pass-fulldeps/quote-unused-sp-no-warning.rs
index 848ea738ed7..928368fabdf 100644
--- a/src/test/run-pass-fulldeps/quote-unused-sp-no-warning.rs
+++ b/src/test/run-pass-fulldeps/quote-unused-sp-no-warning.rs
@@ -11,7 +11,7 @@
 // ignore-android
 // ignore-pretty: does not work well with `--test`
 
-#![feature(quote)]
+#![feature(quote, rustc_private)]
 #![deny(unused_variable)]
 
 extern crate syntax;
diff --git a/src/test/run-pass-fulldeps/syntax-extension-with-dll-deps.rs b/src/test/run-pass-fulldeps/syntax-extension-with-dll-deps.rs
index b7570eb0926..23096828c4b 100644
--- a/src/test/run-pass-fulldeps/syntax-extension-with-dll-deps.rs
+++ b/src/test/run-pass-fulldeps/syntax-extension-with-dll-deps.rs
@@ -12,7 +12,7 @@
 // aux-build:syntax_extension_with_dll_deps_2.rs
 // ignore-stage1
 
-#![feature(plugin)]
+#![feature(plugin, rustc_private)]
 #![plugin(syntax_extension_with_dll_deps_2)]
 
 fn main() {
diff --git a/src/test/run-pass-valgrind/cleanup-stdin.rs b/src/test/run-pass-valgrind/cleanup-stdin.rs
index 127be1f90d5..301c4b91781 100644
--- a/src/test/run-pass-valgrind/cleanup-stdin.rs
+++ b/src/test/run-pass-valgrind/cleanup-stdin.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io, io)]
+
 fn main() {
     let _ = std::old_io::stdin();
     let _ = std::io::stdin();
diff --git a/src/test/run-pass/anon-extern-mod.rs b/src/test/run-pass/anon-extern-mod.rs
index 78e1cdabb47..cbef2850add 100644
--- a/src/test/run-pass/anon-extern-mod.rs
+++ b/src/test/run-pass/anon-extern-mod.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 extern crate libc;
 
 #[link(name = "rust_test_helpers")]
diff --git a/src/test/run-pass/associated-types-basic.rs b/src/test/run-pass/associated-types-basic.rs
index f5521f7da85..a5be906b159 100644
--- a/src/test/run-pass/associated-types-basic.rs
+++ b/src/test/run-pass/associated-types-basic.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::marker::MarkerTrait;
 
 trait Foo : MarkerTrait {
diff --git a/src/test/run-pass/associated-types-issue-20371.rs b/src/test/run-pass/associated-types-issue-20371.rs
index 40ef7f3531c..e1da26b5e29 100644
--- a/src/test/run-pass/associated-types-issue-20371.rs
+++ b/src/test/run-pass/associated-types-issue-20371.rs
@@ -11,6 +11,8 @@
 // Test that we are able to have an impl that defines an associated type
 // before the actual trait.
 
+#![feature(core)]
+
 use std::marker::MarkerTrait;
 
 impl X for f64 { type Y = int; }
diff --git a/src/test/run-pass/associated-types-nested-projections.rs b/src/test/run-pass/associated-types-nested-projections.rs
index 2ee8ef0d3dd..2f36014f765 100644
--- a/src/test/run-pass/associated-types-nested-projections.rs
+++ b/src/test/run-pass/associated-types-nested-projections.rs
@@ -10,6 +10,8 @@
 
 // Test that we can resolve nested projection types. Issue #20666.
 
+#![feature(core)]
+
 use std::marker::MarkerTrait;
 use std::slice;
 
diff --git a/src/test/run-pass/associated-types-normalize-in-bounds-binding.rs b/src/test/run-pass/associated-types-normalize-in-bounds-binding.rs
index de96af83f59..236601b9c16 100644
--- a/src/test/run-pass/associated-types-normalize-in-bounds-binding.rs
+++ b/src/test/run-pass/associated-types-normalize-in-bounds-binding.rs
@@ -11,6 +11,7 @@
 // Test that we normalize associated types that appear in a bound that
 // contains a binding. Issue #21664.
 
+#![feature(core)]
 #![allow(dead_code)]
 
 use std::marker::MarkerTrait;
diff --git a/src/test/run-pass/associated-types-project-from-type-param-via-bound-in-where-clause.rs b/src/test/run-pass/associated-types-project-from-type-param-via-bound-in-where-clause.rs
index 2243e00ffa1..7fa2030cfe1 100644
--- a/src/test/run-pass/associated-types-project-from-type-param-via-bound-in-where-clause.rs
+++ b/src/test/run-pass/associated-types-project-from-type-param-via-bound-in-where-clause.rs
@@ -12,6 +12,8 @@
 // `Item` originates in a where-clause, not the declaration of
 // `T`. Issue #20300.
 
+#![feature(core)]
+
 use std::marker::{MarkerTrait, PhantomData};
 use std::sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT};
 use std::sync::atomic::Ordering::SeqCst;
diff --git a/src/test/run-pass/attr-before-view-item.rs b/src/test/run-pass/attr-before-view-item.rs
index 951a716879f..f472a672be2 100644
--- a/src/test/run-pass/attr-before-view-item.rs
+++ b/src/test/run-pass/attr-before-view-item.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:expected item
 
-#![feature(custom_attribute)]
+#![feature(custom_attribute, test)]
 
 #[foo = "bar"]
 extern crate test;
diff --git a/src/test/run-pass/attr-before-view-item2.rs b/src/test/run-pass/attr-before-view-item2.rs
index ad8ce608bd0..5d91d0a41cf 100644
--- a/src/test/run-pass/attr-before-view-item2.rs
+++ b/src/test/run-pass/attr-before-view-item2.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:expected item
 
-#![feature(custom_attribute)]
+#![feature(custom_attribute, test)]
 
 mod m {
     #[foo = "bar"]
diff --git a/src/test/run-pass/backtrace.rs b/src/test/run-pass/backtrace.rs
index 879b3e920ab..226a7c12df9 100644
--- a/src/test/run-pass/backtrace.rs
+++ b/src/test/run-pass/backtrace.rs
@@ -12,7 +12,7 @@
 // ignore-windows FIXME #13259
 
 #![feature(unboxed_closures)]
-#![feature(unsafe_destructor)]
+#![feature(unsafe_destructor, old_io, collections)]
 
 use std::env;
 use std::old_io::process::Command;
diff --git a/src/test/run-pass/bitv-perf-test.rs b/src/test/run-pass/bitv-perf-test.rs
index e6982949501..6c88f350172 100644
--- a/src/test/run-pass/bitv-perf-test.rs
+++ b/src/test/run-pass/bitv-perf-test.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, collections)]
 
 extern crate collections;
 use std::collections::BitVec;
diff --git a/src/test/run-pass/c-stack-as-value.rs b/src/test/run-pass/c-stack-as-value.rs
index 6a1dde24d68..b81764e1de5 100644
--- a/src/test/run-pass/c-stack-as-value.rs
+++ b/src/test/run-pass/c-stack-as-value.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 mod rustrt {
     extern crate libc;
 
diff --git a/src/test/run-pass/c-stack-returning-int64.rs b/src/test/run-pass/c-stack-returning-int64.rs
index 1de7520d2b1..eceaa54b740 100644
--- a/src/test/run-pass/c-stack-returning-int64.rs
+++ b/src/test/run-pass/c-stack-returning-int64.rs
@@ -9,6 +9,8 @@
 // except according to those terms.
 
 
+#![feature(libc, std_misc)]
+
 extern crate libc;
 
 use std::ffi::CString;
diff --git a/src/test/run-pass/capturing-logging.rs b/src/test/run-pass/capturing-logging.rs
index be5bb628b72..2a5ccb88aff 100644
--- a/src/test/run-pass/capturing-logging.rs
+++ b/src/test/run-pass/capturing-logging.rs
@@ -11,7 +11,7 @@
 // exec-env:RUST_LOG=info
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, old_io, rustc_private, std_misc)]
 
 #[macro_use]
 extern crate log;
diff --git a/src/test/run-pass/check-static-recursion-foreign.rs b/src/test/run-pass/check-static-recursion-foreign.rs
index 4e05c263a48..ebaa1b55959 100644
--- a/src/test/run-pass/check-static-recursion-foreign.rs
+++ b/src/test/run-pass/check-static-recursion-foreign.rs
@@ -12,7 +12,7 @@
 
 // aux-build:check_static_recursion_foreign_helper.rs
 
-#![feature(custom_attribute)]
+#![feature(custom_attribute, libc)]
 
 extern crate check_static_recursion_foreign_helper;
 extern crate libc;
diff --git a/src/test/run-pass/child-outlives-parent.rs b/src/test/run-pass/child-outlives-parent.rs
index 39af96a58e6..7a8b4770f95 100644
--- a/src/test/run-pass/child-outlives-parent.rs
+++ b/src/test/run-pass/child-outlives-parent.rs
@@ -10,6 +10,8 @@
 
 // Reported as issue #126, child leaks the string.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 
 fn child2(_s: String) { }
diff --git a/src/test/run-pass/cleanup-arm-conditional.rs b/src/test/run-pass/cleanup-arm-conditional.rs
index cb152f1c64e..66204ec9494 100644
--- a/src/test/run-pass/cleanup-arm-conditional.rs
+++ b/src/test/run-pass/cleanup-arm-conditional.rs
@@ -22,7 +22,7 @@
 // arm is confined to the match arm itself.
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, os)]
 
 use std::os;
 
diff --git a/src/test/run-pass/clone-with-exterior.rs b/src/test/run-pass/clone-with-exterior.rs
index 5cc567cb14c..2c65dc7e2ac 100644
--- a/src/test/run-pass/clone-with-exterior.rs
+++ b/src/test/run-pass/clone-with-exterior.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, std_misc)]
 
 use std::thread::Thread;
 
diff --git a/src/test/run-pass/closure-reform.rs b/src/test/run-pass/closure-reform.rs
index af64553b913..fefab45714f 100644
--- a/src/test/run-pass/closure-reform.rs
+++ b/src/test/run-pass/closure-reform.rs
@@ -11,7 +11,7 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, old_io)]
 
 use std::mem;
 use std::old_io::stdio::println;
diff --git a/src/test/run-pass/comm.rs b/src/test/run-pass/comm.rs
index 16a21adc3fc..cf318c50cff 100644
--- a/src/test/run-pass/comm.rs
+++ b/src/test/run-pass/comm.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 use std::sync::mpsc::{channel, Sender};
 
diff --git a/src/test/run-pass/conditional-debug-macro-off.rs b/src/test/run-pass/conditional-debug-macro-off.rs
index 90142350772..1d1475d60d9 100644
--- a/src/test/run-pass/conditional-debug-macro-off.rs
+++ b/src/test/run-pass/conditional-debug-macro-off.rs
@@ -11,6 +11,8 @@
 // compile-flags: -C debug-assertions=no
 // exec-env:RUST_LOG=conditional-debug-macro-off=4
 
+#![feature(rustc_private)]
+
 #[macro_use]
 extern crate log;
 
diff --git a/src/test/run-pass/const-cast.rs b/src/test/run-pass/const-cast.rs
index b7e9c0338dd..1da88a6b2c4 100644
--- a/src/test/run-pass/const-cast.rs
+++ b/src/test/run-pass/const-cast.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 extern crate libc;
 
 struct TestStruct {
diff --git a/src/test/run-pass/core-run-destroy.rs b/src/test/run-pass/core-run-destroy.rs
index 88d5b74708e..a4413fa85d2 100644
--- a/src/test/run-pass/core-run-destroy.rs
+++ b/src/test/run-pass/core-run-destroy.rs
@@ -16,6 +16,7 @@
 // instead of in std.
 
 #![reexport_test_harness_main = "test_main"]
+#![feature(old_io, libc, std_misc)]
 
 extern crate libc;
 
diff --git a/src/test/run-pass/derive-no-std.rs b/src/test/run-pass/derive-no-std.rs
index d3034c2d485..4f48549d499 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)]
+#![feature(no_std, core, rand, collections, rustc_private)]
 #![no_std]
 
 extern crate core;
diff --git a/src/test/run-pass/deriving-encodable-decodable-box.rs b/src/test/run-pass/deriving-encodable-decodable-box.rs
index 454156b4c9e..aa03e23b95f 100644
--- a/src/test/run-pass/deriving-encodable-decodable-box.rs
+++ b/src/test/run-pass/deriving-encodable-decodable-box.rs
@@ -10,7 +10,7 @@
 
 #![allow(unknown_features)]
 #![feature(box_syntax)]
-#![feature(old_orphan_check)]
+#![feature(old_orphan_check, rustc_private)]
 
 extern crate serialize;
 
diff --git a/src/test/run-pass/deriving-encodable-decodable-cell-refcell.rs b/src/test/run-pass/deriving-encodable-decodable-cell-refcell.rs
index 7d581927c30..d4463207aa2 100644
--- a/src/test/run-pass/deriving-encodable-decodable-cell-refcell.rs
+++ b/src/test/run-pass/deriving-encodable-decodable-cell-refcell.rs
@@ -11,7 +11,7 @@
 // This briefly tests the capability of `Cell` and `RefCell` to implement the
 // `Encodable` and `Decodable` traits via `#[derive(Encodable, Decodable)]`
 
-#![feature(old_orphan_check)]
+#![feature(old_orphan_check, rustc_private)]
 
 extern crate serialize;
 
diff --git a/src/test/run-pass/deriving-global.rs b/src/test/run-pass/deriving-global.rs
index 6777cbdab96..842de6e4984 100644
--- a/src/test/run-pass/deriving-global.rs
+++ b/src/test/run-pass/deriving-global.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(old_orphan_check)]
+#![feature(old_orphan_check, rand, rustc_private)]
 
 extern crate serialize;
 extern crate rand;
diff --git a/src/test/run-pass/deriving-hash.rs b/src/test/run-pass/deriving-hash.rs
index 5fe7c8bb94b..03361fbfd95 100644
--- a/src/test/run-pass/deriving-hash.rs
+++ b/src/test/run-pass/deriving-hash.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(hash)]
+
 use std::hash::{Hash, SipHasher};
 
 #[derive(Hash)]
diff --git a/src/test/run-pass/deriving-primitive.rs b/src/test/run-pass/deriving-primitive.rs
index 6b365c348f7..4399d741cad 100644
--- a/src/test/run-pass/deriving-primitive.rs
+++ b/src/test/run-pass/deriving-primitive.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::num::FromPrimitive;
 use std::isize;
 
diff --git a/src/test/run-pass/deriving-rand.rs b/src/test/run-pass/deriving-rand.rs
index d6e5fedf182..71cae400602 100644
--- a/src/test/run-pass/deriving-rand.rs
+++ b/src/test/run-pass/deriving-rand.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(rand)]
+
 use std::rand;
 
 #[derive(Rand)]
diff --git a/src/test/run-pass/drop-with-type-ascription-1.rs b/src/test/run-pass/drop-with-type-ascription-1.rs
index 4f1fc91a53c..645548761e4 100644
--- a/src/test/run-pass/drop-with-type-ascription-1.rs
+++ b/src/test/run-pass/drop-with-type-ascription-1.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(str_words)]
+
 fn main() {
     let foo = "hello".to_string();
     let foo: Vec<&str> = foo.words().collect();
diff --git a/src/test/run-pass/drop-with-type-ascription-2.rs b/src/test/run-pass/drop-with-type-ascription-2.rs
index ec8de2a709e..c2edfc26105 100644
--- a/src/test/run-pass/drop-with-type-ascription-2.rs
+++ b/src/test/run-pass/drop-with-type-ascription-2.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 fn main() {
     let args = vec!("foobie", "asdf::asdf");
     let arr: Vec<&str> = args[1].split_str("::").collect();
diff --git a/src/test/run-pass/dropck_tarena_sound_drop.rs b/src/test/run-pass/dropck_tarena_sound_drop.rs
index ad71f725864..17aa1f04e5f 100644
--- a/src/test/run-pass/dropck_tarena_sound_drop.rs
+++ b/src/test/run-pass/dropck_tarena_sound_drop.rs
@@ -17,7 +17,7 @@
 // is force-fed a lifetime equal to that of the borrowed arena.
 
 #![allow(unstable)]
-#![feature(unsafe_destructor)]
+#![feature(unsafe_destructor, rustc_private)]
 
 extern crate arena;
 
diff --git a/src/test/run-pass/dst-index.rs b/src/test/run-pass/dst-index.rs
index 0c7ecfcefff..64083a063b2 100644
--- a/src/test/run-pass/dst-index.rs
+++ b/src/test/run-pass/dst-index.rs
@@ -11,6 +11,8 @@
 // Test that overloaded index expressions with DST result types
 // work and don't ICE.
 
+#![feature(core)]
+
 use std::ops::Index;
 use std::fmt::Debug;
 
diff --git a/src/test/run-pass/enum-null-pointer-opt.rs b/src/test/run-pass/enum-null-pointer-opt.rs
index 023376ce473..635c34ef85a 100644
--- a/src/test/run-pass/enum-null-pointer-opt.rs
+++ b/src/test/run-pass/enum-null-pointer-opt.rs
@@ -8,6 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
 
 extern crate core;
 
diff --git a/src/test/run-pass/env-home-dir.rs b/src/test/run-pass/env-home-dir.rs
index 5d68a25a14a..c41486f660c 100644
--- a/src/test/run-pass/env-home-dir.rs
+++ b/src/test/run-pass/env-home-dir.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(path)]
+
 use std::env::*;
 use std::path::PathBuf;
 
diff --git a/src/test/run-pass/exponential-notation.rs b/src/test/run-pass/exponential-notation.rs
index bfe22712de8..3f451ee8d51 100644
--- a/src/test/run-pass/exponential-notation.rs
+++ b/src/test/run-pass/exponential-notation.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::num::strconv::ExponentFormat::{ExpBin, ExpDec};
 use std::num::strconv::SignificantDigits::DigMax;
 use std::num::strconv::SignFormat::{SignAll, SignNeg};
diff --git a/src/test/run-pass/extern-call-deep.rs b/src/test/run-pass/extern-call-deep.rs
index 93a5752d004..2138b12fb12 100644
--- a/src/test/run-pass/extern-call-deep.rs
+++ b/src/test/run-pass/extern-call-deep.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 extern crate libc;
 
 mod rustrt {
diff --git a/src/test/run-pass/extern-call-deep2.rs b/src/test/run-pass/extern-call-deep2.rs
index 3c4c1da52ea..7bbed563a99 100644
--- a/src/test/run-pass/extern-call-deep2.rs
+++ b/src/test/run-pass/extern-call-deep2.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc, libc)]
+
 extern crate libc;
 use std::thread::Thread;
 
diff --git a/src/test/run-pass/extern-call-indirect.rs b/src/test/run-pass/extern-call-indirect.rs
index 52697d96b32..4f1abbeb5c7 100644
--- a/src/test/run-pass/extern-call-indirect.rs
+++ b/src/test/run-pass/extern-call-indirect.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 extern crate libc;
 
 mod rustrt {
diff --git a/src/test/run-pass/extern-call-scrub.rs b/src/test/run-pass/extern-call-scrub.rs
index 0dca7514dc5..069ecd92a56 100644
--- a/src/test/run-pass/extern-call-scrub.rs
+++ b/src/test/run-pass/extern-call-scrub.rs
@@ -12,6 +12,8 @@
 // make sure the stack pointers are maintained properly in both
 // directions
 
+#![feature(libc, std_misc)]
+
 extern crate libc;
 use std::thread::Thread;
 
diff --git a/src/test/run-pass/extern-crosscrate.rs b/src/test/run-pass/extern-crosscrate.rs
index 18e20332adc..7157d0658be 100644
--- a/src/test/run-pass/extern-crosscrate.rs
+++ b/src/test/run-pass/extern-crosscrate.rs
@@ -10,6 +10,8 @@
 
 //aux-build:extern-crosscrate-source.rs
 
+#![feature(libc)]
+
 extern crate externcallback;
 extern crate libc;
 
diff --git a/src/test/run-pass/extern-methods.rs b/src/test/run-pass/extern-methods.rs
index 8fe69e40024..aab409e77cf 100644
--- a/src/test/run-pass/extern-methods.rs
+++ b/src/test/run-pass/extern-methods.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::marker::MarkerTrait;
 
 trait A : MarkerTrait {
diff --git a/src/test/run-pass/extern-mod-syntax.rs b/src/test/run-pass/extern-mod-syntax.rs
index 4d4f5036fc1..37404ee7e69 100644
--- a/src/test/run-pass/extern-mod-syntax.rs
+++ b/src/test/run-pass/extern-mod-syntax.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 #![allow(unused_imports)]
+#![feature(rustc_private)]
 
 extern crate serialize;
 use serialize::json::Object;
diff --git a/src/test/run-pass/float-nan.rs b/src/test/run-pass/float-nan.rs
index 4d9f7d507f0..b52f025fcbb 100644
--- a/src/test/run-pass/float-nan.rs
+++ b/src/test/run-pass/float-nan.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::num::Float;
 
 pub fn main() {
diff --git a/src/test/run-pass/for-loop-no-std.rs b/src/test/run-pass/for-loop-no-std.rs
index 30c2aec33ad..31ed4919778 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)]
+#![feature(lang_items, start, no_std, core, collections)]
 #![no_std]
 
 extern crate "std" as other;
diff --git a/src/test/run-pass/foreach-external-iterators-hashmap-break-restart.rs b/src/test/run-pass/foreach-external-iterators-hashmap-break-restart.rs
index a4988bf016c..1a60f22d145 100644
--- a/src/test/run-pass/foreach-external-iterators-hashmap-break-restart.rs
+++ b/src/test/run-pass/foreach-external-iterators-hashmap-break-restart.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 extern crate collections;
 
 use std::collections::HashMap;
diff --git a/src/test/run-pass/foreach-external-iterators-hashmap.rs b/src/test/run-pass/foreach-external-iterators-hashmap.rs
index ed4328d94fe..79d2d400080 100644
--- a/src/test/run-pass/foreach-external-iterators-hashmap.rs
+++ b/src/test/run-pass/foreach-external-iterators-hashmap.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 extern crate collections;
 
 use std::collections::HashMap;
diff --git a/src/test/run-pass/foreign-call-no-runtime.rs b/src/test/run-pass/foreign-call-no-runtime.rs
index 9e05f38af7a..3c5abba902d 100644
--- a/src/test/run-pass/foreign-call-no-runtime.rs
+++ b/src/test/run-pass/foreign-call-no-runtime.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 // ignore-aarch64
+#![feature(libc)]
 
 extern crate libc;
 
diff --git a/src/test/run-pass/foreign-dupe.rs b/src/test/run-pass/foreign-dupe.rs
index 39c7d6dda0d..fe42b2a0558 100644
--- a/src/test/run-pass/foreign-dupe.rs
+++ b/src/test/run-pass/foreign-dupe.rs
@@ -10,6 +10,8 @@
 
 // calling pin_task and that's having weird side-effects.
 
+#![feature(libc)]
+
 mod rustrt1 {
     extern crate libc;
 
diff --git a/src/test/run-pass/foreign-fn-linkname.rs b/src/test/run-pass/foreign-fn-linkname.rs
index 172ece0c4bf..a274a191449 100644
--- a/src/test/run-pass/foreign-fn-linkname.rs
+++ b/src/test/run-pass/foreign-fn-linkname.rs
@@ -9,6 +9,8 @@
 // except according to those terms.
 
 
+#![feature(std_misc, libc)]
+
 extern crate libc;
 use std::ffi::CString;
 
diff --git a/src/test/run-pass/foreign-mod-unused-const.rs b/src/test/run-pass/foreign-mod-unused-const.rs
index 03023f03233..abf9f504b7d 100644
--- a/src/test/run-pass/foreign-mod-unused-const.rs
+++ b/src/test/run-pass/foreign-mod-unused-const.rs
@@ -9,6 +9,8 @@
 // except according to those terms.
 
 
+#![feature(libc)]
+
 extern crate libc;
 
 mod foo {
diff --git a/src/test/run-pass/foreign-no-abi.rs b/src/test/run-pass/foreign-no-abi.rs
index 2af02feb21d..9305945b918 100644
--- a/src/test/run-pass/foreign-no-abi.rs
+++ b/src/test/run-pass/foreign-no-abi.rs
@@ -10,6 +10,8 @@
 
 // ABI is cdecl by default
 
+#![feature(libc)]
+
 mod rustrt {
     extern crate libc;
 
diff --git a/src/test/run-pass/foreign2.rs b/src/test/run-pass/foreign2.rs
index 5ebc4effb37..749a5875b75 100644
--- a/src/test/run-pass/foreign2.rs
+++ b/src/test/run-pass/foreign2.rs
@@ -9,6 +9,8 @@
 // except according to those terms.
 
 
+#![feature(libc)]
+
 extern crate libc;
 
 mod bar {
diff --git a/src/test/run-pass/format-no-std.rs b/src/test/run-pass/format-no-std.rs
index a15a176c223..4df6ed843af 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)]
+#![feature(lang_items, start, no_std, core, collections)]
 #![no_std]
 
 extern crate "std" as other;
diff --git a/src/test/run-pass/fsu-moves-and-copies.rs b/src/test/run-pass/fsu-moves-and-copies.rs
index 0f8d7c24360..cdf147aae10 100644
--- a/src/test/run-pass/fsu-moves-and-copies.rs
+++ b/src/test/run-pass/fsu-moves-and-copies.rs
@@ -12,7 +12,7 @@
 // correctly and moves rather than copy when appropriate.
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, core)]
 
 use std::marker::NoCopy as NP;
 
diff --git a/src/test/run-pass/generic-extern-mangle.rs b/src/test/run-pass/generic-extern-mangle.rs
index 062ee507864..db5175f19cb 100644
--- a/src/test/run-pass/generic-extern-mangle.rs
+++ b/src/test/run-pass/generic-extern-mangle.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::num::Int;
 
 extern "C" fn foo<T: WrappingOps>(a: T, b: T) -> T { a.wrapping_add(b) }
diff --git a/src/test/run-pass/getopts_ref.rs b/src/test/run-pass/getopts_ref.rs
index 3c89900fe49..1ccd8a0640e 100644
--- a/src/test/run-pass/getopts_ref.rs
+++ b/src/test/run-pass/getopts_ref.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(rustc_private)]
+
 extern crate getopts;
 
 use getopts::{optopt, getopts};
diff --git a/src/test/run-pass/hashmap-memory.rs b/src/test/run-pass/hashmap-memory.rs
index 81c4054d009..93ff1820734 100644
--- a/src/test/run-pass/hashmap-memory.rs
+++ b/src/test/run-pass/hashmap-memory.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 #![allow(unknown_features)]
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, std_misc)]
 
 /**
    A somewhat reduced test case to expose some Valgrind issues.
diff --git a/src/test/run-pass/init-large-type.rs b/src/test/run-pass/init-large-type.rs
index 8ee6054f8ba..76927858ea1 100644
--- a/src/test/run-pass/init-large-type.rs
+++ b/src/test/run-pass/init-large-type.rs
@@ -12,7 +12,7 @@
 // Doing it incorrectly causes massive slowdown in LLVM during
 // optimisation.
 
-#![feature(intrinsics)]
+#![feature(intrinsics, std_misc)]
 
 use std::thread::Thread;
 
diff --git a/src/test/run-pass/into-iterator-type-inference-shift.rs b/src/test/run-pass/into-iterator-type-inference-shift.rs
index 01e305581f1..a9aa5955d3d 100644
--- a/src/test/run-pass/into-iterator-type-inference-shift.rs
+++ b/src/test/run-pass/into-iterator-type-inference-shift.rs
@@ -13,6 +13,8 @@
 // propagation yet, and so we just saw a type variable, yielding an
 // error.
 
+#![feature(core)]
+
 use std::u8;
 
 trait IntoIterator {
diff --git a/src/test/run-pass/intrinsic-assume.rs b/src/test/run-pass/intrinsic-assume.rs
index 837c2d21513..638b2e434a5 100644
--- a/src/test/run-pass/intrinsic-assume.rs
+++ b/src/test/run-pass/intrinsic-assume.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::intrinsics::assume;
 
 unsafe fn f(x: i32) -> i32 {
diff --git a/src/test/run-pass/intrinsic-unreachable.rs b/src/test/run-pass/intrinsic-unreachable.rs
index 5e8b758cdf6..ea9648a3e69 100644
--- a/src/test/run-pass/intrinsic-unreachable.rs
+++ b/src/test/run-pass/intrinsic-unreachable.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::intrinsics;
 
 // See also src/test/run-make/intrinsic-unreachable.
diff --git a/src/test/run-pass/intrinsics-math.rs b/src/test/run-pass/intrinsics-math.rs
index 028b2bfb0ec..4ca6b025803 100644
--- a/src/test/run-pass/intrinsics-math.rs
+++ b/src/test/run-pass/intrinsics-math.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(intrinsics)]
+#![feature(intrinsics, core)]
 
 macro_rules! assert_approx_eq {
     ($a:expr, $b:expr) => ({
diff --git a/src/test/run-pass/issue-10626.rs b/src/test/run-pass/issue-10626.rs
index 29e4801d0a9..2c0811b69e0 100644
--- a/src/test/run-pass/issue-10626.rs
+++ b/src/test/run-pass/issue-10626.rs
@@ -12,6 +12,8 @@
 // Make sure that if a process doesn't have its stdio/stderr descriptors set up
 // that we don't die in a large ball of fire
 
+#![feature(old_io)]
+
 use std::env;
 use std::old_io::process;
 
diff --git a/src/test/run-pass/issue-11709.rs b/src/test/run-pass/issue-11709.rs
index 4a07b5fc432..da3efb4fea8 100644
--- a/src/test/run-pass/issue-11709.rs
+++ b/src/test/run-pass/issue-11709.rs
@@ -15,6 +15,8 @@
 // when this bug was opened. The cases where the compiler
 // panics before the fix have a comment.
 
+#![feature(std_misc)]
+
 use std::thunk::Thunk;
 
 struct S {x:()}
diff --git a/src/test/run-pass/issue-11736.rs b/src/test/run-pass/issue-11736.rs
index c6e0a5be763..87d5bf8ed0a 100644
--- a/src/test/run-pass/issue-11736.rs
+++ b/src/test/run-pass/issue-11736.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 extern crate collections;
 
 use std::collections::BitVec;
diff --git a/src/test/run-pass/issue-11881.rs b/src/test/run-pass/issue-11881.rs
index bc907787c7c..15c65259107 100644
--- a/src/test/run-pass/issue-11881.rs
+++ b/src/test/run-pass/issue-11881.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(old_orphan_check)]
+#![feature(old_orphan_check, rustc_private, old_io)]
 
 extern crate rbml;
 extern crate serialize;
diff --git a/src/test/run-pass/issue-11958.rs b/src/test/run-pass/issue-11958.rs
index bb34dae77b3..f3c6da7cfe4 100644
--- a/src/test/run-pass/issue-11958.rs
+++ b/src/test/run-pass/issue-11958.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 #![forbid(warnings)]
+#![feature(std_misc)]
 
 // Pretty printing tests complain about `use std::predule::*`
 #![allow(unused_imports)]
diff --git a/src/test/run-pass/issue-1251.rs b/src/test/run-pass/issue-1251.rs
index debb7df1125..d5f8200007f 100644
--- a/src/test/run-pass/issue-1251.rs
+++ b/src/test/run-pass/issue-1251.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 #![crate_id="rust_get_test_int"]
 
 mod rustrt {
diff --git a/src/test/run-pass/issue-12684.rs b/src/test/run-pass/issue-12684.rs
index e66b5d21e17..51268969d42 100644
--- a/src/test/run-pass/issue-12684.rs
+++ b/src/test/run-pass/issue-12684.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io, std_misc)]
+
 use std::time::Duration;
 use std::thread;
 
diff --git a/src/test/run-pass/issue-12699.rs b/src/test/run-pass/issue-12699.rs
index b55d6477753..4ff17f297d7 100644
--- a/src/test/run-pass/issue-12699.rs
+++ b/src/test/run-pass/issue-12699.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io, std_misc)]
+
 use std::old_io::timer;
 use std::time::Duration;
 
diff --git a/src/test/run-pass/issue-12860.rs b/src/test/run-pass/issue-12860.rs
index a05cc9c0f74..7f26d4d3713 100644
--- a/src/test/run-pass/issue-12860.rs
+++ b/src/test/run-pass/issue-12860.rs
@@ -8,6 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
 
 extern crate collections;
 
diff --git a/src/test/run-pass/issue-13105.rs b/src/test/run-pass/issue-13105.rs
index 64807dc44e0..3886971a469 100644
--- a/src/test/run-pass/issue-13105.rs
+++ b/src/test/run-pass/issue-13105.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::marker::MarkerTrait;
 
 trait Foo : MarkerTrait {
diff --git a/src/test/run-pass/issue-13259-windows-tcb-trash.rs b/src/test/run-pass/issue-13259-windows-tcb-trash.rs
index 329ab7c921d..5c5282da06b 100644
--- a/src/test/run-pass/issue-13259-windows-tcb-trash.rs
+++ b/src/test/run-pass/issue-13259-windows-tcb-trash.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 extern crate libc;
 
 #[cfg(windows)]
diff --git a/src/test/run-pass/issue-13304.rs b/src/test/run-pass/issue-13304.rs
index bd2ddc6b9b2..876b329998e 100644
--- a/src/test/run-pass/issue-13304.rs
+++ b/src/test/run-pass/issue-13304.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 // ignore-aarch64
+#![feature(io, process_capture)]
 
 use std::env;
 use std::io::prelude::*;
diff --git a/src/test/run-pass/issue-13352.rs b/src/test/run-pass/issue-13352.rs
index a8343712034..aed0022d9fa 100644
--- a/src/test/run-pass/issue-13352.rs
+++ b/src/test/run-pass/issue-13352.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc, libc)]
+
 extern crate libc;
 
 use std::thunk::Thunk;
diff --git a/src/test/run-pass/issue-13494.rs b/src/test/run-pass/issue-13494.rs
index 95562d75c3e..7692a31315b 100644
--- a/src/test/run-pass/issue-13494.rs
+++ b/src/test/run-pass/issue-13494.rs
@@ -11,6 +11,8 @@
 // This test may not always fail, but it can be flaky if the race it used to
 // expose is still present.
 
+#![feature(std_misc)]
+
 use std::sync::mpsc::{channel, Sender, Receiver};
 use std::thread::Thread;
 
diff --git a/src/test/run-pass/issue-13507-2.rs b/src/test/run-pass/issue-13507-2.rs
index 1c0283070a2..61ef9835752 100644
--- a/src/test/run-pass/issue-13507-2.rs
+++ b/src/test/run-pass/issue-13507-2.rs
@@ -9,6 +9,9 @@
 // except according to those terms.
 
 // aux-build:issue13507.rs
+
+#![feature(core)]
+
 extern crate issue13507;
 use issue13507::testtypes;
 
diff --git a/src/test/run-pass/issue-13655.rs b/src/test/run-pass/issue-13655.rs
index 81a8b29461c..cd5da3844e1 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)]
+#![feature(unboxed_closures, core)]
 use std::ops::Fn;
 
 struct Foo<T>(T);
diff --git a/src/test/run-pass/issue-13763.rs b/src/test/run-pass/issue-13763.rs
index 81b6892b0f9..3f4ade08d92 100644
--- a/src/test/run-pass/issue-13763.rs
+++ b/src/test/run-pass/issue-13763.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::u8;
 
 const NUM: uint = u8::BITS as uint;
diff --git a/src/test/run-pass/issue-14021.rs b/src/test/run-pass/issue-14021.rs
index e850ecbba6e..e773f03f212 100644
--- a/src/test/run-pass/issue-14021.rs
+++ b/src/test/run-pass/issue-14021.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(old_orphan_check)]
+#![feature(old_orphan_check, rustc_private)]
 
 extern crate serialize;
 
diff --git a/src/test/run-pass/issue-14456.rs b/src/test/run-pass/issue-14456.rs
index 7e4c464d9aa..ba769c2594a 100644
--- a/src/test/run-pass/issue-14456.rs
+++ b/src/test/run-pass/issue-14456.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(io, process_capture)]
+
 use std::env;
 use std::io::prelude::*;
 use std::io;
diff --git a/src/test/run-pass/issue-14901.rs b/src/test/run-pass/issue-14901.rs
index abb15dae00d..f8dd0cf1a82 100644
--- a/src/test/run-pass/issue-14901.rs
+++ b/src/test/run-pass/issue-14901.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io)]
+
 use std::old_io::Reader;
 
 enum Wrapper<'a> {
diff --git a/src/test/run-pass/issue-14940.rs b/src/test/run-pass/issue-14940.rs
index 098fa54207f..fa4d10df7ea 100644
--- a/src/test/run-pass/issue-14940.rs
+++ b/src/test/run-pass/issue-14940.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io, io)]
+
 use std::env;
 use std::process::Command;
 use std::io::{self, Write};
diff --git a/src/test/run-pass/issue-14958.rs b/src/test/run-pass/issue-14958.rs
index 6335f79be6c..911d850b289 100644
--- a/src/test/run-pass/issue-14958.rs
+++ b/src/test/run-pass/issue-14958.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 trait Foo { fn dummy(&self) { }}
 
diff --git a/src/test/run-pass/issue-14959.rs b/src/test/run-pass/issue-14959.rs
index 53d0f7dae05..6fd22f2efb7 100644
--- a/src/test/run-pass/issue-14959.rs
+++ b/src/test/run-pass/issue-14959.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 use std::ops::Fn;
 
diff --git a/src/test/run-pass/issue-15673.rs b/src/test/run-pass/issue-15673.rs
index 227d8f7b8c8..020513121e6 100644
--- a/src/test/run-pass/issue-15673.rs
+++ b/src/test/run-pass/issue-15673.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::iter::AdditiveIterator;
 fn main() {
     let x: [u64; 3] = [1, 2, 3];
diff --git a/src/test/run-pass/issue-15734.rs b/src/test/run-pass/issue-15734.rs
index 18e4190ee45..99c8d746b94 100644
--- a/src/test/run-pass/issue-15734.rs
+++ b/src/test/run-pass/issue-15734.rs
@@ -11,7 +11,7 @@
 // If `Index` used an associated type for its output, this test would
 // work more smoothly.
 
-#![feature(old_orphan_check)]
+#![feature(old_orphan_check, core)]
 
 use std::ops::Index;
 
diff --git a/src/test/run-pass/issue-15924.rs b/src/test/run-pass/issue-15924.rs
index 88b250af1c0..d8ddec286e9 100644
--- a/src/test/run-pass/issue-15924.rs
+++ b/src/test/run-pass/issue-15924.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(unsafe_destructor)]
+#![feature(unsafe_destructor, rustc_private)]
 
 extern crate serialize;
 
diff --git a/src/test/run-pass/issue-16530.rs b/src/test/run-pass/issue-16530.rs
index 7e3b796235d..b34c760192d 100644
--- a/src/test/run-pass/issue-16530.rs
+++ b/src/test/run-pass/issue-16530.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(hash)]
+
 use std::hash::{SipHasher, hash};
 
 #[derive(Hash)]
diff --git a/src/test/run-pass/issue-16739.rs b/src/test/run-pass/issue-16739.rs
index 389baecafd1..16c1b14fd87 100644
--- a/src/test/run-pass/issue-16739.rs
+++ b/src/test/run-pass/issue-16739.rs
@@ -10,7 +10,7 @@
 
 #![allow(unknown_features)]
 #![feature(box_syntax)]
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 // 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-1696.rs b/src/test/run-pass/issue-1696.rs
index 40e112d6fbf..4c6c200c716 100644
--- a/src/test/run-pass/issue-1696.rs
+++ b/src/test/run-pass/issue-1696.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 extern crate collections;
 
 use std::collections::HashMap;
diff --git a/src/test/run-pass/issue-17322.rs b/src/test/run-pass/issue-17322.rs
index d4c32f42188..410d6795c21 100644
--- a/src/test/run-pass/issue-17322.rs
+++ b/src/test/run-pass/issue-17322.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, io)]
 
 use std::io::{self, Write};
 
diff --git a/src/test/run-pass/issue-17351.rs b/src/test/run-pass/issue-17351.rs
index 0966d4ea45e..945e1f220c5 100644
--- a/src/test/run-pass/issue-17351.rs
+++ b/src/test/run-pass/issue-17351.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 fn main() {
     let _: &Str = &"x";
 }
diff --git a/src/test/run-pass/issue-17718-static-unsafe-interior.rs b/src/test/run-pass/issue-17718-static-unsafe-interior.rs
index cdd03244df1..388408cbd4d 100644
--- a/src/test/run-pass/issue-17718-static-unsafe-interior.rs
+++ b/src/test/run-pass/issue-17718-static-unsafe-interior.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::marker;
 use std::cell::UnsafeCell;
 
diff --git a/src/test/run-pass/issue-17718.rs b/src/test/run-pass/issue-17718.rs
index e4782e28928..8eee4c9f216 100644
--- a/src/test/run-pass/issue-17718.rs
+++ b/src/test/run-pass/issue-17718.rs
@@ -10,6 +10,8 @@
 
 // aux-build:issue-17718.rs
 
+#![feature(core)]
+
 extern crate "issue-17718" as other;
 
 use std::sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT, Ordering};
diff --git a/src/test/run-pass/issue-17897.rs b/src/test/run-pass/issue-17897.rs
index 3774aaa1903..adc33e3eed0 100644
--- a/src/test/run-pass/issue-17897.rs
+++ b/src/test/run-pass/issue-17897.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, std_misc)]
 
 use std::thunk::Thunk;
 
diff --git a/src/test/run-pass/issue-18188.rs b/src/test/run-pass/issue-18188.rs
index a4b09eb08e0..270537591b7 100644
--- a/src/test/run-pass/issue-18188.rs
+++ b/src/test/run-pass/issue-18188.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, std_misc)]
 
 use std::thunk::Thunk;
 
diff --git a/src/test/run-pass/issue-18619.rs b/src/test/run-pass/issue-18619.rs
index 6b6296b0bd9..6caa96530f6 100644
--- a/src/test/run-pass/issue-18619.rs
+++ b/src/test/run-pass/issue-18619.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io)]
+
 use std::old_io::FileType;
 
 pub fn main() {
diff --git a/src/test/run-pass/issue-18661.rs b/src/test/run-pass/issue-18661.rs
index bb2907241c2..bdc16533ea6 100644
--- a/src/test/run-pass/issue-18661.rs
+++ b/src/test/run-pass/issue-18661.rs
@@ -11,7 +11,7 @@
 // Test that param substitutions from the correct environment are
 // used when translating unboxed closure calls.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 pub fn inside<F: Fn()>(c: F) {
     c.call(());
diff --git a/src/test/run-pass/issue-19098.rs b/src/test/run-pass/issue-19098.rs
index ef95b4d4f00..05f3373dbd4 100644
--- a/src/test/run-pass/issue-19098.rs
+++ b/src/test/run-pass/issue-19098.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 pub trait Handler {
     fn handle(&self, &mut String);
diff --git a/src/test/run-pass/issue-19811-escape-unicode.rs b/src/test/run-pass/issue-19811-escape-unicode.rs
index 23400859e54..9317f5ea6b1 100644
--- a/src/test/run-pass/issue-19811-escape-unicode.rs
+++ b/src/test/run-pass/issue-19811-escape-unicode.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 fn main() {
     let mut escaped = String::from_str("");
     for c in '\u{10401}'.escape_unicode() {
diff --git a/src/test/run-pass/issue-20091.rs b/src/test/run-pass/issue-20091.rs
index fe9ae022d88..1fe44348466 100644
--- a/src/test/run-pass/issue-20091.rs
+++ b/src/test/run-pass/issue-20091.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 // ignore-aarch64
+#![feature(std_misc, os)]
 
 #[cfg(unix)]
 fn main() {
diff --git a/src/test/run-pass/issue-20454.rs b/src/test/run-pass/issue-20454.rs
index fbc4cca8008..0e3d4e0e40d 100644
--- a/src/test/run-pass/issue-20454.rs
+++ b/src/test/run-pass/issue-20454.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread;
 
 fn main() {
diff --git a/src/test/run-pass/issue-20644.rs b/src/test/run-pass/issue-20644.rs
index 83b91c93a86..476267d9329 100644
--- a/src/test/run-pass/issue-20644.rs
+++ b/src/test/run-pass/issue-20644.rs
@@ -11,6 +11,8 @@
 // A reduced version of the rustbook ice. The problem this encountered
 // had to do with trans ignoring binders.
 
+#![feature(os)]
+
 use std::iter;
 use std::os;
 use std::fs::File;
diff --git a/src/test/run-pass/issue-20797.rs b/src/test/run-pass/issue-20797.rs
index c5badb61494..2600c5f0afd 100644
--- a/src/test/run-pass/issue-20797.rs
+++ b/src/test/run-pass/issue-20797.rs
@@ -10,6 +10,8 @@
 
 // Regression test for #20797.
 
+#![feature(old_io, old_path)]
+
 use std::default::Default;
 use std::io;
 use std::fs;
diff --git a/src/test/run-pass/issue-21058.rs b/src/test/run-pass/issue-21058.rs
index e53fe3c44a2..3da650469e8 100644
--- a/src/test/run-pass/issue-21058.rs
+++ b/src/test/run-pass/issue-21058.rs
@@ -8,6 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
 
 struct NT(str);
 struct DST { a: u32, b: str }
diff --git a/src/test/run-pass/issue-2190-1.rs b/src/test/run-pass/issue-2190-1.rs
index 3025741694f..00f501d85a5 100644
--- a/src/test/run-pass/issue-2190-1.rs
+++ b/src/test/run-pass/issue-2190-1.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Builder;
 use std::thunk::Thunk;
 
diff --git a/src/test/run-pass/issue-2214.rs b/src/test/run-pass/issue-2214.rs
index 1dcbfd92fa0..202ea05b7f8 100644
--- a/src/test/run-pass/issue-2214.rs
+++ b/src/test/run-pass/issue-2214.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 extern crate libc;
 
 use std::mem;
diff --git a/src/test/run-pass/issue-22577.rs b/src/test/run-pass/issue-22577.rs
index f668cae66c6..f0b0b18e6bb 100644
--- a/src/test/run-pass/issue-22577.rs
+++ b/src/test/run-pass/issue-22577.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(fs, net, fs_walk)]
+
 use std::{fs, net};
 
 fn assert_both<T: Send + Sync>() {}
diff --git a/src/test/run-pass/issue-2383.rs b/src/test/run-pass/issue-2383.rs
index 9599a908950..f017193bc76 100644
--- a/src/test/run-pass/issue-2383.rs
+++ b/src/test/run-pass/issue-2383.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 extern crate collections;
 use std::collections::VecDeque;
 
diff --git a/src/test/run-pass/issue-2718.rs b/src/test/run-pass/issue-2718.rs
index 3a1178c2824..8d0e0654933 100644
--- a/src/test/run-pass/issue-2718.rs
+++ b/src/test/run-pass/issue-2718.rs
@@ -10,7 +10,7 @@
 //
 // ignore-lexer-test FIXME #15883
 
-#![feature(unsafe_destructor)]
+#![feature(unsafe_destructor, std_misc)]
 
 pub type Task = int;
 
diff --git a/src/test/run-pass/issue-2804-2.rs b/src/test/run-pass/issue-2804-2.rs
index 4f89d28332a..c49dda9f1e5 100644
--- a/src/test/run-pass/issue-2804-2.rs
+++ b/src/test/run-pass/issue-2804-2.rs
@@ -11,6 +11,8 @@
 // Minimized version of issue-2804.rs. Both check that callee IDs don't
 // clobber the previous node ID in a macro expr
 
+#![feature(collections)]
+
 extern crate collections;
 
 use std::collections::HashMap;
diff --git a/src/test/run-pass/issue-2804.rs b/src/test/run-pass/issue-2804.rs
index b9b5aec62fc..4fa491ab446 100644
--- a/src/test/run-pass/issue-2804.rs
+++ b/src/test/run-pass/issue-2804.rs
@@ -8,6 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+#![feature(rustc_private)]
+
 extern crate collections;
 extern crate serialize;
 
diff --git a/src/test/run-pass/issue-2904.rs b/src/test/run-pass/issue-2904.rs
index 3f954c3c918..b05baa24b7a 100644
--- a/src/test/run-pass/issue-2904.rs
+++ b/src/test/run-pass/issue-2904.rs
@@ -9,7 +9,9 @@
 // except according to those terms.
 
 
-/// Map representation
+// Map representation
+
+#![feature(old_io)]
 
 use std::old_io;
 use std::fmt;
diff --git a/src/test/run-pass/issue-3012-2.rs b/src/test/run-pass/issue-3012-2.rs
index 6f107a37e9b..a679ff5f718 100644
--- a/src/test/run-pass/issue-3012-2.rs
+++ b/src/test/run-pass/issue-3012-2.rs
@@ -11,7 +11,7 @@
 // aux-build:issue-3012-1.rs
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, libc)]
 
 extern crate socketlib;
 extern crate libc;
diff --git a/src/test/run-pass/issue-3026.rs b/src/test/run-pass/issue-3026.rs
index 8da15496844..1ce6d6d38d8 100644
--- a/src/test/run-pass/issue-3026.rs
+++ b/src/test/run-pass/issue-3026.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, collections)]
 
 extern crate collections;
 
diff --git a/src/test/run-pass/issue-3424.rs b/src/test/run-pass/issue-3424.rs
index e039be058de..ecce97a3013 100644
--- a/src/test/run-pass/issue-3424.rs
+++ b/src/test/run-pass/issue-3424.rs
@@ -11,7 +11,7 @@
 // rustc --test ignores2.rs && ./ignores2
 
 #![allow(unknown_features)]
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, old_path, std_misc)]
 
 use std::old_path::{Path};
 use std::old_path;
diff --git a/src/test/run-pass/issue-3559.rs b/src/test/run-pass/issue-3559.rs
index 3f1a1c75d8a..c2ea24ac6ba 100644
--- a/src/test/run-pass/issue-3559.rs
+++ b/src/test/run-pass/issue-3559.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 extern crate collections;
 
 use std::collections::HashMap;
diff --git a/src/test/run-pass/issue-3563-3.rs b/src/test/run-pass/issue-3563-3.rs
index be4d4752295..5dfe02cc9ec 100644
--- a/src/test/run-pass/issue-3563-3.rs
+++ b/src/test/run-pass/issue-3563-3.rs
@@ -22,6 +22,8 @@
 // that are already linked in. Using WriterUtil allows us to use the write_line
 // method.
 
+#![feature(core)]
+
 use std::fmt;
 use std::iter::repeat;
 use std::slice;
diff --git a/src/test/run-pass/issue-3609.rs b/src/test/run-pass/issue-3609.rs
index b51edcf8bec..2bd56e81687 100644
--- a/src/test/run-pass/issue-3609.rs
+++ b/src/test/run-pass/issue-3609.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 #![allow(unknown_features)]
+#![feature(std_misc)]
 
 use std::thread::Thread;
 use std::sync::mpsc::Sender;
diff --git a/src/test/run-pass/issue-3656.rs b/src/test/run-pass/issue-3656.rs
index 8a39676ca17..5be64522477 100644
--- a/src/test/run-pass/issue-3656.rs
+++ b/src/test/run-pass/issue-3656.rs
@@ -12,6 +12,8 @@
 // Incorrect struct size computation in the FFI, because of not taking
 // the alignment of elements into account.
 
+#![feature(libc)]
+
 extern crate libc;
 use libc::{c_uint, uint32_t, c_void};
 
diff --git a/src/test/run-pass/issue-3753.rs b/src/test/run-pass/issue-3753.rs
index 58d7aa276f1..bbfeb94cd9d 100644
--- a/src/test/run-pass/issue-3753.rs
+++ b/src/test/run-pass/issue-3753.rs
@@ -12,6 +12,8 @@
 // Issue Name: pub method preceded by attribute can't be parsed
 // Abstract: Visibility parsing failed when compiler parsing
 
+#![feature(core)]
+
 use std::f64;
 
 #[derive(Copy)]
diff --git a/src/test/run-pass/issue-4016.rs b/src/test/run-pass/issue-4016.rs
index 220332f6354..a761345e1d9 100644
--- a/src/test/run-pass/issue-4016.rs
+++ b/src/test/run-pass/issue-4016.rs
@@ -8,6 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(rustc_private)]
 
 extern crate serialize;
 
diff --git a/src/test/run-pass/issue-4036.rs b/src/test/run-pass/issue-4036.rs
index 48e32922ce7..865f729a4d3 100644
--- a/src/test/run-pass/issue-4036.rs
+++ b/src/test/run-pass/issue-4036.rs
@@ -12,6 +12,8 @@
 // Issue #4036: Test for an issue that arose around fixing up type inference
 // byproducts in vtable records.
 
+#![feature(rustc_private)]
+
 extern crate serialize;
 
 use serialize::{json, Decodable};
diff --git a/src/test/run-pass/issue-4333.rs b/src/test/run-pass/issue-4333.rs
index 074bbf270fd..f92bed87ba6 100644
--- a/src/test/run-pass/issue-4333.rs
+++ b/src/test/run-pass/issue-4333.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(io)]
+
 use std::io;
 
 pub fn main() {
diff --git a/src/test/run-pass/issue-4446.rs b/src/test/run-pass/issue-4446.rs
index b40a726a2c3..8dd385b59c9 100644
--- a/src/test/run-pass/issue-4446.rs
+++ b/src/test/run-pass/issue-4446.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io)]
+
 use std::old_io::println;
 use std::sync::mpsc::channel;
 use std::thread;
diff --git a/src/test/run-pass/issue-4735.rs b/src/test/run-pass/issue-4735.rs
index 196e9748b10..568b8bc89a0 100644
--- a/src/test/run-pass/issue-4735.rs
+++ b/src/test/run-pass/issue-4735.rs
@@ -10,7 +10,7 @@
 
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, libc)]
 
 extern crate libc;
 
diff --git a/src/test/run-pass/issue-5791.rs b/src/test/run-pass/issue-5791.rs
index 468f420624a..c6017d7d650 100644
--- a/src/test/run-pass/issue-5791.rs
+++ b/src/test/run-pass/issue-5791.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 extern crate libc;
 
 extern {
diff --git a/src/test/run-pass/issue-5988.rs b/src/test/run-pass/issue-5988.rs
index 1ad48d326ea..dae4bc35c27 100644
--- a/src/test/run-pass/issue-5988.rs
+++ b/src/test/run-pass/issue-5988.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io)]
+
 use std::old_io;
 trait B {
     fn f(&self);
diff --git a/src/test/run-pass/issue-6128.rs b/src/test/run-pass/issue-6128.rs
index 1746a6281dc..e1e71be72eb 100644
--- a/src/test/run-pass/issue-6128.rs
+++ b/src/test/run-pass/issue-6128.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, collections)]
 
 extern crate collections;
 
diff --git a/src/test/run-pass/issue-6898.rs b/src/test/run-pass/issue-6898.rs
index 9e6293216bc..f40c37b77a3 100644
--- a/src/test/run-pass/issue-6898.rs
+++ b/src/test/run-pass/issue-6898.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::intrinsics;
 
 /// Returns the size of a type
diff --git a/src/test/run-pass/issue-7660.rs b/src/test/run-pass/issue-7660.rs
index 9e36b1f5082..27c5796ece9 100644
--- a/src/test/run-pass/issue-7660.rs
+++ b/src/test/run-pass/issue-7660.rs
@@ -11,6 +11,8 @@
 // Regression test for issue 7660
 // rvalue lifetime too short when equivalent `match` works
 
+#![feature(collections)]
+
 extern crate collections;
 
 use std::collections::HashMap;
diff --git a/src/test/run-pass/issue-8398.rs b/src/test/run-pass/issue-8398.rs
index f8065d0bcd3..80863c3d6f6 100644
--- a/src/test/run-pass/issue-8398.rs
+++ b/src/test/run-pass/issue-8398.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io, io)]
+
 use std::old_io;
 
 fn foo(a: &mut old_io::Writer) {
diff --git a/src/test/run-pass/issue-8460.rs b/src/test/run-pass/issue-8460.rs
index 00339a4e84b..929adbdab49 100644
--- a/src/test/run-pass/issue-8460.rs
+++ b/src/test/run-pass/issue-8460.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::num::Int;
 use std::thread;
 
diff --git a/src/test/run-pass/issue-8827.rs b/src/test/run-pass/issue-8827.rs
index d7a86749546..b2aa93d280c 100644
--- a/src/test/run-pass/issue-8827.rs
+++ b/src/test/run-pass/issue-8827.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 use std::sync::mpsc::{channel, Receiver};
 
diff --git a/src/test/run-pass/issue-9396.rs b/src/test/run-pass/issue-9396.rs
index a98d1aba04d..98fc79882c0 100644
--- a/src/test/run-pass/issue-9396.rs
+++ b/src/test/run-pass/issue-9396.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io, std_misc)]
+
 use std::sync::mpsc::{TryRecvError, channel};
 use std::old_io::timer::Timer;
 use std::thread::Thread;
diff --git a/src/test/run-pass/issue22346.rs b/src/test/run-pass/issue22346.rs
index d30a0be5fee..1c58765ef65 100644
--- a/src/test/run-pass/issue22346.rs
+++ b/src/test/run-pass/issue22346.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 // This used to cause an ICE because the retslot for the "return" had the wrong type
 fn testcase<'a>() -> Box<Iterator<Item=usize> + 'a> {
     return Box::new((0..3).map(|i| { return i; }));
diff --git a/src/test/run-pass/istr.rs b/src/test/run-pass/istr.rs
index 15195482ed6..0013cb292e1 100644
--- a/src/test/run-pass/istr.rs
+++ b/src/test/run-pass/istr.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 use std::string::String;
 
 fn test_stack_assign() {
diff --git a/src/test/run-pass/item-attributes.rs b/src/test/run-pass/item-attributes.rs
index 6036af5c627..a262d0323c5 100644
--- a/src/test/run-pass/item-attributes.rs
+++ b/src/test/run-pass/item-attributes.rs
@@ -12,7 +12,7 @@
 // for completeness since .rs files linked from .rc files support this
 // notation to specify their module's attributes
 
-#![feature(custom_attribute)]
+#![feature(custom_attribute, libc)]
 #![allow(unused_attribute)]
 #![attr1 = "val"]
 #![attr2 = "val"]
diff --git a/src/test/run-pass/ivec-tag.rs b/src/test/run-pass/ivec-tag.rs
index 121338823d2..f2895d7d7d1 100644
--- a/src/test/run-pass/ivec-tag.rs
+++ b/src/test/run-pass/ivec-tag.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 use std::sync::mpsc::{channel, Sender};
 
diff --git a/src/test/run-pass/kindck-implicit-close-over-mut-var.rs b/src/test/run-pass/kindck-implicit-close-over-mut-var.rs
index 9d6ca1e9cfb..ca405f54415 100644
--- a/src/test/run-pass/kindck-implicit-close-over-mut-var.rs
+++ b/src/test/run-pass/kindck-implicit-close-over-mut-var.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 
 fn user(_i: int) {}
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 45964efad97..1dddec32e38 100644
--- a/src/test/run-pass/last-use-in-cap-clause.rs
+++ b/src/test/run-pass/last-use-in-cap-clause.rs
@@ -12,7 +12,7 @@
 
 #![allow(unknown_features)]
 #![feature(box_syntax)]
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 struct A { a: Box<isize> }
 
diff --git a/src/test/run-pass/linkage-visibility.rs b/src/test/run-pass/linkage-visibility.rs
index 80a859c03bc..3c238d3fe78 100644
--- a/src/test/run-pass/linkage-visibility.rs
+++ b/src/test/run-pass/linkage-visibility.rs
@@ -12,6 +12,8 @@
 // ignore-android: FIXME(#10379)
 // ignore-windows: std::dynamic_lib does not work on Windows well
 
+#![feature(std_misc, old_path)]
+
 extern crate "linkage-visibility" as foo;
 
 pub fn main() {
diff --git a/src/test/run-pass/logging-enabled-debug.rs b/src/test/run-pass/logging-enabled-debug.rs
index dfc92728270..d3b6c38da88 100644
--- a/src/test/run-pass/logging-enabled-debug.rs
+++ b/src/test/run-pass/logging-enabled-debug.rs
@@ -11,6 +11,8 @@
 // compile-flags:-C debug-assertions=no
 // exec-env:RUST_LOG=logging-enabled-debug=debug
 
+#![feature(rustc_private)]
+
 #[macro_use]
 extern crate log;
 
diff --git a/src/test/run-pass/logging-enabled.rs b/src/test/run-pass/logging-enabled.rs
index 372cdc401b5..1dd9f72ab80 100644
--- a/src/test/run-pass/logging-enabled.rs
+++ b/src/test/run-pass/logging-enabled.rs
@@ -10,6 +10,8 @@
 
 // exec-env:RUST_LOG=logging-enabled=info
 
+#![feature(rustc_private)]
+
 #[macro_use]
 extern crate log;
 
diff --git a/src/test/run-pass/logging-separate-lines.rs b/src/test/run-pass/logging-separate-lines.rs
index 82a155b1173..b27080b65b7 100644
--- a/src/test/run-pass/logging-separate-lines.rs
+++ b/src/test/run-pass/logging-separate-lines.rs
@@ -12,6 +12,8 @@
 // exec-env:RUST_LOG=debug
 // compile-flags:-C debug-assertions=y
 
+#![feature(old_io, rustc_private)]
+
 #[macro_use]
 extern crate log;
 
diff --git a/src/test/run-pass/macro-with-braces-in-expr-position.rs b/src/test/run-pass/macro-with-braces-in-expr-position.rs
index cb52ba74bbd..80a3b8c9edd 100644
--- a/src/test/run-pass/macro-with-braces-in-expr-position.rs
+++ b/src/test/run-pass/macro-with-braces-in-expr-position.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 
 macro_rules! expr { ($e: expr) => { $e } }
diff --git a/src/test/run-pass/method-mut-self-modifies-mut-slice-lvalue.rs b/src/test/run-pass/method-mut-self-modifies-mut-slice-lvalue.rs
index f1d41a0f422..826561bfddd 100644
--- a/src/test/run-pass/method-mut-self-modifies-mut-slice-lvalue.rs
+++ b/src/test/run-pass/method-mut-self-modifies-mut-slice-lvalue.rs
@@ -12,6 +12,8 @@
 // type is `&mut [u8]`, passes in a pointer to the lvalue and not a
 // temporary. Issue #19147.
 
+#![feature(core, old_io)]
+
 use std::mem;
 use std::slice;
 use std::old_io::IoResult;
diff --git a/src/test/run-pass/method-two-traits-distinguished-via-where-clause.rs b/src/test/run-pass/method-two-traits-distinguished-via-where-clause.rs
index fbecb6851b6..d5950921190 100644
--- a/src/test/run-pass/method-two-traits-distinguished-via-where-clause.rs
+++ b/src/test/run-pass/method-two-traits-distinguished-via-where-clause.rs
@@ -11,6 +11,8 @@
 // Test that we select between traits A and B. To do that, we must
 // consider the `Sized` bound.
 
+#![feature(core)]
+
 trait A {
     fn foo(self);
 }
diff --git a/src/test/run-pass/monomorphized-callees-with-ty-params-3314.rs b/src/test/run-pass/monomorphized-callees-with-ty-params-3314.rs
index 1164ef1a3c9..11f53f0a980 100644
--- a/src/test/run-pass/monomorphized-callees-with-ty-params-3314.rs
+++ b/src/test/run-pass/monomorphized-callees-with-ty-params-3314.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::marker::MarkerTrait;
 
 trait Serializer : MarkerTrait {
diff --git a/src/test/run-pass/moves-based-on-type-capture-clause.rs b/src/test/run-pass/moves-based-on-type-capture-clause.rs
index 3596fa1a006..f0eba366e71 100644
--- a/src/test/run-pass/moves-based-on-type-capture-clause.rs
+++ b/src/test/run-pass/moves-based-on-type-capture-clause.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 
 pub fn main() {
diff --git a/src/test/run-pass/new-box-syntax.rs b/src/test/run-pass/new-box-syntax.rs
index 3d4847a119a..1595b677c8d 100644
--- a/src/test/run-pass/new-box-syntax.rs
+++ b/src/test/run-pass/new-box-syntax.rs
@@ -12,7 +12,7 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, alloc)]
 
 // Tests that the new `box` syntax works with unique pointers.
 
diff --git a/src/test/run-pass/new-unicode-escapes.rs b/src/test/run-pass/new-unicode-escapes.rs
index 7430f730f3b..9e4654a13f0 100644
--- a/src/test/run-pass/new-unicode-escapes.rs
+++ b/src/test/run-pass/new-unicode-escapes.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 pub fn main() {
     let s = "\u{2603}";
     assert_eq!(s, "☃");
diff --git a/src/test/run-pass/newtype-struct-with-dtor.rs b/src/test/run-pass/newtype-struct-with-dtor.rs
index 15c4e8b0453..916ec01257f 100644
--- a/src/test/run-pass/newtype-struct-with-dtor.rs
+++ b/src/test/run-pass/newtype-struct-with-dtor.rs
@@ -9,6 +9,8 @@
 // except according to those terms.
 
 
+#![feature(libc)]
+
 extern crate libc;
 use libc::c_int;
 
diff --git a/src/test/run-pass/numeric-method-autoexport.rs b/src/test/run-pass/numeric-method-autoexport.rs
index eccc2a41a8d..3e3391b0342 100644
--- a/src/test/run-pass/numeric-method-autoexport.rs
+++ b/src/test/run-pass/numeric-method-autoexport.rs
@@ -15,6 +15,8 @@
 // necessary. Testing the methods of the impls is done within the source
 // file for each numeric type.
 
+#![feature(core)]
+
 use std::ops::Add;
 use std::num::ToPrimitive;
 
diff --git a/src/test/run-pass/operator-overloading.rs b/src/test/run-pass/operator-overloading.rs
index 3ddc666cd38..e8b0db44161 100644
--- a/src/test/run-pass/operator-overloading.rs
+++ b/src/test/run-pass/operator-overloading.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::cmp;
 use std::ops;
 
diff --git a/src/test/run-pass/option-ext.rs b/src/test/run-pass/option-ext.rs
index 7a816f91335..8f5a5e8ece7 100644
--- a/src/test/run-pass/option-ext.rs
+++ b/src/test/run-pass/option-ext.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 pub fn main() {
     let thing = "{{ f }}";
     let f = thing.find_str("{{");
diff --git a/src/test/run-pass/osx-frameworks.rs b/src/test/run-pass/osx-frameworks.rs
index aa4e91320f7..9ac67b4c783 100644
--- a/src/test/run-pass/osx-frameworks.rs
+++ b/src/test/run-pass/osx-frameworks.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 extern crate libc;
 
 #[cfg(target_os = "macos")]
diff --git a/src/test/run-pass/out-of-stack-new-thread-no-split.rs b/src/test/run-pass/out-of-stack-new-thread-no-split.rs
index 41bf7fe2dfa..3c322f72b75 100644
--- a/src/test/run-pass/out-of-stack-new-thread-no-split.rs
+++ b/src/test/run-pass/out-of-stack-new-thread-no-split.rs
@@ -14,7 +14,7 @@
 //ignore-dragonfly
 //ignore-bitrig
 
-#![feature(asm)]
+#![feature(asm, old_io, std_misc)]
 
 use std::old_io::process::Command;
 use std::env;
diff --git a/src/test/run-pass/out-of-stack.rs b/src/test/run-pass/out-of-stack.rs
index cc5eb69bb87..47f83eab4c1 100644
--- a/src/test/run-pass/out-of-stack.rs
+++ b/src/test/run-pass/out-of-stack.rs
@@ -10,7 +10,7 @@
 
 // ignore-android: FIXME (#20004)
 
-#![feature(asm)]
+#![feature(asm, old_io)]
 
 use std::old_io::process::Command;
 use std::env;
diff --git a/src/test/run-pass/overloaded-autoderef.rs b/src/test/run-pass/overloaded-autoderef.rs
index 6436165968d..7b956dc772f 100644
--- a/src/test/run-pass/overloaded-autoderef.rs
+++ b/src/test/run-pass/overloaded-autoderef.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, collections, core)]
 
 use std::cell::RefCell;
 use std::rc::Rc;
diff --git a/src/test/run-pass/overloaded-calls-param-vtables.rs b/src/test/run-pass/overloaded-calls-param-vtables.rs
index 0ac9c97532b..029a8eaad24 100644
--- a/src/test/run-pass/overloaded-calls-param-vtables.rs
+++ b/src/test/run-pass/overloaded-calls-param-vtables.rs
@@ -10,7 +10,7 @@
 
 // Tests that nested vtables work with overloaded calls.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 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 d18a91c5452..fc6540b6e3e 100644
--- a/src/test/run-pass/overloaded-calls-simple.rs
+++ b/src/test/run-pass/overloaded-calls-simple.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(lang_items, unboxed_closures)]
+#![feature(lang_items, unboxed_closures, core)]
 
 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 78e84b9d55b..e75f217a2c6 100644
--- a/src/test/run-pass/overloaded-calls-zero-args.rs
+++ b/src/test/run-pass/overloaded-calls-zero-args.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 use std::ops::{FnMut};
 
diff --git a/src/test/run-pass/overloaded-deref.rs b/src/test/run-pass/overloaded-deref.rs
index bb1694be5e2..20e55de2f05 100644
--- a/src/test/run-pass/overloaded-deref.rs
+++ b/src/test/run-pass/overloaded-deref.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 use std::cell::RefCell;
 use std::rc::Rc;
 use std::string::String;
diff --git a/src/test/run-pass/overloaded-index-assoc-list.rs b/src/test/run-pass/overloaded-index-assoc-list.rs
index 0064748e883..7b059cb6a33 100644
--- a/src/test/run-pass/overloaded-index-assoc-list.rs
+++ b/src/test/run-pass/overloaded-index-assoc-list.rs
@@ -11,6 +11,8 @@
 // Test overloading of the `[]` operator.  In particular test that it
 // takes its argument *by reference*.
 
+#![feature(core)]
+
 use std::ops::Index;
 
 struct AssociationList<K,V> {
diff --git a/src/test/run-pass/overloaded-index-autoderef.rs b/src/test/run-pass/overloaded-index-autoderef.rs
index 8f655f0517d..214817b0a15 100644
--- a/src/test/run-pass/overloaded-index-autoderef.rs
+++ b/src/test/run-pass/overloaded-index-autoderef.rs
@@ -11,7 +11,7 @@
 // Test overloaded indexing combined with autoderef.
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, core)]
 
 use std::ops::{Index, IndexMut};
 
diff --git a/src/test/run-pass/overloaded-index-in-field.rs b/src/test/run-pass/overloaded-index-in-field.rs
index 487fb93c9fe..66f8c5c4238 100644
--- a/src/test/run-pass/overloaded-index-in-field.rs
+++ b/src/test/run-pass/overloaded-index-in-field.rs
@@ -11,6 +11,8 @@
 // Test using overloaded indexing when the "map" is stored in a
 // field. This caused problems at some point.
 
+#![feature(core)]
+
 use std::ops::Index;
 
 struct Foo {
diff --git a/src/test/run-pass/overloaded-index.rs b/src/test/run-pass/overloaded-index.rs
index 10ca3804eae..413cef86c5d 100644
--- a/src/test/run-pass/overloaded-index.rs
+++ b/src/test/run-pass/overloaded-index.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::ops::{Index, IndexMut};
 
 struct Foo {
diff --git a/src/test/run-pass/placement-new-arena.rs b/src/test/run-pass/placement-new-arena.rs
index c4cf8357baa..7ac624e6814 100644
--- a/src/test/run-pass/placement-new-arena.rs
+++ b/src/test/run-pass/placement-new-arena.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(rustc_private)]
+
 extern crate arena;
 use arena::Arena;
 
diff --git a/src/test/run-pass/process-remove-from-env.rs b/src/test/run-pass/process-remove-from-env.rs
index 9eb7d624c99..68597fe48e5 100644
--- a/src/test/run-pass/process-remove-from-env.rs
+++ b/src/test/run-pass/process-remove-from-env.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io)]
+
 use std::old_io::Command;
 use std::env;
 
diff --git a/src/test/run-pass/process-spawn-with-unicode-params.rs b/src/test/run-pass/process-spawn-with-unicode-params.rs
index 72998133af1..32448d100fb 100644
--- a/src/test/run-pass/process-spawn-with-unicode-params.rs
+++ b/src/test/run-pass/process-spawn-with-unicode-params.rs
@@ -17,6 +17,7 @@
 // intact.
 
 // ignore-aarch64
+#![feature(path, fs, os, io, old_path)]
 
 use std::io::prelude::*;
 use std::io;
diff --git a/src/test/run-pass/realloc-16687.rs b/src/test/run-pass/realloc-16687.rs
index e8bcff38131..0b714578c66 100644
--- a/src/test/run-pass/realloc-16687.rs
+++ b/src/test/run-pass/realloc-16687.rs
@@ -13,6 +13,8 @@
 // Ideally this would be revised to use no_std, but for now it serves
 // well enough to reproduce (and illustrate) the bug from #16687.
 
+#![feature(alloc)]
+
 extern crate alloc;
 
 use alloc::heap;
diff --git a/src/test/run-pass/regions-copy-closure.rs b/src/test/run-pass/regions-copy-closure.rs
index b39343b1f57..ac7c76ac544 100644
--- a/src/test/run-pass/regions-copy-closure.rs
+++ b/src/test/run-pass/regions-copy-closure.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 #![allow(unknown_features)]
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 struct closure_box<'a> {
     cl: Box<FnMut() + 'a>,
diff --git a/src/test/run-pass/regions-mock-tcx.rs b/src/test/run-pass/regions-mock-tcx.rs
index bf789d53645..f2e0837c6ea 100644
--- a/src/test/run-pass/regions-mock-tcx.rs
+++ b/src/test/run-pass/regions-mock-tcx.rs
@@ -15,6 +15,8 @@
 // - Multiple lifetime parameters
 // - Arenas
 
+#![feature(rustc_private, libc, collections)]
+
 extern crate arena;
 extern crate collections;
 extern crate libc;
diff --git a/src/test/run-pass/regions-mock-trans.rs b/src/test/run-pass/regions-mock-trans.rs
index e6b997f7588..b2584e2472b 100644
--- a/src/test/run-pass/regions-mock-trans.rs
+++ b/src/test/run-pass/regions-mock-trans.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 extern crate libc;
 use std::mem;
 
diff --git a/src/test/run-pass/regions-static-closure.rs b/src/test/run-pass/regions-static-closure.rs
index 1bcde77261b..ae39c266808 100644
--- a/src/test/run-pass/regions-static-closure.rs
+++ b/src/test/run-pass/regions-static-closure.rs
@@ -10,7 +10,7 @@
 
 #![allow(unknown_features)]
 #![feature(box_syntax)]
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 struct closure_box<'a> {
     cl: Box<FnMut() + 'a>,
diff --git a/src/test/run-pass/rename-directory.rs b/src/test/run-pass/rename-directory.rs
index 656fe898969..33a53e44425 100644
--- a/src/test/run-pass/rename-directory.rs
+++ b/src/test/run-pass/rename-directory.rs
@@ -11,6 +11,8 @@
 // This test can't be a unit test in std,
 // because it needs TempDir, which is in extra
 
+#![feature(tempdir, path_ext)]
+
 use std::ffi::CString;
 use std::fs::{self, TempDir, File, PathExt};
 
diff --git a/src/test/run-pass/running-with-no-runtime.rs b/src/test/run-pass/running-with-no-runtime.rs
index abb16c39d11..75f66d5bf26 100644
--- a/src/test/run-pass/running-with-no-runtime.rs
+++ b/src/test/run-pass/running-with-no-runtime.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(start)]
+#![feature(start, os, std_misc, old_io)]
 
 use std::ffi;
 use std::old_io::process::{Command, ProcessOutput};
diff --git a/src/test/run-pass/rust-log-filter.rs b/src/test/run-pass/rust-log-filter.rs
index 5d6657c7e12..44d8db075e8 100644
--- a/src/test/run-pass/rust-log-filter.rs
+++ b/src/test/run-pass/rust-log-filter.rs
@@ -11,7 +11,7 @@
 // exec-env:RUST_LOG=rust-log-filter/foo
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, std_misc, rustc_private)]
 
 #[macro_use]
 extern crate log;
diff --git a/src/test/run-pass/segfault-no-out-of-stack.rs b/src/test/run-pass/segfault-no-out-of-stack.rs
index 492736c2252..d2842a99485 100644
--- a/src/test/run-pass/segfault-no-out-of-stack.rs
+++ b/src/test/run-pass/segfault-no-out-of-stack.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(old_io)]
+
 use std::old_io::process::Command;
 use std::env;
 
diff --git a/src/test/run-pass/send-resource.rs b/src/test/run-pass/send-resource.rs
index a920d76e7ca..a1e28b2b261 100644
--- a/src/test/run-pass/send-resource.rs
+++ b/src/test/run-pass/send-resource.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 use std::sync::mpsc::channel;
 
diff --git a/src/test/run-pass/send_str_hashmap.rs b/src/test/run-pass/send_str_hashmap.rs
index 33e4fa85bcb..54214feee05 100644
--- a/src/test/run-pass/send_str_hashmap.rs
+++ b/src/test/run-pass/send_str_hashmap.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 extern crate collections;
 
 use std::collections::HashMap;
diff --git a/src/test/run-pass/send_str_treemap.rs b/src/test/run-pass/send_str_treemap.rs
index 3390369242d..9741d468bd2 100644
--- a/src/test/run-pass/send_str_treemap.rs
+++ b/src/test/run-pass/send_str_treemap.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 extern crate collections;
 
 use self::collections::BTreeMap;
diff --git a/src/test/run-pass/signal-exit-status.rs b/src/test/run-pass/signal-exit-status.rs
index 776d897938d..90bb36f25f7 100644
--- a/src/test/run-pass/signal-exit-status.rs
+++ b/src/test/run-pass/signal-exit-status.rs
@@ -10,6 +10,9 @@
 
 // ignore-windows
 
+#![feature(old_io)]
+#![feature(os)]
+
 use std::env;
 use std::old_io::process::{Command, ExitSignal, ExitStatus};
 
diff --git a/src/test/run-pass/simd-binop.rs b/src/test/run-pass/simd-binop.rs
index 779e507f43d..45a91abe56c 100644
--- a/src/test/run-pass/simd-binop.rs
+++ b/src/test/run-pass/simd-binop.rs
@@ -8,6 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
 
 use std::simd::{i32x4, f32x4, u32x4};
 
diff --git a/src/test/run-pass/simd-issue-10604.rs b/src/test/run-pass/simd-issue-10604.rs
index 7f1be4b7d70..bd3f8f35352 100644
--- a/src/test/run-pass/simd-issue-10604.rs
+++ b/src/test/run-pass/simd-issue-10604.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-
+#![feature(core)]
 #![feature(simd)]
 
 pub fn main() {
diff --git a/src/test/run-pass/slice.rs b/src/test/run-pass/slice.rs
index 30b53dbb0ad..aaa4cb27f8d 100644
--- a/src/test/run-pass/slice.rs
+++ b/src/test/run-pass/slice.rs
@@ -10,7 +10,7 @@
 
 // Test slicing sugar.
 
-#![feature(associated_types)]
+#![feature(core)]
 
 extern crate core;
 use core::ops::{Index, IndexMut, Range, RangeTo, RangeFrom, RangeFull};
diff --git a/src/test/run-pass/smallest-hello-world.rs b/src/test/run-pass/smallest-hello-world.rs
index 61b2fc8b50f..c7db8068785 100644
--- a/src/test/run-pass/smallest-hello-world.rs
+++ b/src/test/run-pass/smallest-hello-world.rs
@@ -10,7 +10,7 @@
 
 // Smallest "hello world" with a libc runtime
 
-#![feature(intrinsics, lang_items, start, no_std)]
+#![feature(intrinsics, lang_items, start, no_std, libc)]
 #![no_std]
 
 extern crate libc;
diff --git a/src/test/run-pass/spawn-fn.rs b/src/test/run-pass/spawn-fn.rs
index c8fe400c4c3..4f8ba7f655e 100644
--- a/src/test/run-pass/spawn-fn.rs
+++ b/src/test/run-pass/spawn-fn.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 
 fn x(s: String, n: int) {
diff --git a/src/test/run-pass/stat.rs b/src/test/run-pass/stat.rs
index 1ccc189dc81..159081a0e97 100644
--- a/src/test/run-pass/stat.rs
+++ b/src/test/run-pass/stat.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(tempdir, path_ext)]
+
 use std::fs::{File, TempDir};
 use std::io::prelude::*;
 
diff --git a/src/test/run-pass/static-mut-foreign.rs b/src/test/run-pass/static-mut-foreign.rs
index e5d4591361a..6d191ba1c58 100644
--- a/src/test/run-pass/static-mut-foreign.rs
+++ b/src/test/run-pass/static-mut-foreign.rs
@@ -12,6 +12,8 @@
 // statics cannot. This ensures that there's some form of error if this is
 // attempted.
 
+#![feature(libc)]
+
 extern crate libc;
 
 #[link(name = "rust_test_helpers")]
diff --git a/src/test/run-pass/std-sync-right-kind-impls.rs b/src/test/run-pass/std-sync-right-kind-impls.rs
index d2d72ed1661..46b70f91e71 100644
--- a/src/test/run-pass/std-sync-right-kind-impls.rs
+++ b/src/test/run-pass/std-sync-right-kind-impls.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc, alloc)]
+
 use std::sync;
 
 fn assert_both<T: Sync + Send>() {}
diff --git a/src/test/run-pass/supported-cast.rs b/src/test/run-pass/supported-cast.rs
index 3fffef060a1..7f705146aaa 100644
--- a/src/test/run-pass/supported-cast.rs
+++ b/src/test/run-pass/supported-cast.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc)]
+
 extern crate libc;
 
 pub fn main() {
diff --git a/src/test/run-pass/syntax-extension-source-utils.rs b/src/test/run-pass/syntax-extension-source-utils.rs
index 684ca7fa2b6..b3f503aad34 100644
--- a/src/test/run-pass/syntax-extension-source-utils.rs
+++ b/src/test/run-pass/syntax-extension-source-utils.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 // This test is brittle!
 // ignore-pretty - the pretty tests lose path information, breaking include!
 
@@ -22,9 +24,9 @@ pub mod m1 {
 macro_rules! indirect_line { () => ( line!() ) }
 
 pub fn main() {
-    assert_eq!(line!(), 25);
+    assert_eq!(line!(), 27);
     assert!((column!() == 4));
-    assert_eq!(indirect_line!(), 27);
+    assert_eq!(indirect_line!(), 29);
     assert!((file!().ends_with("syntax-extension-source-utils.rs")));
     assert_eq!(stringify!((2*3) + 5).to_string(), "( 2 * 3 ) + 5".to_string());
     assert!(include!("syntax-extension-source-utils-files/includeme.\
@@ -42,7 +44,7 @@ pub fn main() {
     // The Windows tests are wrapped in an extra module for some reason
     assert!((m1::m2::where_am_i().ends_with("m1::m2")));
 
-    assert!(match (45, "( 2 * 3 ) + 5") {
+    assert!(match (47, "( 2 * 3 ) + 5") {
         (line!(), stringify!((2*3) + 5)) => true,
         _ => false
     })
diff --git a/src/test/run-pass/syntax-trait-polarity.rs b/src/test/run-pass/syntax-trait-polarity.rs
index 340ad2a531a..544234046eb 100644
--- a/src/test/run-pass/syntax-trait-polarity.rs
+++ b/src/test/run-pass/syntax-trait-polarity.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(optin_builtin_traits)]
+#![feature(optin_builtin_traits, core)]
 
 use std::marker::{MarkerTrait, Send};
 
diff --git a/src/test/run-pass/task-comm-0.rs b/src/test/run-pass/task-comm-0.rs
index 78826666f53..a24d61c8cea 100644
--- a/src/test/run-pass/task-comm-0.rs
+++ b/src/test/run-pass/task-comm-0.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 use std::sync::mpsc::{channel, Sender};
 
diff --git a/src/test/run-pass/task-comm-1.rs b/src/test/run-pass/task-comm-1.rs
index 180f6e09ba9..e882d8506fc 100644
--- a/src/test/run-pass/task-comm-1.rs
+++ b/src/test/run-pass/task-comm-1.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 
 pub fn main() { test00(); }
diff --git a/src/test/run-pass/task-comm-10.rs b/src/test/run-pass/task-comm-10.rs
index 60af3afec2b..99eebdb601a 100644
--- a/src/test/run-pass/task-comm-10.rs
+++ b/src/test/run-pass/task-comm-10.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 use std::sync::mpsc::{channel, Sender};
 
diff --git a/src/test/run-pass/task-comm-11.rs b/src/test/run-pass/task-comm-11.rs
index 1740c49c772..c33872e30c4 100644
--- a/src/test/run-pass/task-comm-11.rs
+++ b/src/test/run-pass/task-comm-11.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::sync::mpsc::{channel, Sender};
 use std::thread::Thread;
 
diff --git a/src/test/run-pass/task-comm-12.rs b/src/test/run-pass/task-comm-12.rs
index 08dce2a7648..ff6d959327d 100644
--- a/src/test/run-pass/task-comm-12.rs
+++ b/src/test/run-pass/task-comm-12.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 
 pub fn main() { test00(); }
diff --git a/src/test/run-pass/task-comm-13.rs b/src/test/run-pass/task-comm-13.rs
index 429c6ce9fb3..1f7da10252b 100644
--- a/src/test/run-pass/task-comm-13.rs
+++ b/src/test/run-pass/task-comm-13.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::sync::mpsc::{channel, Sender};
 use std::thread::Thread;
 
diff --git a/src/test/run-pass/task-comm-14.rs b/src/test/run-pass/task-comm-14.rs
index 0735e3996ee..785df73317a 100644
--- a/src/test/run-pass/task-comm-14.rs
+++ b/src/test/run-pass/task-comm-14.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::sync::mpsc::{channel, Sender};
 use std::thread::Thread;
 
diff --git a/src/test/run-pass/task-comm-15.rs b/src/test/run-pass/task-comm-15.rs
index 28eea784f36..e9ae3d2a25a 100644
--- a/src/test/run-pass/task-comm-15.rs
+++ b/src/test/run-pass/task-comm-15.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::sync::mpsc::{channel, Sender};
 use std::thread::Thread;
 
diff --git a/src/test/run-pass/task-comm-17.rs b/src/test/run-pass/task-comm-17.rs
index 9db5465f7e9..f5ca52ba4b6 100644
--- a/src/test/run-pass/task-comm-17.rs
+++ b/src/test/run-pass/task-comm-17.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 // Issue #922
 
 // This test is specifically about spawning temporary closures.
diff --git a/src/test/run-pass/task-comm-3.rs b/src/test/run-pass/task-comm-3.rs
index 90282946838..bb0749eb8c0 100644
--- a/src/test/run-pass/task-comm-3.rs
+++ b/src/test/run-pass/task-comm-3.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 // no-pretty-expanded FIXME #15189
 
 use std::thread::Thread;
diff --git a/src/test/run-pass/task-comm-7.rs b/src/test/run-pass/task-comm-7.rs
index 6f3b47b8bfa..263ad0e4c02 100644
--- a/src/test/run-pass/task-comm-7.rs
+++ b/src/test/run-pass/task-comm-7.rs
@@ -8,6 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
 #![allow(dead_assignment)]
 
 use std::sync::mpsc::{channel, Sender};
diff --git a/src/test/run-pass/task-comm-9.rs b/src/test/run-pass/task-comm-9.rs
index 6d8de4a6a53..81d9148955a 100644
--- a/src/test/run-pass/task-comm-9.rs
+++ b/src/test/run-pass/task-comm-9.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 use std::sync::mpsc::{channel, Sender};
 
diff --git a/src/test/run-pass/task-life-0.rs b/src/test/run-pass/task-life-0.rs
index 3f229926480..462b38f6598 100644
--- a/src/test/run-pass/task-life-0.rs
+++ b/src/test/run-pass/task-life-0.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 
 pub fn main() {
diff --git a/src/test/run-pass/task-spawn-move-and-copy.rs b/src/test/run-pass/task-spawn-move-and-copy.rs
index 46f9e991347..eb6bec9a092 100644
--- a/src/test/run-pass/task-spawn-move-and-copy.rs
+++ b/src/test/run-pass/task-spawn-move-and-copy.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, std_misc)]
 
 use std::thread::Thread;
 use std::sync::mpsc::channel;
diff --git a/src/test/run-pass/task-stderr.rs b/src/test/run-pass/task-stderr.rs
index 3131cda1dbc..824d240568f 100644
--- a/src/test/run-pass/task-stderr.rs
+++ b/src/test/run-pass/task-stderr.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, old_io, std_misc, io, set_panic, set_stdio)]
 
 use std::io::prelude::*;
 use std::io;
diff --git a/src/test/run-pass/tcp-accept-stress.rs b/src/test/run-pass/tcp-accept-stress.rs
index b87718ba468..5633ef2ecfc 100644
--- a/src/test/run-pass/tcp-accept-stress.rs
+++ b/src/test/run-pass/tcp-accept-stress.rs
@@ -13,6 +13,8 @@
 //              quite quickly and it takes a few seconds for the sockets to get
 //              recycled.
 
+#![feature(old_io, io, std_misc)]
+
 use std::old_io::{TcpListener, Listener, Acceptor, EndOfFile, TcpStream};
 use std::sync::Arc;
 use std::sync::atomic::{AtomicUsize, Ordering};
diff --git a/src/test/run-pass/tcp-connect-timeouts.rs b/src/test/run-pass/tcp-connect-timeouts.rs
index 5462a996f73..a9a16cd72df 100644
--- a/src/test/run-pass/tcp-connect-timeouts.rs
+++ b/src/test/run-pass/tcp-connect-timeouts.rs
@@ -19,6 +19,7 @@
 #![reexport_test_harness_main = "test_main"]
 
 #![allow(unused_imports)]
+#![feature(old_io, std_misc, io)]
 
 use std::old_io::*;
 use std::old_io::test::*;
diff --git a/src/test/run-pass/tempfile.rs b/src/test/run-pass/tempfile.rs
index bc655837bab..74290518364 100644
--- a/src/test/run-pass/tempfile.rs
+++ b/src/test/run-pass/tempfile.rs
@@ -18,6 +18,8 @@
 // they're in a different location than before. Hence, these tests are all run
 // serially here.
 
+#![feature(old_io, old_path, os, old_fs)]
+
 use std::old_path::{Path, GenericPath};
 use std::old_io::fs::PathExtensions;
 use std::old_io::{fs, TempDir};
diff --git a/src/test/run-pass/test-fn-signature-verification-for-explicit-return-type.rs b/src/test/run-pass/test-fn-signature-verification-for-explicit-return-type.rs
index df3c9a0f119..d58b5d3a00f 100644
--- a/src/test/run-pass/test-fn-signature-verification-for-explicit-return-type.rs
+++ b/src/test/run-pass/test-fn-signature-verification-for-explicit-return-type.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(test)]
+
 // compile-flags: --test
 // no-pretty-expanded
 extern crate test;
diff --git a/src/test/run-pass/threads.rs b/src/test/run-pass/threads.rs
index abc2938df00..436fb1fe9b5 100644
--- a/src/test/run-pass/threads.rs
+++ b/src/test/run-pass/threads.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(std_misc)]
+
 use std::thread::Thread;
 
 pub fn main() {
diff --git a/src/test/run-pass/trait-bounds-basic.rs b/src/test/run-pass/trait-bounds-basic.rs
index ed25bf8b02e..cc2347fb5f3 100644
--- a/src/test/run-pass/trait-bounds-basic.rs
+++ b/src/test/run-pass/trait-bounds-basic.rs
@@ -8,6 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
 
 trait Foo : ::std::marker::MarkerTrait {
 }
diff --git a/src/test/run-pass/trait-bounds-in-arc.rs b/src/test/run-pass/trait-bounds-in-arc.rs
index cf23785b844..d2782976463 100644
--- a/src/test/run-pass/trait-bounds-in-arc.rs
+++ b/src/test/run-pass/trait-bounds-in-arc.rs
@@ -14,7 +14,7 @@
 // ignore-pretty
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, std_misc)]
 #![feature(unboxed_closures)]
 
 use std::sync::Arc;
diff --git a/src/test/run-pass/trait-bounds-on-structs-and-enums.rs b/src/test/run-pass/trait-bounds-on-structs-and-enums.rs
index 976120908b2..6d080adbe63 100644
--- a/src/test/run-pass/trait-bounds-on-structs-and-enums.rs
+++ b/src/test/run-pass/trait-bounds-on-structs-and-enums.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 trait U : ::std::marker::MarkerTrait {}
 trait T<X: U> { fn get(self) -> X; }
 
diff --git a/src/test/run-pass/trait-bounds-recursion.rs b/src/test/run-pass/trait-bounds-recursion.rs
index 7135dad7d19..d10e098f9d6 100644
--- a/src/test/run-pass/trait-bounds-recursion.rs
+++ b/src/test/run-pass/trait-bounds-recursion.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 trait I { fn i(&self) -> Self; }
 
 trait A<T:I> : ::std::marker::MarkerTrait {
diff --git a/src/test/run-pass/trait-coercion.rs b/src/test/run-pass/trait-coercion.rs
index d1af6b746ac..6f2fc8ba79a 100644
--- a/src/test/run-pass/trait-coercion.rs
+++ b/src/test/run-pass/trait-coercion.rs
@@ -8,7 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(box_syntax)]
+#![allow(unknown_features)]
+#![feature(box_syntax, old_io, io)]
 
 use std::io::{self, Write};
 
diff --git a/src/test/run-pass/trait-inheritance-num.rs b/src/test/run-pass/trait-inheritance-num.rs
index 5fb28eb9d8d..251223e30fb 100644
--- a/src/test/run-pass/trait-inheritance-num.rs
+++ b/src/test/run-pass/trait-inheritance-num.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::cmp::{PartialEq, PartialOrd};
 use std::num::NumCast;
 
diff --git a/src/test/run-pass/trait-inheritance-num0.rs b/src/test/run-pass/trait-inheritance-num0.rs
index 183d6659062..8de226b7345 100644
--- a/src/test/run-pass/trait-inheritance-num0.rs
+++ b/src/test/run-pass/trait-inheritance-num0.rs
@@ -10,6 +10,8 @@
 
 // Extending Num and using inherited static methods
 
+#![feature(core)]
+
 use std::cmp::PartialOrd;
 use std::num::NumCast;
 
diff --git a/src/test/run-pass/trait-inheritance-num1.rs b/src/test/run-pass/trait-inheritance-num1.rs
index 15fb5df4626..33b31a98599 100644
--- a/src/test/run-pass/trait-inheritance-num1.rs
+++ b/src/test/run-pass/trait-inheritance-num1.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::cmp::PartialOrd;
 use std::num::NumCast;
 
diff --git a/src/test/run-pass/trait-inheritance-num2.rs b/src/test/run-pass/trait-inheritance-num2.rs
index 1fb28c50652..df751a6d004 100644
--- a/src/test/run-pass/trait-inheritance-num2.rs
+++ b/src/test/run-pass/trait-inheritance-num2.rs
@@ -10,6 +10,8 @@
 
 // A more complex example of numeric extensions
 
+#![feature(core)]
+
 use std::cmp::{PartialEq, PartialOrd};
 use std::num::NumCast;
 
diff --git a/src/test/run-pass/trait-inheritance-num3.rs b/src/test/run-pass/trait-inheritance-num3.rs
index 09015d983ea..b5cf25bc5a8 100644
--- a/src/test/run-pass/trait-inheritance-num3.rs
+++ b/src/test/run-pass/trait-inheritance-num3.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::cmp::{PartialEq, PartialOrd};
 use std::num::NumCast;
 
diff --git a/src/test/run-pass/trait-inheritance-num5.rs b/src/test/run-pass/trait-inheritance-num5.rs
index a21026839a7..acd60cea61f 100644
--- a/src/test/run-pass/trait-inheritance-num5.rs
+++ b/src/test/run-pass/trait-inheritance-num5.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 use std::cmp::PartialEq;
 use std::num::NumCast;
 
diff --git a/src/test/run-pass/trait-inheritance-static2.rs b/src/test/run-pass/trait-inheritance-static2.rs
index 8f3b325a513..caedaf35737 100644
--- a/src/test/run-pass/trait-inheritance-static2.rs
+++ b/src/test/run-pass/trait-inheritance-static2.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
+
 pub trait MyEq : ::std::marker::MarkerTrait { }
 
 pub trait MyNum : ::std::marker::MarkerTrait {
diff --git a/src/test/run-pass/tydesc-name.rs b/src/test/run-pass/tydesc-name.rs
index 2e7717fcfe1..2e8adfe508b 100644
--- a/src/test/run-pass/tydesc-name.rs
+++ b/src/test/run-pass/tydesc-name.rs
@@ -8,6 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(core)]
 
 use std::intrinsics::type_name;
 
diff --git a/src/test/run-pass/type-id-higher-rank.rs b/src/test/run-pass/type-id-higher-rank.rs
index d33ebeadba8..e4d7d292056 100644
--- a/src/test/run-pass/type-id-higher-rank.rs
+++ b/src/test/run-pass/type-id-higher-rank.rs
@@ -11,7 +11,7 @@
 // Test that type IDs correctly account for higher-rank lifetimes
 // Also acts as a regression test for an ICE (issue #19791)
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 use std::any::TypeId;
 
diff --git a/src/test/run-pass/typeid-intrinsic.rs b/src/test/run-pass/typeid-intrinsic.rs
index a251fcc7327..fd425214100 100644
--- a/src/test/run-pass/typeid-intrinsic.rs
+++ b/src/test/run-pass/typeid-intrinsic.rs
@@ -11,6 +11,8 @@
 // aux-build:typeid-intrinsic.rs
 // aux-build:typeid-intrinsic2.rs
 
+#![feature(hash, core)]
+
 extern crate "typeid-intrinsic" as other1;
 extern crate "typeid-intrinsic2" as other2;
 
diff --git a/src/test/run-pass/ufcs-polymorphic-paths.rs b/src/test/run-pass/ufcs-polymorphic-paths.rs
index 29b1c8f81d3..1197e7c1414 100644
--- a/src/test/run-pass/ufcs-polymorphic-paths.rs
+++ b/src/test/run-pass/ufcs-polymorphic-paths.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(macro_rules)]
+#![feature(collections, rand)]
 
 use std::borrow::{Cow, IntoCow};
 use std::collections::BitVec;
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 6a071f6a4c5..774aed71ec8 100644
--- a/src/test/run-pass/unboxed-closures-extern-fn-hr.rs
+++ b/src/test/run-pass/unboxed-closures-extern-fn-hr.rs
@@ -10,7 +10,7 @@
 
 // Checks that higher-ranked extern fn pointers implement the full range of Fn traits.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 use std::ops::{Fn,FnMut,FnOnce};
 
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 0aab5be2877..9f211e6d600 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
@@ -11,8 +11,7 @@
 // Checks that the Fn trait hierarchy rules permit
 // any Fn trait to be used where Fn is implemented.
 
-#![feature(unboxed_closures)]
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 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 a8bb0918932..33b1a2d5470 100644
--- a/src/test/run-pass/unboxed-closures-fnmut-as-fnonce.rs
+++ b/src/test/run-pass/unboxed-closures-fnmut-as-fnonce.rs
@@ -11,8 +11,7 @@
 // Checks that the Fn trait hierarchy rules permit
 // FnMut or FnOnce to be used where FnMut is implemented.
 
-#![feature(unboxed_closures)]
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 use std::ops::{FnMut,FnOnce};
 
diff --git a/src/test/run-pass/unboxed-closures-infer-argument-types-from-expected-bound.rs b/src/test/run-pass/unboxed-closures-infer-argument-types-from-expected-bound.rs
index 56de1596110..2b5b5f7f707 100644
--- a/src/test/run-pass/unboxed-closures-infer-argument-types-from-expected-bound.rs
+++ b/src/test/run-pass/unboxed-closures-infer-argument-types-from-expected-bound.rs
@@ -11,7 +11,7 @@
 // Test that we are able to infer that the type of `x` is `int` based
 // on the expected type from the object.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 use std::num::ToPrimitive;
 
diff --git a/src/test/run-pass/unboxed-closures-infer-argument-types-from-expected-object-type.rs b/src/test/run-pass/unboxed-closures-infer-argument-types-from-expected-object-type.rs
index c74ed665e7a..85b17d4b4d8 100644
--- a/src/test/run-pass/unboxed-closures-infer-argument-types-from-expected-object-type.rs
+++ b/src/test/run-pass/unboxed-closures-infer-argument-types-from-expected-object-type.rs
@@ -11,7 +11,7 @@
 // Test that we are able to infer that the type of `x` is `int` based
 // on the expected type from the object.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 use std::num::ToPrimitive;
 
diff --git a/src/test/run-pass/unboxed-closures-infer-argument-types-with-bound-regions-from-expected-bound.rs b/src/test/run-pass/unboxed-closures-infer-argument-types-with-bound-regions-from-expected-bound.rs
index a61dd095a0d..f962a435020 100644
--- a/src/test/run-pass/unboxed-closures-infer-argument-types-with-bound-regions-from-expected-bound.rs
+++ b/src/test/run-pass/unboxed-closures-infer-argument-types-with-bound-regions-from-expected-bound.rs
@@ -11,7 +11,7 @@
 // Test that we are able to infer that the type of `x` is `int` based
 // on the expected type from the object.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 use std::num::ToPrimitive;
 
diff --git a/src/test/run-pass/unboxed-closures-manual-impl.rs b/src/test/run-pass/unboxed-closures-manual-impl.rs
index f1b79a1829e..f2c278c2988 100644
--- a/src/test/run-pass/unboxed-closures-manual-impl.rs
+++ b/src/test/run-pass/unboxed-closures-manual-impl.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 use std::ops::FnMut;
 
diff --git a/src/test/run-pass/unboxed-closures-monomorphization.rs b/src/test/run-pass/unboxed-closures-monomorphization.rs
index 056ae63b684..e221811948c 100644
--- a/src/test/run-pass/unboxed-closures-monomorphization.rs
+++ b/src/test/run-pass/unboxed-closures-monomorphization.rs
@@ -13,7 +13,7 @@
 
 #![allow(unknown_features)]
 #![feature(box_syntax)]
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 fn main(){
     fn bar<'a, T:Clone+'a> (t: T) -> Box<FnMut()->T + 'a> {
diff --git a/src/test/run-pass/unboxed-closures-prelude.rs b/src/test/run-pass/unboxed-closures-prelude.rs
index 4ed3fa5ca2d..61070abdcbe 100644
--- a/src/test/run-pass/unboxed-closures-prelude.rs
+++ b/src/test/run-pass/unboxed-closures-prelude.rs
@@ -12,7 +12,7 @@
 
 #![allow(unknown_features)]
 #![feature(box_syntax)]
-#![feature(unboxed_closures)]
+#![feature(unboxed_closures, core)]
 
 fn main() {
     // FIXME (#22405): Replace `Box::new` with `box` here when/if possible.
diff --git a/src/test/run-pass/unfold-cross-crate.rs b/src/test/run-pass/unfold-cross-crate.rs
index 2af38047264..4ad3f0e591b 100644
--- a/src/test/run-pass/unfold-cross-crate.rs
+++ b/src/test/run-pass/unfold-cross-crate.rs
@@ -10,6 +10,8 @@
 
 // no-pretty-expanded FIXME #15189
 
+#![feature(core)]
+
 use std::iter::Unfold;
 
 // Unfold had a bug with 'a that mean it didn't work
diff --git a/src/test/run-pass/unit-like-struct-drop-run.rs b/src/test/run-pass/unit-like-struct-drop-run.rs
index 66cc8d658c0..b035cb89c36 100644
--- a/src/test/run-pass/unit-like-struct-drop-run.rs
+++ b/src/test/run-pass/unit-like-struct-drop-run.rs
@@ -10,6 +10,8 @@
 
 // Make sure the destructor is run for unit-like structs.
 
+#![feature(alloc)]
+
 use std::boxed::BoxAny;
 use std::thread;
 
diff --git a/src/test/run-pass/unsized3.rs b/src/test/run-pass/unsized3.rs
index f9185cd2642..de5e356f8cd 100644
--- a/src/test/run-pass/unsized3.rs
+++ b/src/test/run-pass/unsized3.rs
@@ -11,7 +11,7 @@
 // Test structs with always-unsized fields.
 
 #![allow(unknown_features)]
-#![feature(box_syntax)]
+#![feature(box_syntax, core)]
 
 use std::mem;
 use std::raw;
diff --git a/src/test/run-pass/utf8_chars.rs b/src/test/run-pass/utf8_chars.rs
index c54b3b69c68..45a3f2327aa 100644
--- a/src/test/run-pass/utf8_chars.rs
+++ b/src/test/run-pass/utf8_chars.rs
@@ -10,6 +10,8 @@
 //
 // ignore-lexer-test FIXME #15679
 
+#![feature(collections, core, str_char)]
+
 use std::str;
 
 pub fn main() {
diff --git a/src/test/run-pass/variadic-ffi.rs b/src/test/run-pass/variadic-ffi.rs
index 60d617822cd..badd8b89877 100644
--- a/src/test/run-pass/variadic-ffi.rs
+++ b/src/test/run-pass/variadic-ffi.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc, std_misc)]
+
 extern crate libc;
 
 use std::ffi::{self, CString};
diff --git a/src/test/run-pass/variance-intersection-of-ref-and-opt-ref.rs b/src/test/run-pass/variance-intersection-of-ref-and-opt-ref.rs
index 948d68e0ccd..fe1deba7b0d 100644
--- a/src/test/run-pass/variance-intersection-of-ref-and-opt-ref.rs
+++ b/src/test/run-pass/variance-intersection-of-ref-and-opt-ref.rs
@@ -14,6 +14,7 @@
 // common intersection.
 
 #![allow(dead_code)]
+#![feature(core)]
 
 struct List<'l> {
     field1: &'l i32,
diff --git a/src/test/run-pass/variance-vec-covariant.rs b/src/test/run-pass/variance-vec-covariant.rs
index caec6df5a4d..9e98ca0be3b 100644
--- a/src/test/run-pass/variance-vec-covariant.rs
+++ b/src/test/run-pass/variance-vec-covariant.rs
@@ -11,6 +11,7 @@
 // Test that vec is now covariant in its argument type.
 
 #![allow(dead_code)]
+#![feature(core)]
 
 fn foo<'a,'b>(v1: Vec<&'a i32>, v2: Vec<&'b i32>) -> i32 {
     bar(v1, v2).cloned().unwrap_or(0) // only type checks if we can intersect 'a and 'b
diff --git a/src/test/run-pass/vec-concat.rs b/src/test/run-pass/vec-concat.rs
index 64c4c17386b..870d48213c7 100644
--- a/src/test/run-pass/vec-concat.rs
+++ b/src/test/run-pass/vec-concat.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 use std::vec;
 
 pub fn main() {
diff --git a/src/test/run-pass/vec-macro-no-std.rs b/src/test/run-pass/vec-macro-no-std.rs
index 47b87fce2ab..a0e789674d2 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)]
+#![feature(lang_items, start, no_std, core, libc, collections)]
 #![no_std]
 
 extern crate "std" as other;
diff --git a/src/test/run-pass/vector-sort-panic-safe.rs b/src/test/run-pass/vector-sort-panic-safe.rs
index a6f4b8299cb..c029aa23448 100644
--- a/src/test/run-pass/vector-sort-panic-safe.rs
+++ b/src/test/run-pass/vector-sort-panic-safe.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(rand, core)]
+
 use std::sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT, Ordering};
 use std::rand::{thread_rng, Rng, Rand};
 use std::thread;
diff --git a/src/test/run-pass/wait-forked-but-failed-child.rs b/src/test/run-pass/wait-forked-but-failed-child.rs
index dcbecb859e5..5637263e935 100644
--- a/src/test/run-pass/wait-forked-but-failed-child.rs
+++ b/src/test/run-pass/wait-forked-but-failed-child.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(libc, old_io)]
+
 extern crate libc;
 
 use std::old_io::process::Command;
diff --git a/src/test/run-pass/while-let.rs b/src/test/run-pass/while-let.rs
index 1780445fb3b..e2352002c03 100644
--- a/src/test/run-pass/while-let.rs
+++ b/src/test/run-pass/while-let.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 use std::collections::BinaryHeap;
 
 fn make_pq() -> BinaryHeap<int> {
diff --git a/src/test/run-pass/while-prelude-drop.rs b/src/test/run-pass/while-prelude-drop.rs
index bfabcb4d87b..84808fff0fa 100644
--- a/src/test/run-pass/while-prelude-drop.rs
+++ b/src/test/run-pass/while-prelude-drop.rs
@@ -8,6 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(collections)]
+
 use std::string::String;
 
 #[derive(PartialEq)]