diff options
author | Oriol Brufau <obrufau@igalia.com> | 2024-01-30 12:46:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-30 11:46:35 +0000 |
commit | f7ead9bcb6fca650b797a9ac53a2de13c882d86c (patch) | |
tree | 0dce7dc5b1e64238b97658c9738f935e74c2308f /components/layout/inline.rs | |
parent | 16cabcf7368538dafd6c59eb37a2fa651ac8ff1b (diff) | |
download | servo-f7ead9bcb6fca650b797a9ac53a2de13c882d86c.tar.gz servo-f7ead9bcb6fca650b797a9ac53a2de13c882d86c.zip |
Lint layout_2013 with clippy (#31221)
* Lint layout_2013 with clippy
CARGO_BUILD_RUSTC=rustc cargo clippy --fix -p layout_2013 --broken-code
* ./mach fmt
* Cosmetic adjustments
Diffstat (limited to 'components/layout/inline.rs')
-rw-r--r-- | components/layout/inline.rs | 83 |
1 files changed, 41 insertions, 42 deletions
diff --git a/components/layout/inline.rs b/components/layout/inline.rs index d8e339d3a0d..436f35a9c50 100644 --- a/components/layout/inline.rs +++ b/components/layout/inline.rs @@ -269,7 +269,7 @@ impl LineBreaker { lines: Vec::new(), cur_b: Au(0), last_known_line_breaking_opportunity: None, - first_line_indentation: first_line_indentation, + first_line_indentation, minimum_metrics: *minimum_line_metrics, } } @@ -327,7 +327,7 @@ impl LineBreaker { }) .collect(); - let mut lines = mem::replace(&mut self.lines, Vec::new()); + let mut lines = mem::take(&mut self.lines); // If everything is LTR, don't bother with reordering. if bidi::level::has_rtl(&levels) { @@ -352,16 +352,16 @@ impl LineBreaker { } // Place the fragments back into the flow. - old_fragments.fragments = mem::replace(&mut self.new_fragments, vec![]); + old_fragments.fragments = mem::take(&mut self.new_fragments); flow.fragments = old_fragments; flow.lines = lines; } /// Reflows the given fragments, which have been plucked out of the inline flow. - fn reflow_fragments<'a, I>( + fn reflow_fragments<I>( &mut self, mut old_fragment_iter: I, - flow: &'a InlineFlow, + flow: &InlineFlow, layout_context: &LayoutContext, ) where I: Iterator<Item = Fragment>, @@ -428,7 +428,7 @@ impl LineBreaker { let need_to_merge = match (&mut result.specific, &candidate.specific) { ( &mut SpecificFragmentInfo::ScannedText(ref mut result_info), - &SpecificFragmentInfo::ScannedText(ref candidate_info), + SpecificFragmentInfo::ScannedText(candidate_info), ) => { result.margin.inline_end == Au(0) && candidate.margin.inline_start == Au(0) && @@ -516,7 +516,7 @@ impl LineBreaker { placement_inline_size, first_fragment.border_box.size.block, ), - ceiling: ceiling, + ceiling, max_inline_size: flow.base.position.size.inline, kind: FloatKind::Left, }); @@ -809,7 +809,7 @@ impl LineBreaker { None } }, - (&TextOverflowSide::String(ref string), _) => { + (TextOverflowSide::String(string), _) => { if fragment.margin_box_inline_size() > available_inline_size { Some(string.to_string()) } else { @@ -952,6 +952,12 @@ impl InlineFragments { } } +impl Default for InlineFragments { + fn default() -> Self { + Self::new() + } +} + #[allow(unsafe_code)] unsafe impl crate::flow::HasBaseFlow for InlineFlow {} @@ -983,7 +989,7 @@ impl InlineFlow { pub fn from_fragments(fragments: InlineFragments, writing_mode: WritingMode) -> InlineFlow { let mut flow = InlineFlow { base: BaseFlow::new(None, writing_mode, ForceNonfloatedFlag::ForceNonfloated), - fragments: fragments, + fragments, lines: Vec::new(), minimum_line_metrics: LineMetrics::new(Au(0), Au(0)), first_line_indentation: Au(0), @@ -1047,13 +1053,9 @@ impl InlineFlow { }, TextAlign::Justify | TextAlign::Start => {}, TextAlign::Center | TextAlign::ServoCenter => { - inline_start_position_for_fragment = - inline_start_position_for_fragment + slack_inline_size.scale_by(0.5) - }, - TextAlign::End => { - inline_start_position_for_fragment = - inline_start_position_for_fragment + slack_inline_size + inline_start_position_for_fragment += slack_inline_size.scale_by(0.5) }, + TextAlign::End => inline_start_position_for_fragment += slack_inline_size, TextAlign::Left | TextAlign::ServoLeft | TextAlign::Right | TextAlign::ServoRight => { unreachable!() }, @@ -1101,8 +1103,7 @@ impl InlineFlow { for fragment_index in fragment_indices { let fragment = fragments.get_mut(fragment_index as usize); - inline_start_position_for_fragment = - inline_start_position_for_fragment + fragment.margin.inline_start; + inline_start_position_for_fragment += fragment.margin.inline_start; let border_start = if fragment.style.writing_mode.is_bidi_ltr() == is_ltr { inline_start_position_for_fragment @@ -1295,7 +1296,7 @@ impl InlineFlow { for node in &inline_context.nodes { let font_style = node.style.clone_font(); let font_metrics = text::font_metrics_for_style(font_context, font_style); - let line_height = text::line_height_from_style(&*node.style, &font_metrics); + let line_height = text::line_height_from_style(&node.style, &font_metrics); let inline_metrics = InlineMetrics::from_font_metrics(&font_metrics, line_height); update_line_metrics_for_fragment( @@ -1435,14 +1436,10 @@ impl InlineFlow { // Returns the last line that doesn't consist entirely of hypothetical boxes. fn last_line_containing_real_fragments(&self) -> Option<&Line> { - for line in self.lines.iter().rev() { - if (line.range.begin().get()..line.range.end().get()) + self.lines.iter().rev().find(|&line| { + (line.range.begin().get()..line.range.end().get()) .any(|index| !self.fragments.fragments[index as usize].is_hypothetical()) - { - return Some(line); - } - } - None + }) } fn build_display_list_for_inline_fragment_at_index( @@ -1825,7 +1822,7 @@ impl Flow for InlineFlow { // Write the clip in our coordinate system into the child flow. (The kid will // fix it up to be in its own coordinate system if necessary.) - block_flow.base.clip = self.base.clip.clone() + block_flow.base.clip = self.base.clip }, SpecificFragmentInfo::InlineAbsoluteHypothetical(ref mut info) => { let flow = FlowRef::deref_mut(&mut info.flow_ref); @@ -1837,7 +1834,7 @@ impl Flow for InlineFlow { stacking_relative_border_box.origin.to_vector(); // As above, this is in our coordinate system for now. - block_flow.base.clip = self.base.clip.clone() + block_flow.base.clip = self.base.clip }, SpecificFragmentInfo::InlineAbsolute(ref mut info) => { let flow = FlowRef::deref_mut(&mut info.flow_ref); @@ -1857,7 +1854,7 @@ impl Flow for InlineFlow { stacking_relative_border_box.origin.to_vector(); // As above, this is in our coordinate system for now. - block_flow.base.clip = self.base.clip.clone() + block_flow.base.clip = self.base.clip }, _ => {}, } @@ -1957,7 +1954,7 @@ impl Flow for InlineFlow { .early_absolute_position_info .relative_containing_block_size; for fragment in &self.fragments.fragments { - overflow.union(&fragment.compute_overflow(&flow_size, &relative_containing_block_size)) + overflow.union(&fragment.compute_overflow(&flow_size, relative_containing_block_size)) } overflow } @@ -2025,8 +2022,7 @@ impl Flow for InlineFlow { if fragment.is_absolutely_positioned() { continue; } - containing_block_size.inline = - containing_block_size.inline + fragment.border_box.size.inline; + containing_block_size.inline += fragment.border_box.size.inline; containing_block_size.block = max(containing_block_size.block, fragment.border_box.size.block); } @@ -2089,10 +2085,7 @@ impl InlineFragmentContext { #[inline] pub fn contains_node(&self, node_address: OpaqueNode) -> bool { - self.nodes - .iter() - .position(|node| node.address == node_address) - .is_some() + self.nodes.iter().any(|node| node.address == node_address) } fn ptr_eq(&self, other: &InlineFragmentContext) -> bool { @@ -2108,12 +2101,18 @@ impl InlineFragmentContext { } } +impl Default for InlineFragmentContext { + fn default() -> Self { + Self::new() + } +} + fn inline_contexts_are_equal( inline_context_a: &Option<InlineFragmentContext>, inline_context_b: &Option<InlineFragmentContext>, ) -> bool { match (inline_context_a, inline_context_b) { - (&Some(ref inline_context_a), &Some(ref inline_context_b)) => { + (Some(inline_context_a), Some(inline_context_b)) => { inline_context_a.ptr_eq(inline_context_b) }, (&None, &None) => true, @@ -2141,9 +2140,9 @@ impl InlineMetrics { /// Creates a new set of inline metrics. pub fn new(space_above_baseline: Au, space_below_baseline: Au, ascent: Au) -> InlineMetrics { InlineMetrics { - space_above_baseline: space_above_baseline, - space_below_baseline: space_below_baseline, - ascent: ascent, + space_above_baseline, + space_below_baseline, + ascent, } } @@ -2185,8 +2184,8 @@ pub struct LineMetrics { impl LineMetrics { pub fn new(space_above_baseline: Au, space_below_baseline: Au) -> LineMetrics { LineMetrics { - space_above_baseline: space_above_baseline, - space_below_baseline: space_below_baseline, + space_above_baseline, + space_below_baseline, } } @@ -2213,7 +2212,7 @@ impl LineMetrics { if !fragment.is_hypothetical() { let space_above_baseline = line.metrics.space_above_baseline; return LineMetrics { - space_above_baseline: space_above_baseline, + space_above_baseline, space_below_baseline: line.bounds.size.block - space_above_baseline, }; } |