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: "<"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: ">"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: "&"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: """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: "'"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"