During the upgrade of one of my libraries to 1.17.0, I got the following error message led the compilation to failing.
== Compilation error in file lib/md/parser/engine.ex ==
** (MatchError) no match of right hand side value: false
(elixir 1.17.0-dev) src/elixir_erl_var.erl:16: :elixir_erl_var.translate/4
(stdlib 6.0) lists.erl:2343: :lists.mapfoldl_1/3
(stdlib 6.0) lists.erl:2344: :lists.mapfoldl_1/3
(stdlib 6.0) lists.erl:2343: :lists.mapfoldl_1/3
(stdlib 6.0) lists.erl:2344: :lists.mapfoldl_1/3
The line above in src/elixir_erl_var.erl:16 belongs to one of :elixir_erl_var.translate/4 clauses here
{version, Version} = lists:keyfind(version, 1, Meta),
I would kindly appreciate any hint of under what circumstances Meta requires this :version key. The quick dig did not shed any light and I am a bit lost.
Macro.var/2 does not generate any version in meta. The only suspicious occurrence in elixir code itself would be in protocol.ex:664 as
x = {:x, [line: line, version: -1], __MODULE__}
But amending meta manually to include version in the only place I generate vars did not help.
Thanks!






















