Build log
nerves_system_rpi0
kino_live_view_native 0.2.2 · fail · run kino_live_view_native-0.2.2-1790967424002
1625 of 1625 lines
1Resolving Hex dependencies...2Resolution completed in 0.582s3Unchanged:4 castore 1.0.215 circular_buffer 1.1.06 cowboy 2.19.07 cowboy_telemetry 0.4.08 cowlib 2.20.0 VULNERABLE!9 EEF-CVE-2026-43966 (MEDIUM)10 aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c11 HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/212 https://osv.dev/vulnerability/EEF-CVE-2026-439661314 EEF-CVE-2026-43969 (LOW)15 aka: CVE-2026-43969, GHSA-g2wm-735q-3f5616 Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/117 https://osv.dev/vulnerability/EEF-CVE-2026-4396918 decimal 3.1.119 deep_merge 1.0.220 dns_cluster 0.1.321 ecto 3.14.222 elixir_make 0.10.023 esbuild 0.10.024 expo 1.1.125 file_system 1.1.126 finch 0.24.027 floki 0.38.428 fss 0.1.129 gettext 0.26.230 hpax 1.1.031 interactive_cmd 0.1.432 jason 1.4.533 kino 0.12.334 kino_live_view_native 0.2.235 live_view_native 0.2.036 live_view_native_platform 0.2.037 live_view_native_stylesheet 0.2.038 live_view_native_swiftui 0.2.139 makeup 1.2.240 makeup_json 0.1.141 makeup_swift 0.0.242 mime 2.0.743 mint 1.11.044 nerves 2.0.0-pre.245 nerves_discovery 0.1.546 nerves_logging 0.2.447 nerves_runtime 0.13.1348 nerves_system_bbb 2.30.249 nerves_system_br 1.34.450 nerves_system_mangopi_mq_pro 0.17.251 nerves_system_qemu_aarch64 0.4.252 nerves_system_rpi0 2.1.253 nerves_system_rpi4 2.1.254 nerves_system_rpi5 2.1.255 nerves_system_trellis 0.5.056 nerves_system_x86_64 1.34.257 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.158 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.159 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.160 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.161 nerves_toolchain_x86_64_nerves_linux_musl 15.3.162 nerves_uevent 0.1.763 nimble_options 1.1.164 nimble_parsec 1.4.265 nimble_pool 1.1.066 owl 0.13.167 phoenix 1.7.2468 phoenix_html 3.3.469 phoenix_live_dashboard 0.8.770 phoenix_live_reload 1.7.071 phoenix_live_view 0.20.2 VULNERABLE!72 EEF-CVE-2026-64941 (LOW)73 aka: CVE-2026-64941, GHSA-36m4-rm57-3prf74 Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR75 https://osv.dev/vulnerability/EEF-CVE-2026-6494176 phoenix_pubsub 2.3.077 phoenix_template 1.1.078 phoenix_view 2.0.479 plug 1.20.380 plug_cowboy 2.9.081 plug_crypto 2.2.082 property_table 0.3.483 ranch 2.3.084 ring_logger 0.11.785 table 0.1.286 tablet 0.3.387 tailwind 0.2.488 telemetry 1.4.289 telemetry_metrics 0.6.290 telemetry_poller 1.3.091 toolshed 0.5.092 uboot_env 1.0.293 websock 0.5.394 websock_adapter 0.5.995* Getting kino_live_view_native (Hex package)96* Getting nerves (Hex package)97* Getting ring_logger (Hex package)98* Getting toolshed (Hex package)99* Getting nerves_runtime (Hex package)100* Getting nerves_system_bbb (Hex package)101* Getting nerves_system_mangopi_mq_pro (Hex package)102* Getting nerves_system_qemu_aarch64 (Hex package)103* Getting nerves_system_rpi0 (Hex package)104* Getting nerves_system_rpi4 (Hex package)105* Getting nerves_system_rpi5 (Hex package)106* Getting nerves_system_trellis (Hex package)107* Getting nerves_system_x86_64 (Hex package)108* Getting nerves_system_br (Hex package)109* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)110* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)111* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)112* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)113* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)114* Getting nerves_logging (Hex package)115* Getting nerves_uevent (Hex package)116* Getting uboot_env (Hex package)117* Getting elixir_make (Hex package)118* Getting property_table (Hex package)119* Getting circular_buffer (Hex package)120* Getting interactive_cmd (Hex package)121* Getting nerves_discovery (Hex package)122* Getting tablet (Hex package)123* Getting dns_cluster (Hex package)124* Getting esbuild (Hex package)125* Getting finch (Hex package)126* Getting floki (Hex package)127* Getting gettext (Hex package)128* Getting jason (Hex package)129* Getting kino (Hex package)130* Getting live_view_native (Hex package)131* Getting live_view_native_swiftui (Hex package)132* Getting phoenix (Hex package)133* Getting phoenix_html (Hex package)134* Getting phoenix_live_dashboard (Hex package)135* Getting phoenix_live_reload (Hex package)136* Getting phoenix_live_view (Hex package)137* Getting plug_cowboy (Hex package)138* Getting tailwind (Hex package)139* Getting telemetry_metrics (Hex package)140* Getting telemetry_poller (Hex package)141* Getting telemetry (Hex package)142* Getting castore (Hex package)143* Getting cowboy (Hex package)144* Getting cowboy_telemetry (Hex package)145* Getting plug (Hex package)146* Getting mime (Hex package)147* Getting plug_crypto (Hex package)148* Getting cowlib (Hex package)149* Getting ranch (Hex package)150* Getting phoenix_template (Hex package)151* Getting file_system (Hex package)152* Getting phoenix_pubsub (Hex package)153* Getting websock_adapter (Hex package)154* Getting websock (Hex package)155* Getting live_view_native_platform (Hex package)156* Getting live_view_native_stylesheet (Hex package)157* Getting makeup_json (Hex package)158* Getting makeup_swift (Hex package)159* Getting nimble_parsec (Hex package)160* Getting makeup (Hex package)161* Getting ecto (Hex package)162* Getting decimal (Hex package)163* Getting deep_merge (Hex package)164* Getting owl (Hex package)165* Getting phoenix_view (Hex package)166* Getting fss (Hex package)167* Getting table (Hex package)168* Getting expo (Hex package)169* Getting mint (Hex package)170* Getting nimble_options (Hex package)171* Getting nimble_pool (Hex package)172* Getting hpax (Hex package)173Found packages with security advisories, see above for details174You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more175==> nerves_system_br176Generated nerves_system_br app177==> file_system178Compiling 7 files (.ex)179Generated file_system app180==> floki181Compiling 1 file (.xrl)182Compiling 2 files (.erl)183Compiling 30 files (.ex)184Generated floki app185==> mime186Compiling 1 file (.ex)187Generated mime app188==> circular_buffer189Compiling 1 file (.ex)190Generated circular_buffer app191==> nimble_options192Compiling 3 files (.ex)193Generated nimble_options app194==> plug_crypto195Compiling 5 files (.ex)196Generated plug_crypto app197==> hpax198Compiling 4 files (.ex)199Generated hpax app200==> nerves_compatibility_test201===> Analyzing applications...202===> Compiling ranch203==> tablet204Compiling 2 files (.ex)205Generated tablet app206==> owl207Compiling 19 files (.ex)208Generated owl app209==> elixir_make210Compiling 8 files (.ex)211Generated elixir_make app212==> nerves_logging213 CC kmsg_tailer.o214 LD kmsg_tailer215Compiling 5 files (.ex)216Generated nerves_logging app217==> castore218Compiling 1 file (.ex)219Generated castore app220==> mint221Compiling 1 file (.erl)222Compiling 21 files (.ex)223Generated mint app224==> nerves_compatibility_test225===> Analyzing applications...226===> Compiling cowlib227==> nerves_discovery228Compiling 5 files (.ex)229Generated nerves_discovery app230==> ring_logger231Compiling 7 files (.ex)232Generated ring_logger app233==> deep_merge234Compiling 2 files (.ex)235Generated deep_merge app236==> decimal237Compiling 4 files (.ex)238Generated decimal app239==> jason240Compiling 10 files (.ex)241Generated jason app242==> esbuild243Compiling 4 files (.ex)244Generated esbuild app245==> table246Compiling 5 files (.ex)247Generated table app248==> interactive_cmd249Compiling 1 file (.ex)250Generated interactive_cmd app251==> nerves252Compiling 65 files (.ex)253 warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)254 │255 6 │ defmodule Mix.Tasks.Nerves.Init do256 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~257 │258 └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)259260 warning: redefining module Nerves (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.beam)261 │262 6 │ defmodule Nerves do263 │ ~~~~~~~~~~~~~~~~~~~264 │265 └─ lib/nerves.ex:6: Nerves (module)266267 warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)268 │269 5 │ defmodule Nerves.ArtifactResolver do270 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~271 │272 └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)273274 warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)275 │276 6 │ defmodule Nerves.BuildAction.AppModes do277 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~278 │279 └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)280281 warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)282 │283 5 │ defmodule Nerves.BuildAction.CheckExecutables do284 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~285 │286 └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)287288 warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)289 │290 8 │ defmodule Nerves.BuildAction.Erlinit do291 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~292 │293 └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)294295 warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)296 │297 5 │ defmodule Nerves.BuildAction.Firmware do298 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~299 │300 └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)301302 warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)303 │304 7 │ defmodule Nerves.BuildAction.IExStartupCheck do305 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~306 │307 └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)308309 warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)310 │311 5 │ defmodule Nerves.BuildAction.NervesV1System do312 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~313 │314 └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)315316 warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)317 │318 5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do319 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~320 │321 └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)322323 warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)324 │325 5 │ defmodule Nerves.BuildAction.Rootfs do326 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~327 │328 └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)329330 warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)331 │332 6 │ defmodule Nerves.BuildAction.SortApps do333 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~334 │335 └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)336337 warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)338 │339 5 │ defmodule Nerves.BuildAction.StripAll do340 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~341 │342 └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)343344 warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)345 │346 5 │ defmodule Nerves.BuildAction.Trimmer do347 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~348 │349 └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)350351 warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)352 │353 5 │ defmodule Nerves.BuildPlan do354 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~355 │356 └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)357358 warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)359 │360 5 │ defmodule Nerves.BuildPlan.Checks do361 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~362 │363 └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)364365 warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.Container.beam)366 │367 6 │ defmodule Nerves.Container do368 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~369 │370 └─ lib/nerves/container.ex:6: Nerves.Container (module)371372 warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)373 │374 5 │ defmodule Nerves.Fingerprint do375 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~376 │377 └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)378379 warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)380 │381 5 │ defmodule Nerves.MixPackage do382 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~383 │384 └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)385386 warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.Paths.beam)387 │388 5 │ defmodule Nerves.Paths do389 │ ~~~~~~~~~~~~~~~~~~~~~~~~~390 │391 └─ lib/nerves/paths.ex:5: Nerves.Paths (module)392393 warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/rpi0/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)394 │395 5 │ defmodule Nerves.TargetTuple do396 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~397 │398 └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)399400Generated nerves app401==> nerves_toolchain_armv6_nerves_linux_gnueabihf402Compiling 1 file (.ex)403Generated nerves_toolchain_armv6_nerves_linux_gnueabihf app404==> nerves_system_rpi0405Generated nerves_system_rpi0 app406==> nimble_parsec407Compiling 4 files (.ex)408Generated nimble_parsec app409==> makeup410Compiling 15 files (.ex)411Generated makeup app412==> makeup_swift413Compiling 3 files (.ex)414 warning: this clause cannot match because a previous clause at line 233 matches the same pattern as this clause415 │416 233 │ defparsec(417 │ ~~~~~~~~~~418 │419 └─ lib/makeup/lexers/swift_lexer.ex:233420421 warning: this clause cannot match because a previous clause at line 233 matches the same pattern as this clause422 │423 233 │ defparsec(424 │ ~~~~~~~~~~425 │426 └─ lib/makeup/lexers/swift_lexer.ex:233427428 warning: this clause cannot match because a previous clause at line 233 matches the same pattern as this clause429 │430 233 │ defparsec(431 │ ~~~~~~~~~~432 │433 └─ lib/makeup/lexers/swift_lexer.ex:233434435Generated makeup_swift app436==> nerves_compatibility_test437===> Analyzing applications...438===> Compiling telemetry439==> telemetry_metrics440Compiling 7 files (.ex)441 warning: unused require Logger442 │443 391 │ require Logger444 │ ~445 │446 └─ lib/telemetry_metrics.ex:391:3447448Generated telemetry_metrics app449==> nerves_compatibility_test450===> Analyzing applications...451===> Compiling telemetry_poller452==> ecto453Compiling 56 files (.ex)454Generated ecto app455==> nerves_compatibility_test456===> Analyzing applications...457===> Compiling cowboy458==> expo459Compiling 2 files (.erl)460Compiling 22 files (.ex)461Generated expo app462==> gettext463Compiling 18 files (.ex)464 warning: unused require Gettext.Macros465 │466 594 │ require Gettext.Macros467 │ ~468 │469 └─ lib/gettext.ex:594:3470471 warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead472 │473 426 │ Kernel.ParallelCompiler.async(fn ->474 │ ~475 │476 └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3477478 warning: the following clause is redundant:479480 defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)481482 it has type:483484 dynamic(%Expo.Message.Plural{})485486 previous clauses have already matched on the following types:487488 %Expo.Message.Singular{}489 %Expo.Message.Plural{}490491 │492 391 │ defp ensure_empty_msgstr!(%Message.Plural{} = message) do493 │ ~494 │495 └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1496497Generated gettext app498==> phoenix_pubsub499Compiling 12 files (.ex)500Generated phoenix_pubsub app501==> live_view_native_stylesheet502Compiling 14 files (.ex)503Generated live_view_native_stylesheet app504==> dns_cluster505Compiling 1 file (.ex)506 warning: comparison between distinct types found:507508 net_state.started != :no509510 given types:511512 dynamic(not :no) != :no513514 where "net_state" was given the types:515516 # type: dynamic()517 # from: lib/dns_cluster.ex:166:8518 net_state519520 # type: dynamic(not false and not nil)521 # from: lib/dns_cluster.ex:166:8522 net_state523524 # type: dynamic(%{..., started: term()})525 # from: lib/dns_cluster.ex:169:25526 net_state.started == :no527528 # type: dynamic(%{..., started: not :no})529 # from: lib/dns_cluster.ex:179:25530 net_state.started == :no531532 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 false533534 type warning found at:535 │536 180 │ (!release? and net_state.started != :no and net_state[:name_domain] != :longnames) ->537 │ ~538 │539 └─ lib/dns_cluster.ex:180:44: DNSCluster.warn_on_invalid_dist/0540541Generated dns_cluster app542==> makeup_json543Compiling 3 files (.ex)544Generated makeup_json app545==> fss546Compiling 4 files (.ex)547Generated fss app548==> kino549Compiling 47 files (.ex)550 warning: unused require Logger551 │552 4 │ require Logger553 │ ~554 │555 └─ lib/kino/smart_cell/server.ex:4:3556557 warning: unused require Logger558 │559 183 │ require Logger560 │ ~561 │562 └─ lib/kino/smart_cell.ex:183:3563564 warning: you are implementing a protocol for Nx.Heatmap but said module is not available. Make sure the module name is correct. If Nx.Heatmap is an optional dependency, please wrap the protocol implementation in a Code.ensure_loaded?(Nx.Heatmap) check565 │566 239 │ defimpl Kino.Render, for: Nx.Heatmap do567 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~568 │569 └─ lib/kino/render.ex:239: (file)570571 warning: comparison between distinct types found:572573 assets_path != nil574575 given types:576577 dynamic(binary() or empty_list() or non_empty_list(term(), term())) != nil578579 where "assets_path" was given the types:580581 # type: dynamic(nil or binary() or empty_list() or non_empty_list(term(), term()))582 # from: lib/kino/js.ex:253:19583 __paths__(assets_path)584585 # type: dynamic(binary() or empty_list() or non_empty_list(term(), term()))586 # from: lib/kino/js.ex:257:25587 Path.join(assets_path, path)588589 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 false590591 type warning found at:592 │593 266 │ assets_path_defined? = assets_path != nil594 │ ~595 │596 └─ lib/kino/js.ex:266:40: Kino.JS.__before_compile__/1597598Generated kino app599==> plug600Compiling 1 file (.erl)601Compiling 42 files (.ex)602Generated plug app603==> phoenix_html604Compiling 9 files (.ex)605 warning: comparison between distinct types found:606607 id == nil608609 given types:610611 dynamic(not false and not nil and not binary()) == nil612613 where "id" was given the types:614615 # type: dynamic(not false and not nil)616 # from: lib/phoenix_html/form_data.ex:92:8617 id = Keyword.get(opts, :id) || name618619 # type: dynamic(not false and not nil and not binary())620 # from: lib/phoenix_html/form_data.ex:94:12621 is_binary(id)622623 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 false624625 type warning found at:626 │627 94 │ unless is_binary(id) or is_nil(id) do628 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~629 │630 └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2631632 warning: the 1st pattern in clause will never match:633634 60635636 because it is expected to receive type:637638 dynamic(empty_list() or non_empty_list(term(), term()))639640 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())641642 type warning found at:643 │644 56 │ def to_iodata(?<), do: "<"645 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~646 │647 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1648649 warning: the 1st pattern in clause will never match:650651 62652653 because it is expected to receive type:654655 dynamic(empty_list() or non_empty_list(term(), term()))656657 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())658659 type warning found at:660 │661 57 │ def to_iodata(?>), do: ">"662 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~663 │664 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1665666 warning: the 1st pattern in clause will never match:667668 38669670 because it is expected to receive type:671672 dynamic(empty_list() or non_empty_list(term(), term()))673674 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())675676 type warning found at:677 │678 58 │ def to_iodata(?&), do: "&"679 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~680 │681 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1682683 warning: the 1st pattern in clause will never match:684685 34686687 because it is expected to receive type:688689 dynamic(empty_list() or non_empty_list(term(), term()))690691 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())692693 type warning found at:694 │695 59 │ def to_iodata(?"), do: """696 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~697 │698 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1699700 warning: the 1st pattern in clause will never match:701702 39703704 because it is expected to receive type:705706 dynamic(empty_list() or non_empty_list(term(), term()))707708 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())709710 type warning found at:711 │712 60 │ def to_iodata(?'), do: "'"713 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~714 │715 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1716717 warning: the 1st pattern in clause will never match:718719 {:safe, data}720721 because it is expected to receive type:722723 dynamic(empty_list() or non_empty_list(term(), term()))724725 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())726727 type warning found at:728 │729 76 │ def to_iodata({:safe, data}) do730 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~731 │732 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1733734 warning: the following clause is redundant:735736 def to_iodata(other)737738 it has type:739740 dynamic(empty_list() or non_empty_list(term(), term()))741742 previous clauses have already matched on the following types:743744 non_empty_list(term(), term())745 empty_list()746747 │748 80 │ def to_iodata(other) do749 │ ~750 │751 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1752753 warning: the 1st pattern in clause will never match:754755 h756757 because it is expected to receive type:758759 dynamic(empty_list() or non_empty_list(term(), term()))760761 where "h" was given the type:762763 # type: integer()764 # from: lib/phoenix_html/safe.ex:62:25765 is_integer(h)766767 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())768769 type warning found at:770 │771 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do772 │ ~773 │774 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1775776 warning: the 1st pattern in clause will never match:777778 h779780 because it is expected to receive type:781782 dynamic(empty_list() or non_empty_list(term(), term()))783784 where "h" was given the type:785786 # type: integer()787 # from: lib/phoenix_html/safe.ex:66:25788 is_integer(h)789790 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())791792 type warning found at:793 │794 66 │ def to_iodata(h) when is_integer(h) do795 │ ~796 │797 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1798799 warning: the 1st pattern in clause will never match:800801 h802803 because it is expected to receive type:804805 dynamic(empty_list() or non_empty_list(term(), term()))806807 where "h" was given the type:808809 # type: binary()810 # from: lib/phoenix_html/safe.ex:72:25811 is_binary(h)812813 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())814815 type warning found at:816 │817 72 │ def to_iodata(h) when is_binary(h) do818 │ ~819 │820 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1821822Generated phoenix_html app823==> phoenix_template824Compiling 4 files (.ex)825Generated phoenix_template app826==> live_view_native_platform827Compiling 11 files (.ex)828 warning: "else" clauses will never match because all patterns in "with" will always match829 │830 38 │ with spec <- Application.spec(otp_app),831 │ ~832 │833 └─ lib/live_view_native_platform/env.ex:38:5834835 warning: the following clause will never match:836837 error ->838839 it is expected to match on type:840841 none()842843 type warning found at:844 │845 64 │ error ->846 │ ~847 │848 └─ lib/live_view_native_platform/env.ex:64:7: LiveViewNativePlatform.Env.define/2849850Generated live_view_native_platform app851==> phoenix_view852Compiling 1 file (.ex)853 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 operator854 │855 655 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix856 │ ~857 │858 └─ lib/phoenix_view.ex:655:29: Phoenix.View.unsuffix/2859860Generated phoenix_view app861==> uboot_env862Compiling 5 files (.ex)863Generated uboot_env app864==> nimble_pool865Compiling 2 files (.ex)866Generated nimble_pool app867==> finch868Compiling 23 files (.ex)869Generated finch app870==> property_table871Compiling 8 files (.ex)872Generated property_table app873==> nerves_uevent874 CC uevent.o875 LD uevent876Compiling 5 files (.ex)877Generated nerves_uevent app878==> nerves_runtime879Compiling 14 files (.ex)880Generated nerves_runtime app881==> toolshed882Compiling 5 files (.ex)883Generated toolshed app884==> tailwind885Compiling 3 files (.ex)886Generated tailwind app887==> nerves_compatibility_test888===> Analyzing applications...889===> Compiling cowboy_telemetry890==> plug_cowboy891Compiling 5 files (.ex)892Generated plug_cowboy app893==> websock894Compiling 1 file (.ex)895Generated websock app896==> websock_adapter897Compiling 4 files (.ex)898Generated websock_adapter app899warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"900 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2901 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1902 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5903 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2904 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4905 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2906907==> phoenix908Compiling 71 files (.ex)909 warning: unused require Logger910 │911 9 │ require Logger912 │ ~913 │914 └─ lib/phoenix/config.ex:9:3915916 warning: unused require Logger917 │918 281 │ require Logger919 │ ~920 │921 └─ lib/phoenix/endpoint.ex:281:3922923 warning: unused require Phoenix.Endpoint924 │925 6 │ require Phoenix.Endpoint926 │ ~927 │928 └─ lib/phoenix/controller.ex:6:3929930 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 operator931 │932 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix933 │ ~934 │935 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/2936937 warning: unused require Phoenix.Endpoint938 │939 17 │ require Phoenix.Endpoint940 │ ~941 │942 └─ lib/phoenix/endpoint/render_errors.ex:17:3943944 warning: unused require Phoenix.Endpoint945 │946 6 │ require Phoenix.Endpoint947 │ ~948 │949 └─ lib/phoenix/channel/server.ex:6:3950951 warning: unused require Phoenix.Endpoint952 │953 202 │ require Phoenix.Endpoint954 │ ~955 │956 └─ lib/phoenix/socket.ex:202:3957958 warning: unused require Logger959 │960 70 │ require Logger961 │ ~962 │963 └─ lib/phoenix/socket/pool_supervisor.ex:70:3964965 warning: unused require Logger966 │967 100 │ require Logger968 │ ~969 │970 └─ lib/phoenix/token.ex:100:3971972 warning: comparison between distinct types found:973974 merge_all != []975976 given types:977978 dynamic(non_empty_list({atom(), term()})) != empty_list()979980 where "merge_all" was given the type:981982 # type: dynamic(non_empty_list({atom(), term()}))983 # from: lib/phoenix/router/route.ex:121:15984 merge_all = merge_params ++ merge_private ++ merge_assigns985986 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 false987988 type warning found at:989 │990 123 │ if merge_all != [] do991 │ ~992 │993 └─ lib/phoenix/router/route.ex:123:18: Phoenix.Router.Route.build_prepare/1994995 warning: a struct for Plug.Conn is expected on struct update:996997 %Plug.Conn{conn | state: :sent}998999 but got type:10001001 dynamic()10021003 where "conn" was given the type:10041005 # type: dynamic()1006 # from: lib/phoenix/endpoint/render_errors.ex:55:171007 conn10081009 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10101011 type warning found at:1012 │1013 60 │ %Plug.Conn{conn | state: :sent}1014 │ ~1015 │1016 └─ lib/phoenix/endpoint/render_errors.ex:60:11: Phoenix.Endpoint.RenderErrors.__catch__/510171018 warning: a struct for Plug.Conn is expected on struct update:10191020 %Plug.Conn{conn | query_params: %{}, params: %{}}10211022 but got type:10231024 dynamic(%{..., params: %Plug.Conn.Unfetched{}})10251026 where "conn" was given the types:10271028 # type: dynamic(%{..., params: term()})1029 # from: lib/phoenix/endpoint/render_errors.ex:133:171030 conn.params10311032 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1033 # from: lib/phoenix/endpoint/render_errors.ex:133:171034 conn.params10351036 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10371038 type warning found at:1039 │1040 134 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1041 │ ~1042 │1043 └─ lib/phoenix/endpoint/render_errors.ex:134:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/110441045 warning: a struct for Plug.Conn is expected on struct update:10461047 %Plug.Conn{conn | query_params: %{}, params: params}10481049 but got type:10501051 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})10521053 where "conn" was given the types:10541055 # type: dynamic(%{..., params: term()})1056 # from: lib/phoenix/endpoint/render_errors.ex:133:171057 conn.params10581059 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1060 # from: lib/phoenix/endpoint/render_errors.ex:133:171061 conn.params10621063 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10641065 type warning found at:1066 │1067 135 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}1068 │ ~1069 │1070 └─ lib/phoenix/endpoint/render_errors.ex:135:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/110711072 warning: a struct for Plug.Conn is expected on struct update:10731074 %Plug.Conn{conn | params: params}10751076 but got type:10771078 dynamic(%{..., params: map()})10791080 where "conn" was given the type:10811082 # type: dynamic(%{..., params: map()})1083 # from: lib/phoenix/controller.ex:1327:171084 Map.get(conn.params, required_key)10851086 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10871088 type warning found at:1089 │1090 1334 │ %Plug.Conn{conn | params: params}1091 │ ~1092 │1093 └─ lib/phoenix/controller.ex:1334:5: Phoenix.Controller.scrub_params/210941095Generated phoenix app1096==> phoenix_live_reload1097Compiling 5 files (.ex)1098Generated phoenix_live_reload app1099warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1100 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21101 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11102 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51103 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21104 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41105 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/211061107==> phoenix_live_view1108Compiling 39 files (.ex)1109 warning: unused require Logger1110 │1111 48 │ require Logger1112 │ ~1113 │1114 └─ lib/phoenix_live_view/socket.ex:48:311151116 warning: unused require Phoenix.ChannelTest1117 │1118 183 │ require Phoenix.ChannelTest1119 │ ~1120 │1121 └─ lib/phoenix_live_view/test/live_view_test.ex:183:311221123 warning: unused require Phoenix.ConnTest1124 │1125 182 │ require Phoenix.ConnTest1126 │ ~1127 │1128 └─ lib/phoenix_live_view/test/live_view_test.ex:182:311291130 warning: unused require Phoenix.ChannelTest1131 │1132 5 │ require Phoenix.ChannelTest1133 │ ~1134 │1135 └─ lib/phoenix_live_view/test/upload_client.ex:5:311361137 warning: unused require Logger1138 │1139 6 │ require Logger1140 │ ~1141 │1142 └─ lib/phoenix_live_view/upload_channel.ex:6:311431144 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:11451146 %Phoenix.LiveView.Socket{1147 socket1148 | assigns: Map.merge(temp_assigns, socket.assigns),1149 private: Map.put(socket.private, :temporary_assigns, temp_assigns)1150 }11511152 but got type:11531154 dynamic()11551156 where "socket" was given the type:11571158 # type: dynamic()1159 # from: lib/phoenix_live_view/utils.ex:528:211160 socket11611162 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"11631164 type warning found at:1165 │1166 535 │ %Socket{1167 │ ~1168 │1169 └─ lib/phoenix_live_view/utils.ex:535:5: Phoenix.LiveView.Utils.do_mount_opt/311701171 warning: the following clause will never match:11721173 {:error, reason} ->11741175 because it attempts to match on the result of:11761177 IO.binwrite(state.file, data)11781179 which has type:11801181 dynamic(not {:error, term()})11821183 type warning found at:1184 │1185 23 │ {:error, reason} -> {:error, reason, state}1186 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1187 │1188 └─ lib/phoenix_live_view/upload_tmp_file_writer.ex:23: Phoenix.LiveView.UploadTmpFileWriter.write_chunk/211891190 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:11911192 %Phoenix.LiveView.UploadEntry{1193 entry1194 | preflighted?: entry.preflighted? || Enum.__in__(entry.ref, refs_awaiting)1195 }11961197 but got type:11981199 dynamic()12001201 where "entry" was given the type:12021203 # type: dynamic()1204 # from: lib/phoenix_live_view/upload_config.ex:363:171205 entry <- conf.entries12061207 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"12081209 type warning found at:1210 │1211 364 │ %UploadEntry{entry | preflighted?: entry.preflighted? || entry.ref in refs_awaiting}1212 │ ~1213 │1214 └─ lib/phoenix_live_view/upload_config.ex:364:9: Phoenix.LiveView.UploadConfig.mark_preflighted/112151216 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:12171218 %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}12191220 but got type:12211222 dynamic()12231224 where "entry" was given the type:12251226 # type: dynamic()1227 # from: lib/phoenix_live_view/upload_config.ex:579:301228 entry12291230 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"12311232 type warning found at:1233 │1234 580 │ entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}1235 │ ~1236 │1237 └─ lib/phoenix_live_view/upload_config.ex:580:13: Phoenix.LiveView.UploadConfig.put_valid_entry/212381239 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:12401241 %Phoenix.LiveView.UploadEntry{entry | valid?: false}12421243 but got type:12441245 dynamic()12461247 where "entry" was given the type:12481249 # type: dynamic()1250 # from: lib/phoenix_live_view/upload_config.ex:592:321251 entry12521253 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"12541255 type warning found at:1256 │1257 593 │ entry = %UploadEntry{entry | valid?: false}1258 │ ~1259 │1260 └─ lib/phoenix_live_view/upload_config.ex:593:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/312611262 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:12631264 %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}12651266 but got type:12671268 dynamic()12691270 where "entry" was given the type:12711272 # type: dynamic()1273 # from: lib/phoenix_live_view/upload_config.ex:676:421274 entry12751276 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"12771278 type warning found at:1279 │1280 676 │ update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)1281 │ ~1282 │1283 └─ lib/phoenix_live_view/upload_config.ex:676:51: Phoenix.LiveView.UploadConfig.cancel_entry/212841285 warning: the following clause is redundant:12861287 def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)12881289 it has type:12901291 dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))12921293 previous clauses have already matched on the following types:12941295 %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())1296 %Phoenix.LiveView.Socket{}, term(), (none() -> term())1297 term(), term(), (none(), none() -> term())1298 term(), term(), (none() -> term())12991300 │1301 1366 │ def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do1302 │ ~1303 │1304 └─ lib/phoenix_component.ex:1366:7: Phoenix.Component.update/313051306 warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead1307 │1308 73 │ Logger.disable(self())1309 │ ~1310 │1311 └─ lib/phoenix_live_view/test/client_proxy.ex:73:12: Phoenix.LiveViewTest.ClientProxy.init/113121313 warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:13141315 %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}13161317 but got type:13181319 dynamic(%{..., rendered: map()})13201321 where "view" was given the type:13221323 # type: dynamic(%{..., rendered: map()})1324 # from: lib/phoenix_live_view/test/client_proxy.ex:739:241325 Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)13261327 when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"13281329 type warning found at:1330 │1331 740 │ new_view = %ClientProxy{view | rendered: rendered}1332 │ ~1333 │1334 └─ lib/phoenix_live_view/test/client_proxy.ex:740:20: Phoenix.LiveViewTest.ClientProxy.merge_rendered/313351336 warning: the right-hand side of || (shown as ... below) will never be executed:13371338 conn.private[:live_view_connect_info] || prune_conn(conn) || ...13391340 because the left-hand side always evaluates to:13411342 dynamic(not false and not nil)13431344 where "conn" was given the types:13451346 # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})1347 # from: lib/phoenix_live_view/test/live_view_test.ex:324:721348 %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn13491350 # type: dynamic(%Plug.Conn{1351 assigns: %{..., live_module: term()},1352 private:1353 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1354 non_struct_map(),1355 status: integer()1356 })1357 # from: lib/phoenix_live_view/test/live_view_test.ex:338:351358 conn.private[:live_view_connect_params]13591360 type warning found at:1361 │1362 339 │ connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},1363 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1364 │1365 └─ lib/phoenix_live_view/test/live_view_test.ex:339: Phoenix.LiveViewTest.connect_from_static_token/213661367 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:13681369 %Phoenix.LiveView.Socket{1370 socket1371 | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}1372 }13731374 but got type:13751376 dynamic(%{..., assigns: term()})13771378 where "socket" was given the type:13791380 # type: dynamic(%{..., assigns: term()})1381 # from: lib/phoenix_live_view/renderer.ex:121:431382 %{assigns: assigns} = socket13831384 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"13851386 type warning found at:1387 │1388 122 │ socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}1389 │ ~1390 │1391 └─ lib/phoenix_live_view/renderer.ex:122:14: Phoenix.LiveView.Renderer.render_assigns/113921393 warning: the following pattern will never match:13941395 template = Phoenix.LiveView.Utils.normalize_layout(template, "live_session :root_layout")13961397 because the right-hand side has type:13981399 none()14001401 where "template" was given the types:14021403 # type: binary()1404 # from: lib/phoenix_live_view/router.ex:288:661405 is_binary(template)14061407 # type: binary()1408 # from: lib/phoenix_live_view/router.ex1409 {:root_layout, {mod, template}}14101411 type warning found at:1412 │1413 289 │ template = Phoenix.LiveView.Utils.normalize_layout(template, "live_session :root_layout")1414 │ ~1415 │1416 └─ lib/phoenix_live_view/router.ex:289:18: Phoenix.LiveView.Router.validate_live_session_opts/314171418 warning: the following pattern will never match:14191420 template = Phoenix.LiveView.Utils.normalize_layout(template, "live_session :layout")14211422 because the right-hand side has type:14231424 none()14251426 where "template" was given the types:14271428 # type: binary()1429 # from: lib/phoenix_live_view/router.ex:305:611430 is_binary(template)14311432 # type: binary()1433 # from: lib/phoenix_live_view/router.ex1434 {:layout, {mod, template}}14351436 type warning found at:1437 │1438 306 │ template = Phoenix.LiveView.Utils.normalize_layout(template, "live_session :layout")1439 │ ~1440 │1441 └─ lib/phoenix_live_view/router.ex:306:18: Phoenix.LiveView.Router.validate_live_session_opts/314421443 warning: the following clause is redundant:14441445 def to_iodata(%_{} = struct)14461447 it has type:14481449 dynamic(%Phoenix.LiveView.Rendered{})14501451 previous clauses have already matched on the following types:14521453 %Phoenix.LiveView.Rendered{}14541455 │1456 153 │ def to_iodata(%_{} = struct) do1457 │ ~1458 │1459 └─ lib/phoenix_live_view/engine.ex:153:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/114601461 warning: the 1st pattern in clause will never match:14621463 nil14641465 because it is expected to receive type:14661467 dynamic(%Phoenix.LiveView.Rendered{})14681469 hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}14701471 type warning found at:1472 │1473 157 │ def to_iodata(nil) do1474 │ ~~~~~~~~~~~~~~~~~~~~~1475 │1476 └─ lib/phoenix_live_view/engine.ex:157: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/114771478 warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)1479 │1480 799 │ defp class_names(nil), do: []1481 │ ~1482 │1483 └─ lib/phoenix_live_view/js.ex:799:8: Phoenix.LiveView.JS.class_names/114841485 warning: the following clause is redundant:14861487 def to_iodata(other)14881489 it has type:14901491 dynamic(%Phoenix.LiveView.Rendered{})14921493 previous clauses have already matched on the following types:14941495 %Phoenix.LiveView.Rendered{}14961497 │1498 161 │ def to_iodata(other) do1499 │ ~1500 │1501 └─ lib/phoenix_live_view/engine.ex:161:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/115021503Generated phoenix_live_view app1504==> live_view_native1505Compiling 21 files (.ex)1506 warning: the following clause will never match:15071508 _ ->15091510 it is expected to match on type:15111512 none()15131514 type warning found at:1515 │1516 31 │ _ ->1517 │ ~1518 │1519 └─ lib/live_view_native/templates.ex:31:7: LiveViewNative.Templates.compile_class_tree/315201521Generated live_view_native app1522warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1523 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21524 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11525 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51526 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21527 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41528 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/215291530==> phoenix_live_dashboard1531Compiling 36 files (.ex)1532 warning: Postgrex.Interval.to_string/1 is undefined (module Postgrex.Interval is not available or is yet to be defined)1533 │1534 281 │ do: struct.to_string(value)1535 │ ~1536 │1537 └─ lib/phoenix/live_dashboard/pages/ecto_stats_page.ex:281:16: Phoenix.LiveDashboard.EctoStatsPage.format/215381539Generated phoenix_live_dashboard app1540==> live_view_native_swiftui1541Compiling 14 files (.ex)1542 warning: unused require Logger1543 │1544 12 │ require Logger1545 │ ~1546 │1547 └─ lib/live_view_native/swiftui/platform.ex:12:515481549Compiling lib/live_view_native/swiftui/rules_parser/modifiers.ex (it's taking more than 10s)1550 warning: the following clause will never match:15511552 {:., annotations, [nil, part]} ->15531554 because it attempts to match on the result of:15551556 outer15571558 which has type:15591560 dynamic(atom())15611562 type warning found at:1563 │1564 96 │ {:., annotations, [nil, part]} ->1565 │ ~1566 │1567 └─ lib/live_view_native/swiftui/rules_parser/post_processors.ex:96:9: LiveViewNative.SwiftUI.RulesParser.PostProcessors.combine_chain_ast_parts/215681569Generated live_view_native_swiftui app1570==> kino_live_view_native1571Compiling 19 files (.ex)1572 warning: unused require IEx.Helpers1573 │1574 3 │ require IEx.Helpers1575 │ ~1576 │1577 └─ lib/server/smart_cells/live_view_native.ex:3:315781579warning: defining a Gettext backend by calling15801581 use Gettext, otp_app: ...15821583is deprecated. To define a backend, call:15841585 use Gettext.Backend, otp_app: :my_app15861587Then, instead of importing your backend, call this in your module:15881589 use Gettext, backend: MyApp.Gettext15901591 lib/server_web/gettext.ex:23: ServerWeb.Gettext (module)15921593 warning: variable "params" is unused (if the variable is not meant to be used, prefix it with an underscore)1594 │1595 4 │ def mount(params, session, socket) do1596 │ ~~~~~~1597 │1598 └─ lib/server_web/live/hello_live.ex:4:13: ServerWeb.HelloLive.mount/315991600 warning: variable "session" is unused (if the variable is not meant to be used, prefix it with an underscore)1601 │1602 4 │ def mount(params, session, socket) do1603 │ ~~~~~~~1604 │1605 └─ lib/server_web/live/hello_live.ex:4:21: ServerWeb.HelloLive.mount/316061607 warning: variable "assigns" is unused (if the variable is not meant to be used, prefix it with an underscore)1608 │1609 8 │ def render(assigns = %{format: :swiftui}) do1610 │ ~~~~~~~1611 │1612 └─ lib/server_web/live/hello_live.ex:8:14: ServerWeb.HelloLive.render/116131614 error: undefined function sigil_SWIFTUI/2 (expected ServerWeb.HelloLive to define such a function or for it to be imported, but none are available)1615 │1616 9 │ ~SWIFTUI"""1617 │ ^^^^^^^^^^^^^1618 │1619 └─ lib/server_web/live/hello_live.ex:9:5: ServerWeb.HelloLive.render/1162016211622== Compilation error in file lib/server_web/live/hello_live.ex ==1623** (CompileError) lib/server_web/live/hello_live.ex: cannot compile module ServerWeb.HelloLive (errors have been logged)16241625could not compile dependency :kino_live_view_native, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile kino_live_view_native --force", update it with "mix deps.update kino_live_view_native" or clean it with "mix deps.clean kino_live_view_native"