//@ known-bug: #88296 | |
#![feature(specialization)] | |
trait Foo { | |
type Bar; | |
} | |
impl<T> Foo for T { | |
default type Bar = u32; | |
} | |
impl Foo for i32 { | |
type Bar = i32; | |
} | |
extern "C" { | |
#[allow(unused)] | |
// OK as Foo::Bar is explicitly defined for i32 | |
static OK: <i32 as Foo>::Bar; | |
#[allow(unused)] | |
// ICE in the improper_ctypes lint | |
// as Foo::Bar is only default implemented for () | |
static ICE: <() as Foo>::Bar; | |
} | |
pub fn main() {} |