rust/tests/ui/extern/issue-13655.rs
surechen 40ae34194c remove redundant imports
detects redundant imports that can be eliminated.

for #117772 :

In order to facilitate review and modification, split the checking code and
removing redundant imports code into two PR.
2023-12-10 10:56:22 +08:00

31 lines
549 B
Rust

// run-pass
#![feature(fn_traits, unboxed_closures)]
struct Foo<T>(T);
impl<T: Copy> Fn<()> for Foo<T> {
extern "rust-call" fn call(&self, _: ()) -> T {
match *self {
Foo(t) => t
}
}
}
impl<T: Copy> FnMut<()> for Foo<T> {
extern "rust-call" fn call_mut(&mut self, _: ()) -> T {
self.call(())
}
}
impl<T: Copy> FnOnce<()> for Foo<T> {
type Output = T;
extern "rust-call" fn call_once(self, _: ()) -> T {
self.call(())
}
}
fn main() {
let t: u8 = 1;
println!("{}", Foo(t)());
}