zf

zenflows testing
git clone https://s.sonu.ch/~srfsh/zf.git
Log | Files | Refs | Submodules | README | LICENSE

unused_operation.ex (1349B)


      1 defmodule Credo.Check.Warning.UnusedOperation do
      2   # The result of a call to the provided module's functions has to be used.
      3 
      4   alias Credo.Check.Warning.UnusedFunctionReturnHelper
      5   alias Credo.IssueMeta
      6 
      7   @doc false
      8   def run(source_file, params \\ [], checked_module, funs_with_return_value, format_issue_fun) do
      9     issue_meta = IssueMeta.for(source_file, params)
     10 
     11     relevant_funs =
     12       if params[:ignore] do
     13         ignored_funs = List.wrap(params[:ignore])
     14 
     15         funs_with_return_value -- ignored_funs
     16       else
     17         funs_with_return_value
     18       end
     19 
     20     all_unused_calls =
     21       UnusedFunctionReturnHelper.find_unused_calls(
     22         source_file,
     23         params,
     24         [checked_module],
     25         relevant_funs
     26       )
     27 
     28     Enum.reduce(all_unused_calls, [], fn invalid_call, issues ->
     29       {_, meta, _} = invalid_call
     30 
     31       trigger =
     32         invalid_call
     33         |> Macro.to_string()
     34         |> String.split("(")
     35         |> List.first()
     36 
     37       issues ++ [issue_for(format_issue_fun, issue_meta, meta[:line], trigger, checked_module)]
     38     end)
     39   end
     40 
     41   defp issue_for(format_issue_fun, issue_meta, line_no, trigger, checked_module) do
     42     format_issue_fun.(
     43       issue_meta,
     44       message: "There should be no unused return values for #{checked_module} functions.",
     45       trigger: trigger,
     46       line_no: line_no
     47     )
     48   end
     49 end