mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 01:04:03 +00:00
31 lines
511 B
Rust
31 lines
511 B
Rust
|
//@ check-pass
|
||
|
// Regression test due to #123279
|
||
|
|
||
|
pub trait Job: AsJob {
|
||
|
fn run_once(&self);
|
||
|
}
|
||
|
|
||
|
impl<F: Fn()> Job for F {
|
||
|
fn run_once(&self) {
|
||
|
todo!()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
pub trait AsJob {}
|
||
|
|
||
|
// Ensure that `T: Sized + Job` by reordering the explicit `Sized` to where
|
||
|
// the implicit sized pred would go.
|
||
|
impl<T: Job + Sized> AsJob for T {}
|
||
|
|
||
|
pub struct LoopingJobService {
|
||
|
job: Box<dyn Job>,
|
||
|
}
|
||
|
|
||
|
impl Job for LoopingJobService {
|
||
|
fn run_once(&self) {
|
||
|
self.job.run_once()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn main() {}
|