aiscript
aiscript copied to clipboard
名前空間上で属性が評価されていない
#892 でパーサーが名前空間内の属性付き宣言をパースできるようになりましたが、インタープリターの collectNsMember では属性が無視されています。
__eval 内の宣言についての部分を見ると、右辺の式を評価した後に、宣言に付いている属性を評価して、右辺の値の attr パラメータを属性の値に書き換えていることがわかります。
https://github.com/aiscript-dev/aiscript/blob/2f103d2d639704b7012763503272ec9d2144f54b/src/interpreter/index.ts#L651-L662
一方で、 collectNsMember の対応する部分を見ると、式を評価した後、そのままスコープに追加していることがわかります。
https://github.com/aiscript-dev/aiscript/blob/2f103d2d639704b7012763503272ec9d2144f54b/src/interpreter/index.ts#L251-L271