diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py index 0687c9fa79..f55a73c160 100644 --- a/synapse/handlers/message.py +++ b/synapse/handlers/message.py @@ -22,7 +22,7 @@ import logging import random from http import HTTPStatus -from typing import TYPE_CHECKING, Any, Mapping, Optional, Sequence +from typing import TYPE_CHECKING, Any, Mapping, Optional, Sequence, cast from canonicaljson import encode_canonical_json @@ -1871,8 +1871,8 @@ class EventCreationHandler: state_entry = await self.state.resolve_state_groups_for_events( event.room_id, - event_ids=event.prev_state_events - if isinstance(event, FrozenEventVMSC4242) + event_ids=cast(FrozenEventVMSC4242, event).prev_state_events + if event.room_version.msc4242_state_dags else event.prev_event_ids(), ) diff --git a/synapse/state/__init__.py b/synapse/state/__init__.py index 2f0e3f2c3e..40b2ac3c75 100644 --- a/synapse/state/__init__.py +++ b/synapse/state/__init__.py @@ -29,6 +29,7 @@ from typing import ( Mapping, Optional, Sequence, + cast, ) import attr @@ -314,8 +315,8 @@ class StateHandler: # their states - but I don't think that really matters; it just means we # might redundantly recalculate the state for this event later.) prev_event_ids = frozenset( - event.prev_state_events - if isinstance(event, FrozenEventVMSC4242) + cast(FrozenEventVMSC4242, event).prev_state_events + if event.room_version.msc4242_state_dags else event.prev_event_ids() ) incomplete_prev_events = await self.store.get_partial_state_events(