Hoist up checks to reduce overall work

This commit is contained in:
Erik Johnston 2019-02-15 10:17:43 +00:00
parent 02c46acc6a
commit 02c729d6b0
1 changed files with 16 additions and 18 deletions

View File

@ -177,24 +177,22 @@ class _RoomDirectoryRule(object):
if not self._user_id_regex.match(user_id): if not self._user_id_regex.match(user_id):
return False return False
# If we are not given any aliases then this rule only matches if the
# alias glob matches all aliases
matched = False
if not aliases:
if not self._alias_matches_all:
return False
else:
# Otherwise, we just need one alias to match
matched = False
for alias in aliases:
if self._alias_regex.match(alias):
matched = True
break
if not matched:
return False
if not self._room_id_regex.match(room_id): if not self._room_id_regex.match(room_id):
return False return False
return True # We only have alias checks left, so we can short circuit if the alias
# rule matches everything.
if self._alias_matches_all:
return True
# If we are not given any aliases then this rule only matches if the
# alias glob matches all aliases, which we checked above.
if not aliases:
return False
# Otherwise, we just need one alias to match
for alias in aliases:
if self._alias_regex.match(alias):
return True
return False