@@ -64,7 +64,7 @@ use crate::io::{self, buffered::LineWriterShim, BufWriter, IntoInnerError, IoSli
6464/// }
6565/// ```
6666#[ stable( feature = "rust1" , since = "1.0.0" ) ]
67- pub struct LineWriter < W : Write > {
67+ pub struct LineWriter < W : ? Sized + Write > {
6868 inner : BufWriter < W > ,
6969}
7070
@@ -109,27 +109,6 @@ impl<W: Write> LineWriter<W> {
109109 LineWriter { inner : BufWriter :: with_capacity ( capacity, inner) }
110110 }
111111
112- /// Gets a reference to the underlying writer.
113- ///
114- /// # Examples
115- ///
116- /// ```no_run
117- /// use std::fs::File;
118- /// use std::io::LineWriter;
119- ///
120- /// fn main() -> std::io::Result<()> {
121- /// let file = File::create("poem.txt")?;
122- /// let file = LineWriter::new(file);
123- ///
124- /// let reference = file.get_ref();
125- /// Ok(())
126- /// }
127- /// ```
128- #[ stable( feature = "rust1" , since = "1.0.0" ) ]
129- pub fn get_ref ( & self ) -> & W {
130- self . inner . get_ref ( )
131- }
132-
133112 /// Gets a mutable reference to the underlying writer.
134113 ///
135114 /// Caution must be taken when calling methods on the mutable reference
@@ -184,8 +163,31 @@ impl<W: Write> LineWriter<W> {
184163 }
185164}
186165
166+ impl < W : ?Sized + Write > LineWriter < W > {
167+ /// Gets a reference to the underlying writer.
168+ ///
169+ /// # Examples
170+ ///
171+ /// ```no_run
172+ /// use std::fs::File;
173+ /// use std::io::LineWriter;
174+ ///
175+ /// fn main() -> std::io::Result<()> {
176+ /// let file = File::create("poem.txt")?;
177+ /// let file = LineWriter::new(file);
178+ ///
179+ /// let reference = file.get_ref();
180+ /// Ok(())
181+ /// }
182+ /// ```
183+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
184+ pub fn get_ref ( & self ) -> & W {
185+ self . inner . get_ref ( )
186+ }
187+ }
188+
187189#[ stable( feature = "rust1" , since = "1.0.0" ) ]
188- impl < W : Write > Write for LineWriter < W > {
190+ impl < W : ? Sized + Write > Write for LineWriter < W > {
189191 fn write ( & mut self , buf : & [ u8 ] ) -> io:: Result < usize > {
190192 LineWriterShim :: new ( & mut self . inner ) . write ( buf)
191193 }
@@ -216,7 +218,7 @@ impl<W: Write> Write for LineWriter<W> {
216218}
217219
218220#[ stable( feature = "rust1" , since = "1.0.0" ) ]
219- impl < W : Write > fmt:: Debug for LineWriter < W >
221+ impl < W : ? Sized + Write > fmt:: Debug for LineWriter < W >
220222where
221223 W : fmt:: Debug ,
222224{
0 commit comments