4 #![deny(explicit_outlives_requirements)]
6 // Programmatically generated examples!
8 // Exercise outlives bounds for each of the following parameter/position
11 // • one generic parameter (T) bound inline
12 // • one parameter (T) with a where clause
13 // • two parameters (T and U), both bound inline
14 // • two parameters (T and U), one bound inline, one with a where clause
15 // • two parameters (T and U), both with where clauses
17 // —and for every permutation of 1 or 2 lifetimes to outlive and 0 or 1 trait
18 // bounds distributed among said parameters (subject to no where clause being
19 // empty and the struct having at least one lifetime).
21 // —and for each of tuple structs, enums and unions.
26 struct TeeOutlivesAy<'a, T: 'a> {
27 //~^ ERROR outlives requirements can be inferred
31 struct TeeOutlivesAyIsDebug<'a, T: 'a + Debug> {
32 //~^ ERROR outlives requirements can be inferred
36 struct TeeIsDebugOutlivesAy<'a, T: Debug + 'a> {
37 //~^ ERROR outlives requirements can be inferred
41 struct TeeOutlivesAyBee<'a, 'b, T: 'a + 'b> {
42 //~^ ERROR outlives requirements can be inferred
46 struct TeeOutlivesAyBeeIsDebug<'a, 'b, T: 'a + 'b + Debug> {
47 //~^ ERROR outlives requirements can be inferred
51 struct TeeIsDebugOutlivesAyBee<'a, 'b, T: Debug + 'a + 'b> {
52 //~^ ERROR outlives requirements can be inferred
56 struct TeeWhereOutlivesAy<'a, T> where T: 'a {
57 //~^ ERROR outlives requirements can be inferred
61 struct TeeWhereOutlivesAyIsDebug<'a, T> where T: 'a + Debug {
62 //~^ ERROR outlives requirements can be inferred
66 struct TeeWhereIsDebugOutlivesAy<'a, T> where T: Debug + 'a {
67 //~^ ERROR outlives requirements can be inferred
71 struct TeeWhereOutlivesAyBee<'a, 'b, T> where T: 'a + 'b {
72 //~^ ERROR outlives requirements can be inferred
76 struct TeeWhereOutlivesAyBeeIsDebug<'a, 'b, T> where T: 'a + 'b + Debug {
77 //~^ ERROR outlives requirements can be inferred
81 struct TeeWhereIsDebugOutlivesAyBee<'a, 'b, T> where T: Debug + 'a + 'b {
82 //~^ ERROR outlives requirements can be inferred
86 struct TeeYooOutlivesAy<'a, T, U: 'a> {
87 //~^ ERROR outlives requirements can be inferred
92 struct TeeYooOutlivesAyIsDebug<'a, T, U: 'a + Debug> {
93 //~^ ERROR outlives requirements can be inferred
98 struct TeeYooIsDebugOutlivesAy<'a, T, U: Debug + 'a> {
99 //~^ ERROR outlives requirements can be inferred
104 struct TeeOutlivesAyYooIsDebug<'a, T: 'a, U: Debug> {
105 //~^ ERROR outlives requirements can be inferred
110 struct TeeYooOutlivesAyBee<'a, 'b, T, U: 'a + 'b> {
111 //~^ ERROR outlives requirements can be inferred
116 struct TeeYooOutlivesAyBeeIsDebug<'a, 'b, T, U: 'a + 'b + Debug> {
117 //~^ ERROR outlives requirements can be inferred
122 struct TeeYooIsDebugOutlivesAyBee<'a, 'b, T, U: Debug + 'a + 'b> {
123 //~^ ERROR outlives requirements can be inferred
128 struct TeeOutlivesAyBeeYooIsDebug<'a, 'b, T: 'a + 'b, U: Debug> {
129 //~^ ERROR outlives requirements can be inferred
134 struct TeeYooWhereOutlivesAy<'a, T, U> where U: 'a {
135 //~^ ERROR outlives requirements can be inferred
140 struct TeeYooWhereOutlivesAyIsDebug<'a, T, U> where U: 'a + Debug {
141 //~^ ERROR outlives requirements can be inferred
146 struct TeeYooWhereIsDebugOutlivesAy<'a, T, U> where U: Debug + 'a {
147 //~^ ERROR outlives requirements can be inferred
152 struct TeeOutlivesAyYooWhereIsDebug<'a, T: 'a, U> where U: Debug {
153 //~^ ERROR outlives requirements can be inferred
158 struct TeeYooWhereOutlivesAyBee<'a, 'b, T, U> where U: 'a + 'b {
159 //~^ ERROR outlives requirements can be inferred
164 struct TeeYooWhereOutlivesAyBeeIsDebug<'a, 'b, T, U> where U: 'a + 'b + Debug {
165 //~^ ERROR outlives requirements can be inferred
170 struct TeeYooWhereIsDebugOutlivesAyBee<'a, 'b, T, U> where U: Debug + 'a + 'b {
171 //~^ ERROR outlives requirements can be inferred
176 struct TeeOutlivesAyBeeYooWhereIsDebug<'a, 'b, T: 'a + 'b, U> where U: Debug {
177 //~^ ERROR outlives requirements can be inferred
182 struct TeeWhereOutlivesAyYooWhereIsDebug<'a, T, U> where T: 'a, U: Debug {
183 //~^ ERROR outlives requirements can be inferred
188 struct TeeWhereOutlivesAyBeeYooWhereIsDebug<'a, 'b, T, U> where T: 'a + 'b, U: Debug {
189 //~^ ERROR outlives requirements can be inferred
194 struct BeeOutlivesAy<'a, 'b: 'a> {
195 //~^ ERROR outlives requirements can be inferred
199 struct BeeWhereOutlivesAy<'a, 'b> where 'b: 'a {
200 //~^ ERROR outlives requirements can be inferred
204 struct BeeOutlivesAyTee<'a, 'b: 'a, T> {
205 //~^ ERROR outlives requirements can be inferred
209 struct BeeWhereOutlivesAyTee<'a, 'b, T> where 'b: 'a {
210 //~^ ERROR outlives requirements can be inferred
214 struct BeeWhereOutlivesAyTeeWhereBee<'a, 'b, T> where 'b: 'a, T: 'b {
215 //~^ ERROR outlives requirements can be inferred
219 struct BeeWhereOutlivesAyTeeWhereAyBee<'a, 'b, T> where 'b: 'a, T: 'a + 'b {
220 //~^ ERROR outlives requirements can be inferred
224 struct BeeOutlivesAyTeeDebug<'a, 'b: 'a, T: Debug> {
225 //~^ ERROR outlives requirements can be inferred
229 struct BeeWhereOutlivesAyTeeWhereDebug<'a, 'b, T> where 'b: 'a, T: Debug {
230 //~^ ERROR outlives requirements can be inferred
238 struct TeeOutlivesAy<'a, T: 'a>(&'a T);
239 //~^ ERROR outlives requirements can be inferred
241 struct TeeOutlivesAyIsDebug<'a, T: 'a + Debug>(&'a T);
242 //~^ ERROR outlives requirements can be inferred
244 struct TeeIsDebugOutlivesAy<'a, T: Debug + 'a>(&'a T);
245 //~^ ERROR outlives requirements can be inferred
247 struct TeeOutlivesAyBee<'a, 'b, T: 'a + 'b>(&'a &'b T);
248 //~^ ERROR outlives requirements can be inferred
250 struct TeeOutlivesAyBeeIsDebug<'a, 'b, T: 'a + 'b + Debug>(&'a &'b T);
251 //~^ ERROR outlives requirements can be inferred
253 struct TeeIsDebugOutlivesAyBee<'a, 'b, T: Debug + 'a + 'b>(&'a &'b T);
254 //~^ ERROR outlives requirements can be inferred
256 struct TeeWhereOutlivesAy<'a, T>(&'a T) where T: 'a;
257 //~^ ERROR outlives requirements can be inferred
259 struct TeeWhereOutlivesAyIsDebug<'a, T>(&'a T) where T: 'a + Debug;
260 //~^ ERROR outlives requirements can be inferred
262 struct TeeWhereIsDebugOutlivesAy<'a, T>(&'a T) where T: Debug + 'a;
263 //~^ ERROR outlives requirements can be inferred
265 struct TeeWhereOutlivesAyBee<'a, 'b, T>(&'a &'b T) where T: 'a + 'b;
266 //~^ ERROR outlives requirements can be inferred
268 struct TeeWhereOutlivesAyBeeIsDebug<'a, 'b, T>(&'a &'b T) where T: 'a + 'b + Debug;
269 //~^ ERROR outlives requirements can be inferred
271 struct TeeWhereIsDebugOutlivesAyBee<'a, 'b, T>(&'a &'b T) where T: Debug + 'a + 'b;
272 //~^ ERROR outlives requirements can be inferred
274 struct TeeYooOutlivesAy<'a, T, U: 'a>(T, &'a U);
275 //~^ ERROR outlives requirements can be inferred
277 struct TeeYooOutlivesAyIsDebug<'a, T, U: 'a + Debug>(T, &'a U);
278 //~^ ERROR outlives requirements can be inferred
280 struct TeeYooIsDebugOutlivesAy<'a, T, U: Debug + 'a>(T, &'a U);
281 //~^ ERROR outlives requirements can be inferred
283 struct TeeOutlivesAyYooIsDebug<'a, T: 'a, U: Debug>(&'a T, U);
284 //~^ ERROR outlives requirements can be inferred
286 struct TeeYooOutlivesAyBee<'a, 'b, T, U: 'a + 'b>(T, &'a &'b U);
287 //~^ ERROR outlives requirements can be inferred
289 struct TeeYooOutlivesAyBeeIsDebug<'a, 'b, T, U: 'a + 'b + Debug>(T, &'a &'b U);
290 //~^ ERROR outlives requirements can be inferred
292 struct TeeYooIsDebugOutlivesAyBee<'a, 'b, T, U: Debug + 'a + 'b>(T, &'a &'b U);
293 //~^ ERROR outlives requirements can be inferred
295 struct TeeOutlivesAyBeeYooIsDebug<'a, 'b, T: 'a + 'b, U: Debug>(&'a &'b T, U);
296 //~^ ERROR outlives requirements can be inferred
298 struct TeeYooWhereOutlivesAy<'a, T, U>(T, &'a U) where U: 'a;
299 //~^ ERROR outlives requirements can be inferred
301 struct TeeYooWhereOutlivesAyIsDebug<'a, T, U>(T, &'a U) where U: 'a + Debug;
302 //~^ ERROR outlives requirements can be inferred
304 struct TeeYooWhereIsDebugOutlivesAy<'a, T, U>(T, &'a U) where U: Debug + 'a;
305 //~^ ERROR outlives requirements can be inferred
307 struct TeeOutlivesAyYooWhereIsDebug<'a, T: 'a, U>(&'a T, U) where U: Debug;
308 //~^ ERROR outlives requirements can be inferred
310 struct TeeYooWhereOutlivesAyBee<'a, 'b, T, U>(T, &'a &'b U) where U: 'a + 'b;
311 //~^ ERROR outlives requirements can be inferred
313 struct TeeYooWhereOutlivesAyBeeIsDebug<'a, 'b, T, U>(T, &'a &'b U) where U: 'a + 'b + Debug;
314 //~^ ERROR outlives requirements can be inferred
316 struct TeeYooWhereIsDebugOutlivesAyBee<'a, 'b, T, U>(T, &'a &'b U) where U: Debug + 'a + 'b;
317 //~^ ERROR outlives requirements can be inferred
319 struct TeeOutlivesAyBeeYooWhereIsDebug<'a, 'b, T: 'a + 'b, U>(&'a &'b T, U) where U: Debug;
320 //~^ ERROR outlives requirements can be inferred
322 struct TeeWhereOutlivesAyYooWhereIsDebug<'a, T, U>(&'a T, U) where T: 'a, U: Debug;
323 //~^ ERROR outlives requirements can be inferred
325 struct TeeWhereAyBeeYooWhereIsDebug<'a, 'b, T, U>(&'a &'b T, U) where T: 'a + 'b, U: Debug;
326 //~^ ERROR outlives requirements can be inferred
328 struct BeeOutlivesAy<'a, 'b: 'a>(&'a &'b ());
329 //~^ ERROR outlives requirements can be inferred
331 struct BeeWhereOutlivesAy<'a, 'b>(&'a &'b ()) where 'b: 'a;
332 //~^ ERROR outlives requirements can be inferred
334 struct BeeOutlivesAyTee<'a, 'b: 'a, T>(&'a &'b T);
335 //~^ ERROR outlives requirements can be inferred
337 struct BeeWhereOutlivesAyTee<'a, 'b, T>(&'a &'b T) where 'b: 'a;
338 //~^ ERROR outlives requirements can be inferred
340 struct BeeWhereOutlivesAyTeeWhereBee<'a, 'b, T>(&'a &'b T) where 'b: 'a, T: 'b;
341 //~^ ERROR outlives requirements can be inferred
343 struct BeeWhereOutlivesAyTeeWhereAyBee<'a, 'b, T>(&'a &'b T) where 'b: 'a, T: 'a + 'b;
344 //~^ ERROR outlives requirements can be inferred
346 struct BeeOutlivesAyTeeDebug<'a, 'b: 'a, T: Debug>(&'a &'b T);
347 //~^ ERROR outlives requirements can be inferred
349 struct BeeWhereOutlivesAyTeeWhereDebug<'a, 'b, T>(&'a &'b T) where 'b: 'a, T: Debug;
350 //~^ ERROR outlives requirements can be inferred
356 enum TeeOutlivesAy<'a, T: 'a> {
357 //~^ ERROR outlives requirements can be inferred
361 enum TeeOutlivesAyIsDebug<'a, T: 'a + Debug> {
362 //~^ ERROR outlives requirements can be inferred
366 enum TeeIsDebugOutlivesAy<'a, T: Debug + 'a> {
367 //~^ ERROR outlives requirements can be inferred
372 enum TeeOutlivesAyBee<'a, 'b, T: 'a + 'b> {
373 //~^ ERROR outlives requirements can be inferred
378 enum TeeOutlivesAyBeeIsDebug<'a, 'b, T: 'a + 'b + Debug> {
379 //~^ ERROR outlives requirements can be inferred
380 V { tee: &'a &'b T },
383 enum TeeIsDebugOutlivesAyBee<'a, 'b, T: Debug + 'a + 'b> {
384 //~^ ERROR outlives requirements can be inferred
388 enum TeeWhereOutlivesAy<'a, T> where T: 'a {
389 //~^ ERROR outlives requirements can be inferred
394 enum TeeWhereOutlivesAyIsDebug<'a, T> where T: 'a + Debug {
395 //~^ ERROR outlives requirements can be inferred
400 enum TeeWhereIsDebugOutlivesAy<'a, T> where T: Debug + 'a {
401 //~^ ERROR outlives requirements can be inferred
405 enum TeeWhereOutlivesAyBee<'a, 'b, T> where T: 'a + 'b {
406 //~^ ERROR outlives requirements can be inferred
410 enum TeeWhereOutlivesAyBeeIsDebug<'a, 'b, T> where T: 'a + 'b + Debug {
411 //~^ ERROR outlives requirements can be inferred
412 V { tee: &'a &'b T },
416 enum TeeWhereIsDebugOutlivesAyBee<'a, 'b, T> where T: Debug + 'a + 'b {
417 //~^ ERROR outlives requirements can be inferred
422 enum TeeYooOutlivesAy<'a, T, U: 'a> {
423 //~^ ERROR outlives requirements can be inferred
428 enum TeeYooOutlivesAyIsDebug<'a, T, U: 'a + Debug> {
429 //~^ ERROR outlives requirements can be inferred
430 V { tee: T, yoo: &'a U },
434 enum TeeYooIsDebugOutlivesAy<'a, T, U: Debug + 'a> {
435 //~^ ERROR outlives requirements can be inferred
440 enum TeeOutlivesAyYooIsDebug<'a, T: 'a, U: Debug> {
441 //~^ ERROR outlives requirements can be inferred
446 enum TeeYooOutlivesAyBee<'a, 'b, T, U: 'a + 'b> {
447 //~^ ERROR outlives requirements can be inferred
448 V { tee: T, yoo: &'a &'b U },
452 enum TeeYooOutlivesAyBeeIsDebug<'a, 'b, T, U: 'a + 'b + Debug> {
453 //~^ ERROR outlives requirements can be inferred
458 enum TeeYooIsDebugOutlivesAyBee<'a, 'b, T, U: Debug + 'a + 'b> {
459 //~^ ERROR outlives requirements can be inferred
460 V { tee: T, yoo: &'a &'b U },
464 enum TeeOutlivesAyBeeYooIsDebug<'a, 'b, T: 'a + 'b, U: Debug> {
465 //~^ ERROR outlives requirements can be inferred
470 enum TeeYooWhereOutlivesAy<'a, T, U> where U: 'a {
471 //~^ ERROR outlives requirements can be inferred
476 enum TeeYooWhereOutlivesAyIsDebug<'a, T, U> where U: 'a + Debug {
477 //~^ ERROR outlives requirements can be inferred
478 V { tee: T, yoo: &'a U },
482 enum TeeYooWhereIsDebugOutlivesAy<'a, T, U> where U: Debug + 'a {
483 //~^ ERROR outlives requirements can be inferred
488 enum TeeOutlivesAyYooWhereIsDebug<'a, T: 'a, U> where U: Debug {
489 //~^ ERROR outlives requirements can be inferred
494 enum TeeYooWhereOutlivesAyBee<'a, 'b, T, U> where U: 'a + 'b {
495 //~^ ERROR outlives requirements can be inferred
496 V { tee: T, yoo: &'a &'b U },
500 enum TeeYooWhereOutlivesAyBeeIsDebug<'a, 'b, T, U> where U: 'a + 'b + Debug {
501 //~^ ERROR outlives requirements can be inferred
506 enum TeeYooWhereIsDebugOutlivesAyBee<'a, 'b, T, U> where U: Debug + 'a + 'b {
507 //~^ ERROR outlives requirements can be inferred
512 enum TeeOutlivesAyBeeYooWhereIsDebug<'a, 'b, T: 'a + 'b, U> where U: Debug {
513 //~^ ERROR outlives requirements can be inferred
514 V { tee: &'a &'b T, yoo: U },
518 enum TeeWhereOutlivesAyYooWhereIsDebug<'a, T, U> where T: 'a, U: Debug {
519 //~^ ERROR outlives requirements can be inferred
524 enum TeeWhereOutlivesAyBeeYooWhereIsDebug<'a, 'b, T, U> where T: 'a + 'b, U: Debug {
525 //~^ ERROR outlives requirements can be inferred
526 V { tee: &'a &'b T },
530 enum BeeOutlivesAy<'a, 'b: 'a> {
531 //~^ ERROR outlives requirements can be inferred
532 V { tee: &'a &'b () },
535 enum BeeWhereOutlivesAy<'a, 'b> where 'b: 'a {
536 //~^ ERROR outlives requirements can be inferred
540 enum BeeOutlivesAyTee<'a, 'b: 'a, T> {
541 //~^ ERROR outlives requirements can be inferred
542 V { tee: &'a &'b T },
546 enum BeeWhereOutlivesAyTee<'a, 'b, T> where 'b: 'a {
547 //~^ ERROR outlives requirements can be inferred
552 enum BeeWhereOutlivesAyTeeWhereBee<'a, 'b, T> where 'b: 'a, T: 'b {
553 //~^ ERROR outlives requirements can be inferred
557 enum BeeWhereOutlivesAyTeeWhereAyBee<'a, 'b, T> where 'b: 'a, T: 'a + 'b {
558 //~^ ERROR outlives requirements can be inferred
563 enum BeeOutlivesAyTeeDebug<'a, 'b: 'a, T: Debug> {
564 //~^ ERROR outlives requirements can be inferred
565 V { tee: &'a &'b T },
568 enum BeeWhereOutlivesAyTeeWhereDebug<'a, 'b, T> where 'b: 'a, T: Debug {
569 //~^ ERROR outlives requirements can be inferred
577 union TeeOutlivesAy<'a, T: 'a> {
578 //~^ ERROR outlives requirements can be inferred
582 union TeeOutlivesAyIsDebug<'a, T: 'a + Debug> {
583 //~^ ERROR outlives requirements can be inferred
587 union TeeIsDebugOutlivesAy<'a, T: Debug + 'a> {
588 //~^ ERROR outlives requirements can be inferred
592 union TeeOutlivesAyBee<'a, 'b, T: 'a + 'b> {
593 //~^ ERROR outlives requirements can be inferred
597 union TeeOutlivesAyBeeIsDebug<'a, 'b, T: 'a + 'b + Debug> {
598 //~^ ERROR outlives requirements can be inferred
602 union TeeIsDebugOutlivesAyBee<'a, 'b, T: Debug + 'a + 'b> {
603 //~^ ERROR outlives requirements can be inferred
607 union TeeWhereOutlivesAy<'a, T> where T: 'a {
608 //~^ ERROR outlives requirements can be inferred
612 union TeeWhereOutlivesAyIsDebug<'a, T> where T: 'a + Debug {
613 //~^ ERROR outlives requirements can be inferred
617 union TeeWhereIsDebugOutlivesAy<'a, T> where T: Debug + 'a {
618 //~^ ERROR outlives requirements can be inferred
622 union TeeWhereOutlivesAyBee<'a, 'b, T> where T: 'a + 'b {
623 //~^ ERROR outlives requirements can be inferred
627 union TeeWhereOutlivesAyBeeIsDebug<'a, 'b, T> where T: 'a + 'b + Debug {
628 //~^ ERROR outlives requirements can be inferred
632 union TeeWhereIsDebugOutlivesAyBee<'a, 'b, T> where T: Debug + 'a + 'b {
633 //~^ ERROR outlives requirements can be inferred
637 union TeeYooOutlivesAy<'a, T, U: 'a> {
638 //~^ ERROR outlives requirements can be inferred
643 union TeeYooOutlivesAyIsDebug<'a, T, U: 'a + Debug> {
644 //~^ ERROR outlives requirements can be inferred
649 union TeeYooIsDebugOutlivesAy<'a, T, U: Debug + 'a> {
650 //~^ ERROR outlives requirements can be inferred
655 union TeeOutlivesAyYooIsDebug<'a, T: 'a, U: Debug> {
656 //~^ ERROR outlives requirements can be inferred
661 union TeeYooOutlivesAyBee<'a, 'b, T, U: 'a + 'b> {
662 //~^ ERROR outlives requirements can be inferred
667 union TeeYooOutlivesAyBeeIsDebug<'a, 'b, T, U: 'a + 'b + Debug> {
668 //~^ ERROR outlives requirements can be inferred
673 union TeeYooIsDebugOutlivesAyBee<'a, 'b, T, U: Debug + 'a + 'b> {
674 //~^ ERROR outlives requirements can be inferred
679 union TeeOutlivesAyBeeYooIsDebug<'a, 'b, T: 'a + 'b, U: Debug> {
680 //~^ ERROR outlives requirements can be inferred
685 union TeeYooWhereOutlivesAy<'a, T, U> where U: 'a {
686 //~^ ERROR outlives requirements can be inferred
691 union TeeYooWhereOutlivesAyIsDebug<'a, T, U> where U: 'a + Debug {
692 //~^ ERROR outlives requirements can be inferred
697 union TeeYooWhereIsDebugOutlivesAy<'a, T, U> where U: Debug + 'a {
698 //~^ ERROR outlives requirements can be inferred
703 union TeeOutlivesAyYooWhereIsDebug<'a, T: 'a, U> where U: Debug {
704 //~^ ERROR outlives requirements can be inferred
709 union TeeYooWhereOutlivesAyBee<'a, 'b, T, U> where U: 'a + 'b {
710 //~^ ERROR outlives requirements can be inferred
715 union TeeYooWhereOutlivesAyBeeIsDebug<'a, 'b, T, U> where U: 'a + 'b + Debug {
716 //~^ ERROR outlives requirements can be inferred
721 union TeeYooWhereIsDebugOutlivesAyBee<'a, 'b, T, U> where U: Debug + 'a + 'b {
722 //~^ ERROR outlives requirements can be inferred
727 union TeeOutlivesAyBeeYooWhereIsDebug<'a, 'b, T: 'a + 'b, U> where U: Debug {
728 //~^ ERROR outlives requirements can be inferred
733 union TeeWhereOutlivesAyYooWhereIsDebug<'a, T, U> where T: 'a, U: Debug {
734 //~^ ERROR outlives requirements can be inferred
739 union TeeWhereOutlivesAyBeeYooWhereIsDebug<'a, 'b, T, U> where T: 'a + 'b, U: Debug {
740 //~^ ERROR outlives requirements can be inferred
745 union BeeOutlivesAy<'a, 'b: 'a> {
746 //~^ ERROR outlives requirements can be inferred
750 union BeeWhereOutlivesAy<'a, 'b> where 'b: 'a {
751 //~^ ERROR outlives requirements can be inferred
755 union BeeOutlivesAyTee<'a, 'b: 'a, T> {
756 //~^ ERROR outlives requirements can be inferred
760 union BeeWhereOutlivesAyTee<'a, 'b, T> where 'b: 'a {
761 //~^ ERROR outlives requirements can be inferred
765 union BeeWhereOutlivesAyTeeWhereBee<'a, 'b, T> where 'b: 'a, T: 'b {
766 //~^ ERROR outlives requirements can be inferred
770 union BeeWhereOutlivesAyTeeWhereAyBee<'a, 'b, T> where 'b: 'a, T: 'a + 'b {
771 //~^ ERROR outlives requirements can be inferred
775 union BeeOutlivesAyTeeDebug<'a, 'b: 'a, T: Debug> {
776 //~^ ERROR outlives requirements can be inferred
780 union BeeWhereOutlivesAyTeeWhereDebug<'a, 'b, T> where 'b: 'a, T: Debug {
781 //~^ ERROR outlives requirements can be inferred
787 // But outlives inference for 'static lifetimes is under a separate
788 // feature-gate for now
789 // (https://github.com/rust-lang/rust/issues/44493#issuecomment-407846046).
790 struct StaticRef<T: 'static> {