humo_rbac

Build log

host

humo_rbac 0.1.0 · fail · run humo_rbac-0.1.0-1790948662394
1313 of 1313 lines
1Resolving Hex dependencies...2Resolution completed in 0.495s3Unchanged:4  bamboo 1.7.15  bamboo_smtp 2.1.06  bcrypt_elixir 3.3.27  castore 1.0.218  certifi 2.17.09  circular_buffer 1.1.010  comeonin 5.5.111  cowboy 2.19.012  cowboy_telemetry 0.4.013  cowlib 2.20.0 VULNERABLE!14    EEF-CVE-2026-43966 (MEDIUM)15    aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c16    HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/217    https://osv.dev/vulnerability/EEF-CVE-2026-439661819    EEF-CVE-2026-43969 (LOW)20    aka: CVE-2026-43969, GHSA-g2wm-735q-3f5621    Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/122    https://osv.dev/vulnerability/EEF-CVE-2026-4396923  db_connection 2.10.224  decimal 3.1.125  ecto 3.14.226  ecto_sql 3.14.027  elixir_make 0.10.028  esbuild 0.10.029  expo 1.1.130  file_system 0.2.1031  gen_smtp 0.15.032  gettext 0.26.233  h2 0.12.334  hackney 4.8.435  humo 0.1.236  humo_account 0.1.037  humo_rbac 0.1.038  idna 7.1.039  interactive_cmd 0.1.440  jason 1.4.541  mime 1.6.042  mimerl 1.5.043  nerves 2.0.0-pre.244  nerves_discovery 0.1.545  nerves_logging 0.2.446  nerves_runtime 0.13.1347  nerves_system_bbb 2.30.248  nerves_system_br 1.34.449  nerves_system_mangopi_mq_pro 0.17.250  nerves_system_qemu_aarch64 0.4.251  nerves_system_rpi0 2.1.252  nerves_system_rpi4 2.1.253  nerves_system_rpi5 2.1.254  nerves_system_trellis 0.5.055  nerves_system_x86_64 1.34.256  nerves_toolchain_aarch64_nerves_linux_gnu 15.3.157  nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.158  nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.159  nerves_toolchain_riscv64_nerves_linux_gnu 15.3.160  nerves_toolchain_x86_64_nerves_linux_musl 15.3.161  nerves_uevent 0.1.762  parse_trans 3.4.263  phoenix 1.6.1764  phoenix_ecto 4.7.065  phoenix_html 3.3.466  phoenix_live_dashboard 0.9.167  phoenix_live_view 1.2.1268  phoenix_pubsub 2.3.069  phoenix_template 1.1.070  phoenix_view 2.0.471  plug 1.20.372  plug_cowboy 2.9.073  plug_crypto 1.2.574  postgrex 0.22.475  property_table 0.3.476  quic 2.1.077  ranch 2.3.078  ring_logger 0.11.779  ssl_verify_fun 1.1.780  tablet 0.3.381  telemetry 1.4.282  telemetry_metrics 0.6.283  telemetry_poller 1.3.084  toolshed 0.5.085  uboot_env 1.0.286  webtransport 0.4.787Found packages with security advisories, see above for details88All dependencies have been fetched89==> file_system90Compiling 7 files (.ex)91    warning: using single-quoted strings to represent charlists is deprecated.92    Use ~c"" if you indeed want a charlist or use "" instead.93    You may run "mix format --migrate" to change all single-quoted94    strings to use the ~c sigil and fix this warning.95    │96 71 │           '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',97    │           ~98    │99    └─ lib/file_system/backends/fs_inotify.ex:71:11100101    warning: using single-quoted strings to represent charlists is deprecated.102    Use ~c"" if you indeed want a charlist or use "" instead.103    You may run "mix format --migrate" to change all single-quoted104    strings to use the ~c sigil and fix this warning.105    │106 71 │           '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',107    │                 ~108    │109    └─ lib/file_system/backends/fs_inotify.ex:71:17110111    warning: using single-quoted strings to represent charlists is deprecated.112    Use ~c"" if you indeed want a charlist or use "" instead.113    You may run "mix format --migrate" to change all single-quoted114    strings to use the ~c sigil and fix this warning.115    │116 71 │           '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',117    │                           ~118    │119    └─ lib/file_system/backends/fs_inotify.ex:71:27120121    warning: using single-quoted strings to represent charlists is deprecated.122    Use ~c"" if you indeed want a charlist or use "" instead.123    You may run "mix format --migrate" to change all single-quoted124    strings to use the ~c sigil and fix this warning.125    │126 71 │           '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',127    │                                 ~128    │129    └─ lib/file_system/backends/fs_inotify.ex:71:33130131    warning: using single-quoted strings to represent charlists is deprecated.132    Use ~c"" if you indeed want a charlist or use "" instead.133    You may run "mix format --migrate" to change all single-quoted134    strings to use the ~c sigil and fix this warning.135    │136 71 │           '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',137    │                                                ~138    │139    └─ lib/file_system/backends/fs_inotify.ex:71:48140141    warning: using single-quoted strings to represent charlists is deprecated.142    Use ~c"" if you indeed want a charlist or use "" instead.143    You may run "mix format --migrate" to change all single-quoted144    strings to use the ~c sigil and fix this warning.145    │146 71 │           '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',147    │                                                      ~148    │149    └─ lib/file_system/backends/fs_inotify.ex:71:54150151    warning: using single-quoted strings to represent charlists is deprecated.152    Use ~c"" if you indeed want a charlist or use "" instead.153    You may run "mix format --migrate" to change all single-quoted154    strings to use the ~c sigil and fix this warning.155    │156 71 │           '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',157    │                                                                  ~158    │159    └─ lib/file_system/backends/fs_inotify.ex:71:66160161    warning: using single-quoted strings to represent charlists is deprecated.162    Use ~c"" if you indeed want a charlist or use "" instead.163    You may run "mix format --migrate" to change all single-quoted164    strings to use the ~c sigil and fix this warning.165    │166 71 │           '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',167    │                                                                        ~168    │169    └─ lib/file_system/backends/fs_inotify.ex:71:72170171    warning: using single-quoted strings to represent charlists is deprecated.172    Use ~c"" if you indeed want a charlist or use "" instead.173    You may run "mix format --migrate" to change all single-quoted174    strings to use the ~c sigil and fix this warning.175    │176 72 │           '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'177    │           ~178    │179    └─ lib/file_system/backends/fs_inotify.ex:72:11180181    warning: using single-quoted strings to represent charlists is deprecated.182    Use ~c"" if you indeed want a charlist or use "" instead.183    You may run "mix format --migrate" to change all single-quoted184    strings to use the ~c sigil and fix this warning.185    │186 72 │           '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'187    │                 ~188    │189    └─ lib/file_system/backends/fs_inotify.ex:72:17190191    warning: using single-quoted strings to represent charlists is deprecated.192    Use ~c"" if you indeed want a charlist or use "" instead.193    You may run "mix format --migrate" to change all single-quoted194    strings to use the ~c sigil and fix this warning.195    │196 72 │           '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'197    │                           ~198    │199    └─ lib/file_system/backends/fs_inotify.ex:72:27200201    warning: using single-quoted strings to represent charlists is deprecated.202    Use ~c"" if you indeed want a charlist or use "" instead.203    You may run "mix format --migrate" to change all single-quoted204    strings to use the ~c sigil and fix this warning.205    │206 72 │           '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'207    │                                 ~208    │209    └─ lib/file_system/backends/fs_inotify.ex:72:33210211    warning: using single-quoted strings to represent charlists is deprecated.212    Use ~c"" if you indeed want a charlist or use "" instead.213    You may run "mix format --migrate" to change all single-quoted214    strings to use the ~c sigil and fix this warning.215    │216 72 │           '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'217    │                                           ~218    │219    └─ lib/file_system/backends/fs_inotify.ex:72:43220221    warning: using single-quoted strings to represent charlists is deprecated.222    Use ~c"" if you indeed want a charlist or use "" instead.223    You may run "mix format --migrate" to change all single-quoted224    strings to use the ~c sigil and fix this warning.225    │226 72 │           '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'227    │                                                 ~228    │229    └─ lib/file_system/backends/fs_inotify.ex:72:49230231    warning: using single-quoted strings to represent charlists is deprecated.232    Use ~c"" if you indeed want a charlist or use "" instead.233    You may run "mix format --migrate" to change all single-quoted234    strings to use the ~c sigil and fix this warning.235    │236 72 │           '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'237    │                                                           ~238    │239    └─ lib/file_system/backends/fs_inotify.ex:72:59240241    warning: using single-quoted strings to represent charlists is deprecated.242    Use ~c"" if you indeed want a charlist or use "" instead.243    You may run "mix format --migrate" to change all single-quoted244    strings to use the ~c sigil and fix this warning.245    │246 72 │           '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'247    │                                                                               ~248    │249    └─ lib/file_system/backends/fs_inotify.ex:72:79250251    warning: using single-quoted strings to represent charlists is deprecated.252    Use ~c"" if you indeed want a charlist or use "" instead.253    You may run "mix format --migrate" to change all single-quoted254    strings to use the ~c sigil and fix this warning.255    │256 72 │           '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'257    │                                                                                          ~258    │259    └─ lib/file_system/backends/fs_inotify.ex:72:90260261    warning: using single-quoted strings to represent charlists is deprecated.262    Use ~c"" if you indeed want a charlist or use "" instead.263    You may run "mix format --migrate" to change all single-quoted264    strings to use the ~c sigil and fix this warning.265    │266 72 │           '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'267    │                                                                                                ~268    │269    └─ lib/file_system/backends/fs_inotify.ex:72:96270271    warning: using single-quoted strings to represent charlists is deprecated.272    Use ~c"" if you indeed want a charlist or use "" instead.273    You may run "mix format --migrate" to change all single-quoted274    strings to use the ~c sigil and fix this warning.275    │276 84 │     parse_options(t, result -- ['-r'])277    │                                 ~278    │279    └─ lib/file_system/backends/fs_inotify.ex:84:33280281     warning: using single-quoted strings to represent charlists is deprecated.282     Use ~c"" if you indeed want a charlist or use "" instead.283     You may run "mix format --migrate" to change all single-quoted284     strings to use the ~c sigil and fix this warning.285     │286 104 │         bash_args = ['-c', '#{executable_path()} "$0" "$@" & PID=$!; read a; kill -KILL $PID']287     │                      ~288     │289     └─ lib/file_system/backends/fs_inotify.ex:104:22290291     warning: using single-quoted strings to represent charlists is deprecated.292     Use ~c"" if you indeed want a charlist or use "" instead.293     You may run "mix format --migrate" to change all single-quoted294     strings to use the ~c sigil and fix this warning.295     │296 104 │         bash_args = ['-c', '#{executable_path()} "$0" "$@" & PID=$!; read a; kill -KILL $PID']297     │                            ~298     │299     └─ lib/file_system/backends/fs_inotify.ex:104:28300301     warning: using single-quoted strings to represent charlists is deprecated.302     Use ~c"" if you indeed want a charlist or use "" instead.303     You may run "mix format --migrate" to change all single-quoted304     strings to use the ~c sigil and fix this warning.305     │306 109 │               bash_args ++ ['--'] ++ port_args307     │                             ~308     │309     └─ lib/file_system/backends/fs_inotify.ex:109:29310311     warning: using single-quoted strings to represent charlists is deprecated.312     Use ~c"" if you indeed want a charlist or use "" instead.313     You may run "mix format --migrate" to change all single-quoted314     strings to use the ~c sigil and fix this warning.315     │316 116 │           {:spawn_executable, '/bin/sh'},317     │                               ~318     │319     └─ lib/file_system/backends/fs_inotify.ex:116:31320321    warning: using single-quoted strings to represent charlists is deprecated.322    Use ~c"" if you indeed want a charlist or use "" instead.323    You may run "mix format --migrate" to change all single-quoted324    strings to use the ~c sigil and fix this warning.325    │326 94 │         args = ['-F' | dirs |> Enum.map(&Path.absname/1) |> Enum.map(&to_charlist/1)]327    │                 ~328    │329    └─ lib/file_system/backends/fs_mac.ex:94:17330331     warning: using single-quoted strings to represent charlists is deprecated.332     Use ~c"" if you indeed want a charlist or use "" instead.333     You may run "mix format --migrate" to change all single-quoted334     strings to use the ~c sigil and fix this warning.335     │336 103 │         ['--latency=#{latency / 1}' | result]337     │          ~338     │339     └─ lib/file_system/backends/fs_mac.ex:103:10340341     warning: using single-quoted strings to represent charlists is deprecated.342     Use ~c"" if you indeed want a charlist or use "" instead.343     You may run "mix format --migrate" to change all single-quoted344     strings to use the ~c sigil and fix this warning.345     │346 111 │     parse_options(t, ['--no-defer' | result])347     │                       ~348     │349     └─ lib/file_system/backends/fs_mac.ex:111:23350351     warning: using single-quoted strings to represent charlists is deprecated.352     Use ~c"" if you indeed want a charlist or use "" instead.353     You may run "mix format --migrate" to change all single-quoted354     strings to use the ~c sigil and fix this warning.355     │356 121 │     parse_options(t, ['--with-root' | result])357     │                       ~358     │359     └─ lib/file_system/backends/fs_mac.ex:121:23360361    warning: using single-quoted strings to represent charlists is deprecated.362    Use ~c"" if you indeed want a charlist or use "" instead.363    You may run "mix format --migrate" to change all single-quoted364    strings to use the ~c sigil and fix this warning.365    │366 83 │           '--format', format, '--quiet', '-m', '-r'367    │           ~368    │369    └─ lib/file_system/backends/fs_windows.ex:83:11370371    warning: using single-quoted strings to represent charlists is deprecated.372    Use ~c"" if you indeed want a charlist or use "" instead.373    You may run "mix format --migrate" to change all single-quoted374    strings to use the ~c sigil and fix this warning.375    │376 83 │           '--format', format, '--quiet', '-m', '-r'377    │                               ~378    │379    └─ lib/file_system/backends/fs_windows.ex:83:31380381    warning: using single-quoted strings to represent charlists is deprecated.382    Use ~c"" if you indeed want a charlist or use "" instead.383    You may run "mix format --migrate" to change all single-quoted384    strings to use the ~c sigil and fix this warning.385    │386 83 │           '--format', format, '--quiet', '-m', '-r'387    │                                          ~388    │389    └─ lib/file_system/backends/fs_windows.ex:83:42390391    warning: using single-quoted strings to represent charlists is deprecated.392    Use ~c"" if you indeed want a charlist or use "" instead.393    You may run "mix format --migrate" to change all single-quoted394    strings to use the ~c sigil and fix this warning.395    │396 83 │           '--format', format, '--quiet', '-m', '-r'397    │                                                ~398    │399    └─ lib/file_system/backends/fs_windows.ex:83:48400401    warning: using single-quoted strings to represent charlists is deprecated.402    Use ~c"" if you indeed want a charlist or use "" instead.403    You may run "mix format --migrate" to change all single-quoted404    strings to use the ~c sigil and fix this warning.405    │406 95 │     parse_options(t, result -- ['-r'])407    │                                 ~408    │409    └─ lib/file_system/backends/fs_windows.ex:95:33410411    warning: expected a map or struct when accessing .bootstrap in expression:412413        module.bootstrap414415    where "module" was given the type:416417        # type: dynamic(atom())418        # from: lib/file_system/backend.ex:22:17419        validate_os(backend, module)420421    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()422423    type warning found at:424    │425 23 │          :ok <- module.bootstrap426    │                        ~427    │428    └─ lib/file_system/backend.ex:23:24: FileSystem.Backend.backend/1429430Generated file_system app431==> mime432Compiling 2 files (.ex)433Generated mime app434==> nerves_compatibility_test435===> Analyzing applications...436===> Compiling gen_smtp437     ┌─ src/gen_smtp_server_session.erl:438     │439 265 │  		case catch Module:code_change(OldVsn, State#state.callbackstate, Extra) of440     │  		     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.441Compile directive 'nowarn_deprecated_catch' can be used to suppress442warnings in selected modules.443444     ┌─ src/gen_smtp_server_session.erl:445     │446 389 │  							crypto:start(), % ensure crypto is started, we're gonna need it447     │  							╰── Warning: crypto:start/0 is deprecated; use application:start(crypto) instead448449450    ┌─ src/smtp_util.erl:451    │452 73 │  	Bin = crypto:hmac(md5, Key, Data),453    │  	      ╰── Warning: crypto:hmac/3 is removed; use crypto:mac/4 instead454455456     ┌─ src/gen_smtp_server.erl:457     │458 225 │  	lists:foreach(fun(#listener{socket=S}) -> catch smtp_socket:close(S) end, State#state.listeners),459     │  	                                          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.460Compile directive 'nowarn_deprecated_catch' can be used to suppress461warnings in selected modules.462463464     ┌─ src/gen_smtp_client.erl:465     │466 620 │  			case catch smtp_socket:to_ssl_client(Socket, proplists:get_value(tls_options, Options, []), 5000) of467     │  			     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.468Compile directive 'nowarn_deprecated_catch' can be used to suppress469warnings in selected modules.470471472    ┌─ src/gen_smtp_application.erl:473    │474 12 │  start_ok(_App, {error, {already_started, _App}}) -> ok;475    │           ╰── Warning: variable '_App' is bound multiple times in this pattern.476If you mean to ignore this value, use '_' or477a different underscore-prefixed name478479    ┌─ src/gen_smtp_application.erl:480    │481 12 │  start_ok(_App, {error, {already_started, _App}}) -> ok;482    │                                           ╰── Warning: variable '_App' is bound multiple times in this pattern.483If you mean to ignore this value, use '_' or484a different underscore-prefixed name485486487==> plug_crypto488Compiling 5 files (.ex)489Generated plug_crypto app490==> nerves_compatibility_test491===> Analyzing applications...492===> Compiling cowlib493==> esbuild494Compiling 4 files (.ex)495Generated esbuild app496==> telemetry_metrics497Compiling 7 files (.ex)498     warning: unused require Logger499     │500 391 │   require Logger501     │   ~502     │503     └─ lib/telemetry_metrics.ex:391:3504505Generated telemetry_metrics app506==> nerves_compatibility_test507===> Analyzing applications...508===> Compiling telemetry_poller509===> Analyzing applications...510===> Compiling cowboy511==> gettext512Compiling 18 files (.ex)513     warning: unused require Gettext.Macros514     │515 594 │   require Gettext.Macros516     │   ~517     │518     └─ lib/gettext.ex:594:3519520     warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead521     │522 426 │               Kernel.ParallelCompiler.async(fn ->523     │                                       ~524     │525     └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3526527     warning: the following clause is redundant:528529         defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)530531     it has type:532533         dynamic(%Expo.Message.Plural{})534535     previous clauses have already matched on the following types:536537         %Expo.Message.Singular{}538         %Expo.Message.Plural{}539540     │541 391 │   defp ensure_empty_msgstr!(%Message.Plural{} = message) do542     │        ~543     │544     └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1545546Generated gettext app547==> plug548Compiling 1 file (.erl)549Compiling 42 files (.ex)550Generated plug app551==> phoenix_html552Compiling 9 files (.ex)553    warning: the 1st pattern in clause will never match:554555        60556557    because it is expected to receive type:558559        dynamic(empty_list() or non_empty_list(term(), term()))560561    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())562563    type warning found at:564    │565 56 │   def to_iodata(?<), do: "&lt;"566    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~567    │568    └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1569570    warning: the 1st pattern in clause will never match:571572        62573574    because it is expected to receive type:575576        dynamic(empty_list() or non_empty_list(term(), term()))577578    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())579580    type warning found at:581    │582 57 │   def to_iodata(?>), do: "&gt;"583    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~584    │585    └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1586587    warning: the 1st pattern in clause will never match:588589        38590591    because it is expected to receive type:592593        dynamic(empty_list() or non_empty_list(term(), term()))594595    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())596597    type warning found at:598    │599 58 │   def to_iodata(?&), do: "&amp;"600    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~601    │602    └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1603604    warning: comparison between distinct types found:605606        id == nil607608    given types:609610        dynamic(not false and not nil and not binary()) == nil611612    where "id" was given the types:613614        # type: dynamic(not false and not nil)615        # from: lib/phoenix_html/form_data.ex:92:8616        id = Keyword.get(opts, :id) || name617618        # type: dynamic(not false and not nil and not binary())619        # from: lib/phoenix_html/form_data.ex:94:12620        is_binary(id)621622    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 false623624    type warning found at:625    │626 94 │     unless is_binary(id) or is_nil(id) do627    │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~628    │629    └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2630631    warning: the 1st pattern in clause will never match:632633        34634635    because it is expected to receive type:636637        dynamic(empty_list() or non_empty_list(term(), term()))638639    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())640641    type warning found at:642    │643 59 │   def to_iodata(?"), do: "&quot;"644    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~645    │646    └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1647648    warning: the 1st pattern in clause will never match:649650        39651652    because it is expected to receive type:653654        dynamic(empty_list() or non_empty_list(term(), term()))655656    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())657658    type warning found at:659    │660 60 │   def to_iodata(?'), do: "&#39;"661    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~662    │663    └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1664665    warning: the 1st pattern in clause will never match:666667        {:safe, data}668669    because it is expected to receive type:670671        dynamic(empty_list() or non_empty_list(term(), term()))672673    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())674675    type warning found at:676    │677 76 │   def to_iodata({:safe, data}) do678    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~679    │680    └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1681682    warning: the following clause is redundant:683684        def to_iodata(other)685686    it has type:687688        dynamic(empty_list() or non_empty_list(term(), term()))689690    previous clauses have already matched on the following types:691692        non_empty_list(term(), term())693        empty_list()694695    │696 80 │   def to_iodata(other) do697    │       ~698    │699    └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1700701    warning: the 1st pattern in clause will never match:702703        h704705    because it is expected to receive type:706707        dynamic(empty_list() or non_empty_list(term(), term()))708709    where "h" was given the type:710711        # type: integer()712        # from: lib/phoenix_html/safe.ex:62:25713        is_integer(h)714715    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())716717    type warning found at:718    │719 62 │   def to_iodata(h) when is_integer(h) and h <= 255 do720    │                 ~721    │722    └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1723724    warning: the 1st pattern in clause will never match:725726        h727728    because it is expected to receive type:729730        dynamic(empty_list() or non_empty_list(term(), term()))731732    where "h" was given the type:733734        # type: integer()735        # from: lib/phoenix_html/safe.ex:66:25736        is_integer(h)737738    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())739740    type warning found at:741    │742 66 │   def to_iodata(h) when is_integer(h) do743    │                 ~744    │745    └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1746747    warning: the 1st pattern in clause will never match:748749        h750751    because it is expected to receive type:752753        dynamic(empty_list() or non_empty_list(term(), term()))754755    where "h" was given the type:756757        # type: binary()758        # from: lib/phoenix_html/safe.ex:72:25759        is_binary(h)760761    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())762763    type warning found at:764    │765 72 │   def to_iodata(h) when is_binary(h) do766    │                 ~767    │768    └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1769770Generated phoenix_html app771==> phoenix_template772Compiling 4 files (.ex)773Generated phoenix_template app774==> phoenix_view775Compiling 1 file (.ex)776     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 operator777     │778 655 │       <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix779     │                             ~780     │781     └─ lib/phoenix_view.ex:655:29: Phoenix.View.unsuffix/2782783Generated phoenix_view app784warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"785  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2786  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1787  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5788  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2789  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4790  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2791792==> phoenix_ecto793Compiling 7 files (.ex)794Generated phoenix_ecto app795==> nerves_compatibility_test796===> Analyzing applications...797===> Compiling cowboy_telemetry798==> plug_cowboy799Compiling 5 files (.ex)800Generated plug_cowboy app801warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"802  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2803  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1804  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5805  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2806  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4807  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2808809==> phoenix810Compiling 69 files (.ex)811     warning: using single-quoted strings to represent charlists is deprecated.812     Use ~c"" if you indeed want a charlist or use "" instead.813     You may run "mix format --migrate" to change all single-quoted814     strings to use the ~c sigil and fix this warning.815     │816 258 │           notBefore: {:utcTime, '#{not_before}000000Z'},817     │                                 ~818     │819     └─ lib/mix/tasks/phx.gen.cert.ex:258:33820821     warning: using single-quoted strings to represent charlists is deprecated.822     Use ~c"" if you indeed want a charlist or use "" instead.823     You may run "mix format --migrate" to change all single-quoted824     strings to use the ~c sigil and fix this warning.825     │826 259 │           notAfter: {:utcTime, '#{not_after}000000Z'}827     │                                ~828     │829     └─ lib/mix/tasks/phx.gen.cert.ex:259:32830831    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead832    │833 50 │             Logger.warn(834    │                    ~835    │836    └─ lib/phoenix/code_reloader/server.ex:50:20: Phoenix.CodeReloader.Server.handle_call/3837838    warning: unused require Logger839    │840  9 │   require Logger841    │   ~842    │843    └─ lib/phoenix/config.ex:9:3844845     warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.846847     This error happens when you have function calls without parentheses inside keywords. For example:848849         function(arg, one: nested_call a, b, c)850         function(arg, one: if expr, do: :this, else: :that)851852     In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:853854         function(arg, one: if(expr, do: :this, else: :that))855         function(arg, one: nested_call(a, b, c))856857     Ambiguity found at:858     │859 998 │   defp get_disposition_type(other), do: raise ArgumentError, "expected :disposition to be :attachment or :inline, got: #{inspect(other)}"860     │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~861     │862     └─ lib/phoenix/controller.ex:998863864     warning: unused require Logger865     │866 259 │   require Logger867     │   ~868     │869     └─ lib/phoenix/endpoint.ex:259:3870871      warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead872      │873 1009 │       Logger.warn "send_download/3 has been invoked during an AJAX request. " <>874      │              ~875      │876      └─ lib/phoenix/controller.ex:1009:14: Phoenix.Controller.warn_if_ajax/1877878    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead879    │880 34 │             Logger.warn("no configuration found for otp_app #{inspect(otp_app)} and module #{inspect(mod)}")881    │                    ~882    │883    └─ lib/phoenix/endpoint/supervisor.ex:34:20: Phoenix.Endpoint.Supervisor.init/1884885    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead886    │887 57 │       Logger.warn(":instrumenters configuration for #{inspect(mod)} is deprecated and has no effect")888    │              ~889    │890    └─ lib/phoenix/endpoint/supervisor.ex:57:14: Phoenix.Endpoint.Supervisor.init/1891892    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead893    │894 78 │       Logger.warn """895    │              ~896    │897    └─ lib/phoenix/endpoint/supervisor.ex:78:14: Phoenix.Endpoint.Supervisor.pubsub_children/2898899     warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead900     │901 264 │       Logger.warn("url: [host: ...] configuration value #{inspect(host)} for #{inspect(endpoint)} is invalid")902     │              ~903     │904     └─ lib/phoenix/endpoint/supervisor.ex:264:14: Phoenix.Endpoint.Supervisor.build_url/2905906    warning: unused require Phoenix.Endpoint907    │908  6 │   require Phoenix.Endpoint909    │   ~910    │911    └─ lib/phoenix/controller.ex:6:3912913    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 operator914    │915 46 │       <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix916    │                             ~917    │918    └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/2919920    warning: unused require Phoenix.Endpoint921    │922 19 │   require Phoenix.Endpoint923    │   ~924    │925    └─ lib/phoenix/endpoint/render_errors.ex:19:3926927    warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.928929    This error happens when you have function calls without parentheses inside keywords. For example:930931        function(arg, one: nested_call a, b, c)932        function(arg, one: if expr, do: :this, else: :that)933934    In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:935936        function(arg, one: if(expr, do: :this, else: :that))937        function(arg, one: nested_call(a, b, c))938939    Ambiguity found at:940    │941 71 │     unless actions -- supported_actions == [], do: raise ArgumentError, """942    │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~943    │944    └─ lib/phoenix/router/resource.ex:71945946     warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead947     │948 653 │         Logger.warn fn -> "Ignoring unmatched topic \"#{topic}\" in #{inspect(socket.handler)}" end949     │                ~950     │951     └─ lib/phoenix/socket.ex:653:16: Phoenix.Socket.handle_in/4952953    warning: unused require Phoenix.Endpoint954    │955  6 │   require Phoenix.Endpoint956    │   ~957    │958    └─ lib/phoenix/channel/server.ex:6:3959960     warning: unused require Phoenix.Endpoint961     │962 192 │   require Phoenix.Endpoint963     │   ~964     │965     └─ lib/phoenix/socket.ex:192:3966967    warning: unused require Logger968    │969 93 │   require Logger970    │   ~971    │972    └─ lib/phoenix/token.ex:93:3973974     warning: comparison between distinct types found:975976         merge_all != []977978     given types:979980         dynamic(non_empty_list({atom(), term()})) != empty_list()981982     where "merge_all" was given the type:983984         # type: dynamic(non_empty_list({atom(), term()}))985         # from: lib/phoenix/router/route.ex:111:15986         merge_all = merge_params ++ merge_private ++ merge_assigns987988     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 false989990     type warning found at:991     │992 113 │     if merge_all != [] do993     │                  ~994     │995     └─ lib/phoenix/router/route.ex:113:18: Phoenix.Router.Route.build_prepare/1996997    warning: a struct for Plug.Conn is expected on struct update:998999        %Plug.Conn{conn | state: :sent}10001001    but got type:10021003        dynamic()10041005    where "conn" was given the type:10061007        # type: dynamic()1008        # from: lib/phoenix/endpoint/render_errors.ex:57:171009        conn10101011    when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10121013    type warning found at:1014    │1015 61 │         %Plug.Conn{conn | state: :sent}1016    │         ~1017    │1018    └─ lib/phoenix/endpoint/render_errors.ex:61:9: Phoenix.Endpoint.RenderErrors.__catch__/510191020     warning: a struct for Plug.Conn is expected on struct update:10211022         %Plug.Conn{conn | query_params: %{}, params: %{}}10231024     but got type:10251026         dynamic(%{..., params: %Plug.Conn.Unfetched{}})10271028     where "conn" was given the types:10291030         # type: dynamic(%{..., params: term()})1031         # from: lib/phoenix/endpoint/render_errors.ex:124:171032         conn.params10331034         # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1035         # from: lib/phoenix/endpoint/render_errors.ex:124:171036         conn.params10371038     when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10391040     type warning found at:1041     │1042 125 │         %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1043     │                                   ~1044     │1045     └─ lib/phoenix/endpoint/render_errors.ex:125:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/110461047     warning: a struct for Plug.Conn is expected on struct update:10481049         %Plug.Conn{conn | query_params: %{}, params: params}10501051     but got type:10521053         dynamic(%{..., params: not %Plug.Conn.Unfetched{}})10541055     where "conn" was given the types:10561057         # type: dynamic(%{..., params: term()})1058         # from: lib/phoenix/endpoint/render_errors.ex:124:171059         conn.params10601061         # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1062         # from: lib/phoenix/endpoint/render_errors.ex:124:171063         conn.params10641065     when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10661067     type warning found at:1068     │1069 126 │         params -> %Plug.Conn{conn | query_params: %{}, params: params}1070     │                   ~1071     │1072     └─ lib/phoenix/endpoint/render_errors.ex:126:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/110731074      warning: a struct for Plug.Conn is expected on struct update:10751076          %Plug.Conn{conn | params: params}10771078      but got type:10791080          dynamic(%{..., params: map()})10811082      where "conn" was given the type:10831084          # type: dynamic(%{..., params: map()})1085          # from: lib/phoenix/controller.ex:1036:171086          Map.get(conn.params, required_key)10871088      when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10891090      type warning found at:1091      │1092 1043 │     %Plug.Conn{conn | params: params}1093      │     ~1094      │1095      └─ lib/phoenix/controller.ex:1043:5: Phoenix.Controller.scrub_params/210961097    warning: incompatible types given to socket_children/1:10981099        socket_children(mod)11001101    given types:11021103        -dynamic(atom())-11041105    but expected one of:11061107        %{..., __sockets__: term()}11081109    where "mod" was given the types:11101111        # type: dynamic(atom() or binary())1112        # from: lib/phoenix/endpoint/supervisor.ex:27:411113        defaults(otp_app, mod)11141115        # type: dynamic(atom())1116        # from: lib/phoenix/endpoint/supervisor.ex:31:161117        mod.init(:supervisor, env_conf)11181119    type warning found at:1120    │1121 67 │       socket_children(mod) ++1122    │       ~1123    │1124    └─ lib/phoenix/endpoint/supervisor.ex:67:7: Phoenix.Endpoint.Supervisor.init/111251126     warning: expected a module (an atom) when invoking compress_file/2 in expression:11271128         compressor.compress_file(file.digested_filename, file.digested_content)11291130     where "compressor" was given the type:11311132         # type: dynamic(%{..., file_extensions: non_empty_list(term(), term())})1133         # from: lib/phoenix/digester.ex:167:281134         [file_extension | _] = compressor.file_extensions11351136     where "file" was given the type:11371138         # type: dynamic(%{..., relative_path: term()})1139         # from: lib/phoenix/digester.ex:161:171140         Path.join(output_path, file.relative_path)11411142     type warning found at:1143     │1144 170 │              compressor.compress_file(file.digested_filename, file.digested_content) do1145     │                         ~1146     │1147     └─ lib/phoenix/digester.ex:170:25: Phoenix.Digester.write_to_disk/211481149Generated phoenix app1150==> phoenix_live_view1151Compiling 55 files (.ex)1152Generated phoenix_live_view app1153==> phoenix_live_dashboard1154Compiling 36 files (.ex)1155     warning: Postgrex.Interval.to_string/1 is undefined (module Postgrex.Interval is not available or is yet to be defined)1156     │1157 326 │     do: struct.to_string(value)1158     │                ~1159     │1160     └─ lib/phoenix/live_dashboard/pages/ecto_stats_page.ex:326:16: Phoenix.LiveDashboard.EctoStatsPage.format/211611162Generated phoenix_live_dashboard app1163warning: Phoenix now requires you to explicitly list which engine to use1164for Phoenix JSON encoding. We recommend everyone to upgrade to1165Jason by setting in your config/config.exs:11661167    config :phoenix, :json_library, Jason11681169And then adding {:jason, "~> 1.0"} as a dependency.11701171If instead you would rather continue using Poison, then add to1172your config/config.exs:11731174    config :phoenix, :json_library, Poison11751176  (phoenix 1.6.17) lib/phoenix.ex:56: Phoenix.start/21177  (kernel 11.0.4) application_master.erl:299: :application_master.start_it_old/411781179warning: the :gettext compiler is no longer required in your mix.exs.11801181Please find the following line in your mix.exs and remove the :gettext entry:11821183    compilers: [..., :gettext, ...] ++ Mix.compilers(),11841185  (gettext 0.26.2) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/11186  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51187  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21188  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41189  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/21190  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/511911192==> humo1193Compiling 42 files (.ex)1194    warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.11951196    This error happens when you have function calls without parentheses inside keywords. For example:11971198        function(arg, one: nested_call a, b, c)1199        function(arg, one: if expr, do: :this, else: :that)12001201    In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:12021203        function(arg, one: if(expr, do: :this, else: :that))1204        function(arg, one: nested_call(a, b, c))12051206    Ambiguity found at:1207    │1208 47 │         raise ArgumentError,1209    │         ~~~~~~~~~~~~~~~~~~~~1210    │1211    └─ lib/humo/warehouse.ex:4712121213    warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12141215    This error happens when you have function calls without parentheses inside keywords. For example:12161217        function(arg, one: nested_call a, b, c)1218        function(arg, one: if expr, do: :this, else: :that)12191220    In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:12211222        function(arg, one: if(expr, do: :this, else: :that))1223        function(arg, one: nested_call(a, b, c))12241225    Ambiguity found at:1226    │1227 56 │         raise ArgumentError,1228    │         ~~~~~~~~~~~~~~~~~~~~1229    │1230    └─ lib/humo/warehouse.ex:5612311232    warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12331234    This error happens when you have function calls without parentheses inside keywords. For example:12351236        function(arg, one: nested_call a, b, c)1237        function(arg, one: if expr, do: :this, else: :that)12381239    In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:12401241        function(arg, one: if(expr, do: :this, else: :that))1242        function(arg, one: nested_call(a, b, c))12431244    Ambiguity found at:1245    │1246 63 │         raise ArgumentError,1247    │         ~~~~~~~~~~~~~~~~~~~~1248    │1249    └─ lib/humo/warehouse.ex:6312501251    warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12521253    This error happens when you have function calls without parentheses inside keywords. For example:12541255        function(arg, one: nested_call a, b, c)1256        function(arg, one: if expr, do: :this, else: :that)12571258    In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:12591260        function(arg, one: if(expr, do: :this, else: :that))1261        function(arg, one: nested_call(a, b, c))12621263    Ambiguity found at:1264    │1265 72 │         raise ArgumentError,1266    │         ~~~~~~~~~~~~~~~~~~~~1267    │1268    └─ lib/humo/warehouse.ex:7212691270    warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12711272    This error happens when you have function calls without parentheses inside keywords. For example:12731274        function(arg, one: nested_call a, b, c)1275        function(arg, one: if expr, do: :this, else: :that)12761277    In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:12781279        function(arg, one: if(expr, do: :this, else: :that))1280        function(arg, one: nested_call(a, b, c))12811282    Ambiguity found at:1283    │1284 80 │           raise ArgumentError,1285    │           ~~~~~~~~~~~~~~~~~~~~1286    │1287    └─ lib/humo/warehouse.ex:8012881289    warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12901291    This error happens when you have function calls without parentheses inside keywords. For example:12921293        function(arg, one: nested_call a, b, c)1294        function(arg, one: if expr, do: :this, else: :that)12951296    In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:12971298        function(arg, one: if(expr, do: :this, else: :that))1299        function(arg, one: nested_call(a, b, c))13001301    Ambiguity found at:1302    │1303 79 │         unless is_binary(action), do:1304    │         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1305    │1306    └─ lib/humo/warehouse.ex:79130713081309== Compilation error in file lib/humo/repo.ex ==1310** (ArgumentError) could not fetch application environment Humo.Repo for application :humo because the application was not loaded nor configured1311    (elixir 1.20.3) lib/application.ex:642: Application.compile_env!/31312    lib/humo/repo.ex:4: (module)1313could not compile dependency :humo, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile humo --force", update it with "mix deps.update humo" or clean it with "mix deps.clean humo"