Build log
host
servicex_matching 0.0.1 · fail · run servicex_matching-0.0.1-1791099677034
1956 of 1956 lines
1Resolving Hex dependencies...2Resolution completed in 0.213s3Unchanged:4 bcrypt_elixir 1.1.15 certifi 2.15.06 circular_buffer 1.1.07 combine 0.10.08 comeonin 4.1.29 connection 1.0.410 cors_plug 1.5.211 cowboy 1.1.2 VULNERABLE!12 GHSA-w4f7-4cxr-rv3c (MEDIUM)13 aka: CVE-2026-43966, EEF-CVE-2026-4396614 cowboy and gun affected by an HTTP Request/Response Splitting vulnerability15 https://osv.dev/vulnerability/GHSA-w4f7-4cxr-rv3c16 cowlib 1.0.2 VULNERABLE!17 EEF-CVE-2026-7790 (HIGH)18 aka: CVE-2026-7790, GHSA-32p9-57cr-4x6519 Unbounded chunk-size hex digits in cowlib cause quadratic CPU and memory DoS20 https://osv.dev/vulnerability/EEF-CVE-2026-77902122 EEF-CVE-2026-43970 (HIGH)23 aka: CVE-2026-43970, GHSA-84f2-rp86-235p24 Decompression Bomb in cow_spdy:inflate/2 Allows Memory Exhaustion via Crafted SPDY Frame25 https://osv.dev/vulnerability/EEF-CVE-2026-4397026 db_connection 1.1.327 decimal 1.9.0 VULNERABLE!28 EEF-CVE-2026-32686 (MEDIUM)29 aka: CVE-2026-32686, GHSA-rhv4-8758-jx7v30 Unbounded exponent in decimal enables unauthenticated DoS31 https://osv.dev/vulnerability/EEF-CVE-2026-3268632 ecto 2.2.1233 elixir_make 0.10.034 expo 1.1.135 gettext 0.26.236 guardian 1.2.1 VULNERABLE!37 EEF-CVE-2026-54894 (MEDIUM)38 aka: CVE-2026-54894, GHSA-xqch-c77q-rgh539 Atom-table exhaustion denial of service in Guardian via unbounded atom creation from binary keys40 https://osv.dev/vulnerability/EEF-CVE-2026-548944142 EEF-CVE-2026-55735 (HIGH)43 aka: CVE-2026-55735, GHSA-7975-hp3r-5qhv44 Guardian.revoke/3 acts on unverified token claims, allowing forged-token session revocation45 https://osv.dev/vulnerability/EEF-CVE-2026-5573546 guardian_db 1.1.047 hackney 1.25.0 VULNERABLE!48 EEF-CVE-2026-47071 (HIGH)49 aka: CVE-2026-47071, GHSA-gp9c-pm5m-5cxr50 SOCKS5 TLS upgrade ignores caller timeout in hackney51 https://osv.dev/vulnerability/EEF-CVE-2026-470715253 EEF-CVE-2026-47076 (MEDIUM)54 aka: CVE-2026-47076, GHSA-pj7v-xfvx-wmjq55 SSRF allowlist bypass via percent-encoded host in hackney56 https://osv.dev/vulnerability/EEF-CVE-2026-470765758 EEF-CVE-2026-47069 (LOW)59 aka: CVE-2026-47069, GHSA-mp55-p8c9-rfw260 CRLF injection in cookie domain/path options in hackney61 https://osv.dev/vulnerability/EEF-CVE-2026-470696263 EEF-CVE-2026-47075 (MEDIUM)64 aka: CVE-2026-47075, GHSA-j9wq-vxxc-94wf65 CR/LF injection in query parameter in hackney66 https://osv.dev/vulnerability/EEF-CVE-2026-4707567 httpoison 1.8.268 idna 6.1.169 interactive_cmd 0.1.470 jose 1.11.1271 metrics 1.0.172 mime 2.0.773 mimerl 1.5.074 nerves 2.0.0-pre.275 nerves_discovery 0.1.576 nerves_logging 0.2.477 nerves_runtime 0.13.1378 nerves_system_bbb 2.30.279 nerves_system_br 1.34.480 nerves_system_mangopi_mq_pro 0.17.281 nerves_system_qemu_aarch64 0.4.282 nerves_system_rpi0 2.1.283 nerves_system_rpi4 2.1.284 nerves_system_rpi5 2.1.285 nerves_system_trellis 0.5.086 nerves_system_x86_64 1.34.287 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.188 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.189 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.190 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.191 nerves_toolchain_x86_64_nerves_linux_musl 15.3.192 nerves_uevent 0.1.793 parse_trans 3.4.194 phoenix 1.3.5 VULNERABLE!95 GHSA-p8f7-22gq-m7j9 (HIGH)96 aka: CVE-2022-4297597 Phoenix before 1.6.14 mishandles check_origin wildcarding98 https://osv.dev/vulnerability/GHSA-p8f7-22gq-m7j999100 EEF-CVE-2026-56812 (MEDIUM)101 aka: CVE-2026-56812, GHSA-63mc-hw7g-86rr102 Phoenix JavaScript presence client crashes on presence keys colliding with Object.prototype members in Presence.syncState/syncDiff103 https://osv.dev/vulnerability/EEF-CVE-2026-56812104105 EEF-CVE-2026-56811 (HIGH)106 aka: CVE-2026-56811, GHSA-6983-jfq8-485w107 Phoenix transports do not limit channel joins per connection, enabling process-exhaustion denial of service108 https://osv.dev/vulnerability/EEF-CVE-2026-56811109 phoenix_ecto 3.6.0110 phoenix_html 2.14.3 VULNERABLE!111 GHSA-5g2h-9x5v-5h3x (MEDIUM)112 aka: CVE-2021-46871, GHSA-j3gg-r6gp-95q2113 phoenix_html allows Cross-site Scripting in HEEx class attributes114 https://osv.dev/vulnerability/GHSA-5g2h-9x5v-5h3x115 phoenix_pubsub 1.1.2116 plug 1.20.3117 plug_crypto 2.2.0118 poison 3.1.0119 poolboy 1.5.2120 postgrex 0.13.5121 property_table 0.3.4122 ranch 1.3.2123 ring_logger 0.11.7124 servicex 0.1.2125 servicex_matching 0.0.1126 ssl_verify_fun 1.1.7127 tablet 0.3.3128 telemetry 1.4.2129 timex 3.7.13130 toolshed 0.5.0131 tzdata 1.2.2132 uboot_env 1.0.2133 unicode_util_compat 0.7.1134Found packages with security advisories, see above for details135All dependencies have been fetched136 warning: found quoted keyword "test" but the quotes are not required. Note that keywords are always atoms, even when quoted. Similar to atoms, keywords made exclusively of ASCII letters, numbers, and underscores and not beginning with a number do not require quotes137 │138 79 │ "test": ["ecto.drop", "ecto.create --quiet", "ecto.migrate", "run priv/repo/seeds.exs", "test"]139 │ ~140 │141 └─ /work/proj/deps/servicex/mix.exs:79:7142143 warning: found quoted keyword "test" but the quotes are not required. Note that keywords are always atoms, even when quoted. Similar to atoms, keywords made exclusively of ASCII letters, numbers, and underscores and not beginning with a number do not require quotes144 │145 75 │ "test": ["ecto.drop", "ecto.create --quiet", "ecto.migrate", "test"]146 │ ~147 │148 └─ /work/proj/deps/servicex_matching/mix.exs:75:7149150 warning: String.strip/1 is deprecated. Use String.trim/1 instead151 │152 4 │ @version File.read!("VERSION") |> String.strip153 │ ~154 │155 └─ /work/proj/deps/poison/mix.exs:4:44: Poison.Mixfile (module)156157==> comeonin158Compiling 2 files (.ex)159Generated comeonin app160warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"161 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2162 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1163 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5164 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2165 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4166 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2167168==> phoenix169Compiling 75 files (.ex)170 warning: the variable "prefix" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator171 │172 170 │ <<attr::size(prefix)-binary, ":unique">> -> attr173 │ ~174 │175 └─ lib/mix/phoenix/schema.ex:170:20: Mix.Phoenix.Schema.drop_unique/1176177 warning: using single-quoted strings to represent charlists is deprecated.178 Use ~c"" if you indeed want a charlist or use "" instead.179 You may run "mix format --migrate" to change all single-quoted180 strings to use the ~c sigil and fix this warning.181 │182 310 │ :error_logger.warning_msg('~p ~p received unexpected message in handle_info/2: ~p~n',183 │ ~184 │185 └─ lib/phoenix/channel/server.ex:310:31186187 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead188 │189 39 │ Logger.warn "Phoenix is unable to create symlinks. Phoenix' code reloader will run " <>190 │ ~191 │192 └─ lib/phoenix/code_reloader/server.ex:39:20: Phoenix.CodeReloader.Server.handle_call/3193194 warning: unused require Logger195 │196 20 │ require Logger197 │ ~198 │199 └─ lib/phoenix/endpoint/handler.ex:20:3200201 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead202 │203 39 │ Logger.warn """204 │ ~205 │206 └─ lib/phoenix/endpoint/supervisor.ex:39:14: Phoenix.Endpoint.Supervisor.init/1207208 warning: the variable "prefix_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator209 │210 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix211 │ ~212 │213 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/2214215 warning: using single-quoted strings to represent charlists is deprecated.216 Use ~c"" if you indeed want a charlist or use "" instead.217 You may run "mix format --migrate" to change all single-quoted218 strings to use the ~c sigil and fix this warning.219 │220 315 │ @anno (if :erlang.system_info(:otp_release) >= '19' do221 │ ~222 │223 └─ lib/phoenix/router.ex:315:50224225 warning: using single-quoted strings to represent charlists is deprecated.226 Use ~c"" if you indeed want a charlist or use "" instead.227 You may run "mix format --migrate" to change all single-quoted228 strings to use the ~c sigil and fix this warning.229 │230 195 │ @anno (if :erlang.system_info(:otp_release) >= '19' do231 │ ~232 │233 └─ lib/phoenix/router/helpers.ex:195:50234235 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.236237 This error happens when you have function calls without parentheses inside keywords. For example:238239 function(arg, one: nested_call a, b, c)240 function(arg, one: if expr, do: :this, else: :that)241242 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:243244 function(arg, one: if(expr, do: :this, else: :that))245 function(arg, one: nested_call(a, b, c))246247 Ambiguity found at:248 │249 71 │ unless actions -- supported_actions == [], do: raise ArgumentError, """250 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~251 │252 └─ lib/phoenix/router/resource.ex:71253254 warning: duplicate key :route found in struct255 │256 24 │ defstruct [:path, :actions, :param, :route, :controller, :route, :member, :collection, :singleton]257 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~258 │259 └─ lib/phoenix/router/resource.ex:24: Phoenix.Router.Resource (module)260261 warning: invalid type annotation. The left side of :: must be a variable, got: {:ok, pid()} | {:error, reason :: term()}. Note "left | right :: ann" is the same as "(left | right) :: ann". To solve this, use parentheses around the union operands: "left | (right :: ann)"262 │263 110 │ @callback start_link(Keyword.t) :: {:ok, pid()} | {:error, reason :: term()} :: :ignore264 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~265 │266 └─ lib/phoenix/presence.ex:110: Phoenix.Presence (module)267268 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead269 │270 885 │ Logger.warn "send_download/3 has been invoked during an AJAX request. " <>271 │ ~272 │273 └─ lib/phoenix/controller.ex:885:14: Phoenix.Controller.warn_if_ajax/1274275 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead276 │277 304 │ Logger.warn fn -> "Ignoring unmatched topic \"#{msg.topic}\" in #{inspect(socket.handler)}" end278 │ ~279 │280 └─ lib/phoenix/socket/transport.ex:304:12: Phoenix.Socket.Transport.reply_ignore/2281282 warning: using single-quoted strings to represent charlists is deprecated.283 Use ~c"" if you indeed want a charlist or use "" instead.284 You may run "mix format --migrate" to change all single-quoted285 strings to use the ~c sigil and fix this warning.286 │287 174 │ @anno (if :erlang.system_info(:otp_release) >= '19' do288 │ ~289 │290 └─ lib/phoenix/template.ex:174:50291292 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead293 │294 227 │ Logger.warn ":max_age was not set on Phoenix.Token.verify/4. " <>295 │ ~296 │297 └─ lib/phoenix/token.ex:227:12: Phoenix.Token.expired?/2298299 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead300 │301 12 │ worker(Phoenix.Transports.LongPoll.Server, [], restart: :temporary)302 │ ~303 │304 └─ lib/phoenix/transports/long_poll_server.ex:12:7: Phoenix.Transports.LongPoll.Supervisor.init/1305306 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead307 │308 14 │ supervise(children, strategy: :simple_one_for_one)309 │ ~310 │311 └─ lib/phoenix/transports/long_poll_server.ex:14:5: Phoenix.Transports.LongPoll.Supervisor.init/1312313 warning: expected a module (an atom) when invoking config/1 in expression:314315 endpoint.config(:endpoint_id)316317 where "endpoint" was given the type:318319 # type: dynamic(%{..., __pubsub_server__: atom()})320 # from: lib/phoenix/transports/long_poll.ex:199:10321 verify_token(endpoint, token, opts)322323 type warning found at:324 │325 201 │ server_ref = server_ref(endpoint.config(:endpoint_id), id, pid, priv_topic)326 │ ~327 │328 └─ lib/phoenix/transports/long_poll.ex:201:42: Phoenix.Transports.LongPoll.resume_session/3329330 warning: unknown key .__pubsub_server__ in expression:331332 endpoint.__pubsub_server__333334 the given type does not have the given key:335336 dynamic(337 %Phoenix.Socket{338 id: term(),339 assigns: term(),340 channel: term(),341 channel_pid: term(),342 endpoint: atom(),343 handler: term(),344 joined: term(),345 pubsub_server: term(),346 ref: term(),347 join_ref: term(),348 topic: term(),349 transport: term(),350 transport_pid: term(),351 transport_name: term(),352 serializer: term(),353 private: term(),354 vsn: term()355 } or356 %Plug.Conn{357 adapter: term(),358 assigns: term(),359 body_params: term(),360 cookies: term(),361 halted: term(),362 host: term(),363 method: term(),364 owner: term(),365 params: term(),366 path_info: term(),367 path_params: term(),368 port: term(),369 private: term(),370 query_params: term(),371 query_string: term(),372 remote_ip: term(),373 req_cookies: term(),374 req_headers: term(),375 request_path: term(),376 resp_body: term(),377 resp_cookies: term(),378 resp_headers: term(),379 scheme: term(),380 script_name: term(),381 secret_key_base: term(),382 state: term(),383 status: term()384 } or atom() or binary()385 )386387 where "endpoint" was given the type:388389 # type: dynamic(%Phoenix.Socket{endpoint: atom()} or %Plug.Conn{} or atom() or binary())390 # from: lib/phoenix/transports/long_poll.ex:254:19391 Phoenix.Token.sign(endpoint, Atom.to_string(endpoint.__pubsub_server__), data, opts[:crypto])392393 type warning found at:394 │395 254 │ Phoenix.Token.sign(endpoint, Atom.to_string(endpoint.__pubsub_server__), data, opts[:crypto])396 │ ~~~~~~~~~~~~~~~~~397 │398 └─ lib/phoenix/transports/long_poll.ex:254:58: Phoenix.Transports.LongPoll.sign_token/3399400 warning: @behaviour :cowboy_websocket_handler does not exist (in module Phoenix.Endpoint.CowboyWebSocket)401 │402 1 │ defmodule Phoenix.Endpoint.CowboyWebSocket do403 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~404 │405 └─ lib/phoenix/endpoint/cowboy_websocket.ex:1: Phoenix.Endpoint.CowboyWebSocket (module)406407 warning: Plug.Adapters.Cowboy.Conn.conn/2 is undefined (module Plug.Adapters.Cowboy.Conn is not available or is yet to be defined)408 │409 10 │ conn = @connection.conn(req, transport)410 │ ~411 │412 └─ lib/phoenix/endpoint/cowboy_websocket.ex:10:24: Phoenix.Endpoint.CowboyWebSocket.init/3413414 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead415 │416 647 │ exception -> {:error, {exception, System.stacktrace()}}417 │ ~418 │419 └─ lib/phoenix/test/conn_test.ex:647:48: Phoenix.ConnTest.wrap_request/1420421 warning: :cowboy_req.compact/1 is undefined (module :cowboy_req is not available or is yet to be defined)422 │423 73 │ {:ok, :cowboy_req.compact(req), {handler, state}, timeout}424 │ ~425 │426 └─ lib/phoenix/endpoint/cowboy_websocket.ex:73:23: Phoenix.Endpoint.CowboyWebSocket.websocket_init/3427428 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead429 │430 23 │ {:upgrade, :protocol, __MODULE__, req, {:error, mfa, kind, reason, System.stacktrace}}431 │ ~432 │433 └─ lib/phoenix/endpoint/cowboy_websocket.ex:23:83: Phoenix.Endpoint.CowboyWebSocket.init/3434435 warning: Plug.Crypto.safe_binary_to_term/1 is undefined or private436 │437 176 │ %{data: data, signed: signed} = Plug.Crypto.safe_binary_to_term(message)438 │ ~439 │440 └─ lib/phoenix/token.ex:176:53: Phoenix.Token.verify/4441442 warning: a struct for Phoenix.Socket is expected on struct update:443444 %Phoenix.Socket{socket | id: id}445446 but got type:447448 dynamic()449450 where "socket" was given the type:451452 # type: dynamic()453 # from: lib/phoenix/socket/transport.ex454 {:ok, socket}455456 when defining the variable "socket", you must also pattern match on "%Phoenix.Socket{}"457458 type warning found at:459 │460 195 │ id when is_binary(id) -> {:ok, %Socket{socket | id: id}}461 │ ~462 │463 └─ lib/phoenix/socket/transport.ex:195:42: Phoenix.Socket.Transport.do_connect/7464465 warning: a struct for Plug.Conn is expected on struct update:466467 %Plug.Conn{conn | state: :sent}468469 but got type:470471 dynamic()472473 where "conn" was given the type:474475 # type: dynamic()476 # from: lib/phoenix/endpoint/render_errors.ex:79:21477 conn478479 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"480481 type warning found at:482 │483 83 │ %Plug.Conn{conn | state: :sent}484 │ ~485 │486 └─ lib/phoenix/endpoint/render_errors.ex:83:9: Phoenix.Endpoint.RenderErrors.maybe_render/5487488 warning: a struct for Plug.Conn is expected on struct update:489490 %Plug.Conn{conn | query_params: %{}, params: %{}}491492 but got type:493494 dynamic(%{..., params: %Plug.Conn.Unfetched{}})495496 where "conn" was given the types:497498 # type: dynamic(%{..., params: term()})499 # from: lib/phoenix/endpoint/render_errors.ex:94:17500 conn.params501502 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})503 # from: lib/phoenix/endpoint/render_errors.ex:94:17504 conn.params505506 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"507508 type warning found at:509 │510 95 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}511 │ ~512 │513 └─ lib/phoenix/endpoint/render_errors.ex:95:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/1514515 warning: a struct for Plug.Conn is expected on struct update:516517 %Plug.Conn{conn | query_params: %{}, params: params}518519 but got type:520521 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})522523 where "conn" was given the types:524525 # type: dynamic(%{..., params: term()})526 # from: lib/phoenix/endpoint/render_errors.ex:94:17527 conn.params528529 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})530 # from: lib/phoenix/endpoint/render_errors.ex:94:17531 conn.params532533 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"534535 type warning found at:536 │537 96 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}538 │ ~539 │540 └─ lib/phoenix/endpoint/render_errors.ex:96:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/1541542 warning: a struct for Plug.Conn is expected on struct update:543544 %Plug.Conn{conn | params: params}545546 but got type:547548 dynamic(%{..., params: map()})549550 where "conn" was given the type:551552 # type: dynamic(%{..., params: map()})553 # from: lib/phoenix/controller.ex:912:17554 Map.get(conn.params, required_key)555556 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"557558 type warning found at:559 │560 919 │ %Plug.Conn{conn | params: params}561 │ ~562 │563 └─ lib/phoenix/controller.ex:919:5: Phoenix.Controller.scrub_params/2564565 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead566 │567 198 │ supervisor(Task.Supervisor, [[name: task_supervisor]]),568 │ ~569 │570 └─ lib/phoenix/presence.ex:198:7: Phoenix.Presence.start_link/4571572 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead573 │574 199 │ worker(Phoenix.Tracker, [module, opts, opts])575 │ ~576 │577 └─ lib/phoenix/presence.ex:199:7: Phoenix.Presence.start_link/4578579 warning: expected a map or struct when accessing .url in expression:580581 endpoint.url582583 where "endpoint" was given the types:584585 # type: dynamic(atom())586 # from: lib/phoenix/router/helpers.ex:24:20587 endpoint588589 # type: atom()590 # from: lib/phoenix/router/helpers.ex:24:35591 is_atom(endpoint)592593 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()594595 type warning found at:596 │597 25 │ endpoint.url598 │ ~599 │600 └─ lib/phoenix/router/helpers.ex:25:14: Phoenix.Router.Helpers.url/2601602 warning: a struct for Plug.Conn is expected on struct update:603604 %Plug.Conn{conn | path_info: path, script_name: script}605606 but got type:607608 dynamic()609610 where "conn" was given the type:611612 # type: dynamic()613 # from: lib/phoenix/router/route.ex:147:10614 conn = target.call(%Plug.Conn{...}, opts)615616 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"617618 type warning found at:619 │620 148 │ %Plug.Conn{conn | path_info: path, script_name: script}621 │ ~622 │623 └─ lib/phoenix/router/route.ex:148:5: Phoenix.Router.Route.forward/4624625 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead626 │627 284 │ Phoenix.PlugError.reraise(piped_conn, :error, reason, System.stacktrace())628 │ ~629 │630 └─ lib/phoenix/router.ex:284:74: Phoenix.Router.__call__/1631632 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead633 │634 71 │ supervise(children, strategy: :one_for_one)635 │ ~636 │637 └─ lib/phoenix/endpoint/supervisor.ex:71:5: Phoenix.Endpoint.Supervisor.init/1638639 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead640 │641 76 │ [worker(Phoenix.Config, args)]642 │ ~643 │644 └─ lib/phoenix/endpoint/supervisor.ex:76:6: Phoenix.Endpoint.Supervisor.config_children/3645646 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead647 │648 84 │ [supervisor(adapter, [mod.__pubsub_server__(), pub_conf])]649 │ ~650 │651 └─ lib/phoenix/endpoint/supervisor.ex:84:8: Phoenix.Endpoint.Supervisor.pubsub_children/2652 └─ lib/phoenix/endpoint/supervisor.ex:96:8: Phoenix.Endpoint.Supervisor.server_children/3653 └─ lib/phoenix/endpoint/supervisor.ex:97:8: Phoenix.Endpoint.Supervisor.server_children/3654655 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead656 │657 106 │ worker(Phoenix.Endpoint.Watcher, watcher_args(cmd, args),658 │ ~659 │660 └─ lib/phoenix/endpoint/supervisor.ex:106:9: Phoenix.Endpoint.Supervisor.watcher_children/3661662 warning: expected a module (an atom) when invoking path/1 in expression:663664 endpoint.path("/")665666 where "endpoint" was given the type:667668 # type: dynamic(%{..., host: term()})669 # from: lib/phoenix/endpoint/supervisor.ex:312:14670 endpoint.host671672 type warning found at:673 │674 313 │ endpoint.path("/")675 │ ~676 │677 └─ lib/phoenix/endpoint/supervisor.ex:313:14: Phoenix.Endpoint.Supervisor.warmup/1678679 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead680 │681 35 │ supervise(children, strategy: :one_for_one)682 │ ~683 │684 └─ lib/phoenix/endpoint/handler.ex:35:5: Phoenix.Endpoint.Handler.init/1685686 warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead687 │688 39 │ {config_keywords, config_other} = Enum.partition(config, &keyword_item?/1)689 │ ~690 │691 └─ lib/phoenix/endpoint/handler.ex:39:44: Phoenix.Endpoint.Handler.default/3692693 warning: Plug.Adapters.Cowboy.child_spec/4 is deprecated. Use Plug.Cowboy.child_spec/4 instead694 │695 81 │ Plug.Adapters.Cowboy.child_spec(scheme, endpoint, [], config)696 │ ~697 │698 └─ lib/phoenix/endpoint/cowboy_handler.ex:81:28: Phoenix.Endpoint.CowboyHandler.child_spec/3699700 warning: comparison between distinct types found:701702 !Path.extname(file_path) == ".gz"703704 given types:705706 dynamic(boolean()) == binary()707708 where "file_path" was given the type:709710 # type: dynamic(binary() or empty_list() or non_empty_list(term(), term()))711 # from: lib/phoenix/digester.ex:147:45712 Path.basename(file_path)713714 While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false715716 type warning found at:717 │718 148 │ !Path.extname(file_path) == ".gz"719 │ ~720 │721 └─ lib/phoenix/digester.ex:148:32: Phoenix.Digester.uncompressed_digested_file?/1722723 warning: :ranch.get_addr/1 is undefined (module :ranch is not available or is yet to be defined)724 │725 113 │ {addr,port} = :ranch.get_addr(ref)726 │ ~727 │728 └─ lib/phoenix/endpoint/cowboy_handler.ex:113:26: Phoenix.Endpoint.CowboyHandler.info/3729730 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead731 │732 51 │ worker(Phoenix.CodeReloader.Server, [])733 │ ~734 │735 └─ lib/phoenix.ex:51:7: Phoenix.start/2736737 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead738 │739 61 │ IO.puts Exception.format(kind, reason, System.stacktrace)740 │ ~741 │742 └─ lib/phoenix/code_reloader/server.ex:61:59: Phoenix.CodeReloader.Server.handle_call/3743744 warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead745 │746 155 │ Enum.partition attrs, fn747 │ ~748 │749 └─ lib/mix/tasks/phoenix.gen.model.ex:155:10: Mix.Tasks.Phoenix.Gen.Model.partition_attrs_and_assocs/1750751 warning: expected a map or struct when accessing .__phoenix_recompile__? in expression:752753 mod.__phoenix_recompile__?754755 where "mod" was given the type:756757 # type: dynamic(atom())758 # from: lib/mix/tasks/compile.phoenix.ex:34:12759 Code.ensure_loaded?(mod)760761 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()762763 type warning found at:764 │765 36 │ mod.__phoenix_recompile__?766 │ ~767 │768 └─ lib/mix/tasks/compile.phoenix.ex:36:13: Mix.Tasks.Compile.Phoenix.modules_for_recompilation/1769770 warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead771 │772 234 │ Enum.partition(attrs, fn773 │ ~774 │775 └─ lib/mix/phoenix/schema.ex:234:12: Mix.Phoenix.Schema.partition_attrs_and_assocs/2776777Generated phoenix app778==> phoenix_html779Compiling 8 files (.ex)780 warning: using single-quoted strings to represent charlists is deprecated.781 Use ~c"" if you indeed want a charlist or use "" instead.782 You may run "mix format --migrate" to change all single-quoted783 strings to use the ~c sigil and fix this warning.784 │785 12 │ @anno (if :erlang.system_info(:otp_release) >= '19' do786 │ ~787 │788 └─ lib/phoenix_html/engine.ex:12:50789790 warning: the 1st pattern in clause will never match:791792 60793794 because it is expected to receive type:795796 dynamic(empty_list() or non_empty_list(term(), term()))797798 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())799800 type warning found at:801 │802 56 │ def to_iodata(?<), do: "<"803 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~804 │805 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1806807 warning: the 1st pattern in clause will never match:808809 62810811 because it is expected to receive type:812813 dynamic(empty_list() or non_empty_list(term(), term()))814815 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())816817 type warning found at:818 │819 57 │ def to_iodata(?>), do: ">"820 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~821 │822 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1823824 warning: the 1st pattern in clause will never match:825826 38827828 because it is expected to receive type:829830 dynamic(empty_list() or non_empty_list(term(), term()))831832 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())833834 type warning found at:835 │836 58 │ def to_iodata(?&), do: "&"837 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~838 │839 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1840841 warning: the 1st pattern in clause will never match:842843 34844845 because it is expected to receive type:846847 dynamic(empty_list() or non_empty_list(term(), term()))848849 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())850851 type warning found at:852 │853 59 │ def to_iodata(?"), do: """854 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~855 │856 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1857858 warning: the 1st pattern in clause will never match:859860 39861862 because it is expected to receive type:863864 dynamic(empty_list() or non_empty_list(term(), term()))865866 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())867868 type warning found at:869 │870 60 │ def to_iodata(?'), do: "'"871 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~872 │873 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1874875 warning: the 1st pattern in clause will never match:876877 {:safe, data}878879 because it is expected to receive type:880881 dynamic(empty_list() or non_empty_list(term(), term()))882883 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())884885 type warning found at:886 │887 76 │ def to_iodata({:safe, data}) do888 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~889 │890 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1891892 warning: the following clause is redundant:893894 def to_iodata(other)895896 it has type:897898 dynamic(empty_list() or non_empty_list(term(), term()))899900 previous clauses have already matched on the following types:901902 non_empty_list(term(), term())903 empty_list()904905 │906 80 │ def to_iodata(other) do907 │ ~908 │909 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1910911 warning: the 1st pattern in clause will never match:912913 h914915 because it is expected to receive type:916917 dynamic(empty_list() or non_empty_list(term(), term()))918919 where "h" was given the type:920921 # type: integer()922 # from: lib/phoenix_html/safe.ex:62:25923 is_integer(h)924925 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())926927 type warning found at:928 │929 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do930 │ ~931 │932 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1933934 warning: the 1st pattern in clause will never match:935936 h937938 because it is expected to receive type:939940 dynamic(empty_list() or non_empty_list(term(), term()))941942 where "h" was given the type:943944 # type: integer()945 # from: lib/phoenix_html/safe.ex:66:25946 is_integer(h)947948 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())949950 type warning found at:951 │952 66 │ def to_iodata(h) when is_integer(h) do953 │ ~954 │955 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1956957 warning: the 1st pattern in clause will never match:958959 h960961 because it is expected to receive type:962963 dynamic(empty_list() or non_empty_list(term(), term()))964965 where "h" was given the type:966967 # type: binary()968 # from: lib/phoenix_html/safe.ex:72:25969 is_binary(h)970971 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())972973 type warning found at:974 │975 72 │ def to_iodata(h) when is_binary(h) do976 │ ~977 │978 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1979980Generated phoenix_html app981warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"982 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2983 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1984 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5985 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2986 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4987 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2988989==> guardian990Compiling 20 files (.ex)991Generated guardian app992warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"993 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2994 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1995 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5996 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2997 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4998 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/29991000==> ecto1001Compiling 70 files (.ex)1002 warning: using single-quoted strings to represent charlists is deprecated.1003 Use ~c"" if you indeed want a charlist or use "" instead.1004 You may run "mix format --migrate" to change all single-quoted1005 strings to use the ~c sigil and fix this warning.1006 │1007 166 │ defp insert_all_value(_), do: '?'1008 │ ~1009 │1010 └─ lib/ecto/adapters/mysql/connection.ex:166:3710111012 warning: using single-quoted strings to represent charlists is deprecated.1013 Use ~c"" if you indeed want a charlist or use "" instead.1014 You may run "mix format --migrate" to change all single-quoted1015 strings to use the ~c sigil and fix this warning.1016 │1017 354 │ '?'1018 │ ~1019 │1020 └─ lib/ecto/adapters/mysql/connection.ex:354:710211022 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.10231024 This error happens when you have function calls without parentheses inside keywords. For example:10251026 function(arg, one: nested_call a, b, c)1027 function(arg, one: if expr, do: :this, else: :that)10281029 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:10301031 function(arg, one: if(expr, do: :this, else: :that))1032 function(arg, one: nested_call(a, b, c))10331034 Ambiguity found at:1035 │1036 2286 │ raise ArgumentError, "cannot add constraint to changeset because it does not have a source, got: #{inspect data}"1037 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1038 │1039 └─ lib/ecto/changeset.ex:228610401041 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.10421043 This error happens when you have function calls without parentheses inside keywords. For example:10441045 function(arg, one: nested_call a, b, c)1046 function(arg, one: if expr, do: :this, else: :that)10471048 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:10491050 function(arg, one: if(expr, do: :this, else: :that))1051 function(arg, one: nested_call(a, b, c))10521053 Ambiguity found at:1054 │1055 265 │ do: raise ArgumentError, "a constraint must have either a check or exclude option"1056 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1057 │1058 └─ lib/ecto/migration/runner.ex:26510591060 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.10611062 This error happens when you have function calls without parentheses inside keywords. For example:10631064 function(arg, one: nested_call a, b, c)1065 function(arg, one: if expr, do: :this, else: :that)10661067 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:10681069 function(arg, one: if(expr, do: :this, else: :that))1070 function(arg, one: nested_call(a, b, c))10711072 Ambiguity found at:1073 │1074 267 │ do: raise ArgumentError, "a constraint must not have both check and exclude options"1075 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1076 │1077 └─ lib/ecto/migration/runner.ex:26710781079 warning: atom ::: must be written between quotes, as in :"::", to avoid ambiguity1080 │1081 136 │ {:::, _, [left, _]} -> is_integer(left) or is_binary(left)1082 │ ~1083 │1084 └─ lib/ecto/query/builder.ex:136:810851086 warning: unknown compiler variable "__" (expected one of __MODULE__, __ENV__, __DIR__, __CALLER__, __STACKTRACE__)1087 │1088 643 │ def quoted_type({:datetime_add, _, [_, _, __]}, _vars), do: :naive_datetime1089 │ ~~1090 │1091 └─ lib/ecto/query/builder.ex:643:45: Ecto.Query.Builder.quoted_type/210921093 warning: unknown compiler variable "__" (expected one of __MODULE__, __ENV__, __DIR__, __CALLER__, __STACKTRACE__)1094 │1095 644 │ def quoted_type({:date_add, _, [_, _, __]}, _vars), do: :date1096 │ ~~1097 │1098 └─ lib/ecto/query/builder.ex:644:41: Ecto.Query.Builder.quoted_type/210991100 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.11011102 This error happens when you have function calls without parentheses inside keywords. For example:11031104 function(arg, one: nested_call a, b, c)1105 function(arg, one: if expr, do: :this, else: :that)11061107 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:11081109 function(arg, one: if(expr, do: :this, else: :that))1110 function(arg, one: nested_call(a, b, c))11111112 Ambiguity found at:1113 │1114 454 │ do: raise ArgumentError, "a changeset with action #{inspect given} was given to #{inspect repo}.#{action}/2"1115 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1116 │1117 └─ lib/ecto/repo/schema.ex:45411181119 warning: unused require Ecto.Query1120 │1121 6 │ require Ecto.Query1122 │ ~1123 │1124 └─ lib/ecto/repo/preloader.ex:6:311251126 warning: Module.eval_quoted/2 is deprecated. Use Code.eval_quoted/3 instead1127 │1128 9 │ schema "schema_migrations" do1129 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1130 │1131 └─ lib/ecto/migration/schema_migration.ex:9: Ecto.Migration.SchemaMigration (module)11321133 warning: incompatible types given to Mix.Ecto.ensure_started/2:11341135 Mix.Ecto.ensure_started(repo, opts)11361137 given types:11381139 -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))11401141 but expected one of:11421143 %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())11441145 where "opts" was given the type:11461147 # type: dynamic(1148 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1149 non_struct_map()1150 )1151 # from: lib/mix/tasks/ecto.rollback.ex:64:101152 opts =1153 if opts[:quiet] do1154 Keyword.merge(opts, log: false, log_sql: false)1155 else1156 opts1157 end11581159 where "repo" was given the type:11601161 # type: dynamic(atom())1162 # from: lib/mix/tasks/ecto.rollback.ex:70:71163 Mix.Ecto.ensure_repo(repo, args)11641165 type warning found at:1166 │1167 72 │ {:ok, pid, apps} = ensure_started(repo, opts)1168 │ ~1169 │1170 └─ lib/mix/tasks/ecto.rollback.ex:72:26: Mix.Tasks.Ecto.Rollback.run/211711172 warning: struct DBConnection.OwnershipError is undefined (module DBConnection.OwnershipError is not available or is yet to be defined)1173 │1174 258 │ err in DBConnection.OwnershipError ->1175 │ ~1176 │1177 └─ lib/ecto/adapters/sql.ex:258:11: Ecto.Adapters.SQL.sql_call/611781179 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1180 │1181 260 │ reraise %{err | message: message}, System.stacktrace1182 │ ~1183 │1184 └─ lib/ecto/adapters/sql.ex:260:51: Ecto.Adapters.SQL.sql_call/611851186 warning: incompatible types given to Mix.Ecto.ensure_started/2:11871188 Mix.Ecto.ensure_started(repo, all: true)11891190 given types:11911192 -dynamic(atom())-, non_empty_list({:all, true})11931194 but expected one of:11951196 %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())11971198 where "repo" was given the type:11991200 # type: dynamic(atom())1201 # from: lib/mix/tasks/ecto.migrations.ex:37:71202 Mix.Ecto.ensure_repo(repo, args)12031204 type warning found at:1205 │1206 39 │ {:ok, pid, _} = ensure_started(repo, all: true)1207 │ ~1208 │1209 └─ lib/mix/tasks/ecto.migrations.ex:39:23: Mix.Tasks.Ecto.Migrations.run/312101211 warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead1212 │1213 2400 │ surround_many("#Ecto.Changeset<", list, ">", opts, fn1214 │ ~1215 │1216 └─ lib/ecto/changeset.ex:2400:5: Inspect.Ecto.Changeset.inspect/212171218 warning: incompatible types given to Mix.Ecto.ensure_started/2:12191220 Mix.Ecto.ensure_started(repo, opts)12211222 given types:12231224 -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))12251226 but expected one of:12271228 %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())12291230 where "opts" was given the type:12311232 # type: dynamic(1233 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1234 non_struct_map()1235 )1236 # from: lib/mix/tasks/ecto.migrate.ex:68:101237 opts =1238 if opts[:quiet] do1239 Keyword.merge(opts, log: false, log_sql: false)1240 else1241 opts1242 end12431244 where "repo" was given the type:12451246 # type: dynamic(atom())1247 # from: lib/mix/tasks/ecto.migrate.ex:74:71248 Mix.Ecto.ensure_repo(repo, args)12491250 type warning found at:1251 │1252 76 │ {:ok, pid, apps} = ensure_started(repo, opts)1253 │ ~1254 │1255 └─ lib/mix/tasks/ecto.migrate.ex:76:26: Mix.Tasks.Ecto.Migrate.run/212561257 warning: incompatible types given to Mix.Ecto.source_repo_priv/1:12581259 Mix.Ecto.source_repo_priv(repo)12601261 given types:12621263 -dynamic(%{..., __adapter__: atom(), config: empty_list() or non_empty_list(term(), term())})-12641265 but expected one of:12661267 atom()12681269 where "repo" was given the types:12701271 # type: dynamic(%{..., config: empty_list() or non_empty_list(term(), term())})1272 # from: lib/mix/tasks/ecto.load.ex:70:221273 Keyword.merge(repo.config, opts)12741275 # type: dynamic(%{..., __adapter__: atom(), config: empty_list() or non_empty_list(term(), term())})1276 # from: lib/mix/tasks/ecto.load.ex:72:271277 repo.__adapter__.structure_load(Mix.Ecto.source_repo_priv(repo), config)12781279 type warning found at:1280 │1281 72 │ case repo.__adapter__.structure_load(source_repo_priv(repo), config) do1282 │ ~1283 │1284 └─ lib/mix/tasks/ecto.load.ex:72:42: Mix.Tasks.Ecto.Load.load_structure/212851286 warning: expected a map or struct when accessing .__adapter__ in expression:12871288 repo.__adapter__12891290 where "repo" was given the type:12911292 # type: dynamic(atom())1293 # from: lib/mix/tasks/ecto.load.ex:53:71294 Mix.Ecto.ensure_repo(repo, args)12951296 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()12971298 type warning found at:1299 │1300 54 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,1301 │ ~1302 │1303 └─ lib/mix/tasks/ecto.load.ex:54:30: Mix.Tasks.Ecto.Load.run/113041305 warning: the following clause will never match:13061307 [{^module, :changeset, args_or_arity, _}] when args_or_arity == 2 when length(args_or_arity) == 2 ->13081309 because it attempts to match on the result of:13101311 System.stacktrace()13121313 which has type:13141315 empty_list()13161317 where "args_or_arity" was given the type:13181319 # type: float() or integer() or non_empty_list(term())1320 # from: lib/ecto/changeset.ex1321 (_() when args_or_arity == 2) when length(args_or_arity) == 213221323 where "module" was given the type:13241325 # type: dynamic()1326 # from: lib/ecto/changeset.ex:733:301327 module13281329 type warning found at:1330 │1331 741 │ ... when length(args_or_arity) == 2 ->1332 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1333 │1334 └─ lib/ecto/changeset.ex:741: Ecto.Changeset.on_cast_default/213351336 warning: expected a map or struct when accessing .__adapter__ in expression:13371338 repo.__adapter__13391340 where "repo" was given the type:13411342 # type: dynamic(atom())1343 # from: lib/mix/tasks/ecto.dump.ex:50:71344 Mix.Ecto.ensure_repo(repo, args)13451346 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13471348 type warning found at:1349 │1350 51 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,1351 │ ~1352 │1353 └─ lib/mix/tasks/ecto.dump.ex:51:30: Mix.Tasks.Ecto.Dump.run/113541355 warning: expected a map or struct when accessing .__adapter__ in expression:13561357 repo.__adapter__13581359 where "repo" was given the type:13601361 # type: dynamic(atom())1362 # from: lib/mix/tasks/ecto.drop.ex:39:71363 Mix.Ecto.ensure_repo(repo, args)13641365 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13661367 type warning found at:1368 │1369 40 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Storage,1370 │ ~1371 │1372 └─ lib/mix/tasks/ecto.drop.ex:40:30: Mix.Tasks.Ecto.Drop.run/113731374 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1375 │1376 739 │ case System.stacktrace do1377 │ ~1378 │1379 └─ lib/ecto/changeset.ex:739:23: Ecto.Changeset.on_cast_default/213801381 warning: expected a map or struct when accessing .__adapter__ in expression:13821383 repo.__adapter__13841385 where "repo" was given the type:13861387 # type: dynamic(atom())1388 # from: lib/mix/tasks/ecto.create.ex:37:71389 Mix.Ecto.ensure_repo(repo, args)13901391 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13921393 type warning found at:1394 │1395 38 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Storage,1396 │ ~1397 │1398 └─ lib/mix/tasks/ecto.create.ex:38:30: Mix.Tasks.Ecto.Create.run/113991400 warning: Mix.Project.compile/1 is deprecated. Use Mix.Task.run("compile", args) instead1401 │1402 62 │ Mix.Project.compile(args)1403 │ ~1404 │1405 └─ lib/mix/ecto.ex:62:19: Mix.Ecto.ensure_repo/214061407 warning: expected a module (an atom) when invoking start_link/1 in expression:14081409 repo.start_link(pool_size: pool_size)14101411 where "pool_size" was given the type:14121413 # type: dynamic()1414 # from: lib/mix/ecto.ex:101:151415 pool_size = Keyword.get(opts, :pool_size, 1)14161417 where "repo" was given the type:14181419 # type: dynamic(%{..., __adapter__: atom()})1420 # from: lib/mix/ecto.ex:99:361421 repo.__adapter__.ensure_all_started(repo, :temporary)14221423 type warning found at:1424 │1425 102 │ case repo.start_link(pool_size: pool_size) do1426 │ ~1427 │1428 └─ lib/mix/ecto.ex:102:15: Mix.Ecto.ensure_started/214291430 warning: Logger.remove_backend/1 is deprecated. Use LoggerBackends.remove/2 from :logger_backends dependency1431 │1432 146 │ Logger.remove_backend(:console)1433 │ ~1434 │1435 └─ lib/mix/ecto.ex:146:12: Mix.Ecto.restart_apps_if_migrated/214361437 warning: Logger.add_backend/2 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency1438 │1439 155 │ Logger.add_backend(:console, flush: true)1440 │ ~1441 │1442 └─ lib/mix/ecto.ex:155:12: Mix.Ecto.restart_apps_if_migrated/214431444 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1445 │1446 856 │ not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1447 │ ~1448 │1449 └─ lib/ecto/association.ex:856:78: Ecto.Association.ManyToMany.after_compile_validation/21450 └─ lib/ecto/association.ex:860:45: Ecto.Association.ManyToMany.after_compile_validation/214511452 warning: incompatible types given to get_source/1:14531454 get_source(repo)14551456 given types:14571458 -dynamic(atom())-14591460 but expected one of:14611462 %{..., config: empty_list() or non_empty_list(term(), term())}14631464 where "repo" was given the type:14651466 # type: dynamic(atom())1467 # from: lib/ecto/migration/schema_migration.ex:24:131468 repo.all(1469 Map.put(1470 (1471 query =1472 (1473 query = {get_source(repo), Ecto.Migration.SchemaMigration}1474 Ecto.Query.Builder.From.apply(query, 1)1475 )1476 1477 Ecto.Query.Builder.Select.apply(query, %Ecto.Query.SelectExpr{1478 ...,1479 expr: {{:., [], [{:&, [], [0]}, :version]}, [], []},1480 file: "/work/proj/deps/ecto/lib/ecto/migration/schema_migration.ex",1481 line: 22,1482 take: %{}1483 })1484 ),1485 :prefix,1486 prefix1487 ), timeout: :infinity, log: false)14881489 type warning found at:1490 │1491 22 │ from(p in {get_source(repo), __MODULE__}, select: p.version)1492 │ ~1493 │1494 └─ lib/ecto/migration/schema_migration.ex:22:16: Ecto.Migration.SchemaMigration.migrated_versions/214951496 warning: incompatible types given to get_source/1:14971498 get_source(repo)14991500 given types:15011502 -dynamic(atom())-15031504 but expected one of:15051506 %{..., config: empty_list() or non_empty_list(term(), term())}15071508 where "repo" was given the type:15091510 # type: dynamic(atom())1511 # from: lib/ecto/migration/schema_migration.ex:30:131512 repo.insert!(1513 Ecto.put_meta(%Ecto.Migration.SchemaMigration{..., version: version},1514 prefix: prefix,1515 source: get_source(repo)1516 ), timeout: :infinity, log: false)15171518 type warning found at:1519 │1520 29 │ |> Ecto.put_meta(prefix: prefix, source: get_source(repo))1521 │ ~1522 │1523 └─ lib/ecto/migration/schema_migration.ex:29:46: Ecto.Migration.SchemaMigration.up/315241525 warning: incompatible types given to get_source/1:15261527 get_source(repo)15281529 given types:15301531 -dynamic(atom())-15321533 but expected one of:15341535 %{..., config: empty_list() or non_empty_list(term(), term())}15361537 where "repo" was given the type:15381539 # type: dynamic(atom())1540 # from: lib/ecto/migration/schema_migration.ex:36:131541 repo.delete_all(1542 Map.put(1543 (1544 query =1545 (1546 query = {get_source(repo), Ecto.Migration.SchemaMigration}1547 Ecto.Query.Builder.From.apply(query, 1)1548 )1549 1550 Ecto.Query.Builder.Filter.apply(query, :where, %Ecto.Query.BooleanExpr{1551 expr: {:==, [], [{{:., [], [{:&, [], [0]}, :version]}, [], []}, {:^, [], [0]}]},1552 op: :and,1553 params: [{Ecto.Query.Builder.not_nil!(version), {0, :version}}],1554 file: "/work/proj/deps/ecto/lib/ecto/migration/schema_migration.ex",1555 line: 341556 })1557 ),1558 :prefix,1559 prefix1560 ), timeout: :infinity, log: false)15611562 type warning found at:1563 │1564 34 │ from(p in {get_source(repo), __MODULE__}, where: p.version == ^version)1565 │ ~1566 │1567 └─ lib/ecto/migration/schema_migration.ex:34:16: Ecto.Migration.SchemaMigration.down/315681569 warning: this clause of defp type_to_module/1 is never used (or it will always fail/warn when invoked)1570 │1571 1422 │ defp type_to_module(:naive_datetime), do: NaiveDateTime1572 │ ~1573 │1574 └─ lib/ecto/schema.ex:1422:8: Ecto.Schema.type_to_module/115751576 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1577 │1578 715 │ not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1579 │ ~1580 │1581 └─ lib/ecto/association.ex:715:78: Ecto.Association.BelongsTo.after_compile_validation/215821583 warning: the following conditional expression:15841585 is_atom(related)15861587 will always evaluate to:15881589 dynamic(true)15901591 where "related" was given the type:15921593 # type: dynamic(atom())1594 # from: lib/ecto/association.ex:730:151595 related = Ecto.Association.related_from_query(queryable)15961597 type warning found at:1598 │1599 732 │ unless is_atom(related) do1600 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~1601 │1602 └─ lib/ecto/association.ex:732: Ecto.Association.BelongsTo.struct/316031604 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1605 │1606 1885 │ if Code.ensure_compiled?(type) and function_exported?(type, :type, 0) do1607 │ ~1608 │1609 └─ lib/ecto/schema.ex:1885:17: Ecto.Schema.check_type!/316101611 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1612 │1613 430 │ not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1614 │ ~1615 │1616 └─ lib/ecto/association.ex:430:78: Ecto.Association.Has.after_compile_validation/216171618 warning: the following clause will never match:16191620 {:error, _} = error ->16211622 because it attempts to match on the result of:16231624 apply(changeset, adapter, :insert, args)16251626 which has type:16271628 dynamic({:invalid or :ok, term()})16291630 type warning found at:1631 │1632 219 │ {:error, _} = error ->1633 │ ~1634 │1635 └─ lib/ecto/repo/schema.ex:219:23: Ecto.Repo.Schema.do_insert/416361637 warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead1638 │1639 29 │ surround_many("#Ecto.Query<", list, ">", opts, fn str, _ -> str end)1640 │ ~1641 │1642 └─ lib/ecto/query/inspect.ex:29:5: Inspect.Ecto.Query.inspect/216431644 warning: Macro.to_string/2 is deprecated. Use Macro.to_string/1 instead1645 │1646 144 │ Macro.to_string(expr, &expr_to_string(&1, &2, names, part))1647 │ ~1648 │1649 └─ lib/ecto/query/inspect.ex:144:11: Inspect.Ecto.Query.expr/316501651 warning: the following clause will never match:16521653 {:error, _} = error ->16541655 because it attempts to match on the result of:16561657 apply(changeset, adapter, action, args)16581659 which has type:16601661 dynamic({:invalid or :ok, term()})16621663 type warning found at:1664 │1665 297 │ {:error, _} = error ->1666 │ ~1667 │1668 └─ lib/ecto/repo/schema.ex:297:25: Ecto.Repo.Schema.do_update/416691670 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1671 │1672 54 │ filter_and_reraise e, System.stacktrace1673 │ ~1674 │1675 └─ lib/ecto/repo/preloader.ex:54:36: Ecto.Repo.Preloader.normalize_and_preload_each/516761677 warning: Map.size/1 is deprecated. Use Kernel.map_size/1 instead1678 │1679 44 │ index = Map.size(params)1680 │ ~1681 │1682 └─ lib/ecto/query/builder.ex:44:18: Ecto.Query.Builder.escape/51683 └─ lib/ecto/query/builder.ex:53:17: Ecto.Query.Builder.escape/516841685 warning: Decimal.minus/1 is deprecated. Use Decimal.negate/1 instead1686 │1687 614 │ Decimal.minus(decimal)1688 │ ~1689 │1690 └─ lib/ecto/query/builder.ex:614:13: Ecto.Query.Builder.negate!/116911692 warning: BadStructError.exception/1 is undefined (module BadStructError is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)1693 │1694 228 │ raise BadStructError, struct: struct, term: data1695 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1696 │1697 └─ lib/ecto/repo/queryable.ex:228: Ecto.Repo.Queryable.process/516981699 warning: the following clause will never match:17001701 {:error, _} ->17021703 because it attempts to match on the result of:17041705 NaiveDateTime.new(date, time)17061707 which has type:17081709 dynamic({:ok, %NaiveDateTime{}})17101711 type warning found at:1712 │1713 803 │ {:error, _} -> :error1714 │ ~~~~~~~~~~~~~~~~~~~~~1715 │1716 └─ lib/ecto/type.ex:803: Ecto.Type.cast_naive_datetime/117171718 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1719 │1720 214 │ filter_and_reraise e, System.stacktrace1721 │ ~1722 │1723 └─ lib/ecto/query/planner.ex:214:36: Ecto.Query.Planner.prepare/41724 └─ lib/ecto/query/planner.ex:709:36: Ecto.Query.Planner.normalize/417251726 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1727 │1728 159 │ supervise(children, strategy: :one_for_one)1729 │ ~1730 │1731 └─ lib/ecto/repo/supervisor.ex:159:9: Ecto.Repo.Supervisor.init/117321733 warning: expected a map or struct when accessing .__struct__ in expression:17341735 schema.__struct__17361737 where "schema" was given the types:17381739 # type: dynamic(atom() and not nil)1740 # from: lib/ecto/query/planner.ex:1186:411741 schema17421743 # type: atom()1744 # from: lib/ecto/query/planner.ex:1186:611745 is_atom(schema)17461747 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()17481749 type warning found at:1750 │1751 1190 │ Map.has_key?(schema.__struct__, field) ->1752 │ ~1753 │1754 └─ lib/ecto/query/planner.ex:1190:27: Ecto.Query.Planner.type!/617551756 warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead1757 │1758 15 │ surround_many("dynamic(", [Macro.to_string(binding), inspected], ")", opts, fn str, _ -> str end)1759 │ ~1760 │1761 └─ lib/ecto/query/inspect.ex:15:5: Inspect.Ecto.Query.DynamicExpr.inspect/217621763 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead1764 │1765 12 │ worker(Ecto.Migration.Runner, [], restart: :temporary)1766 │ ~1767 │1768 └─ lib/ecto/migration/supervisor.ex:12:7: Ecto.Migration.Supervisor.init/117691770 warning: incompatible types given to Ecto.Migration.SchemaMigration.migrated_versions/2:17711772 Ecto.Migration.SchemaMigration.migrated_versions(repo, opts[:prefix])17731774 given types:17751776 (1777 -dynamic(%{..., __adapter__: term(), config: empty_list() or non_empty_list(term(), term())})-,1778 dynamic()1779 )17801781 but expected one of:17821783 atom(), term()17841785 where "opts" was given the type:17861787 # type: dynamic(1788 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1789 non_struct_map()1790 )1791 # from: lib/ecto/migrator.ex:44:651792 opts[:prefix]17931794 where "repo" was given the type:17951796 # type: dynamic(%{..., __adapter__: term(), config: empty_list() or non_empty_list(term(), term())})1797 # from: lib/ecto/migrator.ex:44:231798 Ecto.Migration.SchemaMigration.ensure_schema_migrations_table!(repo, opts[:prefix])17991800 type warning found at:1801 │1802 45 │ SchemaMigration.migrated_versions(repo, opts[:prefix])1803 │ ~1804 │1805 └─ lib/ecto/migrator.ex:45:23: Ecto.Migrator.migrated_versions/218061807 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1808 │1809 15 │ supervise(children, strategy: :simple_one_for_one)1810 │ ~1811 │1812 └─ lib/ecto/migration/supervisor.ex:15:5: Ecto.Migration.Supervisor.init/118131814 warning: expected a module (an atom) when invoking transaction/2 in expression:18151816 repo.transaction(fun, log: false, timeout: :infinity)18171818 where "fun" was given the type:18191820 # type: dynamic()1821 # from: lib/ecto/migrator.ex:114:471822 fun18231824 where "repo" was given the types:18251826 # type: dynamic(%{..., __adapter__: %{..., supports_ddl_transaction?: term()}})1827 # from: lib/ecto/migrator.ex:118:241828 repo.__adapter__.supports_ddl_transaction?18291830 # type: dynamic(%{..., __adapter__: %{..., supports_ddl_transaction?: not false and not nil}})1831 # from: lib/ecto/migrator.ex:118:241832 repo.__adapter__.supports_ddl_transaction?18331834 type warning found at:1835 │1836 119 │ repo.transaction(fun, [log: false, timeout: :infinity])1837 │ ~1838 │1839 └─ lib/ecto/migrator.ex:119:14: Ecto.Migrator.run_maybe_in_transaction/318401841 warning: Code.load_file/1 is deprecated. Use Code.require_file/2 or Code.compile_file/2 instead1842 │1843 291 │ modules = Code.load_file(file)1844 │ ~1845 │1846 └─ lib/ecto/migrator.ex:291:20: Ecto.Migrator.extract_module/218471848 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1849 │1850 321 │ reraise error, System.stacktrace1851 │ ~1852 │1853 └─ lib/ecto/migrator.ex:321:31: Ecto.Migrator.verbose_schema_migration/318541855 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1856 │1857 10 │ worker(Ecto.Registry, []),1858 │ ~1859 │1860 └─ lib/ecto/application.ex:10:7: Ecto.Application.start/218611862 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1863 │1864 11 │ supervisor(Ecto.Migration.Supervisor, [])1865 │ ~1866 │1867 └─ lib/ecto/application.ex:11:7: Ecto.Application.start/218681869Generated ecto app1870==> phoenix_ecto1871Compiling 6 files (.ex)1872 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1873 │1874 10 │ supervise([1875 │ ~1876 │1877 └─ lib/phoenix_ecto/sql/sandbox_supervisor.ex:10:5: Phoenix.Ecto.SQL.SandboxSupervisor.init/118781879 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead1880 │1881 11 │ worker(Phoenix.Ecto.SQL.SandboxSession, [], restart: :temporary)1882 │ ~1883 │1884 └─ lib/phoenix_ecto/sql/sandbox_supervisor.ex:11:7: Phoenix.Ecto.SQL.SandboxSupervisor.init/118851886 warning: function actions/1 required by protocol Plug.Exception is not implemented (in module Plug.Exception.Ecto.SubQueryError)1887 │1888 20 │ defimpl Plug.Exception, for: Ecto.SubQueryError do1889 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1890 │1891 └─ lib/phoenix_ecto/plug.ex:20: Plug.Exception.Ecto.SubQueryError (module)18921893 warning: function actions/1 required by protocol Plug.Exception is not implemented (in module Plug.Exception.Ecto.InvalidChangesetError)1894 │1895 13 │ defimpl Plug.Exception, for: exception do1896 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1897 │1898 └─ lib/phoenix_ecto/plug.ex:13: Plug.Exception.Ecto.InvalidChangesetError (module)18991900 warning: function actions/1 required by protocol Plug.Exception is not implemented (in module Plug.Exception.Ecto.StaleEntryError)1901 │1902 13 │ defimpl Plug.Exception, for: exception do1903 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1904 │1905 └─ lib/phoenix_ecto/plug.ex:13: Plug.Exception.Ecto.StaleEntryError (module)19061907 warning: function actions/1 required by protocol Plug.Exception is not implemented (in module Plug.Exception.Ecto.NoResultsError)1908 │1909 13 │ defimpl Plug.Exception, for: exception do1910 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1911 │1912 └─ lib/phoenix_ecto/plug.ex:13: Plug.Exception.Ecto.NoResultsError (module)19131914 warning: function actions/1 required by protocol Plug.Exception is not implemented (in module Plug.Exception.Ecto.CastError)1915 │1916 13 │ defimpl Plug.Exception, for: exception do1917 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1918 │1919 └─ lib/phoenix_ecto/plug.ex:13: Plug.Exception.Ecto.CastError (module)19201921 warning: function actions/1 required by protocol Plug.Exception is not implemented (in module Plug.Exception.Ecto.Query.CastError)1922 │1923 13 │ defimpl Plug.Exception, for: exception do1924 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1925 │1926 └─ lib/phoenix_ecto/plug.ex:13: Plug.Exception.Ecto.Query.CastError (module)19271928 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1929 │1930 13 │ supervisor(Phoenix.Ecto.SQL.SandboxSupervisor, [])1931 │ ~1932 │1933 └─ lib/phoenix_ecto.ex:13:7: Phoenix.Ecto.start/219341935Generated phoenix_ecto app1936==> guardian_db1937Compiling 5 files (.ex)1938 warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead1939 │1940 111 │ config = Application.get_env(:guardian, Guardian.DB, [])1941 │ ~1942 │1943 └─ lib/guardian/db.ex:111:24: Guardian.DB (module)19441945 warning: Module.eval_quoted/2 is deprecated. Use Code.eval_quoted/3 instead1946 │1947 15 │ schema "virtual: token" do1948 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~1949 │1950 └─ lib/guardian/db/token.ex:15: Guardian.DB.Token (module)195119521953== Compilation error in file lib/guardian/db.ex ==1954** (RuntimeError) Guardian.DB configuration is required1955 lib/guardian/db.ex:114: (module)1956could not compile dependency :guardian_db, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile guardian_db --force", update it with "mix deps.update guardian_db" or clean it with "mix deps.clean guardian_db"