// edition:2018
// revisions: rpass1 rpass2

pub struct Stmt {
    pub stmt_type: StmtKind,
    #[cfg(rpass1)] pub stmt_tag: Option<LintTag>,
    #[cfg(rpass2)] pub renamed_tag: Option<LintTag>,
}
pub struct LintTag;
pub enum StmtKind {
    If(If),
    Block(&'static str),
    Return(Return),
}
pub struct If {
    pub condition: Function,
}
pub struct Return {
    pub value: Function,
}
pub struct Function {
    pub parameters: Box<Stmt>,
}
pub fn start_late_pass(stmt_receiver: Box<Stmt>) {
    spawn(async { stmt_receiver });
}

pub fn spawn<T>(_: T)
where
    T: Send,
{
}

fn main() {}