11use std:: fmt;
22
3+ use thin_vec:: thin_vec;
4+
35use super :: * ;
46
57impl < ' a > super :: ForestObligation for & ' a str {
@@ -101,9 +103,9 @@ fn push_pop() {
101103 // |-> A.3
102104 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
103105 |obligation| match * obligation {
104- "A" => ProcessResult :: Changed ( vec ! [ "A.1" , "A.2" , "A.3" ] ) ,
106+ "A" => ProcessResult :: Changed ( thin_vec ! [ "A.1" , "A.2" , "A.3" ] ) ,
105107 "B" => ProcessResult :: Error ( "B is for broken" ) ,
106- "C" => ProcessResult :: Changed ( vec ! [ ] ) ,
108+ "C" => ProcessResult :: Changed ( thin_vec ! [ ] ) ,
107109 "A.1" | "A.2" | "A.3" => ProcessResult :: Unchanged ,
108110 _ => unreachable ! ( ) ,
109111 } ,
@@ -123,8 +125,8 @@ fn push_pop() {
123125 |obligation| match * obligation {
124126 "A.1" => ProcessResult :: Unchanged ,
125127 "A.2" => ProcessResult :: Unchanged ,
126- "A.3" => ProcessResult :: Changed ( vec ! [ "A.3.i" ] ) ,
127- "D" => ProcessResult :: Changed ( vec ! [ "D.1" , "D.2" ] ) ,
128+ "A.3" => ProcessResult :: Changed ( thin_vec ! [ "A.3.i" ] ) ,
129+ "D" => ProcessResult :: Changed ( thin_vec ! [ "D.1" , "D.2" ] ) ,
128130 "A.3.i" | "D.1" | "D.2" => ProcessResult :: Unchanged ,
129131 _ => unreachable ! ( ) ,
130132 } ,
@@ -139,11 +141,11 @@ fn push_pop() {
139141 // |-> D.2 |-> D.2.i
140142 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
141143 |obligation| match * obligation {
142- "A.1" => ProcessResult :: Changed ( vec ! [ ] ) ,
144+ "A.1" => ProcessResult :: Changed ( thin_vec ! [ ] ) ,
143145 "A.2" => ProcessResult :: Error ( "A is for apple" ) ,
144- "A.3.i" => ProcessResult :: Changed ( vec ! [ ] ) ,
145- "D.1" => ProcessResult :: Changed ( vec ! [ "D.1.i" ] ) ,
146- "D.2" => ProcessResult :: Changed ( vec ! [ "D.2.i" ] ) ,
146+ "A.3.i" => ProcessResult :: Changed ( thin_vec ! [ ] ) ,
147+ "D.1" => ProcessResult :: Changed ( thin_vec ! [ "D.1.i" ] ) ,
148+ "D.2" => ProcessResult :: Changed ( thin_vec ! [ "D.2.i" ] ) ,
147149 "D.1.i" | "D.2.i" => ProcessResult :: Unchanged ,
148150 _ => unreachable ! ( ) ,
149151 } ,
@@ -158,7 +160,7 @@ fn push_pop() {
158160 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
159161 |obligation| match * obligation {
160162 "D.1.i" => ProcessResult :: Error ( "D is for dumb" ) ,
161- "D.2.i" => ProcessResult :: Changed ( vec ! [ ] ) ,
163+ "D.2.i" => ProcessResult :: Changed ( thin_vec ! [ ] ) ,
162164 _ => panic ! ( "unexpected obligation {:?}" , obligation) ,
163165 } ,
164166 |_| { } ,
@@ -184,10 +186,10 @@ fn success_in_grandchildren() {
184186
185187 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
186188 |obligation| match * obligation {
187- "A" => ProcessResult :: Changed ( vec ! [ "A.1" , "A.2" , "A.3" ] ) ,
188- "A.1" => ProcessResult :: Changed ( vec ! [ ] ) ,
189- "A.2" => ProcessResult :: Changed ( vec ! [ "A.2.i" , "A.2.ii" ] ) ,
190- "A.3" => ProcessResult :: Changed ( vec ! [ ] ) ,
189+ "A" => ProcessResult :: Changed ( thin_vec ! [ "A.1" , "A.2" , "A.3" ] ) ,
190+ "A.1" => ProcessResult :: Changed ( thin_vec ! [ ] ) ,
191+ "A.2" => ProcessResult :: Changed ( thin_vec ! [ "A.2.i" , "A.2.ii" ] ) ,
192+ "A.3" => ProcessResult :: Changed ( thin_vec ! [ ] ) ,
191193 "A.2.i" | "A.2.ii" => ProcessResult :: Unchanged ,
192194 _ => unreachable ! ( ) ,
193195 } ,
@@ -201,7 +203,7 @@ fn success_in_grandchildren() {
201203 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
202204 |obligation| match * obligation {
203205 "A.2.i" => ProcessResult :: Unchanged ,
204- "A.2.ii" => ProcessResult :: Changed ( vec ! [ ] ) ,
206+ "A.2.ii" => ProcessResult :: Changed ( thin_vec ! [ ] ) ,
205207 _ => unreachable ! ( ) ,
206208 } ,
207209 |_| { } ,
@@ -211,7 +213,7 @@ fn success_in_grandchildren() {
211213
212214 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
213215 |obligation| match * obligation {
214- "A.2.i" => ProcessResult :: Changed ( vec ! [ "A.2.i.a" ] ) ,
216+ "A.2.i" => ProcessResult :: Changed ( thin_vec ! [ "A.2.i.a" ] ) ,
215217 "A.2.i.a" => ProcessResult :: Unchanged ,
216218 _ => unreachable ! ( ) ,
217219 } ,
@@ -222,7 +224,7 @@ fn success_in_grandchildren() {
222224
223225 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
224226 |obligation| match * obligation {
225- "A.2.i.a" => ProcessResult :: Changed ( vec ! [ ] ) ,
227+ "A.2.i.a" => ProcessResult :: Changed ( thin_vec ! [ ] ) ,
226228 _ => unreachable ! ( ) ,
227229 } ,
228230 |_| { } ,
@@ -247,7 +249,7 @@ fn to_errors_no_throw() {
247249 forest. register_obligation ( "A" ) ;
248250 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
249251 |obligation| match * obligation {
250- "A" => ProcessResult :: Changed ( vec ! [ "A.1" , "A.2" , "A.3" ] ) ,
252+ "A" => ProcessResult :: Changed ( thin_vec ! [ "A.1" , "A.2" , "A.3" ] ) ,
251253 "A.1" | "A.2" | "A.3" => ProcessResult :: Unchanged ,
252254 _ => unreachable ! ( ) ,
253255 } ,
@@ -269,7 +271,7 @@ fn diamond() {
269271 forest. register_obligation ( "A" ) ;
270272 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
271273 |obligation| match * obligation {
272- "A" => ProcessResult :: Changed ( vec ! [ "A.1" , "A.2" ] ) ,
274+ "A" => ProcessResult :: Changed ( thin_vec ! [ "A.1" , "A.2" ] ) ,
273275 "A.1" | "A.2" => ProcessResult :: Unchanged ,
274276 _ => unreachable ! ( ) ,
275277 } ,
@@ -280,8 +282,8 @@ fn diamond() {
280282
281283 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
282284 |obligation| match * obligation {
283- "A.1" => ProcessResult :: Changed ( vec ! [ "D" ] ) ,
284- "A.2" => ProcessResult :: Changed ( vec ! [ "D" ] ) ,
285+ "A.1" => ProcessResult :: Changed ( thin_vec ! [ "D" ] ) ,
286+ "A.2" => ProcessResult :: Changed ( thin_vec ! [ "D" ] ) ,
285287 "D" => ProcessResult :: Unchanged ,
286288 _ => unreachable ! ( ) ,
287289 } ,
@@ -295,7 +297,7 @@ fn diamond() {
295297 |obligation| match * obligation {
296298 "D" => {
297299 d_count += 1 ;
298- ProcessResult :: Changed ( vec ! [ ] )
300+ ProcessResult :: Changed ( thin_vec ! [ ] )
299301 }
300302 _ => unreachable ! ( ) ,
301303 } ,
@@ -313,7 +315,7 @@ fn diamond() {
313315 forest. register_obligation ( "A'" ) ;
314316 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
315317 |obligation| match * obligation {
316- "A'" => ProcessResult :: Changed ( vec ! [ "A'.1" , "A'.2" ] ) ,
318+ "A'" => ProcessResult :: Changed ( thin_vec ! [ "A'.1" , "A'.2" ] ) ,
317319 "A'.1" | "A'.2" => ProcessResult :: Unchanged ,
318320 _ => unreachable ! ( ) ,
319321 } ,
@@ -324,8 +326,8 @@ fn diamond() {
324326
325327 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
326328 |obligation| match * obligation {
327- "A'.1" => ProcessResult :: Changed ( vec ! [ "D'" , "A'" ] ) ,
328- "A'.2" => ProcessResult :: Changed ( vec ! [ "D'" ] ) ,
329+ "A'.1" => ProcessResult :: Changed ( thin_vec ! [ "D'" , "A'" ] ) ,
330+ "A'.2" => ProcessResult :: Changed ( thin_vec ! [ "D'" ] ) ,
329331 "D'" | "A'" => ProcessResult :: Unchanged ,
330332 _ => unreachable ! ( ) ,
331333 } ,
@@ -366,7 +368,7 @@ fn done_dependency() {
366368
367369 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
368370 |obligation| match * obligation {
369- "A: Sized" | "B: Sized" | "C: Sized" => ProcessResult :: Changed ( vec ! [ ] ) ,
371+ "A: Sized" | "B: Sized" | "C: Sized" => ProcessResult :: Changed ( thin_vec ! [ ] ) ,
370372 _ => unreachable ! ( ) ,
371373 } ,
372374 |_| { } ,
@@ -379,7 +381,9 @@ fn done_dependency() {
379381 forest. register_obligation ( "(A,B,C): Sized" ) ;
380382 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
381383 |obligation| match * obligation {
382- "(A,B,C): Sized" => ProcessResult :: Changed ( vec ! [ "A: Sized" , "B: Sized" , "C: Sized" ] ) ,
384+ "(A,B,C): Sized" => {
385+ ProcessResult :: Changed ( thin_vec ! [ "A: Sized" , "B: Sized" , "C: Sized" ] )
386+ }
383387 _ => unreachable ! ( ) ,
384388 } ,
385389 |_| { } ,
@@ -399,10 +403,10 @@ fn orphan() {
399403
400404 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
401405 |obligation| match * obligation {
402- "A" => ProcessResult :: Changed ( vec ! [ "D" , "E" ] ) ,
406+ "A" => ProcessResult :: Changed ( thin_vec ! [ "D" , "E" ] ) ,
403407 "B" => ProcessResult :: Unchanged ,
404- "C1" => ProcessResult :: Changed ( vec ! [ ] ) ,
405- "C2" => ProcessResult :: Changed ( vec ! [ ] ) ,
408+ "C1" => ProcessResult :: Changed ( thin_vec ! [ ] ) ,
409+ "C2" => ProcessResult :: Changed ( thin_vec ! [ ] ) ,
406410 "D" | "E" => ProcessResult :: Unchanged ,
407411 _ => unreachable ! ( ) ,
408412 } ,
@@ -416,7 +420,7 @@ fn orphan() {
416420 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
417421 |obligation| match * obligation {
418422 "D" | "E" => ProcessResult :: Unchanged ,
419- "B" => ProcessResult :: Changed ( vec ! [ "D" ] ) ,
423+ "B" => ProcessResult :: Changed ( thin_vec ! [ "D" ] ) ,
420424 _ => unreachable ! ( ) ,
421425 } ,
422426 |_| { } ,
@@ -459,7 +463,7 @@ fn simultaneous_register_and_error() {
459463 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
460464 |obligation| match * obligation {
461465 "A" => ProcessResult :: Error ( "An error" ) ,
462- "B" => ProcessResult :: Changed ( vec ! [ "A" ] ) ,
466+ "B" => ProcessResult :: Changed ( thin_vec ! [ "A" ] ) ,
463467 _ => unreachable ! ( ) ,
464468 } ,
465469 |_| { } ,
@@ -474,7 +478,7 @@ fn simultaneous_register_and_error() {
474478 let TestOutcome { completed : ok, errors : err, .. } = forest. process_obligations ( & mut C (
475479 |obligation| match * obligation {
476480 "A" => ProcessResult :: Error ( "An error" ) ,
477- "B" => ProcessResult :: Changed ( vec ! [ "A" ] ) ,
481+ "B" => ProcessResult :: Changed ( thin_vec ! [ "A" ] ) ,
478482 _ => unreachable ! ( ) ,
479483 } ,
480484 |_| { } ,
0 commit comments