Test warnings on new 1.17.21 project

On a brand new scaffolded project, I got a test failure (which I could fix - checking for particular HTML title text), and these warnings. Does anyone have fixed up components code with these issues fixed?

I don’t see the problem in many: they say e.g., “col” is unused, but it looks used to me.

elixir 1.18.4-otp-28
erlang 28.0.1
     warning: variable "msg" is unused (if the variable is not meant to be used, prefix it with an underscore)
     │
 113 │       :if={msg = render_slot(@inner_block) || Phoenix.Flash.get(@flash, @kind)}
     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     │
     └─ lib/index_flow_web/components/core_components.ex:113: IndexFlowWeb.CoreComponents.flash/1

     warning: variable "action" is unused (if the variable is not meant to be used, prefix it with an underscore)
     │
 207 │         <div :for={action <- @actions} class="mt-2 flex items-center justify-between gap-6">
     │         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     │
     └─ lib/index_flow_web/components/core_components.ex:207: IndexFlowWeb.CoreComponents.simple_form/1

     warning: variable "f" is unused (if the variable is not meant to be used, prefix it with an underscore)
     │
 204 │     <.form :let={f} for={@for} as={@as} {@rest}>
     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     │
     └─ lib/index_flow_web/components/core_components.ex:204: IndexFlowWeb.CoreComponents.simple_form/1

     warning: variable "msg" is unused (if the variable is not meant to be used, prefix it with an underscore)
     │
 326 │       <.error :for={msg <- @errors}>{msg}</.error>
     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     │
     └─ lib/index_flow_web/components/core_components.ex:326: IndexFlowWeb.CoreComponents.input/1

     warning: variable "msg" is unused (if the variable is not meant to be used, prefix it with an underscore)
     │
 345 │       <.error :for={msg <- @errors}>{msg}</.error>
     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     │
     └─ lib/index_flow_web/components/core_components.ex:345: IndexFlowWeb.CoreComponents.input/1

     warning: variable "msg" is unused (if the variable is not meant to be used, prefix it with an underscore)
     │
 364 │       <.error :for={msg <- @errors}>{msg}</.error>
     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     │
     └─ lib/index_flow_web/components/core_components.ex:364: IndexFlowWeb.CoreComponents.input/1

     warning: variable "msg" is unused (if the variable is not meant to be used, prefix it with an underscore)
     │
 386 │       <.error :for={msg <- @errors}>{msg}</.error>
     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     │
     └─ lib/index_flow_web/components/core_components.ex:386: IndexFlowWeb.CoreComponents.input/1

     warning: variable "col" is unused (if the variable is not meant to be used, prefix it with an underscore)
     │
 480 │             <th :for={col <- @col} class="p-0 pb-4 pr-6 font-normal">{col[:label]}</th>
     │             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     │
     └─ lib/index_flow_web/components/core_components.ex:480: IndexFlowWeb.CoreComponents.table/1

     warning: variable "col" is unused (if the variable is not meant to be used, prefix it with an underscore)
     │
 493 │               :for={{col, i} <- Enum.with_index(@col)}
     │               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     │
     └─ lib/index_flow_web/components/core_components.ex:493: IndexFlowWeb.CoreComponents.table/1

     warning: variable "action" is unused (if the variable is not meant to be used, prefix it with an underscore)
     │
 508 │                   :for={action <- @action}
     │                   ~~~~~~~~~~~~~~~~~~~~~~~~
     │
     └─ lib/index_flow_web/components/core_components.ex:508: IndexFlowWeb.CoreComponents.table/1

     warning: variable "item" is unused (if the variable is not meant to be used, prefix it with an underscore)
     │
 540 │         <div :for={item <- @item} class="flex gap-4 py-4 text-sm leading-6 sm:gap-8">
     │         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     │
     └─ lib/index_flow_web/components/core_components.ex:540: IndexFlowWeb.CoreComponents.list/1

     warning: Phoenix.Component.used_input?/1 is undefined or private
     │
 295 │     errors = if Phoenix.Component.used_input?(field), do: field.errors, else: []
     │                                   ~
     │
     └─ lib/index_flow_web/components/core_components.ex:295:35: IndexFlowWeb.CoreComponents."input (overridable 1)"/1

    warning: undefined attribute "default" for component Phoenix.Component.live_title/1
    │
  7 │     <.live_title default="IndexFlow" suffix=" · Phoenix Framework">
    │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    │
    └─ lib/index_flow_web/components/layouts/root.html.heex:7: (file)

Running ExUnit with seed: 805886, max_cases: 20

.....
Finished in 0.08 seconds (0.05s async, 0.03s sync)
5 tests, 0 failures

So I was oddly thinking “what happened to that dogweather dude?” as I was scrolling the forum today and… here you are. Weeeeeeeeeeird.

Sorry I don’t have an answer to your question.

:waving_hand: Hey!

2 Likes

Hey, good to see you!

2 Likes

FYI, Claude 4 found the error - an incompatibility in LiveView. This resolved the issue:

-      {:phoenix_live_view, "~> 0.20"},
+      {:phoenix_live_view, "~> 1.0"},
2 Likes