kmizuの日記

プログラミングや形式言語に関係のあることを書いたり書かなかったり。

Onionのバグ修正

module宣言を使ったとき、たとえば、

module foo.bar;

class A {
  @b: B;
}

class B {}

みたいなときに、@b: BのB型が見つからないというコンパイルエラーが出ていたのを修正。Onionを自分でもっとまともに使ってたらとっくに気付いてたバグだなあ。module宣言無しの、ちょっとしたプログラムしかOnionでは書いてなかったので気付かなかった。ちなみに、module宣言で宣言されたモジュールをimportされるモジュールのリストに追加する際に、モジュール名ではなく、モジュール宣言のASTノードを追加していたのが原因だった。Onionのコードをいじるのは久しぶりで、ずいぶん忘れていたので、デバッガが役に立った。