kmyk-jikka / Jikka

an automated solver for problems of competitive programming
https://kmyk-jikka.github.io/Jikka/playground
Apache License 2.0
152 stars 11 forks source link

変な型の比較をコンパイルエラーにする #140

Open kmyk opened 2 years ago

kmyk commented 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))
kmyk commented 2 years ago

src/Jikka/RestrictedPython/Convert/CheckInvalidComparison.hs みたいなのを新しく作り、Jikka.RestrictedPython.Language.UtilmapExprMmapSubExprM とを使ってそれぞれの Compare e1 (CmpOp' op t) e2t が変な型になってないか確認すればよい