KogenCredo.Diff.Change (KogenCredo v0.1.0)

View Source

One changed function: its base clauses (nil when the function is new) and its head clauses.

base_module and head_module map {name, arity} to the clauses of every function of the enclosing module, so rules can follow local helper calls. base_aliases and head_aliases are the alias maps of each file (see KogenCredo.SafetySupport.aliases/1). base_kind and head_kind are :def or :defp. module_new is true when the module has no function at all in the base (a new module or a new file). impl is true when the function is preceded by @impl in the head. module is the enclosing module's name ("MyApp.Search", see KogenCredo.CoreSupport.Ast.module_name/0); no module atom is created for the analysed code.

Summary

Functions

Display name such as MyApp.Search.history/2.

{name, arity} of the function on one side. The base arity differs from the head arity when a parameter was added or removed.

Clauses, module function map and aliases of one side (:base or :head).

Types

t()

@type t() :: %KogenCredo.Diff.Change{
  arity: term(),
  base: term(),
  base_aliases: term(),
  base_arity: term(),
  base_kind: term(),
  base_module: term(),
  file: term(),
  head: term(),
  head_aliases: term(),
  head_kind: term(),
  head_module: term(),
  impl: term(),
  line: term(),
  module: term(),
  module_new: term(),
  name: term()
}

Functions

label(c)

@spec label(t()) :: String.t()

Display name such as MyApp.Search.history/2.

self_key(c, atom)

@spec self_key(t(), :base | :head) :: {atom(), arity()}

{name, arity} of the function on one side. The base arity differs from the head arity when a parameter was added or removed.

side(c, atom)

@spec side(t(), :base | :head) :: {[Macro.t()], map(), map()}

Clauses, module function map and aliases of one side (:base or :head).