yarv2llvmの作り直し RubyType編

各データについて1つづつあり、データと型オブジェクトの橋渡しを行うRubyTypeについての検討事項をここに書きます。

  • RubyTypeと型オブジェクトを分離する方針は非常にうまく行くのでこれからも継続する
  • デバッグ情報、@name, @line_noは便利なので今後も必要。さらにどこでadd_same_typeを実行したかのログも欲しい。意図しない型に推論されると非常にデバッグが難しくなる。@name, @line_noはめんどくさがってnilにしておくと後で苦しむので絶対にしない。
  • 衝突した型を記録するconflicted_typesについては、衝突したRubyTypeを記録しておく
  • エスケープ解析については、現状のまま
  • @same_valueにあるRubyTypeオブジェクトも透過的に検索するcontentメソッドは便利なので継続する