コードフォーマッターはコードを削除することもある
DRANK

いやそれはバグでは?って思うかもしれないが、実はそうとも言い切れない・・・というか、PrettierもBiomeももちろんOxfmtも、既に同じようにそう動いてるし。つまりは、特定の条件が揃った時には、コードの一部を削除しても問題ない、ということになってるってこと。少なくとも、コードの挙動には影響を与えないなら。あらすじそもそもコードフォーマッターは、コードの挙動を変えることはない、と思うのがまあ一般的な理解かと。つまりは、改行を足したり消したり、スペースを空けたり詰めたりはしても、ASTに現れるような具体的なコード片にはノータッチなんでは?という認識だった。つまり、コードをASTにするここでいったんスナップショット(BF)を保存ASTをフォーマッターに渡してフォーマットそのコードを再びASTにするここでまたスナップショット(AF)を保存そして、BFとAFでスナップショットを比較すれば、フォーマッターが実装ミスやら漏れで大事なコードを消し去ってないことを保証できるのでは?と思ってた。が、実際にこの仕組みを実装してみると、めちゃめちゃASTの差分が出るやんけ!となった。たとえば?いちばん簡単な例をあげるとこういうの。// BEFORE cons…

leaysgur.github.io
Related Topics: