@@ -58,6 +58,7 @@ fn formatting_options_ctor() {
58
58
}
59
59
60
60
#[ test]
61
+ #[ allow( deprecated) ]
61
62
fn formatting_options_flags ( ) {
62
63
use core:: fmt:: * ;
63
64
for sign in [ None , Some ( Sign :: Plus ) , Some ( Sign :: Minus ) ] {
@@ -75,6 +76,25 @@ fn formatting_options_flags() {
75
76
assert_eq ! ( formatting_options. get_alternate( ) , alternate) ;
76
77
assert_eq ! ( formatting_options. get_sign_aware_zero_pad( ) , sign_aware_zero_pad) ;
77
78
assert_eq ! ( formatting_options. get_debug_as_hex( ) , debug_as_hex) ;
79
+
80
+ let mut output = String :: new ( ) ;
81
+ let fmt = Formatter :: new ( & mut output, formatting_options) ;
82
+ assert_eq ! ( fmt. options( ) , formatting_options) ;
83
+
84
+ assert_eq ! ( fmt. sign_minus( ) , sign == Some ( Sign :: Minus ) ) ;
85
+ assert_eq ! ( fmt. sign_plus( ) , sign == Some ( Sign :: Plus ) ) ;
86
+ assert_eq ! ( fmt. alternate( ) , alternate) ;
87
+ assert_eq ! ( fmt. sign_aware_zero_pad( ) , sign_aware_zero_pad) ;
88
+
89
+ // The flags method is deprecated.
90
+ // This checks compatibility with older versions of Rust.
91
+ assert_eq ! ( fmt. flags( ) & 1 != 0 , sign == Some ( Sign :: Plus ) ) ;
92
+ assert_eq ! ( fmt. flags( ) & 2 != 0 , sign == Some ( Sign :: Minus ) ) ;
93
+ assert_eq ! ( fmt. flags( ) & 4 != 0 , alternate) ;
94
+ assert_eq ! ( fmt. flags( ) & 8 != 0 , sign_aware_zero_pad) ;
95
+ assert_eq ! ( fmt. flags( ) & 16 != 0 , debug_as_hex == Some ( DebugAsHex :: Lower ) ) ;
96
+ assert_eq ! ( fmt. flags( ) & 32 != 0 , debug_as_hex == Some ( DebugAsHex :: Upper ) ) ;
97
+ assert_eq ! ( fmt. flags( ) & 0xFFFF_FFC0 , 0 ) ;
78
98
}
79
99
}
80
100
}
0 commit comments