So I tried running in dev on Elixir 1.6.0 (formatting some files of my big big projects) and… it will not compile. I’ve mix deps.clean --all
'd and mix clean
and even a fresh git clone
and it always fails with this same error:
╰─➤ mix compile
==> ecto
Compiling 70 files (.ex)
warning: function slice/1 required by protocol Enumerable is not implemented (in module Enumerable.Ecto.Adapters.SQL.Stream)
lib/ecto/adapters/sql/stream.ex:12
== Compilation error in file lib/ecto/adapters/postgres/connection.ex ==
** (ArgumentError) argument error
(stdlib) erl_anno.erl:322: :erl_anno.set(:generated, false, {"lib/ecto/adapters/postgres/datetime.ex", 48})
could not compile dependency :ecto, "mix compile" failed. You can recompile this dependency with "mix deps.compile ecto", update it with "mix deps.update ecto" or clean it with "mix deps.clean ecto"
That line 48 in that datetime.ex file is just:
<<4 :: int32, days :: int32>> ->
Inside of this function:
def decode(_) do
quote location: :keep do
<<4 :: int32, days :: int32>> ->
:calendar.gregorian_days_to_date(days + unquote(@gd_epoch))
end
end
end
I’ve tried updating ecto (latest of 2.2), etc…
So… what on earth did I break?! o.O?
I’ve reverted back to 1.5.2 again for now but still, the heck did I do?! O.o?