Build log
nerves_system_rpi0
flowy 0.1.6 · fail · run flowy-0.1.6-1791185200071
2217 of 2217 lines
1Resolving Hex dependencies...2Resolution completed in 0.561s3Unchanged:4 castore 1.0.215 circular_buffer 1.1.06 combine 0.10.07 cowboy 2.19.08 cowboy_telemetry 0.4.09 cowlib 2.20.0 VULNERABLE!10 EEF-CVE-2026-43966 (MEDIUM)11 aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c12 HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/213 https://osv.dev/vulnerability/EEF-CVE-2026-439661415 EEF-CVE-2026-43969 (LOW)16 aka: CVE-2026-43969, GHSA-g2wm-735q-3f5617 Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/118 https://osv.dev/vulnerability/EEF-CVE-2026-4396919 db_connection 2.10.220 decimal 3.1.121 earmark 1.4.49 RETIRED! VULNERABLE!22 (deprecated) Earmark is no longer maintained. Migrate to a replacement, for example MDEx (https://hex.pm/packages/mdex).2324 EEF-CVE-2026-48591 (MEDIUM)25 aka: CVE-2026-48591, GHSA-52mm-h59v-f3c726 Stored XSS via unescaped HTML attribute values in earmark27 https://osv.dev/vulnerability/EEF-CVE-2026-4859128 ecto 3.14.229 ecto_sql 3.14.030 elixir_make 0.10.031 esbuild 0.10.032 expo 1.1.133 finch 0.24.034 flowy 0.1.635 gettext 0.26.236 heroicons 0.5.637 hpax 1.1.038 inflex 2.1.039 interactive_cmd 0.1.440 jason 1.4.541 joken 2.7.042 jose 1.11.1243 makeup 1.2.344 makeup_elixir 0.16.245 mime 2.0.746 mint 1.11.047 nerves 2.0.0-pre.248 nerves_discovery 0.1.549 nerves_logging 0.2.450 nerves_runtime 0.13.1351 nerves_system_bbb 2.30.252 nerves_system_br 1.34.453 nerves_system_mangopi_mq_pro 0.17.254 nerves_system_qemu_aarch64 0.4.255 nerves_system_rpi0 2.1.256 nerves_system_rpi4 2.1.257 nerves_system_rpi5 2.1.258 nerves_system_trellis 0.5.059 nerves_system_x86_64 1.34.260 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.161 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.162 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.163 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.164 nerves_toolchain_x86_64_nerves_linux_musl 15.3.165 nerves_uevent 0.1.766 nimble_options 1.1.167 nimble_parsec 1.4.268 nimble_pool 1.1.069 oauth2 2.1.170 octo_fetch 0.5.071 paleta 0.1.072 phoenix 1.7.2473 phoenix_html 3.3.474 phoenix_live_view 0.20.17 VULNERABLE!75 EEF-CVE-2026-64941 (LOW)76 aka: CVE-2026-64941, GHSA-36m4-rm57-3prf77 Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR78 https://osv.dev/vulnerability/EEF-CVE-2026-6494179 phoenix_pubsub 2.3.080 phoenix_template 1.1.081 plug 1.20.382 plug_cowboy 2.9.083 plug_crypto 2.2.084 postgrex 0.22.485 prom_ex 1.9.086 property_table 0.3.487 ranch 2.3.088 recase 0.9.189 ring_logger 0.11.790 ssl_verify_fun 1.1.791 tablet 0.3.392 tailwind 0.5.193 telemetry 1.4.294 telemetry_metrics 0.6.295 telemetry_metrics_prometheus_core 1.2.196 telemetry_poller 1.3.097 tesla 1.21.398 timex 3.7.1399 toolshed 0.5.0100 tzdata 1.2.2101 uboot_env 1.0.2102 ueberauth 0.10.5103 ueberauth_okta 0.3.1104 websock 0.5.3105 websock_adapter 0.5.9106* Getting flowy (Hex package)107* Getting nerves (Hex package)108* Getting ring_logger (Hex package)109* Getting toolshed (Hex package)110* Getting nerves_runtime (Hex package)111* Getting nerves_system_bbb (Hex package)112* Getting nerves_system_mangopi_mq_pro (Hex package)113* Getting nerves_system_qemu_aarch64 (Hex package)114* Getting nerves_system_rpi0 (Hex package)115* Getting nerves_system_rpi4 (Hex package)116* Getting nerves_system_rpi5 (Hex package)117* Getting nerves_system_trellis (Hex package)118* Getting nerves_system_x86_64 (Hex package)119* Getting nerves_system_br (Hex package)120* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)121* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)122* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)123* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)124* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)125* Getting nerves_logging (Hex package)126* Getting nerves_uevent (Hex package)127* Getting uboot_env (Hex package)128* Getting elixir_make (Hex package)129* Getting property_table (Hex package)130* Getting circular_buffer (Hex package)131* Getting interactive_cmd (Hex package)132* Getting nerves_discovery (Hex package)133* Getting tablet (Hex package)134* Getting ecto_sql (Hex package)135* Getting finch (Hex package)136* Getting jason (Hex package)137* Getting joken (Hex package)138* Getting nimble_options (Hex package)139* Getting oauth2 (Hex package)140* Getting paleta (Hex package)141* Getting phoenix (Hex package)142* Getting phoenix_live_view (Hex package)143* Getting postgrex (Hex package)144* Getting prom_ex (Hex package)145* Getting recase (Hex package)146* Getting telemetry (Hex package)147* Getting ueberauth (Hex package)148* Getting ueberauth_okta (Hex package)149* Getting plug (Hex package)150* Getting mime (Hex package)151* Getting plug_crypto (Hex package)152* Getting octo_fetch (Hex package)153* Getting plug_cowboy (Hex package)154* Getting telemetry_metrics (Hex package)155* Getting telemetry_metrics_prometheus_core (Hex package)156* Getting telemetry_poller (Hex package)157* Getting cowboy (Hex package)158* Getting cowboy_telemetry (Hex package)159* Getting cowlib (Hex package)160* Getting ranch (Hex package)161* Getting castore (Hex package)162* Getting ssl_verify_fun (Hex package)163* Getting db_connection (Hex package)164* Getting decimal (Hex package)165* Getting phoenix_html (Hex package)166* Getting phoenix_template (Hex package)167* Getting phoenix_pubsub (Hex package)168* Getting websock_adapter (Hex package)169* Getting websock (Hex package)170* Getting earmark (Hex package)171* Getting esbuild (Hex package)172* Getting heroicons (Hex package)173* Getting inflex (Hex package)174* Getting makeup (Hex package)175* Getting makeup_elixir (Hex package)176* Getting tailwind (Hex package)177* Getting timex (Hex package)178* Getting combine (Hex package)179* Getting gettext (Hex package)180* Getting tzdata (Hex package)181* Getting expo (Hex package)182* Getting nimble_parsec (Hex package)183* Getting tesla (Hex package)184* Getting jose (Hex package)185* Getting mint (Hex package)186* Getting nimble_pool (Hex package)187* Getting hpax (Hex package)188* Getting ecto (Hex package)189Found retired packages, see above for details190Found packages with security advisories, see above for details191You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more192==> nerves_system_br193Generated nerves_system_br app194==> combine195Compiling 6 files (.ex)196 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 operator197 │198 26 │ <<bits::bitstring-size(n), rest::bitstring>> ->199 │ ~200 │201 └─ lib/combine/parsers/binary.ex:26:30: Combine.Parsers.Binary.bits_impl/2202203 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 operator204 │205 48 │ <<bits::bitstring-size(bits_size), rest::bitstring>> ->206 │ ~207 │208 └─ lib/combine/parsers/binary.ex:48:30: Combine.Parsers.Binary.bytes_impl/2209210 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 operator211 │212 70 │ <<int::big-unsigned-size(size), rest::bitstring>> ->213 │ ~214 │215 └─ lib/combine/parsers/binary.ex:70:36: Combine.Parsers.Binary.uint_impl/3216217 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 operator218 │219 77 │ <<int::little-unsigned-size(size), rest::bitstring>> ->220 │ ~221 │222 └─ lib/combine/parsers/binary.ex:77:39: Combine.Parsers.Binary.uint_impl/3223224 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 operator225 │226 101 │ <<int::big-signed-size(size), rest::bitstring>> ->227 │ ~228 │229 └─ lib/combine/parsers/binary.ex:101:34: Combine.Parsers.Binary.int_impl/3230231 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 operator232 │233 108 │ <<int::little-signed-size(size), rest::bitstring>> ->234 │ ~235 │236 └─ lib/combine/parsers/binary.ex:108:37: Combine.Parsers.Binary.int_impl/3237238 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 operator239 │240 128 │ <<num::float-size(size), rest::bitstring>> ->241 │ ~242 │243 └─ lib/combine/parsers/binary.ex:128:25: Combine.Parsers.Binary.float_impl/2244245 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 operator246 │247 432 │ <<^expected::binary-size(byte_size), rest::binary>> ->248 │ ~249 │250 └─ lib/combine/parsers/text.ex:432:34: Combine.Parsers.Text.string_impl/2251252 warning: the following clause is redundant:253254 defp word_of_impl(%Combine.ParserState{...} = state, _pattern)255256 it has type:257258 dynamic(%Combine.ParserState{status: :ok}), dynamic()259260 previous clauses have already matched on the following types:261262 %Combine.ParserState{status: :error}, term()263 %Combine.ParserState{status: :ok}, term()264265 │266 488 │ defp word_of_impl(%ParserState{status: :ok} = state, _pattern) do267 │ ~268 │269 └─ lib/combine/parsers/text.ex:488:8: Combine.Parsers.Text.word_of_impl/2270271Generated combine app272==> mime273Compiling 1 file (.ex)274Generated mime app275==> circular_buffer276Compiling 1 file (.ex)277Generated circular_buffer app278==> nimble_options279Compiling 3 files (.ex)280Generated nimble_options app281==> plug_crypto282Compiling 5 files (.ex)283Generated plug_crypto app284==> hpax285Compiling 4 files (.ex)286Generated hpax app287==> recase288Compiling 15 files (.ex)289Generated recase app290==> jose291Compiling 113 files (.erl)292src/jose_server.erl:137:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.293Compile directive 'nowarn_deprecated_catch' can be used to suppress294warnings in selected modules.295% 137| _ = catch jose_jwa:unsecured_signing(UnsecuredSigning),296% | ^297298src/jose_server.erl:797:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.299Compile directive 'nowarn_deprecated_catch' can be used to suppress300warnings in selected modules.301% 797| case catch jose_crypto_compat:crypto_one_time(Cipher, Key, PlainText, true) of302% | ^303304src/jose_server.erl:799:9: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.305Compile directive 'nowarn_deprecated_catch' can be used to suppress306warnings in selected modules.307% 799| case catch jose_crypto_compat:crypto_one_time(Cipher, Key, CipherText, false) of308% | ^309310src/jose_server.erl:809:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.311Compile directive 'nowarn_deprecated_catch' can be used to suppress312warnings in selected modules.313% 809| case catch jose_crypto_compat:crypto_one_time(Cipher, Key, IV, PlainText, true) of314% | ^315316src/jose_server.erl:811:9: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.317Compile directive 'nowarn_deprecated_catch' can be used to suppress318warnings in selected modules.319% 811| case catch jose_crypto_compat:crypto_one_time(Cipher, Key, IV, CipherText, false) of320% | ^321322src/jose_server.erl:821:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.323Compile directive 'nowarn_deprecated_catch' can be used to suppress324warnings in selected modules.325% 821| case catch jose_crypto_compat:crypto_one_time(Cipher, Key, IV, {AAD, PlainText}, true) of326% | ^327328src/jose_server.erl:823:9: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.329Compile directive 'nowarn_deprecated_catch' can be used to suppress330warnings in selected modules.331% 823| case catch jose_crypto_compat:crypto_one_time(Cipher, Key, IV, {AAD, CipherText, CipherTag}, false) of332% | ^333334src/jose_server.erl:837:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.335Compile directive 'nowarn_deprecated_catch' can be used to suppress336warnings in selected modules.337% 837| case catch public_key:encrypt_public(PlainText, PublicKey, FutureOptions) of338% | ^339340src/jose_server.erl:840:9: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.341Compile directive 'nowarn_deprecated_catch' can be used to suppress342warnings in selected modules.343% 840| case catch public_key:decrypt_private(CipherText, PrivateKey, FutureOptions) of344% | ^345346src/jose_server.erl:842:11: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.347Compile directive 'nowarn_deprecated_catch' can be used to suppress348warnings in selected modules.349% 842| case catch public_key:decrypt_private(rsa_ciphertext(Algorithm), PrivateKey, FutureOptions) of350% | ^351352src/jose_server.erl:859:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.353Compile directive 'nowarn_deprecated_catch' can be used to suppress354warnings in selected modules.355% 859| case catch public_key:encrypt_public(PlainText, PublicKey, LegacyOptions) of356% | ^357358src/jose_server.erl:862:9: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.359Compile directive 'nowarn_deprecated_catch' can be used to suppress360warnings in selected modules.361% 862| case catch public_key:decrypt_private(CipherText, PrivateKey, LegacyOptions) of362% | ^363364src/jose_server.erl:864:11: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.365Compile directive 'nowarn_deprecated_catch' can be used to suppress366warnings in selected modules.367% 864| case catch public_key:decrypt_private(rsa_ciphertext(Algorithm), PrivateKey, LegacyOptions) of368% | ^369370src/jose_server.erl:882:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.371Compile directive 'nowarn_deprecated_catch' can be used to suppress372warnings in selected modules.373% 882| case catch public_key:sign(Message, DigestType, PrivateKey, Options) of374% | ^375376src/jose_server.erl:885:9: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.377Compile directive 'nowarn_deprecated_catch' can be used to suppress378warnings in selected modules.379% 885| case catch public_key:verify(Message, DigestType, Signature, PublicKey, Options) of380% | ^381382src/jose_server.erl:897:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.383Compile directive 'nowarn_deprecated_catch' can be used to suppress384warnings in selected modules.385% 897| case catch public_key:sign(Message, DigestType, PrivateKey) of386% | ^387388src/jose_server.erl:900:9: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.389Compile directive 'nowarn_deprecated_catch' can be used to suppress390warnings in selected modules.391% 900| case catch public_key:verify(Message, DigestType, Signature, PublicKey) of392% | ^393394src/jwa/jose_jwa.erl:230:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.395Compile directive 'nowarn_deprecated_catch' can be used to suppress396warnings in selected modules.397% 230| case catch block_cipher(Cipher) of398% | ^399400src/jwa/jose_jwa.erl:238:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.401Compile directive 'nowarn_deprecated_catch' can be used to suppress402warnings in selected modules.403% 238| case catch ?MAYBE_START_JOSE(ets:lookup_element(?TAB, chacha20_poly1305_module, 2)) of404% | ^405406src/jwa/jose_jwa.erl:246:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.407Compile directive 'nowarn_deprecated_catch' can be used to suppress408warnings in selected modules.409% 246| case catch rsa_crypt(Padding) of410% | ^411412src/jwa/jose_jwa.erl:254:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.413Compile directive 'nowarn_deprecated_catch' can be used to suppress414warnings in selected modules.415% 254| case catch rsa_sign(Padding) of416% | ^417418src/jwa/jose_jwa.erl:262:7: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.419Compile directive 'nowarn_deprecated_catch' can be used to suppress420warnings in selected modules.421% 262| case catch ?MAYBE_START_JOSE(ets:lookup_element(?TAB, xchacha20_poly1305_module, 2)) of422% | ^423424Compiling 8 files (.ex)425Generated jose app426==> nerves_compatibility_test427===> Analyzing applications...428===> Compiling ranch429==> ssl_verify_fun430Compiling 7 files (.erl)431Generated ssl_verify_fun app432==> tzdata433Compiling 18 files (.ex)434Generated tzdata app435==> tablet436Compiling 2 files (.ex)437Generated tablet app438==> inflex439Compiling 6 files (.ex)440Generated inflex app441==> elixir_make442Compiling 8 files (.ex)443Generated elixir_make app444==> nerves_logging445 CC kmsg_tailer.o446 LD kmsg_tailer447Compiling 5 files (.ex)448Generated nerves_logging app449==> castore450Compiling 1 file (.ex)451Generated castore app452==> octo_fetch453Compiling 3 files (.ex)454Generated octo_fetch app455==> mint456Compiling 1 file (.erl)457Compiling 21 files (.ex)458Generated mint app459==> earmark460Compiling 2 files (.xrl)461Compiling 1 file (.yrl)462Compiling 3 files (.erl)463Compiling 61 files (.ex)464 warning: unused require Logger465 │466 3 │ require Logger467 │ ~468 │469 └─ lib/earmark_parser/line_scanner.ex:3:3470471 warning: this clause of defp _maybe_remove_paras/2 is never used (or it will always fail/warn when invoked)472 │473 616 │ defp _maybe_remove_paras(ast, %Options{inner_html: true}) do474 │ ~475 │476 └─ lib/earmark/transform.ex:616:8: Earmark.Transform._maybe_remove_paras/2477478Generated earmark app479==> nerves_compatibility_test480===> Analyzing applications...481===> Compiling cowlib482==> nerves_discovery483Compiling 5 files (.ex)484Generated nerves_discovery app485==> ring_logger486Compiling 7 files (.ex)487Generated ring_logger app488==> decimal489Compiling 4 files (.ex)490Generated decimal app491==> jason492Compiling 10 files (.ex)493Generated jason app494==> esbuild495Compiling 4 files (.ex)496Generated esbuild app497==> interactive_cmd498Compiling 1 file (.ex)499Generated interactive_cmd app500==> nerves501Compiling 65 files (.ex)502 warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)503 │504 6 │ defmodule Mix.Tasks.Nerves.Init do505 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~506 │507 └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)508509 warning: redefining module Nerves (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.beam)510 │511 6 │ defmodule Nerves do512 │ ~~~~~~~~~~~~~~~~~~~513 │514 └─ lib/nerves.ex:6: Nerves (module)515516 warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)517 │518 5 │ defmodule Nerves.ArtifactResolver do519 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~520 │521 └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)522523 warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)524 │525 6 │ defmodule Nerves.BuildAction.AppModes do526 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~527 │528 └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)529530 warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)531 │532 5 │ defmodule Nerves.BuildAction.CheckExecutables do533 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~534 │535 └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)536537 warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)538 │539 8 │ defmodule Nerves.BuildAction.Erlinit do540 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~541 │542 └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)543544 warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)545 │546 5 │ defmodule Nerves.BuildAction.Firmware do547 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~548 │549 └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)550551 warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)552 │553 7 │ defmodule Nerves.BuildAction.IExStartupCheck do554 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~555 │556 └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)557558 warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)559 │560 5 │ defmodule Nerves.BuildAction.NervesV1System do561 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~562 │563 └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)564565 warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)566 │567 5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do568 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~569 │570 └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)571572 warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)573 │574 5 │ defmodule Nerves.BuildAction.Rootfs do575 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~576 │577 └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)578579 warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)580 │581 6 │ defmodule Nerves.BuildAction.SortApps do582 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~583 │584 └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)585586 warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)587 │588 5 │ defmodule Nerves.BuildAction.StripAll do589 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~590 │591 └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)592593 warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)594 │595 5 │ defmodule Nerves.BuildAction.Trimmer do596 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~597 │598 └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)599600 warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)601 │602 5 │ defmodule Nerves.BuildPlan do603 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~604 │605 └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)606607 warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)608 │609 5 │ defmodule Nerves.BuildPlan.Checks do610 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~611 │612 └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)613614 warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.Container.beam)615 │616 6 │ defmodule Nerves.Container do617 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~618 │619 └─ lib/nerves/container.ex:6: Nerves.Container (module)620621 warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)622 │623 5 │ defmodule Nerves.Fingerprint do624 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~625 │626 └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)627628 warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)629 │630 5 │ defmodule Nerves.MixPackage do631 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~632 │633 └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)634635 warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.Paths.beam)636 │637 5 │ defmodule Nerves.Paths do638 │ ~~~~~~~~~~~~~~~~~~~~~~~~~639 │640 └─ lib/nerves/paths.ex:5: Nerves.Paths (module)641642 warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)643 │644 5 │ defmodule Nerves.TargetTuple do645 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~646 │647 └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)648649Generated nerves app650==> nerves_toolchain_armv6_nerves_linux_gnueabihf651Compiling 1 file (.ex)652Generated nerves_toolchain_armv6_nerves_linux_gnueabihf app653==> nerves_system_rpi0654Generated nerves_system_rpi0 app655==> nimble_parsec656Compiling 4 files (.ex)657Generated nimble_parsec app658==> makeup659Compiling 15 files (.ex)660Generated makeup app661==> makeup_elixir662Compiling 6 files (.ex)663Compiling lib/makeup/lexers/elixir_lexer/variables.ex (it's taking more than 10s)664Compiling lib/makeup/lexers/elixir_lexer.ex (it's taking more than 10s)665Generated makeup_elixir app666==> nerves_compatibility_test667===> Analyzing applications...668===> Compiling telemetry669==> telemetry_metrics670Compiling 7 files (.ex)671 warning: unused require Logger672 │673 391 │ require Logger674 │ ~675 │676 └─ lib/telemetry_metrics.ex:391:3677678Generated telemetry_metrics app679==> telemetry_metrics_prometheus_core680Compiling 9 files (.ex)681 warning: unused require Logger682 │683 148 │ require Logger684 │ ~685 │686 └─ lib/core.ex:148:3687688warning: first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it689 lib/core/registry.ex:87: TelemetryMetricsPrometheus.Core.Registry.validate_distribution_buckets!/1690691Generated telemetry_metrics_prometheus_core app692==> nerves_compatibility_test693===> Analyzing applications...694===> Compiling telemetry_poller695==> db_connection696Compiling 18 files (.ex)697Generated db_connection app698==> ecto699Compiling 56 files (.ex)700Generated ecto app701==> nerves_compatibility_test702===> Analyzing applications...703===> Compiling cowboy704==> expo705Compiling 2 files (.erl)706Compiling 22 files (.ex)707Generated expo app708==> gettext709Compiling 18 files (.ex)710 warning: unused require Gettext.Macros711 │712 594 │ require Gettext.Macros713 │ ~714 │715 └─ lib/gettext.ex:594:3716717 warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead718 │719 426 │ Kernel.ParallelCompiler.async(fn ->720 │ ~721 │722 └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3723724 warning: the following clause is redundant:725726 defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)727728 it has type:729730 dynamic(%Expo.Message.Plural{})731732 previous clauses have already matched on the following types:733734 %Expo.Message.Singular{}735 %Expo.Message.Plural{}736737 │738 391 │ defp ensure_empty_msgstr!(%Message.Plural{} = message) do739 │ ~740 │741 └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1742743Generated gettext app744==> phoenix_pubsub745Compiling 12 files (.ex)746Generated phoenix_pubsub app747==> plug748Compiling 1 file (.erl)749Compiling 42 files (.ex)750Generated plug app751==> ueberauth752Compiling 9 files (.ex)753Generated ueberauth app754==> phoenix_html755Compiling 9 files (.ex)756 warning: comparison between distinct types found:757758 id == nil759760 given types:761762 dynamic(not false and not nil and not binary()) == nil763764 where "id" was given the types:765766 # type: dynamic(not false and not nil)767 # from: lib/phoenix_html/form_data.ex:92:8768 id = Keyword.get(opts, :id) || name769770 # type: dynamic(not false and not nil and not binary())771 # from: lib/phoenix_html/form_data.ex:94:12772 is_binary(id)773774 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 false775776 type warning found at:777 │778 94 │ unless is_binary(id) or is_nil(id) do779 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~780 │781 └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2782783 warning: the 1st pattern in clause will never match:784785 60786787 because it is expected to receive type:788789 dynamic(empty_list() or non_empty_list(term(), term()))790791 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())792793 type warning found at:794 │795 56 │ def to_iodata(?<), do: "<"796 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~797 │798 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1799800 warning: the 1st pattern in clause will never match:801802 62803804 because it is expected to receive type:805806 dynamic(empty_list() or non_empty_list(term(), term()))807808 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())809810 type warning found at:811 │812 57 │ def to_iodata(?>), do: ">"813 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~814 │815 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1816817 warning: the 1st pattern in clause will never match:818819 38820821 because it is expected to receive type:822823 dynamic(empty_list() or non_empty_list(term(), term()))824825 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())826827 type warning found at:828 │829 58 │ def to_iodata(?&), do: "&"830 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~831 │832 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1833834 warning: the 1st pattern in clause will never match:835836 34837838 because it is expected to receive type:839840 dynamic(empty_list() or non_empty_list(term(), term()))841842 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())843844 type warning found at:845 │846 59 │ def to_iodata(?"), do: """847 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~848 │849 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1850851 warning: the 1st pattern in clause will never match:852853 39854855 because it is expected to receive type:856857 dynamic(empty_list() or non_empty_list(term(), term()))858859 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())860861 type warning found at:862 │863 60 │ def to_iodata(?'), do: "'"864 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~865 │866 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1867868 warning: the 1st pattern in clause will never match:869870 {:safe, data}871872 because it is expected to receive type:873874 dynamic(empty_list() or non_empty_list(term(), term()))875876 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())877878 type warning found at:879 │880 76 │ def to_iodata({:safe, data}) do881 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~882 │883 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1884885 warning: the following clause is redundant:886887 def to_iodata(other)888889 it has type:890891 dynamic(empty_list() or non_empty_list(term(), term()))892893 previous clauses have already matched on the following types:894895 non_empty_list(term(), term())896 empty_list()897898 │899 80 │ def to_iodata(other) do900 │ ~901 │902 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1903904 warning: the 1st pattern in clause will never match:905906 h907908 because it is expected to receive type:909910 dynamic(empty_list() or non_empty_list(term(), term()))911912 where "h" was given the type:913914 # type: integer()915 # from: lib/phoenix_html/safe.ex:62:25916 is_integer(h)917918 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())919920 type warning found at:921 │922 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do923 │ ~924 │925 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1926927 warning: the 1st pattern in clause will never match:928929 h930931 because it is expected to receive type:932933 dynamic(empty_list() or non_empty_list(term(), term()))934935 where "h" was given the type:936937 # type: integer()938 # from: lib/phoenix_html/safe.ex:66:25939 is_integer(h)940941 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())942943 type warning found at:944 │945 66 │ def to_iodata(h) when is_integer(h) do946 │ ~947 │948 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1949950 warning: the 1st pattern in clause will never match:951952 h953954 because it is expected to receive type:955956 dynamic(empty_list() or non_empty_list(term(), term()))957958 where "h" was given the type:959960 # type: binary()961 # from: lib/phoenix_html/safe.ex:72:25962 is_binary(h)963964 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())965966 type warning found at:967 │968 72 │ def to_iodata(h) when is_binary(h) do969 │ ~970 │971 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1972973Generated phoenix_html app974==> phoenix_template975Compiling 4 files (.ex)976Generated phoenix_template app977warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"978 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2979 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1980 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5981 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2982 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4983 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2984985==> postgrex986Compiling 70 files (.ex)987Generated postgrex app988==> ecto_sql989Compiling 25 files (.ex)990Generated ecto_sql app991==> joken992Compiling 8 files (.ex)993Generated joken app994==> uboot_env995Compiling 5 files (.ex)996Generated uboot_env app997==> timex998Compiling 62 files (.ex)999 warning: default arguments in protocol definitions is deprecated1000 │1001 84 │ def compare(a, b, granularity \\ :microsecond)1002 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1003 │1004 └─ lib/comparable/comparable.ex:84: Timex.Comparable (module)10051006 warning: default arguments in protocol definitions is deprecated1007 │1008 139 │ def diff(a, b, granularity \\ :microsecond)1009 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1010 │1011 └─ lib/comparable/comparable.ex:139: Timex.Comparable (module)10121013 warning: protocols can only define functions without implementation via def/1, found: compare/2, diff/21014 │1015 1 │ defprotocol Timex.Comparable do1016 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1017 │1018 └─ lib/comparable/comparable.ex:1: Timex.Comparable (module)10191020 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 operator1021 │1022 317 │ <<abbrevs::bytes(len), rest::binary>> = data1023 │ ~1024 │1025 └─ lib/parse/zoneinfo/parser.ex:317:22: Timex.Parse.ZoneInfo.Parser.parse_abbreviations/410261027 warning: default arguments in protocol definitions is deprecated1028 │1029 48 │ def to_datetime(datetime, timezone \\ :utc)1030 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1031 │1032 └─ lib/protocol.ex:48: Timex.Protocol (module)10331034 warning: protocols can only define functions without implementation via def/1, found: to_datetime/11035 │1036 1 │ defprotocol Timex.Protocol do1037 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1038 │1039 └─ lib/protocol.ex:1: Timex.Protocol (module)10401041 warning: unused require Timex.Macros1042 │1043 5 │ require Timex.Macros1044 │ ~1045 │1046 └─ lib/comparable/tuple.ex:5:310471048 warning: unused require Timex.Macros1049 │1050 5 │ require Timex.Macros1051 │ ~1052 │1053 └─ lib/comparable/naivedatetime.ex:5:310541055 warning: unused require Bitwise1056 │1057 5 │ require Bitwise1058 │ ~1059 │1060 └─ lib/calendar/julian.ex:5:310611062Compiling lib/l10n/gettext.ex (it's taking more than 10s)1063 warning: the following clause will never match:10641065 {ty, a, b} when ty === :gap or ty === :ambiguous ->10661067 it is expected to match on type:10681069 dynamic({:error, term()} and not {:ok, %{..., time_zone: term()}})10701071 where "ty" was given the type:10721073 # type: :ambiguous or :gap1074 # from: lib/timezone/timezone.ex:5481075 ty in [:gap, :ambiguous]10761077 type warning found at:1078 │1079 548 │ {ty, a, b} when ty in [:gap, :ambiguous] ->1080 │ ~1081 │1082 └─ lib/timezone/timezone.ex:548:7: Timex.Timezone.convert/210831084 warning: a struct for Timex.PosixTimezone is expected on struct update:10851086 %Timex.PosixTimezone{rule | std_abbr: abbr}10871088 but got type:10891090 dynamic()10911092 where "rule" was given the type:10931094 # type: dynamic()1095 # from: lib/parse/posix/parser.ex:119:331096 rule10971098 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"10991100 type warning found at:1101 │1102 121 │ parse_tz(:std_offset, rest, %TZ{rule | std_abbr: abbr})1103 │ ~1104 │1105 └─ lib/parse/posix/parser.ex:121:35: Timex.Parse.Timezones.Posix.parse_tz/311061107 warning: a struct for Timex.PosixTimezone is expected on struct update:11081109 %Timex.PosixTimezone{rule | std_offset: offset}11101111 but got type:11121113 dynamic()11141115 where "rule" was given the type:11161117 # type: dynamic()1118 # from: lib/parse/posix/parser.ex:125:351119 rule11201121 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"11221123 type warning found at:1124 │1125 127 │ parse_tz(:dst_abbr, rest, %TZ{rule | std_offset: offset})1126 │ ~1127 │1128 └─ lib/parse/posix/parser.ex:127:33: Timex.Parse.Timezones.Posix.parse_tz/311291130 warning: a struct for Timex.PosixTimezone is expected on struct update:11311132 %Timex.PosixTimezone{rule | dst_abbr: abbr}11331134 but got type:11351136 dynamic()11371138 where "rule" was given the type:11391140 # type: dynamic()1141 # from: lib/parse/posix/parser.ex:141:331142 rule11431144 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"11451146 type warning found at:1147 │1148 143 │ rule = %TZ{rule | dst_abbr: abbr} do1149 │ ~1150 │1151 └─ lib/parse/posix/parser.ex:143:17: Timex.Parse.Timezones.Posix.parse_tz/311521153 warning: a struct for Timex.PosixTimezone is expected on struct update:11541155 %Timex.PosixTimezone{rule | dst_offset: offset}11561157 but got type:11581159 dynamic()11601161 where "rule" was given the type:11621163 # type: dynamic()1164 # from: lib/parse/posix/parser.ex:160:351165 rule11661167 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"11681169 type warning found at:1170 │1171 162 │ rule = %TZ{rule | dst_offset: offset} do1172 │ ~1173 │1174 └─ lib/parse/posix/parser.ex:162:17: Timex.Parse.Timezones.Posix.parse_tz/311751176 warning: a struct for Timex.PosixTimezone is expected on struct update:11771178 %Timex.PosixTimezone{rule | dst_start: dst_start, dst_end: dst_end}11791180 but got type:11811182 dynamic()11831184 where "rule" was given the type:11851186 # type: dynamic()1187 # from: lib/parse/posix/parser.ex:185:361188 rule11891190 when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"11911192 type warning found at:1193 │1194 190 │ {:ok, %TZ{rule | dst_start: dst_start, dst_end: dst_end}, rest}1195 │ ~1196 │1197 └─ lib/parse/posix/parser.ex:190:17: Timex.Parse.Timezones.Posix.parse_tz/311981199 warning: the following clause will never match:12001201 :error ->12021203 it is expected to match on type:12041205 dynamic({:error, :invalid_number, binary()})12061207 type warning found at:1208 │1209 264 │ :error ->1210 │ ~~~~~~~~~1211 │1212 └─ lib/parse/posix/parser.ex:264: Timex.Parse.Timezones.Posix.parse_month_week_day/312131214 warning: the following pattern will never match:12151216 {y, m, d} <- to_erl_datetime(date)12171218 because the right-hand side has type:12191220 dynamic(1221 {:error, :invalid_date} or1222 {:ok, {{integer(), integer(), integer()}, {integer(), integer(), integer()}}}1223 )12241225 where "date" was given the type:12261227 # type: dynamic({...})1228 # from: lib/datetime/erlang.ex:7:171229 date12301231 type warning found at:1232 │1233 8 │ with {y, m, d} <- to_erl_datetime(date),1234 │ ~1235 │1236 └─ lib/datetime/erlang.ex:8:10: Timex.Protocol.Tuple.to_julian/112371238 warning: the following clause is redundant:12391240 def shift(_, _)12411242 it has type:12431244 dynamic(%Date{}), dynamic()12451246 previous clauses have already matched on the following types:12471248 %Date{}, term()12491250 │1251 227 │ def shift(_, _), do: {:error, :badarg}1252 │ ~1253 │1254 └─ lib/date/date.ex:227:7: Timex.Protocol.Date.shift/212551256 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:12571258 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions, leaps: leaps}12591260 but got type:12611262 dynamic(%{..., leaps: term(), transitions: term()})12631264 where "zone" was given the types:12651266 # type: dynamic(%{..., rule: term()} or %{..., transitions: term()})1267 # from: lib/parse/zoneinfo/parser.ex:156:281268 {:ok, zone, rest} <- parse_content(1, data, %Timex.Parse.ZoneInfo.Parser.Zone{..., version: 1})12691270 # type: dynamic(%{..., transitions: term()})1271 # from: lib/parse/zoneinfo/parser.ex:157:261272 Enum.sort_by(zone.transitions, fn tx -> tx.starts_at end)12731274 # type: dynamic(%{..., leaps: term(), transitions: term()})1275 # from: lib/parse/zoneinfo/parser.ex:158:201276 Enum.sort_by(zone.leaps, fn leap -> leap.epoch end)12771278 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"12791280 type warning found at:1281 │1282 159 │ {:ok, %Zone{zone | transitions: transitions, leaps: leaps}, rest}1283 │ ~1284 │1285 └─ lib/parse/zoneinfo/parser.ex:159:13: Timex.Parse.ZoneInfo.Parser.parse_versioned_content/212861287 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:12881289 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: times}12901291 but got type:12921293 dynamic()12941295 where "zone" was given the type:12961297 # type: dynamic()1298 # from: lib/parse/zoneinfo/parser.ex:270:921299 zone13001301 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13021303 type warning found at:1304 │1305 272 │ parse_transition_info(version, rest, header, %Zone{zone | transitions: times})1306 │ ~1307 │1308 └─ lib/parse/zoneinfo/parser.ex:272:50: Timex.Parse.ZoneInfo.Parser.parse_transition_times/413091310 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13111312 %Timex.Parse.ZoneInfo.Parser.Zone{zone | leaps: leaps}13131314 but got type:13151316 dynamic()13171318 where "zone" was given the type:13191320 # type: dynamic()1321 # from: lib/parse/zoneinfo/parser.ex:330:791322 zone13231324 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13251326 type warning found at:1327 │1328 344 │ parse_flags(version, rest, header, %Zone{zone | leaps: leaps})1329 │ ~1330 │1331 └─ lib/parse/zoneinfo/parser.ex:344:40: Timex.Parse.ZoneInfo.Parser.parse_leap_seconds/413321333 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13341335 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions}13361337 but got type:13381339 dynamic(%{..., transitions: term()})13401341 where "zone" was given the type:13421343 # type: dynamic(%{..., transitions: term()})1344 # from: lib/parse/zoneinfo/parser.ex:354:151345 Enum.with_index(zone.transitions)13461347 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13481349 type warning found at:1350 │1351 362 │ parse_posixtz_string(version, rest, %Zone{zone | transitions: transitions})1352 │ ~1353 │1354 └─ lib/parse/zoneinfo/parser.ex:362:43: Timex.Parse.ZoneInfo.Parser.parse_flags/413551356 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13571358 %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions}13591360 but got type:13611362 dynamic(%{..., transitions: term()})13631364 where "zone" was given the type:13651366 # type: dynamic(%{..., transitions: term()})1367 # from: lib/parse/zoneinfo/parser.ex:354:151368 Enum.with_index(zone.transitions)13691370 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13711372 type warning found at:1373 │1374 364 │ {:ok, %Zone{zone | transitions: transitions}, rest}1375 │ ~1376 │1377 └─ lib/parse/zoneinfo/parser.ex:364:13: Timex.Parse.ZoneInfo.Parser.parse_flags/413781379 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:13801381 %Timex.Parse.ZoneInfo.Parser.Zone{zone | rule: rule}13821383 but got type:13841385 dynamic()13861387 where "zone" was given the type:13881389 # type: dynamic()1390 # from: lib/parse/zoneinfo/parser.ex:369:621391 zone13921393 when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"13941395 type warning found at:1396 │1397 372 │ {:ok, %Zone{zone | rule: rule}, format_rest <> rest}1398 │ ~1399 │1400 └─ lib/parse/zoneinfo/parser.ex:372:13: Timex.Parse.ZoneInfo.Parser.parse_posixtz_string/314011402 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14031404 %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_abbr: abbr, dst_abbr: abbr}14051406 but got type:14071408 dynamic()14091410 where "rule" was given the type:14111412 # type: dynamic()1413 # from: lib/parse/zoneinfo/parser.ex:383:331414 rule14151416 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"14171418 type warning found at:1419 │1420 385 │ parse_tz(:std_offset, rest, %Rule{rule | std_abbr: abbr, dst_abbr: abbr})1421 │ ~1422 │1423 └─ lib/parse/zoneinfo/parser.ex:385:35: Timex.Parse.ZoneInfo.Parser.parse_tz/314241425 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14261427 %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_offset: offset, dst_offset: offset}14281429 but got type:14301431 dynamic()14321433 where "rule" was given the type:14341435 # type: dynamic()1436 # from: lib/parse/zoneinfo/parser.ex:389:351437 rule14381439 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"14401441 type warning found at:1442 │1443 391 │ parse_tz(:dst_abbr, rest, %Rule{rule | std_offset: offset, dst_offset: offset})1444 │ ~1445 │1446 └─ lib/parse/zoneinfo/parser.ex:391:33: Timex.Parse.ZoneInfo.Parser.parse_tz/314471448 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14491450 %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_abbr: abbr}14511452 but got type:14531454 dynamic()14551456 where "rule" was given the type:14571458 # type: dynamic()1459 # from: lib/parse/zoneinfo/parser.ex:405:331460 rule14611462 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"14631464 type warning found at:1465 │1466 407 │ rule = %Rule{rule | dst_abbr: abbr} do1467 │ ~1468 │1469 └─ lib/parse/zoneinfo/parser.ex:407:17: Timex.Parse.ZoneInfo.Parser.parse_tz/314701471 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14721473 %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_offset: offset}14741475 but got type:14761477 dynamic()14781479 where "rule" was given the type:14801481 # type: dynamic()1482 # from: lib/parse/zoneinfo/parser.ex:424:351483 rule14841485 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"14861487 type warning found at:1488 │1489 426 │ rule = %Rule{rule | dst_offset: offset} do1490 │ ~1491 │1492 └─ lib/parse/zoneinfo/parser.ex:426:17: Timex.Parse.ZoneInfo.Parser.parse_tz/314931494 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:14951496 %Timex.Parse.ZoneInfo.Parser.Rule{rule | start_time: start_time, end_time: end_time}14971498 but got type:14991500 dynamic()15011502 where "rule" was given the type:15031504 # type: dynamic()1505 # from: lib/parse/zoneinfo/parser.ex:449:361506 rule15071508 when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"15091510 type warning found at:1511 │1512 454 │ {:ok, %Rule{rule | start_time: start_time, end_time: end_time}, rest}1513 │ ~1514 │1515 └─ lib/parse/zoneinfo/parser.ex:454:17: Timex.Parse.ZoneInfo.Parser.parse_tz/315161517 warning: the following clause will never match:15181519 :error ->15201521 it is expected to match on type:15221523 dynamic({:error, :invalid_number, binary()})15241525 type warning found at:1526 │1527 528 │ :error ->1528 │ ~~~~~~~~~1529 │1530 └─ lib/parse/zoneinfo/parser.ex:528: Timex.Parse.ZoneInfo.Parser.parse_month_week_day/315311532Generated timex app1533==> nimble_pool1534Compiling 2 files (.ex)1535Generated nimble_pool app1536==> finch1537Compiling 23 files (.ex)1538Generated finch app1539==> tesla1540Compiling 57 files (.ex)1541Generated tesla app1542==> oauth21543Compiling 13 files (.ex)1544Generated oauth2 app1545==> ueberauth_okta1546Compiling 3 files (.ex)1547 warning: unused require Jason1548 │1549 16 │ require Jason1550 │ ~1551 │1552 └─ lib/ueberauth/strategy/okta/oauth.ex:16:315531554Generated ueberauth_okta app1555==> property_table1556Compiling 8 files (.ex)1557Generated property_table app1558==> nerves_uevent1559 CC uevent.o1560 LD uevent1561Compiling 5 files (.ex)1562Generated nerves_uevent app1563==> nerves_runtime1564Compiling 14 files (.ex)1565Generated nerves_runtime app1566==> toolshed1567Compiling 5 files (.ex)1568Generated toolshed app1569==> tailwind1570Compiling 3 files (.ex)1571Generated tailwind app1572==> nerves_compatibility_test1573===> Analyzing applications...1574===> Compiling cowboy_telemetry1575==> plug_cowboy1576Compiling 5 files (.ex)1577Generated plug_cowboy app1578==> websock1579Compiling 1 file (.ex)1580Generated websock app1581==> websock_adapter1582Compiling 4 files (.ex)1583Generated websock_adapter app1584warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1585 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21586 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11587 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51588 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21589 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41590 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/215911592==> phoenix1593Compiling 71 files (.ex)1594 warning: unused require Logger1595 │1596 9 │ require Logger1597 │ ~1598 │1599 └─ lib/phoenix/config.ex:9:316001601 warning: unused require Logger1602 │1603 281 │ require Logger1604 │ ~1605 │1606 └─ lib/phoenix/endpoint.ex:281:316071608 warning: unused require Phoenix.Endpoint1609 │1610 6 │ require Phoenix.Endpoint1611 │ ~1612 │1613 └─ lib/phoenix/controller.ex:6:316141615 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 operator1616 │1617 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1618 │ ~1619 │1620 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/216211622 warning: unused require Phoenix.Endpoint1623 │1624 17 │ require Phoenix.Endpoint1625 │ ~1626 │1627 └─ lib/phoenix/endpoint/render_errors.ex:17:316281629 warning: unused require Phoenix.Endpoint1630 │1631 6 │ require Phoenix.Endpoint1632 │ ~1633 │1634 └─ lib/phoenix/channel/server.ex:6:316351636 warning: unused require Phoenix.Endpoint1637 │1638 202 │ require Phoenix.Endpoint1639 │ ~1640 │1641 └─ lib/phoenix/socket.ex:202:316421643 warning: unused require Logger1644 │1645 70 │ require Logger1646 │ ~1647 │1648 └─ lib/phoenix/socket/pool_supervisor.ex:70:316491650 warning: unused require Logger1651 │1652 100 │ require Logger1653 │ ~1654 │1655 └─ lib/phoenix/token.ex:100:316561657 warning: comparison between distinct types found:16581659 merge_all != []16601661 given types:16621663 dynamic(non_empty_list({atom(), term()})) != empty_list()16641665 where "merge_all" was given the type:16661667 # type: dynamic(non_empty_list({atom(), term()}))1668 # from: lib/phoenix/router/route.ex:121:151669 merge_all = merge_params ++ merge_private ++ merge_assigns16701671 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 false16721673 type warning found at:1674 │1675 123 │ if merge_all != [] do1676 │ ~1677 │1678 └─ lib/phoenix/router/route.ex:123:18: Phoenix.Router.Route.build_prepare/116791680 warning: a struct for Plug.Conn is expected on struct update:16811682 %Plug.Conn{conn | state: :sent}16831684 but got type:16851686 dynamic()16871688 where "conn" was given the type:16891690 # type: dynamic()1691 # from: lib/phoenix/endpoint/render_errors.ex:55:171692 conn16931694 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"16951696 type warning found at:1697 │1698 60 │ %Plug.Conn{conn | state: :sent}1699 │ ~1700 │1701 └─ lib/phoenix/endpoint/render_errors.ex:60:11: Phoenix.Endpoint.RenderErrors.__catch__/517021703 warning: a struct for Plug.Conn is expected on struct update:17041705 %Plug.Conn{conn | query_params: %{}, params: %{}}17061707 but got type:17081709 dynamic(%{..., params: %Plug.Conn.Unfetched{}})17101711 where "conn" was given the types:17121713 # type: dynamic(%{..., params: term()})1714 # from: lib/phoenix/endpoint/render_errors.ex:133:171715 conn.params17161717 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1718 # from: lib/phoenix/endpoint/render_errors.ex:133:171719 conn.params17201721 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"17221723 type warning found at:1724 │1725 134 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1726 │ ~1727 │1728 └─ lib/phoenix/endpoint/render_errors.ex:134:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/117291730 warning: a struct for Plug.Conn is expected on struct update:17311732 %Plug.Conn{conn | query_params: %{}, params: params}17331734 but got type:17351736 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})17371738 where "conn" was given the types:17391740 # type: dynamic(%{..., params: term()})1741 # from: lib/phoenix/endpoint/render_errors.ex:133:171742 conn.params17431744 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1745 # from: lib/phoenix/endpoint/render_errors.ex:133:171746 conn.params17471748 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"17491750 type warning found at:1751 │1752 135 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}1753 │ ~1754 │1755 └─ lib/phoenix/endpoint/render_errors.ex:135:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/117561757 warning: a struct for Plug.Conn is expected on struct update:17581759 %Plug.Conn{conn | params: params}17601761 but got type:17621763 dynamic(%{..., params: map()})17641765 where "conn" was given the type:17661767 # type: dynamic(%{..., params: map()})1768 # from: lib/phoenix/controller.ex:1327:171769 Map.get(conn.params, required_key)17701771 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"17721773 type warning found at:1774 │1775 1334 │ %Plug.Conn{conn | params: params}1776 │ ~1777 │1778 └─ lib/phoenix/controller.ex:1334:5: Phoenix.Controller.scrub_params/217791780Generated phoenix app1781warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1782 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21783 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11784 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51785 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21786 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41787 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/217881789==> phoenix_live_view1790Compiling 39 files (.ex)1791 warning: unused require Logger1792 │1793 48 │ require Logger1794 │ ~1795 │1796 └─ lib/phoenix_live_view/socket.ex:48:317971798 warning: unused require Phoenix.ChannelTest1799 │1800 183 │ require Phoenix.ChannelTest1801 │ ~1802 │1803 └─ lib/phoenix_live_view/test/live_view_test.ex:183:318041805 warning: unused require Phoenix.ConnTest1806 │1807 182 │ require Phoenix.ConnTest1808 │ ~1809 │1810 └─ lib/phoenix_live_view/test/live_view_test.ex:182:318111812 warning: unused require Phoenix.ChannelTest1813 │1814 5 │ require Phoenix.ChannelTest1815 │ ~1816 │1817 └─ lib/phoenix_live_view/test/upload_client.ex:5:318181819 warning: unused require Logger1820 │1821 6 │ require Logger1822 │ ~1823 │1824 └─ lib/phoenix_live_view/upload_channel.ex:6:318251826 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:18271828 %Phoenix.LiveView.Socket{1829 socket1830 | assigns: Map.merge(temp_assigns, socket.assigns),1831 private:1832 Map.update(1833 socket.private,1834 :temporary_assigns,1835 temp_assigns,1836 &Map.merge(&1, temp_assigns)1837 )1838 }18391840 but got type:18411842 dynamic()18431844 where "socket" was given the type:18451846 # type: dynamic()1847 # from: lib/phoenix_live_view/utils.ex:415:281848 socket18491850 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"18511852 type warning found at:1853 │1854 422 │ %Socket{1855 │ ~1856 │1857 └─ lib/phoenix_live_view/utils.ex:422:5: Phoenix.LiveView.Utils.handle_mount_option/318581859 warning: the following clause will never match:18601861 {:error, reason} ->18621863 because it attempts to match on the result of:18641865 IO.binwrite(state.file, data)18661867 which has type:18681869 dynamic(not {:error, term()})18701871 type warning found at:1872 │1873 23 │ {:error, reason} -> {:error, reason, state}1874 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1875 │1876 └─ lib/phoenix_live_view/upload_tmp_file_writer.ex:23: Phoenix.LiveView.UploadTmpFileWriter.write_chunk/218771878 warning: the following clause is redundant:18791880 def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)18811882 it has type:18831884 dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))18851886 previous clauses have already matched on the following types:18871888 %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())1889 %Phoenix.LiveView.Socket{}, term(), (none() -> term())1890 term(), term(), (none(), none() -> term())1891 term(), term(), (none() -> term())18921893 │1894 1378 │ def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do1895 │ ~1896 │1897 └─ lib/phoenix_component.ex:1378:7: Phoenix.Component.update/318981899 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19001901 %Phoenix.LiveView.UploadEntry{1902 entry1903 | preflighted?: entry.preflighted? || Enum.__in__(entry.ref, refs)1904 }19051906 but got type:19071908 dynamic()19091910 where "entry" was given the type:19111912 # type: dynamic()1913 # from: lib/phoenix_live_view/upload_config.ex:362:171914 entry <- conf.entries19151916 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19171918 type warning found at:1919 │1920 363 │ %UploadEntry{entry | preflighted?: entry.preflighted? || entry.ref in refs}1921 │ ~1922 │1923 └─ lib/phoenix_live_view/upload_config.ex:363:9: Phoenix.LiveView.UploadConfig.mark_preflighted/219241925 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19261927 %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}19281929 but got type:19301931 dynamic()19321933 where "entry" was given the type:19341935 # type: dynamic()1936 # from: lib/phoenix_live_view/upload_config.ex:572:301937 entry19381939 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19401941 type warning found at:1942 │1943 573 │ entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}1944 │ ~1945 │1946 └─ lib/phoenix_live_view/upload_config.ex:573:13: Phoenix.LiveView.UploadConfig.put_valid_entry/219471948 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19491950 %Phoenix.LiveView.UploadEntry{entry | valid?: false}19511952 but got type:19531954 dynamic()19551956 where "entry" was given the type:19571958 # type: dynamic()1959 # from: lib/phoenix_live_view/upload_config.ex:585:321960 entry19611962 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19631964 type warning found at:1965 │1966 586 │ entry = %UploadEntry{entry | valid?: false}1967 │ ~1968 │1969 └─ lib/phoenix_live_view/upload_config.ex:586:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/319701971 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19721973 %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}19741975 but got type:19761977 dynamic()19781979 where "entry" was given the type:19801981 # type: dynamic()1982 # from: lib/phoenix_live_view/upload_config.ex:669:421983 entry19841985 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19861987 type warning found at:1988 │1989 669 │ update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)1990 │ ~1991 │1992 └─ lib/phoenix_live_view/upload_config.ex:669:51: Phoenix.LiveView.UploadConfig.cancel_entry/219931994 warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead1995 │1996 73 │ Logger.disable(self())1997 │ ~1998 │1999 └─ lib/phoenix_live_view/test/client_proxy.ex:73:12: Phoenix.LiveViewTest.ClientProxy.init/120002001 warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:20022003 %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}20042005 but got type:20062007 dynamic(%{..., rendered: map()})20082009 where "view" was given the type:20102011 # type: dynamic(%{..., rendered: map()})2012 # from: lib/phoenix_live_view/test/client_proxy.ex:727:262013 Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)20142015 when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"20162017 type warning found at:2018 │2019 728 │ new_view = %ClientProxy{view | rendered: rendered}2020 │ ~2021 │2022 └─ lib/phoenix_live_view/test/client_proxy.ex:728:22: Phoenix.LiveViewTest.ClientProxy.merge_rendered/320232024 warning: the right-hand side of || (shown as ... below) will never be executed:20252026 conn.private[:live_view_connect_info] || prune_conn(conn) || ...20272028 because the left-hand side always evaluates to:20292030 dynamic(not false and not nil)20312032 where "conn" was given the types:20332034 # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})2035 # from: lib/phoenix_live_view/test/live_view_test.ex:319:722036 %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn20372038 # type: dynamic(%Plug.Conn{2039 assigns: %{..., live_module: term()},2040 private:2041 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or2042 non_struct_map(),2043 status: integer()2044 })2045 # from: lib/phoenix_live_view/test/live_view_test.ex:333:352046 conn.private[:live_view_connect_params]20472048 type warning found at:2049 │2050 334 │ connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},2051 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2052 │2053 └─ lib/phoenix_live_view/test/live_view_test.ex:334: Phoenix.LiveViewTest.connect_from_static_token/220542055 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:20562057 %Phoenix.LiveView.Socket{2058 socket2059 | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}2060 }20612062 but got type:20632064 dynamic(%{..., assigns: term()})20652066 where "socket" was given the type:20672068 # type: dynamic(%{..., assigns: term()})2069 # from: lib/phoenix_live_view/renderer.ex:121:432070 %{assigns: assigns} = socket20712072 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"20732074 type warning found at:2075 │2076 122 │ socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}2077 │ ~2078 │2079 └─ lib/phoenix_live_view/renderer.ex:122:14: Phoenix.LiveView.Renderer.render_assigns/120802081 warning: the following pattern will never match:20822083 template = Phoenix.LiveView.Utils.normalize_layout(template)20842085 because the right-hand side has type:20862087 none()20882089 where "template" was given the types:20902091 # type: binary()2092 # from: lib/phoenix_live_view/router.ex:299:662093 is_binary(template)20942095 # type: binary()2096 # from: lib/phoenix_live_view/router.ex2097 {:root_layout, {mod, template}}20982099 type warning found at:2100 │2101 300 │ template = Phoenix.LiveView.Utils.normalize_layout(template)2102 │ ~2103 │2104 └─ lib/phoenix_live_view/router.ex:300:18: Phoenix.LiveView.Router.validate_live_session_opts/321052106 warning: the following pattern will never match:21072108 template = Phoenix.LiveView.Utils.normalize_layout(template)21092110 because the right-hand side has type:21112112 none()21132114 where "template" was given the types:21152116 # type: binary()2117 # from: lib/phoenix_live_view/router.ex:316:612118 is_binary(template)21192120 # type: binary()2121 # from: lib/phoenix_live_view/router.ex2122 {:layout, {mod, template}}21232124 type warning found at:2125 │2126 317 │ template = Phoenix.LiveView.Utils.normalize_layout(template)2127 │ ~2128 │2129 └─ lib/phoenix_live_view/router.ex:317:18: Phoenix.LiveView.Router.validate_live_session_opts/321302131 warning: the following clause is redundant:21322133 def to_iodata(%_{} = struct)21342135 it has type:21362137 dynamic(%Phoenix.LiveView.Rendered{})21382139 previous clauses have already matched on the following types:21402141 %Phoenix.LiveView.Rendered{}21422143 │2144 152 │ def to_iodata(%_{} = struct) do2145 │ ~2146 │2147 └─ lib/phoenix_live_view/engine.ex:152:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121482149 warning: the 1st pattern in clause will never match:21502151 nil21522153 because it is expected to receive type:21542155 dynamic(%Phoenix.LiveView.Rendered{})21562157 hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}21582159 type warning found at:2160 │2161 156 │ def to_iodata(nil) do2162 │ ~~~~~~~~~~~~~~~~~~~~~2163 │2164 └─ lib/phoenix_live_view/engine.ex:156: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121652166 warning: the following clause is redundant:21672168 def to_iodata(other)21692170 it has type:21712172 dynamic(%Phoenix.LiveView.Rendered{})21732174 previous clauses have already matched on the following types:21752176 %Phoenix.LiveView.Rendered{}21772178 │2179 160 │ def to_iodata(other) do2180 │ ~2181 │2182 └─ lib/phoenix_live_view/engine.ex:160:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121832184 warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)2185 │2186 903 │ defp class_names(nil), do: []2187 │ ~2188 │2189 └─ lib/phoenix_live_view/js.ex:903:8: Phoenix.LiveView.JS.class_names/121902191Generated phoenix_live_view app2192warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"2193 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/22194 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/12195 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/52196 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/22197 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/42198 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/221992200==> heroicons2201Compiling 3 files (.ex)2202Compiling lib/heroicons.ex (it's taking more than 10s)2203Generated heroicons app2204==> paleta2205Compiling 67 files (.ex)2206 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)2207 │2208 56 │ <%= live_component(Paleta.Components.Live.GlobalSearch,2209 │ ^^^^^^^^^^^^^^2210 │2211 └─ lib/components/app_header.ex:56:17: Paleta.Components.AppHeader."app_header (overridable 1)"/1221222132214== Compilation error in file lib/components/app_header.ex ==2215** (CompileError) lib/components/app_header.ex: cannot compile module Paleta.Components.AppHeader (errors have been logged)22162217could 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"