Skip to content

Commit e4248fe

Browse files
committed
Categorize and sort unstable features in std.
1 parent f0b12f4 commit e4248fe

File tree

1 file changed

+72
-61
lines changed

1 file changed

+72
-61
lines changed

library/std/src/lib.rs

+72-61
Original file line numberDiff line numberDiff line change
@@ -218,107 +218,118 @@
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(async_iterator)]
233-
#![feature(bench_black_box)]
234227
#![feature(box_syntax)]
235228
#![feature(c_unwind)]
236-
#![feature(c_variadic)]
237-
#![feature(cfg_accessible)]
238-
#![feature(cfg_eval)]
239229
#![feature(cfg_target_thread_local)]
240-
#![feature(char_error_internals)]
241-
#![feature(char_internals)]
242-
#![feature(concat_bytes)]
243230
#![feature(concat_idents)]
244231
#![cfg_attr(bootstrap, feature(const_fn_fn_ptr_basics))]
245232
#![cfg_attr(bootstrap, feature(const_fn_trait_bound))]
246-
#![feature(const_format_args)]
247-
#![feature(const_io_structs)]
248-
#![feature(const_ip)]
249-
#![feature(const_ipv4)]
250-
#![feature(const_ipv6)]
251233
#![feature(const_mut_refs)]
252-
#![feature(const_socketaddr)]
253234
#![feature(const_trait_impl)]
254-
#![feature(c_size_t)]
255-
#![feature(core_ffi_c)]
256-
#![feature(core_intrinsics)]
257-
#![feature(core_panic)]
258-
#![feature(custom_test_frameworks)]
259235
#![feature(decl_macro)]
236+
#![cfg_attr(not(bootstrap), feature(deprecated_suggestion))]
260237
#![feature(doc_cfg)]
261238
#![feature(doc_cfg_hide)]
262-
#![feature(rustdoc_internals)]
263-
#![cfg_attr(not(bootstrap), feature(deprecated_suggestion))]
264239
#![feature(doc_masked)]
265240
#![feature(doc_notable_trait)]
266241
#![feature(dropck_eyepatch)]
267-
#![feature(duration_checked_float)]
268-
#![feature(duration_constants)]
269-
#![feature(edition_panic)]
270-
#![feature(exact_size_is_empty)]
271242
#![feature(exhaustive_patterns)]
272-
#![feature(extend_one)]
273-
#![feature(float_minimum_maximum)]
274-
#![feature(format_args_nl)]
275-
#![feature(strict_provenance)]
276-
#![feature(get_mut_unchecked)]
277-
#![feature(hashmap_internals)]
278-
#![feature(int_error_internals)]
279243
#![feature(intra_doc_pointers)]
280244
#![feature(lang_items)]
281245
#![feature(linkage)]
282-
#![feature(log_syntax)]
283-
#![feature(map_try_insert)]
284-
#![feature(maybe_uninit_slice)]
285-
#![feature(maybe_uninit_write_slice)]
286246
#![feature(min_specialization)]
287-
#![feature(mixed_integer_ops)]
288247
#![feature(must_not_suspend)]
289248
#![feature(needs_panic_runtime)]
290249
#![feature(negative_impls)]
291250
#![feature(never_type)]
292-
#![feature(new_uninit)]
293251
#![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)]
294275
#![feature(nonnull_slice_from_raw_parts)]
295-
#![feature(once_cell)]
276+
#![feature(panic_can_unwind)]
296277
#![feature(panic_info_message)]
297278
#![feature(panic_internals)]
298-
#![feature(panic_can_unwind)]
299-
#![feature(panic_unwind)]
300-
#![feature(platform_intrinsics)]
301279
#![feature(portable_simd)]
302-
#![feature(prelude_import)]
303280
#![feature(ptr_as_uninit)]
304281
#![feature(raw_os_nonzero)]
305-
#![feature(rustc_attrs)]
306-
#![feature(saturating_int_impl)]
307282
#![feature(slice_ptr_get)]
308-
#![feature(staged_api)]
309283
#![feature(std_internals)]
310-
#![feature(stdsimd)]
311284
#![feature(str_internals)]
312-
#![feature(test)]
313-
#![feature(thread_local)]
314-
#![feature(thread_local_internals)]
315-
#![feature(toowned_clone_into)]
285+
#![feature(strict_provenance)]
316286
#![feature(total_cmp)]
317-
#![feature(trace_macros)]
318-
#![feature(try_blocks)]
287+
//
288+
// Library features (alloc):
289+
#![feature(alloc_layout_extra)]
290+
#![feature(allocator_api)]
291+
#![feature(get_mut_unchecked)]
292+
#![feature(map_try_insert)]
293+
#![feature(new_uninit)]
294+
#![feature(toowned_clone_into)]
319295
#![feature(try_reserve_kind)]
320296
#![feature(vec_into_raw_parts)]
321-
// NB: the above list is sorted to minimize merge conflicts.
297+
//
298+
// Library features (unwind):
299+
#![feature(panic_unwind)]
300+
//
301+
// Only for re-exporting:
302+
#![feature(assert_matches)]
303+
#![feature(async_iterator)]
304+
#![feature(c_size_t)]
305+
#![feature(c_variadic)]
306+
#![feature(cfg_accessible)]
307+
#![feature(cfg_eval)]
308+
#![feature(concat_bytes)]
309+
#![feature(const_format_args)]
310+
#![feature(core_ffi_c)]
311+
#![feature(core_panic)]
312+
#![feature(custom_test_frameworks)]
313+
#![feature(edition_panic)]
314+
#![feature(format_args_nl)]
315+
#![feature(log_syntax)]
316+
#![feature(once_cell)]
317+
#![feature(saturating_int_impl)]
318+
#![feature(stdsimd)]
319+
#![feature(test)]
320+
#![feature(trace_macros)]
321+
//
322+
// Only used in tests/benchmarks:
323+
#![feature(bench_black_box)]
324+
//
325+
// Only for const-ness:
326+
#![feature(const_io_structs)]
327+
#![feature(const_ip)]
328+
#![feature(const_ipv4)]
329+
#![feature(const_ipv6)]
330+
#![feature(const_socketaddr)]
331+
#![feature(thread_local_internals)]
332+
//
322333
#![default_lib_allocator]
323334

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

0 commit comments

Comments
 (0)