File tree Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Original file line number Diff line number Diff line change @@ -2227,6 +2227,12 @@ fn write_in_place_with_drop<T>(
22272227#[ rustc_unsafe_specialization_marker]
22282228trait SourceIterMarker : SourceIter < Source : AsIntoIter > { }
22292229
2230+ // The std-internal SourceIter/InPlaceIterable traits are only implemented by chains of
2231+ // Adapter<Adapter<Adapter<IntoIter>>> (all owned by core/std). Additional bounds
2232+ // on the adapter implementations (beyond `impl<I: Trait> Trait for Adapter<I>`) only depend on other
2233+ // traits already marked as specialization traits (Copy, TrustedRandomAccess, FusedIterator).
2234+ // I.e. the marker does not depend on lifetimes of user-supplied types. Modulo the Copy hole, which
2235+ // several other specializations already depend on.
22302236impl < T > SourceIterMarker for T where T : SourceIter < Source : AsIntoIter > + InPlaceIterable { }
22312237
22322238impl < T , I > SpecFrom < T , I > for Vec < T >
You can’t perform that action at this time.
0 commit comments