mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-16 02:24:35 +00:00
42 lines
793 B
Rust
42 lines
793 B
Rust
// build-pass
|
|
#![allow(dead_code)]
|
|
// pretty-expanded FIXME #23616
|
|
|
|
mod a {
|
|
pub enum Enum<T> {
|
|
A(T),
|
|
}
|
|
|
|
pub trait X {
|
|
fn dummy(&self) { }
|
|
}
|
|
impl X for isize {}
|
|
|
|
pub struct Z<'a>(Enum<&'a (dyn X + 'a)>);
|
|
fn foo() { let x: isize = 42; let z = Z(Enum::A(&x as &dyn X)); let _ = z; }
|
|
}
|
|
|
|
mod b {
|
|
trait X {
|
|
fn dummy(&self) { }
|
|
}
|
|
impl X for isize {}
|
|
struct Y<'a>{
|
|
x:Option<&'a (dyn X + 'a)>,
|
|
}
|
|
|
|
fn bar() {
|
|
let x: isize = 42;
|
|
let _y = Y { x: Some(&x as &dyn X) };
|
|
}
|
|
}
|
|
|
|
mod c {
|
|
pub trait X { fn f(&self); }
|
|
impl X for isize { fn f(&self) {} }
|
|
pub struct Z<'a>(Option<&'a (dyn X + 'a)>);
|
|
fn main() { let x: isize = 42; let z = Z(Some(&x as &dyn X)); let _ = z; }
|
|
}
|
|
|
|
pub fn main() {}
|