8282) ]
8383#![ no_std]
8484#![ needs_allocator]
85+ //
86+ // Lints:
87+ #![ deny( unsafe_op_in_unsafe_fn) ]
8588#![ warn( deprecated_in_future) ]
86- #![ warn( missing_docs) ]
8789#![ warn( missing_debug_implementations) ]
90+ #![ warn( missing_docs) ]
8891#![ allow( explicit_outlives_requirements) ]
89- #![ deny( unsafe_op_in_unsafe_fn) ]
90- #![ feature( rustc_allow_const_fn_unstable) ]
91- #![ cfg_attr( not( test) , feature( generator_trait) ) ]
92- #![ cfg_attr( test, feature( test) ) ]
93- #![ cfg_attr( test, feature( new_uninit) ) ]
92+ //
93+ // Library features:
94+ #![ feature( alloc_layout_extra) ]
9495#![ feature( allocator_api) ]
9596#![ feature( array_chunks) ]
9697#![ feature( array_methods) ]
9798#![ feature( array_windows) ]
98- #![ feature( allow_internal_unstable) ]
99- #![ feature( arbitrary_self_types) ]
10099#![ feature( async_stream) ]
101- #![ feature( box_patterns) ]
102- #![ feature( box_syntax) ]
103- #![ feature( cfg_sanitize) ]
104- #![ feature( cfg_target_has_atomic) ]
105100#![ feature( coerce_unsized) ]
106101#![ cfg_attr( not( no_global_oom_handling) , feature( const_btree_new) ) ]
107- #![ feature( const_fn_trait_bound) ]
108- #![ feature( cow_is_borrowed) ]
109102#![ feature( const_cow_is_borrowed) ]
110- #![ feature( const_trait_impl) ]
111- #![ feature( destructuring_assignment) ]
112- #![ feature( dispatch_from_dyn) ]
113103#![ feature( core_intrinsics) ]
114- #![ feature( dropck_eyepatch ) ]
104+ #![ feature( dispatch_from_dyn ) ]
115105#![ feature( exact_size_is_empty) ]
116- #![ feature( exclusive_range_pattern) ]
117106#![ feature( extend_one) ]
118107#![ feature( fmt_internals) ]
119108#![ feature( fn_traits) ]
120- #![ feature( fundamental) ]
109+ #![ feature( inherent_ascii_escape) ]
110+ #![ cfg_attr( bootstrap, feature( format_args_capture) ) ]
121111#![ feature( inplace_iteration) ]
122- // Technically, this is a bug in rustdoc: rustdoc sees the documentation on `#[lang = slice_alloc]`
123- // blocks is for `&[T]`, which also has documentation using this feature in `core`, and gets mad
124- // that the feature-gate isn't enabled. Ideally, it wouldn't check for the feature gate for docs
125- // from other crates, but since this can only appear for lang items, it doesn't seem worth fixing.
126- #![ feature( intra_doc_pointers) ]
127112#![ feature( iter_advance_by) ]
128113#![ feature( iter_zip) ]
129- #![ feature( lang_items) ]
130114#![ feature( layout_for_ptr) ]
131- #![ feature( negative_impls ) ]
132- #![ feature( never_type ) ]
133- #![ feature( nll ) ]
115+ #![ feature( maybe_uninit_extra ) ]
116+ #![ feature( maybe_uninit_slice ) ]
117+ #![ cfg_attr ( test , feature( new_uninit ) ) ]
134118#![ feature( nonnull_slice_from_raw_parts) ]
135- #![ feature( auto_traits) ]
136- #![ feature( option_result_unwrap_unchecked) ]
137119#![ feature( pattern) ]
138120#![ feature( ptr_internals) ]
139- #![ feature( rustc_attrs) ]
140121#![ feature( receiver_trait) ]
141- #![ feature( min_specialization) ]
142122#![ feature( set_ptr_value) ]
123+ #![ feature( slice_group_by) ]
143124#![ feature( slice_ptr_get) ]
144125#![ feature( slice_ptr_len) ]
145126#![ feature( slice_range) ]
146- #![ feature( staged_api) ]
147127#![ feature( str_internals) ]
148128#![ feature( trusted_len) ]
149- #![ feature( unboxed_closures) ]
129+ #![ feature( trusted_random_access) ]
130+ #![ feature( try_trait_v2) ]
150131#![ feature( unicode_internals) ]
151132#![ feature( unsize) ]
152- #![ feature( unsized_fn_params) ]
133+ //
134+ // Language features:
153135#![ feature( allocator_internals) ]
154- #![ feature( slice_partition_dedup) ]
155- #![ feature( maybe_uninit_extra, maybe_uninit_slice, maybe_uninit_uninit_array) ]
156- #![ feature( alloc_layout_extra) ]
157- #![ feature( trusted_random_access) ]
158- #![ feature( try_trait_v2) ]
136+ #![ feature( allow_internal_unstable) ]
159137#![ feature( associated_type_bounds) ]
160- #![ feature( slice_group_by) ]
161- #![ feature( decl_macro) ]
138+ #![ feature( box_syntax) ]
139+ #![ feature( cfg_sanitize) ]
140+ #![ feature( cfg_target_has_atomic) ]
141+ #![ feature( const_fn_trait_bound) ]
142+ #![ feature( const_trait_impl) ]
143+ #![ feature( destructuring_assignment) ]
144+ #![ feature( dropck_eyepatch) ]
145+ #![ feature( exclusive_range_pattern) ]
146+ #![ feature( fundamental) ]
147+ #![ cfg_attr( not( test) , feature( generator_trait) ) ]
148+ #![ feature( lang_items) ]
149+ #![ feature( min_specialization) ]
150+ #![ feature( negative_impls) ]
151+ #![ feature( never_type) ]
152+ #![ feature( nll) ] // Not necessary, but here to test the `nll` feature.
153+ #![ feature( rustc_allow_const_fn_unstable) ]
154+ #![ feature( rustc_attrs) ]
155+ #![ feature( staged_api) ]
156+ #![ cfg_attr( test, feature( test) ) ]
157+ #![ feature( unboxed_closures) ]
158+ #![ feature( unsized_fn_params) ]
159+ //
160+ // Rustdoc features:
162161#![ feature( doc_cfg) ]
163- #![ cfg_attr( not( bootstrap) , feature( doc_cfg_hide) ) ]
164- // Allow testing this library
162+ #![ feature( doc_cfg_hide) ]
163+ // Technically, this is a bug in rustdoc: rustdoc sees the documentation on `#[lang = slice_alloc]`
164+ // blocks is for `&[T]`, which also has documentation using this feature in `core`, and gets mad
165+ // that the feature-gate isn't enabled. Ideally, it wouldn't check for the feature gate for docs
166+ // from other crates, but since this can only appear for lang items, it doesn't seem worth fixing.
167+ #![ feature( intra_doc_pointers) ]
165168
169+ // Allow testing this library
166170#[ cfg( test) ]
167171#[ macro_use]
168172extern crate std;
@@ -173,6 +177,8 @@ extern crate test;
173177#[ macro_use]
174178mod macros;
175179
180+ mod raw_vec;
181+
176182// Heaps provided for low-level allocation strategies
177183
178184pub mod alloc;
@@ -191,7 +197,6 @@ mod boxed {
191197pub mod borrow;
192198pub mod collections;
193199pub mod fmt;
194- pub mod raw_vec;
195200#[ cfg( not( no_rc) ) ]
196201pub mod rc;
197202pub mod slice;
0 commit comments