summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-09-17 14:56:33 +0100
committerSimon MacMullen <simon@rabbitmq.com>2014-09-17 14:56:33 +0100
commit4bf5e38631ee0ea97b2ecb1ec3c874daf1fe6b57 (patch)
tree6543f2536b34b3015c8ed1f0733abc44fca4c7c7
parent1c086dbfb840b341d54f8709208b93ba47c31a95 (diff)
parent9a2e915c28a9ee4098cbefd39ae5eda4e88ca23b (diff)
downloadrabbitmq-server-4bf5e38631ee0ea97b2ecb1ec3c874daf1fe6b57.tar.gz
Merge bug26211
-rw-r--r--Makefile4
-rw-r--r--src/credit_flow.erl2
-rw-r--r--src/dtree.erl2
-rw-r--r--src/lqueue.erl2
-rw-r--r--src/pmon.erl2
-rw-r--r--src/rabbit_amqqueue_process.erl2
-rw-r--r--src/rabbit_backing_queue.erl4
-rw-r--r--src/rabbit_binding.erl4
-rw-r--r--src/rabbit_mirror_queue_master.erl8
-rw-r--r--src/rabbit_misc.erl15
-rw-r--r--src/rabbit_msg_store.erl4
-rw-r--r--src/rabbit_queue_index.erl8
-rw-r--r--src/rabbit_runtime_parameter.erl2
-rw-r--r--src/rabbit_variable_queue.erl12
-rw-r--r--src/supervisor2.erl2
15 files changed, 39 insertions, 34 deletions
diff --git a/Makefile b/Makefile
index ffb4cdfe..2a77d9b0 100644
--- a/Makefile
+++ b/Makefile
@@ -40,9 +40,9 @@ BASIC_PLT=basic.plt
RABBIT_PLT=rabbit.plt
ifndef USE_SPECS
-# our type specs rely on callback specs, which are available in R15B
+# our type specs rely on dict:dict/0 etc, which are only available in 17.0
# upwards.
-USE_SPECS:=$(shell erl -noshell -eval 'io:format([list_to_integer(X) || X <- string:tokens(erlang:system_info(version), ".")] >= [5,9]), halt().')
+USE_SPECS:=$(shell erl -noshell -eval 'io:format([list_to_integer(X) || X <- string:tokens(erlang:system_info(version), ".")] >= [5,11]), halt().')
endif
ifndef USE_PROPER_QC
diff --git a/src/credit_flow.erl b/src/credit_flow.erl
index 3a640df1..89320621 100644
--- a/src/credit_flow.erl
+++ b/src/credit_flow.erl
@@ -37,6 +37,8 @@
-ifdef(use_specs).
+-export_type([bump_msg/0]).
+
-opaque(bump_msg() :: {pid(), non_neg_integer()}).
-type(credit_spec() :: {non_neg_integer(), non_neg_integer()}).
diff --git a/src/dtree.erl b/src/dtree.erl
index 89a34c9e..9013bd6d 100644
--- a/src/dtree.erl
+++ b/src/dtree.erl
@@ -41,7 +41,7 @@
-export_type([?MODULE/0]).
--opaque(?MODULE() :: {gb_tree(), gb_tree()}).
+-opaque(?MODULE() :: {gb_trees:tree(), gb_trees:tree()}).
-type(pk() :: any()).
-type(sk() :: any()).
diff --git a/src/lqueue.erl b/src/lqueue.erl
index 787f5088..62f60d5f 100644
--- a/src/lqueue.erl
+++ b/src/lqueue.erl
@@ -25,7 +25,7 @@
-export_type([?MODULE/0]).
--opaque(?MODULE() :: {non_neg_integer(), ?QUEUE()}).
+-opaque(?MODULE() :: {non_neg_integer(), ?QUEUE:?QUEUE()}).
-type(value() :: any()).
-type(result() :: 'empty' | {'value', value()}).
diff --git a/src/pmon.erl b/src/pmon.erl
index de3e9fea..a94f5a67 100644
--- a/src/pmon.erl
+++ b/src/pmon.erl
@@ -29,7 +29,7 @@
-export_type([?MODULE/0]).
--opaque(?MODULE() :: #state{dict :: dict(),
+-opaque(?MODULE() :: #state{dict :: dict:dict(),
module :: atom()}).
-type(item() :: pid() | {atom(), node()}).
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl
index fcf17381..b06da4c1 100644
--- a/src/rabbit_amqqueue_process.erl
+++ b/src/rabbit_amqqueue_process.erl
@@ -64,7 +64,7 @@
-spec(info_keys/0 :: () -> rabbit_types:info_keys()).
-spec(init_with_backing_queue_state/7 ::
(rabbit_types:amqqueue(), atom(), tuple(), any(),
- [rabbit_types:delivery()], pmon:pmon(), dict()) -> #q{}).
+ [rabbit_types:delivery()], pmon:pmon(), dict:dict()) -> #q{}).
-endif.
diff --git a/src/rabbit_backing_queue.erl b/src/rabbit_backing_queue.erl
index b4bdb0af..4ce133c3 100644
--- a/src/rabbit_backing_queue.erl
+++ b/src/rabbit_backing_queue.erl
@@ -255,8 +255,8 @@ behaviour_info(callbacks) ->
{fetch, 2}, {ack, 2}, {requeue, 2}, {ackfold, 4}, {fold, 3}, {len, 1},
{is_empty, 1}, {depth, 1}, {set_ram_duration_target, 2},
{ram_duration, 1}, {needs_timeout, 1}, {timeout, 1},
- {handle_pre_hibernate, 1}, {resume, 1}, {msg_rates, 1}, {info_keys, 0},
- {infos, 2}, {invoke, 3}, {is_duplicate, 2}] ;
+ {handle_pre_hibernate, 1}, {resume, 1}, {msg_rates, 1},
+ {info, 2}, {invoke, 3}, {is_duplicate, 2}] ;
behaviour_info(_Other) ->
undefined.
diff --git a/src/rabbit_binding.erl b/src/rabbit_binding.erl
index 12082af8..12d4df99 100644
--- a/src/rabbit_binding.erl
+++ b/src/rabbit_binding.erl
@@ -52,7 +52,9 @@
rabbit_types:ok_or_error(rabbit_types:amqp_error()))).
-type(bindings() :: [rabbit_types:binding()]).
--opaque(deletions() :: dict()).
+%% TODO this should really be opaque but that seems to confuse 17.1's
+%% dialyzer into objecting to everything that uses it.
+-type(deletions() :: dict:dict()).
-spec(recover/2 :: ([rabbit_exchange:name()], [rabbit_amqqueue:name()]) ->
'ok').
diff --git a/src/rabbit_mirror_queue_master.erl b/src/rabbit_mirror_queue_master.erl
index 5ce22271..f1b1a8a5 100644
--- a/src/rabbit_mirror_queue_master.erl
+++ b/src/rabbit_mirror_queue_master.erl
@@ -56,14 +56,14 @@
coordinator :: pid(),
backing_queue :: atom(),
backing_queue_state :: any(),
- seen_status :: dict(),
+ seen_status :: dict:dict(),
confirmed :: [rabbit_guid:guid()],
- known_senders :: set()
+ known_senders :: sets:set()
}).
-spec(promote_backing_queue_state/8 ::
- (rabbit_amqqueue:name(), pid(), atom(), any(), pid(), [any()], dict(),
- [pid()]) -> master_state()).
+ (rabbit_amqqueue:name(), pid(), atom(), any(), pid(), [any()],
+ dict:dict(), [pid()]) -> master_state()).
-spec(sender_death_fun/0 :: () -> death_fun()).
-spec(depth_fun/0 :: () -> depth_fun()).
-spec(init_with_existing_bq/3 :: (rabbit_types:amqqueue(), atom(), any()) ->
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl
index 84a00f0d..a984d1f9 100644
--- a/src/rabbit_misc.erl
+++ b/src/rabbit_misc.erl
@@ -191,7 +191,7 @@
-spec(format_stderr/2 :: (string(), [any()]) -> 'ok').
-spec(unfold/2 :: (fun ((A) -> ({'true', B, A} | 'false')), A) -> {[B], A}).
-spec(ceil/1 :: (number()) -> integer()).
--spec(queue_fold/3 :: (fun ((any(), B) -> B), B, queue()) -> B).
+-spec(queue_fold/3 :: (fun ((any(), B) -> B), B, queue:queue()) -> B).
-spec(sort_field_table/1 ::
(rabbit_framing:amqp_table()) -> rabbit_framing:amqp_table()).
-spec(pid_to_string/1 :: (pid()) -> string()).
@@ -202,17 +202,18 @@
(string(), string(), ('lt' | 'lte' | 'eq' | 'gte' | 'gt'))
-> boolean()).
-spec(version_minor_equivalent/2 :: (string(), string()) -> boolean()).
--spec(dict_cons/3 :: (any(), any(), dict()) -> dict()).
+-spec(dict_cons/3 :: (any(), any(), dict:dict()) -> dict:dict()).
-spec(orddict_cons/3 :: (any(), any(), orddict:orddict()) -> orddict:orddict()).
--spec(gb_trees_cons/3 :: (any(), any(), gb_tree()) -> gb_tree()).
--spec(gb_trees_fold/3 :: (fun ((any(), any(), A) -> A), A, gb_tree()) -> A).
+-spec(gb_trees_cons/3 :: (any(), any(), gb_trees:tree()) -> gb_trees:tree()).
+-spec(gb_trees_fold/3 :: (fun ((any(), any(), A) -> A), A, gb_trees:tree())
+ -> A).
-spec(gb_trees_foreach/2 ::
- (fun ((any(), any()) -> any()), gb_tree()) -> 'ok').
+ (fun ((any(), any()) -> any()), gb_trees:tree()) -> 'ok').
-spec(all_module_attributes/1 ::
(atom()) -> [{atom(), atom(), [term()]}]).
-spec(build_acyclic_graph/3 ::
(graph_vertex_fun(), graph_edge_fun(), [{atom(), [term()]}])
- -> rabbit_types:ok_or_error2(digraph(),
+ -> rabbit_types:ok_or_error2(digraph:digraph(),
{'vertex', 'duplicate', digraph:vertex()} |
{'edge', ({bad_vertex, digraph:vertex()} |
{bad_edge, [digraph:vertex()]}),
@@ -229,7 +230,7 @@
-spec(format_message_queue/2 :: (any(), priority_queue:q()) -> term()).
-spec(append_rpc_all_nodes/4 :: ([node()], atom(), atom(), [any()]) -> [any()]).
-spec(os_cmd/1 :: (string()) -> string()).
--spec(gb_sets_difference/2 :: (gb_set(), gb_set()) -> gb_set()).
+-spec(gb_sets_difference/2 :: (gb_sets:set(), gb_sets:set()) -> gb_sets:set()).
-spec(version/0 :: () -> string()).
-spec(which_applications/0 :: () -> [{atom(), string(), string()}]).
-spec(sequence_error/1 :: ([({'error', any()} | any())])
diff --git a/src/rabbit_msg_store.erl b/src/rabbit_msg_store.erl
index d97c2ad5..b829ae94 100644
--- a/src/rabbit_msg_store.erl
+++ b/src/rabbit_msg_store.erl
@@ -126,7 +126,7 @@
-type(client_msstate() :: #client_msstate {
server :: server(),
client_ref :: client_ref(),
- file_handle_cache :: dict(),
+ file_handle_cache :: dict:dict(),
index_state :: any(),
index_module :: atom(),
dir :: file:filename(),
@@ -139,7 +139,7 @@
fun ((A) -> 'finished' |
{rabbit_types:msg_id(), non_neg_integer(), A})).
-type(maybe_msg_id_fun() ::
- 'undefined' | fun ((gb_set(), 'written' | 'ignored') -> any())).
+ 'undefined' | fun ((gb_sets:set(), 'written' | 'ignored') -> any())).
-type(maybe_close_fds_fun() :: 'undefined' | fun (() -> 'ok')).
-type(deletion_thunk() :: fun (() -> boolean())).
diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl
index f21b44bc..0a2c88d4 100644
--- a/src/rabbit_queue_index.erl
+++ b/src/rabbit_queue_index.erl
@@ -181,19 +181,19 @@
-type(segment() :: ('undefined' |
#segment { num :: non_neg_integer(),
path :: file:filename(),
- journal_entries :: array(),
+ journal_entries :: array:array(),
unacked :: non_neg_integer()
})).
-type(seq_id() :: integer()).
--type(seg_dict() :: {dict(), [segment()]}).
--type(on_sync_fun() :: fun ((gb_set()) -> ok)).
+-type(seg_dict() :: {dict:dict(), [segment()]}).
+-type(on_sync_fun() :: fun ((gb_sets:set()) -> ok)).
-type(qistate() :: #qistate { dir :: file:filename(),
segments :: 'undefined' | seg_dict(),
journal_handle :: hdl(),
dirty_count :: integer(),
max_journal_entries :: non_neg_integer(),
on_sync :: on_sync_fun(),
- unconfirmed :: gb_set()
+ unconfirmed :: gb_sets:set()
}).
-type(contains_predicate() :: fun ((rabbit_types:msg_id()) -> boolean())).
-type(walker(A) :: fun ((A) -> 'finished' |
diff --git a/src/rabbit_runtime_parameter.erl b/src/rabbit_runtime_parameter.erl
index 3e81ea74..3a5d9606 100644
--- a/src/rabbit_runtime_parameter.erl
+++ b/src/rabbit_runtime_parameter.erl
@@ -32,7 +32,7 @@
behaviour_info(callbacks) ->
[
- {validate, 4},
+ {validate, 5},
{notify, 4},
{notify_clear, 3}
];
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index 03ba2819..d076b534 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -339,8 +339,8 @@
q3 :: ?QUEUE:?QUEUE(),
q4 :: ?QUEUE:?QUEUE(),
next_seq_id :: seq_id(),
- ram_pending_ack :: gb_tree(),
- disk_pending_ack :: gb_tree(),
+ ram_pending_ack :: gb_trees:tree(),
+ disk_pending_ack :: gb_trees:tree(),
index_state :: any(),
msg_store_clients :: 'undefined' | {{any(), binary()},
{any(), binary()}},
@@ -362,10 +362,10 @@
out_counter :: non_neg_integer(),
in_counter :: non_neg_integer(),
rates :: rates(),
- msgs_on_disk :: gb_set(),
- msg_indices_on_disk :: gb_set(),
- unconfirmed :: gb_set(),
- confirmed :: gb_set(),
+ msgs_on_disk :: gb_sets:set(),
+ msg_indices_on_disk :: gb_sets:set(),
+ unconfirmed :: gb_sets:set(),
+ confirmed :: gb_sets:set(),
ack_out_counter :: non_neg_integer(),
ack_in_counter :: non_neg_integer() }).
%% Duplicated from rabbit_backing_queue
diff --git a/src/supervisor2.erl b/src/supervisor2.erl
index 92ecb0df..57c3bfc1 100644
--- a/src/supervisor2.erl
+++ b/src/supervisor2.erl
@@ -137,7 +137,7 @@
-record(state, {name,
strategy :: strategy(),
children = [] :: [child_rec()],
- dynamics :: ?DICT() | ?SET(),
+ dynamics :: ?DICT:?DICT() | ?SET:?SET(),
intensity :: non_neg_integer(),
period :: pos_integer(),
restarts = [],