Open kmyk opened 2 years ago
現状だとたとえば以下のようなコードが書けてしまう。そして奥の方で分かりにくいエラーになるはず。これをちゃんと明示的に検出して分かりやすいエラーとして報告するようにしたい。
(lambda x: abs(x)) == (lambda y: y + 3) (lambda x: abs(x)) < (lambda y: y + 3) min(lambda x: abs(x)), (lambda y: y + 3))
src/Jikka/RestrictedPython/Convert/CheckInvalidComparison.hs みたいなのを新しく作り、Jikka.RestrictedPython.Language.Util の mapExprM と mapSubExprM とを使ってそれぞれの Compare e1 (CmpOp' op t) e2 で t が変な型になってないか確認すればよい
src/Jikka/RestrictedPython/Convert/CheckInvalidComparison.hs
Jikka.RestrictedPython.Language.Util
mapExprM
mapSubExprM
Compare e1 (CmpOp' op t) e2
t
現状だとたとえば以下のようなコードが書けてしまう。そして奥の方で分かりにくいエラーになるはず。これをちゃんと明示的に検出して分かりやすいエラーとして報告するようにしたい。