defmodule Credo.IssueMeta do @moduledoc """ IssueMeta provides helper functions for meta information which a check wants to pass to the `issue_for(...)` function, i.e. the current SourceFile and check params (by default). """ @type t :: module alias Credo.SourceFile @doc "Returns an issue meta tuple for the given `source_file` and `check_params`." def for(source_file, check_params) do {__MODULE__, source_file, check_params} end @doc "Returns the source file for the given `issue_meta`." def source_file(issue_meta) def source_file({__MODULE__, source_file, _params}) do source_file end def source_file(%SourceFile{} = source_file) do source_file end @doc "Returns the check params for the given `issue_meta`." def params(issue_meta) def params({__MODULE__, _source_file, check_params}), do: check_params def params(%SourceFile{}), do: [] end