| //@ aux-build:trait_object_lt_defaults_lib.rs | |
| //@ run-pass | |
| #![allow(dead_code, unused)] | |
| extern crate trait_object_lt_defaults_lib; | |
| // Tests that `A<'a, 3, dyn Test>` is short for `A<'a, 3, dyn Test + 'a>` | |
| // and `Foo<'a, 3, dyn Test>` is short for `Foo<'a, 3, dyn Test + 'a>` | |
| // Test is in `const-generics/defaults` because it relies on param ordering | |
| trait Test {} | |
| struct A<'a, const N: usize, T: ?Sized + 'a>(&'a T, [(); N]); | |
| fn blah<'a>(mut a: A<'a, 3, dyn Test>, arg: &'a (dyn Test + 'a)) { | |
| a.0 = arg; | |
| } | |
| fn other_blah<'a>( | |
| mut a: trait_object_lt_defaults_lib::Foo<'a, 3, dyn Test>, | |
| arg: &'a (dyn Test + 'a), | |
| ) { | |
| a.0 = arg; | |
| } | |
| fn main() {} |