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: "<"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: ">"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: "&"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: """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: "'"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"