From 167666cd235de21a662ca32e1882a2a1cfc0192f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Sat, 30 Nov 2013 20:43:19 +0100 Subject: [PATCH] Listen to dialyzer --- lib/geef/commit.ex | 8 +++----- lib/geef/signature.ex | 3 +++ src/geef_commit.erl | 4 ++++ src/geef_nif.erl | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/geef/commit.ex b/lib/geef/commit.ex index e04fbf6..facf9af 100644 --- a/lib/geef/commit.ex +++ b/lib/geef/commit.ex @@ -1,7 +1,5 @@ defmodule Geef.Commit do - alias Geef.Object - alias Geef.Signature - alias Geef.Oid + use Geef import Object, only: :macros @type t :: Object[type: :commit] @@ -33,9 +31,9 @@ defmodule Geef.Commit do @spec tree!(t) :: Tree.t def tree!(commit = Object[type: :commit]), do: tree(commit) |> Geef.assert_ok - @type create(pid, Signature.t, Signature.t, iolist, Tree.t, Commit.t, [atom]) :: {:ok, Oid.t} | {:error, term} + @spec create(pid, Signature.t, Signature.t, iolist, Oid.t, [Oid.t], [:proplists.property()]) :: {:ok, Oid.t} | {:error, term} def create(repo, author = Signature[], committer = Signature[], message, tree, parents, opts // []) do - :geef_commit.create(repo, author, committer, message, tree, parents, opts) + :geef_commit.create(repo, Signature.to_erl(author), Signature.to_erl(committer), message, tree, parents, opts) end end diff --git a/lib/geef/signature.ex b/lib/geef/signature.ex index 58722b2..58715e2 100644 --- a/lib/geef/signature.ex +++ b/lib/geef/signature.ex @@ -9,4 +9,7 @@ defrecord Geef.Signature, Record.extract(:geef_signature, from: "src/geef_record defp from_erl(sig), do: set_elem(sig, 0, Geef.Signature) + @spec to_erl(t) :: :geef_sig.signature + def to_erl(sig), do: set_elem(sig, 0, :geef_signature) + end diff --git a/src/geef_commit.erl b/src/geef_commit.erl index 3720c19..be463ef 100644 --- a/src/geef_commit.erl +++ b/src/geef_commit.erl @@ -34,11 +34,15 @@ create(Repo, Ref, Author = #geef_signature{}, Committer = #geef_signature{}, Enc geef_nif:commit_create(Handle, Ref, Author, Committer, Encoding, Message, Tree, Parents). % Common version, accepts ref and encoding as options +-spec create(pid(), geef_sig:signature(), geef_sig:signature(), iolist(), geef_oid:oid(), [geef_oid:oid()], + [proplists:property()]) -> {ok, geef_oid:oid()} | {error, term()}. create(Repo, Author = #geef_signature{}, Committer = #geef_signature{}, Message, Tree, Parents, Opts) -> Ref = proplists:get_value(update_ref, Opts, undefined), Encoding = proplists:get_value(encoding, Opts, undefined), create(Repo, Ref, Author, Committer, Encoding, Message, Tree, Parents). +-spec create(pid(), geef_sig:signature(), geef_sig:signature(), iolist(), geef_oid:oid(), [geef_oid:oid()]) + -> {ok, geef_oid:oid()} | {error, term()}. create(Repo, Author = #geef_signature{}, Committer = #geef_signature{}, Message, Tree, Parents) -> create(Repo, Author, Committer, Message, Tree, Parents, []); diff --git a/src/geef_nif.erl b/src/geef_nif.erl index 8f90644..dd7241f 100644 --- a/src/geef_nif.erl +++ b/src/geef_nif.erl @@ -175,7 +175,7 @@ index_add(_Handle, _Entry) -> index_clear(_Handle) -> ?NIF_FN. --spec signature_default(term()) -> {ok, geef_sig:signature()} | {error, term()}. +-spec signature_default(term()) -> {ok, binary(), binary(), non_neg_integer(), non_neg_integer()} | {error, term()}. signature_default(_Repo) -> ?NIF_FN.