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