java编译器源码解析-语义分析-数据流分析


数据流分析flow(),对应Flow.analyzeTree()方法。

数据流分析分四个阶段,分别是活跃性分析、赋值分析、异常分析、本地变量捕获分析。

public void analyzeTree(Env env, TreeMaker make) {
      new AliveAnalyzer().analyzeTree(env, make);
      new AssignAnalyzer().analyzeTree(env);
      new FlowAnalyzer().analyzeTree(env, make);
      new CaptureAnalyzer().analyzeTree(env, make);
  }

听起来高深莫测,其实每个都有固定的内容。只不过把我们平常代码检查的工作用代码实现了一遍。