Current section

Files

Jump to
credence lib rule.ex
Raw

lib/rule.ex

defmodule Credence.Rule do
@moduledoc """
Behaviour for all Credence semantic rules.
"""
@callback check(Macro.t(), keyword()) :: [Credence.Issue.t()]
@callback fixable?() :: boolean()
@callback fix(source :: String.t(), opts :: keyword()) :: String.t()
@optional_callbacks [fix: 2]
defmacro __using__(_opts) do
quote do
@behaviour Credence.Rule
@impl true
def fixable?, do: false
defoverridable fixable?: 0
end
end
end