memorex

Build log

nerves_system_bbb

memorex 0.2.4 · fail · run memorex-0.2.4-1790999673734
2239 of 2239 lines
1Resolving Hex dependencies...2Resolution completed in 0.356s3Unchanged:4  castore 1.0.215  circular_buffer 1.1.06  combine 0.10.07  cowboy 2.19.08  cowboy_telemetry 0.4.09  cowlib 2.20.0 VULNERABLE!10    EEF-CVE-2026-43966 (MEDIUM)11    aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c12    HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/213    https://osv.dev/vulnerability/EEF-CVE-2026-439661415    EEF-CVE-2026-43969 (LOW)16    aka: CVE-2026-43969, GHSA-g2wm-735q-3f5617    Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/118    https://osv.dev/vulnerability/EEF-CVE-2026-4396919  dart_sass 0.7.020  db_connection 2.10.221  decimal 3.1.122  ecto 3.14.223  ecto_sql 3.14.024  elixir_make 0.10.025  esbuild 0.10.026  expo 1.1.127  gettext 0.26.228  interactive_cmd 0.1.429  jason 1.4.530  memorex 0.2.431  mime 2.0.732  nerves 2.0.0-pre.233  nerves_discovery 0.1.534  nerves_logging 0.2.435  nerves_runtime 0.13.1336  nerves_system_bbb 2.30.237  nerves_system_br 1.34.438  nerves_system_mangopi_mq_pro 0.17.239  nerves_system_qemu_aarch64 0.4.240  nerves_system_rpi0 2.1.241  nerves_system_rpi4 2.1.242  nerves_system_rpi5 2.1.243  nerves_system_trellis 0.5.044  nerves_system_x86_64 1.34.245  nerves_toolchain_aarch64_nerves_linux_gnu 15.3.146  nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.147  nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.148  nerves_toolchain_riscv64_nerves_linux_gnu 15.3.149  nerves_toolchain_x86_64_nerves_linux_musl 15.3.150  nerves_uevent 0.1.751  phoenix 1.7.2452  phoenix_ecto 4.7.053  phoenix_html 3.3.454  phoenix_live_dashboard 0.8.755  phoenix_live_view 0.20.17 VULNERABLE!56    EEF-CVE-2026-64941 (LOW)57    aka: CVE-2026-64941, GHSA-36m4-rm57-3prf58    Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR59    https://osv.dev/vulnerability/EEF-CVE-2026-6494160  phoenix_pubsub 2.3.061  phoenix_template 1.1.062  plug 1.20.363  plug_cowboy 2.9.064  plug_crypto 2.2.065  postgrex 0.22.466  property_table 0.3.467  ranch 2.3.068  ring_logger 0.11.769  tablet 0.3.370  telemetry 1.4.271  telemetry_metrics 0.6.272  telemetry_poller 1.3.073  timex 3.7.1374  toml 0.7.075  toolshed 0.5.076  tzdata 1.2.277  uboot_env 1.0.278  uuid 1.1.879  websock 0.5.380  websock_adapter 0.5.981* Getting memorex (Hex package)82* Getting nerves (Hex package)83* Getting ring_logger (Hex package)84* Getting toolshed (Hex package)85* Getting nerves_runtime (Hex package)86* Getting nerves_system_bbb (Hex package)87* Getting nerves_system_mangopi_mq_pro (Hex package)88* Getting nerves_system_qemu_aarch64 (Hex package)89* Getting nerves_system_rpi0 (Hex package)90* Getting nerves_system_rpi4 (Hex package)91* Getting nerves_system_rpi5 (Hex package)92* Getting nerves_system_trellis (Hex package)93* Getting nerves_system_x86_64 (Hex package)94* Getting nerves_system_br (Hex package)95* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)96* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)97* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)98* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)99* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)100* Getting nerves_logging (Hex package)101* Getting nerves_uevent (Hex package)102* Getting uboot_env (Hex package)103* Getting elixir_make (Hex package)104* Getting property_table (Hex package)105* Getting circular_buffer (Hex package)106* Getting interactive_cmd (Hex package)107* Getting nerves_discovery (Hex package)108* Getting tablet (Hex package)109* Getting dart_sass (Hex package)110* Getting ecto_sql (Hex package)111* Getting esbuild (Hex package)112* Getting gettext (Hex package)113* Getting jason (Hex package)114* Getting phoenix (Hex package)115* Getting phoenix_ecto (Hex package)116* Getting phoenix_html (Hex package)117* Getting phoenix_live_dashboard (Hex package)118* Getting phoenix_live_view (Hex package)119* Getting plug_cowboy (Hex package)120* Getting postgrex (Hex package)121* Getting telemetry_metrics (Hex package)122* Getting telemetry_poller (Hex package)123* Getting timex (Hex package)124* Getting toml (Hex package)125* Getting uuid (Hex package)126* Getting combine (Hex package)127* Getting tzdata (Hex package)128* Getting telemetry (Hex package)129* Getting db_connection (Hex package)130* Getting decimal (Hex package)131* Getting cowboy (Hex package)132* Getting cowboy_telemetry (Hex package)133* Getting plug (Hex package)134* Getting mime (Hex package)135* Getting plug_crypto (Hex package)136* Getting cowlib (Hex package)137* Getting ranch (Hex package)138* Getting phoenix_template (Hex package)139* Getting ecto (Hex package)140* Getting castore (Hex package)141* Getting phoenix_pubsub (Hex package)142* Getting websock_adapter (Hex package)143* Getting websock (Hex package)144* Getting expo (Hex package)145Found packages with security advisories, see above for details146You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more147==> nerves_system_br148Generated nerves_system_br app149==> combine150Compiling 6 files (.ex)151    warning: the variable "n" (context Combine.Parsers.Binary) is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator152    │153 26 │       <<bits::bitstring-size(n), rest::bitstring>> ->154    │                              ~155    │156    └─ lib/combine/parsers/binary.ex:26:30: Combine.Parsers.Binary.bits_impl/2157158    warning: the variable "bits_size" (context Combine.Parsers.Binary) is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator159    │160 48 │       <<bits::bitstring-size(bits_size), rest::bitstring>> ->161    │                              ~162    │163    └─ lib/combine/parsers/binary.ex:48:30: Combine.Parsers.Binary.bytes_impl/2164165    warning: the variable "size" (context Combine.Parsers.Binary) is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator166    │167 70 │           <<int::big-unsigned-size(size), rest::bitstring>> ->168    │                                    ~169    │170    └─ lib/combine/parsers/binary.ex:70:36: Combine.Parsers.Binary.uint_impl/3171172    warning: the variable "size" (context Combine.Parsers.Binary) is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator173    │174 77 │           <<int::little-unsigned-size(size), rest::bitstring>> ->175    │                                       ~176    │177    └─ lib/combine/parsers/binary.ex:77:39: Combine.Parsers.Binary.uint_impl/3178179     warning: the variable "size" (context Combine.Parsers.Binary) is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator180     │181 101 │           <<int::big-signed-size(size), rest::bitstring>> ->182     │                                  ~183     │184     └─ lib/combine/parsers/binary.ex:101:34: Combine.Parsers.Binary.int_impl/3185186     warning: the variable "size" (context Combine.Parsers.Binary) is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator187     │188 108 │           <<int::little-signed-size(size), rest::bitstring>> ->189     │                                     ~190     │191     └─ lib/combine/parsers/binary.ex:108:37: Combine.Parsers.Binary.int_impl/3192193     warning: the variable "size" (context Combine.Parsers.Binary) is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator194     │195 128 │       <<num::float-size(size), rest::bitstring>> ->196     │                         ~197     │198     └─ lib/combine/parsers/binary.ex:128:25: Combine.Parsers.Binary.float_impl/2199200     warning: the variable "byte_size" (context Combine.Parsers.Text) is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator201     │202 432 │         <<^expected::binary-size(byte_size), rest::binary>> ->203     │                                  ~204     │205     └─ lib/combine/parsers/text.ex:432:34: Combine.Parsers.Text.string_impl/2206207     warning: the following clause is redundant:208209         defp word_of_impl(%Combine.ParserState{...} = state, _pattern)210211     it has type:212213         dynamic(%Combine.ParserState{status: :ok}), dynamic()214215     previous clauses have already matched on the following types:216217         %Combine.ParserState{status: :error}, term()218         %Combine.ParserState{status: :ok}, term()219220     │221 488 │   defp word_of_impl(%ParserState{status: :ok} = state, _pattern) do222     │        ~223     │224     └─ lib/combine/parsers/text.ex:488:8: Combine.Parsers.Text.word_of_impl/2225226Generated combine app227==> mime228Compiling 1 file (.ex)229Generated mime app230==> toml231Compiling 10 files (.ex)232     warning: using single-quoted strings to represent charlists is deprecated.233     Use ~c"" if you indeed want a charlist or use "" instead.234     You may run "mix format --migrate" to change all single-quoted235     strings to use the ~c sigil and fix this warning.236     │237 264 │   defp handle_token(lexer, original, doc, type, skip, _data, lines) when type in '-_' do238     │                                                                                  ~239     │240     └─ lib/decoder.ex:264:82241242     warning: using single-quoted strings to represent charlists is deprecated.243     Use ~c"" if you indeed want a charlist or use "" instead.244     You may run "mix format --migrate" to change all single-quoted245     strings to use the ~c sigil and fix this warning.246     │247 371 │       {:ok, {type, _skip, _data, _lines}} when type in '-+' ->248     │                                                        ~249     │250     └─ lib/decoder.ex:371:56251252     warning: using single-quoted strings to represent charlists is deprecated.253     Use ~c"" if you indeed want a charlist or use "" instead.254     You may run "mix format --migrate" to change all single-quoted255     strings to use the ~c sigil and fix this warning.256     │257 419 │           {:ok, {:alpha, _, <<c::utf8>>, _}} when c in 'eE' ->258     │                                                        ~259     │260     └─ lib/decoder.ex:419:56261262     warning: using single-quoted strings to represent charlists is deprecated.263     Use ~c"" if you indeed want a charlist or use "" instead.264     You may run "mix format --migrate" to change all single-quoted265     strings to use the ~c sigil and fix this warning.266     │267 474 │       {:ok, {:alpha, _, <<c::utf8>>, _}} when c in 'eE' ->268     │                                                    ~269     │270     └─ lib/decoder.ex:474:52271272     warning: using single-quoted strings to represent charlists is deprecated.273     Use ~c"" if you indeed want a charlist or use "" instead.274     You may run "mix format --migrate" to change all single-quoted275     strings to use the ~c sigil and fix this warning.276     │277 514 │       {:ok, {sign, _, _, _}} when sign in '-+' and last == ?e ->278     │                                           ~279     │280     └─ lib/decoder.ex:514:43281282     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 518 │       {:ok, {:alpha, _, <<c::utf8>>, _}} when c in 'eE' and signal == ?. ->288     │                                                    ~289     │290     └─ lib/decoder.ex:518:52291292     warning: using single-quoted strings to represent charlists is deprecated.293     Use ~c"" if you indeed want a charlist or use "" instead.294     You may run "mix format --migrate" to change all single-quoted295     strings to use the ~c sigil and fix this warning.296     │297 522 │       {:ok, {?_, skip, _, lines}} when last not in '_e.' ->298     │                                                    ~299     │300     └─ lib/decoder.ex:522:52301302     warning: using single-quoted strings to represent charlists is deprecated.303     Use ~c"" if you indeed want a charlist or use "" instead.304     You may run "mix format --migrate" to change all single-quoted305     strings to use the ~c sigil and fix this warning.306     │307 538 │       {:ok, {type, skip, data, lines}} when last in 'e.' ->308     │                                                     ~309     │310     └─ lib/decoder.ex:538:53311312     warning: using single-quoted strings to represent charlists is deprecated.313     Use ~c"" if you indeed want a charlist or use "" instead.314     You may run "mix format --migrate" to change all single-quoted315     strings to use the ~c sigil and fix this warning.316     │317 542 │       {:ok, {_type, skip, _data, lines} = token} when last not in '_e.' ->318     │                                                                   ~319     │320     └─ lib/decoder.ex:542:67321322     warning: using single-quoted strings to represent charlists is deprecated.323     Use ~c"" if you indeed want a charlist or use "" instead.324     You may run "mix format --migrate" to change all single-quoted325     strings to use the ~c sigil and fix this warning.326     │327 682 │         {:ok, {sign, _, _, _}} when sign in '-+' ->328     │                                             ~329     │330     └─ lib/decoder.ex:682:45331332     warning: using single-quoted strings to represent charlists is deprecated.333     Use ~c"" if you indeed want a charlist or use "" instead.334     You may run "mix format --migrate" to change all single-quoted335     strings to use the ~c sigil and fix this warning.336     │337 796 │       {:ok, {sign, _, _, _}} when sign in '-+' ->338     │                                           ~339     │340     └─ lib/decoder.ex:796:43341342     warning: using single-quoted strings to represent charlists is deprecated.343     Use ~c"" if you indeed want a charlist or use "" instead.344     You may run "mix format --migrate" to change all single-quoted345     strings to use the ~c sigil and fix this warning.346     │347 916 │         {:ok, {type, skip, _, lines}} when type in '-_' ->348     │                                                    ~349     │350     └─ lib/decoder.ex:916:52351352     warning: using single-quoted strings to represent charlists is deprecated.353     Use ~c"" if you indeed want a charlist or use "" instead.354     You may run "mix format --migrate" to change all single-quoted355     strings to use the ~c sigil and fix this warning.356     │357 954 │               {:ok, {type, _, _, _}} when type in '-_' ->358     │                                                   ~359     │360     └─ lib/decoder.ex:954:51361362     warning: using single-quoted strings to represent charlists is deprecated.363     Use ~c"" if you indeed want a charlist or use "" instead.364     You may run "mix format --migrate" to change all single-quoted365     strings to use the ~c sigil and fix this warning.366     │367 969 │       {:ok, {type, _, _, _}} when type in '-_' ->368     │                                           ~369     │370     └─ lib/decoder.ex:969:43371372     warning: using single-quoted strings to represent charlists is deprecated.373     Use ~c"" if you indeed want a charlist or use "" instead.374     You may run "mix format --migrate" to change all single-quoted375     strings to use the ~c sigil and fix this warning.376     │377 983 │           {:ok, {type, _, _, _}} when type in '-_' ->378     │                                               ~379     │380     └─ lib/decoder.ex:983:47381382     warning: the following clause will never match:383384         {:datetime, {:error, :invalid_date}} ->385386     it is expected to match on type:387388         dynamic(389           {:date,390            ({:error, :invalid_date} and not {:ok, {integer(), integer(), integer()}}) or391              {:error, :incompatible_calendars or :invalid_format} or {:ok, %Date{}}} and392             not {:date, {:ok, %Date{}}}393         )394395     type warning found at:396     │397 722 │       {:datetime, {:error, :invalid_date}} ->398     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~399     │400     └─ lib/decoder.ex:722: Toml.Decoder.datetime/3401402     warning: the following clause will never match:403404         {:datetime, {:error, reason}} ->405406     it is expected to match on type:407408         dynamic(409           {:date,410            ({:error, :invalid_date} and not {:ok, {integer(), integer(), integer()}}) or411              {:error, :incompatible_calendars or :invalid_format} or {:ok, %Date{}}} and412             not {:date, {:ok, %Date{}}}413         )414415     type warning found at:416     │417 725 │       {:datetime, {:error, reason}} ->418     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~419     │420     └─ lib/decoder.ex:725: Toml.Decoder.datetime/3421422     warning: the following clause will never match:423424         {:error, _, _, _} = err ->425426     it is expected to match on type:427428         dynamic(429           {:date,430            ({:error, :invalid_date} and not {:ok, {integer(), integer(), integer()}}) or431              {:error, :incompatible_calendars or :invalid_format} or {:ok, %Date{}}} and432             not {:date, {:ok, %Date{}}}433         )434435     type warning found at:436     │437 728 │       {:error, _, _, _} = err ->438     │                         ~439     │440     └─ lib/decoder.ex:728:25: Toml.Decoder.datetime/3441442     warning: the following clause will never match:443444         {:ok, {type, skip, data, lines}} ->445446     it is expected to match on type:447448         dynamic(449           {:date,450            ({:error, :invalid_date} and not {:ok, {integer(), integer(), integer()}}) or451              {:error, :incompatible_calendars or :invalid_format} or {:ok, %Date{}}} and452             not {:date, {:ok, %Date{}}}453         )454455     type warning found at:456     │457 731 │       {:ok, {type, skip, data, lines}} ->458     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~459     │460     └─ lib/decoder.ex:731: Toml.Decoder.datetime/3461462Generated toml app463==> circular_buffer464Compiling 1 file (.ex)465Generated circular_buffer app466==> plug_crypto467Compiling 5 files (.ex)468Generated plug_crypto app469==> nerves_compatibility_test470===> Analyzing applications...471===> Compiling ranch472==> tzdata473Compiling 18 files (.ex)474Generated tzdata app475==> tablet476Compiling 2 files (.ex)477Generated tablet app478==> elixir_make479Compiling 8 files (.ex)480Generated elixir_make app481==> nerves_logging482 CC kmsg_tailer.o483 LD kmsg_tailer484Compiling 5 files (.ex)485Generated nerves_logging app486==> castore487Compiling 1 file (.ex)488Generated castore app489==> dart_sass490Compiling 3 files (.ex)491     warning: using single-quoted strings to represent charlists is deprecated.492     Use ~c"" if you indeed want a charlist or use "" instead.493     You may run "mix format --migrate" to change all single-quoted494     strings to use the ~c sigil and fix this warning.495     │496 348 │         {'location', download} = List.keyfind(headers, 'location', 0)497     │          ~498     │499     └─ lib/dart_sass.ex:348:10500501     warning: using single-quoted strings to represent charlists is deprecated.502     Use ~c"" if you indeed want a charlist or use "" instead.503     You may run "mix format --migrate" to change all single-quoted504     strings to use the ~c sigil and fix this warning.505     │506 348 │         {'location', download} = List.keyfind(headers, 'location', 0)507     │                                                        ~508     │509     └─ lib/dart_sass.ex:348:56510511Generated dart_sass app512==> nerves_compatibility_test513===> Analyzing applications...514===> Compiling cowlib515==> nerves_discovery516Compiling 5 files (.ex)517Generated nerves_discovery app518==> ring_logger519Compiling 7 files (.ex)520Generated ring_logger app521==> decimal522Compiling 4 files (.ex)523Generated decimal app524==> jason525Compiling 10 files (.ex)526Generated jason app527==> esbuild528Compiling 4 files (.ex)529Generated esbuild app530==> interactive_cmd531Compiling 1 file (.ex)532Generated interactive_cmd app533==> nerves534Compiling 65 files (.ex)535    warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)536    │537  6 │ defmodule Mix.Tasks.Nerves.Init do538    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~539    │540    └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)541542    warning: redefining module Nerves (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.beam)543    │544  6 │ defmodule Nerves do545    │ ~~~~~~~~~~~~~~~~~~~546    │547    └─ lib/nerves.ex:6: Nerves (module)548549    warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)550    │551  5 │ defmodule Nerves.ArtifactResolver do552    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~553    │554    └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)555556    warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)557    │558  6 │ defmodule Nerves.BuildAction.AppModes do559    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~560    │561    └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)562563    warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)564    │565  5 │ defmodule Nerves.BuildAction.CheckExecutables do566    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~567    │568    └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)569570    warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)571    │572  8 │ defmodule Nerves.BuildAction.Erlinit do573    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~574    │575    └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)576577    warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)578    │579  5 │ defmodule Nerves.BuildAction.Firmware do580    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~581    │582    └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)583584    warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)585    │586  7 │ defmodule Nerves.BuildAction.IExStartupCheck do587    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~588    │589    └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)590591    warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)592    │593  5 │ defmodule Nerves.BuildAction.NervesV1System do594    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~595    │596    └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)597598    warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)599    │600  5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do601    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~602    │603    └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)604605    warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)606    │607  5 │ defmodule Nerves.BuildAction.Rootfs do608    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~609    │610    └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)611612    warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)613    │614  6 │ defmodule Nerves.BuildAction.SortApps do615    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~616    │617    └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)618619    warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)620    │621  5 │ defmodule Nerves.BuildAction.StripAll do622    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~623    │624    └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)625626    warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)627    │628  5 │ defmodule Nerves.BuildAction.Trimmer do629    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~630    │631    └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)632633    warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)634    │635  5 │ defmodule Nerves.BuildPlan do636    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~637    │638    └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)639640    warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)641    │642  5 │ defmodule Nerves.BuildPlan.Checks do643    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~644    │645    └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)646647    warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.Container.beam)648    │649  6 │ defmodule Nerves.Container do650    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~651    │652    └─ lib/nerves/container.ex:6: Nerves.Container (module)653654    warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)655    │656  5 │ defmodule Nerves.Fingerprint do657    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~658    │659    └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)660661    warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)662    │663  5 │ defmodule Nerves.MixPackage do664    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~665    │666    └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)667668    warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.Paths.beam)669    │670  5 │ defmodule Nerves.Paths do671    │ ~~~~~~~~~~~~~~~~~~~~~~~~~672    │673    └─ lib/nerves/paths.ex:5: Nerves.Paths (module)674675    warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/bbb/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)676    │677  5 │ defmodule Nerves.TargetTuple do678    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~679    │680    └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)681682Generated nerves app683==> nerves_toolchain_armv7_nerves_linux_gnueabihf684Compiling 1 file (.ex)685Generated nerves_toolchain_armv7_nerves_linux_gnueabihf app686==> nerves_compatibility_test687===> Analyzing applications...688===> Compiling telemetry689==> telemetry_metrics690Compiling 7 files (.ex)691     warning: unused require Logger692     │693 391 │   require Logger694     │   ~695     │696     └─ lib/telemetry_metrics.ex:391:3697698Generated telemetry_metrics app699==> nerves_compatibility_test700===> Analyzing applications...701===> Compiling telemetry_poller702==> db_connection703Compiling 18 files (.ex)704Generated db_connection app705==> ecto706Compiling 56 files (.ex)707Generated ecto app708==> nerves_compatibility_test709===> Analyzing applications...710===> Compiling cowboy711==> expo712Compiling 2 files (.erl)713Compiling 22 files (.ex)714Generated expo app715==> gettext716Compiling 18 files (.ex)717     warning: unused require Gettext.Macros718     │719 594 │   require Gettext.Macros720     │   ~721     │722     └─ lib/gettext.ex:594:3723724     warning: the following clause is redundant:725726         defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)727728     it has type:729730         dynamic(%Expo.Message.Plural{})731732     previous clauses have already matched on the following types:733734         %Expo.Message.Singular{}735         %Expo.Message.Plural{}736737     │738 391 │   defp ensure_empty_msgstr!(%Message.Plural{} = message) do739     │        ~740     │741     └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1742743     warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead744     │745 426 │               Kernel.ParallelCompiler.async(fn ->746     │                                       ~747     │748     └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3749750Generated gettext app751==> phoenix_pubsub752Compiling 12 files (.ex)753Generated phoenix_pubsub app754==> plug755Compiling 1 file (.erl)756Compiling 42 files (.ex)757Generated plug app758==> phoenix_html759Compiling 9 files (.ex)760    warning: comparison between distinct types found:761762        id == nil763764    given types:765766        dynamic(not false and not nil and not binary()) == nil767768    where "id" was given the types:769770        # type: dynamic(not false and not nil)771        # from: lib/phoenix_html/form_data.ex:92:8772        id = Keyword.get(opts, :id) || name773774        # type: dynamic(not false and not nil and not binary())775        # from: lib/phoenix_html/form_data.ex:94:12776        is_binary(id)777778    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 false779780    type warning found at:781    │782 94 │     unless is_binary(id) or is_nil(id) do783    │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~784    │785    └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2786787    warning: the 1st pattern in clause will never match:788789        60790791    because it is expected to receive type:792793        dynamic(empty_list() or non_empty_list(term(), term()))794795    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())796797    type warning found at:798    │799 56 │   def to_iodata(?<), do: "&lt;"800    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~801    │802    └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1803804    warning: the 1st pattern in clause will never match:805806        62807808    because it is expected to receive type:809810        dynamic(empty_list() or non_empty_list(term(), term()))811812    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())813814    type warning found at:815    │816 57 │   def to_iodata(?>), do: "&gt;"817    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~818    │819    └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1820821    warning: the 1st pattern in clause will never match:822823        38824825    because it is expected to receive type:826827        dynamic(empty_list() or non_empty_list(term(), term()))828829    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())830831    type warning found at:832    │833 58 │   def to_iodata(?&), do: "&amp;"834    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~835    │836    └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1837838    warning: the 1st pattern in clause will never match:839840        34841842    because it is expected to receive type:843844        dynamic(empty_list() or non_empty_list(term(), term()))845846    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())847848    type warning found at:849    │850 59 │   def to_iodata(?"), do: "&quot;"851    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~852    │853    └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1854855    warning: the 1st pattern in clause will never match:856857        39858859    because it is expected to receive type:860861        dynamic(empty_list() or non_empty_list(term(), term()))862863    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())864865    type warning found at:866    │867 60 │   def to_iodata(?'), do: "&#39;"868    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~869    │870    └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1871872    warning: the 1st pattern in clause will never match:873874        {:safe, data}875876    because it is expected to receive type:877878        dynamic(empty_list() or non_empty_list(term(), term()))879880    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())881882    type warning found at:883    │884 76 │   def to_iodata({:safe, data}) do885    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~886    │887    └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1888889    warning: the following clause is redundant:890891        def to_iodata(other)892893    it has type:894895        dynamic(empty_list() or non_empty_list(term(), term()))896897    previous clauses have already matched on the following types:898899        non_empty_list(term(), term())900        empty_list()901902    │903 80 │   def to_iodata(other) do904    │       ~905    │906    └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1907908    warning: the 1st pattern in clause will never match:909910        h911912    because it is expected to receive type:913914        dynamic(empty_list() or non_empty_list(term(), term()))915916    where "h" was given the type:917918        # type: integer()919        # from: lib/phoenix_html/safe.ex:62:25920        is_integer(h)921922    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())923924    type warning found at:925    │926 62 │   def to_iodata(h) when is_integer(h) and h <= 255 do927    │                 ~928    │929    └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1930931    warning: the 1st pattern in clause will never match:932933        h934935    because it is expected to receive type:936937        dynamic(empty_list() or non_empty_list(term(), term()))938939    where "h" was given the type:940941        # type: integer()942        # from: lib/phoenix_html/safe.ex:66:25943        is_integer(h)944945    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())946947    type warning found at:948    │949 66 │   def to_iodata(h) when is_integer(h) do950    │                 ~951    │952    └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1953954    warning: the 1st pattern in clause will never match:955956        h957958    because it is expected to receive type:959960        dynamic(empty_list() or non_empty_list(term(), term()))961962    where "h" was given the type:963964        # type: binary()965        # from: lib/phoenix_html/safe.ex:72:25966        is_binary(h)967968    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())969970    type warning found at:971    │972 72 │   def to_iodata(h) when is_binary(h) do973    │                 ~974    │975    └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1976977Generated phoenix_html app978==> phoenix_template979Compiling 4 files (.ex)980Generated phoenix_template 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==> postgrex990Compiling 70 files (.ex)991Generated postgrex app992==> ecto_sql993Compiling 25 files (.ex)994Generated ecto_sql app995warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"996  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2997  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1998  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5999  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21000  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41001  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/210021003==> phoenix_ecto1004Compiling 7 files (.ex)1005Generated phoenix_ecto app1006==> uboot_env1007Compiling 5 files (.ex)1008Generated uboot_env app1009==> timex1010Compiling 62 files (.ex)1011    warning: default arguments in protocol definitions is deprecated1012    │1013 84 │   def compare(a, b, granularity \\ :microsecond)1014    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1015    │1016    └─ lib/comparable/comparable.ex:84: Timex.Comparable (module)10171018     warning: default arguments in protocol definitions is deprecated1019     │1020 139 │   def diff(a, b, granularity \\ :microsecond)1021     │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1022     │1023     └─ lib/comparable/comparable.ex:139: Timex.Comparable (module)10241025    warning: protocols can only define functions without implementation via def/1, found: compare/2, diff/21026    │1027  1 │ defprotocol Timex.Comparable do1028    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1029    │1030    └─ lib/comparable/comparable.ex:1: Timex.Comparable (module)10311032     warning: the variable "len" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1033     │1034 317 │     <<abbrevs::bytes(len), rest::binary>> = data1035     │                      ~1036     │1037     └─ lib/parse/zoneinfo/parser.ex:317:22: Timex.Parse.ZoneInfo.Parser.parse_abbreviations/410381039    warning: default arguments in protocol definitions is deprecated1040    │1041 48 │   def to_datetime(datetime, timezone \\ :utc)1042    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1043    │1044    └─ lib/protocol.ex:48: Timex.Protocol (module)10451046    warning: protocols can only define functions without implementation via def/1, found: to_datetime/11047    │1048  1 │ defprotocol Timex.Protocol do1049    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1050    │1051    └─ lib/protocol.ex:1: Timex.Protocol (module)10521053    warning: unused require Timex.Macros1054    │1055  5 │   require Timex.Macros1056    │   ~1057    │1058    └─ lib/comparable/tuple.ex:5:310591060    warning: unused require Timex.Macros1061    │1062  5 │   require Timex.Macros1063    │   ~1064    │1065    └─ lib/comparable/naivedatetime.ex:5:310661067    warning: unused require Bitwise1068    │1069  5 │   require Bitwise1070    │   ~1071    │1072    └─ lib/calendar/julian.ex:5:310731074Compiling lib/l10n/gettext.ex (it's taking more than 10s)1075     warning: the following clause will never match:10761077         {ty, a, b} when ty === :gap or ty === :ambiguous ->10781079     it is expected to match on type:10801081         dynamic({:error, term()} and not {:ok, %{..., time_zone: term()}})10821083     where "ty" was given the type:10841085         # type: :ambiguous or :gap1086         # from: lib/timezone/timezone.ex:5481087         ty in [:gap, :ambiguous]10881089     type warning found at:1090     │1091 548 │       {ty, a, b} when ty in [:gap, :ambiguous] ->1092     │       ~1093     │1094     └─ lib/timezone/timezone.ex:548:7: Timex.Timezone.convert/210951096     warning: a struct for Timex.PosixTimezone is expected on struct update:10971098         %Timex.PosixTimezone{rule | std_abbr: abbr}10991100     but got type:11011102         dynamic()11031104     where "rule" was given the type:11051106         # type: dynamic()1107         # from: lib/parse/posix/parser.ex:119:331108         rule11091110     when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"11111112     type warning found at:1113     │1114 121 │       parse_tz(:std_offset, rest, %TZ{rule | std_abbr: abbr})1115     │                                   ~1116     │1117     └─ lib/parse/posix/parser.ex:121:35: Timex.Parse.Timezones.Posix.parse_tz/311181119     warning: a struct for Timex.PosixTimezone is expected on struct update:11201121         %Timex.PosixTimezone{rule | std_offset: offset}11221123     but got type:11241125         dynamic()11261127     where "rule" was given the type:11281129         # type: dynamic()1130         # from: lib/parse/posix/parser.ex:125:351131         rule11321133     when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"11341135     type warning found at:1136     │1137 127 │       parse_tz(:dst_abbr, rest, %TZ{rule | std_offset: offset})1138     │                                 ~1139     │1140     └─ lib/parse/posix/parser.ex:127:33: Timex.Parse.Timezones.Posix.parse_tz/311411142     warning: a struct for Timex.PosixTimezone is expected on struct update:11431144         %Timex.PosixTimezone{rule | dst_abbr: abbr}11451146     but got type:11471148         dynamic()11491150     where "rule" was given the type:11511152         # type: dynamic()1153         # from: lib/parse/posix/parser.ex:141:331154         rule11551156     when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"11571158     type warning found at:1159     │1160 143 │          rule = %TZ{rule | dst_abbr: abbr} do1161     │                 ~1162     │1163     └─ lib/parse/posix/parser.ex:143:17: Timex.Parse.Timezones.Posix.parse_tz/311641165     warning: a struct for Timex.PosixTimezone is expected on struct update:11661167         %Timex.PosixTimezone{rule | dst_offset: offset}11681169     but got type:11701171         dynamic()11721173     where "rule" was given the type:11741175         # type: dynamic()1176         # from: lib/parse/posix/parser.ex:160:351177         rule11781179     when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"11801181     type warning found at:1182     │1183 162 │          rule = %TZ{rule | dst_offset: offset} do1184     │                 ~1185     │1186     └─ lib/parse/posix/parser.ex:162:17: Timex.Parse.Timezones.Posix.parse_tz/311871188     warning: a struct for Timex.PosixTimezone is expected on struct update:11891190         %Timex.PosixTimezone{rule | dst_start: dst_start, dst_end: dst_end}11911192     but got type:11931194         dynamic()11951196     where "rule" was given the type:11971198         # type: dynamic()1199         # from: lib/parse/posix/parser.ex:185:361200         rule12011202     when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"12031204     type warning found at:1205     │1206 190 │           {:ok, %TZ{rule | dst_start: dst_start, dst_end: dst_end}, rest}1207     │                 ~1208     │1209     └─ lib/parse/posix/parser.ex:190:17: Timex.Parse.Timezones.Posix.parse_tz/312101211     warning: the following clause will never match:12121213         :error ->12141215     it is expected to match on type:12161217         dynamic({:error, :invalid_number, binary()})12181219     type warning found at:1220     │1221 264 │       :error ->1222     │       ~~~~~~~~~1223     │1224     └─ lib/parse/posix/parser.ex:264: Timex.Parse.Timezones.Posix.parse_month_week_day/312251226    warning: the following pattern will never match:12271228        {y, m, d} <- to_erl_datetime(date)12291230    because the right-hand side has type:12311232        dynamic(1233          {:error, :invalid_date} or1234            {:ok, {{integer(), integer(), integer()}, {integer(), integer(), integer()}}}1235        )12361237    where "date" was given the type:12381239        # type: dynamic({...})1240        # from: lib/datetime/erlang.ex:7:171241        date12421243    type warning found at:1244    │1245  8 │     with {y, m, d} <- to_erl_datetime(date),1246    │          ~1247    │1248    └─ lib/datetime/erlang.ex:8:10: Timex.Protocol.Tuple.to_julian/112491250     warning: the following clause is redundant:12511252         def shift(_, _)12531254     it has type:12551256         dynamic(%Date{}), dynamic()12571258     previous clauses have already matched on the following types:12591260         %Date{}, term()12611262     │1263 227 │   def shift(_, _), do: {:error, :badarg}1264     │       ~1265     │1266     └─ lib/date/date.ex:227:7: Timex.Protocol.Date.shift/212671268     warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:12691270         %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions, leaps: leaps}12711272     but got type:12731274         dynamic(%{..., leaps: term(), transitions: term()})12751276     where "zone" was given the types:12771278         # type: dynamic(%{..., rule: term()} or %{..., transitions: term()})1279         # from: lib/parse/zoneinfo/parser.ex:156:281280         {:ok, zone, rest} <- parse_content(1, data, %Timex.Parse.ZoneInfo.Parser.Zone{..., version: 1})12811282         # type: dynamic(%{..., transitions: term()})1283         # from: lib/parse/zoneinfo/parser.ex:157:261284         Enum.sort_by(zone.transitions, fn tx -> tx.starts_at end)12851286         # type: dynamic(%{..., leaps: term(), transitions: term()})1287         # from: lib/parse/zoneinfo/parser.ex:158:201288         Enum.sort_by(zone.leaps, fn leap -> leap.epoch end)12891290     when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"12911292     type warning found at:1293     │1294 159 │       {:ok, %Zone{zone | transitions: transitions, leaps: leaps}, rest}1295     │             ~1296     │1297     └─ lib/parse/zoneinfo/parser.ex:159:13: Timex.Parse.ZoneInfo.Parser.parse_versioned_content/212981299     warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13001301         %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: times}13021303     but got type:13041305         dynamic()13061307     where "zone" was given the type:13081309         # type: dynamic()1310         # from: lib/parse/zoneinfo/parser.ex:270:921311         zone13121313     when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13141315     type warning found at:1316     │1317 272 │     parse_transition_info(version, rest, header, %Zone{zone | transitions: times})1318     │                                                  ~1319     │1320     └─ lib/parse/zoneinfo/parser.ex:272:50: Timex.Parse.ZoneInfo.Parser.parse_transition_times/413211322     warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13231324         %Timex.Parse.ZoneInfo.Parser.Zone{zone | leaps: leaps}13251326     but got type:13271328         dynamic()13291330     where "zone" was given the type:13311332         # type: dynamic()1333         # from: lib/parse/zoneinfo/parser.ex:330:791334         zone13351336     when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13371338     type warning found at:1339     │1340 344 │     parse_flags(version, rest, header, %Zone{zone | leaps: leaps})1341     │                                        ~1342     │1343     └─ lib/parse/zoneinfo/parser.ex:344:40: Timex.Parse.ZoneInfo.Parser.parse_leap_seconds/413441345     warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13461347         %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions}13481349     but got type:13501351         dynamic(%{..., transitions: term()})13521353     where "zone" was given the type:13541355         # type: dynamic(%{..., transitions: term()})1356         # from: lib/parse/zoneinfo/parser.ex:354:151357         Enum.with_index(zone.transitions)13581359     when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13601361     type warning found at:1362     │1363 362 │       parse_posixtz_string(version, rest, %Zone{zone | transitions: transitions})1364     │                                           ~1365     │1366     └─ lib/parse/zoneinfo/parser.ex:362:43: Timex.Parse.ZoneInfo.Parser.parse_flags/413671368     warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13691370         %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions}13711372     but got type:13731374         dynamic(%{..., transitions: term()})13751376     where "zone" was given the type:13771378         # type: dynamic(%{..., transitions: term()})1379         # from: lib/parse/zoneinfo/parser.ex:354:151380         Enum.with_index(zone.transitions)13811382     when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13831384     type warning found at:1385     │1386 364 │       {:ok, %Zone{zone | transitions: transitions}, rest}1387     │             ~1388     │1389     └─ lib/parse/zoneinfo/parser.ex:364:13: Timex.Parse.ZoneInfo.Parser.parse_flags/413901391     warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13921393         %Timex.Parse.ZoneInfo.Parser.Zone{zone | rule: rule}13941395     but got type:13961397         dynamic()13981399     where "zone" was given the type:14001401         # type: dynamic()1402         # from: lib/parse/zoneinfo/parser.ex:369:621403         zone14041405     when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"14061407     type warning found at:1408     │1409 372 │       {:ok, %Zone{zone | rule: rule}, format_rest <> rest}1410     │             ~1411     │1412     └─ lib/parse/zoneinfo/parser.ex:372:13: Timex.Parse.ZoneInfo.Parser.parse_posixtz_string/314131414     warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14151416         %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_abbr: abbr, dst_abbr: abbr}14171418     but got type:14191420         dynamic()14211422     where "rule" was given the type:14231424         # type: dynamic()1425         # from: lib/parse/zoneinfo/parser.ex:383:331426         rule14271428     when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"14291430     type warning found at:1431     │1432 385 │       parse_tz(:std_offset, rest, %Rule{rule | std_abbr: abbr, dst_abbr: abbr})1433     │                                   ~1434     │1435     └─ lib/parse/zoneinfo/parser.ex:385:35: Timex.Parse.ZoneInfo.Parser.parse_tz/314361437     warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14381439         %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_offset: offset, dst_offset: offset}14401441     but got type:14421443         dynamic()14441445     where "rule" was given the type:14461447         # type: dynamic()1448         # from: lib/parse/zoneinfo/parser.ex:389:351449         rule14501451     when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"14521453     type warning found at:1454     │1455 391 │       parse_tz(:dst_abbr, rest, %Rule{rule | std_offset: offset, dst_offset: offset})1456     │                                 ~1457     │1458     └─ lib/parse/zoneinfo/parser.ex:391:33: Timex.Parse.ZoneInfo.Parser.parse_tz/314591460     warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14611462         %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_abbr: abbr}14631464     but got type:14651466         dynamic()14671468     where "rule" was given the type:14691470         # type: dynamic()1471         # from: lib/parse/zoneinfo/parser.ex:405:331472         rule14731474     when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"14751476     type warning found at:1477     │1478 407 │          rule = %Rule{rule | dst_abbr: abbr} do1479     │                 ~1480     │1481     └─ lib/parse/zoneinfo/parser.ex:407:17: Timex.Parse.ZoneInfo.Parser.parse_tz/314821483     warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14841485         %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_offset: offset}14861487     but got type:14881489         dynamic()14901491     where "rule" was given the type:14921493         # type: dynamic()1494         # from: lib/parse/zoneinfo/parser.ex:424:351495         rule14961497     when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"14981499     type warning found at:1500     │1501 426 │          rule = %Rule{rule | dst_offset: offset} do1502     │                 ~1503     │1504     └─ lib/parse/zoneinfo/parser.ex:426:17: Timex.Parse.ZoneInfo.Parser.parse_tz/315051506     warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:15071508         %Timex.Parse.ZoneInfo.Parser.Rule{rule | start_time: start_time, end_time: end_time}15091510     but got type:15111512         dynamic()15131514     where "rule" was given the type:15151516         # type: dynamic()1517         # from: lib/parse/zoneinfo/parser.ex:449:361518         rule15191520     when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"15211522     type warning found at:1523     │1524 454 │           {:ok, %Rule{rule | start_time: start_time, end_time: end_time}, rest}1525     │                 ~1526     │1527     └─ lib/parse/zoneinfo/parser.ex:454:17: Timex.Parse.ZoneInfo.Parser.parse_tz/315281529     warning: the following clause will never match:15301531         :error ->15321533     it is expected to match on type:15341535         dynamic({:error, :invalid_number, binary()})15361537     type warning found at:1538     │1539 528 │       :error ->1540     │       ~~~~~~~~~1541     │1542     └─ lib/parse/zoneinfo/parser.ex:528: Timex.Parse.ZoneInfo.Parser.parse_month_week_day/315431544Generated timex app1545==> nerves_system_bbb1546Generated nerves_system_bbb app1547==> property_table1548Compiling 8 files (.ex)1549Generated property_table app1550==> nerves_uevent1551 CC uevent.o1552 LD uevent1553Compiling 5 files (.ex)1554Generated nerves_uevent app1555==> nerves_runtime1556Compiling 14 files (.ex)1557Generated nerves_runtime app1558==> toolshed1559Compiling 5 files (.ex)1560Generated toolshed app1561==> nerves_compatibility_test1562===> Analyzing applications...1563===> Compiling cowboy_telemetry1564==> plug_cowboy1565Compiling 5 files (.ex)1566Generated plug_cowboy app1567==> websock1568Compiling 1 file (.ex)1569Generated websock app1570==> websock_adapter1571Compiling 4 files (.ex)1572Generated websock_adapter app1573warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1574  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21575  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11576  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51577  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21578  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41579  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/215801581==> phoenix1582Compiling 71 files (.ex)1583    warning: unused require Logger1584    │1585  9 │   require Logger1586    │   ~1587    │1588    └─ lib/phoenix/config.ex:9:315891590     warning: unused require Logger1591     │1592 281 │   require Logger1593     │   ~1594     │1595     └─ lib/phoenix/endpoint.ex:281:315961597    warning: unused require Phoenix.Endpoint1598    │1599  6 │   require Phoenix.Endpoint1600    │   ~1601    │1602    └─ lib/phoenix/controller.ex:6:316031604    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 operator1605    │1606 46 │       <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1607    │                             ~1608    │1609    └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/216101611    warning: unused require Phoenix.Endpoint1612    │1613 17 │   require Phoenix.Endpoint1614    │   ~1615    │1616    └─ lib/phoenix/endpoint/render_errors.ex:17:316171618    warning: unused require Phoenix.Endpoint1619    │1620  6 │   require Phoenix.Endpoint1621    │   ~1622    │1623    └─ lib/phoenix/channel/server.ex:6:316241625     warning: unused require Phoenix.Endpoint1626     │1627 202 │   require Phoenix.Endpoint1628     │   ~1629     │1630     └─ lib/phoenix/socket.ex:202:316311632    warning: unused require Logger1633    │1634 70 │   require Logger1635    │   ~1636    │1637    └─ lib/phoenix/socket/pool_supervisor.ex:70:316381639     warning: unused require Logger1640     │1641 100 │   require Logger1642     │   ~1643     │1644     └─ lib/phoenix/token.ex:100:316451646     warning: comparison between distinct types found:16471648         merge_all != []16491650     given types:16511652         dynamic(non_empty_list({atom(), term()})) != empty_list()16531654     where "merge_all" was given the type:16551656         # type: dynamic(non_empty_list({atom(), term()}))1657         # from: lib/phoenix/router/route.ex:121:151658         merge_all = merge_params ++ merge_private ++ merge_assigns16591660     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 false16611662     type warning found at:1663     │1664 123 │     if merge_all != [] do1665     │                  ~1666     │1667     └─ lib/phoenix/router/route.ex:123:18: Phoenix.Router.Route.build_prepare/116681669    warning: a struct for Plug.Conn is expected on struct update:16701671        %Plug.Conn{conn | state: :sent}16721673    but got type:16741675        dynamic()16761677    where "conn" was given the type:16781679        # type: dynamic()1680        # from: lib/phoenix/endpoint/render_errors.ex:55:171681        conn16821683    when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"16841685    type warning found at:1686    │1687 60 │           %Plug.Conn{conn | state: :sent}1688    │           ~1689    │1690    └─ lib/phoenix/endpoint/render_errors.ex:60:11: Phoenix.Endpoint.RenderErrors.__catch__/516911692     warning: a struct for Plug.Conn is expected on struct update:16931694         %Plug.Conn{conn | query_params: %{}, params: %{}}16951696     but got type:16971698         dynamic(%{..., params: %Plug.Conn.Unfetched{}})16991700     where "conn" was given the types:17011702         # type: dynamic(%{..., params: term()})1703         # from: lib/phoenix/endpoint/render_errors.ex:133:171704         conn.params17051706         # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1707         # from: lib/phoenix/endpoint/render_errors.ex:133:171708         conn.params17091710     when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"17111712     type warning found at:1713     │1714 134 │         %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1715     │                                   ~1716     │1717     └─ lib/phoenix/endpoint/render_errors.ex:134:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/117181719     warning: a struct for Plug.Conn is expected on struct update:17201721         %Plug.Conn{conn | query_params: %{}, params: params}17221723     but got type:17241725         dynamic(%{..., params: not %Plug.Conn.Unfetched{}})17261727     where "conn" was given the types:17281729         # type: dynamic(%{..., params: term()})1730         # from: lib/phoenix/endpoint/render_errors.ex:133:171731         conn.params17321733         # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1734         # from: lib/phoenix/endpoint/render_errors.ex:133:171735         conn.params17361737     when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"17381739     type warning found at:1740     │1741 135 │         params -> %Plug.Conn{conn | query_params: %{}, params: params}1742     │                   ~1743     │1744     └─ lib/phoenix/endpoint/render_errors.ex:135:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/117451746      warning: a struct for Plug.Conn is expected on struct update:17471748          %Plug.Conn{conn | params: params}17491750      but got type:17511752          dynamic(%{..., params: map()})17531754      where "conn" was given the type:17551756          # type: dynamic(%{..., params: map()})1757          # from: lib/phoenix/controller.ex:1327:171758          Map.get(conn.params, required_key)17591760      when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"17611762      type warning found at:1763      │1764 1334 │     %Plug.Conn{conn | params: params}1765      │     ~1766      │1767      └─ lib/phoenix/controller.ex:1334:5: Phoenix.Controller.scrub_params/217681769Generated phoenix app1770warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1771  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21772  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11773  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51774  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21775  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41776  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/217771778==> phoenix_live_view1779Compiling 39 files (.ex)1780    warning: unused require Logger1781    │1782 48 │   require Logger1783    │   ~1784    │1785    └─ lib/phoenix_live_view/socket.ex:48:317861787     warning: unused require Phoenix.ChannelTest1788     │1789 183 │   require Phoenix.ChannelTest1790     │   ~1791     │1792     └─ lib/phoenix_live_view/test/live_view_test.ex:183:317931794     warning: unused require Phoenix.ConnTest1795     │1796 182 │   require Phoenix.ConnTest1797     │   ~1798     │1799     └─ lib/phoenix_live_view/test/live_view_test.ex:182:318001801    warning: unused require Phoenix.ChannelTest1802    │1803  5 │   require Phoenix.ChannelTest1804    │   ~1805    │1806    └─ lib/phoenix_live_view/test/upload_client.ex:5:318071808    warning: unused require Logger1809    │1810  6 │   require Logger1811    │   ~1812    │1813    └─ lib/phoenix_live_view/upload_channel.ex:6:318141815     warning: a struct for Phoenix.LiveView.Socket is expected on struct update:18161817         %Phoenix.LiveView.Socket{1818           socket1819           | assigns: Map.merge(temp_assigns, socket.assigns),1820             private:1821               Map.update(1822                 socket.private,1823                 :temporary_assigns,1824                 temp_assigns,1825                 &Map.merge(&1, temp_assigns)1826               )1827         }18281829     but got type:18301831         dynamic()18321833     where "socket" was given the type:18341835         # type: dynamic()1836         # from: lib/phoenix_live_view/utils.ex:415:281837         socket18381839     when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"18401841     type warning found at:1842     │1843 422 │     %Socket{1844     │     ~1845     │1846     └─ lib/phoenix_live_view/utils.ex:422:5: Phoenix.LiveView.Utils.handle_mount_option/318471848    warning: the following clause will never match:18491850        {:error, reason} ->18511852    because it attempts to match on the result of:18531854        IO.binwrite(state.file, data)18551856    which has type:18571858        dynamic(not {:error, term()})18591860    type warning found at:1861    │1862 23 │       {:error, reason} -> {:error, reason, state}1863    │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1864    │1865    └─ lib/phoenix_live_view/upload_tmp_file_writer.ex:23: Phoenix.LiveView.UploadTmpFileWriter.write_chunk/218661867     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:18681869         %Phoenix.LiveView.UploadEntry{1870           entry1871           | preflighted?: entry.preflighted? || Enum.__in__(entry.ref, refs)1872         }18731874     but got type:18751876         dynamic()18771878     where "entry" was given the type:18791880         # type: dynamic()1881         # from: lib/phoenix_live_view/upload_config.ex:362:171882         entry <- conf.entries18831884     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"18851886     type warning found at:1887     │1888 363 │         %UploadEntry{entry | preflighted?: entry.preflighted? || entry.ref in refs}1889     │         ~1890     │1891     └─ lib/phoenix_live_view/upload_config.ex:363:9: Phoenix.LiveView.UploadConfig.mark_preflighted/218921893      warning: the following clause is redundant:18941895          def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)18961897      it has type:18981899          dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))19001901      previous clauses have already matched on the following types:19021903          %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())1904          %Phoenix.LiveView.Socket{}, term(), (none() -> term())1905          term(), term(), (none(), none() -> term())1906          term(), term(), (none() -> term())19071908      │1909 1378 │   def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do1910      │       ~1911      │1912      └─ lib/phoenix_component.ex:1378:7: Phoenix.Component.update/319131914     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19151916         %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}19171918     but got type:19191920         dynamic()19211922     where "entry" was given the type:19231924         # type: dynamic()1925         # from: lib/phoenix_live_view/upload_config.ex:572:301926         entry19271928     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19291930     type warning found at:1931     │1932 573 │     entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}1933     │             ~1934     │1935     └─ lib/phoenix_live_view/upload_config.ex:573:13: Phoenix.LiveView.UploadConfig.put_valid_entry/219361937     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19381939         %Phoenix.LiveView.UploadEntry{entry | valid?: false}19401941     but got type:19421943         dynamic()19441945     where "entry" was given the type:19461947         # type: dynamic()1948         # from: lib/phoenix_live_view/upload_config.ex:585:321949         entry19501951     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19521953     type warning found at:1954     │1955 586 │     entry = %UploadEntry{entry | valid?: false}1956     │             ~1957     │1958     └─ lib/phoenix_live_view/upload_config.ex:586:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/319591960     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19611962         %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}19631964     but got type:19651966         dynamic()19671968     where "entry" was given the type:19691970         # type: dynamic()1971         # from: lib/phoenix_live_view/upload_config.ex:669:421972         entry19731974     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19751976     type warning found at:1977     │1978 669 │         update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)1979     │                                                   ~1980     │1981     └─ lib/phoenix_live_view/upload_config.ex:669:51: Phoenix.LiveView.UploadConfig.cancel_entry/219821983    warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead1984    │1985 73 │     Logger.disable(self())1986    │            ~1987    │1988    └─ lib/phoenix_live_view/test/client_proxy.ex:73:12: Phoenix.LiveViewTest.ClientProxy.init/119891990     warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:19911992         %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}19931994     but got type:19951996         dynamic(%{..., rendered: map()})19971998     where "view" was given the type:19992000         # type: dynamic(%{..., rendered: map()})2001         # from: lib/phoenix_live_view/test/client_proxy.ex:727:262002         Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)20032004     when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"20052006     type warning found at:2007     │2008 728 │           new_view = %ClientProxy{view | rendered: rendered}2009     │                      ~2010     │2011     └─ lib/phoenix_live_view/test/client_proxy.ex:728:22: Phoenix.LiveViewTest.ClientProxy.merge_rendered/320122013     warning: the right-hand side of || (shown as ... below) will never be executed:20142015         conn.private[:live_view_connect_info] || prune_conn(conn) || ...20162017     because the left-hand side always evaluates to:20182019         dynamic(not false and not nil)20202021     where "conn" was given the types:20222023         # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})2024         # from: lib/phoenix_live_view/test/live_view_test.ex:319:722025         %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn20262027         # type: dynamic(%Plug.Conn{2028           assigns: %{..., live_module: term()},2029           private:2030             %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or2031               non_struct_map(),2032           status: integer()2033         })2034         # from: lib/phoenix_live_view/test/live_view_test.ex:333:352035         conn.private[:live_view_connect_params]20362037     type warning found at:2038     │2039 334 │       connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},2040     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2041     │2042     └─ lib/phoenix_live_view/test/live_view_test.ex:334: Phoenix.LiveViewTest.connect_from_static_token/220432044     warning: a struct for Phoenix.LiveView.Socket is expected on struct update:20452046         %Phoenix.LiveView.Socket{2047           socket2048           | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}2049         }20502051     but got type:20522053         dynamic(%{..., assigns: term()})20542055     where "socket" was given the type:20562057         # type: dynamic(%{..., assigns: term()})2058         # from: lib/phoenix_live_view/renderer.ex:121:432059         %{assigns: assigns} = socket20602061     when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"20622063     type warning found at:2064     │2065 122 │     socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}2066     │              ~2067     │2068     └─ lib/phoenix_live_view/renderer.ex:122:14: Phoenix.LiveView.Renderer.render_assigns/120692070     warning: the following pattern will never match:20712072         template = Phoenix.LiveView.Utils.normalize_layout(template)20732074     because the right-hand side has type:20752076         none()20772078     where "template" was given the types:20792080         # type: binary()2081         # from: lib/phoenix_live_view/router.ex:299:662082         is_binary(template)20832084         # type: binary()2085         # from: lib/phoenix_live_view/router.ex2086         {:root_layout, {mod, template}}20872088     type warning found at:2089     │2090 300 │         template = Phoenix.LiveView.Utils.normalize_layout(template)2091     │                  ~2092     │2093     └─ lib/phoenix_live_view/router.ex:300:18: Phoenix.LiveView.Router.validate_live_session_opts/320942095     warning: the following pattern will never match:20962097         template = Phoenix.LiveView.Utils.normalize_layout(template)20982099     because the right-hand side has type:21002101         none()21022103     where "template" was given the types:21042105         # type: binary()2106         # from: lib/phoenix_live_view/router.ex:316:612107         is_binary(template)21082109         # type: binary()2110         # from: lib/phoenix_live_view/router.ex2111         {:layout, {mod, template}}21122113     type warning found at:2114     │2115 317 │         template = Phoenix.LiveView.Utils.normalize_layout(template)2116     │                  ~2117     │2118     └─ lib/phoenix_live_view/router.ex:317:18: Phoenix.LiveView.Router.validate_live_session_opts/321192120     warning: the following clause is redundant:21212122         def to_iodata(%_{} = struct)21232124     it has type:21252126         dynamic(%Phoenix.LiveView.Rendered{})21272128     previous clauses have already matched on the following types:21292130         %Phoenix.LiveView.Rendered{}21312132     │2133 152 │     def to_iodata(%_{} = struct) do2134     │         ~2135     │2136     └─ lib/phoenix_live_view/engine.ex:152:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121372138     warning: the 1st pattern in clause will never match:21392140         nil21412142     because it is expected to receive type:21432144         dynamic(%Phoenix.LiveView.Rendered{})21452146     hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}21472148     type warning found at:2149     │2150 156 │     def to_iodata(nil) do2151     │     ~~~~~~~~~~~~~~~~~~~~~2152     │2153     └─ lib/phoenix_live_view/engine.ex:156: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121542155     warning: the following clause is redundant:21562157         def to_iodata(other)21582159     it has type:21602161         dynamic(%Phoenix.LiveView.Rendered{})21622163     previous clauses have already matched on the following types:21642165         %Phoenix.LiveView.Rendered{}21662167     │2168 160 │     def to_iodata(other) do2169     │         ~2170     │2171     └─ lib/phoenix_live_view/engine.ex:160:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121722173     warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)2174     │2175 903 │   defp class_names(nil), do: []2176     │        ~2177     │2178     └─ lib/phoenix_live_view/js.ex:903:8: Phoenix.LiveView.JS.class_names/121792180Generated phoenix_live_view app2181warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"2182  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/22183  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/12184  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/52185  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/22186  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/42187  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/221882189==> phoenix_live_dashboard2190Compiling 36 files (.ex)2191Generated phoenix_live_dashboard app2192==> uuid2193Compiling 1 file (.ex)2194    warning: use Bitwise is deprecated. import Bitwise instead2195    │2196  2 │   use Bitwise, only_operators: true2197    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2198    │2199    └─ lib/uuid.ex:2: UUID (module)22002201Generated uuid app2202==> memorex2203Compiling 35 files (.ex)2204warning: defining a Gettext backend by calling22052206    use Gettext, otp_app: ...22072208is deprecated. To define a backend, call:22092210    use Gettext.Backend, otp_app: :my_app22112212Then, instead of importing your backend, call this in your module:22132214    use Gettext, backend: MyApp.Gettext22152216  lib/memorex_web/gettext.ex:23: MemorexWeb.Gettext (module)22172218    error: module Phoenix.View is not loaded and could not be found. This may be happening because the module you are trying to load directly or indirectly depends on the current module2219    │2220  4 │   use MemorexWeb, :live_view2221    │   ^^^^^^^^^^^^^^^^^^^^^^^^^^2222    │2223    └─ lib/memorex_web/live/card_live/edit.ex:4: MemorexWeb.CardLive.Edit (module)22242225    error: module Phoenix.View is not loaded and could not be found. This may be happening because the module you are trying to load directly or indirectly depends on the current module2226    │2227  4 │   use MemorexWeb, :live_component2228    │   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2229    │2230    └─ lib/memorex_web/live/card_live/card_component.ex:4: MemorexWeb.CardLive.CardComponent (module)223122322233== Compilation error in file lib/memorex_web/live/card_live/edit.ex ==2234** (CompileError) lib/memorex_web/live/card_live/edit.ex: cannot compile module MemorexWeb.CardLive.Edit (errors have been logged)2235    expanding macro: MemorexWeb.__using__/12236    lib/memorex_web/live/card_live/edit.ex:4: MemorexWeb.CardLive.Edit (module)2237    (elixir 1.20.3) expanding macro: Kernel.use/22238    lib/memorex_web/live/card_live/edit.ex:4: MemorexWeb.CardLive.Edit (module)2239could not compile dependency :memorex, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile memorex --force", update it with "mix deps.update memorex" or clean it with "mix deps.clean memorex"