//@ edition:2018 //@ revisions: rpass1 rpass2 pub struct Stmt { pub stmt_type: StmtKind, #[cfg(rpass1)] pub stmt_tag: Option, #[cfg(rpass2)] pub renamed_tag: Option, } 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, } pub fn start_late_pass(stmt_receiver: Box) { spawn(async { stmt_receiver }); } pub fn spawn(_: T) where T: Send, { } fn main() {}