Build log
host
kino_live_view_native 0.2.2 · fail · run kino_live_view_native-0.2.2-1790967424002
1005 of 1005 lines
1Resolving Hex dependencies...2Resolution completed in 0.679s3Unchanged: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.995Found packages with security advisories, see above for details96All dependencies have been fetched97==> esbuild98Compiling 4 files (.ex)99Generated esbuild app100==> makeup101Compiling 15 files (.ex)102Generated makeup app103==> makeup_swift104Compiling 3 files (.ex)105 warning: this clause cannot match because a previous clause at line 233 matches the same pattern as this clause106 │107 233 │ defparsec(108 │ ~~~~~~~~~~109 │110 └─ lib/makeup/lexers/swift_lexer.ex:233111112 warning: this clause cannot match because a previous clause at line 233 matches the same pattern as this clause113 │114 233 │ defparsec(115 │ ~~~~~~~~~~116 │117 └─ lib/makeup/lexers/swift_lexer.ex:233118119 warning: this clause cannot match because a previous clause at line 233 matches the same pattern as this clause120 │121 233 │ defparsec(122 │ ~~~~~~~~~~123 │124 └─ lib/makeup/lexers/swift_lexer.ex:233125126Generated makeup_swift app127==> telemetry_metrics128Compiling 7 files (.ex)129 warning: unused require Logger130 │131 391 │ require Logger132 │ ~133 │134 └─ lib/telemetry_metrics.ex:391:3135136Generated telemetry_metrics app137==> nerves_compatibility_test138===> Analyzing applications...139===> Compiling telemetry_poller140==> live_view_native_stylesheet141Compiling 14 files (.ex)142Generated live_view_native_stylesheet app143==> dns_cluster144Compiling 1 file (.ex)145 warning: comparison between distinct types found:146147 net_state.started != :no148149 given types:150151 dynamic(not :no) != :no152153 where "net_state" was given the types:154155 # type: dynamic()156 # from: lib/dns_cluster.ex:166:8157 net_state158159 # type: dynamic(not false and not nil)160 # from: lib/dns_cluster.ex:166:8161 net_state162163 # type: dynamic(%{..., started: term()})164 # from: lib/dns_cluster.ex:169:25165 net_state.started == :no166167 # type: dynamic(%{..., started: not :no})168 # from: lib/dns_cluster.ex:179:25169 net_state.started == :no170171 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 false172173 type warning found at:174 │175 180 │ (!release? and net_state.started != :no and net_state[:name_domain] != :longnames) ->176 │ ~177 │178 └─ lib/dns_cluster.ex:180:44: DNSCluster.warn_on_invalid_dist/0179180Generated dns_cluster app181==> makeup_json182Compiling 3 files (.ex)183Generated makeup_json app184==> fss185Compiling 4 files (.ex)186Generated fss app187==> kino188Compiling 47 files (.ex)189 warning: unused require Logger190 │191 4 │ require Logger192 │ ~193 │194 └─ lib/kino/smart_cell/server.ex:4:3195196 warning: unused require Logger197 │198 183 │ require Logger199 │ ~200 │201 └─ lib/kino/smart_cell.ex:183:3202203 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) check204 │205 239 │ defimpl Kino.Render, for: Nx.Heatmap do206 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~207 │208 └─ lib/kino/render.ex:239: (file)209210 warning: comparison between distinct types found:211212 assets_path != nil213214 given types:215216 dynamic(binary() or empty_list() or non_empty_list(term(), term())) != nil217218 where "assets_path" was given the types:219220 # type: dynamic(nil or binary() or empty_list() or non_empty_list(term(), term()))221 # from: lib/kino/js.ex:253:19222 __paths__(assets_path)223224 # type: dynamic(binary() or empty_list() or non_empty_list(term(), term()))225 # from: lib/kino/js.ex:257:25226 Path.join(assets_path, path)227228 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 false229230 type warning found at:231 │232 266 │ assets_path_defined? = assets_path != nil233 │ ~234 │235 └─ lib/kino/js.ex:266:40: Kino.JS.__before_compile__/1236237Generated kino app238==> live_view_native_platform239Compiling 11 files (.ex)240 warning: "else" clauses will never match because all patterns in "with" will always match241 │242 38 │ with spec <- Application.spec(otp_app),243 │ ~244 │245 └─ lib/live_view_native_platform/env.ex:38:5246247 warning: the following clause will never match:248249 error ->250251 it is expected to match on type:252253 none()254255 type warning found at:256 │257 64 │ error ->258 │ ~259 │260 └─ lib/live_view_native_platform/env.ex:64:7: LiveViewNativePlatform.Env.define/2261262Generated live_view_native_platform app263==> phoenix_view264Compiling 1 file (.ex)265 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 operator266 │267 655 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix268 │ ~269 │270 └─ lib/phoenix_view.ex:655:29: Phoenix.View.unsuffix/2271272Generated phoenix_view app273==> tailwind274Compiling 3 files (.ex)275Generated tailwind app276==> websock_adapter277Compiling 4 files (.ex)278Generated websock_adapter app279warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"280 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2281 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1282 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5283 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2284 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4285 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2286287==> phoenix288Compiling 71 files (.ex)289 warning: unused require Logger290 │291 9 │ require Logger292 │ ~293 │294 └─ lib/phoenix/config.ex:9:3295296 warning: unused require Logger297 │298 281 │ require Logger299 │ ~300 │301 └─ lib/phoenix/endpoint.ex:281:3302303 warning: unused require Phoenix.Endpoint304 │305 6 │ require Phoenix.Endpoint306 │ ~307 │308 └─ lib/phoenix/controller.ex:6:3309310 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 operator311 │312 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix313 │ ~314 │315 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/2316317 warning: unused require Phoenix.Endpoint318 │319 17 │ require Phoenix.Endpoint320 │ ~321 │322 └─ lib/phoenix/endpoint/render_errors.ex:17:3323324 warning: unused require Logger325 │326 70 │ require Logger327 │ ~328 │329 └─ lib/phoenix/socket/pool_supervisor.ex:70:3330331 warning: unused require Phoenix.Endpoint332 │333 6 │ require Phoenix.Endpoint334 │ ~335 │336 └─ lib/phoenix/channel/server.ex:6:3337338 warning: unused require Phoenix.Endpoint339 │340 202 │ require Phoenix.Endpoint341 │ ~342 │343 └─ lib/phoenix/socket.ex:202:3344345 warning: unused require Logger346 │347 100 │ require Logger348 │ ~349 │350 └─ lib/phoenix/token.ex:100:3351352 warning: comparison between distinct types found:353354 merge_all != []355356 given types:357358 dynamic(non_empty_list({atom(), term()})) != empty_list()359360 where "merge_all" was given the type:361362 # type: dynamic(non_empty_list({atom(), term()}))363 # from: lib/phoenix/router/route.ex:121:15364 merge_all = merge_params ++ merge_private ++ merge_assigns365366 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 false367368 type warning found at:369 │370 123 │ if merge_all != [] do371 │ ~372 │373 └─ lib/phoenix/router/route.ex:123:18: Phoenix.Router.Route.build_prepare/1374375 warning: a struct for Plug.Conn is expected on struct update:376377 %Plug.Conn{conn | state: :sent}378379 but got type:380381 dynamic()382383 where "conn" was given the type:384385 # type: dynamic()386 # from: lib/phoenix/endpoint/render_errors.ex:55:17387 conn388389 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"390391 type warning found at:392 │393 60 │ %Plug.Conn{conn | state: :sent}394 │ ~395 │396 └─ lib/phoenix/endpoint/render_errors.ex:60:11: Phoenix.Endpoint.RenderErrors.__catch__/5397398 warning: a struct for Plug.Conn is expected on struct update:399400 %Plug.Conn{conn | query_params: %{}, params: %{}}401402 but got type:403404 dynamic(%{..., params: %Plug.Conn.Unfetched{}})405406 where "conn" was given the types:407408 # type: dynamic(%{..., params: term()})409 # from: lib/phoenix/endpoint/render_errors.ex:133:17410 conn.params411412 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})413 # from: lib/phoenix/endpoint/render_errors.ex:133:17414 conn.params415416 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"417418 type warning found at:419 │420 134 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}421 │ ~422 │423 └─ lib/phoenix/endpoint/render_errors.ex:134:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/1424425 warning: a struct for Plug.Conn is expected on struct update:426427 %Plug.Conn{conn | query_params: %{}, params: params}428429 but got type:430431 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})432433 where "conn" was given the types:434435 # type: dynamic(%{..., params: term()})436 # from: lib/phoenix/endpoint/render_errors.ex:133:17437 conn.params438439 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})440 # from: lib/phoenix/endpoint/render_errors.ex:133:17441 conn.params442443 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"444445 type warning found at:446 │447 135 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}448 │ ~449 │450 └─ lib/phoenix/endpoint/render_errors.ex:135:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/1451452 warning: a struct for Plug.Conn is expected on struct update:453454 %Plug.Conn{conn | params: params}455456 but got type:457458 dynamic(%{..., params: map()})459460 where "conn" was given the type:461462 # type: dynamic(%{..., params: map()})463 # from: lib/phoenix/controller.ex:1327:17464 Map.get(conn.params, required_key)465466 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"467468 type warning found at:469 │470 1334 │ %Plug.Conn{conn | params: params}471 │ ~472 │473 └─ lib/phoenix/controller.ex:1334:5: Phoenix.Controller.scrub_params/2474475Generated phoenix app476==> phoenix_live_reload477Compiling 5 files (.ex)478Generated phoenix_live_reload app479warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"480 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2481 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1482 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5483 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2484 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4485 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2486487==> phoenix_live_view488Compiling 39 files (.ex)489 warning: unused require Logger490 │491 48 │ require Logger492 │ ~493 │494 └─ lib/phoenix_live_view/socket.ex:48:3495496 warning: unused require Phoenix.ChannelTest497 │498 183 │ require Phoenix.ChannelTest499 │ ~500 │501 └─ lib/phoenix_live_view/test/live_view_test.ex:183:3502503 warning: unused require Phoenix.ConnTest504 │505 182 │ require Phoenix.ConnTest506 │ ~507 │508 └─ lib/phoenix_live_view/test/live_view_test.ex:182:3509510 warning: unused require Phoenix.ChannelTest511 │512 5 │ require Phoenix.ChannelTest513 │ ~514 │515 └─ lib/phoenix_live_view/test/upload_client.ex:5:3516517 warning: unused require Logger518 │519 6 │ require Logger520 │ ~521 │522 └─ lib/phoenix_live_view/upload_channel.ex:6:3523524 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:525526 %Phoenix.LiveView.Socket{527 socket528 | assigns: Map.merge(temp_assigns, socket.assigns),529 private: Map.put(socket.private, :temporary_assigns, temp_assigns)530 }531532 but got type:533534 dynamic()535536 where "socket" was given the type:537538 # type: dynamic()539 # from: lib/phoenix_live_view/utils.ex:528:21540 socket541542 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"543544 type warning found at:545 │546 535 │ %Socket{547 │ ~548 │549 └─ lib/phoenix_live_view/utils.ex:535:5: Phoenix.LiveView.Utils.do_mount_opt/3550551 warning: the following clause will never match:552553 {:error, reason} ->554555 because it attempts to match on the result of:556557 IO.binwrite(state.file, data)558559 which has type:560561 dynamic(not {:error, term()})562563 type warning found at:564 │565 23 │ {:error, reason} -> {:error, reason, state}566 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~567 │568 └─ lib/phoenix_live_view/upload_tmp_file_writer.ex:23: Phoenix.LiveView.UploadTmpFileWriter.write_chunk/2569570 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:571572 %Phoenix.LiveView.UploadEntry{573 entry574 | preflighted?: entry.preflighted? || Enum.__in__(entry.ref, refs_awaiting)575 }576577 but got type:578579 dynamic()580581 where "entry" was given the type:582583 # type: dynamic()584 # from: lib/phoenix_live_view/upload_config.ex:363:17585 entry <- conf.entries586587 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"588589 type warning found at:590 │591 364 │ %UploadEntry{entry | preflighted?: entry.preflighted? || entry.ref in refs_awaiting}592 │ ~593 │594 └─ lib/phoenix_live_view/upload_config.ex:364:9: Phoenix.LiveView.UploadConfig.mark_preflighted/1595596 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:597598 %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}599600 but got type:601602 dynamic()603604 where "entry" was given the type:605606 # type: dynamic()607 # from: lib/phoenix_live_view/upload_config.ex:579:30608 entry609610 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"611612 type warning found at:613 │614 580 │ entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}615 │ ~616 │617 └─ lib/phoenix_live_view/upload_config.ex:580:13: Phoenix.LiveView.UploadConfig.put_valid_entry/2618619 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:620621 %Phoenix.LiveView.UploadEntry{entry | valid?: false}622623 but got type:624625 dynamic()626627 where "entry" was given the type:628629 # type: dynamic()630 # from: lib/phoenix_live_view/upload_config.ex:592:32631 entry632633 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"634635 type warning found at:636 │637 593 │ entry = %UploadEntry{entry | valid?: false}638 │ ~639 │640 └─ lib/phoenix_live_view/upload_config.ex:593:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/3641642 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:643644 %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}645646 but got type:647648 dynamic()649650 where "entry" was given the type:651652 # type: dynamic()653 # from: lib/phoenix_live_view/upload_config.ex:676:42654 entry655656 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"657658 type warning found at:659 │660 676 │ update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)661 │ ~662 │663 └─ lib/phoenix_live_view/upload_config.ex:676:51: Phoenix.LiveView.UploadConfig.cancel_entry/2664665 warning: the following clause is redundant:666667 def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)668669 it has type:670671 dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))672673 previous clauses have already matched on the following types:674675 %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())676 %Phoenix.LiveView.Socket{}, term(), (none() -> term())677 term(), term(), (none(), none() -> term())678 term(), term(), (none() -> term())679680 │681 1366 │ def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do682 │ ~683 │684 └─ lib/phoenix_component.ex:1366:7: Phoenix.Component.update/3685686 warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead687 │688 73 │ Logger.disable(self())689 │ ~690 │691 └─ lib/phoenix_live_view/test/client_proxy.ex:73:12: Phoenix.LiveViewTest.ClientProxy.init/1692693 warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:694695 %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}696697 but got type:698699 dynamic(%{..., rendered: map()})700701 where "view" was given the type:702703 # type: dynamic(%{..., rendered: map()})704 # from: lib/phoenix_live_view/test/client_proxy.ex:739:24705 Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)706707 when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"708709 type warning found at:710 │711 740 │ new_view = %ClientProxy{view | rendered: rendered}712 │ ~713 │714 └─ lib/phoenix_live_view/test/client_proxy.ex:740:20: Phoenix.LiveViewTest.ClientProxy.merge_rendered/3715716 warning: the right-hand side of || (shown as ... below) will never be executed:717718 conn.private[:live_view_connect_info] || prune_conn(conn) || ...719720 because the left-hand side always evaluates to:721722 dynamic(not false and not nil)723724 where "conn" was given the types:725726 # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})727 # from: lib/phoenix_live_view/test/live_view_test.ex:324:72728 %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn729730 # type: dynamic(%Plug.Conn{731 assigns: %{..., live_module: term()},732 private:733 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or734 non_struct_map(),735 status: integer()736 })737 # from: lib/phoenix_live_view/test/live_view_test.ex:338:35738 conn.private[:live_view_connect_params]739740 type warning found at:741 │742 339 │ connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},743 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~744 │745 └─ lib/phoenix_live_view/test/live_view_test.ex:339: Phoenix.LiveViewTest.connect_from_static_token/2746747 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:748749 %Phoenix.LiveView.Socket{750 socket751 | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}752 }753754 but got type:755756 dynamic(%{..., assigns: term()})757758 where "socket" was given the type:759760 # type: dynamic(%{..., assigns: term()})761 # from: lib/phoenix_live_view/renderer.ex:121:43762 %{assigns: assigns} = socket763764 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"765766 type warning found at:767 │768 122 │ socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}769 │ ~770 │771 └─ lib/phoenix_live_view/renderer.ex:122:14: Phoenix.LiveView.Renderer.render_assigns/1772773 warning: the following pattern will never match:774775 template = Phoenix.LiveView.Utils.normalize_layout(template, "live_session :root_layout")776777 because the right-hand side has type:778779 none()780781 where "template" was given the types:782783 # type: binary()784 # from: lib/phoenix_live_view/router.ex:288:66785 is_binary(template)786787 # type: binary()788 # from: lib/phoenix_live_view/router.ex789 {:root_layout, {mod, template}}790791 type warning found at:792 │793 289 │ template = Phoenix.LiveView.Utils.normalize_layout(template, "live_session :root_layout")794 │ ~795 │796 └─ lib/phoenix_live_view/router.ex:289:18: Phoenix.LiveView.Router.validate_live_session_opts/3797798 warning: the following pattern will never match:799800 template = Phoenix.LiveView.Utils.normalize_layout(template, "live_session :layout")801802 because the right-hand side has type:803804 none()805806 where "template" was given the types:807808 # type: binary()809 # from: lib/phoenix_live_view/router.ex:305:61810 is_binary(template)811812 # type: binary()813 # from: lib/phoenix_live_view/router.ex814 {:layout, {mod, template}}815816 type warning found at:817 │818 306 │ template = Phoenix.LiveView.Utils.normalize_layout(template, "live_session :layout")819 │ ~820 │821 └─ lib/phoenix_live_view/router.ex:306:18: Phoenix.LiveView.Router.validate_live_session_opts/3822823 warning: the following clause is redundant:824825 def to_iodata(%_{} = struct)826827 it has type:828829 dynamic(%Phoenix.LiveView.Rendered{})830831 previous clauses have already matched on the following types:832833 %Phoenix.LiveView.Rendered{}834835 │836 153 │ def to_iodata(%_{} = struct) do837 │ ~838 │839 └─ lib/phoenix_live_view/engine.ex:153:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/1840841 warning: the 1st pattern in clause will never match:842843 nil844845 because it is expected to receive type:846847 dynamic(%Phoenix.LiveView.Rendered{})848849 hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}850851 type warning found at:852 │853 157 │ def to_iodata(nil) do854 │ ~~~~~~~~~~~~~~~~~~~~~855 │856 └─ lib/phoenix_live_view/engine.ex:157: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/1857858 warning: the following clause is redundant:859860 def to_iodata(other)861862 it has type:863864 dynamic(%Phoenix.LiveView.Rendered{})865866 previous clauses have already matched on the following types:867868 %Phoenix.LiveView.Rendered{}869870 │871 161 │ def to_iodata(other) do872 │ ~873 │874 └─ lib/phoenix_live_view/engine.ex:161:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/1875876 warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)877 │878 799 │ defp class_names(nil), do: []879 │ ~880 │881 └─ lib/phoenix_live_view/js.ex:799:8: Phoenix.LiveView.JS.class_names/1882883Generated phoenix_live_view app884==> live_view_native885Compiling 21 files (.ex)886 warning: the following clause will never match:887888 _ ->889890 it is expected to match on type:891892 none()893894 type warning found at:895 │896 31 │ _ ->897 │ ~898 │899 └─ lib/live_view_native/templates.ex:31:7: LiveViewNative.Templates.compile_class_tree/3900901Generated live_view_native app902warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"903 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2904 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1905 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5906 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2907 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4908 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2909910==> phoenix_live_dashboard911Compiling 36 files (.ex)912 warning: Postgrex.Interval.to_string/1 is undefined (module Postgrex.Interval is not available or is yet to be defined)913 │914 281 │ do: struct.to_string(value)915 │ ~916 │917 └─ lib/phoenix/live_dashboard/pages/ecto_stats_page.ex:281:16: Phoenix.LiveDashboard.EctoStatsPage.format/2918919Generated phoenix_live_dashboard app920==> live_view_native_swiftui921Compiling 14 files (.ex)922 warning: unused require Logger923 │924 12 │ require Logger925 │ ~926 │927 └─ lib/live_view_native/swiftui/platform.ex:12:5928929Compiling lib/live_view_native/swiftui/rules_parser/modifiers.ex (it's taking more than 10s)930 warning: the following clause will never match:931932 {:., annotations, [nil, part]} ->933934 because it attempts to match on the result of:935936 outer937938 which has type:939940 dynamic(atom())941942 type warning found at:943 │944 96 │ {:., annotations, [nil, part]} ->945 │ ~946 │947 └─ lib/live_view_native/swiftui/rules_parser/post_processors.ex:96:9: LiveViewNative.SwiftUI.RulesParser.PostProcessors.combine_chain_ast_parts/2948949Generated live_view_native_swiftui app950==> kino_live_view_native951Compiling 19 files (.ex)952 warning: unused require IEx.Helpers953 │954 3 │ require IEx.Helpers955 │ ~956 │957 └─ lib/server/smart_cells/live_view_native.ex:3:3958959warning: defining a Gettext backend by calling960961 use Gettext, otp_app: ...962963is deprecated. To define a backend, call:964965 use Gettext.Backend, otp_app: :my_app966967Then, instead of importing your backend, call this in your module:968969 use Gettext, backend: MyApp.Gettext970971 lib/server_web/gettext.ex:23: ServerWeb.Gettext (module)972973 warning: variable "params" is unused (if the variable is not meant to be used, prefix it with an underscore)974 │975 4 │ def mount(params, session, socket) do976 │ ~~~~~~977 │978 └─ lib/server_web/live/hello_live.ex:4:13: ServerWeb.HelloLive.mount/3979980 warning: variable "session" is unused (if the variable is not meant to be used, prefix it with an underscore)981 │982 4 │ def mount(params, session, socket) do983 │ ~~~~~~~984 │985 └─ lib/server_web/live/hello_live.ex:4:21: ServerWeb.HelloLive.mount/3986987 warning: variable "assigns" is unused (if the variable is not meant to be used, prefix it with an underscore)988 │989 8 │ def render(assigns = %{format: :swiftui}) do990 │ ~~~~~~~991 │992 └─ lib/server_web/live/hello_live.ex:8:14: ServerWeb.HelloLive.render/1993994 error: undefined function sigil_SWIFTUI/2 (expected ServerWeb.HelloLive to define such a function or for it to be imported, but none are available)995 │996 9 │ ~SWIFTUI"""997 │ ^^^^^^^^^^^^^998 │999 └─ lib/server_web/live/hello_live.ex:9:5: ServerWeb.HelloLive.render/1100010011002== Compilation error in file lib/server_web/live/hello_live.ex ==1003** (CompileError) lib/server_web/live/hello_live.ex: cannot compile module ServerWeb.HelloLive (errors have been logged)10041005could 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"