Build log
nerves_system_qemu_aarch64
memorex 0.2.4 · fail · run memorex-0.2.4-1790999673734
2240 of 2240 lines
1Resolving Hex dependencies...2Resolution completed in 0.708s3Unchanged: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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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_aarch64_nerves_linux_gnu684Compiling 1 file (.ex)685Generated nerves_toolchain_aarch64_nerves_linux_gnu app686==> nerves_system_qemu_aarch64687Compiling 1 file (.ex)688Generated nerves_system_qemu_aarch64 app689==> nerves_compatibility_test690===> Analyzing applications...691===> Compiling telemetry692==> telemetry_metrics693Compiling 7 files (.ex)694 warning: unused require Logger695 │696 391 │ require Logger697 │ ~698 │699 └─ lib/telemetry_metrics.ex:391:3700701Generated telemetry_metrics app702==> nerves_compatibility_test703===> Analyzing applications...704===> Compiling telemetry_poller705==> db_connection706Compiling 18 files (.ex)707Generated db_connection app708==> ecto709Compiling 56 files (.ex)710Generated ecto app711==> nerves_compatibility_test712===> Analyzing applications...713===> Compiling cowboy714==> expo715Compiling 2 files (.erl)716Compiling 22 files (.ex)717Generated expo app718==> gettext719Compiling 18 files (.ex)720 warning: unused require Gettext.Macros721 │722 594 │ require Gettext.Macros723 │ ~724 │725 └─ lib/gettext.ex:594:3726727 warning: the following clause is redundant:728729 defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)730731 it has type:732733 dynamic(%Expo.Message.Plural{})734735 previous clauses have already matched on the following types:736737 %Expo.Message.Singular{}738 %Expo.Message.Plural{}739740 │741 391 │ defp ensure_empty_msgstr!(%Message.Plural{} = message) do742 │ ~743 │744 └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1745746 warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead747 │748 426 │ Kernel.ParallelCompiler.async(fn ->749 │ ~750 │751 └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3752753Generated gettext app754==> phoenix_pubsub755Compiling 12 files (.ex)756Generated phoenix_pubsub app757==> plug758Compiling 1 file (.erl)759Compiling 42 files (.ex)760Generated plug app761==> phoenix_html762Compiling 9 files (.ex)763 warning: comparison between distinct types found:764765 id == nil766767 given types:768769 dynamic(not false and not nil and not binary()) == nil770771 where "id" was given the types:772773 # type: dynamic(not false and not nil)774 # from: lib/phoenix_html/form_data.ex:92:8775 id = Keyword.get(opts, :id) || name776777 # type: dynamic(not false and not nil and not binary())778 # from: lib/phoenix_html/form_data.ex:94:12779 is_binary(id)780781 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 false782783 type warning found at:784 │785 94 │ unless is_binary(id) or is_nil(id) do786 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~787 │788 └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2789790 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 app981==> phoenix_template982Compiling 4 files (.ex)983Generated phoenix_template app984warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"985 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2986 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1987 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5988 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2989 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4990 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2991992==> postgrex993Compiling 70 files (.ex)994Generated postgrex app995==> ecto_sql996Compiling 25 files (.ex)997Generated ecto_sql app998warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"999 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21000 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11001 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51002 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21003 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41004 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/210051006==> phoenix_ecto1007Compiling 7 files (.ex)1008Generated phoenix_ecto app1009==> uboot_env1010Compiling 5 files (.ex)1011Generated uboot_env app1012==> timex1013Compiling 62 files (.ex)1014 warning: default arguments in protocol definitions is deprecated1015 │1016 84 │ def compare(a, b, granularity \\ :microsecond)1017 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1018 │1019 └─ lib/comparable/comparable.ex:84: Timex.Comparable (module)10201021 warning: default arguments in protocol definitions is deprecated1022 │1023 139 │ def diff(a, b, granularity \\ :microsecond)1024 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1025 │1026 └─ lib/comparable/comparable.ex:139: Timex.Comparable (module)10271028 warning: protocols can only define functions without implementation via def/1, found: compare/2, diff/21029 │1030 1 │ defprotocol Timex.Comparable do1031 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1032 │1033 └─ lib/comparable/comparable.ex:1: Timex.Comparable (module)10341035 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 operator1036 │1037 317 │ <<abbrevs::bytes(len), rest::binary>> = data1038 │ ~1039 │1040 └─ lib/parse/zoneinfo/parser.ex:317:22: Timex.Parse.ZoneInfo.Parser.parse_abbreviations/410411042 warning: default arguments in protocol definitions is deprecated1043 │1044 48 │ def to_datetime(datetime, timezone \\ :utc)1045 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1046 │1047 └─ lib/protocol.ex:48: Timex.Protocol (module)10481049 warning: protocols can only define functions without implementation via def/1, found: to_datetime/11050 │1051 1 │ defprotocol Timex.Protocol do1052 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1053 │1054 └─ lib/protocol.ex:1: Timex.Protocol (module)10551056 warning: unused require Timex.Macros1057 │1058 5 │ require Timex.Macros1059 │ ~1060 │1061 └─ lib/comparable/tuple.ex:5:310621063 warning: unused require Timex.Macros1064 │1065 5 │ require Timex.Macros1066 │ ~1067 │1068 └─ lib/comparable/naivedatetime.ex:5:310691070 warning: unused require Bitwise1071 │1072 5 │ require Bitwise1073 │ ~1074 │1075 └─ lib/calendar/julian.ex:5:310761077Compiling lib/l10n/gettext.ex (it's taking more than 10s)1078 warning: the following clause will never match:10791080 {ty, a, b} when ty === :gap or ty === :ambiguous ->10811082 it is expected to match on type:10831084 dynamic({:error, term()} and not {:ok, %{..., time_zone: term()}})10851086 where "ty" was given the type:10871088 # type: :ambiguous or :gap1089 # from: lib/timezone/timezone.ex:5481090 ty in [:gap, :ambiguous]10911092 type warning found at:1093 │1094 548 │ {ty, a, b} when ty in [:gap, :ambiguous] ->1095 │ ~1096 │1097 └─ lib/timezone/timezone.ex:548:7: Timex.Timezone.convert/210981099 warning: a struct for Timex.PosixTimezone is expected on struct update:11001101 %Timex.PosixTimezone{rule | std_abbr: abbr}11021103 but got type:11041105 dynamic()11061107 where "rule" was given the type:11081109 # type: dynamic()1110 # from: lib/parse/posix/parser.ex:119:331111 rule11121113 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"11141115 type warning found at:1116 │1117 121 │ parse_tz(:std_offset, rest, %TZ{rule | std_abbr: abbr})1118 │ ~1119 │1120 └─ lib/parse/posix/parser.ex:121:35: Timex.Parse.Timezones.Posix.parse_tz/311211122 warning: a struct for Timex.PosixTimezone is expected on struct update:11231124 %Timex.PosixTimezone{rule | std_offset: offset}11251126 but got type:11271128 dynamic()11291130 where "rule" was given the type:11311132 # type: dynamic()1133 # from: lib/parse/posix/parser.ex:125:351134 rule11351136 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"11371138 type warning found at:1139 │1140 127 │ parse_tz(:dst_abbr, rest, %TZ{rule | std_offset: offset})1141 │ ~1142 │1143 └─ lib/parse/posix/parser.ex:127:33: Timex.Parse.Timezones.Posix.parse_tz/311441145 warning: a struct for Timex.PosixTimezone is expected on struct update:11461147 %Timex.PosixTimezone{rule | dst_abbr: abbr}11481149 but got type:11501151 dynamic()11521153 where "rule" was given the type:11541155 # type: dynamic()1156 # from: lib/parse/posix/parser.ex:141:331157 rule11581159 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"11601161 type warning found at:1162 │1163 143 │ rule = %TZ{rule | dst_abbr: abbr} do1164 │ ~1165 │1166 └─ lib/parse/posix/parser.ex:143:17: Timex.Parse.Timezones.Posix.parse_tz/311671168 warning: a struct for Timex.PosixTimezone is expected on struct update:11691170 %Timex.PosixTimezone{rule | dst_offset: offset}11711172 but got type:11731174 dynamic()11751176 where "rule" was given the type:11771178 # type: dynamic()1179 # from: lib/parse/posix/parser.ex:160:351180 rule11811182 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"11831184 type warning found at:1185 │1186 162 │ rule = %TZ{rule | dst_offset: offset} do1187 │ ~1188 │1189 └─ lib/parse/posix/parser.ex:162:17: Timex.Parse.Timezones.Posix.parse_tz/311901191 warning: a struct for Timex.PosixTimezone is expected on struct update:11921193 %Timex.PosixTimezone{rule | dst_start: dst_start, dst_end: dst_end}11941195 but got type:11961197 dynamic()11981199 where "rule" was given the type:12001201 # type: dynamic()1202 # from: lib/parse/posix/parser.ex:185:361203 rule12041205 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"12061207 type warning found at:1208 │1209 190 │ {:ok, %TZ{rule | dst_start: dst_start, dst_end: dst_end}, rest}1210 │ ~1211 │1212 └─ lib/parse/posix/parser.ex:190:17: Timex.Parse.Timezones.Posix.parse_tz/312131214 warning: the following clause will never match:12151216 :error ->12171218 it is expected to match on type:12191220 dynamic({:error, :invalid_number, binary()})12211222 type warning found at:1223 │1224 264 │ :error ->1225 │ ~~~~~~~~~1226 │1227 └─ lib/parse/posix/parser.ex:264: Timex.Parse.Timezones.Posix.parse_month_week_day/312281229 warning: the following pattern will never match:12301231 {y, m, d} <- to_erl_datetime(date)12321233 because the right-hand side has type:12341235 dynamic(1236 {:error, :invalid_date} or1237 {:ok, {{integer(), integer(), integer()}, {integer(), integer(), integer()}}}1238 )12391240 where "date" was given the type:12411242 # type: dynamic({...})1243 # from: lib/datetime/erlang.ex:7:171244 date12451246 type warning found at:1247 │1248 8 │ with {y, m, d} <- to_erl_datetime(date),1249 │ ~1250 │1251 └─ lib/datetime/erlang.ex:8:10: Timex.Protocol.Tuple.to_julian/112521253 warning: the following clause is redundant:12541255 def shift(_, _)12561257 it has type:12581259 dynamic(%Date{}), dynamic()12601261 previous clauses have already matched on the following types:12621263 %Date{}, term()12641265 │1266 227 │ def shift(_, _), do: {:error, :badarg}1267 │ ~1268 │1269 └─ lib/date/date.ex:227:7: Timex.Protocol.Date.shift/212701271 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:12721273 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions, leaps: leaps}12741275 but got type:12761277 dynamic(%{..., leaps: term(), transitions: term()})12781279 where "zone" was given the types:12801281 # type: dynamic(%{..., rule: term()} or %{..., transitions: term()})1282 # from: lib/parse/zoneinfo/parser.ex:156:281283 {:ok, zone, rest} <- parse_content(1, data, %Timex.Parse.ZoneInfo.Parser.Zone{..., version: 1})12841285 # type: dynamic(%{..., transitions: term()})1286 # from: lib/parse/zoneinfo/parser.ex:157:261287 Enum.sort_by(zone.transitions, fn tx -> tx.starts_at end)12881289 # type: dynamic(%{..., leaps: term(), transitions: term()})1290 # from: lib/parse/zoneinfo/parser.ex:158:201291 Enum.sort_by(zone.leaps, fn leap -> leap.epoch end)12921293 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"12941295 type warning found at:1296 │1297 159 │ {:ok, %Zone{zone | transitions: transitions, leaps: leaps}, rest}1298 │ ~1299 │1300 └─ lib/parse/zoneinfo/parser.ex:159:13: Timex.Parse.ZoneInfo.Parser.parse_versioned_content/213011302 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13031304 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: times}13051306 but got type:13071308 dynamic()13091310 where "zone" was given the type:13111312 # type: dynamic()1313 # from: lib/parse/zoneinfo/parser.ex:270:921314 zone13151316 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13171318 type warning found at:1319 │1320 272 │ parse_transition_info(version, rest, header, %Zone{zone | transitions: times})1321 │ ~1322 │1323 └─ lib/parse/zoneinfo/parser.ex:272:50: Timex.Parse.ZoneInfo.Parser.parse_transition_times/413241325 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13261327 %Timex.Parse.ZoneInfo.Parser.Zone{zone | leaps: leaps}13281329 but got type:13301331 dynamic()13321333 where "zone" was given the type:13341335 # type: dynamic()1336 # from: lib/parse/zoneinfo/parser.ex:330:791337 zone13381339 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13401341 type warning found at:1342 │1343 344 │ parse_flags(version, rest, header, %Zone{zone | leaps: leaps})1344 │ ~1345 │1346 └─ lib/parse/zoneinfo/parser.ex:344:40: Timex.Parse.ZoneInfo.Parser.parse_leap_seconds/413471348 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13491350 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions}13511352 but got type:13531354 dynamic(%{..., transitions: term()})13551356 where "zone" was given the type:13571358 # type: dynamic(%{..., transitions: term()})1359 # from: lib/parse/zoneinfo/parser.ex:354:151360 Enum.with_index(zone.transitions)13611362 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13631364 type warning found at:1365 │1366 362 │ parse_posixtz_string(version, rest, %Zone{zone | transitions: transitions})1367 │ ~1368 │1369 └─ lib/parse/zoneinfo/parser.ex:362:43: Timex.Parse.ZoneInfo.Parser.parse_flags/413701371 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13721373 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions}13741375 but got type:13761377 dynamic(%{..., transitions: term()})13781379 where "zone" was given the type:13801381 # type: dynamic(%{..., transitions: term()})1382 # from: lib/parse/zoneinfo/parser.ex:354:151383 Enum.with_index(zone.transitions)13841385 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13861387 type warning found at:1388 │1389 364 │ {:ok, %Zone{zone | transitions: transitions}, rest}1390 │ ~1391 │1392 └─ lib/parse/zoneinfo/parser.ex:364:13: Timex.Parse.ZoneInfo.Parser.parse_flags/413931394 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13951396 %Timex.Parse.ZoneInfo.Parser.Zone{zone | rule: rule}13971398 but got type:13991400 dynamic()14011402 where "zone" was given the type:14031404 # type: dynamic()1405 # from: lib/parse/zoneinfo/parser.ex:369:621406 zone14071408 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"14091410 type warning found at:1411 │1412 372 │ {:ok, %Zone{zone | rule: rule}, format_rest <> rest}1413 │ ~1414 │1415 └─ lib/parse/zoneinfo/parser.ex:372:13: Timex.Parse.ZoneInfo.Parser.parse_posixtz_string/314161417 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14181419 %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_abbr: abbr, dst_abbr: abbr}14201421 but got type:14221423 dynamic()14241425 where "rule" was given the type:14261427 # type: dynamic()1428 # from: lib/parse/zoneinfo/parser.ex:383:331429 rule14301431 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"14321433 type warning found at:1434 │1435 385 │ parse_tz(:std_offset, rest, %Rule{rule | std_abbr: abbr, dst_abbr: abbr})1436 │ ~1437 │1438 └─ lib/parse/zoneinfo/parser.ex:385:35: Timex.Parse.ZoneInfo.Parser.parse_tz/314391440 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14411442 %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_offset: offset, dst_offset: offset}14431444 but got type:14451446 dynamic()14471448 where "rule" was given the type:14491450 # type: dynamic()1451 # from: lib/parse/zoneinfo/parser.ex:389:351452 rule14531454 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"14551456 type warning found at:1457 │1458 391 │ parse_tz(:dst_abbr, rest, %Rule{rule | std_offset: offset, dst_offset: offset})1459 │ ~1460 │1461 └─ lib/parse/zoneinfo/parser.ex:391:33: Timex.Parse.ZoneInfo.Parser.parse_tz/314621463 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14641465 %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_abbr: abbr}14661467 but got type:14681469 dynamic()14701471 where "rule" was given the type:14721473 # type: dynamic()1474 # from: lib/parse/zoneinfo/parser.ex:405:331475 rule14761477 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"14781479 type warning found at:1480 │1481 407 │ rule = %Rule{rule | dst_abbr: abbr} do1482 │ ~1483 │1484 └─ lib/parse/zoneinfo/parser.ex:407:17: Timex.Parse.ZoneInfo.Parser.parse_tz/314851486 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14871488 %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_offset: offset}14891490 but got type:14911492 dynamic()14931494 where "rule" was given the type:14951496 # type: dynamic()1497 # from: lib/parse/zoneinfo/parser.ex:424:351498 rule14991500 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"15011502 type warning found at:1503 │1504 426 │ rule = %Rule{rule | dst_offset: offset} do1505 │ ~1506 │1507 └─ lib/parse/zoneinfo/parser.ex:426:17: Timex.Parse.ZoneInfo.Parser.parse_tz/315081509 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:15101511 %Timex.Parse.ZoneInfo.Parser.Rule{rule | start_time: start_time, end_time: end_time}15121513 but got type:15141515 dynamic()15161517 where "rule" was given the type:15181519 # type: dynamic()1520 # from: lib/parse/zoneinfo/parser.ex:449:361521 rule15221523 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"15241525 type warning found at:1526 │1527 454 │ {:ok, %Rule{rule | start_time: start_time, end_time: end_time}, rest}1528 │ ~1529 │1530 └─ lib/parse/zoneinfo/parser.ex:454:17: Timex.Parse.ZoneInfo.Parser.parse_tz/315311532 warning: the following clause will never match:15331534 :error ->15351536 it is expected to match on type:15371538 dynamic({:error, :invalid_number, binary()})15391540 type warning found at:1541 │1542 528 │ :error ->1543 │ ~~~~~~~~~1544 │1545 └─ lib/parse/zoneinfo/parser.ex:528: Timex.Parse.ZoneInfo.Parser.parse_month_week_day/315461547Generated timex app1548==> property_table1549Compiling 8 files (.ex)1550Generated property_table app1551==> nerves_uevent1552 CC uevent.o1553 LD uevent1554Compiling 5 files (.ex)1555Generated nerves_uevent app1556==> nerves_runtime1557Compiling 14 files (.ex)1558Generated nerves_runtime app1559==> toolshed1560Compiling 5 files (.ex)1561Generated toolshed app1562==> nerves_compatibility_test1563===> Analyzing applications...1564===> Compiling cowboy_telemetry1565==> plug_cowboy1566Compiling 5 files (.ex)1567Generated plug_cowboy app1568==> websock1569Compiling 1 file (.ex)1570Generated websock app1571==> websock_adapter1572Compiling 4 files (.ex)1573Generated websock_adapter app1574warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1575 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21576 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11577 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51578 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21579 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41580 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/215811582==> phoenix1583Compiling 71 files (.ex)1584 warning: unused require Logger1585 │1586 9 │ require Logger1587 │ ~1588 │1589 └─ lib/phoenix/config.ex:9:315901591 warning: unused require Logger1592 │1593 281 │ require Logger1594 │ ~1595 │1596 └─ lib/phoenix/endpoint.ex:281:315971598 warning: unused require Phoenix.Endpoint1599 │1600 6 │ require Phoenix.Endpoint1601 │ ~1602 │1603 └─ lib/phoenix/controller.ex:6:316041605 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 operator1606 │1607 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1608 │ ~1609 │1610 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/216111612 warning: unused require Phoenix.Endpoint1613 │1614 17 │ require Phoenix.Endpoint1615 │ ~1616 │1617 └─ lib/phoenix/endpoint/render_errors.ex:17:316181619 warning: unused require Phoenix.Endpoint1620 │1621 6 │ require Phoenix.Endpoint1622 │ ~1623 │1624 └─ lib/phoenix/channel/server.ex:6:316251626 warning: unused require Phoenix.Endpoint1627 │1628 202 │ require Phoenix.Endpoint1629 │ ~1630 │1631 └─ lib/phoenix/socket.ex:202:316321633 warning: unused require Logger1634 │1635 70 │ require Logger1636 │ ~1637 │1638 └─ lib/phoenix/socket/pool_supervisor.ex:70:316391640 warning: unused require Logger1641 │1642 100 │ require Logger1643 │ ~1644 │1645 └─ lib/phoenix/token.ex:100:316461647 warning: comparison between distinct types found:16481649 merge_all != []16501651 given types:16521653 dynamic(non_empty_list({atom(), term()})) != empty_list()16541655 where "merge_all" was given the type:16561657 # type: dynamic(non_empty_list({atom(), term()}))1658 # from: lib/phoenix/router/route.ex:121:151659 merge_all = merge_params ++ merge_private ++ merge_assigns16601661 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 false16621663 type warning found at:1664 │1665 123 │ if merge_all != [] do1666 │ ~1667 │1668 └─ lib/phoenix/router/route.ex:123:18: Phoenix.Router.Route.build_prepare/116691670 warning: a struct for Plug.Conn is expected on struct update:16711672 %Plug.Conn{conn | state: :sent}16731674 but got type:16751676 dynamic()16771678 where "conn" was given the type:16791680 # type: dynamic()1681 # from: lib/phoenix/endpoint/render_errors.ex:55:171682 conn16831684 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"16851686 type warning found at:1687 │1688 60 │ %Plug.Conn{conn | state: :sent}1689 │ ~1690 │1691 └─ lib/phoenix/endpoint/render_errors.ex:60:11: Phoenix.Endpoint.RenderErrors.__catch__/516921693 warning: a struct for Plug.Conn is expected on struct update:16941695 %Plug.Conn{conn | query_params: %{}, params: %{}}16961697 but got type:16981699 dynamic(%{..., params: %Plug.Conn.Unfetched{}})17001701 where "conn" was given the types:17021703 # type: dynamic(%{..., params: term()})1704 # from: lib/phoenix/endpoint/render_errors.ex:133:171705 conn.params17061707 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1708 # from: lib/phoenix/endpoint/render_errors.ex:133:171709 conn.params17101711 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"17121713 type warning found at:1714 │1715 134 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1716 │ ~1717 │1718 └─ lib/phoenix/endpoint/render_errors.ex:134:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/117191720 warning: a struct for Plug.Conn is expected on struct update:17211722 %Plug.Conn{conn | query_params: %{}, params: params}17231724 but got type:17251726 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})17271728 where "conn" was given the types:17291730 # type: dynamic(%{..., params: term()})1731 # from: lib/phoenix/endpoint/render_errors.ex:133:171732 conn.params17331734 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1735 # from: lib/phoenix/endpoint/render_errors.ex:133:171736 conn.params17371738 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"17391740 type warning found at:1741 │1742 135 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}1743 │ ~1744 │1745 └─ lib/phoenix/endpoint/render_errors.ex:135:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/117461747 warning: a struct for Plug.Conn is expected on struct update:17481749 %Plug.Conn{conn | params: params}17501751 but got type:17521753 dynamic(%{..., params: map()})17541755 where "conn" was given the type:17561757 # type: dynamic(%{..., params: map()})1758 # from: lib/phoenix/controller.ex:1327:171759 Map.get(conn.params, required_key)17601761 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"17621763 type warning found at:1764 │1765 1334 │ %Plug.Conn{conn | params: params}1766 │ ~1767 │1768 └─ lib/phoenix/controller.ex:1334:5: Phoenix.Controller.scrub_params/217691770Generated phoenix app1771warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1772 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21773 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11774 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51775 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21776 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41777 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/217781779==> phoenix_live_view1780Compiling 39 files (.ex)1781 warning: unused require Logger1782 │1783 48 │ require Logger1784 │ ~1785 │1786 └─ lib/phoenix_live_view/socket.ex:48:317871788 warning: unused require Phoenix.ChannelTest1789 │1790 183 │ require Phoenix.ChannelTest1791 │ ~1792 │1793 └─ lib/phoenix_live_view/test/live_view_test.ex:183:317941795 warning: unused require Phoenix.ConnTest1796 │1797 182 │ require Phoenix.ConnTest1798 │ ~1799 │1800 └─ lib/phoenix_live_view/test/live_view_test.ex:182:318011802 warning: unused require Phoenix.ChannelTest1803 │1804 5 │ require Phoenix.ChannelTest1805 │ ~1806 │1807 └─ lib/phoenix_live_view/test/upload_client.ex:5:318081809 warning: unused require Logger1810 │1811 6 │ require Logger1812 │ ~1813 │1814 └─ lib/phoenix_live_view/upload_channel.ex:6:318151816 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:18171818 %Phoenix.LiveView.Socket{1819 socket1820 | assigns: Map.merge(temp_assigns, socket.assigns),1821 private:1822 Map.update(1823 socket.private,1824 :temporary_assigns,1825 temp_assigns,1826 &Map.merge(&1, temp_assigns)1827 )1828 }18291830 but got type:18311832 dynamic()18331834 where "socket" was given the type:18351836 # type: dynamic()1837 # from: lib/phoenix_live_view/utils.ex:415:281838 socket18391840 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"18411842 type warning found at:1843 │1844 422 │ %Socket{1845 │ ~1846 │1847 └─ lib/phoenix_live_view/utils.ex:422:5: Phoenix.LiveView.Utils.handle_mount_option/318481849 warning: the following clause will never match:18501851 {:error, reason} ->18521853 because it attempts to match on the result of:18541855 IO.binwrite(state.file, data)18561857 which has type:18581859 dynamic(not {:error, term()})18601861 type warning found at:1862 │1863 23 │ {:error, reason} -> {:error, reason, state}1864 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1865 │1866 └─ lib/phoenix_live_view/upload_tmp_file_writer.ex:23: Phoenix.LiveView.UploadTmpFileWriter.write_chunk/218671868 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:18691870 %Phoenix.LiveView.UploadEntry{1871 entry1872 | preflighted?: entry.preflighted? || Enum.__in__(entry.ref, refs)1873 }18741875 but got type:18761877 dynamic()18781879 where "entry" was given the type:18801881 # type: dynamic()1882 # from: lib/phoenix_live_view/upload_config.ex:362:171883 entry <- conf.entries18841885 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"18861887 type warning found at:1888 │1889 363 │ %UploadEntry{entry | preflighted?: entry.preflighted? || entry.ref in refs}1890 │ ~1891 │1892 └─ lib/phoenix_live_view/upload_config.ex:363:9: Phoenix.LiveView.UploadConfig.mark_preflighted/218931894 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:18951896 %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}18971898 but got type:18991900 dynamic()19011902 where "entry" was given the type:19031904 # type: dynamic()1905 # from: lib/phoenix_live_view/upload_config.ex:572:301906 entry19071908 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19091910 type warning found at:1911 │1912 573 │ entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}1913 │ ~1914 │1915 └─ lib/phoenix_live_view/upload_config.ex:573:13: Phoenix.LiveView.UploadConfig.put_valid_entry/219161917 warning: the following clause is redundant:19181919 def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)19201921 it has type:19221923 dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))19241925 previous clauses have already matched on the following types:19261927 %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())1928 %Phoenix.LiveView.Socket{}, term(), (none() -> term())1929 term(), term(), (none(), none() -> term())1930 term(), term(), (none() -> term())19311932 │1933 1378 │ def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do1934 │ ~1935 │1936 └─ lib/phoenix_component.ex:1378:7: Phoenix.Component.update/319371938 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19391940 %Phoenix.LiveView.UploadEntry{entry | valid?: false}19411942 but got type:19431944 dynamic()19451946 where "entry" was given the type:19471948 # type: dynamic()1949 # from: lib/phoenix_live_view/upload_config.ex:585:321950 entry19511952 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19531954 type warning found at:1955 │1956 586 │ entry = %UploadEntry{entry | valid?: false}1957 │ ~1958 │1959 └─ lib/phoenix_live_view/upload_config.ex:586:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/319601961 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19621963 %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}19641965 but got type:19661967 dynamic()19681969 where "entry" was given the type:19701971 # type: dynamic()1972 # from: lib/phoenix_live_view/upload_config.ex:669:421973 entry19741975 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19761977 type warning found at:1978 │1979 669 │ update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)1980 │ ~1981 │1982 └─ lib/phoenix_live_view/upload_config.ex:669:51: Phoenix.LiveView.UploadConfig.cancel_entry/219831984 warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead1985 │1986 73 │ Logger.disable(self())1987 │ ~1988 │1989 └─ lib/phoenix_live_view/test/client_proxy.ex:73:12: Phoenix.LiveViewTest.ClientProxy.init/119901991 warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:19921993 %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}19941995 but got type:19961997 dynamic(%{..., rendered: map()})19981999 where "view" was given the type:20002001 # type: dynamic(%{..., rendered: map()})2002 # from: lib/phoenix_live_view/test/client_proxy.ex:727:262003 Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)20042005 when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"20062007 type warning found at:2008 │2009 728 │ new_view = %ClientProxy{view | rendered: rendered}2010 │ ~2011 │2012 └─ lib/phoenix_live_view/test/client_proxy.ex:728:22: Phoenix.LiveViewTest.ClientProxy.merge_rendered/320132014 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:20152016 %Phoenix.LiveView.Socket{2017 socket2018 | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}2019 }20202021 but got type:20222023 dynamic(%{..., assigns: term()})20242025 where "socket" was given the type:20262027 # type: dynamic(%{..., assigns: term()})2028 # from: lib/phoenix_live_view/renderer.ex:121:432029 %{assigns: assigns} = socket20302031 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"20322033 type warning found at:2034 │2035 122 │ socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}2036 │ ~2037 │2038 └─ lib/phoenix_live_view/renderer.ex:122:14: Phoenix.LiveView.Renderer.render_assigns/120392040 warning: the right-hand side of || (shown as ... below) will never be executed:20412042 conn.private[:live_view_connect_info] || prune_conn(conn) || ...20432044 because the left-hand side always evaluates to:20452046 dynamic(not false and not nil)20472048 where "conn" was given the types:20492050 # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})2051 # from: lib/phoenix_live_view/test/live_view_test.ex:319:722052 %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn20532054 # type: dynamic(%Plug.Conn{2055 assigns: %{..., live_module: term()},2056 private:2057 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or2058 non_struct_map(),2059 status: integer()2060 })2061 # from: lib/phoenix_live_view/test/live_view_test.ex:333:352062 conn.private[:live_view_connect_params]20632064 type warning found at:2065 │2066 334 │ connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},2067 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2068 │2069 └─ lib/phoenix_live_view/test/live_view_test.ex:334: Phoenix.LiveViewTest.connect_from_static_token/220702071 warning: the following pattern will never match:20722073 template = Phoenix.LiveView.Utils.normalize_layout(template)20742075 because the right-hand side has type:20762077 none()20782079 where "template" was given the types:20802081 # type: binary()2082 # from: lib/phoenix_live_view/router.ex:299:662083 is_binary(template)20842085 # type: binary()2086 # from: lib/phoenix_live_view/router.ex2087 {:root_layout, {mod, template}}20882089 type warning found at:2090 │2091 300 │ template = Phoenix.LiveView.Utils.normalize_layout(template)2092 │ ~2093 │2094 └─ lib/phoenix_live_view/router.ex:300:18: Phoenix.LiveView.Router.validate_live_session_opts/320952096 warning: the following pattern will never match:20972098 template = Phoenix.LiveView.Utils.normalize_layout(template)20992100 because the right-hand side has type:21012102 none()21032104 where "template" was given the types:21052106 # type: binary()2107 # from: lib/phoenix_live_view/router.ex:316:612108 is_binary(template)21092110 # type: binary()2111 # from: lib/phoenix_live_view/router.ex2112 {:layout, {mod, template}}21132114 type warning found at:2115 │2116 317 │ template = Phoenix.LiveView.Utils.normalize_layout(template)2117 │ ~2118 │2119 └─ lib/phoenix_live_view/router.ex:317:18: Phoenix.LiveView.Router.validate_live_session_opts/321202121 warning: the following clause is redundant:21222123 def to_iodata(%_{} = struct)21242125 it has type:21262127 dynamic(%Phoenix.LiveView.Rendered{})21282129 previous clauses have already matched on the following types:21302131 %Phoenix.LiveView.Rendered{}21322133 │2134 152 │ def to_iodata(%_{} = struct) do2135 │ ~2136 │2137 └─ lib/phoenix_live_view/engine.ex:152:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121382139 warning: the 1st pattern in clause will never match:21402141 nil21422143 because it is expected to receive type:21442145 dynamic(%Phoenix.LiveView.Rendered{})21462147 hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}21482149 type warning found at:2150 │2151 156 │ def to_iodata(nil) do2152 │ ~~~~~~~~~~~~~~~~~~~~~2153 │2154 └─ lib/phoenix_live_view/engine.ex:156: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121552156 warning: the following clause is redundant:21572158 def to_iodata(other)21592160 it has type:21612162 dynamic(%Phoenix.LiveView.Rendered{})21632164 previous clauses have already matched on the following types:21652166 %Phoenix.LiveView.Rendered{}21672168 │2169 160 │ def to_iodata(other) do2170 │ ~2171 │2172 └─ lib/phoenix_live_view/engine.ex:160:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121732174 warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)2175 │2176 903 │ defp class_names(nil), do: []2177 │ ~2178 │2179 └─ lib/phoenix_live_view/js.ex:903:8: Phoenix.LiveView.JS.class_names/121802181Generated phoenix_live_view app2182warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"2183 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/22184 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/12185 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/52186 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/22187 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/42188 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/221892190==> phoenix_live_dashboard2191Compiling 36 files (.ex)2192Generated phoenix_live_dashboard app2193==> uuid2194Compiling 1 file (.ex)2195 warning: use Bitwise is deprecated. import Bitwise instead2196 │2197 2 │ use Bitwise, only_operators: true2198 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2199 │2200 └─ lib/uuid.ex:2: UUID (module)22012202Generated uuid app2203==> memorex2204Compiling 35 files (.ex)2205warning: defining a Gettext backend by calling22062207 use Gettext, otp_app: ...22082209is deprecated. To define a backend, call:22102211 use Gettext.Backend, otp_app: :my_app22122213Then, instead of importing your backend, call this in your module:22142215 use Gettext, backend: MyApp.Gettext22162217 lib/memorex_web/gettext.ex:23: MemorexWeb.Gettext (module)22182219 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 module2220 │2221 4 │ use MemorexWeb, :live_view2222 │ ^^^^^^^^^^^^^^^^^^^^^^^^^^2223 │2224 └─ lib/memorex_web/live/card_live/edit.ex:4: MemorexWeb.CardLive.Edit (module)22252226 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 module2227 │2228 4 │ use MemorexWeb, :live_component2229 │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2230 │2231 └─ lib/memorex_web/live/card_live/card_component.ex:4: MemorexWeb.CardLive.CardComponent (module)223222332234== Compilation error in file lib/memorex_web/live/card_live/edit.ex ==2235** (CompileError) lib/memorex_web/live/card_live/edit.ex: cannot compile module MemorexWeb.CardLive.Edit (errors have been logged)2236 expanding macro: MemorexWeb.__using__/12237 lib/memorex_web/live/card_live/edit.ex:4: MemorexWeb.CardLive.Edit (module)2238 (elixir 1.20.3) expanding macro: Kernel.use/22239 lib/memorex_web/live/card_live/edit.ex:4: MemorexWeb.CardLive.Edit (module)2240could 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"