wa_blame (assert v1.0.1)

Summary

Types

bindings/0

-type bindings() :: orddict:orddict().

blame_info/0

-type blame_info() :: {clauses, [clause_info()]} | {generic, [pattern_info()]}.

clause_info/0

-type clause_info() :: {[pattern_info()], [conjunction_info()]}.

conjunction_info/0

-type conjunction_info() :: [guard_info()].

container_field_info/0

-type container_field_info() :: {pattern_info(), tree()}.

container_info/0

-type container_info() :: {container_type(), [container_field_info()]}.

container_type/0

-type container_type() :: map | tuple.

debug_info/0

-type debug_info() :: dynamic().

doc/0

-type doc() :: erlfmt_algebra:doc().

error_description/0

-type error_description() ::
          #{pos_integer() => unicode:chardata(),
            general => unicode:chardata(),
            reason => unicode:chardata()}.

error_info/0

-type error_info() :: #{cause => term(), module => module(), function => atom()}.

guard_info/0

-type guard_info() :: {boolean(), tree()}.

pattern_info/0

-type pattern_info() :: {badkey | boolean() | container_info(), tree()}.

stacktrace/0

-type stacktrace() :: [dynamic()].

stacktrace_extrainfo/0

-type stacktrace_extrainfo() ::
          {error_info, #{module => module(), function => atom(), cause => term()}} | {atom(), term()}.

tree/0

-type tree() :: erl_syntax:syntaxTree().

Functions

blame(Reason, StackTrace)

-spec blame(term(), stacktrace()) -> {ok, blame_info()} | {error, no_blame_info}.

error_info(Reason, StackTrace)

-spec error_info(term(), stacktrace()) -> {ok, error_info()} | {error, no_error_info}.

format_blame(Reason, StackTrace)

-spec format_blame(term(), erlang:stacktrace()) -> ok.

format_error(R, _)

-spec format_error(term(), erlang:stacktrace()) -> error_description().

pp_blame(_, Pre, Post)

-spec pp_blame(blame_info(), doc(), doc()) -> {ok, string()} | {error, term()}.