tracy_web

Build log

host

tracy_web 0.0.1-rc.1 · fail · run tracy_web-0.0.1-rc.1-1791143770106
1519 of 1519 lines
1Resolving Hex dependencies...2Resolution completed in 0.281s3Unchanged:4  circular_buffer 1.1.05  cowboy 1.1.2 VULNERABLE!6    GHSA-w4f7-4cxr-rv3c (MEDIUM)7    aka: CVE-2026-43966, EEF-CVE-2026-439668    cowboy and gun affected by an HTTP Request/Response Splitting vulnerability9    https://osv.dev/vulnerability/GHSA-w4f7-4cxr-rv3c10  cowlib 1.0.2 VULNERABLE!11    EEF-CVE-2026-7790 (HIGH)12    aka: CVE-2026-7790, GHSA-32p9-57cr-4x6513    Unbounded chunk-size hex digits in cowlib cause quadratic CPU and memory DoS14    https://osv.dev/vulnerability/EEF-CVE-2026-77901516    EEF-CVE-2026-43970 (HIGH)17    aka: CVE-2026-43970, GHSA-84f2-rp86-235p18    Decompression Bomb in cow_spdy:inflate/2 Allows Memory Exhaustion via Crafted SPDY Frame19    https://osv.dev/vulnerability/EEF-CVE-2026-4397020  elixir_make 0.10.021  expo 1.1.122  gettext 0.26.223  interactive_cmd 0.1.424  mime 1.6.025  nerves 2.0.0-pre.226  nerves_discovery 0.1.527  nerves_logging 0.2.428  nerves_runtime 0.13.1329  nerves_system_bbb 2.30.230  nerves_system_br 1.34.431  nerves_system_mangopi_mq_pro 0.17.232  nerves_system_qemu_aarch64 0.4.233  nerves_system_rpi0 2.1.234  nerves_system_rpi4 2.1.235  nerves_system_rpi5 2.1.236  nerves_system_trellis 0.5.037  nerves_system_x86_64 1.34.238  nerves_toolchain_aarch64_nerves_linux_gnu 15.3.139  nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.140  nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.141  nerves_toolchain_riscv64_nerves_linux_gnu 15.3.142  nerves_toolchain_x86_64_nerves_linux_musl 15.3.143  nerves_uevent 0.1.744  phoenix 1.3.5 VULNERABLE!45    GHSA-p8f7-22gq-m7j9 (HIGH)46    aka: CVE-2022-4297547    Phoenix before 1.6.14 mishandles check_origin wildcarding48    https://osv.dev/vulnerability/GHSA-p8f7-22gq-m7j94950    EEF-CVE-2026-56812 (MEDIUM)51    aka: CVE-2026-56812, GHSA-63mc-hw7g-86rr52    Phoenix JavaScript presence client crashes on presence keys colliding with Object.prototype members in Presence.syncState/syncDiff53    https://osv.dev/vulnerability/EEF-CVE-2026-568125455    EEF-CVE-2026-56811 (HIGH)56    aka: CVE-2026-56811, GHSA-6983-jfq8-485w57    Phoenix transports do not limit channel joins per connection, enabling process-exhaustion denial of service58    https://osv.dev/vulnerability/EEF-CVE-2026-5681159  phoenix_html 2.10.5 VULNERABLE!60    GHSA-5g2h-9x5v-5h3x (MEDIUM)61    aka: CVE-2021-46871, GHSA-j3gg-r6gp-95q262    phoenix_html allows Cross-site Scripting in HEEx class attributes63    https://osv.dev/vulnerability/GHSA-5g2h-9x5v-5h3x64  phoenix_pubsub 1.1.265  plug 1.3.6 VULNERABLE!66    EEF-CVE-2026-56813 (LOW)67    aka: CVE-2026-56813, GHSA-wpmj-jh88-rpgm68    Cookie attribute injection in Plug.Conn.Cookies.encode/269    https://osv.dev/vulnerability/EEF-CVE-2026-5681370  poison 3.1.071  property_table 0.3.472  ranch 1.3.273  ring_logger 0.11.774  tablet 0.3.375  toolshed 0.5.076  tracy 0.1.077  tracy_web 0.0.1-rc.178  uboot_env 1.0.279Found packages with security advisories, see above for details80All dependencies have been fetched81    warning: String.strip/1 is deprecated. Use String.trim/1 instead82    │83  4 │   @version File.read!("VERSION") |> String.strip84    │                                            ~85    │86    └─ /work/proj/deps/poison/mix.exs:4:44: Poison.Mixfile (module)8788warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"89  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/290  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/191  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/592  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/293  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/494  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/29596==> plug97Compiling 44 files (.ex)98warning: Kernel.to_char_list/1 is deprecated, use Kernel.to_charlist/1 instead99  lib/plug/adapters/cowboy.ex:220: Plug.Adapters.Cowboy.put_ssl_file/3100101warning: Kernel.to_char_list/1 is deprecated, use Kernel.to_charlist/1 instead102  lib/plug/adapters/cowboy.ex:238: Plug.Adapters.Cowboy.to_char_list/2103104     warning: using single-quoted strings to represent charlists is deprecated.105     Use ~c"" if you indeed want a charlist or use "" instead.106     You may run "mix format --migrate" to change all single-quoted107     strings to use the ~c sigil and fix this warning.108     │109 230 │     generated? = :erlang.system_info(:otp_release) >= '19'110     │                                                       ~111     │112     └─ lib/plug/builder.ex:230:55113114     warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead115     │116 421 │       when not state in @unsent do117     │                      ~118     │119     └─ lib/plug/conn.ex:421:22120121     warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead122     │123 445 │       when not state in @unsent do124     │                      ~125     │126     └─ lib/plug/conn.ex:445:22127128     warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead129     │130 497 │       when not state in @unsent do131     │                      ~132     │133     └─ lib/plug/conn.ex:497:22134135     warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead136     │137 883 │   def put_session(%Conn{state: state}, _key, _value) when not state in @unsent,138     │                                                                     ~139     │140     └─ lib/plug/conn.ex:883:69141142     warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead143     │144 907 │   def delete_session(%Conn{state: state}, _key) when not state in @unsent,145     │                                                                ~146     │147     └─ lib/plug/conn.ex:907:64148149     warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead150     │151 939 │   def configure_session(%Conn{state: state}, _opts) when not state in @unsent,152     │                                                                    ~153     │154     └─ lib/plug/conn.ex:939:68155156     warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead157     │158 961 │       when not state in @unsent do159     │                      ~160     │161     └─ lib/plug/conn.ex:961:22162163    warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead164    │165  6 │   custom_statuses = Application.get_env(:plug, :statuses, %{})166    │                                 ~167    │168    └─ lib/plug/conn/status.ex:6:33: Plug.Conn.Status (module)169170    warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead171    │172 65 │     mask(left, right, <<acc::binary, x ^^^ y>>)173    │                                        ~174    │175    └─ lib/plug/crypto.ex:65:40176177    warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead178    │179 87 │     masked_compare(left, right, mask, acc ||| (x ^^^ (y ^^^ z)))180    │                                                  ~181    │182    └─ lib/plug/crypto.ex:87:50183184    warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead185    │186 87 │     masked_compare(left, right, mask, acc ||| (x ^^^ (y ^^^ z)))187    │                                                         ~188    │189    └─ lib/plug/crypto.ex:87:57190191     warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead192     │193 108 │     secure_compare(left, right, acc ||| (x ^^^ y))194     │                                            ~195     │196     └─ lib/plug/crypto.ex:108:44197198    warning: use Bitwise is deprecated. import Bitwise instead199    │200  6 │   use Bitwise201    │   ~~~~~~~~~~~202    │203    └─ lib/plug/crypto.ex:6: Plug.Crypto (module)204205    warning: use Bitwise is deprecated. import Bitwise instead206    │207 13 │   use Bitwise208    │   ~~~~~~~~~~~209    │210    └─ lib/plug/crypto/key_generator.ex:13: Plug.Crypto.KeyGenerator (module)211212    warning: the variable "max_length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator213    │214 59 │     <<bin::binary-size(max_length), _::binary>> = key215    │                        ~216    │217    └─ lib/plug/crypto/key_generator.ex:59:24: Plug.Crypto.KeyGenerator.generate/7218219    warning: unused require Bitwise220    │221 64 │   require Bitwise222    │   ~223    │224    └─ lib/plug/csrf_protection.ex:64:3225226    warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead227    │228  4 │   if Application.get_env(:plug, :mimes) do229    │                  ~230    │231    └─ lib/plug/mime.ex:4:18: Plug.MIME (module)232233    warning: unused require Logger234    │235 32 │   require Logger236    │   ~237    │238    └─ lib/plug/request_id.ex:32:3239240     warning: calling super for GenServer callback handle_info/2 is deprecated241     │242 164 │     super(msg, state)243     │     ~244     │245     └─ lib/plug/upload.ex:164:5: Plug.Upload.handle_info/2246247    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead248    │249 39 │         reraise e, System.stacktrace250    │                           ~251    │252    └─ lib/plug/parsers/multipart.ex:39:27: Plug.Parsers.MULTIPART.parse/5253    └─ lib/plug/parsers/multipart.ex:41:73: Plug.Parsers.MULTIPART.parse/5254255    warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead256    │257 12 │       worker(Plug.Upload, [])258    │       ~259    │260    └─ lib/plug/supervisor.ex:12:7: Plug.Supervisor.init/1261262    warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead263    │264 16 │     supervise(children, strategy: :one_for_one)265    │     ~266    │267    └─ lib/plug/supervisor.ex:16:5: Plug.Supervisor.init/1268269     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead270     │271 139 │     __catch__(conn, kind, reason, System.stacktrace, opts)272     │                                          ~273     │274     └─ lib/plug/debugger.ex:139:42: Plug.Debugger.__catch__/4275276     warning: String.rstrip/1 is deprecated. Use String.trim_trailing/1 instead277     │278 635 │ <pre class="code code-block"><%= for {index, line, highlight} <- snippet do %><span class="line <%= if highlight, do: "-highlight" %>"><span class="ln"><%= h index %></span><span class="code"><%= h String.rstrip(line) %></span></span>279     │                                                                                                                                                                                                              ~280     │281     └─ lib/plug/templates/debugger.html.eex:635:206: Plug.Debugger.template_html/1282283    warning: MIME.valid?/1 is deprecated. Use MIME.extensions(type) != [] instead284    │285 28 │     MIME.valid?(type)286    │          ~287    │288    └─ lib/plug/mime.ex:28:10: Plug.MIME.valid?/1289290     warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)291     │292 210 │       if Code.ensure_compiled?(module) and function_exported?(module, :init, 1) do293     │               ~294     │295     └─ lib/plug/parsers.ex:210:15: Plug.Parsers.convert_parsers/2296297    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead298    │299 82 │     __catch__(conn, kind, reason, reason, System.stacktrace, handle_errors)300    │                                                  ~301    │302    └─ lib/plug/error_handler.ex:82:50: Plug.ErrorHandler.__catch__/4303304    warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead305    │306 41 │     signature  = :crypto.hmac(:sha, key, plain_text)307    │                          ~308    │309    └─ lib/plug/crypto/message_verifier.ex:41:26: Plug.Crypto.MessageVerifier.hmac_sha1_sign/2310    └─ lib/plug/crypto/message_verifier.ex:49:29: Plug.Crypto.MessageVerifier.hmac_sha1_verify/2311    └─ lib/plug/crypto/message_verifier.ex:71:26: Plug.Crypto.MessageVerifier.hmac_sha2_sign/3312    └─ lib/plug/crypto/message_verifier.ex:80:29: Plug.Crypto.MessageVerifier.hmac_sha2_verify/2313314    warning: :crypto.block_encrypt/4 is undefined or private, use crypto:crypto_one_time/5, crypto:crypto_one_time_aead/6,7 or crypto:crypto_init + crypto:crypto_update + crypto:crypto_final instead315    │316 57 │     {cipher_text, cipher_tag} = :crypto.block_encrypt(:aes_gcm, key, iv, {aad, plain_text})317    │                                         ~318    │319    └─ lib/plug/crypto/message_encryptor.ex:57:41: Plug.Crypto.MessageEncryptor.aes128_gcm_encrypt/3320    └─ lib/plug/crypto/message_encryptor.ex:104:41: Plug.Crypto.MessageEncryptor.aes_gcm_key_wrap/3321    └─ lib/plug/crypto/message_encryptor.ex:314:13: Plug.Crypto.MessageEncryptor.encrypt_legacy/4322    └─ lib/plug/crypto/message_encryptor.ex:332:27: Plug.Crypto.MessageEncryptor.aes256_cbc_hmac_sha1_encrypt/3323324    warning: :crypto.block_decrypt/4 is undefined or private, use crypto:crypto_one_time/5, crypto:crypto_one_time_aead/6,7 or crypto:crypto_init + crypto:crypto_update + crypto:crypto_final instead325    │326 79 │             :crypto.block_decrypt(:aes_gcm, key, iv, {aad, cipher_text, cipher_tag})327    │                     ~328    │329    └─ lib/plug/crypto/message_encryptor.ex:79:21: Plug.Crypto.MessageEncryptor.aes128_gcm_decrypt/3330    └─ lib/plug/crypto/message_encryptor.ex:120:17: Plug.Crypto.MessageEncryptor.aes_gcm_key_unwrap/3331    └─ lib/plug/crypto/message_encryptor.ex:122:17: Plug.Crypto.MessageEncryptor.aes_gcm_key_unwrap/3332    └─ lib/plug/crypto/message_encryptor.ex:124:17: Plug.Crypto.MessageEncryptor.aes_gcm_key_unwrap/3333    └─ lib/plug/crypto/message_encryptor.ex:321:13: Plug.Crypto.MessageEncryptor.decrypt_legacy/4334    └─ lib/plug/crypto/message_encryptor.ex:349:17: Plug.Crypto.MessageEncryptor.aes256_cbc_hmac_sha1_decrypt/3335336     warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead337     │338 275 │     cipher_tag = Base.url_encode64(:crypto.hmac(:sha, sign_secret, cipher_text))339     │                                            ~340     │341     └─ lib/plug/crypto/message_encryptor.ex:275:44: Plug.Crypto.MessageEncryptor.encode_legacy_token/3342     └─ lib/plug/crypto/message_encryptor.ex:291:44: Plug.Crypto.MessageEncryptor.decode_legacy_token/2343344    warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead345    │346 78 │     &:crypto.hmac(digest, secret, &1)347    │              ~348    │349    └─ lib/plug/crypto/key_generator.ex:78:14: Plug.Crypto.KeyGenerator.mac_fun/2350351    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead352    │353 21 │     stack   = System.stacktrace354    │                      ~355    │356    └─ lib/plug/conn/wrapper_error.ex:21:22: Plug.Conn.WrapperError.reraise/3357    └─ lib/plug/conn/wrapper_error.ex:26:40: Plug.Conn.WrapperError.reraise/3358359    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead360    │361 21 │         stack = System.stacktrace()362    │                        ~363    │364    └─ lib/plug/adapters/cowboy/handler.ex:21:24: Plug.Adapters.Cowboy.Handler.upgrade/4365    └─ lib/plug/adapters/cowboy/handler.ex:26:24: Plug.Adapters.Cowboy.Handler.upgrade/4366    └─ lib/plug/adapters/cowboy/handler.ex:30:24: Plug.Adapters.Cowboy.Handler.upgrade/4367368    warning: a struct for Plug.Conn is expected on struct update:369370        %Plug.Conn{371          conn372          | adapter: {Plug.Adapters.Test.Conn, state},373            host: uri.host || conn.host || "www.example.com",374            method: method,375            owner: owner,376            path_info: split_path(uri.path),377            port: uri.port || 80,378            peer: {{127, 0, 0, 1}, 111_317},379            remote_ip: {127, 0, 0, 1},380            req_headers: req_headers,381            request_path: uri.path,382            query_string: query,383            params: params || %Plug.Conn.Unfetched{aspect: :params},384            scheme: String.to_atom(String.downcase(uri.scheme || "http"))385        }386387    but got type:388389        dynamic(%{..., req_headers: term()})390391    where "conn" was given the type:392393        # type: dynamic(%{..., req_headers: term()})394        # from: lib/plug/adapters/test/conn.ex:15:35395        body_or_params(body_or_params, query, conn.req_headers)396397    when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"398399    type warning found at:400    │401 19 │     %Plug.Conn{conn |402    │     ~403    │404    └─ lib/plug/adapters/test/conn.ex:19:5: Plug.Adapters.Test.Conn.conn/4405406     warning: Atom.to_char_list/1 is deprecated. Use Atom.to_charlist/1 instead407     │408 186 │     case Atom.to_char_list(plug) do409     │               ~410     │411     └─ lib/plug/builder.ex:186:15: Plug.Builder.init_plug/1412413    warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead414    │415 43 │       Enum.partition(cowboy_options, &is_tuple(&1) and tuple_size(&1) == 2)416    │            ~417    │418    └─ lib/plug/adapters/cowboy.ex:43:12: Plug.Adapters.Cowboy.args/4419420Generated plug app421warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"422  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2423  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1424  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5425  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2426  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4427  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2428429==> phoenix430Compiling 75 files (.ex)431     warning: the variable "prefix" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator432     │433 170 │       <<attr::size(prefix)-binary, ":unique">> -> attr434     │                    ~435     │436     └─ lib/mix/phoenix/schema.ex:170:20: Mix.Phoenix.Schema.drop_unique/1437438     warning: using single-quoted strings to represent charlists is deprecated.439     Use ~c"" if you indeed want a charlist or use "" instead.440     You may run "mix format --migrate" to change all single-quoted441     strings to use the ~c sigil and fix this warning.442     │443 310 │     :error_logger.warning_msg('~p ~p received unexpected message in handle_info/2: ~p~n',444     │                               ~445     │446     └─ lib/phoenix/channel/server.ex:310:31447448    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead449    │450 39 │             Logger.warn "Phoenix is unable to create symlinks. Phoenix' code reloader will run " <>451    │                    ~452    │453    └─ lib/phoenix/code_reloader/server.ex:39:20: Phoenix.CodeReloader.Server.handle_call/3454455    warning: unused require Logger456    │457 20 │   require Logger458    │   ~459    │460    └─ lib/phoenix/endpoint/handler.ex:20:3461462    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead463    │464 39 │       Logger.warn """465    │              ~466    │467    └─ lib/phoenix/endpoint/supervisor.ex:39:14: Phoenix.Endpoint.Supervisor.init/1468469    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 operator470    │471 46 │       <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix472    │                             ~473    │474    └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/2475476     warning: using single-quoted strings to represent charlists is deprecated.477     Use ~c"" if you indeed want a charlist or use "" instead.478     You may run "mix format --migrate" to change all single-quoted479     strings to use the ~c sigil and fix this warning.480     │481 315 │   @anno (if :erlang.system_info(:otp_release) >= '19' do482     │                                                  ~483     │484     └─ lib/phoenix/router.ex:315:50485486     warning: using single-quoted strings to represent charlists is deprecated.487     Use ~c"" if you indeed want a charlist or use "" instead.488     You may run "mix format --migrate" to change all single-quoted489     strings to use the ~c sigil and fix this warning.490     │491 195 │   @anno (if :erlang.system_info(:otp_release) >= '19' do492     │                                                  ~493     │494     └─ lib/phoenix/router/helpers.ex:195:50495496    warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.497498    This error happens when you have function calls without parentheses inside keywords. For example:499500        function(arg, one: nested_call a, b, c)501        function(arg, one: if expr, do: :this, else: :that)502503    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:504505        function(arg, one: if(expr, do: :this, else: :that))506        function(arg, one: nested_call(a, b, c))507508    Ambiguity found at:509    │510 71 │     unless actions -- supported_actions == [], do: raise ArgumentError, """511    │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~512    │513    └─ lib/phoenix/router/resource.ex:71514515    warning: duplicate key :route found in struct516    │517 24 │   defstruct [:path, :actions, :param, :route, :controller, :route, :member, :collection, :singleton]518    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~519    │520    └─ lib/phoenix/router/resource.ex:24: Phoenix.Router.Resource (module)521522     warning: invalid type annotation. The left side of :: must be a variable, got: {:ok, pid()} | {:error, reason :: term()}. Note "left | right :: ann" is the same as "(left | right) :: ann". To solve this, use parentheses around the union operands: "left | (right :: ann)"523     │524 110 │   @callback start_link(Keyword.t) :: {:ok, pid()} | {:error, reason :: term()} :: :ignore525     │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~526     │527     └─ lib/phoenix/presence.ex:110: Phoenix.Presence (module)528529     warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead530     │531 885 │       Logger.warn "send_download/3 has been invoked during an AJAX request. " <>532     │              ~533     │534     └─ lib/phoenix/controller.ex:885:14: Phoenix.Controller.warn_if_ajax/1535536     warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead537     │538 304 │     Logger.warn fn -> "Ignoring unmatched topic \"#{msg.topic}\" in #{inspect(socket.handler)}" end539     │            ~540     │541     └─ lib/phoenix/socket/transport.ex:304:12: Phoenix.Socket.Transport.reply_ignore/2542543     warning: using single-quoted strings to represent charlists is deprecated.544     Use ~c"" if you indeed want a charlist or use "" instead.545     You may run "mix format --migrate" to change all single-quoted546     strings to use the ~c sigil and fix this warning.547     │548 174 │   @anno (if :erlang.system_info(:otp_release) >= '19' do549     │                                                  ~550     │551     └─ lib/phoenix/template.ex:174:50552553     warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead554     │555 227 │     Logger.warn ":max_age was not set on Phoenix.Token.verify/4. " <>556     │            ~557     │558     └─ lib/phoenix/token.ex:227:12: Phoenix.Token.expired?/2559560    warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead561    │562 12 │       worker(Phoenix.Transports.LongPoll.Server, [], restart: :temporary)563    │       ~564    │565    └─ lib/phoenix/transports/long_poll_server.ex:12:7: Phoenix.Transports.LongPoll.Supervisor.init/1566567    warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead568    │569 14 │     supervise(children, strategy: :simple_one_for_one)570    │     ~571    │572    └─ lib/phoenix/transports/long_poll_server.ex:14:5: Phoenix.Transports.LongPoll.Supervisor.init/1573574     warning: expected a module (an atom) when invoking config/1 in expression:575576         endpoint.config(:endpoint_id)577578     where "endpoint" was given the type:579580         # type: dynamic(%{..., __pubsub_server__: atom()})581         # from: lib/phoenix/transports/long_poll.ex:199:10582         verify_token(endpoint, token, opts)583584     type warning found at:585     │586 201 │         server_ref = server_ref(endpoint.config(:endpoint_id), id, pid, priv_topic)587     │                                          ~588     │589     └─ lib/phoenix/transports/long_poll.ex:201:42: Phoenix.Transports.LongPoll.resume_session/3590591     warning: unknown key .__pubsub_server__ in expression:592593         endpoint.__pubsub_server__594595     the given type does not have the given key:596597         dynamic(598           %Phoenix.Socket{599             id: term(),600             assigns: term(),601             channel: term(),602             channel_pid: term(),603             endpoint: atom(),604             handler: term(),605             joined: term(),606             pubsub_server: term(),607             ref: term(),608             join_ref: term(),609             topic: term(),610             transport: term(),611             transport_pid: term(),612             transport_name: term(),613             serializer: term(),614             private: term(),615             vsn: term()616           } or617             %Plug.Conn{618               adapter: term(),619               assigns: term(),620               before_send: term(),621               body_params: term(),622               cookies: term(),623               halted: term(),624               host: term(),625               method: term(),626               owner: term(),627               params: term(),628               path_params: term(),629               path_info: term(),630               port: term(),631               private: term(),632               query_params: term(),633               query_string: term(),634               peer: term(),635               remote_ip: term(),636               req_cookies: term(),637               req_headers: term(),638               request_path: term(),639               resp_body: term(),640               resp_cookies: term(),641               resp_headers: term(),642               scheme: term(),643               script_name: term(),644               secret_key_base: term(),645               state: term(),646               status: term()647             } or atom() or binary()648         )649650     where "endpoint" was given the type:651652         # type: dynamic(%Phoenix.Socket{endpoint: atom()} or %Plug.Conn{} or atom() or binary())653         # from: lib/phoenix/transports/long_poll.ex:254:19654         Phoenix.Token.sign(endpoint, Atom.to_string(endpoint.__pubsub_server__), data, opts[:crypto])655656     type warning found at:657     │658 254 │     Phoenix.Token.sign(endpoint, Atom.to_string(endpoint.__pubsub_server__), data, opts[:crypto])659     │                                                          ~~~~~~~~~~~~~~~~~660     │661     └─ lib/phoenix/transports/long_poll.ex:254:58: Phoenix.Transports.LongPoll.sign_token/3662663     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead664     │665 647 │       exception -> {:error, {exception, System.stacktrace()}}666     │                                                ~667     │668     └─ lib/phoenix/test/conn_test.ex:647:48: Phoenix.ConnTest.wrap_request/1669670     warning: a struct for Phoenix.Socket is expected on struct update:671672         %Phoenix.Socket{socket | id: id}673674     but got type:675676         dynamic()677678     where "socket" was given the type:679680         # type: dynamic()681         # from: lib/phoenix/socket/transport.ex682         {:ok, socket}683684     when defining the variable "socket", you must also pattern match on "%Phoenix.Socket{}"685686     type warning found at:687     │688 195 │           id when is_binary(id) -> {:ok, %Socket{socket | id: id}}689     │                                          ~690     │691     └─ lib/phoenix/socket/transport.ex:195:42: Phoenix.Socket.Transport.do_connect/7692693    warning: a struct for Plug.Conn is expected on struct update:694695        %Plug.Conn{conn | state: :sent}696697    but got type:698699        dynamic()700701    where "conn" was given the type:702703        # type: dynamic()704        # from: lib/phoenix/endpoint/render_errors.ex:79:21705        conn706707    when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"708709    type warning found at:710    │711 83 │         %Plug.Conn{conn | state: :sent}712    │         ~713    │714    └─ lib/phoenix/endpoint/render_errors.ex:83:9: Phoenix.Endpoint.RenderErrors.maybe_render/5715716     warning: a struct for Plug.Conn is expected on struct update:717718         %Plug.Conn{conn | params: params}719720     but got type:721722         dynamic(%{..., params: map()})723724     where "conn" was given the type:725726         # type: dynamic(%{..., params: map()})727         # from: lib/phoenix/controller.ex:912:17728         Map.get(conn.params, required_key)729730     when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"731732     type warning found at:733     │734 919 │     %Plug.Conn{conn | params: params}735     │     ~736     │737     └─ lib/phoenix/controller.ex:919:5: Phoenix.Controller.scrub_params/2738739    warning: a struct for Plug.Conn is expected on struct update:740741        %Plug.Conn{conn | query_params: %{}, params: %{}}742743    but got type:744745        dynamic(%{..., params: %Plug.Conn.Unfetched{}})746747    where "conn" was given the types:748749        # type: dynamic(%{..., params: term()})750        # from: lib/phoenix/endpoint/render_errors.ex:94:17751        conn.params752753        # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})754        # from: lib/phoenix/endpoint/render_errors.ex:94:17755        conn.params756757    when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"758759    type warning found at:760    │761 95 │         %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}762    │                                   ~763    │764    └─ lib/phoenix/endpoint/render_errors.ex:95:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/1765766    warning: a struct for Plug.Conn is expected on struct update:767768        %Plug.Conn{conn | query_params: %{}, params: params}769770    but got type:771772        dynamic(%{..., params: not %Plug.Conn.Unfetched{}})773774    where "conn" was given the types:775776        # type: dynamic(%{..., params: term()})777        # from: lib/phoenix/endpoint/render_errors.ex:94:17778        conn.params779780        # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})781        # from: lib/phoenix/endpoint/render_errors.ex:94:17782        conn.params783784    when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"785786    type warning found at:787    │788 96 │         params -> %Plug.Conn{conn | query_params: %{}, params: params}789    │                   ~790    │791    └─ lib/phoenix/endpoint/render_errors.ex:96:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/1792793     warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead794     │795 198 │       supervisor(Task.Supervisor, [[name: task_supervisor]]),796     │       ~797     │798     └─ lib/phoenix/presence.ex:198:7: Phoenix.Presence.start_link/4799800    warning: expected a map or struct when accessing .url in expression:801802        endpoint.url803804    where "endpoint" was given the types:805806        # type: dynamic(atom())807        # from: lib/phoenix/router/helpers.ex:24:20808        endpoint809810        # type: atom()811        # from: lib/phoenix/router/helpers.ex:24:35812        is_atom(endpoint)813814    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()815816    type warning found at:817    │818 25 │     endpoint.url819    │              ~820    │821    └─ lib/phoenix/router/helpers.ex:25:14: Phoenix.Router.Helpers.url/2822823     warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead824     │825 199 │       worker(Phoenix.Tracker, [module, opts, opts])826     │       ~827     │828     └─ lib/phoenix/presence.ex:199:7: Phoenix.Presence.start_link/4829830     warning: a struct for Plug.Conn is expected on struct update:831832         %Plug.Conn{conn | path_info: path, script_name: script}833834     but got type:835836         dynamic()837838     where "conn" was given the type:839840         # type: dynamic()841         # from: lib/phoenix/router/route.ex:147:10842         conn = target.call(%Plug.Conn{...}, opts)843844     when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"845846     type warning found at:847     │848 148 │     %Plug.Conn{conn | path_info: path, script_name: script}849     │     ~850     │851     └─ lib/phoenix/router/route.ex:148:5: Phoenix.Router.Route.forward/4852853    warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead854    │855 71 │     supervise(children, strategy: :one_for_one)856    │     ~857    │858    └─ lib/phoenix/endpoint/supervisor.ex:71:5: Phoenix.Endpoint.Supervisor.init/1859860    warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead861    │862 76 │     [worker(Phoenix.Config, args)]863    │      ~864    │865    └─ lib/phoenix/endpoint/supervisor.ex:76:6: Phoenix.Endpoint.Supervisor.config_children/3866867    warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead868    │869 84 │       [supervisor(adapter, [mod.__pubsub_server__(), pub_conf])]870    │        ~871    │872    └─ lib/phoenix/endpoint/supervisor.ex:84:8: Phoenix.Endpoint.Supervisor.pubsub_children/2873    └─ lib/phoenix/endpoint/supervisor.ex:96:8: Phoenix.Endpoint.Supervisor.server_children/3874    └─ lib/phoenix/endpoint/supervisor.ex:97:8: Phoenix.Endpoint.Supervisor.server_children/3875876     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead877     │878 284 │             Phoenix.PlugError.reraise(piped_conn, :error, reason, System.stacktrace())879     │                                                                          ~880     │881     └─ lib/phoenix/router.ex:284:74: Phoenix.Router.__call__/1882883     warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead884     │885 106 │         worker(Phoenix.Endpoint.Watcher, watcher_args(cmd, args),886     │         ~887     │888     └─ lib/phoenix/endpoint/supervisor.ex:106:9: Phoenix.Endpoint.Supervisor.watcher_children/3889890     warning: expected a module (an atom) when invoking path/1 in expression:891892         endpoint.path("/")893894     where "endpoint" was given the type:895896         # type: dynamic(%{..., host: term()})897         # from: lib/phoenix/endpoint/supervisor.ex:312:14898         endpoint.host899900     type warning found at:901     │902 313 │     endpoint.path("/")903     │              ~904     │905     └─ lib/phoenix/endpoint/supervisor.ex:313:14: Phoenix.Endpoint.Supervisor.warmup/1906907    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead908    │909 23 │         {:upgrade, :protocol, __MODULE__, req, {:error, mfa, kind, reason, System.stacktrace}}910    │                                                                                   ~911    │912    └─ lib/phoenix/endpoint/cowboy_websocket.ex:23:83: Phoenix.Endpoint.CowboyWebSocket.init/3913914    warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead915    │916 35 │     supervise(children, strategy: :one_for_one)917    │     ~918    │919    └─ lib/phoenix/endpoint/handler.ex:35:5: Phoenix.Endpoint.Handler.init/1920921    warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead922    │923 39 │     {config_keywords, config_other} = Enum.partition(config, &keyword_item?/1)924    │                                            ~925    │926    └─ lib/phoenix/endpoint/handler.ex:39:44: Phoenix.Endpoint.Handler.default/3927928    warning: incompatible types given to Plug.Adapters.Cowboy.child_spec/4:929930        Plug.Adapters.Cowboy.child_spec(scheme, endpoint, [], config)931932    given types:933934        (935          dynamic(:http or :https),936          -dynamic(%{..., __sockets__: term()})-,937          empty_list(),938          dynamic(empty_list() or non_empty_list(term(), term()))939        )940941    but expected one of:942943        :http or :https, atom() or binary(), term(), term()944945    where "config" was given the type:946947        # type: dynamic(empty_list() or non_empty_list(term(), term()))948        # from: lib/phoenix/endpoint/cowboy_handler.ex:78:12949        config = Keyword.put_new(config, :dispatch, _: dispatches)950951    where "endpoint" was given the type:952953        # type: dynamic(%{..., __sockets__: term()})954        # from: lib/phoenix/endpoint/cowboy_handler.ex:66:26955        {path, socket} <- endpoint.__sockets__956957    where "scheme" was given the types:958959        # type: dynamic()960        # from: lib/phoenix/endpoint/cowboy_handler.ex:60:18961        scheme962963        # type: dynamic(:http or :https)964        # from: lib/phoenix/endpoint/cowboy_handler.ex:81:28965        Plug.Adapters.Cowboy.child_spec(scheme, endpoint, [], config)966967    type warning found at:968    │969 81 │       Plug.Adapters.Cowboy.child_spec(scheme, endpoint, [], config)970    │                            ~971    │972    └─ lib/phoenix/endpoint/cowboy_handler.ex:81:28: Phoenix.Endpoint.CowboyHandler.child_spec/3973974     warning: comparison between distinct types found:975976         !Path.extname(file_path) == ".gz"977978     given types:979980         dynamic(boolean()) == binary()981982     where "file_path" was given the type:983984         # type: dynamic(binary() or empty_list() or non_empty_list(term(), term()))985         # from: lib/phoenix/digester.ex:147:45986         Path.basename(file_path)987988     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 148 │       !Path.extname(file_path) == ".gz"993     │                                ~994     │995     └─ lib/phoenix/digester.ex:148:32: Phoenix.Digester.uncompressed_digested_file?/1996997    warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead998    │999 51 │       worker(Phoenix.CodeReloader.Server, [])1000    │       ~1001    │1002    └─ lib/phoenix.ex:51:7: Phoenix.start/210031004    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1005    │1006 61 │             IO.puts Exception.format(kind, reason, System.stacktrace)1007    │                                                           ~1008    │1009    └─ lib/phoenix/code_reloader/server.ex:61:59: Phoenix.CodeReloader.Server.handle_call/310101011     warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead1012     │1013 155 │     Enum.partition attrs, fn1014     │          ~1015     │1016     └─ lib/mix/tasks/phoenix.gen.model.ex:155:10: Mix.Tasks.Phoenix.Gen.Model.partition_attrs_and_assocs/110171018    warning: expected a map or struct when accessing .__phoenix_recompile__? in expression:10191020        mod.__phoenix_recompile__?10211022    where "mod" was given the type:10231024        # type: dynamic(atom())1025        # from: lib/mix/tasks/compile.phoenix.ex:34:121026        Code.ensure_loaded?(mod)10271028    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()10291030    type warning found at:1031    │1032 36 │         mod.__phoenix_recompile__?1033    │             ~1034    │1035    └─ lib/mix/tasks/compile.phoenix.ex:36:13: Mix.Tasks.Compile.Phoenix.modules_for_recompilation/110361037     warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead1038     │1039 234 │       Enum.partition(attrs, fn1040     │            ~1041     │1042     └─ lib/mix/phoenix/schema.ex:234:12: Mix.Phoenix.Schema.partition_attrs_and_assocs/210431044Generated phoenix app1045==> phoenix_html1046Compiling 8 files (.ex)1047    warning: using single-quoted strings to represent charlists is deprecated.1048    Use ~c"" if you indeed want a charlist or use "" instead.1049    You may run "mix format --migrate" to change all single-quoted1050    strings to use the ~c sigil and fix this warning.1051    │1052  7 │   @anno (if :erlang.system_info(:otp_release) >= '19' do1053    │                                                  ~1054    │1055    └─ lib/phoenix_html/engine.ex:7:5010561057    warning: use EEx.Engine is deprecated. Use explicit delegation to EEx.Engine instead1058    │1059 13 │   use EEx.Engine1060    │   ~~~~~~~~~~~~~~1061    │1062    └─ lib/phoenix_html/engine.ex:13: Phoenix.HTML.Engine (module)10631064    warning: this clause for handle_text/2 cannot match because a previous clause at line 13 always matches1065    │1066 28 │   def handle_text("", text) do # Required for Elixir < v1.5.11067    │       ~1068    │1069    └─ lib/phoenix_html/engine.ex:28:710701071    warning: this clause for handle_text/2 cannot match because a previous clause at line 13 always matches1072    │1073 32 │   def handle_text({:safe, buffer}, text) do1074    │       ~1075    │1076    └─ lib/phoenix_html/engine.ex:32:710771078     warning: single quotes around keywords are deprecated. Use double quotes instead1079     │1080 264 │                'csrf-param': @csrf_param, 'method-param': @method_param1081     │                ~1082     │1083     └─ lib/phoenix_html/tag.ex:264:1610841085     warning: single quotes around keywords are deprecated. Use double quotes instead1086     │1087 264 │                'csrf-param': @csrf_param, 'method-param': @method_param1088     │                                           ~1089     │1090     └─ lib/phoenix_html/tag.ex:264:4310911092    warning: the 1st pattern in clause will never match:10931094        6010951096    because it is expected to receive type:10971098        dynamic(empty_list() or non_empty_list(term(), term()))10991100    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())11011102    type warning found at:1103    │1104 56 │   def to_iodata(?<), do: "&lt;"1105    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1106    │1107    └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/111081109    warning: the 1st pattern in clause will never match:11101111        6211121113    because it is expected to receive type:11141115        dynamic(empty_list() or non_empty_list(term(), term()))11161117    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())11181119    type warning found at:1120    │1121 57 │   def to_iodata(?>), do: "&gt;"1122    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1123    │1124    └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/111251126    warning: the 1st pattern in clause will never match:11271128        3811291130    because it is expected to receive type:11311132        dynamic(empty_list() or non_empty_list(term(), term()))11331134    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())11351136    type warning found at:1137    │1138 58 │   def to_iodata(?&), do: "&amp;"1139    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1140    │1141    └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/111421143    warning: the 1st pattern in clause will never match:11441145        3411461147    because it is expected to receive type:11481149        dynamic(empty_list() or non_empty_list(term(), term()))11501151    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())11521153    type warning found at:1154    │1155 59 │   def to_iodata(?"), do: "&quot;"1156    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1157    │1158    └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/111591160    warning: the 1st pattern in clause will never match:11611162        3911631164    because it is expected to receive type:11651166        dynamic(empty_list() or non_empty_list(term(), term()))11671168    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())11691170    type warning found at:1171    │1172 60 │   def to_iodata(?'), do: "&#39;"1173    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1174    │1175    └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/111761177    warning: the 1st pattern in clause will never match:11781179        {:safe, data}11801181    because it is expected to receive type:11821183        dynamic(empty_list() or non_empty_list(term(), term()))11841185    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())11861187    type warning found at:1188    │1189 75 │   def to_iodata({:safe, data}) do1190    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1191    │1192    └─ lib/phoenix_html/safe.ex:75: Phoenix.HTML.Safe.List.to_iodata/111931194     warning: the right-hand side of || will never be executed:11951196         selected(form, field, opts) || ...11971198     because the left-hand side always evaluates to:11991200         dynamic({term(), term()})12011202     where "field" was given the type:12031204         # type: dynamic()1205         # from: lib/phoenix_html/form.ex:830:201206         field12071208     where "form" was given the type:12091210         # type: dynamic()1211         # from: lib/phoenix_html/form.ex:830:141212         form12131214     where "opts" was given the types:12151216         # type: dynamic()1217         # from: lib/phoenix_html/form.ex:830:361218         opts12191220         # type: dynamic(empty_list() or non_empty_list(term(), term()))1221         # from: lib/phoenix_html/form.ex:831:241222         selected(form, field, opts)12231224     type warning found at:1225     │1226 831 │     {selected, opts} = selected(form, field, opts) || []1227     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1228     │1229     └─ lib/phoenix_html/form.ex:831: Phoenix.HTML.Form.select/412301231    warning: the following clause is redundant:12321233        def to_iodata(other)12341235    it has type:12361237        dynamic(empty_list() or non_empty_list(term(), term()))12381239    previous clauses have already matched on the following types:12401241        non_empty_list(term(), term())1242        empty_list()12431244    │1245 79 │   def to_iodata(other) do1246    │       ~1247    │1248    └─ lib/phoenix_html/safe.ex:79:7: Phoenix.HTML.Safe.List.to_iodata/112491250    warning: the 1st pattern in clause will never match:12511252        h12531254    because it is expected to receive type:12551256        dynamic(empty_list() or non_empty_list(term(), term()))12571258    where "h" was given the type:12591260        # type: integer()1261        # from: lib/phoenix_html/safe.ex:62:251262        is_integer(h)12631264    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())12651266    type warning found at:1267    │1268 62 │   def to_iodata(h) when is_integer(h) and h <= 255 do1269    │                 ~1270    │1271    └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/112721273    warning: function handle_text/3 required by behaviour EEx.Engine is not implemented (in module Phoenix.HTML.Engine)1274    │1275  1 │ defmodule Phoenix.HTML.Engine do1276    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1277    │1278    └─ lib/phoenix_html/engine.ex:1: Phoenix.HTML.Engine (module)12791280    warning: the following clause is redundant:12811282        def handle_text("", text)12831284    it has type:12851286        binary(), dynamic()12871288    previous clauses have already matched on the following types:12891290        term(), term()12911292    │1293 28 │   def handle_text("", text) do # Required for Elixir < v1.5.11294    │       ~1295    │1296    └─ lib/phoenix_html/engine.ex:28:7: Phoenix.HTML.Engine.handle_text/212971298    warning: the following clause is redundant:12991300        def handle_text({:safe, buffer}, text)13011302    it has type:13031304        dynamic({:safe, term()}), dynamic()13051306    previous clauses have already matched on the following types:13071308        term(), term()13091310    │1311 32 │   def handle_text({:safe, buffer}, text) do1312    │       ~1313    │1314    └─ lib/phoenix_html/engine.ex:32:7: Phoenix.HTML.Engine.handle_text/213151316    warning: the 1st pattern in clause will never match:13171318        h13191320    because it is expected to receive type:13211322        dynamic(empty_list() or non_empty_list(term(), term()))13231324    where "h" was given the type:13251326        # type: integer()1327        # from: lib/phoenix_html/safe.ex:65:251328        is_integer(h)13291330    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())13311332    type warning found at:1333    │1334 65 │   def to_iodata(h) when is_integer(h) do1335    │                 ~1336    │1337    └─ lib/phoenix_html/safe.ex:65:17: Phoenix.HTML.Safe.List.to_iodata/113381339    warning: the 1st pattern in clause will never match:13401341        h13421343    because it is expected to receive type:13441345        dynamic(empty_list() or non_empty_list(term(), term()))13461347    where "h" was given the type:13481349        # type: binary()1350        # from: lib/phoenix_html/safe.ex:71:251351        is_binary(h)13521353    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())13541355    type warning found at:1356    │1357 71 │   def to_iodata(h) when is_binary(h) do1358    │                 ~1359    │1360    └─ lib/phoenix_html/safe.ex:71:17: Phoenix.HTML.Safe.List.to_iodata/113611362Generated phoenix_html app1363==> tracy1364Compiling 8 files (.ex)1365    warning: invalid type annotation. The left side of :: must be a variable, got: fun()1366    │1367 23 │   @spec check_start_trace(definition_id:: binary(), session_id :: binary() | nil, metadata :: fun() :: map() | nil) :: :started | :not_started | {:error, term()}1368    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1369    │1370    └─ lib/tracy.ex:23: Tracy (module)13711372    warning: invalid type annotation. Type annotations cannot be nested: metadata :: fun() :: map() | nil1373    │1374 23 │   @spec check_start_trace(definition_id:: binary(), session_id :: binary() | nil, metadata :: fun() :: map() | nil) :: :started | :not_started | {:error, term()}1375    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1376    │1377    └─ lib/tracy.ex:23: Tracy (module)13781379    warning: invalid type annotation. The left side of :: must be a variable, got: fun()1380    │1381 23 │   @spec check_start_trace(definition_id:: binary(), session_id :: binary() | nil, metadata :: fun() :: map() | nil) :: :started | :not_started | {:error, term()}1382    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1383    │1384    └─ lib/tracy.ex:23: Tracy (module)13851386    warning: unused require Logger1387    │1388  3 │   require Logger1389    │   ~1390    │1391    └─ lib/tracy/plug.ex:3:313921393    warning: unused require Logger1394    │1395  3 │   require Logger1396    │   ~1397    │1398    └─ lib/tracy/util.ex:3:313991400    warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead1401    │1402 10 │       worker(Tracy.Tracer, [], restart: :transient)1403    │       ~1404    │1405    └─ lib/tracy/trace_supervisor.ex:10:7: Tracy.TraceSupervisor.init/114061407    warning: a struct for Tracy.Tracer.State is expected on struct update:14081409        %Tracy.Tracer.State{state | count: state.count + 1}14101411    but got type:14121413        dynamic(%{..., pid: term()})14141415    where "state" was given the type:14161417        # type: dynamic(%{..., pid: term()})1418        # from: lib/tracy/tracer.ex:47:551419        state = %{pid: pid}14201421    when defining the variable "state", you must also pattern match on "%Tracy.Tracer.State{}"14221423    type warning found at:1424    │1425 48 │     state = %State{state | count: state.count + 1}1426    │             ~1427    │1428    └─ lib/tracy/tracer.ex:48:13: Tracy.Tracer.handle_info/214291430    warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1431    │1432 12 │     supervise(children, strategy: :simple_one_for_one)1433    │     ~1434    │1435    └─ lib/tracy/trace_supervisor.ex:12:5: Tracy.TraceSupervisor.init/114361437    warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1438    │1439  8 │       supervisor(Tracy.TraceSupervisor, [])1440    │       ~1441    │1442    └─ lib/tracy/application.ex:8:7: Tracy.Application.start/214431444    warning: the following clause will never match:14451446        nil ->14471448    because it attempts to match on the result of:14491450        Plug.Conn.get_req_header(conn, "x-tracy-definition")14511452    which has type:14531454        dynamic(list(term()))14551456    type warning found at:1457    │1458 13 │       nil ->1459    │       ~~~~~~1460    │1461    └─ lib/tracy/plug.ex:13: Tracy.Plug.call/214621463Generated tracy app1464warning: the :gettext compiler is no longer required in your mix.exs.14651466Please find the following line in your mix.exs and remove the :gettext entry:14671468    compilers: [..., :gettext, ...] ++ Mix.compilers(),14691470  (gettext 0.26.2) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/11471  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51472  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21473  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41474  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/21475  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/514761477==> tracy_web1478Compiling 23 files (.ex)1479    warning: unused require Logger1480    │1481  3 │   require Logger1482    │   ~1483    │1484    └─ lib/tracy_web/upstream.ex:3:314851486warning: defining a Gettext backend by calling14871488    use Gettext, otp_app: ...14891490is deprecated. To define a backend, call:14911492    use Gettext.Backend, otp_app: :my_app14931494Then, instead of importing your backend, call this in your module:14951496    use Gettext, backend: MyApp.Gettext14971498  lib/tracy_web/web/gettext.ex:23: TracyWeb.Web.Gettext (module)14991500warning: no configuration found for otp_app :tracy_web and module TracyWeb.Web.Endpoint1501warning: Phoenix.HTML.Engine.handle_text/2 is deprecated, implement handle_text/3 instead1502  (eex 1.20.3) lib/eex/compiler.ex:315: EEx.Compiler.compile/31503  (phoenix 1.3.5) lib/phoenix/template.ex:378: Phoenix.Template.compile/21504  (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/21505  (phoenix 1.3.5) lib/phoenix/template.ex:185: Phoenix.Template."MACRO-__before_compile__"/21506  (elixir 1.20.3) src/elixir_dispatch.erl:263: :elixir_dispatch.expand_macro_fun/71507  (elixir 1.20.3) src/elixir_dispatch.erl:155: :elixir_dispatch.dispatch_require/7150815091510== Compilation error in file lib/tracy_web/web/views/layout_view.ex ==1511** (RuntimeError) unexpected EEx.Engine state: {:safe, ""}. This typically means a bug or an outdated EEx.Engine or tool1512    (eex 1.20.3) lib/eex/engine.ex:226: EEx.Engine.check_state!/11513    (eex 1.20.3) lib/eex/engine.ex:189: EEx.Engine.handle_text/31514    (eex 1.20.3) lib/eex/compiler.ex:338: EEx.Compiler.generate_buffer/41515    (phoenix 1.3.5) lib/phoenix/template.ex:378: Phoenix.Template.compile/21516    (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/21517    (phoenix 1.3.5) expanding macro: Phoenix.Template.__before_compile__/11518    lib/tracy_web/web/views/layout_view.ex:1: TracyWeb.Web.LayoutView (module)1519could not compile dependency :tracy_web, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile tracy_web --force", update it with "mix deps.update tracy_web" or clean it with "mix deps.clean tracy_web"