Build log
nerves_system_trellis
paleta 0.1.0 · fail · run paleta-0.1.0-1791031886408
1901 of 1901 lines
1Resolving Hex dependencies...2Resolution completed in 0.252s3Unchanged: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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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/trellis/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_armv7_nerves_linux_gnueabihf419Compiling 1 file (.ex)420Generated nerves_toolchain_armv7_nerves_linux_gnueabihf app421==> nerves_system_trellis422Generated nerves_system_trellis 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/variables.ex (it's taking more than 10s)432Compiling lib/makeup/lexers/elixir_lexer.ex (it's taking more than 10s)433Generated makeup_elixir app434==> nerves_compatibility_test435===> Analyzing applications...436===> Compiling telemetry437==> expo438Compiling 2 files (.erl)439Compiling 22 files (.ex)440Generated expo app441==> gettext442Compiling 18 files (.ex)443 warning: unused require Gettext.Macros444 │445 594 │ require Gettext.Macros446 │ ~447 │448 └─ lib/gettext.ex:594:3449450 warning: the following clause is redundant:451452 defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)453454 it has type:455456 dynamic(%Expo.Message.Plural{})457458 previous clauses have already matched on the following types:459460 %Expo.Message.Singular{}461 %Expo.Message.Plural{}462463 │464 391 │ defp ensure_empty_msgstr!(%Message.Plural{} = message) do465 │ ~466 │467 └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1468469 warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead470 │471 426 │ Kernel.ParallelCompiler.async(fn ->472 │ ~473 │474 └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3475476Generated gettext app477==> phoenix_pubsub478Compiling 12 files (.ex)479Generated phoenix_pubsub app480==> plug481Compiling 1 file (.erl)482Compiling 42 files (.ex)483Generated plug app484==> phoenix_html485Compiling 9 files (.ex)486 warning: comparison between distinct types found:487488 id == nil489490 given types:491492 dynamic(not false and not nil and not binary()) == nil493494 where "id" was given the types:495496 # type: dynamic(not false and not nil)497 # from: lib/phoenix_html/form_data.ex:92:8498 id = Keyword.get(opts, :id) || name499500 # type: dynamic(not false and not nil and not binary())501 # from: lib/phoenix_html/form_data.ex:94:12502 is_binary(id)503504 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 false505506 type warning found at:507 │508 94 │ unless is_binary(id) or is_nil(id) do509 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~510 │511 └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2512513 warning: the 1st pattern in clause will never match:514515 60516517 because it is expected to receive type:518519 dynamic(empty_list() or non_empty_list(term(), term()))520521 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())522523 type warning found at:524 │525 56 │ def to_iodata(?<), do: "<"526 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~527 │528 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1529530 warning: the 1st pattern in clause will never match:531532 62533534 because it is expected to receive type:535536 dynamic(empty_list() or non_empty_list(term(), term()))537538 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())539540 type warning found at:541 │542 57 │ def to_iodata(?>), do: ">"543 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~544 │545 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1546547 warning: the 1st pattern in clause will never match:548549 38550551 because it is expected to receive type:552553 dynamic(empty_list() or non_empty_list(term(), term()))554555 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())556557 type warning found at:558 │559 58 │ def to_iodata(?&), do: "&"560 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~561 │562 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1563564 warning: the 1st pattern in clause will never match:565566 34567568 because it is expected to receive type:569570 dynamic(empty_list() or non_empty_list(term(), term()))571572 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())573574 type warning found at:575 │576 59 │ def to_iodata(?"), do: """577 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~578 │579 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1580581 warning: the 1st pattern in clause will never match:582583 39584585 because it is expected to receive type:586587 dynamic(empty_list() or non_empty_list(term(), term()))588589 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())590591 type warning found at:592 │593 60 │ def to_iodata(?'), do: "'"594 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~595 │596 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1597598 warning: the 1st pattern in clause will never match:599600 {:safe, data}601602 because it is expected to receive type:603604 dynamic(empty_list() or non_empty_list(term(), term()))605606 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())607608 type warning found at:609 │610 76 │ def to_iodata({:safe, data}) do611 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~612 │613 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1614615 warning: the following clause is redundant:616617 def to_iodata(other)618619 it has type:620621 dynamic(empty_list() or non_empty_list(term(), term()))622623 previous clauses have already matched on the following types:624625 non_empty_list(term(), term())626 empty_list()627628 │629 80 │ def to_iodata(other) do630 │ ~631 │632 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1633634 warning: the 1st pattern in clause will never match:635636 h637638 because it is expected to receive type:639640 dynamic(empty_list() or non_empty_list(term(), term()))641642 where "h" was given the type:643644 # type: integer()645 # from: lib/phoenix_html/safe.ex:62:25646 is_integer(h)647648 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())649650 type warning found at:651 │652 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do653 │ ~654 │655 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1656657 warning: the 1st pattern in clause will never match:658659 h660661 because it is expected to receive type:662663 dynamic(empty_list() or non_empty_list(term(), term()))664665 where "h" was given the type:666667 # type: integer()668 # from: lib/phoenix_html/safe.ex:66:25669 is_integer(h)670671 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())672673 type warning found at:674 │675 66 │ def to_iodata(h) when is_integer(h) do676 │ ~677 │678 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1679680 warning: the 1st pattern in clause will never match:681682 h683684 because it is expected to receive type:685686 dynamic(empty_list() or non_empty_list(term(), term()))687688 where "h" was given the type:689690 # type: binary()691 # from: lib/phoenix_html/safe.ex:72:25692 is_binary(h)693694 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())695696 type warning found at:697 │698 72 │ def to_iodata(h) when is_binary(h) do699 │ ~700 │701 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1702703Generated phoenix_html app704==> phoenix_template705Compiling 4 files (.ex)706Generated phoenix_template app707==> uboot_env708Compiling 5 files (.ex)709Generated uboot_env app710==> timex711Compiling 62 files (.ex)712 warning: default arguments in protocol definitions is deprecated713 │714 84 │ def compare(a, b, granularity \\ :microsecond)715 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~716 │717 └─ lib/comparable/comparable.ex:84: Timex.Comparable (module)718719 warning: default arguments in protocol definitions is deprecated720 │721 139 │ def diff(a, b, granularity \\ :microsecond)722 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~723 │724 └─ lib/comparable/comparable.ex:139: Timex.Comparable (module)725726 warning: protocols can only define functions without implementation via def/1, found: compare/2, diff/2727 │728 1 │ defprotocol Timex.Comparable do729 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~730 │731 └─ lib/comparable/comparable.ex:1: Timex.Comparable (module)732733 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 operator734 │735 317 │ <<abbrevs::bytes(len), rest::binary>> = data736 │ ~737 │738 └─ lib/parse/zoneinfo/parser.ex:317:22: Timex.Parse.ZoneInfo.Parser.parse_abbreviations/4739740 warning: default arguments in protocol definitions is deprecated741 │742 48 │ def to_datetime(datetime, timezone \\ :utc)743 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~744 │745 └─ lib/protocol.ex:48: Timex.Protocol (module)746747 warning: protocols can only define functions without implementation via def/1, found: to_datetime/1748 │749 1 │ defprotocol Timex.Protocol do750 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~751 │752 └─ lib/protocol.ex:1: Timex.Protocol (module)753754 warning: unused require Timex.Macros755 │756 5 │ require Timex.Macros757 │ ~758 │759 └─ lib/comparable/tuple.ex:5:3760761 warning: unused require Timex.Macros762 │763 5 │ require Timex.Macros764 │ ~765 │766 └─ lib/comparable/naivedatetime.ex:5:3767768 warning: unused require Bitwise769 │770 5 │ require Bitwise771 │ ~772 │773 └─ lib/calendar/julian.ex:5:3774775Compiling lib/l10n/gettext.ex (it's taking more than 10s)776 warning: the following clause will never match:777778 {ty, a, b} when ty === :gap or ty === :ambiguous ->779780 it is expected to match on type:781782 dynamic({:error, term()} and not {:ok, %{..., time_zone: term()}})783784 where "ty" was given the type:785786 # type: :ambiguous or :gap787 # from: lib/timezone/timezone.ex:548788 ty in [:gap, :ambiguous]789790 type warning found at:791 │792 548 │ {ty, a, b} when ty in [:gap, :ambiguous] ->793 │ ~794 │795 └─ lib/timezone/timezone.ex:548:7: Timex.Timezone.convert/2796797 warning: a struct for Timex.PosixTimezone is expected on struct update:798799 %Timex.PosixTimezone{rule | std_abbr: abbr}800801 but got type:802803 dynamic()804805 where "rule" was given the type:806807 # type: dynamic()808 # from: lib/parse/posix/parser.ex:119:33809 rule810811 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"812813 type warning found at:814 │815 121 │ parse_tz(:std_offset, rest, %TZ{rule | std_abbr: abbr})816 │ ~817 │818 └─ lib/parse/posix/parser.ex:121:35: Timex.Parse.Timezones.Posix.parse_tz/3819820 warning: a struct for Timex.PosixTimezone is expected on struct update:821822 %Timex.PosixTimezone{rule | std_offset: offset}823824 but got type:825826 dynamic()827828 where "rule" was given the type:829830 # type: dynamic()831 # from: lib/parse/posix/parser.ex:125:35832 rule833834 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"835836 type warning found at:837 │838 127 │ parse_tz(:dst_abbr, rest, %TZ{rule | std_offset: offset})839 │ ~840 │841 └─ lib/parse/posix/parser.ex:127:33: Timex.Parse.Timezones.Posix.parse_tz/3842843 warning: a struct for Timex.PosixTimezone is expected on struct update:844845 %Timex.PosixTimezone{rule | dst_abbr: abbr}846847 but got type:848849 dynamic()850851 where "rule" was given the type:852853 # type: dynamic()854 # from: lib/parse/posix/parser.ex:141:33855 rule856857 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"858859 type warning found at:860 │861 143 │ rule = %TZ{rule | dst_abbr: abbr} do862 │ ~863 │864 └─ lib/parse/posix/parser.ex:143:17: Timex.Parse.Timezones.Posix.parse_tz/3865866 warning: a struct for Timex.PosixTimezone is expected on struct update:867868 %Timex.PosixTimezone{rule | dst_offset: offset}869870 but got type:871872 dynamic()873874 where "rule" was given the type:875876 # type: dynamic()877 # from: lib/parse/posix/parser.ex:160:35878 rule879880 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"881882 type warning found at:883 │884 162 │ rule = %TZ{rule | dst_offset: offset} do885 │ ~886 │887 └─ lib/parse/posix/parser.ex:162:17: Timex.Parse.Timezones.Posix.parse_tz/3888889 warning: a struct for Timex.PosixTimezone is expected on struct update:890891 %Timex.PosixTimezone{rule | dst_start: dst_start, dst_end: dst_end}892893 but got type:894895 dynamic()896897 where "rule" was given the type:898899 # type: dynamic()900 # from: lib/parse/posix/parser.ex:185:36901 rule902903 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"904905 type warning found at:906 │907 190 │ {:ok, %TZ{rule | dst_start: dst_start, dst_end: dst_end}, rest}908 │ ~909 │910 └─ lib/parse/posix/parser.ex:190:17: Timex.Parse.Timezones.Posix.parse_tz/3911912 warning: the following clause will never match:913914 :error ->915916 it is expected to match on type:917918 dynamic({:error, :invalid_number, binary()})919920 type warning found at:921 │922 264 │ :error ->923 │ ~~~~~~~~~924 │925 └─ lib/parse/posix/parser.ex:264: Timex.Parse.Timezones.Posix.parse_month_week_day/3926927 warning: the following pattern will never match:928929 {y, m, d} <- to_erl_datetime(date)930931 because the right-hand side has type:932933 dynamic(934 {:error, :invalid_date} or935 {:ok, {{integer(), integer(), integer()}, {integer(), integer(), integer()}}}936 )937938 where "date" was given the type:939940 # type: dynamic({...})941 # from: lib/datetime/erlang.ex:7:17942 date943944 type warning found at:945 │946 8 │ with {y, m, d} <- to_erl_datetime(date),947 │ ~948 │949 └─ lib/datetime/erlang.ex:8:10: Timex.Protocol.Tuple.to_julian/1950951 warning: the following clause is redundant:952953 def shift(_, _)954955 it has type:956957 dynamic(%Date{}), dynamic()958959 previous clauses have already matched on the following types:960961 %Date{}, term()962963 │964 227 │ def shift(_, _), do: {:error, :badarg}965 │ ~966 │967 └─ lib/date/date.ex:227:7: Timex.Protocol.Date.shift/2968969 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:970971 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions, leaps: leaps}972973 but got type:974975 dynamic(%{..., leaps: term(), transitions: term()})976977 where "zone" was given the types:978979 # type: dynamic(%{..., rule: term()} or %{..., transitions: term()})980 # from: lib/parse/zoneinfo/parser.ex:156:28981 {:ok, zone, rest} <- parse_content(1, data, %Timex.Parse.ZoneInfo.Parser.Zone{..., version: 1})982983 # type: dynamic(%{..., transitions: term()})984 # from: lib/parse/zoneinfo/parser.ex:157:26985 Enum.sort_by(zone.transitions, fn tx -> tx.starts_at end)986987 # type: dynamic(%{..., leaps: term(), transitions: term()})988 # from: lib/parse/zoneinfo/parser.ex:158:20989 Enum.sort_by(zone.leaps, fn leap -> leap.epoch end)990991 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"992993 type warning found at:994 │995 159 │ {:ok, %Zone{zone | transitions: transitions, leaps: leaps}, rest}996 │ ~997 │998 └─ lib/parse/zoneinfo/parser.ex:159:13: Timex.Parse.ZoneInfo.Parser.parse_versioned_content/29991000 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:10011002 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: times}10031004 but got type:10051006 dynamic()10071008 where "zone" was given the type:10091010 # type: dynamic()1011 # from: lib/parse/zoneinfo/parser.ex:270:921012 zone10131014 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"10151016 type warning found at:1017 │1018 272 │ parse_transition_info(version, rest, header, %Zone{zone | transitions: times})1019 │ ~1020 │1021 └─ lib/parse/zoneinfo/parser.ex:272:50: Timex.Parse.ZoneInfo.Parser.parse_transition_times/410221023 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:10241025 %Timex.Parse.ZoneInfo.Parser.Zone{zone | leaps: leaps}10261027 but got type:10281029 dynamic()10301031 where "zone" was given the type:10321033 # type: dynamic()1034 # from: lib/parse/zoneinfo/parser.ex:330:791035 zone10361037 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"10381039 type warning found at:1040 │1041 344 │ parse_flags(version, rest, header, %Zone{zone | leaps: leaps})1042 │ ~1043 │1044 └─ lib/parse/zoneinfo/parser.ex:344:40: Timex.Parse.ZoneInfo.Parser.parse_leap_seconds/410451046 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:10471048 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions}10491050 but got type:10511052 dynamic(%{..., transitions: term()})10531054 where "zone" was given the type:10551056 # type: dynamic(%{..., transitions: term()})1057 # from: lib/parse/zoneinfo/parser.ex:354:151058 Enum.with_index(zone.transitions)10591060 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"10611062 type warning found at:1063 │1064 362 │ parse_posixtz_string(version, rest, %Zone{zone | transitions: transitions})1065 │ ~1066 │1067 └─ lib/parse/zoneinfo/parser.ex:362:43: Timex.Parse.ZoneInfo.Parser.parse_flags/410681069 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:10701071 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions}10721073 but got type:10741075 dynamic(%{..., transitions: term()})10761077 where "zone" was given the type:10781079 # type: dynamic(%{..., transitions: term()})1080 # from: lib/parse/zoneinfo/parser.ex:354:151081 Enum.with_index(zone.transitions)10821083 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"10841085 type warning found at:1086 │1087 364 │ {:ok, %Zone{zone | transitions: transitions}, rest}1088 │ ~1089 │1090 └─ lib/parse/zoneinfo/parser.ex:364:13: Timex.Parse.ZoneInfo.Parser.parse_flags/410911092 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:10931094 %Timex.Parse.ZoneInfo.Parser.Zone{zone | rule: rule}10951096 but got type:10971098 dynamic()10991100 where "zone" was given the type:11011102 # type: dynamic()1103 # from: lib/parse/zoneinfo/parser.ex:369:621104 zone11051106 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"11071108 type warning found at:1109 │1110 372 │ {:ok, %Zone{zone | rule: rule}, format_rest <> rest}1111 │ ~1112 │1113 └─ lib/parse/zoneinfo/parser.ex:372:13: Timex.Parse.ZoneInfo.Parser.parse_posixtz_string/311141115 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:11161117 %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_abbr: abbr, dst_abbr: abbr}11181119 but got type:11201121 dynamic()11221123 where "rule" was given the type:11241125 # type: dynamic()1126 # from: lib/parse/zoneinfo/parser.ex:383:331127 rule11281129 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"11301131 type warning found at:1132 │1133 385 │ parse_tz(:std_offset, rest, %Rule{rule | std_abbr: abbr, dst_abbr: abbr})1134 │ ~1135 │1136 └─ lib/parse/zoneinfo/parser.ex:385:35: Timex.Parse.ZoneInfo.Parser.parse_tz/311371138 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:11391140 %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_offset: offset, dst_offset: offset}11411142 but got type:11431144 dynamic()11451146 where "rule" was given the type:11471148 # type: dynamic()1149 # from: lib/parse/zoneinfo/parser.ex:389:351150 rule11511152 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"11531154 type warning found at:1155 │1156 391 │ parse_tz(:dst_abbr, rest, %Rule{rule | std_offset: offset, dst_offset: offset})1157 │ ~1158 │1159 └─ lib/parse/zoneinfo/parser.ex:391:33: Timex.Parse.ZoneInfo.Parser.parse_tz/311601161 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:11621163 %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_abbr: abbr}11641165 but got type:11661167 dynamic()11681169 where "rule" was given the type:11701171 # type: dynamic()1172 # from: lib/parse/zoneinfo/parser.ex:405:331173 rule11741175 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"11761177 type warning found at:1178 │1179 407 │ rule = %Rule{rule | dst_abbr: abbr} do1180 │ ~1181 │1182 └─ lib/parse/zoneinfo/parser.ex:407:17: Timex.Parse.ZoneInfo.Parser.parse_tz/311831184 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:11851186 %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_offset: offset}11871188 but got type:11891190 dynamic()11911192 where "rule" was given the type:11931194 # type: dynamic()1195 # from: lib/parse/zoneinfo/parser.ex:424:351196 rule11971198 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"11991200 type warning found at:1201 │1202 426 │ rule = %Rule{rule | dst_offset: offset} do1203 │ ~1204 │1205 └─ lib/parse/zoneinfo/parser.ex:426:17: Timex.Parse.ZoneInfo.Parser.parse_tz/312061207 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:12081209 %Timex.Parse.ZoneInfo.Parser.Rule{rule | start_time: start_time, end_time: end_time}12101211 but got type:12121213 dynamic()12141215 where "rule" was given the type:12161217 # type: dynamic()1218 # from: lib/parse/zoneinfo/parser.ex:449:361219 rule12201221 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"12221223 type warning found at:1224 │1225 454 │ {:ok, %Rule{rule | start_time: start_time, end_time: end_time}, rest}1226 │ ~1227 │1228 └─ lib/parse/zoneinfo/parser.ex:454:17: Timex.Parse.ZoneInfo.Parser.parse_tz/312291230 warning: the following clause will never match:12311232 :error ->12331234 it is expected to match on type:12351236 dynamic({:error, :invalid_number, binary()})12371238 type warning found at:1239 │1240 528 │ :error ->1241 │ ~~~~~~~~~1242 │1243 └─ lib/parse/zoneinfo/parser.ex:528: Timex.Parse.ZoneInfo.Parser.parse_month_week_day/312441245Generated timex app1246==> property_table1247Compiling 8 files (.ex)1248Generated property_table app1249==> nerves_uevent1250 CC uevent.o1251 LD uevent1252Compiling 5 files (.ex)1253Generated nerves_uevent app1254==> nerves_runtime1255Compiling 14 files (.ex)1256Generated nerves_runtime app1257==> toolshed1258Compiling 5 files (.ex)1259Generated toolshed app1260==> tailwind1261Compiling 3 files (.ex)1262Generated tailwind app1263==> websock1264Compiling 1 file (.ex)1265Generated websock app1266==> websock_adapter1267Compiling 4 files (.ex)1268Generated websock_adapter app1269warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1270 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21271 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11272 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51273 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21274 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41275 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/212761277==> phoenix1278Compiling 71 files (.ex)1279 warning: unused require Logger1280 │1281 9 │ require Logger1282 │ ~1283 │1284 └─ lib/phoenix/config.ex:9:312851286 warning: unused require Logger1287 │1288 281 │ require Logger1289 │ ~1290 │1291 └─ lib/phoenix/endpoint.ex:281:312921293 warning: unused require Phoenix.Endpoint1294 │1295 6 │ require Phoenix.Endpoint1296 │ ~1297 │1298 └─ lib/phoenix/controller.ex:6:312991300 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 operator1301 │1302 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1303 │ ~1304 │1305 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/213061307 warning: unused require Phoenix.Endpoint1308 │1309 17 │ require Phoenix.Endpoint1310 │ ~1311 │1312 └─ lib/phoenix/endpoint/render_errors.ex:17:313131314 warning: unused require Phoenix.Endpoint1315 │1316 6 │ require Phoenix.Endpoint1317 │ ~1318 │1319 └─ lib/phoenix/channel/server.ex:6:313201321 warning: unused require Phoenix.Endpoint1322 │1323 202 │ require Phoenix.Endpoint1324 │ ~1325 │1326 └─ lib/phoenix/socket.ex:202:313271328 warning: unused require Logger1329 │1330 70 │ require Logger1331 │ ~1332 │1333 └─ lib/phoenix/socket/pool_supervisor.ex:70:313341335 warning: unused require Logger1336 │1337 100 │ require Logger1338 │ ~1339 │1340 └─ lib/phoenix/token.ex:100:313411342 warning: comparison between distinct types found:13431344 merge_all != []13451346 given types:13471348 dynamic(non_empty_list({atom(), term()})) != empty_list()13491350 where "merge_all" was given the type:13511352 # type: dynamic(non_empty_list({atom(), term()}))1353 # from: lib/phoenix/router/route.ex:121:151354 merge_all = merge_params ++ merge_private ++ merge_assigns13551356 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 false13571358 type warning found at:1359 │1360 123 │ if merge_all != [] do1361 │ ~1362 │1363 └─ lib/phoenix/router/route.ex:123:18: Phoenix.Router.Route.build_prepare/113641365 warning: a struct for Plug.Conn is expected on struct update:13661367 %Plug.Conn{conn | state: :sent}13681369 but got type:13701371 dynamic()13721373 where "conn" was given the type:13741375 # type: dynamic()1376 # from: lib/phoenix/endpoint/render_errors.ex:55:171377 conn13781379 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"13801381 type warning found at:1382 │1383 60 │ %Plug.Conn{conn | state: :sent}1384 │ ~1385 │1386 └─ lib/phoenix/endpoint/render_errors.ex:60:11: Phoenix.Endpoint.RenderErrors.__catch__/513871388 warning: a struct for Plug.Conn is expected on struct update:13891390 %Plug.Conn{conn | query_params: %{}, params: %{}}13911392 but got type:13931394 dynamic(%{..., params: %Plug.Conn.Unfetched{}})13951396 where "conn" was given the types:13971398 # type: dynamic(%{..., params: term()})1399 # from: lib/phoenix/endpoint/render_errors.ex:133:171400 conn.params14011402 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1403 # from: lib/phoenix/endpoint/render_errors.ex:133:171404 conn.params14051406 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"14071408 type warning found at:1409 │1410 134 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1411 │ ~1412 │1413 └─ lib/phoenix/endpoint/render_errors.ex:134:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/114141415 warning: a struct for Plug.Conn is expected on struct update:14161417 %Plug.Conn{conn | query_params: %{}, params: params}14181419 but got type:14201421 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})14221423 where "conn" was given the types:14241425 # type: dynamic(%{..., params: term()})1426 # from: lib/phoenix/endpoint/render_errors.ex:133:171427 conn.params14281429 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1430 # from: lib/phoenix/endpoint/render_errors.ex:133:171431 conn.params14321433 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"14341435 type warning found at:1436 │1437 135 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}1438 │ ~1439 │1440 └─ lib/phoenix/endpoint/render_errors.ex:135:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/114411442 warning: a struct for Plug.Conn is expected on struct update:14431444 %Plug.Conn{conn | params: params}14451446 but got type:14471448 dynamic(%{..., params: map()})14491450 where "conn" was given the type:14511452 # type: dynamic(%{..., params: map()})1453 # from: lib/phoenix/controller.ex:1327:171454 Map.get(conn.params, required_key)14551456 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"14571458 type warning found at:1459 │1460 1334 │ %Plug.Conn{conn | params: params}1461 │ ~1462 │1463 └─ lib/phoenix/controller.ex:1334:5: Phoenix.Controller.scrub_params/214641465Generated phoenix app1466warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1467 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21468 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11469 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51470 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21471 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41472 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/214731474==> phoenix_live_view1475Compiling 39 files (.ex)1476 warning: unused require Logger1477 │1478 48 │ require Logger1479 │ ~1480 │1481 └─ lib/phoenix_live_view/socket.ex:48:314821483 warning: unused require Phoenix.ChannelTest1484 │1485 183 │ require Phoenix.ChannelTest1486 │ ~1487 │1488 └─ lib/phoenix_live_view/test/live_view_test.ex:183:314891490 warning: unused require Phoenix.ConnTest1491 │1492 182 │ require Phoenix.ConnTest1493 │ ~1494 │1495 └─ lib/phoenix_live_view/test/live_view_test.ex:182:314961497 warning: unused require Phoenix.ChannelTest1498 │1499 5 │ require Phoenix.ChannelTest1500 │ ~1501 │1502 └─ lib/phoenix_live_view/test/upload_client.ex:5:315031504 warning: unused require Logger1505 │1506 6 │ require Logger1507 │ ~1508 │1509 └─ lib/phoenix_live_view/upload_channel.ex:6:315101511 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:15121513 %Phoenix.LiveView.Socket{1514 socket1515 | assigns: Map.merge(temp_assigns, socket.assigns),1516 private:1517 Map.update(1518 socket.private,1519 :temporary_assigns,1520 temp_assigns,1521 &Map.merge(&1, temp_assigns)1522 )1523 }15241525 but got type:15261527 dynamic()15281529 where "socket" was given the type:15301531 # type: dynamic()1532 # from: lib/phoenix_live_view/utils.ex:415:281533 socket15341535 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"15361537 type warning found at:1538 │1539 422 │ %Socket{1540 │ ~1541 │1542 └─ lib/phoenix_live_view/utils.ex:422:5: Phoenix.LiveView.Utils.handle_mount_option/315431544 warning: the following clause will never match:15451546 {:error, reason} ->15471548 because it attempts to match on the result of:15491550 IO.binwrite(state.file, data)15511552 which has type:15531554 dynamic(not {:error, term()})15551556 type warning found at:1557 │1558 23 │ {:error, reason} -> {:error, reason, state}1559 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1560 │1561 └─ lib/phoenix_live_view/upload_tmp_file_writer.ex:23: Phoenix.LiveView.UploadTmpFileWriter.write_chunk/215621563 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:15641565 %Phoenix.LiveView.UploadEntry{1566 entry1567 | preflighted?: entry.preflighted? || Enum.__in__(entry.ref, refs)1568 }15691570 but got type:15711572 dynamic()15731574 where "entry" was given the type:15751576 # type: dynamic()1577 # from: lib/phoenix_live_view/upload_config.ex:362:171578 entry <- conf.entries15791580 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"15811582 type warning found at:1583 │1584 363 │ %UploadEntry{entry | preflighted?: entry.preflighted? || entry.ref in refs}1585 │ ~1586 │1587 └─ lib/phoenix_live_view/upload_config.ex:363:9: Phoenix.LiveView.UploadConfig.mark_preflighted/215881589 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:15901591 %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}15921593 but got type:15941595 dynamic()15961597 where "entry" was given the type:15981599 # type: dynamic()1600 # from: lib/phoenix_live_view/upload_config.ex:572:301601 entry16021603 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"16041605 type warning found at:1606 │1607 573 │ entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}1608 │ ~1609 │1610 └─ lib/phoenix_live_view/upload_config.ex:573:13: Phoenix.LiveView.UploadConfig.put_valid_entry/216111612 warning: the following clause is redundant:16131614 def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)16151616 it has type:16171618 dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))16191620 previous clauses have already matched on the following types:16211622 %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())1623 %Phoenix.LiveView.Socket{}, term(), (none() -> term())1624 term(), term(), (none(), none() -> term())1625 term(), term(), (none() -> term())16261627 │1628 1378 │ def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do1629 │ ~1630 │1631 └─ lib/phoenix_component.ex:1378:7: Phoenix.Component.update/316321633 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:16341635 %Phoenix.LiveView.UploadEntry{entry | valid?: false}16361637 but got type:16381639 dynamic()16401641 where "entry" was given the type:16421643 # type: dynamic()1644 # from: lib/phoenix_live_view/upload_config.ex:585:321645 entry16461647 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"16481649 type warning found at:1650 │1651 586 │ entry = %UploadEntry{entry | valid?: false}1652 │ ~1653 │1654 └─ lib/phoenix_live_view/upload_config.ex:586:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/316551656 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:16571658 %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}16591660 but got type:16611662 dynamic()16631664 where "entry" was given the type:16651666 # type: dynamic()1667 # from: lib/phoenix_live_view/upload_config.ex:669:421668 entry16691670 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"16711672 type warning found at:1673 │1674 669 │ update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)1675 │ ~1676 │1677 └─ lib/phoenix_live_view/upload_config.ex:669:51: Phoenix.LiveView.UploadConfig.cancel_entry/216781679 warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead1680 │1681 73 │ Logger.disable(self())1682 │ ~1683 │1684 └─ lib/phoenix_live_view/test/client_proxy.ex:73:12: Phoenix.LiveViewTest.ClientProxy.init/116851686 warning: the right-hand side of || (shown as ... below) will never be executed:16871688 conn.private[:live_view_connect_info] || prune_conn(conn) || ...16891690 because the left-hand side always evaluates to:16911692 dynamic(not false and not nil)16931694 where "conn" was given the types:16951696 # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})1697 # from: lib/phoenix_live_view/test/live_view_test.ex:319:721698 %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn16991700 # type: dynamic(%Plug.Conn{1701 assigns: %{..., live_module: term()},1702 private:1703 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1704 non_struct_map(),1705 status: integer()1706 })1707 # from: lib/phoenix_live_view/test/live_view_test.ex:333:351708 conn.private[:live_view_connect_params]17091710 type warning found at:1711 │1712 334 │ connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},1713 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1714 │1715 └─ lib/phoenix_live_view/test/live_view_test.ex:334: Phoenix.LiveViewTest.connect_from_static_token/217161717 warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:17181719 %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}17201721 but got type:17221723 dynamic(%{..., rendered: map()})17241725 where "view" was given the type:17261727 # type: dynamic(%{..., rendered: map()})1728 # from: lib/phoenix_live_view/test/client_proxy.ex:727:261729 Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)17301731 when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"17321733 type warning found at:1734 │1735 728 │ new_view = %ClientProxy{view | rendered: rendered}1736 │ ~1737 │1738 └─ lib/phoenix_live_view/test/client_proxy.ex:728:22: Phoenix.LiveViewTest.ClientProxy.merge_rendered/317391740 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:17411742 %Phoenix.LiveView.Socket{1743 socket1744 | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}1745 }17461747 but got type:17481749 dynamic(%{..., assigns: term()})17501751 where "socket" was given the type:17521753 # type: dynamic(%{..., assigns: term()})1754 # from: lib/phoenix_live_view/renderer.ex:121:431755 %{assigns: assigns} = socket17561757 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"17581759 type warning found at:1760 │1761 122 │ socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}1762 │ ~1763 │1764 └─ lib/phoenix_live_view/renderer.ex:122:14: Phoenix.LiveView.Renderer.render_assigns/117651766 warning: the following pattern will never match:17671768 template = Phoenix.LiveView.Utils.normalize_layout(template)17691770 because the right-hand side has type:17711772 none()17731774 where "template" was given the types:17751776 # type: binary()1777 # from: lib/phoenix_live_view/router.ex:299:661778 is_binary(template)17791780 # type: binary()1781 # from: lib/phoenix_live_view/router.ex1782 {:root_layout, {mod, template}}17831784 type warning found at:1785 │1786 300 │ template = Phoenix.LiveView.Utils.normalize_layout(template)1787 │ ~1788 │1789 └─ lib/phoenix_live_view/router.ex:300:18: Phoenix.LiveView.Router.validate_live_session_opts/317901791 warning: the following pattern will never match:17921793 template = Phoenix.LiveView.Utils.normalize_layout(template)17941795 because the right-hand side has type:17961797 none()17981799 where "template" was given the types:18001801 # type: binary()1802 # from: lib/phoenix_live_view/router.ex:316:611803 is_binary(template)18041805 # type: binary()1806 # from: lib/phoenix_live_view/router.ex1807 {:layout, {mod, template}}18081809 type warning found at:1810 │1811 317 │ template = Phoenix.LiveView.Utils.normalize_layout(template)1812 │ ~1813 │1814 └─ lib/phoenix_live_view/router.ex:317:18: Phoenix.LiveView.Router.validate_live_session_opts/318151816 warning: the following clause is redundant:18171818 def to_iodata(%_{} = struct)18191820 it has type:18211822 dynamic(%Phoenix.LiveView.Rendered{})18231824 previous clauses have already matched on the following types:18251826 %Phoenix.LiveView.Rendered{}18271828 │1829 152 │ def to_iodata(%_{} = struct) do1830 │ ~1831 │1832 └─ lib/phoenix_live_view/engine.ex:152:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/118331834 warning: the 1st pattern in clause will never match:18351836 nil18371838 because it is expected to receive type:18391840 dynamic(%Phoenix.LiveView.Rendered{})18411842 hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}18431844 type warning found at:1845 │1846 156 │ def to_iodata(nil) do1847 │ ~~~~~~~~~~~~~~~~~~~~~1848 │1849 └─ lib/phoenix_live_view/engine.ex:156: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/118501851 warning: the following clause is redundant:18521853 def to_iodata(other)18541855 it has type:18561857 dynamic(%Phoenix.LiveView.Rendered{})18581859 previous clauses have already matched on the following types:18601861 %Phoenix.LiveView.Rendered{}18621863 │1864 160 │ def to_iodata(other) do1865 │ ~1866 │1867 └─ lib/phoenix_live_view/engine.ex:160:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/118681869 warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)1870 │1871 903 │ defp class_names(nil), do: []1872 │ ~1873 │1874 └─ lib/phoenix_live_view/js.ex:903:8: Phoenix.LiveView.JS.class_names/118751876Generated phoenix_live_view app1877warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1878 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21879 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11880 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51881 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21882 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41883 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/218841885==> heroicons1886Compiling 3 files (.ex)1887Generated heroicons app1888==> paleta1889Compiling 67 files (.ex)1890 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)1891 │1892 56 │ <%= live_component(Paleta.Components.Live.GlobalSearch,1893 │ ^^^^^^^^^^^^^^1894 │1895 └─ lib/components/app_header.ex:56:17: Paleta.Components.AppHeader."app_header (overridable 1)"/1189618971898== Compilation error in file lib/components/app_header.ex ==1899** (CompileError) lib/components/app_header.ex: cannot compile module Paleta.Components.AppHeader (errors have been logged)19001901could 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"