Function which calculates time from now to end date - strange warning from VSCode

I haven’t seen this type of Dialyzer warning on a guard call before; but I have seen similar warnings for function parameters when Dialyzer thinks there’s no way for a given pattern match to possibly match a condition… which I sometimes do for a catch all function.

For example if I write something like the below, with no other calls to func_a/1:

def entry_func() do
  %{test: "Hi!"}
  |> func_a()
end

def func_a(%{} = param) do
  # do something
end

def func_a(_) do
  raise "Bad Param"
end

I will, with some regularity, see the ElixirLS Dialyzer warning that the second function head for func_a will never run… which looks like it could be similar to what you’re seeing. In this case Dialyzer isn’t exactly wrong… there’s no way for the second func_a/1 function head to match. But it’s not exactly helpful either because I may know now that in the future I might call it from somewhere else where the second function head is helpful.

Anyway, I can’t say for sure this is what you’re seeing, but it looks similar.