Skip to content

Commit e0719bd

Browse files
authored
Rollup merge of rust-lang#95032 - m-ou-se:std-features, r=yaahc
Clean up, categorize and sort unstable features in std.
2 parents e6ff7b1 + 39a8442 commit e0719bd

File tree

1 file changed

+73
-64
lines changed

1 file changed

+73
-64
lines changed

library/std/src/lib.rs

+73-64
Original file line numberDiff line numberDiff line change
@@ -218,111 +218,120 @@
218218
feature(slice_index_methods, coerce_unsized, sgx_platform)
219219
)]
220220
#![deny(rustc::existing_doc_keyword)]
221-
// std is implemented with unstable features, many of which are internal
222-
// compiler details that will never be stable
223-
// NB: the following list is sorted to minimize merge conflicts.
221+
//
222+
// Language features:
224223
#![feature(alloc_error_handler)]
225-
#![feature(alloc_layout_extra)]
226-
#![feature(allocator_api)]
227224
#![feature(allocator_internals)]
228225
#![feature(allow_internal_unsafe)]
229226
#![feature(allow_internal_unstable)]
230-
#![feature(array_error_internals)]
231-
#![feature(assert_matches)]
232-
#![feature(associated_type_bounds)]
233-
#![feature(async_iterator)]
234-
#![feature(atomic_mut_ptr)]
235-
#![feature(bench_black_box)]
236227
#![feature(box_syntax)]
237228
#![feature(c_unwind)]
238-
#![feature(c_variadic)]
239-
#![feature(cfg_accessible)]
240-
#![feature(cfg_eval)]
241229
#![feature(cfg_target_thread_local)]
242-
#![feature(char_error_internals)]
243-
#![feature(char_internals)]
244-
#![feature(concat_bytes)]
245230
#![feature(concat_idents)]
246231
#![cfg_attr(bootstrap, feature(const_fn_fn_ptr_basics))]
247232
#![cfg_attr(bootstrap, feature(const_fn_trait_bound))]
248-
#![feature(const_format_args)]
249-
#![feature(const_io_structs)]
250-
#![feature(const_ip)]
251-
#![feature(const_ipv4)]
252-
#![feature(const_ipv6)]
253233
#![feature(const_mut_refs)]
254-
#![feature(const_option)]
255-
#![feature(const_socketaddr)]
256234
#![feature(const_trait_impl)]
257-
#![feature(c_size_t)]
258-
#![feature(core_ffi_c)]
259-
#![feature(core_intrinsics)]
260-
#![feature(core_panic)]
261-
#![feature(custom_test_frameworks)]
262235
#![feature(decl_macro)]
236+
#![cfg_attr(not(bootstrap), feature(deprecated_suggestion))]
263237
#![feature(doc_cfg)]
264238
#![feature(doc_cfg_hide)]
265-
#![feature(rustdoc_internals)]
266-
#![cfg_attr(not(bootstrap), feature(deprecated_suggestion))]
267239
#![feature(doc_masked)]
268240
#![feature(doc_notable_trait)]
269241
#![feature(dropck_eyepatch)]
270-
#![feature(duration_checked_float)]
271-
#![feature(duration_constants)]
272-
#![feature(edition_panic)]
273-
#![feature(exact_size_is_empty)]
274242
#![feature(exhaustive_patterns)]
275-
#![feature(extend_one)]
276-
#![feature(float_minimum_maximum)]
277-
#![feature(format_args_nl)]
278-
#![feature(strict_provenance)]
279-
#![feature(get_mut_unchecked)]
280-
#![feature(hashmap_internals)]
281-
#![feature(int_error_internals)]
282243
#![feature(intra_doc_pointers)]
283244
#![feature(lang_items)]
284245
#![feature(linkage)]
285-
#![feature(log_syntax)]
286-
#![feature(map_try_insert)]
287-
#![feature(maybe_uninit_slice)]
288-
#![feature(maybe_uninit_write_slice)]
289246
#![feature(min_specialization)]
290-
#![feature(mixed_integer_ops)]
291247
#![feature(must_not_suspend)]
292248
#![feature(needs_panic_runtime)]
293249
#![feature(negative_impls)]
294250
#![feature(never_type)]
295-
#![feature(new_uninit)]
296251
#![feature(nll)]
252+
#![feature(platform_intrinsics)]
253+
#![feature(prelude_import)]
254+
#![feature(rustc_attrs)]
255+
#![feature(rustdoc_internals)]
256+
#![feature(staged_api)]
257+
#![feature(thread_local)]
258+
#![feature(try_blocks)]
259+
//
260+
// Library features (core):
261+
#![feature(array_error_internals)]
262+
#![feature(char_error_internals)]
263+
#![feature(char_internals)]
264+
#![feature(core_intrinsics)]
265+
#![feature(duration_checked_float)]
266+
#![feature(duration_constants)]
267+
#![feature(exact_size_is_empty)]
268+
#![feature(extend_one)]
269+
#![feature(float_minimum_maximum)]
270+
#![feature(hashmap_internals)]
271+
#![feature(int_error_internals)]
272+
#![feature(maybe_uninit_slice)]
273+
#![feature(maybe_uninit_write_slice)]
274+
#![feature(mixed_integer_ops)]
297275
#![feature(nonnull_slice_from_raw_parts)]
298-
#![feature(once_cell)]
276+
#![feature(panic_can_unwind)]
299277
#![feature(panic_info_message)]
300278
#![feature(panic_internals)]
301-
#![feature(panic_can_unwind)]
302-
#![feature(panic_unwind)]
303-
#![feature(platform_intrinsics)]
304279
#![feature(portable_simd)]
305-
#![feature(prelude_import)]
306280
#![feature(ptr_as_uninit)]
307281
#![feature(raw_os_nonzero)]
308-
#![feature(rustc_attrs)]
309-
#![feature(saturating_int_impl)]
310282
#![feature(slice_internals)]
311283
#![feature(slice_ptr_get)]
312-
#![feature(staged_api)]
313284
#![feature(std_internals)]
314-
#![feature(stdsimd)]
315285
#![feature(str_internals)]
316-
#![feature(test)]
317-
#![feature(thread_local)]
318-
#![feature(thread_local_internals)]
319-
#![feature(toowned_clone_into)]
286+
#![feature(strict_provenance)]
320287
#![feature(total_cmp)]
321-
#![feature(trace_macros)]
322-
#![feature(try_blocks)]
288+
//
289+
// Library features (alloc):
290+
#![feature(alloc_layout_extra)]
291+
#![feature(allocator_api)]
292+
#![feature(get_mut_unchecked)]
293+
#![feature(map_try_insert)]
294+
#![feature(new_uninit)]
295+
#![feature(toowned_clone_into)]
323296
#![feature(try_reserve_kind)]
324297
#![feature(vec_into_raw_parts)]
325-
// NB: the above list is sorted to minimize merge conflicts.
298+
//
299+
// Library features (unwind):
300+
#![feature(panic_unwind)]
301+
//
302+
// Only for re-exporting:
303+
#![feature(assert_matches)]
304+
#![feature(async_iterator)]
305+
#![feature(c_size_t)]
306+
#![feature(c_variadic)]
307+
#![feature(cfg_accessible)]
308+
#![feature(cfg_eval)]
309+
#![feature(concat_bytes)]
310+
#![feature(const_format_args)]
311+
#![feature(core_ffi_c)]
312+
#![feature(core_panic)]
313+
#![feature(custom_test_frameworks)]
314+
#![feature(edition_panic)]
315+
#![feature(format_args_nl)]
316+
#![feature(log_syntax)]
317+
#![feature(once_cell)]
318+
#![feature(saturating_int_impl)]
319+
#![feature(stdsimd)]
320+
#![feature(test)]
321+
#![feature(trace_macros)]
322+
//
323+
// Only used in tests/benchmarks:
324+
#![feature(bench_black_box)]
325+
//
326+
// Only for const-ness:
327+
#![feature(const_io_structs)]
328+
#![feature(const_ip)]
329+
#![feature(const_ipv4)]
330+
#![feature(const_ipv6)]
331+
#![feature(const_option)]
332+
#![feature(const_socketaddr)]
333+
#![feature(thread_local_internals)]
334+
//
326335
#![default_lib_allocator]
327336

328337
// Explicitly import the prelude. The compiler uses this same unstable attribute

0 commit comments

Comments
 (0)