1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use crate::artifact::CompleteArtifact;
use crate::error::CompileWarnings;
use crate::hir::*;
#[derive(Debug)]
pub struct HIROptimizer {}
impl HIROptimizer {
pub fn optimize(hir: HIR) -> CompleteArtifact {
let mut optimizer = HIROptimizer {};
optimizer.eliminate_dead_code(hir)
}
fn _fold_constants(&mut self, mut _hir: HIR) -> HIR {
todo!()
}
fn _eliminate_unused_variables(&mut self, mut _hir: HIR) -> (HIR, CompileWarnings) {
todo!()
}
fn eliminate_dead_code(&mut self, hir: HIR) -> CompleteArtifact {
CompleteArtifact::new(
self.eliminate_discarded_variables(hir),
CompileWarnings::empty(),
)
}
fn eliminate_discarded_variables(&mut self, mut _hir: HIR) -> HIR {
todo!()
}
}