zf

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

enum_helpers.ex (2185B)


      1 defmodule Credo.Check.Refactor.EnumHelpers do
      2   def traverse(
      3         {{:., _, [{:__aliases__, meta, [:Enum]}, second]}, _,
      4          [{{:., _, [{:__aliases__, _, [:Enum]}, first]}, _, _}, _]} = ast,
      5         issues,
      6         issue_meta,
      7         message,
      8         trigger,
      9         first,
     10         second,
     11         module
     12       ) do
     13     new_issue = issue_for(issue_meta, meta[:line], message, trigger, module)
     14     {ast, issues ++ List.wrap(new_issue)}
     15   end
     16 
     17   def traverse(
     18         {:|>, meta,
     19          [
     20            {{:., _, [{:__aliases__, _, [:Enum]}, first]}, _, _},
     21            {{:., _, [{:__aliases__, _, [:Enum]}, second]}, _, _}
     22          ]} = ast,
     23         issues,
     24         issue_meta,
     25         message,
     26         trigger,
     27         first,
     28         second,
     29         module
     30       ) do
     31     new_issue = issue_for(issue_meta, meta[:line], message, trigger, module)
     32     {ast, issues ++ List.wrap(new_issue)}
     33   end
     34 
     35   def traverse(
     36         {{:., meta, [{:__aliases__, _, [:Enum]}, second]}, _,
     37          [
     38            {:|>, _, [_, {{:., _, [{:__aliases__, _, [:Enum]}, first]}, _, _}]},
     39            _
     40          ]} = ast,
     41         issues,
     42         issue_meta,
     43         message,
     44         trigger,
     45         first,
     46         second,
     47         module
     48       ) do
     49     new_issue = issue_for(issue_meta, meta[:line], message, trigger, module)
     50     {ast, issues ++ List.wrap(new_issue)}
     51   end
     52 
     53   def traverse(
     54         {:|>, meta,
     55          [
     56            {:|>, _,
     57             [
     58               _,
     59               {{:., _, [{:__aliases__, _, [:Enum]}, first]}, _, _}
     60             ]},
     61            {{:., _, [{:__aliases__, _, [:Enum]}, second]}, _, _}
     62          ]} = ast,
     63         issues,
     64         issue_meta,
     65         message,
     66         trigger,
     67         first,
     68         second,
     69         module
     70       ) do
     71     new_issue = issue_for(issue_meta, meta[:line], message, trigger, module)
     72     {ast, issues ++ List.wrap(new_issue)}
     73   end
     74 
     75   def traverse(ast, issues, _issue_meta, _message, _trigger, _first, _second, _module) do
     76     {ast, issues}
     77   end
     78 
     79   defp issue_for(issue_meta, line_no, message, trigger, module) do
     80     module.format_issue(
     81       issue_meta,
     82       message: message,
     83       trigger: trigger,
     84       line_no: line_no
     85     )
     86   end
     87 end