| //@ aux-build:trait_object_lt_defaults_lib.rs |
| //@ run-pass |
| #![allow(dead_code)] |
| 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() {} |