]> git.proxmox.com Git - rustc.git/blame - src/test/ui/issues/issue-16048.rs
New upstream version 1.49.0+dfsg1
[rustc.git] / src / test / ui / issues / issue-16048.rs
CommitLineData
1a4d82fc
JJ
1trait NoLifetime {
2 fn get<'p, T : Test<'p>>(&self) -> T;
2c00a5a8 3 //~^ NOTE lifetimes in impl do not match this method in trait
1a4d82fc
JJ
4}
5
6trait Test<'p> {
7 fn new(buf: &'p mut [u8]) -> Self;
8}
9
10struct Foo<'a> {
11 buf: &'a mut [u8],
12}
13
14impl<'a> Test<'a> for Foo<'a> {
15 fn new(buf: &'a mut [u8]) -> Foo<'a> {
16 Foo { buf: buf }
17 }
18}
19
20impl<'a> NoLifetime for Foo<'a> {
72b1a166 21 fn get<'p, T: Test<'a> + From<Foo<'a>>>(&self) -> T {
2c00a5a8
XL
22 //~^ ERROR E0195
23 //~| NOTE lifetimes do not match method in trait
9346a6ac 24 return *self as T;
48663c56 25 //~^ ERROR non-primitive cast: `Foo<'a>` as `T`
72b1a166 26 //~| NOTE an `as` expression can only be used to convert between primitive types
1a4d82fc
JJ
27 }
28}
29
30fn main() {}