`dhall format` 和 `dhall lint` 的区别

Difference between `dhall format` and `dhall lint`

第一次玩dhall,我看到它支持这两个选项:

  ./dhall --help
  ...
  lint                     Improve Dhall code
  format                   Formatter for the Dhall language

两者有什么区别?从 运行 他们在我的示例项目中看,他们似乎是同一件事。我原以为 linter 在某些方面比格式化更进一步(例如推荐 "idiomatic" dhall),但找不到任何关于它的信息。

dhall lint 所做的改进(在撰写本文时)已列出 here,目前包括:

  • 删除未使用的 let 绑定
  • 合并嵌套 let 绑定以使用多重 let 绑定
  • 切换遗留 List-like Optional 文字以使用 Some / None 代替
  • 删除 constructors 关键字

通常,您应该期望 dhall lint 改进属于以下两类之一:

  • 对代码的无争议改进

    ...比如第一次改进去除未使用的let绑定

  • 自动代码迁移以帮助用户保持最新的语言功能

    ...比如最后三个改进