diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2011-11-29 11:41:55 +0000 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2011-11-29 11:41:55 +0000 |
commit | 0560e52985816f7f2758d2b68a501ba87293e5b6 (patch) | |
tree | c3e7e76f9b75467cf68a4b2bd752a1639cc16fde | |
parent | 1dbd4eca982651c95dff1c2045d2e2df0ba75386 (diff) | |
download | rabbitmq-server-0560e52985816f7f2758d2b68a501ba87293e5b6.tar.gz |
Slight simplification that these vars are declared once and failure is a thunk.bug24579
-rw-r--r-- | src/rabbit_misc.erl | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl index 96fd7193..0578cf7d 100644 --- a/src/rabbit_misc.erl +++ b/src/rabbit_misc.erl @@ -250,21 +250,23 @@ assert_args_equivalence(Orig, New, Name, Keys) -> ok. assert_args_equivalence1(Orig, New, Name, Key) -> - FailureFun = fun (Orig1, New1) -> + {Orig1, New1} = {table_lookup(Orig, Key), table_lookup(New, Key)}, + FailureFun = fun () -> protocol_error(precondition_failed, "inequivalent arg '~s'" "for ~s: received ~s but current is ~s", [Key, rs(Name), val(New1), val(Orig1)]) end, - case {table_lookup(Orig, Key), table_lookup(New, Key)} of + case {Orig1, New1} of {Same, Same} -> ok; - {{OrigType, OrigVal} = Orig1, {NewType, NewVal} = New1} -> + {{OrigType, OrigVal}, {NewType, NewVal}} -> case type_class(OrigType) == type_class(NewType) andalso OrigVal == NewVal of true -> ok; - false -> FailureFun(Orig1, New1) + false -> FailureFun() end; - {Orig1, New1} -> FailureFun(Orig1, New1) + {_, _} -> + FailureFun() end. val(undefined) -> |