]>
git.proxmox.com Git - rustc.git/blob - vendor/derive_more/tests/error/derives_for_structs_with_source.rs
5 assert
!(SimpleErr
.source().is_none());
9 fn named_implicit_no_source() {
10 derive_display
!(TestErr
);
11 #[derive(Default, Debug, Error)]
16 assert
!(TestErr
::default().source().is_none());
20 fn named_implicit_source() {
21 derive_display
!(TestErr
);
22 #[derive(Default, Debug, Error)]
28 let err
= TestErr
::default();
29 assert
!(err
.source().is_some());
30 assert
!(err
.source().unwrap().is
::<SimpleErr
>());
34 fn named_explicit_no_source() {
35 derive_display
!(TestErr
);
36 #[derive(Default, Debug, Error)]
43 assert
!(TestErr
::default().source().is_none());
47 fn named_explicit_source() {
48 derive_display
!(TestErr
);
49 #[derive(Default, Debug, Error)]
52 explicit_source
: SimpleErr
,
56 let err
= TestErr
::default();
57 assert
!(err
.source().is_some());
58 assert
!(err
.source().unwrap().is
::<SimpleErr
>());
62 fn named_explicit_no_source_redundant() {
63 derive_display
!(TestErr
);
64 #[derive(Default, Debug, Error)]
70 assert
!(TestErr
::default().source().is_none());
74 fn named_explicit_source_redundant() {
75 derive_display
!(TestErr
);
76 #[derive(Default, Debug, Error)]
83 let err
= TestErr
::default();
84 assert
!(err
.source().is_some());
85 assert
!(err
.source().unwrap().is
::<SimpleErr
>());
89 fn named_explicit_suppresses_implicit() {
90 derive_display
!(TestErr
);
91 #[derive(Default, Debug, Error)]
98 let err
= TestErr
::default();
99 assert
!(err
.source().is_some());
100 assert
!(err
.source().unwrap().is
::<SimpleErr
>());
104 fn unnamed_implicit_no_source() {
105 derive_display
!(TestErr
);
106 #[derive(Default, Debug, Error)]
107 struct TestErr(i32, i32);
109 assert
!(TestErr
::default().source().is_none());
113 fn unnamed_implicit_source() {
114 derive_display
!(TestErr
);
115 #[derive(Default, Debug, Error)]
116 struct TestErr(SimpleErr
);
118 let err
= TestErr
::default();
119 assert
!(err
.source().is_some());
120 assert
!(err
.source().unwrap().is
::<SimpleErr
>());
124 fn unnamed_explicit_no_source() {
125 derive_display
!(TestErr
);
126 #[derive(Default, Debug, Error)]
127 struct TestErr(#[error(not(source))] SimpleErr);
129 assert
!(TestErr
::default().source().is_none());
133 fn unnamed_explicit_source() {
134 derive_display
!(TestErr
);
135 #[derive(Default, Debug, Error)]
136 struct TestErr(#[error(source)] SimpleErr, i32);
138 let err
= TestErr
::default();
139 assert
!(err
.source().is_some());
140 assert
!(err
.source().unwrap().is
::<SimpleErr
>());
144 fn unnamed_explicit_no_source_redundant() {
145 derive_display
!(TestErr
);
146 #[derive(Default, Debug, Error)]
147 struct TestErr(#[error(not(source))] i32, #[error(not(source))] i32);
149 assert
!(TestErr
::default().source().is_none());
153 fn unnamed_explicit_source_redundant() {
154 derive_display
!(TestErr
);
155 #[derive(Default, Debug, Error)]
156 struct TestErr(#[error(source)] SimpleErr);
158 let err
= TestErr
::default();
159 assert
!(err
.source().is_some());
160 assert
!(err
.source().unwrap().is
::<SimpleErr
>());
165 derive_display
!(TestErr
);
166 #[derive(Default, Debug, Error)]
173 assert
!(TestErr
::default().source().is_none());
177 fn unnamed_ignore() {
178 derive_display
!(TestErr
);
179 #[derive(Default, Debug, Error)]
180 struct TestErr(#[error(ignore)] SimpleErr);
182 assert
!(TestErr
::default().source().is_none());
186 fn named_ignore_redundant() {
187 derive_display
!(TestErr
);
188 #[derive(Default, Debug, Error)]
194 assert
!(TestErr
::default().source().is_none());
198 fn unnamed_ignore_redundant() {
199 derive_display
!(TestErr
);
200 #[derive(Default, Debug, Error)]
201 struct TestErr(#[error(ignore)] i32, #[error(ignore)] i32);
203 assert
!(TestErr
::default().source().is_none());
207 fn named_struct_ignore() {
208 derive_display
!(TestErr
);
209 #[derive(Default, Debug, Error)]
216 assert
!(TestErr
::default().source().is_none())
220 fn unnamed_struct_ignore() {
221 derive_display
!(TestErr
);
222 #[derive(Default, Debug, Error)]
224 struct TestErr(SimpleErr
);
226 assert
!(TestErr
::default().source().is_none())
230 fn named_struct_ignore_redundant() {
231 derive_display
!(TestErr
);
232 #[derive(Default, Debug, Error)]
238 assert
!(TestErr
::default().source().is_none())
242 fn unnamed_struct_ignore_redundant() {
243 derive_display
!(TestErr
);
244 #[derive(Default, Debug, Error)]
246 struct TestErr(i32, i32);
248 assert
!(TestErr
::default().source().is_none())