diff --git a/matrix_sdk_base/src/client.rs b/matrix_sdk_base/src/client.rs index d7cdf65b..334e873b 100644 --- a/matrix_sdk_base/src/client.rs +++ b/matrix_sdk_base/src/client.rs @@ -1284,11 +1284,13 @@ impl BaseClient { match &mut *olm { Some(o) => { let room = room.write().await; - let members = room - .joined_members - .keys() - .chain(room.invited_members.keys()); - Ok(o.share_group_session(room_id, members).await?) + + // XXX: We construct members in a slightly roundabout way instead of chaining the + // iterators directly because of https://github.com/rust-lang/rust/issues/64552 + let joined_members = room.joined_members.keys(); + let invited_members = room.joined_members.keys(); + let members: Vec<&UserId> = joined_members.chain(invited_members).collect(); + Ok(o.share_group_session(room_id, members.into_iter()).await?) } None => panic!("Olm machine wasn't started"), } diff --git a/matrix_sdk_base/src/event_emitter/mod.rs b/matrix_sdk_base/src/event_emitter/mod.rs index a1ec2a5c..951462e2 100644 --- a/matrix_sdk_base/src/event_emitter/mod.rs +++ b/matrix_sdk_base/src/event_emitter/mod.rs @@ -93,7 +93,7 @@ pub enum CustomOrRawEvent<'c> { /// { /// let name = { /// let room = room.read().await; -/// let member = room.members.get(&sender).unwrap(); +/// let member = room.joined_members.get(&sender).unwrap(); /// member /// .display_name /// .as_ref()