Skip to content

Commit

Permalink
Merge pull request #397 from basho/jrw-cm-dialyzer-fixes
Browse files Browse the repository at this point in the history
dialyzer fixes for cluster metadata
  • Loading branch information
jrwest committed Oct 1, 2013
2 parents 892cc49 + e6fff5b commit 9c2a4c8
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 18 deletions.
6 changes: 3 additions & 3 deletions src/dvvset.erl
Expand Up @@ -82,15 +82,15 @@

%% @doc Constructs a new clock set without causal history,
%% and receives a list of values that gos to the anonymous list.
-spec new([value()]) -> clock().
-spec new(value() | [value()]) -> clock().
new(Vs) when is_list(Vs) -> {[], Vs};
new(V) -> {[], [V]}.

%% @doc Constructs a new clock set with the causal history
%% of the given version vector / vector clock,
%% and receives a list of values that gos to the anonymous list.
%% The version vector SHOULD BE a direct result of join/1.
-spec new(vector(), [value()]) -> clock().
-spec new(vector(), value() | [value()]) -> clock().
new(VV, Vs) when is_list(Vs) ->
VVS = lists:sort(VV), % defense against non-order preserving serialization
{[{I, N, []} || {I, N} <- VVS], Vs};
Expand Down Expand Up @@ -176,7 +176,7 @@ update({Cc,[V]}, Cr, I) ->
{event(C, I, V), Vs}.

%% Private function
-spec event(vector(), id(), value()) -> vector().
-spec event(entries(), id(), value()) -> entries().
event([], I, V) -> [{I, 1, [V]}];
event([{I, N, L} | T], I, V) -> [{I, N+1, [V | L]} | T];
event([{I1, _, _} | _]=C, I, V) when I1 > I -> [{I, 1, [V]} | C];
Expand Down
2 changes: 1 addition & 1 deletion src/hashtree_tree.erl
Expand Up @@ -154,7 +154,7 @@
different, binary()}]}.
-type diff() :: prefix_diff() | key_diffs().
-type handler_fun(X) :: fun((diff(), X) -> X).
-opaque remote_fun() :: fun((prefixes(),
-type remote_fun() :: fun((prefixes(),
{get_bucket, {integer(), integer()}} |
{key_hashses, integer()}) -> orddict:orddict()).

Expand Down
11 changes: 5 additions & 6 deletions src/riak_core_metadata.erl
Expand Up @@ -57,7 +57,7 @@
-type it_opt() :: it_opt_resolver() | it_opt_default() | it_opt_keymatch().
-type it_opts() :: [it_opt()].
-type fold_opts() :: it_opts().
-opaque iterator() :: {riak_core_metadata_manager:metadata_iterator(), it_opts()}.
-type iterator() :: {riak_core_metadata_manager:metadata_iterator(), it_opts()}.

%% Put Option Types
-type put_opts() :: [].
Expand Down Expand Up @@ -181,11 +181,10 @@ itr_done({It, _Opts}) ->
%% NOTE: if resolution may be performed this function must be called at most once
%% before calling itr_next/1 on the iterator (at which point the function can be called
%% once more).
-spec itr_key_values(riak_core_metadata_manager:iterator()) ->
{metadata_key(),
[metadata_value() | metadata_tombstone()] |
metadata_value() |
metadata_tombstone()}.
-spec itr_key_values(iterator()) -> {metadata_key(),
[metadata_value() | metadata_tombstone()] |
metadata_value() |
metadata_tombstone()}.
itr_key_values({It, Opts}) ->
Default = itr_default({It, Opts}),
{Key, Obj} = riak_core_metadata_manager:iterator_value(It),
Expand Down
2 changes: 1 addition & 1 deletion src/riak_core_metadata_exchange_fsm.erl
Expand Up @@ -245,7 +245,7 @@ repair_keys(Peer, PrefixList, {_Type, KeyBin}) ->
merge(undefined, PKey, RemoteObj) ->
riak_core_metadata_manager:merge({PKey, undefined}, RemoteObj);
merge(Peer, PKey, LocalObj) ->
riak_core_metadata_manager:merge(Peer, {PKey, undefiend}, LocalObj).
riak_core_metadata_manager:merge(Peer, {PKey, undefined}, LocalObj).


%% @privarte
Expand Down
14 changes: 7 additions & 7 deletions src/riak_core_metadata_manager.erl
Expand Up @@ -84,7 +84,7 @@
-record(remote_iterator, {
node :: node(),
ref :: reference(),
prefix :: atom() | binary()
prefix :: metadata_prefix() | atom() | binary()
}).

-opaque metadata_iterator() :: #metadata_iterator{}.
Expand Down Expand Up @@ -177,12 +177,12 @@ remote_iterator(Node) ->
%% sub-prefixes under `Prefix'. Otherse, the iterator iterates all keys
%% under a prefix. Once created the rest of the iterator API may be used as usual.
%% When done with the iterator, iterator_close/1 must be called
-spec remote_iterator(node(), metadata_prefix() | binary() | atom()) -> remote_iterator().
-spec remote_iterator(node(), metadata_prefix() | binary() | atom() | undefined) -> remote_iterator().
remote_iterator(Node, Prefix) when is_atom(Prefix) or is_binary(Prefix) ->
Ref = gen_server:call({?SERVER, Node}, {remote_iterator, self(), undefined, Prefix}, infinity),
Ref = gen_server:call({?SERVER, Node}, {open_remote_iterator, self(), undefined, Prefix}, infinity),
#remote_iterator{ref=Ref,prefix=Prefix,node=Node};
remote_iterator(Node, FullPrefix) when is_tuple(FullPrefix) ->
Ref = gen_server:call({?SERVER, Node}, {remote_iterator, self(), FullPrefix, undefined}, infinity),
Ref = gen_server:call({?SERVER, Node}, {open_remote_iterator, self(), FullPrefix, undefined}, infinity),
#remote_iterator{ref=Ref,prefix=FullPrefix,node=Node}.

%% @doc advance the iterator by one key, full-prefix or sub-prefix
Expand Down Expand Up @@ -240,7 +240,7 @@ put({{Prefix, SubPrefix}, _Key}=PKey, Context, ValueOrFun)
gen_server:call(?SERVER, {put, PKey, Context, ValueOrFun}, infinity).

%% @doc same as merge/2 but merges the object on `Node'
-spec merge(node(), {metadata_pkey(), metadata_context()}, metadata_object()) -> boolean().
-spec merge(node(), {metadata_pkey(), undefined | metadata_context()}, metadata_object()) -> boolean().
merge(Node, {PKey, _Context}, Obj) ->
gen_server:call({?SERVER, Node}, {merge, PKey, Obj}, infinity).

Expand All @@ -260,7 +260,7 @@ broadcast_data(#metadata_broadcast{pkey=Key, obj=Obj}) ->
%% for the key contained in the message id. If the remote copy is causally older than
%% the current data stored then `false' is returned and no updates are merged. Otherwise,
%% the remote copy is merged (possibly generating siblings) and `true' is returned.
-spec merge({metadata_pkey(), metadata_context()}, metadata_object()) -> boolean().
-spec merge({metadata_pkey(), undefined | metadata_context()}, undefined | metadata_object()) -> boolean().
merge({PKey, _Context}, Obj) ->
gen_server:call(?SERVER, {merge, PKey, Obj}, infinity).

Expand Down Expand Up @@ -355,7 +355,7 @@ handle_call({merge, PKey, Obj}, _From, State) ->
handle_call({get, PKey}, _From, State) ->
Result = read(PKey),
{reply, Result, State};
handle_call({remote_iterator, Pid, FullPrefix, KeyMatch}, _From, State) ->
handle_call({open_remote_iterator, Pid, FullPrefix, KeyMatch}, _From, State) ->
Iterator = new_remote_iterator(Pid, FullPrefix, KeyMatch, State),
{reply, Iterator, State};
handle_call({iterate, RemoteRef}, _From, State) ->
Expand Down

0 comments on commit 9c2a4c8

Please sign in to comment.