# 代码优化

> 当前状态：实现层草案。本文主要记录未来可能采用的编译器优化方向，不代表当前已经承诺的语言语义或实现行为。
> 若与语言级规则发生冲突，应以主规范文档为准。

## 常量折叠

语义分析器会进行常量折叠，优化常量表达式：

```dj
let x = 1 + 2;  // 折叠为 3
let y = 3 * 4;  // 折叠为 12
let z = true && false;  // 折叠为 false
```

## 死代码检测

语义分析器会检测死代码：

```dj
if false {
    println("never executed");  // 警告：死代码
}

return;
println("never executed");  // 警告：死代码
```

## 未使用代码检测

语义分析器会检测未使用的代码：

### 未使用的变量

```dj
let x = 1;  // 警告：未使用的变量
```

### 未使用的函数

```dj
func helper() -> string {  // 警告：未使用的函数
    return "hello";
}
```
