summary refs log tree commit diff
path: root/synapse/push
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--synapse/push/bulk_push_rule_evaluator.py46
1 files changed, 19 insertions, 27 deletions
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.