用法用量に注意すること!
Elixirは演算子をオーバーライドできる
- オーバーライド対象を除外した上で、importし直す
- 新しい定義をimportする
マクロの定義はレキシカルスコープ
importしたブロック(モジュール、関数など)の範囲内でオーバーライドされる
goh@goh% elixir "macros/operators.ex"
579
123456
579
warning: unused import Kernel
macros/operators.ex:11
以下の関数は、v1.5.3〜1.6.1でdeprecateされたみたい
Macro.binary_opts
Macro.unary_ops
GitHubのreleasesには記載されていなかった
PragProgのErrataに記載されていた
- Reported in: B1.0 (12-Feb-18) Fixed in: B2.0
https://pragprog.com/titles/elixir16/errata?utf8=%E2%9C%93&what_to_show=2319