Build log
nerves_system_rpi0
paleta 0.1.0 · fail · run paleta-0.1.0-1791031886408
1900 of 1900 lines
1Resolving Hex dependencies...2Resolution completed in 0.226s3Unchanged:4 castore 1.0.215 circular_buffer 1.1.06 combine 0.10.07 earmark 1.4.49 RETIRED! VULNERABLE!8 (deprecated) Earmark is no longer maintained. Migrate to a replacement, for example MDEx (https://hex.pm/packages/mdex).910 EEF-CVE-2026-48591 (MEDIUM)11 aka: CVE-2026-48591, GHSA-52mm-h59v-f3c712 Stored XSS via unescaped HTML attribute values in earmark13 https://osv.dev/vulnerability/EEF-CVE-2026-4859114 elixir_make 0.10.015 esbuild 0.10.016 expo 1.1.117 gettext 0.26.218 heroicons 0.5.619 inflex 2.1.020 interactive_cmd 0.1.421 jason 1.4.522 makeup 1.2.223 makeup_elixir 0.16.224 mime 2.0.725 nerves 2.0.0-pre.226 nerves_discovery 0.1.527 nerves_logging 0.2.428 nerves_runtime 0.13.1329 nerves_system_bbb 2.30.230 nerves_system_br 1.34.431 nerves_system_mangopi_mq_pro 0.17.232 nerves_system_qemu_aarch64 0.4.233 nerves_system_rpi0 2.1.234 nerves_system_rpi4 2.1.235 nerves_system_rpi5 2.1.236 nerves_system_trellis 0.5.037 nerves_system_x86_64 1.34.238 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.139 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.140 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.141 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.142 nerves_toolchain_x86_64_nerves_linux_musl 15.3.143 nerves_uevent 0.1.744 nimble_parsec 1.4.245 paleta 0.1.046 phoenix 1.7.2447 phoenix_html 3.3.448 phoenix_live_view 0.20.17 VULNERABLE!49 EEF-CVE-2026-64941 (LOW)50 aka: CVE-2026-64941, GHSA-36m4-rm57-3prf51 Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR52 https://osv.dev/vulnerability/EEF-CVE-2026-6494153 phoenix_pubsub 2.3.054 phoenix_template 1.1.055 plug 1.20.356 plug_crypto 2.2.057 property_table 0.3.458 ring_logger 0.11.759 tablet 0.3.360 tailwind 0.5.161 telemetry 1.4.262 timex 3.7.1363 toolshed 0.5.064 tzdata 1.2.265 uboot_env 1.0.266 websock 0.5.367 websock_adapter 0.5.968* Getting paleta (Hex package)69* Getting nerves (Hex package)70* Getting ring_logger (Hex package)71* Getting toolshed (Hex package)72* Getting nerves_runtime (Hex package)73* Getting nerves_system_bbb (Hex package)74* Getting nerves_system_mangopi_mq_pro (Hex package)75* Getting nerves_system_qemu_aarch64 (Hex package)76* Getting nerves_system_rpi0 (Hex package)77* Getting nerves_system_rpi4 (Hex package)78* Getting nerves_system_rpi5 (Hex package)79* Getting nerves_system_trellis (Hex package)80* Getting nerves_system_x86_64 (Hex package)81* Getting nerves_system_br (Hex package)82* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)83* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)84* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)85* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)86* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)87* Getting nerves_logging (Hex package)88* Getting nerves_uevent (Hex package)89* Getting uboot_env (Hex package)90* Getting elixir_make (Hex package)91* Getting property_table (Hex package)92* Getting circular_buffer (Hex package)93* Getting interactive_cmd (Hex package)94* Getting nerves_discovery (Hex package)95* Getting tablet (Hex package)96* Getting earmark (Hex package)97* Getting esbuild (Hex package)98* Getting heroicons (Hex package)99* Getting inflex (Hex package)100* Getting jason (Hex package)101* Getting makeup (Hex package)102* Getting makeup_elixir (Hex package)103* Getting phoenix_html (Hex package)104* Getting phoenix_live_view (Hex package)105* Getting tailwind (Hex package)106* Getting timex (Hex package)107* Getting combine (Hex package)108* Getting gettext (Hex package)109* Getting tzdata (Hex package)110* Getting expo (Hex package)111* Getting phoenix (Hex package)112* Getting phoenix_template (Hex package)113* Getting plug (Hex package)114* Getting telemetry (Hex package)115* Getting mime (Hex package)116* Getting plug_crypto (Hex package)117* Getting castore (Hex package)118* Getting phoenix_pubsub (Hex package)119* Getting websock_adapter (Hex package)120* Getting websock (Hex package)121* Getting nimble_parsec (Hex package)122Found retired packages, see above for details123Found packages with security advisories, see above for details124==> nerves_system_br125Generated nerves_system_br app126==> combine127Compiling 6 files (.ex)128 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 operator129 │130 26 │ <<bits::bitstring-size(n), rest::bitstring>> ->131 │ ~132 │133 └─ lib/combine/parsers/binary.ex:26:30: Combine.Parsers.Binary.bits_impl/2134135 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 operator136 │137 48 │ <<bits::bitstring-size(bits_size), rest::bitstring>> ->138 │ ~139 │140 └─ lib/combine/parsers/binary.ex:48:30: Combine.Parsers.Binary.bytes_impl/2141142 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 operator143 │144 70 │ <<int::big-unsigned-size(size), rest::bitstring>> ->145 │ ~146 │147 └─ lib/combine/parsers/binary.ex:70:36: Combine.Parsers.Binary.uint_impl/3148149 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 operator150 │151 77 │ <<int::little-unsigned-size(size), rest::bitstring>> ->152 │ ~153 │154 └─ lib/combine/parsers/binary.ex:77:39: Combine.Parsers.Binary.uint_impl/3155156 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 operator157 │158 101 │ <<int::big-signed-size(size), rest::bitstring>> ->159 │ ~160 │161 └─ lib/combine/parsers/binary.ex:101:34: Combine.Parsers.Binary.int_impl/3162163 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 operator164 │165 108 │ <<int::little-signed-size(size), rest::bitstring>> ->166 │ ~167 │168 └─ lib/combine/parsers/binary.ex:108:37: Combine.Parsers.Binary.int_impl/3169170 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 operator171 │172 128 │ <<num::float-size(size), rest::bitstring>> ->173 │ ~174 │175 └─ lib/combine/parsers/binary.ex:128:25: Combine.Parsers.Binary.float_impl/2176177 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 operator178 │179 432 │ <<^expected::binary-size(byte_size), rest::binary>> ->180 │ ~181 │182 └─ lib/combine/parsers/text.ex:432:34: Combine.Parsers.Text.string_impl/2183184 warning: the following clause is redundant:185186 defp word_of_impl(%Combine.ParserState{...} = state, _pattern)187188 it has type:189190 dynamic(%Combine.ParserState{status: :ok}), dynamic()191192 previous clauses have already matched on the following types:193194 %Combine.ParserState{status: :error}, term()195 %Combine.ParserState{status: :ok}, term()196197 │198 488 │ defp word_of_impl(%ParserState{status: :ok} = state, _pattern) do199 │ ~200 │201 └─ lib/combine/parsers/text.ex:488:8: Combine.Parsers.Text.word_of_impl/2202203Generated combine app204==> mime205Compiling 1 file (.ex)206Generated mime app207==> circular_buffer208Compiling 1 file (.ex)209Generated circular_buffer app210==> jason211Compiling 10 files (.ex)212Generated jason app213==> esbuild214Compiling 4 files (.ex)215Generated esbuild app216==> plug_crypto217Compiling 5 files (.ex)218Generated plug_crypto app219==> tzdata220Compiling 18 files (.ex)221Generated tzdata app222==> tablet223Compiling 2 files (.ex)224Generated tablet app225==> inflex226Compiling 6 files (.ex)227Generated inflex app228==> elixir_make229Compiling 8 files (.ex)230Generated elixir_make app231==> nerves_logging232 CC kmsg_tailer.o233 LD kmsg_tailer234Compiling 5 files (.ex)235Generated nerves_logging app236==> castore237Compiling 1 file (.ex)238Generated castore app239==> earmark240Compiling 2 files (.xrl)241Compiling 1 file (.yrl)242Compiling 3 files (.erl)243Compiling 61 files (.ex)244 warning: unused require Logger245 │246 3 │ require Logger247 │ ~248 │249 └─ lib/earmark_parser/line_scanner.ex:3:3250251 warning: this clause of defp _maybe_remove_paras/2 is never used (or it will always fail/warn when invoked)252 │253 616 │ defp _maybe_remove_paras(ast, %Options{inner_html: true}) do254 │ ~255 │256 └─ lib/earmark/transform.ex:616:8: Earmark.Transform._maybe_remove_paras/2257258Generated earmark app259==> nerves_discovery260Compiling 5 files (.ex)261Generated nerves_discovery app262==> ring_logger263Compiling 7 files (.ex)264Generated ring_logger app265==> interactive_cmd266Compiling 1 file (.ex)267Generated interactive_cmd app268==> nerves269Compiling 65 files (.ex)270 warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)271 │272 6 │ defmodule Mix.Tasks.Nerves.Init do273 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~274 │275 └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)276277 warning: redefining module Nerves (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.beam)278 │279 6 │ defmodule Nerves do280 │ ~~~~~~~~~~~~~~~~~~~281 │282 └─ lib/nerves.ex:6: Nerves (module)283284 warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)285 │286 5 │ defmodule Nerves.ArtifactResolver do287 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~288 │289 └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)290291 warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)292 │293 6 │ defmodule Nerves.BuildAction.AppModes do294 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~295 │296 └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)297298 warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)299 │300 5 │ defmodule Nerves.BuildAction.CheckExecutables do301 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~302 │303 └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)304305 warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)306 │307 8 │ defmodule Nerves.BuildAction.Erlinit do308 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~309 │310 └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)311312 warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)313 │314 5 │ defmodule Nerves.BuildAction.Firmware do315 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~316 │317 └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)318319 warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)320 │321 7 │ defmodule Nerves.BuildAction.IExStartupCheck do322 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~323 │324 └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)325326 warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)327 │328 5 │ defmodule Nerves.BuildAction.NervesV1System do329 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~330 │331 └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)332333 warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)334 │335 5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do336 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~337 │338 └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)339340 warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)341 │342 5 │ defmodule Nerves.BuildAction.Rootfs do343 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~344 │345 └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)346347 warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)348 │349 6 │ defmodule Nerves.BuildAction.SortApps do350 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~351 │352 └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)353354 warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)355 │356 5 │ defmodule Nerves.BuildAction.StripAll do357 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~358 │359 └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)360361 warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)362 │363 5 │ defmodule Nerves.BuildAction.Trimmer do364 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~365 │366 └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)367368 warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)369 │370 5 │ defmodule Nerves.BuildPlan do371 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~372 │373 └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)374375 warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)376 │377 5 │ defmodule Nerves.BuildPlan.Checks do378 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~379 │380 └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)381382 warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.Container.beam)383 │384 6 │ defmodule Nerves.Container do385 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~386 │387 └─ lib/nerves/container.ex:6: Nerves.Container (module)388389 warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)390 │391 5 │ defmodule Nerves.Fingerprint do392 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~393 │394 └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)395396 warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)397 │398 5 │ defmodule Nerves.MixPackage do399 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~400 │401 └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)402403 warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.Paths.beam)404 │405 5 │ defmodule Nerves.Paths do406 │ ~~~~~~~~~~~~~~~~~~~~~~~~~407 │408 └─ lib/nerves/paths.ex:5: Nerves.Paths (module)409410 warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)411 │412 5 │ defmodule Nerves.TargetTuple do413 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~414 │415 └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)416417Generated nerves app418==> nerves_toolchain_armv6_nerves_linux_gnueabihf419Compiling 1 file (.ex)420Generated nerves_toolchain_armv6_nerves_linux_gnueabihf app421==> nerves_system_rpi0422Generated nerves_system_rpi0 app423==> nimble_parsec424Compiling 4 files (.ex)425Generated nimble_parsec app426==> makeup427Compiling 15 files (.ex)428Generated makeup app429==> makeup_elixir430Compiling 6 files (.ex)431Compiling lib/makeup/lexers/elixir_lexer.ex (it's taking more than 10s)432Generated makeup_elixir app433==> nerves_compatibility_test434===> Analyzing applications...435===> Compiling telemetry436==> expo437Compiling 2 files (.erl)438Compiling 22 files (.ex)439Generated expo app440==> gettext441Compiling 18 files (.ex)442 warning: unused require Gettext.Macros443 │444 594 │ require Gettext.Macros445 │ ~446 │447 └─ lib/gettext.ex:594:3448449 warning: the following clause is redundant:450451 defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)452453 it has type:454455 dynamic(%Expo.Message.Plural{})456457 previous clauses have already matched on the following types:458459 %Expo.Message.Singular{}460 %Expo.Message.Plural{}461462 │463 391 │ defp ensure_empty_msgstr!(%Message.Plural{} = message) do464 │ ~465 │466 └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1467468 warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead469 │470 426 │ Kernel.ParallelCompiler.async(fn ->471 │ ~472 │473 └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3474475Generated gettext app476==> phoenix_pubsub477Compiling 12 files (.ex)478Generated phoenix_pubsub app479==> plug480Compiling 1 file (.erl)481Compiling 42 files (.ex)482Generated plug app483==> phoenix_html484Compiling 9 files (.ex)485 warning: comparison between distinct types found:486487 id == nil488489 given types:490491 dynamic(not false and not nil and not binary()) == nil492493 where "id" was given the types:494495 # type: dynamic(not false and not nil)496 # from: lib/phoenix_html/form_data.ex:92:8497 id = Keyword.get(opts, :id) || name498499 # type: dynamic(not false and not nil and not binary())500 # from: lib/phoenix_html/form_data.ex:94:12501 is_binary(id)502503 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 false504505 type warning found at:506 │507 94 │ unless is_binary(id) or is_nil(id) do508 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~509 │510 └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2511512 warning: the 1st pattern in clause will never match:513514 60515516 because it is expected to receive type:517518 dynamic(empty_list() or non_empty_list(term(), term()))519520 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())521522 type warning found at:523 │524 56 │ def to_iodata(?<), do: "<"525 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~526 │527 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1528529 warning: the 1st pattern in clause will never match:530531 62532533 because it is expected to receive type:534535 dynamic(empty_list() or non_empty_list(term(), term()))536537 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())538539 type warning found at:540 │541 57 │ def to_iodata(?>), do: ">"542 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~543 │544 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1545546 warning: the 1st pattern in clause will never match:547548 38549550 because it is expected to receive type:551552 dynamic(empty_list() or non_empty_list(term(), term()))553554 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())555556 type warning found at:557 │558 58 │ def to_iodata(?&), do: "&"559 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~560 │561 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1562563 warning: the 1st pattern in clause will never match:564565 34566567 because it is expected to receive type:568569 dynamic(empty_list() or non_empty_list(term(), term()))570571 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())572573 type warning found at:574 │575 59 │ def to_iodata(?"), do: """576 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~577 │578 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1579580 warning: the 1st pattern in clause will never match:581582 39583584 because it is expected to receive type:585586 dynamic(empty_list() or non_empty_list(term(), term()))587588 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())589590 type warning found at:591 │592 60 │ def to_iodata(?'), do: "'"593 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~594 │595 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1596597 warning: the 1st pattern in clause will never match:598599 {:safe, data}600601 because it is expected to receive type:602603 dynamic(empty_list() or non_empty_list(term(), term()))604605 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())606607 type warning found at:608 │609 76 │ def to_iodata({:safe, data}) do610 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~611 │612 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1613614 warning: the following clause is redundant:615616 def to_iodata(other)617618 it has type:619620 dynamic(empty_list() or non_empty_list(term(), term()))621622 previous clauses have already matched on the following types:623624 non_empty_list(term(), term())625 empty_list()626627 │628 80 │ def to_iodata(other) do629 │ ~630 │631 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1632633 warning: the 1st pattern in clause will never match:634635 h636637 because it is expected to receive type:638639 dynamic(empty_list() or non_empty_list(term(), term()))640641 where "h" was given the type:642643 # type: integer()644 # from: lib/phoenix_html/safe.ex:62:25645 is_integer(h)646647 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())648649 type warning found at:650 │651 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do652 │ ~653 │654 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1655656 warning: the 1st pattern in clause will never match:657658 h659660 because it is expected to receive type:661662 dynamic(empty_list() or non_empty_list(term(), term()))663664 where "h" was given the type:665666 # type: integer()667 # from: lib/phoenix_html/safe.ex:66:25668 is_integer(h)669670 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())671672 type warning found at:673 │674 66 │ def to_iodata(h) when is_integer(h) do675 │ ~676 │677 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1678679 warning: the 1st pattern in clause will never match:680681 h682683 because it is expected to receive type:684685 dynamic(empty_list() or non_empty_list(term(), term()))686687 where "h" was given the type:688689 # type: binary()690 # from: lib/phoenix_html/safe.ex:72:25691 is_binary(h)692693 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())694695 type warning found at:696 │697 72 │ def to_iodata(h) when is_binary(h) do698 │ ~699 │700 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1701702Generated phoenix_html app703==> phoenix_template704Compiling 4 files (.ex)705Generated phoenix_template app706==> uboot_env707Compiling 5 files (.ex)708Generated uboot_env app709==> timex710Compiling 62 files (.ex)711 warning: default arguments in protocol definitions is deprecated712 │713 84 │ def compare(a, b, granularity \\ :microsecond)714 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~715 │716 └─ lib/comparable/comparable.ex:84: Timex.Comparable (module)717718 warning: default arguments in protocol definitions is deprecated719 │720 139 │ def diff(a, b, granularity \\ :microsecond)721 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~722 │723 └─ lib/comparable/comparable.ex:139: Timex.Comparable (module)724725 warning: protocols can only define functions without implementation via def/1, found: compare/2, diff/2726 │727 1 │ defprotocol Timex.Comparable do728 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~729 │730 └─ lib/comparable/comparable.ex:1: Timex.Comparable (module)731732 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 operator733 │734 317 │ <<abbrevs::bytes(len), rest::binary>> = data735 │ ~736 │737 └─ lib/parse/zoneinfo/parser.ex:317:22: Timex.Parse.ZoneInfo.Parser.parse_abbreviations/4738739 warning: default arguments in protocol definitions is deprecated740 │741 48 │ def to_datetime(datetime, timezone \\ :utc)742 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~743 │744 └─ lib/protocol.ex:48: Timex.Protocol (module)745746 warning: protocols can only define functions without implementation via def/1, found: to_datetime/1747 │748 1 │ defprotocol Timex.Protocol do749 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~750 │751 └─ lib/protocol.ex:1: Timex.Protocol (module)752753 warning: unused require Timex.Macros754 │755 5 │ require Timex.Macros756 │ ~757 │758 └─ lib/comparable/tuple.ex:5:3759760 warning: unused require Timex.Macros761 │762 5 │ require Timex.Macros763 │ ~764 │765 └─ lib/comparable/naivedatetime.ex:5:3766767 warning: unused require Bitwise768 │769 5 │ require Bitwise770 │ ~771 │772 └─ lib/calendar/julian.ex:5:3773774Compiling lib/l10n/gettext.ex (it's taking more than 10s)775 warning: the following clause will never match:776777 {ty, a, b} when ty === :gap or ty === :ambiguous ->778779 it is expected to match on type:780781 dynamic({:error, term()} and not {:ok, %{..., time_zone: term()}})782783 where "ty" was given the type:784785 # type: :ambiguous or :gap786 # from: lib/timezone/timezone.ex:548787 ty in [:gap, :ambiguous]788789 type warning found at:790 │791 548 │ {ty, a, b} when ty in [:gap, :ambiguous] ->792 │ ~793 │794 └─ lib/timezone/timezone.ex:548:7: Timex.Timezone.convert/2795796 warning: a struct for Timex.PosixTimezone is expected on struct update:797798 %Timex.PosixTimezone{rule | std_abbr: abbr}799800 but got type:801802 dynamic()803804 where "rule" was given the type:805806 # type: dynamic()807 # from: lib/parse/posix/parser.ex:119:33808 rule809810 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"811812 type warning found at:813 │814 121 │ parse_tz(:std_offset, rest, %TZ{rule | std_abbr: abbr})815 │ ~816 │817 └─ lib/parse/posix/parser.ex:121:35: Timex.Parse.Timezones.Posix.parse_tz/3818819 warning: a struct for Timex.PosixTimezone is expected on struct update:820821 %Timex.PosixTimezone{rule | std_offset: offset}822823 but got type:824825 dynamic()826827 where "rule" was given the type:828829 # type: dynamic()830 # from: lib/parse/posix/parser.ex:125:35831 rule832833 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"834835 type warning found at:836 │837 127 │ parse_tz(:dst_abbr, rest, %TZ{rule | std_offset: offset})838 │ ~839 │840 └─ lib/parse/posix/parser.ex:127:33: Timex.Parse.Timezones.Posix.parse_tz/3841842 warning: a struct for Timex.PosixTimezone is expected on struct update:843844 %Timex.PosixTimezone{rule | dst_abbr: abbr}845846 but got type:847848 dynamic()849850 where "rule" was given the type:851852 # type: dynamic()853 # from: lib/parse/posix/parser.ex:141:33854 rule855856 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"857858 type warning found at:859 │860 143 │ rule = %TZ{rule | dst_abbr: abbr} do861 │ ~862 │863 └─ lib/parse/posix/parser.ex:143:17: Timex.Parse.Timezones.Posix.parse_tz/3864865 warning: a struct for Timex.PosixTimezone is expected on struct update:866867 %Timex.PosixTimezone{rule | dst_offset: offset}868869 but got type:870871 dynamic()872873 where "rule" was given the type:874875 # type: dynamic()876 # from: lib/parse/posix/parser.ex:160:35877 rule878879 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"880881 type warning found at:882 │883 162 │ rule = %TZ{rule | dst_offset: offset} do884 │ ~885 │886 └─ lib/parse/posix/parser.ex:162:17: Timex.Parse.Timezones.Posix.parse_tz/3887888 warning: a struct for Timex.PosixTimezone is expected on struct update:889890 %Timex.PosixTimezone{rule | dst_start: dst_start, dst_end: dst_end}891892 but got type:893894 dynamic()895896 where "rule" was given the type:897898 # type: dynamic()899 # from: lib/parse/posix/parser.ex:185:36900 rule901902 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"903904 type warning found at:905 │906 190 │ {:ok, %TZ{rule | dst_start: dst_start, dst_end: dst_end}, rest}907 │ ~908 │909 └─ lib/parse/posix/parser.ex:190:17: Timex.Parse.Timezones.Posix.parse_tz/3910911 warning: the following clause will never match:912913 :error ->914915 it is expected to match on type:916917 dynamic({:error, :invalid_number, binary()})918919 type warning found at:920 │921 264 │ :error ->922 │ ~~~~~~~~~923 │924 └─ lib/parse/posix/parser.ex:264: Timex.Parse.Timezones.Posix.parse_month_week_day/3925926 warning: the following pattern will never match:927928 {y, m, d} <- to_erl_datetime(date)929930 because the right-hand side has type:931932 dynamic(933 {:error, :invalid_date} or934 {:ok, {{integer(), integer(), integer()}, {integer(), integer(), integer()}}}935 )936937 where "date" was given the type:938939 # type: dynamic({...})940 # from: lib/datetime/erlang.ex:7:17941 date942943 type warning found at:944 │945 8 │ with {y, m, d} <- to_erl_datetime(date),946 │ ~947 │948 └─ lib/datetime/erlang.ex:8:10: Timex.Protocol.Tuple.to_julian/1949950 warning: the following clause is redundant:951952 def shift(_, _)953954 it has type:955956 dynamic(%Date{}), dynamic()957958 previous clauses have already matched on the following types:959960 %Date{}, term()961962 │963 227 │ def shift(_, _), do: {:error, :badarg}964 │ ~965 │966 └─ lib/date/date.ex:227:7: Timex.Protocol.Date.shift/2967968 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:969970 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions, leaps: leaps}971972 but got type:973974 dynamic(%{..., leaps: term(), transitions: term()})975976 where "zone" was given the types:977978 # type: dynamic(%{..., rule: term()} or %{..., transitions: term()})979 # from: lib/parse/zoneinfo/parser.ex:156:28980 {:ok, zone, rest} <- parse_content(1, data, %Timex.Parse.ZoneInfo.Parser.Zone{..., version: 1})981982 # type: dynamic(%{..., transitions: term()})983 # from: lib/parse/zoneinfo/parser.ex:157:26984 Enum.sort_by(zone.transitions, fn tx -> tx.starts_at end)985986 # type: dynamic(%{..., leaps: term(), transitions: term()})987 # from: lib/parse/zoneinfo/parser.ex:158:20988 Enum.sort_by(zone.leaps, fn leap -> leap.epoch end)989990 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"991992 type warning found at:993 │994 159 │ {:ok, %Zone{zone | transitions: transitions, leaps: leaps}, rest}995 │ ~996 │997 └─ lib/parse/zoneinfo/parser.ex:159:13: Timex.Parse.ZoneInfo.Parser.parse_versioned_content/2998999 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:10001001 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: times}10021003 but got type:10041005 dynamic()10061007 where "zone" was given the type:10081009 # type: dynamic()1010 # from: lib/parse/zoneinfo/parser.ex:270:921011 zone10121013 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"10141015 type warning found at:1016 │1017 272 │ parse_transition_info(version, rest, header, %Zone{zone | transitions: times})1018 │ ~1019 │1020 └─ lib/parse/zoneinfo/parser.ex:272:50: Timex.Parse.ZoneInfo.Parser.parse_transition_times/410211022 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:10231024 %Timex.Parse.ZoneInfo.Parser.Zone{zone | leaps: leaps}10251026 but got type:10271028 dynamic()10291030 where "zone" was given the type:10311032 # type: dynamic()1033 # from: lib/parse/zoneinfo/parser.ex:330:791034 zone10351036 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"10371038 type warning found at:1039 │1040 344 │ parse_flags(version, rest, header, %Zone{zone | leaps: leaps})1041 │ ~1042 │1043 └─ lib/parse/zoneinfo/parser.ex:344:40: Timex.Parse.ZoneInfo.Parser.parse_leap_seconds/410441045 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:10461047 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions}10481049 but got type:10501051 dynamic(%{..., transitions: term()})10521053 where "zone" was given the type:10541055 # type: dynamic(%{..., transitions: term()})1056 # from: lib/parse/zoneinfo/parser.ex:354:151057 Enum.with_index(zone.transitions)10581059 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"10601061 type warning found at:1062 │1063 362 │ parse_posixtz_string(version, rest, %Zone{zone | transitions: transitions})1064 │ ~1065 │1066 └─ lib/parse/zoneinfo/parser.ex:362:43: Timex.Parse.ZoneInfo.Parser.parse_flags/410671068 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:10691070 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions}10711072 but got type:10731074 dynamic(%{..., transitions: term()})10751076 where "zone" was given the type:10771078 # type: dynamic(%{..., transitions: term()})1079 # from: lib/parse/zoneinfo/parser.ex:354:151080 Enum.with_index(zone.transitions)10811082 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"10831084 type warning found at:1085 │1086 364 │ {:ok, %Zone{zone | transitions: transitions}, rest}1087 │ ~1088 │1089 └─ lib/parse/zoneinfo/parser.ex:364:13: Timex.Parse.ZoneInfo.Parser.parse_flags/410901091 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:10921093 %Timex.Parse.ZoneInfo.Parser.Zone{zone | rule: rule}10941095 but got type:10961097 dynamic()10981099 where "zone" was given the type:11001101 # type: dynamic()1102 # from: lib/parse/zoneinfo/parser.ex:369:621103 zone11041105 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"11061107 type warning found at:1108 │1109 372 │ {:ok, %Zone{zone | rule: rule}, format_rest <> rest}1110 │ ~1111 │1112 └─ lib/parse/zoneinfo/parser.ex:372:13: Timex.Parse.ZoneInfo.Parser.parse_posixtz_string/311131114 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:11151116 %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_abbr: abbr, dst_abbr: abbr}11171118 but got type:11191120 dynamic()11211122 where "rule" was given the type:11231124 # type: dynamic()1125 # from: lib/parse/zoneinfo/parser.ex:383:331126 rule11271128 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"11291130 type warning found at:1131 │1132 385 │ parse_tz(:std_offset, rest, %Rule{rule | std_abbr: abbr, dst_abbr: abbr})1133 │ ~1134 │1135 └─ lib/parse/zoneinfo/parser.ex:385:35: Timex.Parse.ZoneInfo.Parser.parse_tz/311361137 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:11381139 %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_offset: offset, dst_offset: offset}11401141 but got type:11421143 dynamic()11441145 where "rule" was given the type:11461147 # type: dynamic()1148 # from: lib/parse/zoneinfo/parser.ex:389:351149 rule11501151 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"11521153 type warning found at:1154 │1155 391 │ parse_tz(:dst_abbr, rest, %Rule{rule | std_offset: offset, dst_offset: offset})1156 │ ~1157 │1158 └─ lib/parse/zoneinfo/parser.ex:391:33: Timex.Parse.ZoneInfo.Parser.parse_tz/311591160 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:11611162 %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_abbr: abbr}11631164 but got type:11651166 dynamic()11671168 where "rule" was given the type:11691170 # type: dynamic()1171 # from: lib/parse/zoneinfo/parser.ex:405:331172 rule11731174 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"11751176 type warning found at:1177 │1178 407 │ rule = %Rule{rule | dst_abbr: abbr} do1179 │ ~1180 │1181 └─ lib/parse/zoneinfo/parser.ex:407:17: Timex.Parse.ZoneInfo.Parser.parse_tz/311821183 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:11841185 %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_offset: offset}11861187 but got type:11881189 dynamic()11901191 where "rule" was given the type:11921193 # type: dynamic()1194 # from: lib/parse/zoneinfo/parser.ex:424:351195 rule11961197 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"11981199 type warning found at:1200 │1201 426 │ rule = %Rule{rule | dst_offset: offset} do1202 │ ~1203 │1204 └─ lib/parse/zoneinfo/parser.ex:426:17: Timex.Parse.ZoneInfo.Parser.parse_tz/312051206 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:12071208 %Timex.Parse.ZoneInfo.Parser.Rule{rule | start_time: start_time, end_time: end_time}12091210 but got type:12111212 dynamic()12131214 where "rule" was given the type:12151216 # type: dynamic()1217 # from: lib/parse/zoneinfo/parser.ex:449:361218 rule12191220 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"12211222 type warning found at:1223 │1224 454 │ {:ok, %Rule{rule | start_time: start_time, end_time: end_time}, rest}1225 │ ~1226 │1227 └─ lib/parse/zoneinfo/parser.ex:454:17: Timex.Parse.ZoneInfo.Parser.parse_tz/312281229 warning: the following clause will never match:12301231 :error ->12321233 it is expected to match on type:12341235 dynamic({:error, :invalid_number, binary()})12361237 type warning found at:1238 │1239 528 │ :error ->1240 │ ~~~~~~~~~1241 │1242 └─ lib/parse/zoneinfo/parser.ex:528: Timex.Parse.ZoneInfo.Parser.parse_month_week_day/312431244Generated timex app1245==> property_table1246Compiling 8 files (.ex)1247Generated property_table app1248==> nerves_uevent1249 CC uevent.o1250 LD uevent1251Compiling 5 files (.ex)1252Generated nerves_uevent app1253==> nerves_runtime1254Compiling 14 files (.ex)1255Generated nerves_runtime app1256==> toolshed1257Compiling 5 files (.ex)1258Generated toolshed app1259==> tailwind1260Compiling 3 files (.ex)1261Generated tailwind app1262==> websock1263Compiling 1 file (.ex)1264Generated websock app1265==> websock_adapter1266Compiling 4 files (.ex)1267Generated websock_adapter app1268warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1269 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21270 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11271 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51272 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21273 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41274 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/212751276==> phoenix1277Compiling 71 files (.ex)1278 warning: unused require Logger1279 │1280 9 │ require Logger1281 │ ~1282 │1283 └─ lib/phoenix/config.ex:9:312841285 warning: unused require Logger1286 │1287 281 │ require Logger1288 │ ~1289 │1290 └─ lib/phoenix/endpoint.ex:281:312911292 warning: unused require Phoenix.Endpoint1293 │1294 6 │ require Phoenix.Endpoint1295 │ ~1296 │1297 └─ lib/phoenix/controller.ex:6:312981299 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 operator1300 │1301 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1302 │ ~1303 │1304 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/213051306 warning: unused require Phoenix.Endpoint1307 │1308 17 │ require Phoenix.Endpoint1309 │ ~1310 │1311 └─ lib/phoenix/endpoint/render_errors.ex:17:313121313 warning: unused require Phoenix.Endpoint1314 │1315 202 │ require Phoenix.Endpoint1316 │ ~1317 │1318 └─ lib/phoenix/socket.ex:202:313191320 warning: unused require Phoenix.Endpoint1321 │1322 6 │ require Phoenix.Endpoint1323 │ ~1324 │1325 └─ lib/phoenix/channel/server.ex:6:313261327 warning: unused require Logger1328 │1329 70 │ require Logger1330 │ ~1331 │1332 └─ lib/phoenix/socket/pool_supervisor.ex:70:313331334 warning: unused require Logger1335 │1336 100 │ require Logger1337 │ ~1338 │1339 └─ lib/phoenix/token.ex:100:313401341 warning: comparison between distinct types found:13421343 merge_all != []13441345 given types:13461347 dynamic(non_empty_list({atom(), term()})) != empty_list()13481349 where "merge_all" was given the type:13501351 # type: dynamic(non_empty_list({atom(), term()}))1352 # from: lib/phoenix/router/route.ex:121:151353 merge_all = merge_params ++ merge_private ++ merge_assigns13541355 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 false13561357 type warning found at:1358 │1359 123 │ if merge_all != [] do1360 │ ~1361 │1362 └─ lib/phoenix/router/route.ex:123:18: Phoenix.Router.Route.build_prepare/113631364 warning: a struct for Plug.Conn is expected on struct update:13651366 %Plug.Conn{conn | state: :sent}13671368 but got type:13691370 dynamic()13711372 where "conn" was given the type:13731374 # type: dynamic()1375 # from: lib/phoenix/endpoint/render_errors.ex:55:171376 conn13771378 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"13791380 type warning found at:1381 │1382 60 │ %Plug.Conn{conn | state: :sent}1383 │ ~1384 │1385 └─ lib/phoenix/endpoint/render_errors.ex:60:11: Phoenix.Endpoint.RenderErrors.__catch__/513861387 warning: a struct for Plug.Conn is expected on struct update:13881389 %Plug.Conn{conn | query_params: %{}, params: %{}}13901391 but got type:13921393 dynamic(%{..., params: %Plug.Conn.Unfetched{}})13941395 where "conn" was given the types:13961397 # type: dynamic(%{..., params: term()})1398 # from: lib/phoenix/endpoint/render_errors.ex:133:171399 conn.params14001401 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1402 # from: lib/phoenix/endpoint/render_errors.ex:133:171403 conn.params14041405 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"14061407 type warning found at:1408 │1409 134 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1410 │ ~1411 │1412 └─ lib/phoenix/endpoint/render_errors.ex:134:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/114131414 warning: a struct for Plug.Conn is expected on struct update:14151416 %Plug.Conn{conn | query_params: %{}, params: params}14171418 but got type:14191420 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})14211422 where "conn" was given the types:14231424 # type: dynamic(%{..., params: term()})1425 # from: lib/phoenix/endpoint/render_errors.ex:133:171426 conn.params14271428 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1429 # from: lib/phoenix/endpoint/render_errors.ex:133:171430 conn.params14311432 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"14331434 type warning found at:1435 │1436 135 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}1437 │ ~1438 │1439 └─ lib/phoenix/endpoint/render_errors.ex:135:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/114401441 warning: a struct for Plug.Conn is expected on struct update:14421443 %Plug.Conn{conn | params: params}14441445 but got type:14461447 dynamic(%{..., params: map()})14481449 where "conn" was given the type:14501451 # type: dynamic(%{..., params: map()})1452 # from: lib/phoenix/controller.ex:1327:171453 Map.get(conn.params, required_key)14541455 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"14561457 type warning found at:1458 │1459 1334 │ %Plug.Conn{conn | params: params}1460 │ ~1461 │1462 └─ lib/phoenix/controller.ex:1334:5: Phoenix.Controller.scrub_params/214631464Generated phoenix app1465warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1466 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21467 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11468 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51469 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21470 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41471 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/214721473==> phoenix_live_view1474Compiling 39 files (.ex)1475 warning: unused require Logger1476 │1477 48 │ require Logger1478 │ ~1479 │1480 └─ lib/phoenix_live_view/socket.ex:48:314811482 warning: unused require Phoenix.ChannelTest1483 │1484 183 │ require Phoenix.ChannelTest1485 │ ~1486 │1487 └─ lib/phoenix_live_view/test/live_view_test.ex:183:314881489 warning: unused require Phoenix.ConnTest1490 │1491 182 │ require Phoenix.ConnTest1492 │ ~1493 │1494 └─ lib/phoenix_live_view/test/live_view_test.ex:182:314951496 warning: unused require Phoenix.ChannelTest1497 │1498 5 │ require Phoenix.ChannelTest1499 │ ~1500 │1501 └─ lib/phoenix_live_view/test/upload_client.ex:5:315021503 warning: unused require Logger1504 │1505 6 │ require Logger1506 │ ~1507 │1508 └─ lib/phoenix_live_view/upload_channel.ex:6:315091510 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:15111512 %Phoenix.LiveView.Socket{1513 socket1514 | assigns: Map.merge(temp_assigns, socket.assigns),1515 private:1516 Map.update(1517 socket.private,1518 :temporary_assigns,1519 temp_assigns,1520 &Map.merge(&1, temp_assigns)1521 )1522 }15231524 but got type:15251526 dynamic()15271528 where "socket" was given the type:15291530 # type: dynamic()1531 # from: lib/phoenix_live_view/utils.ex:415:281532 socket15331534 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"15351536 type warning found at:1537 │1538 422 │ %Socket{1539 │ ~1540 │1541 └─ lib/phoenix_live_view/utils.ex:422:5: Phoenix.LiveView.Utils.handle_mount_option/315421543 warning: the following clause will never match:15441545 {:error, reason} ->15461547 because it attempts to match on the result of:15481549 IO.binwrite(state.file, data)15501551 which has type:15521553 dynamic(not {:error, term()})15541555 type warning found at:1556 │1557 23 │ {:error, reason} -> {:error, reason, state}1558 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1559 │1560 └─ lib/phoenix_live_view/upload_tmp_file_writer.ex:23: Phoenix.LiveView.UploadTmpFileWriter.write_chunk/215611562 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:15631564 %Phoenix.LiveView.UploadEntry{1565 entry1566 | preflighted?: entry.preflighted? || Enum.__in__(entry.ref, refs)1567 }15681569 but got type:15701571 dynamic()15721573 where "entry" was given the type:15741575 # type: dynamic()1576 # from: lib/phoenix_live_view/upload_config.ex:362:171577 entry <- conf.entries15781579 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"15801581 type warning found at:1582 │1583 363 │ %UploadEntry{entry | preflighted?: entry.preflighted? || entry.ref in refs}1584 │ ~1585 │1586 └─ lib/phoenix_live_view/upload_config.ex:363:9: Phoenix.LiveView.UploadConfig.mark_preflighted/215871588 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:15891590 %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}15911592 but got type:15931594 dynamic()15951596 where "entry" was given the type:15971598 # type: dynamic()1599 # from: lib/phoenix_live_view/upload_config.ex:572:301600 entry16011602 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"16031604 type warning found at:1605 │1606 573 │ entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}1607 │ ~1608 │1609 └─ lib/phoenix_live_view/upload_config.ex:573:13: Phoenix.LiveView.UploadConfig.put_valid_entry/216101611 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:16121613 %Phoenix.LiveView.UploadEntry{entry | valid?: false}16141615 but got type:16161617 dynamic()16181619 where "entry" was given the type:16201621 # type: dynamic()1622 # from: lib/phoenix_live_view/upload_config.ex:585:321623 entry16241625 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"16261627 type warning found at:1628 │1629 586 │ entry = %UploadEntry{entry | valid?: false}1630 │ ~1631 │1632 └─ lib/phoenix_live_view/upload_config.ex:586:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/316331634 warning: the following clause is redundant:16351636 def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)16371638 it has type:16391640 dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))16411642 previous clauses have already matched on the following types:16431644 %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())1645 %Phoenix.LiveView.Socket{}, term(), (none() -> term())1646 term(), term(), (none(), none() -> term())1647 term(), term(), (none() -> term())16481649 │1650 1378 │ def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do1651 │ ~1652 │1653 └─ lib/phoenix_component.ex:1378:7: Phoenix.Component.update/316541655 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:16561657 %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}16581659 but got type:16601661 dynamic()16621663 where "entry" was given the type:16641665 # type: dynamic()1666 # from: lib/phoenix_live_view/upload_config.ex:669:421667 entry16681669 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"16701671 type warning found at:1672 │1673 669 │ update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)1674 │ ~1675 │1676 └─ lib/phoenix_live_view/upload_config.ex:669:51: Phoenix.LiveView.UploadConfig.cancel_entry/216771678 warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead1679 │1680 73 │ Logger.disable(self())1681 │ ~1682 │1683 └─ lib/phoenix_live_view/test/client_proxy.ex:73:12: Phoenix.LiveViewTest.ClientProxy.init/116841685 warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:16861687 %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}16881689 but got type:16901691 dynamic(%{..., rendered: map()})16921693 where "view" was given the type:16941695 # type: dynamic(%{..., rendered: map()})1696 # from: lib/phoenix_live_view/test/client_proxy.ex:727:261697 Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)16981699 when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"17001701 type warning found at:1702 │1703 728 │ new_view = %ClientProxy{view | rendered: rendered}1704 │ ~1705 │1706 └─ lib/phoenix_live_view/test/client_proxy.ex:728:22: Phoenix.LiveViewTest.ClientProxy.merge_rendered/317071708 warning: the right-hand side of || (shown as ... below) will never be executed:17091710 conn.private[:live_view_connect_info] || prune_conn(conn) || ...17111712 because the left-hand side always evaluates to:17131714 dynamic(not false and not nil)17151716 where "conn" was given the types:17171718 # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})1719 # from: lib/phoenix_live_view/test/live_view_test.ex:319:721720 %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn17211722 # type: dynamic(%Plug.Conn{1723 assigns: %{..., live_module: term()},1724 private:1725 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1726 non_struct_map(),1727 status: integer()1728 })1729 # from: lib/phoenix_live_view/test/live_view_test.ex:333:351730 conn.private[:live_view_connect_params]17311732 type warning found at:1733 │1734 334 │ connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},1735 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1736 │1737 └─ lib/phoenix_live_view/test/live_view_test.ex:334: Phoenix.LiveViewTest.connect_from_static_token/217381739 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:17401741 %Phoenix.LiveView.Socket{1742 socket1743 | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}1744 }17451746 but got type:17471748 dynamic(%{..., assigns: term()})17491750 where "socket" was given the type:17511752 # type: dynamic(%{..., assigns: term()})1753 # from: lib/phoenix_live_view/renderer.ex:121:431754 %{assigns: assigns} = socket17551756 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"17571758 type warning found at:1759 │1760 122 │ socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}1761 │ ~1762 │1763 └─ lib/phoenix_live_view/renderer.ex:122:14: Phoenix.LiveView.Renderer.render_assigns/117641765 warning: the following pattern will never match:17661767 template = Phoenix.LiveView.Utils.normalize_layout(template)17681769 because the right-hand side has type:17701771 none()17721773 where "template" was given the types:17741775 # type: binary()1776 # from: lib/phoenix_live_view/router.ex:299:661777 is_binary(template)17781779 # type: binary()1780 # from: lib/phoenix_live_view/router.ex1781 {:root_layout, {mod, template}}17821783 type warning found at:1784 │1785 300 │ template = Phoenix.LiveView.Utils.normalize_layout(template)1786 │ ~1787 │1788 └─ lib/phoenix_live_view/router.ex:300:18: Phoenix.LiveView.Router.validate_live_session_opts/317891790 warning: the following pattern will never match:17911792 template = Phoenix.LiveView.Utils.normalize_layout(template)17931794 because the right-hand side has type:17951796 none()17971798 where "template" was given the types:17991800 # type: binary()1801 # from: lib/phoenix_live_view/router.ex:316:611802 is_binary(template)18031804 # type: binary()1805 # from: lib/phoenix_live_view/router.ex1806 {:layout, {mod, template}}18071808 type warning found at:1809 │1810 317 │ template = Phoenix.LiveView.Utils.normalize_layout(template)1811 │ ~1812 │1813 └─ lib/phoenix_live_view/router.ex:317:18: Phoenix.LiveView.Router.validate_live_session_opts/318141815 warning: the following clause is redundant:18161817 def to_iodata(%_{} = struct)18181819 it has type:18201821 dynamic(%Phoenix.LiveView.Rendered{})18221823 previous clauses have already matched on the following types:18241825 %Phoenix.LiveView.Rendered{}18261827 │1828 152 │ def to_iodata(%_{} = struct) do1829 │ ~1830 │1831 └─ lib/phoenix_live_view/engine.ex:152:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/118321833 warning: the 1st pattern in clause will never match:18341835 nil18361837 because it is expected to receive type:18381839 dynamic(%Phoenix.LiveView.Rendered{})18401841 hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}18421843 type warning found at:1844 │1845 156 │ def to_iodata(nil) do1846 │ ~~~~~~~~~~~~~~~~~~~~~1847 │1848 └─ lib/phoenix_live_view/engine.ex:156: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/118491850 warning: the following clause is redundant:18511852 def to_iodata(other)18531854 it has type:18551856 dynamic(%Phoenix.LiveView.Rendered{})18571858 previous clauses have already matched on the following types:18591860 %Phoenix.LiveView.Rendered{}18611862 │1863 160 │ def to_iodata(other) do1864 │ ~1865 │1866 └─ lib/phoenix_live_view/engine.ex:160:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/118671868 warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)1869 │1870 903 │ defp class_names(nil), do: []1871 │ ~1872 │1873 └─ lib/phoenix_live_view/js.ex:903:8: Phoenix.LiveView.JS.class_names/118741875Generated phoenix_live_view app1876warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1877 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21878 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11879 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51880 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21881 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41882 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/218831884==> heroicons1885Compiling 3 files (.ex)1886Generated heroicons app1887==> paleta1888Compiling 67 files (.ex)1889 error: undefined function live_component/2 (expected Paleta.Components.AppHeader to define such a function or for it to be imported, but none are available)1890 │1891 56 │ <%= live_component(Paleta.Components.Live.GlobalSearch,1892 │ ^^^^^^^^^^^^^^1893 │1894 └─ lib/components/app_header.ex:56:17: Paleta.Components.AppHeader."app_header (overridable 1)"/1189518961897== Compilation error in file lib/components/app_header.ex ==1898** (CompileError) lib/components/app_header.ex: cannot compile module Paleta.Components.AppHeader (errors have been logged)18991900could not compile dependency :paleta, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile paleta --force", update it with "mix deps.update paleta" or clean it with "mix deps.clean paleta"