35 lines
594 B
Rust
35 lines
594 B
Rust
|
// 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() {}
|