[elixir! #0078] elixir 版本升级的历程(1.11 -> 1.12)

想往常一样打开 github,发现我最喜欢的编程语言 elixir 发布了新的版本。立马下载安装,没想到一运行公司的项目,爆了一堆错误。
1 首先看到的是:

warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead

查了一下 Changelog,原来这个函数已经被淘汰了,像提示里说的那样改为 Bitwise.bxor/2 就可以了。
2 然后 elixir 1.12 版本修正了一个关于 behaviour 的bug。之前如果某个 callback 的实现函数没有标注 @impl true 的话是不会有警告的。现在会报:
warning: module attribute @impl was not set for function xxx/2 callback (specified in XXX). This either means you forgot to add the "@impl true" annotation before the definition or that you are accidentally overriding this callback

【[elixir! #0078] elixir 版本升级的历程(1.11 -> 1.12)】我们把 @impl true 在对应函数上面加上就可以了。
3 最后是 format 的变化。在 1.12 版本中不再允许字符串转义中包含换行,例如
"abc#{ d }e"

在旧版本中是合格的,在新版中则会被强制 format 为:
"abc#{d}e"

end 就这样,一次愉快的升级就完成了。

    推荐阅读