File tree Expand file tree Collapse file tree 1 file changed +10
-3
lines changed Expand file tree Collapse file tree 1 file changed +10
-3
lines changed Original file line number Diff line number Diff line change
1
+ //! Tests that errors from both the writer (`Write::write`) and formatter (`Display::fmt`)
2
+ //! are correctly propagated: writer errors return `Err`, formatter errors cause panics.
3
+
1
4
//@ run-pass
2
5
//@ needs-unwind
3
6
@@ -24,7 +27,9 @@ impl Write for ErrorWriter {
24
27
Err ( Error :: new ( WRITER_ERROR , "not connected" ) )
25
28
}
26
29
27
- fn flush ( & mut self ) -> io:: Result < ( ) > { Ok ( ( ) ) }
30
+ fn flush ( & mut self ) -> io:: Result < ( ) > {
31
+ Ok ( ( ) )
32
+ }
28
33
}
29
34
30
35
fn main ( ) {
@@ -37,7 +42,8 @@ fn main() {
37
42
let err = res. expect_err ( "formatter error did not lead to panic" ) . downcast :: < & str > ( ) . unwrap ( ) ;
38
43
assert ! (
39
44
err. contains( "formatting trait implementation returned an error" ) ,
40
- "unexpected panic: {}" , err
45
+ "unexpected panic: {}" ,
46
+ err
41
47
) ;
42
48
43
49
// Writer error when there's some string before the first `{}`
@@ -50,6 +56,7 @@ fn main() {
50
56
let err = res. expect_err ( "formatter error did not lead to panic" ) . downcast :: < & str > ( ) . unwrap ( ) ;
51
57
assert ! (
52
58
err. contains( "formatting trait implementation returned an error" ) ,
53
- "unexpected panic: {}" , err
59
+ "unexpected panic: {}" ,
60
+ err
54
61
) ;
55
62
}
You can’t perform that action at this time.
0 commit comments