diff --git a/scripts-dev/mypy_synapse_plugin.py b/scripts-dev/mypy_synapse_plugin.py
index 62f1703728..97d3f0ccb1 100644
--- a/scripts-dev/mypy_synapse_plugin.py
+++ b/scripts-dev/mypy_synapse_plugin.py
@@ -67,12 +67,7 @@ class SynapsePlugin(Plugin):
) -> Optional[Callable[[AttributeContext], mypy.types.Type]]:
# Anything in synapse could be wrapped with the cached decorator, but
# we know that anything else is *not*.
- if fullname.startswith(
- (
- "synapse.util.caches.descriptors.CachedFunction",
- "synapse.util.caches.descriptors._LruCachedFunction",
- )
- ):
+ if fullname == "synapse.util.caches.descriptors.CachedFunction.__call__":
return cached_function_method_attribute
return None
diff --git a/synapse/push/bulk_push_rule_evaluator.py b/synapse/push/bulk_push_rule_evaluator.py
index 5934b1ef34..c05e2785d3 100644
--- a/synapse/push/bulk_push_rule_evaluator.py
+++ b/synapse/push/bulk_push_rule_evaluator.py
@@ -350,40 +350,32 @@ class BulkPushRuleEvaluator:
actions_by_user: Dict[str, Collection[Union[Mapping, str]]] = {}
# Gather a bunch of info in parallel.
- #
- # This has a lot of ignored types and casting due to the use of @cached
- # decorated functions passed into run_in_background.
- #
- # See https://github.com/matrix-org/synapse/issues/16606
(
room_member_count,
(power_levels, sender_power_level),
related_events,
profiles,
) = await make_deferred_yieldable(
- cast(
- "Deferred[Tuple[int, Tuple[dict, Optional[int]], Dict[str, Dict[str, JsonValue]], Mapping[str, ProfileInfo]]]",
- gather_results(
- (
- run_in_background( # type: ignore[call-arg]
- self.store.get_number_joined_users_in_room, event.room_id # type: ignore[arg-type]
- ),
- run_in_background(
- self._get_power_levels_and_sender_level,
- event,
- context,
- event_id_to_event,
- ),
- run_in_background(self._related_events, event),
- run_in_background( # type: ignore[call-arg]
- self.store.get_subset_users_in_room_with_profiles,
- event.room_id, # type: ignore[arg-type]
- rules_by_user.keys(), # type: ignore[arg-type]
- ),
+ gather_results(
+ (
+ run_in_background(
+ self.store.get_number_joined_users_in_room, event.room_id
),
- consumeErrors=True,
- ).addErrback(unwrapFirstError),
- )
+ run_in_background(
+ self._get_power_levels_and_sender_level,
+ event,
+ context,
+ event_id_to_event,
+ ),
+ run_in_background(self._related_events, event),
+ run_in_background(
+ self.store.get_subset_users_in_room_with_profiles,
+ event.room_id,
+ rules_by_user.keys(),
+ ),
+ ),
+ consumeErrors=True,
+ ).addErrback(unwrapFirstError)
)
# Find the event's thread ID.
|