diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2010-06-10 17:35:28 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2010-06-10 17:35:28 +0100 |
| commit | 5c2b7377d268e53e28bb9198b679cb3335624e6f (patch) | |
| tree | 5886fd82f7792265fac45b72baaa11f6925b3605 | |
| parent | 7ea93a06f86a9e970901c40213f82d92d737d466 (diff) | |
| download | rabbitmq-server-git-5c2b7377d268e53e28bb9198b679cb3335624e6f.tar.gz | |
Use unification rather than when clause. Also remove separate assert_type as it's buying us very little.
| -rw-r--r-- | src/rabbit_exchange.erl | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index ff9733957e..ee7160eac1 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -189,29 +189,19 @@ check_type(TypeBin) -> T end. -assert_equivalence(X = #exchange{ durable = ActualDurable, - auto_delete = ActualAutoDelete, - type = ActualType}, - RequiredType, RequiredDurable, RequiredAutoDelete, - RequiredArgs) - when ActualDurable =:= RequiredDurable andalso - ActualAutoDelete =:= RequiredAutoDelete -> - ok = assert_type(X, RequiredType), - ok = (type_to_module(ActualType)):assert_args_equivalence(X, RequiredArgs); +assert_equivalence(X = #exchange{ durable = Durable, + auto_delete = AutoDelete, + type = Type}, + Type, Durable, AutoDelete, + RequiredArgs) -> + ok = (type_to_module(Type)):assert_args_equivalence(X, RequiredArgs); assert_equivalence(#exchange{ name = Name }, _Type, _Durable, _AutoDelete, _Args) -> rabbit_misc:protocol_error( - not_allowed, "cannot redeclare ~s with different durable value", + not_allowed, + "cannot redeclare ~s with different type, durable or autodelete value", [rabbit_misc:rs(Name)]). -assert_type(#exchange{ type = ActualType }, RequiredType) - when ActualType == RequiredType -> - ok; -assert_type(#exchange{ name = Name, type = ActualType }, RequiredType) -> - rabbit_misc:protocol_error( - not_allowed, "cannot redeclare ~s of type '~s' with type '~s'", - [rabbit_misc:rs(Name), ActualType, RequiredType]). - alternate_exchange_value(Args) -> lists:keysearch(<<"alternate-exchange">>, 1, Args). |
