Build log
nerves_system_x86_64
step_flow 1.9.0 · fail · run step_flow-1.9.0-1791114008798
2182 of 2182 lines
1Resolving Hex dependencies...2Resolution completed in 0.91s3Unchanged:4 accept 0.3.75 amqp 4.1.16 amqp_client 4.3.47 castore 1.0.218 certifi 2.17.09 circular_buffer 1.1.010 conv_case 0.2.311 cowboy 2.19.012 cowlib 2.20.0 VULNERABLE!13 EEF-CVE-2026-43966 (MEDIUM)14 aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c15 HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/216 https://osv.dev/vulnerability/EEF-CVE-2026-439661718 EEF-CVE-2026-43969 (LOW)19 aka: CVE-2026-43969, GHSA-g2wm-735q-3f5620 Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/121 https://osv.dev/vulnerability/EEF-CVE-2026-4396922 credentials_obfuscation 3.5.023 db_connection 2.10.224 decimal 3.1.125 ecto 3.14.226 ecto_enum 1.4.027 ecto_sql 3.14.028 elixir_make 0.10.029 ex_json_schema 0.11.530 expo 1.1.131 gettext 0.26.232 h2 0.12.433 hackney 4.8.534 httpoison 3.0.035 idna 7.1.036 interactive_cmd 0.1.437 jason 1.4.538 json 1.4.139 json_xema 0.6.540 mime 2.0.741 mimerl 1.5.042 nerves 2.0.0-pre.243 nerves_discovery 0.1.544 nerves_logging 0.2.445 nerves_runtime 0.13.1346 nerves_system_bbb 2.30.247 nerves_system_br 1.34.448 nerves_system_mangopi_mq_pro 0.17.249 nerves_system_qemu_aarch64 0.4.250 nerves_system_rpi0 2.1.251 nerves_system_rpi4 2.1.252 nerves_system_rpi5 2.1.253 nerves_system_trellis 0.5.054 nerves_system_x86_64 1.34.255 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.156 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.157 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.158 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.159 nerves_toolchain_x86_64_nerves_linux_musl 15.3.160 nerves_uevent 0.1.761 open_api_spex 3.18.362 parse_trans 3.4.263 phoenix 1.7.2464 phoenix_html 4.1.165 phoenix_html_helpers 1.0.166 phoenix_pubsub 2.1.367 phoenix_template 1.1.068 phoenix_view 2.0.469 plug 1.15.6 VULNERABLE!70 EEF-CVE-2026-56814 (MEDIUM)71 aka: CVE-2026-56814, GHSA-95qv-c9g9-rm6372 Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)73 https://osv.dev/vulnerability/EEF-CVE-2026-568147475 EEF-CVE-2026-56813 (LOW)76 aka: CVE-2026-56813, GHSA-wpmj-jh88-rpgm77 Cookie attribute injection in Plug.Conn.Cookies.encode/278 https://osv.dev/vulnerability/EEF-CVE-2026-5681379 plug_crypto 2.2.080 postgrex 0.22.481 prometheus 4.13.0 RETIRED!82 (other) Breaking changes regarding automated discovery of collectors, version was promoted to 5.0.083 prometheus_ex 3.1.084 prometheus_plugs 1.1.585 property_table 0.3.486 quantile_estimator 1.0.287 quic 2.1.188 rabbit_common 4.3.489 ranch 2.2.090 recon 2.5.691 ring_logger 0.11.792 ssl_verify_fun 1.1.793 step_flow 1.9.094 tablet 0.3.395 telemetry 1.4.296 thoas 1.2.197 toolshed 0.5.098 uboot_env 1.0.299 websock 0.5.3100 websock_adapter 0.5.9101 webtransport 0.4.8102 xema 0.17.9103* Getting step_flow (Hex package)104* Getting nerves (Hex package)105* Getting ring_logger (Hex package)106* Getting toolshed (Hex package)107* Getting nerves_runtime (Hex package)108* Getting nerves_system_bbb (Hex package)109* Getting nerves_system_mangopi_mq_pro (Hex package)110* Getting nerves_system_qemu_aarch64 (Hex package)111* Getting nerves_system_rpi0 (Hex package)112* Getting nerves_system_rpi4 (Hex package)113* Getting nerves_system_rpi5 (Hex package)114* Getting nerves_system_trellis (Hex package)115* Getting nerves_system_x86_64 (Hex package)116* Getting nerves_system_br (Hex package)117* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)118* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)119* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)120* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)121* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)122* Getting nerves_logging (Hex package)123* Getting nerves_uevent (Hex package)124* Getting uboot_env (Hex package)125* Getting elixir_make (Hex package)126* Getting property_table (Hex package)127* Getting circular_buffer (Hex package)128* Getting interactive_cmd (Hex package)129* Getting nerves_discovery (Hex package)130* Getting tablet (Hex package)131* Getting amqp (Hex package)132* Getting cowboy (Hex package)133* Getting ecto (Hex package)134* Getting ecto_enum (Hex package)135* Getting ecto_sql (Hex package)136* Getting ex_json_schema (Hex package)137* Getting gettext (Hex package)138* Getting httpoison (Hex package)139* Getting jason (Hex package)140* Getting json (Hex package)141* Getting json_xema (Hex package)142* Getting open_api_spex (Hex package)143* Getting phoenix (Hex package)144* Getting phoenix_html (Hex package)145* Getting phoenix_html_helpers (Hex package)146* Getting phoenix_pubsub (Hex package)147* Getting phoenix_view (Hex package)148* Getting plug (Hex package)149* Getting postgrex (Hex package)150* Getting prometheus_ex (Hex package)151* Getting prometheus_plugs (Hex package)152* Getting xema (Hex package)153* Getting conv_case (Hex package)154* Getting accept (Hex package)155* Getting prometheus (Hex package)156* Getting quantile_estimator (Hex package)157* Getting db_connection (Hex package)158* Getting decimal (Hex package)159* Getting telemetry (Hex package)160* Getting mime (Hex package)161* Getting plug_crypto (Hex package)162* Getting phoenix_template (Hex package)163* Getting castore (Hex package)164* Getting websock_adapter (Hex package)165* Getting websock (Hex package)166* Getting hackney (Hex package)167* Getting certifi (Hex package)168* Getting h2 (Hex package)169* Getting idna (Hex package)170* Getting mimerl (Hex package)171* Getting parse_trans (Hex package)172* Getting quic (Hex package)173* Getting ssl_verify_fun (Hex package)174* Getting webtransport (Hex package)175* Getting expo (Hex package)176* Getting cowlib (Hex package)177* Getting ranch (Hex package)178* Getting amqp_client (Hex package)179* Getting credentials_obfuscation (Hex package)180* Getting rabbit_common (Hex package)181* Getting recon (Hex package)182* Getting thoas (Hex package)183Found retired packages, see above for details184Found packages with security advisories, see above for details185You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more186===> Analyzing applications...187===> Compiling credentials_obfuscation188==> json189Compiling 13 files (.ex)190 warning: redefining module JSON (current version loaded from /home/nerves/.elixir/lib/elixir/ebin/Elixir.JSON.beam)191 │192 1 │ defmodule JSON do193 │ ~~~~~~~~~~~~~~~~~194 │195 └─ lib/json.ex:1: JSON (module)196197 warning: redefining module JSON.Encoder (current version loaded from /home/nerves/.elixir/lib/elixir/ebin/Elixir.JSON.Encoder.beam)198 │199 1 │ defprotocol JSON.Encoder do200 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~201 │202 └─ lib/json/encoder.ex:1: JSON.Encoder (module)203204 warning: redefining module JSON.Encoder.List (current version loaded from /home/nerves/.elixir/lib/elixir/ebin/Elixir.JSON.Encoder.List.beam)205 │206 25 │ defimpl JSON.Encoder, for: List do207 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~208 │209 └─ lib/json/encoder/default_implementations.ex:25: JSON.Encoder.List (module)210211 warning: redefining module JSON.Encoder.Integer (current version loaded from /home/nerves/.elixir/lib/elixir/ebin/Elixir.JSON.Encoder.Integer.beam)212 │213 53 │ defimpl JSON.Encoder, for: [Integer, Float] do214 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~215 │216 └─ lib/json/encoder/default_implementations.ex:53: JSON.Encoder.Integer (module)217218 warning: redefining module JSON.Encoder.Float (current version loaded from /home/nerves/.elixir/lib/elixir/ebin/Elixir.JSON.Encoder.Float.beam)219 │220 53 │ defimpl JSON.Encoder, for: [Integer, Float] do221 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~222 │223 └─ lib/json/encoder/default_implementations.ex:53: JSON.Encoder.Float (module)224225 warning: unused require Logger226 │227 14 │ require Logger228 │ ~229 │230 └─ lib/json/logger.ex:14:3231232 warning: redefining module JSON.Encoder.Atom (current version loaded from /home/nerves/.elixir/lib/elixir/ebin/Elixir.JSON.Encoder.Atom.beam)233 │234 66 │ defimpl JSON.Encoder, for: Atom do235 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~236 │237 └─ lib/json/encoder/default_implementations.ex:66: JSON.Encoder.Atom (module)238239 warning: redefining module JSON.Encoder.BitString (current version loaded from /home/nerves/.elixir/lib/elixir/ebin/Elixir.JSON.Encoder.BitString.beam)240 │241 83 │ defimpl JSON.Encoder, for: BitString do242 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~243 │244 └─ lib/json/encoder/default_implementations.ex:83: JSON.Encoder.BitString (module)245246 warning: redefining module JSON.Encoder.Map (current version loaded from /home/nerves/.elixir/lib/elixir/ebin/Elixir.JSON.Encoder.Map.beam)247 │248 147 │ defimpl JSON.Encoder, for: Map do249 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~250 │251 └─ lib/json/encoder/default_implementations.ex:147: JSON.Encoder.Map (module)252253 warning: using single-quoted strings to represent charlists is deprecated.254 Use ~c"" if you indeed want a charlist or use "" instead.255 You may run "mix format --migrate" to change all single-quoted256 strings to use the ~c sigil and fix this warning.257 │258 89 │ defp apply_exponent({:ok, acc, <<exponent::utf8, rest::binary>>}) when exponent in 'eE' do259 │ ~260 │261 └─ lib/json/parser/number.ex:89:86262263 warning: use Bitwise is deprecated. import Bitwise instead264 │265 8 │ use Bitwise266 │ ~~~~~~~~~~~267 │268 └─ lib/json/parser/string.ex:8: JSON.Parser.String (module)269270 warning: use Bitwise is deprecated. import Bitwise instead271 │272 6 │ use Bitwise273 │ ~~~~~~~~~~~274 │275 └─ lib/json/parser/unicode.ex:6: JSON.Parser.Unicode (module)276277 warning: JSON.Encoder.encode/1 is undefined or private. Did you mean:278279 * encode/2280281 │282 25 │ defdelegate encode(term), to: Encoder283 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~284 │285 └─ (elixir 1.20.3) lib/json.ex:25: JSON.encode/1286287 warning: function encode/2 required by protocol JSON.Encoder is not implemented (in module JSON.Encoder.Any)288 │289 159 │ defimpl JSON.Encoder, for: Any do290 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~291 │292 └─ lib/json/encoder/default_implementations.ex:159: JSON.Encoder.Any (module)293294 warning: JSON.Encoder.encode/1 is undefined or private. Did you mean:295296 * encode/2297298 │299 176 │ |> JSON.Encoder.encode()300 │ ~301 │302 └─ lib/json/encoder/default_implementations.ex:176:21: JSON.Encoder.Any.encode/1303304 warning: function encode/2 required by protocol JSON.Encoder is not implemented (in module JSON.Encoder.Map)305 │306 147 │ defimpl JSON.Encoder, for: Map do307 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~308 │309 └─ lib/json/encoder/default_implementations.ex:147: JSON.Encoder.Map (module)310311 warning: function encode/2 required by protocol JSON.Encoder is not implemented (in module JSON.Encoder.Record)312 │313 135 │ defimpl JSON.Encoder, for: Record do314 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~315 │316 └─ lib/json/encoder/default_implementations.ex:135: JSON.Encoder.Record (module)317318 warning: function encode/2 required by protocol JSON.Encoder is not implemented (in module JSON.Encoder.BitString)319 │320 83 │ defimpl JSON.Encoder, for: BitString do321 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~322 │323 └─ lib/json/encoder/default_implementations.ex:83: JSON.Encoder.BitString (module)324325 warning: function encode/2 required by protocol JSON.Encoder is not implemented (in module JSON.Encoder.Atom)326 │327 66 │ defimpl JSON.Encoder, for: Atom do328 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~329 │330 └─ lib/json/encoder/default_implementations.ex:66: JSON.Encoder.Atom (module)331332 warning: function encode/2 required by protocol JSON.Encoder is not implemented (in module JSON.Encoder.Float)333 │334 53 │ defimpl JSON.Encoder, for: [Integer, Float] do335 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~336 │337 └─ lib/json/encoder/default_implementations.ex:53: JSON.Encoder.Float (module)338339 warning: JSON.Encoder.encode/1 is undefined or private. Did you mean:340341 * encode/2342343 │344 73 │ def encode(atom) when is_atom(atom), do: atom |> Atom.to_string() |> JSON.Encoder.encode()345 │ ~346 │347 └─ (elixir 1.20.3) lib/json/encoder/default_implementations.ex:73:85: JSON.Encoder.Atom.encode/1348349 warning: function encode/2 required by protocol JSON.Encoder is not implemented (in module JSON.Encoder.Integer)350 │351 53 │ defimpl JSON.Encoder, for: [Integer, Float] do352 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~353 │354 └─ lib/json/encoder/default_implementations.ex:53: JSON.Encoder.Integer (module)355356 warning: JSON.Encoder.encode/1 is undefined or private. Did you mean:357358 * encode/2359360 │361 28 │ case Encoder.encode(item) do362 │ ~363 │364 └─ lib/json/encoder/helpers.ex:28:18: JSON.Encoder.Helpers.encode_item/1365366 warning: function encode/2 required by protocol JSON.Encoder is not implemented (in module JSON.Encoder.List)367 │368 25 │ defimpl JSON.Encoder, for: List do369 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~370 │371 └─ lib/json/encoder/default_implementations.ex:25: JSON.Encoder.List (module)372373 warning: function encode/2 required by protocol JSON.Encoder is not implemented (in module JSON.Encoder.HashDict)374 │375 13 │ defimpl JSON.Encoder, for: HashDict do376 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~377 │378 └─ lib/json/encoder/default_implementations.ex:13: JSON.Encoder.HashDict (module)379380 warning: function encode/2 required by protocol JSON.Encoder is not implemented (in module JSON.Encoder.Tuple)381 │382 1 │ defimpl JSON.Encoder, for: Tuple do383 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~384 │385 └─ lib/json/encoder/default_implementations.ex:1: JSON.Encoder.Tuple (module)386387Generated json app388==> recon389Compiling 6 files (.erl)390Generated recon app391==> nerves_compatibility_test392===> Analyzing applications...393===> Compiling quantile_estimator394===> Analyzing applications...395===> Compiling accept396===> Analyzing applications...397===> Compiling ranch398 ┌─ src/ranch_conns_sup.erl:399 │400 89 │ catch erlang:send(SupPid, {?MODULE, active_connections, self(), Tag},401 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.402Compile directive 'nowarn_deprecated_catch' can be used to suppress403warnings in selected modules.404405406==> conv_case407Compiling 1 file (.ex)408Generated conv_case app409==> xema410Compiling 19 files (.ex)411Generated xema app412==> nerves_compatibility_test413===> Analyzing applications...414===> Compiling cowboy415==> phoenix_html416Compiling 6 files (.ex)417 warning: the 1st pattern in clause will never match:418419 60420421 because it is expected to receive type:422423 dynamic(empty_list() or non_empty_list(term(), term()))424425 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())426427 type warning found at:428 │429 56 │ def to_iodata(?<), do: "<"430 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~431 │432 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1433434 warning: the 1st pattern in clause will never match:435436 62437438 because it is expected to receive type:439440 dynamic(empty_list() or non_empty_list(term(), term()))441442 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())443444 type warning found at:445 │446 57 │ def to_iodata(?>), do: ">"447 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~448 │449 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1450451 warning: the 1st pattern in clause will never match:452453 38454455 because it is expected to receive type:456457 dynamic(empty_list() or non_empty_list(term(), term()))458459 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())460461 type warning found at:462 │463 58 │ def to_iodata(?&), do: "&"464 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~465 │466 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1467468 warning: the 1st pattern in clause will never match:469470 34471472 because it is expected to receive type:473474 dynamic(empty_list() or non_empty_list(term(), term()))475476 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())477478 type warning found at:479 │480 59 │ def to_iodata(?"), do: """481 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~482 │483 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1484485 warning: the 1st pattern in clause will never match:486487 39488489 because it is expected to receive type:490491 dynamic(empty_list() or non_empty_list(term(), term()))492493 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())494495 type warning found at:496 │497 60 │ def to_iodata(?'), do: "'"498 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~499 │500 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1501502 warning: the 1st pattern in clause will never match:503504 {:safe, data}505506 because it is expected to receive type:507508 dynamic(empty_list() or non_empty_list(term(), term()))509510 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())511512 type warning found at:513 │514 76 │ def to_iodata({:safe, data}) do515 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~516 │517 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1518519 warning: the following clause is redundant:520521 def to_iodata(other)522523 it has type:524525 dynamic(empty_list() or non_empty_list(term(), term()))526527 previous clauses have already matched on the following types:528529 non_empty_list(term(), term())530 empty_list()531532 │533 80 │ def to_iodata(other) do534 │ ~535 │536 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1537538 warning: the 1st pattern in clause will never match:539540 h541542 because it is expected to receive type:543544 dynamic(empty_list() or non_empty_list(term(), term()))545546 where "h" was given the type:547548 # type: integer()549 # from: lib/phoenix_html/safe.ex:62:25550 is_integer(h)551552 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())553554 type warning found at:555 │556 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do557 │ ~558 │559 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1560561 warning: the 1st pattern in clause will never match:562563 h564565 because it is expected to receive type:566567 dynamic(empty_list() or non_empty_list(term(), term()))568569 where "h" was given the type:570571 # type: integer()572 # from: lib/phoenix_html/safe.ex:66:25573 is_integer(h)574575 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())576577 type warning found at:578 │579 66 │ def to_iodata(h) when is_integer(h) do580 │ ~581 │582 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1583584 warning: the 1st pattern in clause will never match:585586 h587588 because it is expected to receive type:589590 dynamic(empty_list() or non_empty_list(term(), term()))591592 where "h" was given the type:593594 # type: binary()595 # from: lib/phoenix_html/safe.ex:72:25596 is_binary(h)597598 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())599600 type warning found at:601 │602 72 │ def to_iodata(h) when is_binary(h) do603 │ ~604 │605 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1606607Generated phoenix_html app608==> phoenix_template609Compiling 4 files (.ex)610Generated phoenix_template app611==> phoenix_pubsub612Compiling 11 files (.ex)613 warning: unused require Logger614 │615 74 │ require Logger616 │ ~617 │618 └─ lib/phoenix/tracker.ex:74:3619620 warning: a struct for Phoenix.Tracker.Replica is expected on struct update:621622 %Phoenix.Tracker.Replica{replica | status: :permdown}623624 but got type:625626 dynamic()627628 where "replica" was given the type:629630 # type: dynamic()631 # from: lib/phoenix/tracker/replica.ex:72:17632 replica633634 when defining the variable "replica", you must also pattern match on "%Phoenix.Tracker.Replica{}"635636 type warning found at:637 │638 72 │ defp permdown(replica), do: %Replica{replica | status: :permdown}639 │ ~640 │641 └─ lib/phoenix/tracker/replica.ex:72:31: Phoenix.Tracker.Replica.permdown/1642643 warning: a struct for Phoenix.Tracker.Replica is expected on struct update:644645 %Phoenix.Tracker.Replica{replica | status: :down}646647 but got type:648649 dynamic()650651 where "replica" was given the type:652653 # type: dynamic()654 # from: lib/phoenix/tracker/replica.ex:74:13655 replica656657 when defining the variable "replica", you must also pattern match on "%Phoenix.Tracker.Replica{}"658659 type warning found at:660 │661 74 │ defp down(replica), do: %Replica{replica | status: :down}662 │ ~663 │664 └─ lib/phoenix/tracker/replica.ex:74:27: Phoenix.Tracker.Replica.down/1665666 warning: a struct for Phoenix.Tracker.Replica is expected on struct update:667668 %Phoenix.Tracker.Replica{replica | last_heartbeat_at: now_ms()}669670 but got type:671672 dynamic()673674 where "replica" was given the type:675676 # type: dynamic()677 # from: lib/phoenix/tracker/replica.ex:76:29678 replica679680 when defining the variable "replica", you must also pattern match on "%Phoenix.Tracker.Replica{}"681682 type warning found at:683 │684 77 │ %Replica{replica | last_heartbeat_at: now_ms()}685 │ ~686 │687 └─ lib/phoenix/tracker/replica.ex:77:5: Phoenix.Tracker.Replica.touch_last_heartbeat/1688689 warning: a struct for Phoenix.Tracker.State is expected on struct update:690691 %Phoenix.Tracker.State{state | clouds: pruned_clouds, delta: new_delta}692693 but got type:694695 dynamic(%{696 ...,697 clouds: term(),698 delta: %{..., clouds: term(), mode: :delta, values: map()},699 values: term()700 })701702 where "state" was given the types:703704 # type: dynamic(%{..., values: term()})705 # from: lib/phoenix/tracker/state.ex:94:49706 :ets.lookup(state.values, {topic, pid, key})707708 # type: dynamic(%{..., clouds: term(), values: term()})709 # from: lib/phoenix/tracker/state.ex:95:21710 delete_tag(state.clouds, tag)711712 # type: dynamic(%{713 ...,714 clouds: term(),715 delta: %{..., clouds: term(), mode: :delta, values: map()},716 values: term()717 })718 # from: lib/phoenix/tracker/state.ex:96:17719 remove_delta_tag(state.delta, tag)720721 when defining the variable "state", you must also pattern match on "%Phoenix.Tracker.State{}"722723 type warning found at:724 │725 97 │ state = bump_clock(%State{state | clouds: pruned_clouds, delta: new_delta})726 │ ~727 │728 └─ lib/phoenix/tracker/state.ex:97:24: Phoenix.Tracker.State.leave_join/5729730 warning: a struct for Phoenix.Tracker.State is expected on struct update:731732 %Phoenix.Tracker.State{delta | values: Map.put(delta.values, tag, {pid, topic, key, meta})}733734 but got type:735736 dynamic()737738 where "delta" was given the type:739740 # type: dynamic()741 # from: lib/phoenix/tracker/state.ex:506:36742 %Phoenix.Tracker.State{delta: delta} = state743744 when defining the variable "delta", you must also pattern match on "%Phoenix.Tracker.State{}"745746 type warning found at:747 │748 510 │ new_delta = %State{delta | values: Map.put(delta.values, tag, {pid, topic, key, meta})}749 │ ~750 │751 └─ lib/phoenix/tracker/state.ex:510:17: Phoenix.Tracker.State.do_add/5752753 warning: a struct for Phoenix.Tracker.State is expected on struct update:754755 %Phoenix.Tracker.State{delta | clouds: put_tag(delta.clouds, {rep, new_clock})}756757 but got type:758759 dynamic()760761 where "delta" was given the type:762763 # type: dynamic()764 # from: lib/phoenix/tracker/state.ex:586:99765 %Phoenix.Tracker.State{mode: :normal, replica: rep, clouds: clouds, context: ctx, delta: delta} =766 state767768 when defining the variable "delta", you must also pattern match on "%Phoenix.Tracker.State{}"769770 type warning found at:771 │772 592 │ delta: %State{delta | clouds: put_tag(delta.clouds, {rep, new_clock})}}773 │ ~774 │775 └─ lib/phoenix/tracker/state.ex:592:19: Phoenix.Tracker.State.bump_clock/1776777 warning: a struct for Phoenix.Tracker.State is expected on struct update:778779 %Phoenix.Tracker.State{delta | range: {start_clock, new_end}}780781 but got type:782783 dynamic(%{..., range: {term(), term()}})784785 where "delta" was given the type:786787 # type: dynamic(%{..., range: {term(), term()}})788 # from: lib/phoenix/tracker/state.ex:596:30789 {start_clock, end_clock} = delta.range790791 when defining the variable "delta", you must also pattern match on "%Phoenix.Tracker.State{}"792793 type warning found at:794 │795 600 │ delta: %State{delta | range: {start_clock, new_end}}}796 │ ~797 │798 └─ lib/phoenix/tracker/state.ex:600:19: Phoenix.Tracker.State.put_context/2799800Generated phoenix_pubsub app801==> nerves_compatibility_test802===> Analyzing applications...803===> Compiling thoas804===> Analyzing applications...805===> Compiling rabbit_common806gen_server2.erl:334:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.807Compile directive 'nowarn_deprecated_catch' can be used to suppress808warnings in selected modules.809gen_server2.erl:342:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.810Compile directive 'nowarn_deprecated_catch' can be used to suppress811warnings in selected modules.812gen_server2.erl:353:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.813Compile directive 'nowarn_deprecated_catch' can be used to suppress814warnings in selected modules.815gen_server2.erl:356:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.816Compile directive 'nowarn_deprecated_catch' can be used to suppress817warnings in selected modules.818gen_server2.erl:359:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.819Compile directive 'nowarn_deprecated_catch' can be used to suppress820warnings in selected modules.821gen_server2.erl:366:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.822Compile directive 'nowarn_deprecated_catch' can be used to suppress823warnings in selected modules.824gen_server2.erl:378:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.825Compile directive 'nowarn_deprecated_catch' can be used to suppress826warnings in selected modules.827gen_server2.erl:439:13: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.828Compile directive 'nowarn_deprecated_catch' can be used to suppress829warnings in selected modules.830gen_server2.erl:448:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.831Compile directive 'nowarn_deprecated_catch' can be used to suppress832warnings in selected modules.833gen_server2.erl:452:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.834Compile directive 'nowarn_deprecated_catch' can be used to suppress835warnings in selected modules.836gen_server2.erl:489:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.837Compile directive 'nowarn_deprecated_catch' can be used to suppress838warnings in selected modules.839gen_server2.erl:565:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.840Compile directive 'nowarn_deprecated_catch' can be used to suppress841warnings in selected modules.842gen_server2.erl:622:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.843Compile directive 'nowarn_deprecated_catch' can be used to suppress844warnings in selected modules.845gen_server2.erl:729:18: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.846Compile directive 'nowarn_deprecated_catch' can be used to suppress847warnings in selected modules.848gen_server2.erl:744:18: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.849Compile directive 'nowarn_deprecated_catch' can be used to suppress850warnings in selected modules.851gen_server2.erl:811:17: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.852Compile directive 'nowarn_deprecated_catch' can be used to suppress853warnings in selected modules.854gen_server2.erl:872:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.855Compile directive 'nowarn_deprecated_catch' can be used to suppress856warnings in selected modules.857gen_server2.erl:932:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.858Compile directive 'nowarn_deprecated_catch' can be used to suppress859warnings in selected modules.860gen_server2.erl:985:18: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.861Compile directive 'nowarn_deprecated_catch' can be used to suppress862warnings in selected modules.863gen_server2.erl:1035:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.864Compile directive 'nowarn_deprecated_catch' can be used to suppress865warnings in selected modules.866gen_server2.erl:1048:18: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.867Compile directive 'nowarn_deprecated_catch' can be used to suppress868warnings in selected modules.869gen_server2.erl:1056:14: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.870Compile directive 'nowarn_deprecated_catch' can be used to suppress871warnings in selected modules.872gen_server2.erl:1112:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.873Compile directive 'nowarn_deprecated_catch' can be used to suppress874warnings in selected modules.875gen_server2.erl:1158:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.876Compile directive 'nowarn_deprecated_catch' can be used to suppress877warnings in selected modules.878gen_server2.erl:1249:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.879Compile directive 'nowarn_deprecated_catch' can be used to suppress880warnings in selected modules.881gen_server2.erl:1329:39: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.882Compile directive 'nowarn_deprecated_catch' can be used to suppress883warnings in selected modules.884gen_server2.erl:1339:39: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.885Compile directive 'nowarn_deprecated_catch' can be used to suppress886warnings in selected modules.887gen_server2.erl:1377:23: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.888Compile directive 'nowarn_deprecated_catch' can be used to suppress889warnings in selected modules.890891rabbit_registry.erl:49:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.892Compile directive 'nowarn_deprecated_catch' can be used to suppress893warnings in selected modules.894rabbit_registry.erl:167:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.895Compile directive 'nowarn_deprecated_catch' can be used to suppress896warnings in selected modules.897898rabbit_nodes_common.erl:57:8: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.899Compile directive 'nowarn_deprecated_catch' can be used to suppress900warnings in selected modules.901902rabbit_env.erl:1354:12: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.903Compile directive 'nowarn_deprecated_catch' can be used to suppress904warnings in selected modules.905rabbit_env.erl:1385:12: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.906Compile directive 'nowarn_deprecated_catch' can be used to suppress907warnings in selected modules.908rabbit_env.erl:1426:12: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.909Compile directive 'nowarn_deprecated_catch' can be used to suppress910warnings in selected modules.911912supervisor2.erl:441:10: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.913Compile directive 'nowarn_deprecated_catch' can be used to suppress914warnings in selected modules.915supervisor2.erl:1453:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.916Compile directive 'nowarn_deprecated_catch' can be used to suppress917warnings in selected modules.918919rabbit_misc.erl:1520:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.920Compile directive 'nowarn_deprecated_catch' can be used to suppress921warnings in selected modules.922923rabbit_net.erl:183:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.924Compile directive 'nowarn_deprecated_catch' can be used to suppress925warnings in selected modules.926927rabbit_routing_parser.erl:54:27: Warning: a pattern `P1=P2` where both sides are constructors928may yield an error in a future version of Erlang/OTP.929Note that a pattern such as `{a,B}={Y,Z} -> ...` can always be930written in a unified form `{a=Y,B=Z} -> ...`.931Compile directive 'nowarn_match_alias_pats' can be used to suppress932warnings in selected modules.933934===> Analyzing applications...935===> Compiling amqp_client936amqp_channel.erl:868:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.937Compile directive 'nowarn_deprecated_catch' can be used to suppress938warnings in selected modules.939amqp_channel.erl:876:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.940Compile directive 'nowarn_deprecated_catch' can be used to suppress941warnings in selected modules.942amqp_channel.erl:884:9: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.943Compile directive 'nowarn_deprecated_catch' can be used to suppress944warnings in selected modules.945946uri_parser.erl:51:19: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.947Compile directive 'nowarn_deprecated_catch' can be used to suppress948warnings in selected modules.949950amqp_network_connection.erl:49:5: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.951Compile directive 'nowarn_deprecated_catch' can be used to suppress952warnings in selected modules.953amqp_network_connection.erl:270:25: Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.954Compile directive 'nowarn_deprecated_catch' can be used to suppress955warnings in selected modules.956957==> amqp958Compiling 16 files (.ex)959Generated amqp app960==> json_xema961Compiling 4 files (.ex)962Generated json_xema app963==> phoenix_view964Compiling 1 file (.ex)965 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 operator966 │967 655 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix968 │ ~969 │970 └─ lib/phoenix_view.ex:655:29: Phoenix.View.unsuffix/2971972Generated phoenix_view app973==> nerves_compatibility_test974===> Analyzing applications...975===> Compiling prometheus976==> prometheus_ex977Compiling 19 files (.ex)978 warning: unused require Prometheus.Metric979 │980 4 │ require Prometheus.Metric981 │ ~982 │983 └─ lib/prometheus/erlang.ex:4:3984985Generated prometheus_ex app986==> plug987Compiling 1 file (.erl)988warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"989 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2990 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1991 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5992 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2993 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4994 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2995996Compiling 40 files (.ex)997 warning: unused require Bitwise998 │999 105 │ require Bitwise1000 │ ~1001 │1002 └─ lib/plug/csrf_protection.ex:105:310031004 warning: unused require Logger1005 │1006 52 │ require Logger1007 │ ~1008 │1009 └─ lib/plug/request_id.ex:52:310101011 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 operator1012 │1013 160 │ <<prefix::binary-size(prefix_size), char, suffix::binary-size(suffix_size)>> = segment1014 │ ~1015 │1016 └─ lib/plug/router/utils.ex:160:31: Plug.Router.Utils.build_path_clause/710171018 warning: the variable "suffix_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1019 │1020 160 │ <<prefix::binary-size(prefix_size), char, suffix::binary-size(suffix_size)>> = segment1021 │ ~1022 │1023 └─ lib/plug/router/utils.ex:160:71: Plug.Router.Utils.build_path_clause/710241025 warning: the following clause will never match:10261027 {:error, reason} ->10281029 because it attempts to match on the result of:10301031 IO.binwrite(device, contents)10321033 which has type:10341035 dynamic(not {:error, term()})10361037 type warning found at:1038 │1039 275 │ {:error, reason} ->1040 │ ~~~~~~~~~~~~~~~~~~~1041 │1042 └─ lib/plug/parsers/multipart.ex:275: Plug.Parsers.MULTIPART.binwrite!/210431044 warning: a struct for Plug.Conn is expected on struct update:10451046 %Plug.Conn{conn | method: method}10471048 but got type:10491050 dynamic()10511052 where "conn" was given the type:10531054 # type: dynamic()1055 # from: lib/plug/method_override.ex:60:241056 conn10571058 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10591060 type warning found at:1061 │1062 64 │ %Plug.Conn{conn | method: method}1063 │ ~1064 │1065 └─ lib/plug/method_override.ex:64:7: Plug.MethodOverride.override_method/210661067 warning: a struct for Plug.Conn is expected on struct update:10681069 %Plug.Conn{1070 conn1071 | adapter: {Plug.Adapters.Test.Conn, state},1072 host: uri.host || conn.host || "www.example.com",1073 method: method,1074 owner: owner,1075 path_info: split_path(uri.path),1076 port: uri.port || conn_port,1077 remote_ip: conn.remote_ip || {127, 0, 0, 1},1078 req_headers: req_headers,1079 request_path: uri.path,1080 query_string: query,1081 query_params: query_params || %Plug.Conn.Unfetched{aspect: :query_params},1082 body_params: body_params || %Plug.Conn.Unfetched{aspect: :body_params},1083 params: params || %Plug.Conn.Unfetched{aspect: :params},1084 scheme: String.to_atom(String.downcase(uri.scheme || "http"))1085 }10861087 but got type:10881089 dynamic(%{..., adapter: {atom(), term()}, port: term(), req_headers: term()})10901091 where "conn" was given the types:10921093 # type: dynamic(%{..., req_headers: term()})1094 # from: lib/plug/adapters/test/conn.ex:21:71095 body_or_params(body_or_params, query, conn.req_headers, method)10961097 # type: dynamic(%{..., adapter: {atom(), term()}, req_headers: term()})1098 # from: lib/plug/adapters/test/conn.ex:30:221099 get_from_adapter(conn, :get_http_protocol, :"HTTP/1.1")11001101 # type: dynamic(%{..., adapter: {atom(), term()}, port: term(), req_headers: term()})1102 # from: lib/plug/adapters/test/conn.ex:39:301103 conn.port != 011041105 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"11061107 type warning found at:1108 │1109 41 │ %Plug.Conn{1110 │ ~1111 │1112 └─ lib/plug/adapters/test/conn.ex:41:5: Plug.Adapters.Test.Conn.conn/411131114Generated plug app1115==> open_api_spex1116Compiling 80 files (.ex)1117 warning: unused require Mix.Generator1118 │1119 26 │ require Mix.Generator1120 │ ~1121 │1122 └─ lib/mix/tasks/openapi.spec.yaml.ex:26:311231124 warning: unused require Mix.Generator1125 │1126 29 │ require Mix.Generator1127 │ ~1128 │1129 └─ lib/mix/tasks/openapi.spec.json.ex:29:311301131 warning: unused require Mix.Generator1132 │1133 5 │ require Mix.Generator1134 │ ~1135 │1136 └─ lib/open_api_spex/export_spec.ex:5:311371138 warning: the following clause is redundant:11391140 defp resolve_schema_modules_from_media_type(media = %OpenApiSpex.MediaType{}, schemas)11411142 it has type:11431144 dynamic(%OpenApiSpex.MediaType{}), dynamic()11451146 previous clauses have already matched on the following types:11471148 %OpenApiSpex.MediaType{}, term()11491150 │1151 141 │ defp resolve_schema_modules_from_media_type(media = %MediaType{}, schemas) do1152 │ ~1153 │1154 └─ lib/open_api_spex/schema_resolver.ex:141:8: OpenApiSpex.SchemaResolver.resolve_schema_modules_from_media_type/211551156 warning: a struct for OpenApiSpex.Cast is expected on struct update:11571158 %OpenApiSpex.Cast{ctx | errors: ctx.errors ++ errors}11591160 but got type:11611162 dynamic(1163 %OpenApiSpex.Cast{1164 schema: %{..., allOf: non_empty_list(term(), term()), "x-validate": atom() and not nil}1165 } or1166 (%OpenApiSpex.Cast{1167 schema:1168 %{1169 ...,1170 allOf: non_empty_list(term(), term()),1171 anyOf: empty_list() or non_empty_list(term(), term()),1172 type: term()1173 } and1174 not (%{..., "x-validate": not nil} or %{..., discriminator: map(), type: :object} or1175 %{..., enum: empty_list() or non_empty_list(term(), term())})1176 } and1177 not (%OpenApiSpex.Cast{value: nil, schema: %{..., nullable: false}} or1178 %OpenApiSpex.Cast{1179 value: nil,1180 schema: %{..., oneOf: empty_list() or non_empty_list(term(), term())}1181 } or1182 %OpenApiSpex.Cast{1183 value: nil,1184 schema: %{..., allOf: empty_list() or non_empty_list(term(), term())}1185 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: true}} or1186 %OpenApiSpex.Cast{1187 value: nil,1188 schema: %{..., anyOf: empty_list() or non_empty_list(term(), term())}1189 } or %OpenApiSpex.Cast{value: nil})) or1190 (%OpenApiSpex.Cast{1191 schema:1192 %{..., allOf: non_empty_list(term(), term()), discriminator: map(), type: :object} and1193 not (%{..., "x-validate": not nil} or1194 %{..., enum: empty_list() or non_empty_list(term(), term())})1195 } and1196 not (%OpenApiSpex.Cast{value: nil, schema: %{..., nullable: false}} or1197 %OpenApiSpex.Cast{1198 value: nil,1199 schema: %{..., oneOf: empty_list() or non_empty_list(term(), term())}1200 } or1201 %OpenApiSpex.Cast{1202 value: nil,1203 schema: %{..., allOf: empty_list() or non_empty_list(term(), term())}1204 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: true}} or1205 %OpenApiSpex.Cast{1206 value: nil,1207 schema: %{..., anyOf: empty_list() or non_empty_list(term(), term())}1208 } or %OpenApiSpex.Cast{value: nil})) or1209 (%OpenApiSpex.Cast{1210 schema:1211 %{..., allOf: non_empty_list(term(), term()), enum: empty_list()} and1212 not %{..., "x-validate": not nil}1213 } and1214 not (%OpenApiSpex.Cast{value: nil, schema: %{..., nullable: false}} or1215 %OpenApiSpex.Cast{1216 value: nil,1217 schema: %{..., oneOf: empty_list() or non_empty_list(term(), term())}1218 } or1219 %OpenApiSpex.Cast{1220 value: nil,1221 schema: %{..., allOf: empty_list() or non_empty_list(term(), term())}1222 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: true}} or1223 %OpenApiSpex.Cast{1224 value: nil,1225 schema: %{..., anyOf: empty_list() or non_empty_list(term(), term())}1226 } or %OpenApiSpex.Cast{value: nil})) or1227 (%OpenApiSpex.Cast{1228 schema:1229 %{..., allOf: non_empty_list(term(), term()), enum: non_empty_list(term(), term())} and1230 not %{..., "x-validate": not nil}1231 } and1232 not (%OpenApiSpex.Cast{value: nil, schema: %{..., nullable: false}} or1233 %OpenApiSpex.Cast{1234 value: nil,1235 schema: %{..., oneOf: empty_list() or non_empty_list(term(), term())}1236 } or1237 %OpenApiSpex.Cast{1238 value: nil,1239 schema: %{..., allOf: empty_list() or non_empty_list(term(), term())}1240 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: true}} or1241 %OpenApiSpex.Cast{1242 value: nil,1243 schema: %{..., anyOf: empty_list() or non_empty_list(term(), term())}1244 } or %OpenApiSpex.Cast{value: nil})) or1245 (%OpenApiSpex.Cast{1246 schema:1247 %{..., allOf: non_empty_list(term(), term()), type: term()} and1248 not (%{..., "x-validate": not nil} or %{..., discriminator: map(), type: :object} or1249 %{..., anyOf: empty_list() or non_empty_list(term(), term()), type: term()} or1250 %{..., enum: empty_list() or non_empty_list(term(), term())})1251 } and1252 not (%OpenApiSpex.Cast{value: nil} or1253 %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: true}} or1254 %OpenApiSpex.Cast{1255 value: nil,1256 schema: %{..., allOf: empty_list() or non_empty_list(term(), term())}1257 } or1258 %OpenApiSpex.Cast{1259 value: nil,1260 schema: %{..., oneOf: empty_list() or non_empty_list(term(), term())}1261 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: false}})) or1262 (%OpenApiSpex.Cast{1263 value: nil,1264 schema: %{..., allOf: non_empty_list(term(), term()), nullable: false}1265 } and1266 not %OpenApiSpex.Cast{1267 schema: %OpenApiSpex.Reference{} or %{..., "x-validate": not nil} or nil1268 }) or1269 (%OpenApiSpex.Cast{1270 value: nil,1271 schema:1272 %{..., allOf: non_empty_list(term(), term())} and1273 not (%{..., oneOf: empty_list() or non_empty_list(term(), term())} or1274 %{..., nullable: true} or1275 %{..., anyOf: empty_list() or non_empty_list(term(), term())} or1276 %{..., nullable: false})1277 } and1278 not %OpenApiSpex.Cast{1279 schema: %OpenApiSpex.Reference{} or %{..., "x-validate": not nil} or nil1280 }) or1281 (%OpenApiSpex.Cast{1282 value: nil,1283 schema:1284 %{1285 ...,1286 allOf: non_empty_list(term(), term()),1287 anyOf: empty_list() or non_empty_list(term(), term())1288 } and1289 not (%{..., oneOf: empty_list() or non_empty_list(term(), term())} or1290 %{..., nullable: true} or %{..., nullable: false})1291 } and1292 not %OpenApiSpex.Cast{1293 schema: %OpenApiSpex.Reference{} or %{..., "x-validate": not nil} or nil1294 }) or1295 (%OpenApiSpex.Cast{1296 value: nil,1297 schema:1298 %{1299 ...,1300 allOf: non_empty_list(term(), term()),1301 oneOf: empty_list() or non_empty_list(term(), term())1302 } and not (%{..., nullable: true} or %{..., nullable: false})1303 } and1304 not %OpenApiSpex.Cast{1305 schema: %OpenApiSpex.Reference{} or %{..., "x-validate": not nil} or nil1306 }) or1307 (%{..., errors: term(), schema: %{..., allOf: non_empty_list(term(), term())}} and1308 not (%OpenApiSpex.Cast{value: nil} or %OpenApiSpex.Cast{schema: %{..., type: :integer}} or1309 %OpenApiSpex.Cast{1310 schema: %{1311 ...,1312 anyOf: empty_list() or non_empty_list(term(), term()),1313 type: term()1314 }1315 } or %OpenApiSpex.Cast{schema: %{..., enum: empty_list()}} or1316 %OpenApiSpex.Cast{schema: %{..., type: :array}} or1317 %OpenApiSpex.Cast{1318 value: nil,1319 schema: %{..., anyOf: empty_list() or non_empty_list(term(), term())}1320 } or %OpenApiSpex.Cast{schema: %{..., type: :boolean}} or1321 %OpenApiSpex.Cast{schema: %{..., type: :string}} or1322 %OpenApiSpex.Cast{schema: %{..., type: term()}} or1323 %OpenApiSpex.Cast{1324 schema: %OpenApiSpex.Reference{} or %{..., "x-validate": not nil} or nil1325 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: true}} or1326 %OpenApiSpex.Cast{1327 value: nil,1328 schema: %{..., allOf: empty_list() or non_empty_list(term(), term())}1329 } or %OpenApiSpex.Cast{schema: %{..., type: :object}} or1330 %OpenApiSpex.Cast{schema: %{..., discriminator: map(), type: :object}} or1331 %OpenApiSpex.Cast{1332 schema: %{..., enum: empty_list() or non_empty_list(term(), term())}1333 } or1334 %OpenApiSpex.Cast{1335 schema: %{1336 ...,1337 allOf: empty_list() or non_empty_list(term(), term()),1338 type: term()1339 }1340 } or %OpenApiSpex.Cast{schema: %{..., type: nil}} or1341 %OpenApiSpex.Cast{1342 value: nil,1343 schema: %{..., oneOf: empty_list() or non_empty_list(term(), term())}1344 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: false}} or1345 %OpenApiSpex.Cast{1346 schema: %{1347 ...,1348 oneOf: empty_list() or non_empty_list(term(), term()),1349 type: term()1350 }1351 } or %OpenApiSpex.Cast{schema: %{..., type: :number}}))1352 )13531354 where "ctx" was given the types:13551356 # type: dynamic(%{..., schema: %{..., allOf: non_empty_list(term(), term())}})1357 # from: lib/open_api_spex/cast/all_of.ex:9:741358 %{schema: %{allOf: [%OpenApiSpex.Schema{} = schema | remaining]}} = ctx13591360 # type: dynamic(%{..., errors: term(), schema: %{..., allOf: non_empty_list(term(), term())}})1361 # from: lib/open_api_spex/cast/all_of.ex:13:151362 OpenApiSpex.Cast.cast(%{ctx | errors: [], schema: relaxed_schema})13631364 # type: dynamic(1365 %OpenApiSpex.Cast{1366 schema: %{..., allOf: non_empty_list(term(), term()), "x-validate": atom() and not nil}1367 } or1368 (%OpenApiSpex.Cast{1369 schema:1370 %{1371 ...,1372 allOf: non_empty_list(term(), term()),1373 anyOf: empty_list() or non_empty_list(term(), term()),1374 type: term()1375 } and1376 not (%{..., "x-validate": not nil} or %{..., discriminator: map(), type: :object} or1377 %{..., enum: empty_list() or non_empty_list(term(), term())})1378 } and1379 not (%OpenApiSpex.Cast{value: nil, schema: %{..., nullable: false}} or1380 %OpenApiSpex.Cast{1381 value: nil,1382 schema: %{..., oneOf: empty_list() or non_empty_list(term(), term())}1383 } or1384 %OpenApiSpex.Cast{1385 value: nil,1386 schema: %{..., allOf: empty_list() or non_empty_list(term(), term())}1387 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: true}} or1388 %OpenApiSpex.Cast{1389 value: nil,1390 schema: %{..., anyOf: empty_list() or non_empty_list(term(), term())}1391 } or %OpenApiSpex.Cast{value: nil})) or1392 (%OpenApiSpex.Cast{1393 schema:1394 %{..., allOf: non_empty_list(term(), term()), discriminator: map(), type: :object} and1395 not (%{..., "x-validate": not nil} or1396 %{..., enum: empty_list() or non_empty_list(term(), term())})1397 } and1398 not (%OpenApiSpex.Cast{value: nil, schema: %{..., nullable: false}} or1399 %OpenApiSpex.Cast{1400 value: nil,1401 schema: %{..., oneOf: empty_list() or non_empty_list(term(), term())}1402 } or1403 %OpenApiSpex.Cast{1404 value: nil,1405 schema: %{..., allOf: empty_list() or non_empty_list(term(), term())}1406 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: true}} or1407 %OpenApiSpex.Cast{1408 value: nil,1409 schema: %{..., anyOf: empty_list() or non_empty_list(term(), term())}1410 } or %OpenApiSpex.Cast{value: nil})) or1411 (%OpenApiSpex.Cast{1412 schema:1413 %{..., allOf: non_empty_list(term(), term()), enum: empty_list()} and1414 not %{..., "x-validate": not nil}1415 } and1416 not (%OpenApiSpex.Cast{value: nil, schema: %{..., nullable: false}} or1417 %OpenApiSpex.Cast{1418 value: nil,1419 schema: %{..., oneOf: empty_list() or non_empty_list(term(), term())}1420 } or1421 %OpenApiSpex.Cast{1422 value: nil,1423 schema: %{..., allOf: empty_list() or non_empty_list(term(), term())}1424 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: true}} or1425 %OpenApiSpex.Cast{1426 value: nil,1427 schema: %{..., anyOf: empty_list() or non_empty_list(term(), term())}1428 } or %OpenApiSpex.Cast{value: nil})) or1429 (%OpenApiSpex.Cast{1430 schema:1431 %{..., allOf: non_empty_list(term(), term()), enum: non_empty_list(term(), term())} and1432 not %{..., "x-validate": not nil}1433 } and1434 not (%OpenApiSpex.Cast{value: nil, schema: %{..., nullable: false}} or1435 %OpenApiSpex.Cast{1436 value: nil,1437 schema: %{..., oneOf: empty_list() or non_empty_list(term(), term())}1438 } or1439 %OpenApiSpex.Cast{1440 value: nil,1441 schema: %{..., allOf: empty_list() or non_empty_list(term(), term())}1442 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: true}} or1443 %OpenApiSpex.Cast{1444 value: nil,1445 schema: %{..., anyOf: empty_list() or non_empty_list(term(), term())}1446 } or %OpenApiSpex.Cast{value: nil})) or1447 (%OpenApiSpex.Cast{1448 schema:1449 %{..., allOf: non_empty_list(term(), term()), type: term()} and1450 not (%{..., "x-validate": not nil} or %{..., discriminator: map(), type: :object} or1451 %{..., anyOf: empty_list() or non_empty_list(term(), term()), type: term()} or1452 %{..., enum: empty_list() or non_empty_list(term(), term())})1453 } and1454 not (%OpenApiSpex.Cast{value: nil} or1455 %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: true}} or1456 %OpenApiSpex.Cast{1457 value: nil,1458 schema: %{..., allOf: empty_list() or non_empty_list(term(), term())}1459 } or1460 %OpenApiSpex.Cast{1461 value: nil,1462 schema: %{..., oneOf: empty_list() or non_empty_list(term(), term())}1463 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: false}})) or1464 (%OpenApiSpex.Cast{1465 value: nil,1466 schema: %{..., allOf: non_empty_list(term(), term()), nullable: false}1467 } and1468 not %OpenApiSpex.Cast{1469 schema: %OpenApiSpex.Reference{} or %{..., "x-validate": not nil} or nil1470 }) or1471 (%OpenApiSpex.Cast{1472 value: nil,1473 schema:1474 %{..., allOf: non_empty_list(term(), term())} and1475 not (%{..., oneOf: empty_list() or non_empty_list(term(), term())} or1476 %{..., nullable: true} or1477 %{..., anyOf: empty_list() or non_empty_list(term(), term())} or1478 %{..., nullable: false})1479 } and1480 not %OpenApiSpex.Cast{1481 schema: %OpenApiSpex.Reference{} or %{..., "x-validate": not nil} or nil1482 }) or1483 (%OpenApiSpex.Cast{1484 value: nil,1485 schema:1486 %{1487 ...,1488 allOf: non_empty_list(term(), term()),1489 anyOf: empty_list() or non_empty_list(term(), term())1490 } and1491 not (%{..., oneOf: empty_list() or non_empty_list(term(), term())} or1492 %{..., nullable: true} or %{..., nullable: false})1493 } and1494 not %OpenApiSpex.Cast{1495 schema: %OpenApiSpex.Reference{} or %{..., "x-validate": not nil} or nil1496 }) or1497 (%OpenApiSpex.Cast{1498 value: nil,1499 schema:1500 %{1501 ...,1502 allOf: non_empty_list(term(), term()),1503 oneOf: empty_list() or non_empty_list(term(), term())1504 } and not (%{..., nullable: true} or %{..., nullable: false})1505 } and1506 not %OpenApiSpex.Cast{1507 schema: %OpenApiSpex.Reference{} or %{..., "x-validate": not nil} or nil1508 }) or1509 (%{..., errors: term(), schema: %{..., allOf: non_empty_list(term(), term())}} and1510 not (%OpenApiSpex.Cast{value: nil} or %OpenApiSpex.Cast{schema: %{..., type: :integer}} or1511 %OpenApiSpex.Cast{1512 schema: %{1513 ...,1514 anyOf: empty_list() or non_empty_list(term(), term()),1515 type: term()1516 }1517 } or %OpenApiSpex.Cast{schema: %{..., enum: empty_list()}} or1518 %OpenApiSpex.Cast{schema: %{..., type: :array}} or1519 %OpenApiSpex.Cast{1520 value: nil,1521 schema: %{..., anyOf: empty_list() or non_empty_list(term(), term())}1522 } or %OpenApiSpex.Cast{schema: %{..., type: :boolean}} or1523 %OpenApiSpex.Cast{schema: %{..., type: :string}} or1524 %OpenApiSpex.Cast{schema: %{..., type: term()}} or1525 %OpenApiSpex.Cast{1526 schema: %OpenApiSpex.Reference{} or %{..., "x-validate": not nil} or nil1527 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: true}} or1528 %OpenApiSpex.Cast{1529 value: nil,1530 schema: %{..., allOf: empty_list() or non_empty_list(term(), term())}1531 } or %OpenApiSpex.Cast{schema: %{..., type: :object}} or1532 %OpenApiSpex.Cast{schema: %{..., discriminator: map(), type: :object}} or1533 %OpenApiSpex.Cast{1534 schema: %{..., enum: empty_list() or non_empty_list(term(), term())}1535 } or1536 %OpenApiSpex.Cast{1537 schema: %{1538 ...,1539 allOf: empty_list() or non_empty_list(term(), term()),1540 type: term()1541 }1542 } or %OpenApiSpex.Cast{schema: %{..., type: nil}} or1543 %OpenApiSpex.Cast{1544 value: nil,1545 schema: %{..., oneOf: empty_list() or non_empty_list(term(), term())}1546 } or %OpenApiSpex.Cast{value: nil, schema: %{..., nullable: false}} or1547 %OpenApiSpex.Cast{1548 schema: %{1549 ...,1550 oneOf: empty_list() or non_empty_list(term(), term()),1551 type: term()1552 }1553 } or %OpenApiSpex.Cast{schema: %{..., type: :number}}))1554 )1555 # from: lib/open_api_spex/cast/all_of.ex:13:151556 OpenApiSpex.Cast.cast(%{ctx | errors: [], schema: relaxed_schema})15571558 when defining the variable "ctx", you must also pattern match on "%OpenApiSpex.Cast{}"15591560 type warning found at:1561 │1562 26 │ %Cast{ctx | errors: ctx.errors ++ errors},1563 │ ~1564 │1565 └─ lib/open_api_spex/cast/all_of.ex:26:11: OpenApiSpex.Cast.AllOf.cast_all_of/215661567 warning: the following clause is redundant:15681569 def cast(schema = %OpenApiSpex.Schema{type: :object, allOf: []}, value = %{}, schemas)15701571 it has type:15721573 dynamic(%OpenApiSpex.Schema{type: :object, allOf: empty_list()}), dynamic(map()), dynamic()15741575 previous clauses have already matched on the following types:15761577 %OpenApiSpex.Schema{type: :boolean}, boolean(), term()1578 %OpenApiSpex.Schema{type: :boolean}, binary(), term()1579 %OpenApiSpex.Schema{type: :integer}, integer(), term()1580 %OpenApiSpex.Schema{type: :integer}, binary(), term()1581 %OpenApiSpex.Schema{type: :number}, float(), term()1582 %OpenApiSpex.Schema{type: :number}, integer(), term()1583 %OpenApiSpex.Schema{type: :number}, binary(), term()1584 %OpenApiSpex.Schema{type: :string, format: :"date-time"}, binary(), term()1585 %OpenApiSpex.Schema{type: :string, format: :date}, binary(), term()1586 %OpenApiSpex.Schema{type: :string, format: :binary}, %Plug.Upload{}, term()1587 %OpenApiSpex.Schema{type: :string}, binary(), term()1588 %OpenApiSpex.Schema{type: :array, items: nil}, empty_list() or non_empty_list(term(), term()), term()1589 %OpenApiSpex.Schema{type: :array}, empty_list(), term()1590 %OpenApiSpex.Schema{type: :array}, non_empty_list(term(), term()), term()1591 %OpenApiSpex.Schema{type: :array}, not empty_list() and not non_empty_list(term(), term()), term()1592 %OpenApiSpex.Schema{type: :object, discriminator: map()}, map(), term()1593 %OpenApiSpex.Schema{type: :object, allOf: empty_list() or non_empty_list(term(), term())}, map(), term()15941595 │1596 107 │ def cast(schema = %Schema{type: :object, allOf: []}, value = %{}, schemas) do1597 │ ~1598 │1599 └─ lib/open_api_spex/deprecated_cast.ex:107:7: OpenApiSpex.DeprecatedCast.cast/316001601 warning: the following clause is redundant:16021603 def cast(%OpenApiSpex.Schema{oneOf: []}, _value, _schemas)16041605 it has type:16061607 %OpenApiSpex.Schema{oneOf: empty_list()}, dynamic(), dynamic()16081609 previous clauses have already matched on the following types:16101611 %OpenApiSpex.Schema{type: :boolean}, boolean(), term()1612 %OpenApiSpex.Schema{type: :boolean}, binary(), term()1613 %OpenApiSpex.Schema{type: :integer}, integer(), term()1614 %OpenApiSpex.Schema{type: :integer}, binary(), term()1615 %OpenApiSpex.Schema{type: :number}, float(), term()1616 %OpenApiSpex.Schema{type: :number}, integer(), term()1617 %OpenApiSpex.Schema{type: :number}, binary(), term()1618 %OpenApiSpex.Schema{type: :string, format: :"date-time"}, binary(), term()1619 %OpenApiSpex.Schema{type: :string, format: :date}, binary(), term()1620 %OpenApiSpex.Schema{type: :string, format: :binary}, %Plug.Upload{}, term()1621 %OpenApiSpex.Schema{type: :string}, binary(), term()1622 %OpenApiSpex.Schema{type: :array, items: nil}, empty_list() or non_empty_list(term(), term()), term()1623 %OpenApiSpex.Schema{type: :array}, empty_list(), term()1624 %OpenApiSpex.Schema{type: :array}, non_empty_list(term(), term()), term()1625 %OpenApiSpex.Schema{type: :array}, not empty_list() and not non_empty_list(term(), term()), term()1626 %OpenApiSpex.Schema{type: :object, discriminator: map()}, map(), term()1627 %OpenApiSpex.Schema{type: :object, allOf: empty_list() or non_empty_list(term(), term())}, map(), term()1628 %OpenApiSpex.Schema{oneOf: empty_list() or non_empty_list(term(), term())}, term(), term()16291630 │1631 115 │ def cast(%Schema{oneOf: []}, _value, _schemas) do1632 │ ~1633 │1634 └─ lib/open_api_spex/deprecated_cast.ex:115:7: OpenApiSpex.DeprecatedCast.cast/316351636 warning: this clause of defp term_type/1 is never used (or it will always fail/warn when invoked)1637 │1638 325 │ defp term_type(v) when is_nil(v), do: nil1639 │ ~1640 │1641 └─ lib/open_api_spex/deprecated_cast.ex:325:8: OpenApiSpex.DeprecatedCast.term_type/116421643 warning: this clause of defp validate_required_properties/3 is never used (or it will always fail/warn when invoked)1644 │1645 466 │ defp validate_required_properties(%Schema{type: :object, required: nil}, _val, _path), do: :ok1646 │ ~1647 │1648 └─ lib/open_api_spex/deprecated_cast.ex:466:8: OpenApiSpex.DeprecatedCast.validate_required_properties/316491650 warning: a struct for OpenApiSpex.Cast is expected on struct update:16511652 %OpenApiSpex.Cast{ctx | errors: ctx.errors ++ errors}16531654 but got type:16551656 dynamic(%{..., schemas: term()})16571658 where "ctx" was given the type:16591660 # type: dynamic(%{..., schemas: term()})1661 # from: lib/open_api_spex/cast/one_of.ex:14:301662 OpenApiSpex.resolve_schema(schema, ctx.schemas)16631664 when defining the variable "ctx", you must also pattern match on "%OpenApiSpex.Cast{}"16651666 type warning found at:1667 │1668 22 │ {%Cast{ctx | errors: ctx.errors ++ errors}, results, [schema | error_schemas]}1669 │ ~1670 │1671 └─ lib/open_api_spex/cast/one_of.ex:22:14: OpenApiSpex.Cast.OneOf.cast/116721673 warning: a struct for OpenApiSpex.Cast is expected on struct update:16741675 %OpenApiSpex.Cast{new_ctx | errors: new_ctx.errors ++ errors}16761677 but got type:16781679 dynamic(%{..., schema: %{..., anyOf: term()}})16801681 where "new_ctx" was given the type:16821683 # type: dynamic(%{..., schema: %{..., anyOf: term()}})1684 # from: lib/open_api_spex/cast/any_of.ex:20:131685 new_ctx = Map.update!(ctx, :schema, fn x -> Map.update!(x, :anyOf, fn _ -> remaining end) end)16861687 when defining the variable "new_ctx", you must also pattern match on "%OpenApiSpex.Cast{}"16881689 type warning found at:1690 │1691 35 │ %Cast{new_ctx | errors: new_ctx.errors ++ errors},1692 │ ~1693 │1694 └─ lib/open_api_spex/cast/any_of.ex:35:11: OpenApiSpex.Cast.AnyOf.cast_any_of/316951696 warning: the right-hand side of || will never be executed:16971698 description || ...16991700 because the left-hand side always evaluates to:17011702 dynamic(not false and not nil)17031704 where "description" was given the type:17051706 # type: dynamic(not false and not nil)1707 # from: lib/open_api_spex/controller.ex1708 {:ok, {mod_meta, summary, description, meta}}17091710 type warning found at:1711 │1712 184 │ description: description || "",1713 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1714 │1715 └─ lib/open_api_spex/controller.ex:184: OpenApiSpex.Controller.__api_operation__/217161717 warning: the right-hand side of || will always execute:17181719 OpenApiSpex.OpenApi.yaml_encoder()17201721 because the left-hand side always evaluates to:17221723 dynamic(nil)17241725 where "x" (context Kernel) was given the type:17261727 # type: dynamic(nil)1728 # from: lib/mix/tasks/openapi.spec.yaml.ex:541729 x17301731 type warning found at:1732 │1733 54 │ OpenApiSpex.OpenApi.yaml_encoder() ||1734 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1735 │1736 └─ lib/mix/tasks/openapi.spec.yaml.ex:54: Mix.Tasks.Openapi.Spec.Yaml.encoder/017371738Generated open_api_spex app1739==> phoenix_html_helpers1740Compiling 6 files (.ex)1741 warning: comparison between distinct types found:17421743 id == nil17441745 given types:17461747 dynamic(not false and not nil and not binary()) == nil17481749 where "id" was given the types:17501751 # type: dynamic(not false and not nil)1752 # from: lib/phoenix_html_helpers/form_data.ex:5:81753 id = Keyword.get(opts, :id) || name17541755 # type: dynamic(not false and not nil and not binary())1756 # from: lib/phoenix_html_helpers/form_data.ex:7:121757 is_binary(id)17581759 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 false17601761 type warning found at:1762 │1763 7 │ unless is_binary(id) or is_nil(id) do1764 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1765 │1766 └─ lib/phoenix_html_helpers/form_data.ex:7: Phoenix.HTML.FormData.Atom.to_form/217671768 warning: incompatible types given to form_for/3:17691770 form_for(form_data, action, [])17711772 given types:17731774 dynamic(), dynamic(), -empty_list()-17751776 but expected one of:17771778 term(), term(), (none() -> term())17791780 where "action" was given the type:17811782 # type: dynamic()1783 # from: lib/phoenix_html_helpers/form.ex:36:271784 action17851786 where "form_data" was given the type:17871788 # type: dynamic()1789 # from: lib/phoenix_html_helpers/form.ex:36:161790 form_data17911792 type warning found at:1793 │1794 37 │ form_for(form_data, action, [])1795 │ ~1796 │1797 └─ lib/phoenix_html_helpers/form.ex:37:5: PhoenixHTMLHelpers.Form.form_for/217981799Generated phoenix_html_helpers app1800==> prometheus_plugs1801Compiling 3 files (.ex)1802 warning: unused require Logger1803 │1804 53 │ require Logger1805 │ ~1806 │1807 └─ lib/prometheus/plug_exporter.ex:53:318081809 warning: unused require Logger1810 │1811 91 │ require Logger1812 │ ~1813 │1814 └─ lib/prometheus/plug_instrumenter.ex:91:318151816 warning: unused require Logger1817 │1818 91 │ require Logger1819 │ ~1820 │1821 └─ lib/prometheus/plug_pipeline_instrumenter.ex:91:318221823 warning: Plug.Router.Utils.split/1 is undefined (module Plug.Router.Utils is not available or is yet to be defined)1824 │1825 73 │ path = Plug.Router.Utils.split(Config.path(module_name))1826 │ ~1827 │1828 └─ lib/prometheus/plug_exporter.ex:73:30: Prometheus.PlugExporter.__using__/118291830 warning: Plug.Builder.compile/3 is undefined (module Plug.Builder is not available or is yet to be defined)1831 │1832 227 │ {conn, body} = Plug.Builder.compile(env, plugs, [])1833 │ ~1834 │1835 └─ lib/prometheus/plug_instrumenter.ex:227:33: Prometheus.PlugInstrumenter.__before_compile__/118361837Generated prometheus_plugs app1838==> ecto_enum1839Compiling 5 files (.ex)1840Generated ecto_enum app1841==> websock_adapter1842Compiling 4 files (.ex)1843Generated websock_adapter app1844warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1845 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21846 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11847 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51848 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21849 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41850 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/218511852==> phoenix1853Compiling 71 files (.ex)1854 warning: unused require Logger1855 │1856 9 │ require Logger1857 │ ~1858 │1859 └─ lib/phoenix/config.ex:9:318601861 warning: unused require Logger1862 │1863 281 │ require Logger1864 │ ~1865 │1866 └─ lib/phoenix/endpoint.ex:281:318671868 warning: unused require Phoenix.Endpoint1869 │1870 6 │ require Phoenix.Endpoint1871 │ ~1872 │1873 └─ lib/phoenix/controller.ex:6:318741875 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 operator1876 │1877 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1878 │ ~1879 │1880 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/218811882 warning: unused require Phoenix.Endpoint1883 │1884 17 │ require Phoenix.Endpoint1885 │ ~1886 │1887 └─ lib/phoenix/endpoint/render_errors.ex:17:318881889 warning: unused require Phoenix.Endpoint1890 │1891 6 │ require Phoenix.Endpoint1892 │ ~1893 │1894 └─ lib/phoenix/channel/server.ex:6:318951896 warning: unused require Phoenix.Endpoint1897 │1898 202 │ require Phoenix.Endpoint1899 │ ~1900 │1901 └─ lib/phoenix/socket.ex:202:319021903 warning: unused require Logger1904 │1905 70 │ require Logger1906 │ ~1907 │1908 └─ lib/phoenix/socket/pool_supervisor.ex:70:319091910 warning: unused require Logger1911 │1912 100 │ require Logger1913 │ ~1914 │1915 └─ lib/phoenix/token.ex:100:319161917 warning: comparison between distinct types found:19181919 merge_all != []19201921 given types:19221923 dynamic(non_empty_list({atom(), term()})) != empty_list()19241925 where "merge_all" was given the type:19261927 # type: dynamic(non_empty_list({atom(), term()}))1928 # from: lib/phoenix/router/route.ex:121:151929 merge_all = merge_params ++ merge_private ++ merge_assigns19301931 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 false19321933 type warning found at:1934 │1935 123 │ if merge_all != [] do1936 │ ~1937 │1938 └─ lib/phoenix/router/route.ex:123:18: Phoenix.Router.Route.build_prepare/119391940 warning: a struct for Plug.Conn is expected on struct update:19411942 %Plug.Conn{conn | state: :sent}19431944 but got type:19451946 dynamic()19471948 where "conn" was given the type:19491950 # type: dynamic()1951 # from: lib/phoenix/endpoint/render_errors.ex:55:171952 conn19531954 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"19551956 type warning found at:1957 │1958 60 │ %Plug.Conn{conn | state: :sent}1959 │ ~1960 │1961 └─ lib/phoenix/endpoint/render_errors.ex:60:11: Phoenix.Endpoint.RenderErrors.__catch__/519621963 warning: a struct for Plug.Conn is expected on struct update:19641965 %Plug.Conn{conn | query_params: %{}, params: %{}}19661967 but got type:19681969 dynamic(%{..., params: %Plug.Conn.Unfetched{}})19701971 where "conn" was given the types:19721973 # type: dynamic(%{..., params: term()})1974 # from: lib/phoenix/endpoint/render_errors.ex:133:171975 conn.params19761977 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1978 # from: lib/phoenix/endpoint/render_errors.ex:133:171979 conn.params19801981 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"19821983 type warning found at:1984 │1985 134 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1986 │ ~1987 │1988 └─ lib/phoenix/endpoint/render_errors.ex:134:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/119891990 warning: a struct for Plug.Conn is expected on struct update:19911992 %Plug.Conn{conn | query_params: %{}, params: params}19931994 but got type:19951996 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})19971998 where "conn" was given the types:19992000 # type: dynamic(%{..., params: term()})2001 # from: lib/phoenix/endpoint/render_errors.ex:133:172002 conn.params20032004 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})2005 # from: lib/phoenix/endpoint/render_errors.ex:133:172006 conn.params20072008 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"20092010 type warning found at:2011 │2012 135 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}2013 │ ~2014 │2015 └─ lib/phoenix/endpoint/render_errors.ex:135:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/120162017 warning: a struct for Plug.Conn is expected on struct update:20182019 %Plug.Conn{conn | params: params}20202021 but got type:20222023 dynamic(%{..., params: map()})20242025 where "conn" was given the type:20262027 # type: dynamic(%{..., params: map()})2028 # from: lib/phoenix/controller.ex:1327:172029 Map.get(conn.params, required_key)20302031 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"20322033 type warning found at:2034 │2035 1334 │ %Plug.Conn{conn | params: params}2036 │ ~2037 │2038 └─ lib/phoenix/controller.ex:1334:5: Phoenix.Controller.scrub_params/220392040Generated phoenix app2041==> nerves_compatibility_test2042===> Analyzing applications...2043===> Compiling quic2044===> Analyzing applications...2045===> Compiling webtransport2046===> Analyzing applications...2047===> Compiling hackney2048==> httpoison2049Compiling 3 files (.ex)2050Generated httpoison app2051==> step_flow2052Compiling 183 files (.ex)2053 warning: unused require Logger2054 │2055 5 │ require Logger2056 │ ~2057 │2058 └─ lib/step_flow/amqp/common_emitter.ex:5:320592060 warning: unused require Logger2061 │2062 11 │ require Logger2063 │ ~2064 │2065 └─ lib/step_flow/application.ex:11:320662067 warning: unused require Logger2068 │2069 6 │ require Logger2070 │ ~2071 │2072 └─ lib/step_flow/controllers/statistics/durations.ex:6:320732074 warning: unused require Logger2075 │2076 5 │ require Logger2077 │ ~2078 │2079 └─ lib/step_flow/controllers/step/launch_params.ex:5:320802081 warning: unused require Logger2082 │2083 7 │ require Logger2084 │ ~2085 │2086 └─ lib/step_flow/metrics/live_workflow_processing_collector.ex:7:320872088 warning: unused require Logger2089 │2090 7 │ require Logger2091 │ ~2092 │2093 └─ lib/step_flow/metrics/pending_job_collector.ex:7:320942095 warning: unused require Logger2096 │2097 8 │ require Logger2098 │ ~2099 │2100 └─ lib/step_flow/metrics/workflow_collector.ex:8:321012102 warning: unused require Logger2103 │2104 6 │ require Logger2105 │ ~2106 │2107 └─ lib/step_flow/models/rights/right.ex:6:321082109 warning: unused require Logger2110 │2111 5 │ require Logger2112 │ ~2113 │2114 └─ lib/step_flow/models/roles/role.ex:5:321152116 warning: unused require Logger2117 │2118 6 │ require Logger2119 │ ~2120 │2121 └─ lib/step_flow/models/roles/roles.ex:6:321222123 warning: unused require Logger2124 │2125 8 │ require Logger2126 │ ~2127 │2128 └─ lib/step_flow/models/workflow_definitions/workflow_definition.ex:8:321292130 warning: unused require Logger2131 │2132 4 │ require Logger2133 │ ~2134 │2135 └─ lib/step_flow/plugs/prometheus.ex:4:321362137 warning: unused require Logger2138 │2139 4 │ require Logger2140 │ ~2141 │2142 └─ lib/step_flow/plugs/step_flow.ex:4:321432144 warning: unused require Logger2145 │2146 4 │ require Logger2147 │ ~2148 │2149 └─ lib/step_flow/view/workflow_view.ex:4:321502151 warning: the following clause is redundant:21522153 def create_worker_status!(%StepFlow.Progressions.Progression{} = message)21542155 it has type:21562157 dynamic(%StepFlow.Progressions.Progression{})21582159 previous clauses have already matched on the following types:21602161 map()21622163 │2164 181 │ def create_worker_status!(%StepFlow.Progressions.Progression{} = message) do2165 │ ~2166 │2167 └─ lib/step_flow/models/workers/worker_statuses.ex:181:7: StepFlow.Workers.WorkerStatuses.create_worker_status!/121682169Generated step_flow app2170==> nerves_compatibility_test2171Compiling 2 files (.ex)2172Generated nerves_compatibility_test app2173* skipping runtime configuration (config/runtime.exs not found)2174** (Mix) Duplicated modules: 2175 'Elixir.JSON.Encoder.Map' specified in elixir and json2176 'Elixir.JSON.Encoder.List' specified in elixir and json2177 'Elixir.JSON.Encoder.Integer' specified in elixir and json2178 'Elixir.JSON.Encoder.Float' specified in elixir and json2179 'Elixir.JSON.Encoder.BitString' specified in elixir and json2180 'Elixir.JSON.Encoder.Atom' specified in elixir and json2181 'Elixir.JSON.Encoder' specified in elixir and json2182 'Elixir.JSON' specified in elixir and json