I am unable to understand the error thrown by dialyzer, I am sending a csv file for download to user on click
error by dialyzer
The type specification has too many types for the function.
Function:
ServiceProvider.Controllers.ReportsController.csv_data/2
Extra type:
binary()
Success typing:
[any()] | %Stream{:done => nil, :funs => nonempty_maybe_improper_list(), _ => _}
________________________________________________________________________________
done (warnings were emitted)
Halting VM with exit status 2
@spec csv_data(past_days :: non_neg_integer(), team_id :: String.t()) :: iodata()
def csv_data(past_days, team_id) when past_days > 0 and past_days <= 1000 do
alias NimbleCSV.RFC4180, as: CSV
Team
|> Repo.get(team_id)
|> TeamContext.list_accounts_for_export(past_days)
|> Enum.map(
&[
name(&1),
date_added(&1),
ref(&1),
account_ref(&1),
date_of_enroll(&1),
account_status_and_class(TeamContext.get_status(&1)).status,
follow_up(&1),
assigned_to(&1.team_user)
]
)
|> List.insert_at(0, @csv_file_headers)
|> CSV.dump_to_iodata()
end