about summary refs log tree commit diff
path: root/tests/ui/type-alias-impl-trait/lifetime-def-path-conflict-40731.rs
blob: bfaa48585ef19efb4cbb1e8d3c1be5671a395348 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// https://github.com/rust-lang/rust/issues/140731
// This tests that there's no def path conflict between the
// remapped lifetime and the lifetime present in the source.

#![feature(impl_trait_in_assoc_type)]

trait Trait<'a> {}

impl<'a> Trait<'a> for u32 {
    type Opq2 = impl for<'a> Trait<'a>;
    //~^ ERROR: unconstrained opaque type
    //~| ERROR: type `Opq2` is not a member of trait `Trait`
    //~| ERROR: lifetime name `'a` shadows a lifetime name that is already in scope
}

fn main() {}