diff options
| author | Ellen <supbscripter@gmail.com> | 2021-12-13 19:47:10 +0000 |
|---|---|---|
| committer | Ellen <supbscripter@gmail.com> | 2021-12-14 03:33:18 +0000 |
| commit | 0a0f01410d378fc9d1ca27fe5a42f01092e0cf3e (patch) | |
| tree | 5ff44b48df1d17c71e2b967af168c75d8f208d3e | |
| parent | 7175980ff51636f03824d67869e9a237c7d76ad5 (diff) | |
| download | rust-0a0f01410d378fc9d1ca27fe5a42f01092e0cf3e.tar.gz rust-0a0f01410d378fc9d1ca27fe5a42f01092e0cf3e.zip | |
test
| -rw-r--r-- | src/test/ui/const-generics/defaults/auxiliary/trait_object_lt_defaults_lib.rs | 1 | ||||
| -rw-r--r-- | src/test/ui/const-generics/defaults/trait_object_lt_defaults.rs | 24 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/test/ui/const-generics/defaults/auxiliary/trait_object_lt_defaults_lib.rs b/src/test/ui/const-generics/defaults/auxiliary/trait_object_lt_defaults_lib.rs new file mode 100644 index 00000000000..26a2c47ffb2 --- /dev/null +++ b/src/test/ui/const-generics/defaults/auxiliary/trait_object_lt_defaults_lib.rs @@ -0,0 +1 @@ +pub struct Foo<'a, const N: usize, T: 'a + ?Sized>(pub &'a T, [(); N]); diff --git a/src/test/ui/const-generics/defaults/trait_object_lt_defaults.rs b/src/test/ui/const-generics/defaults/trait_object_lt_defaults.rs new file mode 100644 index 00000000000..a1828727ecd --- /dev/null +++ b/src/test/ui/const-generics/defaults/trait_object_lt_defaults.rs @@ -0,0 +1,24 @@ +// 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() {} |
