Collapse nested conditionals into let-chains and match guards

This commit is contained in:
Dennis Kobert
2026-09-15 14:33:50 +02:00
parent 3bdec5d005
commit de93fa40fb
4 changed files with 71 additions and 76 deletions
+3 -7
View File
@@ -492,17 +492,13 @@ mod test {
if let FrontendMessage::UpdateLayout { if let FrontendMessage::UpdateLayout {
layout_target: LayoutTarget::DialogColumn1, layout_target: LayoutTarget::DialogColumn1,
diff, diff,
} = response } = response && let DiffUpdate::Layout(sub_layout) = &diff[0].new_value
&& let LayoutGroup::Row(WidgetRow { widgets }) = &sub_layout.0[0]
&& let Widget::TextLabel(TextLabel { value, .. }) = &*widgets[0].widget
{ {
if let DiffUpdate::Layout(sub_layout) = &diff[0].new_value {
if let LayoutGroup::Row(WidgetRow { widgets }) = &sub_layout.0[0] {
if let Widget::TextLabel(TextLabel { value, .. }) = &*widgets[0].widget {
print_problem_to_terminal_on_failure(value); print_problem_to_terminal_on_failure(value);
} }
} }
} }
} }
} }
}
}
}
@@ -4105,12 +4105,13 @@ mod document_message_handler_tests {
async fn get_layer_by_bounds(editor: &mut EditorTestUtils, min_x: f64, min_y: f64) -> Option<LayerNodeIdentifier> { async fn get_layer_by_bounds(editor: &mut EditorTestUtils, min_x: f64, min_y: f64) -> Option<LayerNodeIdentifier> {
let document = editor.active_document(); let document = editor.active_document();
for layer in document.metadata().all_layers() { for layer in document.metadata().all_layers() {
if let Some(bbox) = document.metadata().bounding_box_viewport(layer) { if let Some(bbox) = document.metadata().bounding_box_viewport(layer)
if (bbox[0].x - min_x).abs() < 1. && (bbox[0].y - min_y).abs() < 1. { && (bbox[0].x - min_x).abs() < 1.
&& (bbox[0].y - min_y).abs() < 1.
{
return Some(layer); return Some(layer);
} }
} }
}
None None
} }
@@ -106,13 +106,11 @@ fn overlay_bezier_handle_specific_point(
let not_under_anchor = |position: DVec2, anchor: DVec2| position.distance_squared(anchor) >= HIDE_HANDLE_DISTANCE * HIDE_HANDLE_DISTANCE; let not_under_anchor = |position: DVec2, anchor: DVec2| position.distance_squared(anchor) >= HIDE_HANDLE_DISTANCE * HIDE_HANDLE_DISTANCE;
match bezier.handles { match bezier.handles {
BezierHandles::Quadratic { handle } => { BezierHandles::Quadratic { handle } if not_under_anchor(handle, bezier.start) && not_under_anchor(handle, bezier.end) => {
if not_under_anchor(handle, bezier.start) && not_under_anchor(handle, bezier.end) {
let end = if start == point_to_render { bezier.start } else { bezier.end }; let end = if start == point_to_render { bezier.start } else { bezier.end };
overlay_context.line(handle, end, None, None); overlay_context.line(handle, end, None, None);
overlay_context.manipulator_handle(handle, is_selected(ManipulatorPointId::PrimaryHandle(segment_id)), None); overlay_context.manipulator_handle(handle, is_selected(ManipulatorPointId::PrimaryHandle(segment_id)), None);
} }
}
BezierHandles::Cubic { handle_start, handle_end } => { BezierHandles::Cubic { handle_start, handle_end } => {
if not_under_anchor(handle_start, bezier.start) && (point_to_render == start) { if not_under_anchor(handle_start, bezier.start) && (point_to_render == start) {
overlay_context.line(handle_start, bezier.start, None, None); overlay_context.line(handle_start, bezier.start, None, None);
+3 -3
View File
@@ -29,8 +29,9 @@ pub fn message_handler_data_attr_impl(attr: TokenStream, input_item: TokenStream
if segment.ident != "MessageHandler" { if segment.ident != "MessageHandler" {
return Err(syn::Error::new(segment.ident.span(), "Expected MessageHandler trait")); return Err(syn::Error::new(segment.ident.span(), "Expected MessageHandler trait"));
} }
if let syn::PathArguments::AngleBracketed(args) = &segment.arguments { if let syn::PathArguments::AngleBracketed(args) = &segment.arguments
if args.args.len() >= 2 { && args.args.len() >= 2
{
// Extract the message type (M) and context struct type (C) from the trait params // Extract the message type (M) and context struct type (C) from the trait params
let message_type = &args.args[0]; let message_type = &args.args[0];
let data_type = &args.args[1]; let data_type = &args.args[1];
@@ -100,6 +101,5 @@ pub fn message_handler_data_attr_impl(attr: TokenStream, input_item: TokenStream
return Ok(impl_item); return Ok(impl_item);
} }
} }
}
Ok(input_item) Ok(input_item)
} }