enable manual_let_else lint

This commit is contained in:
Charles Hall 2024-05-14 17:34:43 -07:00
parent c51e87ec9a
commit 9606f59141
No known key found for this signature in database
GPG key ID: 7B8E0645816E07CF
17 changed files with 165 additions and 263 deletions

View file

@ -44,6 +44,7 @@ inconsistent_struct_constructor = "warn"
items_after_statements = "warn" items_after_statements = "warn"
let_underscore_must_use = "warn" let_underscore_must_use = "warn"
lossy_float_literal = "warn" lossy_float_literal = "warn"
manual_let_else = "warn"
mem_forget = "warn" mem_forget = "warn"
missing_assert_message = "warn" missing_assert_message = "warn"
mod_module_files = "warn" mod_module_files = "warn"

View file

@ -17,11 +17,8 @@ pub(crate) async fn send_request<T: OutgoingRequest>(
where where
T: Debug, T: Debug,
{ {
let destination = match registration.url { let Some(destination) = registration.url else {
Some(url) => url, return Ok(None);
None => {
return Ok(None);
}
}; };
let hs_token = registration.hs_token.as_str(); let hs_token = registration.hs_token.as_str();

View file

@ -166,14 +166,11 @@ pub(crate) async fn get_alias_helper(
} }
}; };
let room_id = match room_id { let Some(room_id) = room_id else {
Some(room_id) => room_id, return Err(Error::BadRequest(
None => { ErrorKind::NotFound,
return Err(Error::BadRequest( "Room with alias not found.",
ErrorKind::NotFound, ));
"Room with alias not found.",
))
}
}; };
Ok(get_alias::v3::Response::new( Ok(get_alias::v3::Response::new(

View file

@ -178,21 +178,15 @@ pub(crate) async fn get_context_route(
.get_statekey_from_short(shortstatekey)?; .get_statekey_from_short(shortstatekey)?;
if event_type != StateEventType::RoomMember { if event_type != StateEventType::RoomMember {
let pdu = match services().rooms.timeline.get_pdu(&id)? { let Some(pdu) = services().rooms.timeline.get_pdu(&id)? else {
Some(pdu) => pdu, error!("Pdu in state not found: {}", id);
None => { continue;
error!("Pdu in state not found: {}", id);
continue;
}
}; };
state.push(pdu.to_state_event()); state.push(pdu.to_state_event());
} else if !lazy_load_enabled || lazy_loaded.contains(&state_key) { } else if !lazy_load_enabled || lazy_loaded.contains(&state_key) {
let pdu = match services().rooms.timeline.get_pdu(&id)? { let Some(pdu) = services().rooms.timeline.get_pdu(&id)? else {
Some(pdu) => pdu, error!("Pdu in state not found: {}", id);
None => { continue;
error!("Pdu in state not found: {}", id);
continue;
}
}; };
state.push(pdu.to_state_event()); state.push(pdu.to_state_event());
} }

View file

@ -13,9 +13,8 @@ pub(crate) async fn get_filter_route(
body: Ruma<get_filter::v3::Request>, body: Ruma<get_filter::v3::Request>,
) -> Result<get_filter::v3::Response> { ) -> Result<get_filter::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated"); let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let filter = match services().users.get_filter(sender_user, &body.filter_id)? { let Some(filter) = services().users.get_filter(sender_user, &body.filter_id)? else {
Some(filter) => filter, return Err(Error::BadRequest(ErrorKind::NotFound, "Filter not found."));
None => return Err(Error::BadRequest(ErrorKind::NotFound, "Filter not found.")),
}; };
Ok(get_filter::v3::Response::new(filter)) Ok(get_filter::v3::Response::new(filter))

View file

@ -762,17 +762,15 @@ async fn join_room_by_id_helper(
return Err(error); return Err(error);
}; };
let (signed_event_id, signed_value) = let Ok((signed_event_id, signed_value)) =
match gen_event_id_canonical_json(&signed_raw, &room_version_id) { gen_event_id_canonical_json(&signed_raw, &room_version_id)
Ok(t) => t, else {
Err(_) => { // Event could not be converted to canonical json
// Event could not be converted to canonical json return Err(Error::BadRequest(
return Err(Error::BadRequest( ErrorKind::InvalidParam,
ErrorKind::InvalidParam, "Could not convert event to canonical json.",
"Could not convert event to canonical json.", ));
)); };
}
};
if signed_event_id != event_id { if signed_event_id != event_id {
return Err(Error::BadRequest( return Err(Error::BadRequest(
@ -905,17 +903,15 @@ async fn join_room_by_id_helper(
if let Some(signed_raw) = &send_join_response.room_state.event { if let Some(signed_raw) = &send_join_response.room_state.event {
info!("There is a signed event. This room is probably using restricted joins. Adding signature to our event"); info!("There is a signed event. This room is probably using restricted joins. Adding signature to our event");
let (signed_event_id, signed_value) = let Ok((signed_event_id, signed_value)) =
match gen_event_id_canonical_json(signed_raw, &room_version_id) { gen_event_id_canonical_json(signed_raw, &room_version_id)
Ok(t) => t, else {
Err(_) => { // Event could not be converted to canonical json
// Event could not be converted to canonical json return Err(Error::BadRequest(
return Err(Error::BadRequest( ErrorKind::InvalidParam,
ErrorKind::InvalidParam, "Could not convert event to canonical json.",
"Could not convert event to canonical json.", ));
)); };
}
};
if signed_event_id != event_id { if signed_event_id != event_id {
return Err(Error::BadRequest( return Err(Error::BadRequest(
@ -975,9 +971,8 @@ async fn join_room_by_id_helper(
.iter() .iter()
.map(|pdu| validate_and_add_event_id(pdu, &room_version_id, &pub_key_map)) .map(|pdu| validate_and_add_event_id(pdu, &room_version_id, &pub_key_map))
{ {
let (event_id, value) = match result.await { let Ok((event_id, value)) = result.await else {
Ok(t) => t, continue;
Err(_) => continue,
}; };
let pdu = PduEvent::from_id_val(&event_id, value.clone()).map_err(|e| { let pdu = PduEvent::from_id_val(&event_id, value.clone()).map_err(|e| {
@ -1005,9 +1000,8 @@ async fn join_room_by_id_helper(
.iter() .iter()
.map(|pdu| validate_and_add_event_id(pdu, &room_version_id, &pub_key_map)) .map(|pdu| validate_and_add_event_id(pdu, &room_version_id, &pub_key_map))
{ {
let (event_id, value) = match result.await { let Ok((event_id, value)) = result.await else {
Ok(t) => t, continue;
Err(_) => continue,
}; };
services() services()
@ -1277,16 +1271,13 @@ pub(crate) async fn invite_helper(
let pub_key_map = RwLock::new(BTreeMap::new()); let pub_key_map = RwLock::new(BTreeMap::new());
// We do not add the event_id field to the pdu here because of signature and hashes checks // We do not add the event_id field to the pdu here because of signature and hashes checks
let (event_id, value) = match gen_event_id_canonical_json(&response.event, &room_version_id) let Ok((event_id, value)) = gen_event_id_canonical_json(&response.event, &room_version_id)
{ else {
Ok(t) => t, // Event could not be converted to canonical json
Err(_) => { return Err(Error::BadRequest(
// Event could not be converted to canonical json ErrorKind::InvalidParam,
return Err(Error::BadRequest( "Could not convert event to canonical json.",
ErrorKind::InvalidParam, ));
"Could not convert event to canonical json.",
));
}
}; };
if *pdu.event_id != *event_id { if *pdu.event_id != *event_id {
@ -1395,10 +1386,7 @@ pub(crate) async fn leave_all_rooms(user_id: &UserId) -> Result<()> {
.collect::<Vec<_>>(); .collect::<Vec<_>>();
for room_id in all_rooms { for room_id in all_rooms {
let room_id = match room_id { let Ok(room_id) = room_id else { continue };
Ok(room_id) => room_id,
Err(_) => continue,
};
if let Err(error) = leave_room(user_id, &room_id, None).await { if let Err(error) = leave_room(user_id, &room_id, None).await {
warn!(%user_id, %room_id, %error, "failed to leave room"); warn!(%user_id, %room_id, %error, "failed to leave room");

View file

@ -14,14 +14,11 @@ pub(crate) async fn report_event_route(
) -> Result<report_content::v3::Response> { ) -> Result<report_content::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated"); let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let pdu = match services().rooms.timeline.get_pdu(&body.event_id)? { let Some(pdu) = services().rooms.timeline.get_pdu(&body.event_id)? else {
Some(pdu) => pdu, return Err(Error::BadRequest(
_ => { ErrorKind::InvalidParam,
return Err(Error::BadRequest( "Invalid Event ID",
ErrorKind::InvalidParam, ));
"Invalid Event ID",
))
}
}; };
if let Some(true) = body.score.map(|s| s > int!(0) || s < int!(-100)) { if let Some(true) = body.score.map(|s| s > int!(0) || s < int!(-100)) {

View file

@ -337,28 +337,23 @@ async fn sync_helper(
None => HashMap::new(), None => HashMap::new(),
}; };
let left_event_id = match services().rooms.state_accessor.room_state_get_id( let Some(left_event_id) = services().rooms.state_accessor.room_state_get_id(
&room_id, &room_id,
&StateEventType::RoomMember, &StateEventType::RoomMember,
sender_user.as_str(), sender_user.as_str(),
)? { )?
Some(e) => e, else {
None => { error!("Left room but no left state event");
error!("Left room but no left state event"); continue;
continue;
}
}; };
let left_shortstatehash = match services() let Some(left_shortstatehash) = services()
.rooms .rooms
.state_accessor .state_accessor
.pdu_shortstatehash(&left_event_id)? .pdu_shortstatehash(&left_event_id)?
{ else {
Some(s) => s, error!("Leave event has no state");
None => { continue;
error!("Leave event has no state");
continue;
}
}; };
let mut left_state_ids = services() let mut left_state_ids = services()
@ -386,12 +381,9 @@ async fn sync_helper(
// TODO: Delete the following line when this is resolved: https://github.com/vector-im/element-web/issues/22565 // TODO: Delete the following line when this is resolved: https://github.com/vector-im/element-web/issues/22565
|| *sender_user == state_key || *sender_user == state_key
{ {
let pdu = match services().rooms.timeline.get_pdu(&id)? { let Some(pdu) = services().rooms.timeline.get_pdu(&id)? else {
Some(pdu) => pdu, error!("Pdu in state not found: {}", id);
None => { continue;
error!("Pdu in state not found: {}", id);
continue;
}
}; };
left_state_events.push(pdu.to_sync_state_event()); left_state_events.push(pdu.to_sync_state_event());
@ -607,13 +599,11 @@ async fn load_joined_room(
// Database queries: // Database queries:
let current_shortstatehash = let Some(current_shortstatehash) = services().rooms.state.get_room_shortstatehash(room_id)?
if let Some(s) = services().rooms.state.get_room_shortstatehash(room_id)? { else {
s error!("Room {} has no state", room_id);
} else { return Err(Error::BadDatabase("Room has no state"));
error!("Room {} has no state", room_id); };
return Err(Error::BadDatabase("Room has no state"));
};
let since_shortstatehash = services() let since_shortstatehash = services()
.rooms .rooms
@ -747,12 +737,9 @@ async fn load_joined_room(
.get_statekey_from_short(shortstatekey)?; .get_statekey_from_short(shortstatekey)?;
if event_type != StateEventType::RoomMember { if event_type != StateEventType::RoomMember {
let pdu = match services().rooms.timeline.get_pdu(&id)? { let Some(pdu) = services().rooms.timeline.get_pdu(&id)? else {
Some(pdu) => pdu, error!("Pdu in state not found: {}", id);
None => { continue;
error!("Pdu in state not found: {}", id);
continue;
}
}; };
state_events.push(pdu); state_events.push(pdu);
@ -766,12 +753,9 @@ async fn load_joined_room(
// TODO: Delete the following line when this is resolved: https://github.com/vector-im/element-web/issues/22565 // TODO: Delete the following line when this is resolved: https://github.com/vector-im/element-web/issues/22565
|| *sender_user == state_key || *sender_user == state_key
{ {
let pdu = match services().rooms.timeline.get_pdu(&id)? { let Some(pdu) = services().rooms.timeline.get_pdu(&id)? else {
Some(pdu) => pdu, error!("Pdu in state not found: {}", id);
None => { continue;
error!("Pdu in state not found: {}", id);
continue;
}
}; };
// This check is in case a bad user ID made it into the database // This check is in case a bad user ID made it into the database
@ -836,12 +820,9 @@ async fn load_joined_room(
for (key, id) in current_state_ids { for (key, id) in current_state_ids {
if full_state || since_state_ids.get(&key) != Some(&id) { if full_state || since_state_ids.get(&key) != Some(&id) {
let pdu = match services().rooms.timeline.get_pdu(&id)? { let Some(pdu) = services().rooms.timeline.get_pdu(&id)? else {
Some(pdu) => pdu, error!("Pdu in state not found: {}", id);
None => { continue;
error!("Pdu in state not found: {}", id);
continue;
}
}; };
if pdu.kind == TimelineEventType::RoomMember { if pdu.kind == TimelineEventType::RoomMember {
@ -1234,13 +1215,12 @@ pub(crate) async fn sync_events_v4_route(
); );
for room_id in &all_joined_rooms { for room_id in &all_joined_rooms {
let current_shortstatehash = let Some(current_shortstatehash) =
if let Some(s) = services().rooms.state.get_room_shortstatehash(room_id)? { services().rooms.state.get_room_shortstatehash(room_id)?
s else {
} else { error!("Room {} has no state", room_id);
error!("Room {} has no state", room_id); continue;
continue; };
};
let since_shortstatehash = services() let since_shortstatehash = services()
.rooms .rooms
@ -1302,12 +1282,9 @@ pub(crate) async fn sync_events_v4_route(
for (key, id) in current_state_ids { for (key, id) in current_state_ids {
if since_state_ids.get(&key) != Some(&id) { if since_state_ids.get(&key) != Some(&id) {
let pdu = match services().rooms.timeline.get_pdu(&id)? { let Some(pdu) = services().rooms.timeline.get_pdu(&id)? else {
Some(pdu) => pdu, error!("Pdu in state not found: {}", id);
None => { continue;
error!("Pdu in state not found: {}", id);
continue;
}
}; };
if pdu.kind == TimelineEventType::RoomMember { if pdu.kind == TimelineEventType::RoomMember {
if let Some(state_key) = &pdu.state_key { if let Some(state_key) = &pdu.state_key {

View file

@ -656,15 +656,12 @@ pub(crate) fn parse_incoming_pdu(
let room_version_id = services().rooms.state.get_room_version(&room_id)?; let room_version_id = services().rooms.state.get_room_version(&room_id)?;
let (event_id, value) = match gen_event_id_canonical_json(pdu, &room_version_id) { let Ok((event_id, value)) = gen_event_id_canonical_json(pdu, &room_version_id) else {
Ok(t) => t, // Event could not be converted to canonical json
Err(_) => { return Err(Error::BadRequest(
// Event could not be converted to canonical json ErrorKind::InvalidParam,
return Err(Error::BadRequest( "Could not convert event to canonical json.",
ErrorKind::InvalidParam, ));
"Could not convert event to canonical json.",
));
}
}; };
Ok((event_id, value, room_id)) Ok((event_id, value, room_id))
} }
@ -1514,15 +1511,12 @@ async fn create_join_event(
// We do not add the event_id field to the pdu here because of signature and hashes checks // We do not add the event_id field to the pdu here because of signature and hashes checks
let room_version_id = services().rooms.state.get_room_version(room_id)?; let room_version_id = services().rooms.state.get_room_version(room_id)?;
let (event_id, value) = match gen_event_id_canonical_json(pdu, &room_version_id) { let Ok((event_id, value)) = gen_event_id_canonical_json(pdu, &room_version_id) else {
Ok(t) => t, // Event could not be converted to canonical json
Err(_) => { return Err(Error::BadRequest(
// Event could not be converted to canonical json ErrorKind::InvalidParam,
return Err(Error::BadRequest( "Could not convert event to canonical json.",
ErrorKind::InvalidParam, ));
"Could not convert event to canonical json.",
));
}
}; };
let origin: OwnedServerName = serde_json::from_value( let origin: OwnedServerName = serde_json::from_value(

View file

@ -424,12 +424,9 @@ impl KeyValueDatabase {
for (roomserverid, _) in db.roomserverids.iter() { for (roomserverid, _) in db.roomserverids.iter() {
let mut parts = roomserverid.split(|&b| b == 0xff); let mut parts = roomserverid.split(|&b| b == 0xff);
let room_id = parts.next().expect("split always returns one element"); let room_id = parts.next().expect("split always returns one element");
let servername = match parts.next() { let Some(servername) = parts.next() else {
Some(s) => s, error!("Migration: Invalid roomserverid in db.");
None => { continue;
error!("Migration: Invalid roomserverid in db.");
continue;
}
}; };
let mut serverroomid = servername.to_vec(); let mut serverroomid = servername.to_vec();
serverroomid.push(0xff); serverroomid.push(0xff);

View file

@ -54,12 +54,9 @@ impl service::rooms::search::Data for KeyValueDatabase {
.map(move |(key, _)| key[prefix3.len()..].to_vec()) .map(move |(key, _)| key[prefix3.len()..].to_vec())
}); });
let common_elements = match utils::common_elements(iterators, |a, b| { // We compare b with a because we reversed the iterator earlier
// We compare b with a because we reversed the iterator earlier let Some(common_elements) = utils::common_elements(iterators, |a, b| b.cmp(a)) else {
b.cmp(a) return Ok(None);
}) {
Some(it) => it,
None => return Ok(None),
}; };
Ok(Some((Box::new(common_elements), words))) Ok(Some((Box::new(common_elements), words)))

View file

@ -79,13 +79,12 @@ impl service::rooms::state_accessor::Data for KeyValueDatabase {
event_type: &StateEventType, event_type: &StateEventType,
state_key: &str, state_key: &str,
) -> Result<Option<Arc<EventId>>> { ) -> Result<Option<Arc<EventId>>> {
let shortstatekey = match services() let Some(shortstatekey) = services()
.rooms .rooms
.short .short
.get_shortstatekey(event_type, state_key)? .get_shortstatekey(event_type, state_key)?
{ else {
Some(s) => s, return Ok(None);
None => return Ok(None),
}; };
let full_state = services() let full_state = services()
.rooms .rooms

View file

@ -342,14 +342,11 @@ impl Service {
Ok(ruma::signatures::Verified::Signatures) => { Ok(ruma::signatures::Verified::Signatures) => {
// Redact // Redact
warn!("Calculated hash does not match: {}", event_id); warn!("Calculated hash does not match: {}", event_id);
let obj = match ruma::canonical_json::redact(value, room_version_id, None) { let Ok(obj) = ruma::canonical_json::redact(value, room_version_id, None) else {
Ok(obj) => obj, return Err(Error::BadRequest(
Err(_) => { ErrorKind::InvalidParam,
return Err(Error::BadRequest( "Redaction failed",
ErrorKind::InvalidParam, ));
"Redaction failed",
))
}
}; };
// Skip the PDU if it is redacted and we already have it as an outlier event // Skip the PDU if it is redacted and we already have it as an outlier event
@ -409,12 +406,9 @@ impl Service {
// Build map of auth events // Build map of auth events
let mut auth_events = HashMap::new(); let mut auth_events = HashMap::new();
for id in &incoming_pdu.auth_events { for id in &incoming_pdu.auth_events {
let auth_event = match services().rooms.timeline.get_pdu(id)? { let Some(auth_event) = services().rooms.timeline.get_pdu(id)? else {
Some(e) => e, warn!("Could not find auth event {}", id);
None => { continue;
warn!("Could not find auth event {}", id);
continue;
}
}; };
self.check_room_id(room_id, &auth_event)?; self.check_room_id(room_id, &auth_event)?;
@ -574,21 +568,16 @@ impl Service {
let mut okay = true; let mut okay = true;
for prev_eventid in &incoming_pdu.prev_events { for prev_eventid in &incoming_pdu.prev_events {
let prev_event = let Ok(Some(prev_event)) = services().rooms.timeline.get_pdu(prev_eventid) else {
if let Ok(Some(pdu)) = services().rooms.timeline.get_pdu(prev_eventid) { okay = false;
pdu break;
} else { };
okay = false;
break;
};
let sstatehash = if let Ok(Some(s)) = services() let Ok(Some(sstatehash)) = services()
.rooms .rooms
.state_accessor .state_accessor
.pdu_shortstatehash(prev_eventid) .pdu_shortstatehash(prev_eventid)
{ else {
s
} else {
okay = false; okay = false;
break; break;
}; };
@ -1046,16 +1035,12 @@ impl Service {
}; };
let lock = services().globals.stateres_mutex.lock(); let lock = services().globals.stateres_mutex.lock();
let state = match state_res::resolve( let Ok(state) =
room_version_id, state_res::resolve(room_version_id, &fork_states, auth_chain_sets, fetch_event)
&fork_states, else {
auth_chain_sets, return Err(Error::bad_database(
fetch_event, "State resolution failed, either an event could not be found or deserialization",
) { ));
Ok(new_state) => new_state,
Err(_) => {
return Err(Error::bad_database("State resolution failed, either an event could not be found or deserialization"));
}
}; };
drop(lock); drop(lock);
@ -1184,14 +1169,12 @@ impl Service {
{ {
Ok(res) => { Ok(res) => {
info!("Got {} over federation", next_id); info!("Got {} over federation", next_id);
let (calculated_event_id, value) = let Ok((calculated_event_id, value)) =
match pdu::gen_event_id_canonical_json(&res.pdu, room_version_id) { pdu::gen_event_id_canonical_json(&res.pdu, room_version_id)
Ok(t) => t, else {
Err(_) => { back_off((*next_id).to_owned()).await;
back_off((*next_id).to_owned()).await; continue;
continue; };
}
};
if calculated_event_id != *next_id { if calculated_event_id != *next_id {
warn!("Server didn't return event id we requested: requested: {}, we got {}. Event: {:?}", warn!("Server didn't return event id we requested: requested: {}, we got {}. Event: {:?}",
@ -1410,12 +1393,9 @@ impl Service {
) )
.await; .await;
let keys = match fetch_res { let Ok(keys) = fetch_res else {
Ok(keys) => keys, warn!("Signature verification failed: Could not fetch signing key.",);
Err(_) => { continue;
warn!("Signature verification failed: Could not fetch signing key.",);
continue;
}
}; };
pub_key_map pub_key_map
@ -1640,23 +1620,21 @@ impl Service {
/// Returns Ok if the acl allows the server /// Returns Ok if the acl allows the server
pub(crate) fn acl_check(&self, server_name: &ServerName, room_id: &RoomId) -> Result<()> { pub(crate) fn acl_check(&self, server_name: &ServerName, room_id: &RoomId) -> Result<()> {
let acl_event = match services().rooms.state_accessor.room_state_get( let Some(acl_event) = services().rooms.state_accessor.room_state_get(
room_id, room_id,
&StateEventType::RoomServerAcl, &StateEventType::RoomServerAcl,
"", "",
)? { )?
Some(acl) => acl, else {
None => return Ok(()), return Ok(());
}; };
let acl_event_content: RoomServerAclEventContent = let Ok(acl_event_content) =
match serde_json::from_str(acl_event.content.get()) { serde_json::from_str::<RoomServerAclEventContent>(acl_event.content.get())
Ok(content) => content, else {
Err(_) => { warn!("Invalid ACL event");
warn!("Invalid ACL event"); return Ok(());
return Ok(()); };
}
};
if acl_event_content.allow.is_empty() { if acl_event_content.allow.is_empty() {
// Ignore broken acl events // Ignore broken acl events

View file

@ -45,9 +45,8 @@ impl Service {
.ok() .ok()
.map(|(_, id)| id) .map(|(_, id)| id)
}) { }) {
let pdu = match services().rooms.timeline.get_pdu_json(&event_id)? { let Some(pdu) = services().rooms.timeline.get_pdu_json(&event_id)? else {
Some(pdu) => pdu, continue;
None => continue,
}; };
let pdu: PduEvent = match serde_json::from_str( let pdu: PduEvent = match serde_json::from_str(
@ -70,14 +69,12 @@ impl Service {
Err(_) => continue, Err(_) => continue,
}; };
let state_key = match pdu.state_key { let Some(state_key) = pdu.state_key else {
Some(k) => k, continue;
None => continue,
}; };
let user_id = match UserId::parse(state_key) { let Ok(user_id) = UserId::parse(state_key) else {
Ok(id) => id, continue;
Err(_) => continue,
}; };
services().rooms.state_cache.update_membership( services().rooms.state_cache.update_membership(
@ -377,11 +374,7 @@ impl Service {
state_key: Option<&str>, state_key: Option<&str>,
content: &serde_json::value::RawValue, content: &serde_json::value::RawValue,
) -> Result<StateMap<Arc<PduEvent>>> { ) -> Result<StateMap<Arc<PduEvent>>> {
let shortstatehash = if let Some(current_shortstatehash) = let Some(shortstatehash) = services().rooms.state.get_room_shortstatehash(room_id)? else {
services().rooms.state.get_room_shortstatehash(room_id)?
{
current_shortstatehash
} else {
return Ok(HashMap::new()); return Ok(HashMap::new());
}; };

View file

@ -109,9 +109,8 @@ impl Service {
room_id: &RoomId, room_id: &RoomId,
event_id: &EventId, event_id: &EventId,
) -> Result<bool> { ) -> Result<bool> {
let shortstatehash = match self.pdu_shortstatehash(event_id)? { let Some(shortstatehash) = self.pdu_shortstatehash(event_id)? else {
Some(shortstatehash) => shortstatehash, return Ok(true);
None => return Ok(true),
}; };
if let Some(visibility) = self if let Some(visibility) = self
@ -173,9 +172,8 @@ impl Service {
room_id: &RoomId, room_id: &RoomId,
event_id: &EventId, event_id: &EventId,
) -> Result<bool> { ) -> Result<bool> {
let shortstatehash = match self.pdu_shortstatehash(event_id)? { let Some(shortstatehash) = self.pdu_shortstatehash(event_id)? else {
Some(shortstatehash) => shortstatehash, return Ok(true);
None => return Ok(true),
}; };
if let Some(visibility) = self if let Some(visibility) = self

View file

@ -564,13 +564,12 @@ impl Service {
} }
} }
let pusher = match services() let Some(pusher) = services()
.pusher .pusher
.get_pusher(userid, pushkey) .get_pusher(userid, pushkey)
.map_err(|e| (OutgoingKind::Push(userid.clone(), pushkey.clone()), e))? .map_err(|e| (OutgoingKind::Push(userid.clone(), pushkey.clone()), e))?
{ else {
Some(pusher) => pusher, continue;
None => continue,
}; };
let rules_for_user = services() let rules_for_user = services()

View file

@ -63,14 +63,11 @@ impl Service {
password, password,
.. ..
}) => { }) => {
let username = match identifier { let UserIdentifier::UserIdOrLocalpart(username) = identifier else {
UserIdentifier::UserIdOrLocalpart(username) => username, return Err(Error::BadRequest(
_ => { ErrorKind::Unrecognized,
return Err(Error::BadRequest( "Identifier type not recognized.",
ErrorKind::Unrecognized, ));
"Identifier type not recognized.",
))
}
}; };
let user_id = UserId::parse_with_server_name( let user_id = UserId::parse_with_server_name(