diff options
author | Pi-Cla <pirateclip@protonmail.com> | 2024-05-02 14:02:21 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-02 20:02:21 +0000 |
commit | 160c7c0b0f061afa1277fa56cdd1d898379a8223 (patch) | |
tree | 3ef1bf1092d13912ec702cb507fe6ebf2ec81702 | |
parent | ca064eaa518f407988751ce51834eff3d65b681c (diff) | |
download | servo-160c7c0b0f061afa1277fa56cdd1d898379a8223.tar.gz servo-160c7c0b0f061afa1277fa56cdd1d898379a8223.zip |
Fix some clippy warnings in `components/gfx` and `components/script` (#32215)
* clippy: Squish warnings and errors in gfx
warning: redundant closure (gfx/font.rs:415:18)
warning: useless conversion to the same type (gfx/font.rs:534:9)
warning: the following explicit lifetimes could be elided: 'a (gfx/font.rs:619:16)
error: this loop never actually loops (gfx/font_cache_thread.rs:112:9)
warning: this expression creates a reference which is immediately dereferenced by the compiler (gfx/font_cache_thread.rs:229:51)
warning: redundant closure (gfx/font_cache_thread.rs:551:18)
3 instances of:
warning: casting integer literal to `f64` is unnecessary (gfx/platform/freetype/font_list.rs:271-273)
* clippy: methods called `from_*` usually take no `self`
It reports that by standard convention, from_* methods should not take any `&self` parameter
* clippy: you should consider adding a `Default` implementation
It reports that public types with a pub fn new() -> Self should have a Default implementation since they can be constructed without arguments
* clippy: casting to the same type is unnecessary (`f32` -> `f32`)
* clippy: use of `unwrap_or_else` to construct default value
* clippy: methods called `is_*` usually take `self` by mutable reference or `self` by reference or no `self`
* clippy: manual `!RangeInclusive::contains` implementation
contains expresses the intent better and has less failure modes (such as fencepost errors or using || instead of &&)
* clippy: this function has an empty `#[must_use]` attribute, but returns a type already marked as `#[must_use]`
* clippy: Fix some new warnings
warning: this `if` statement can be collapsed (gfx/font.rs:468:130)
warning: this lifetime isn't used in the impl (gfx/platform/freetype/font.rs:341:6)
warning: field assignment outside of initializer for an instance created with Default::default() (compositor.rs:881:17)
-rw-r--r-- | components/compositing/compositor.rs | 6 | ||||
-rw-r--r-- | components/gfx/font.rs | 15 | ||||
-rw-r--r-- | components/gfx/font_cache_thread.rs | 9 | ||||
-rw-r--r-- | components/gfx/platform/freetype/font.rs | 2 | ||||
-rw-r--r-- | components/gfx/platform/freetype/font_list.rs | 6 | ||||
-rw-r--r-- | components/script/dom/abstractworkerglobalscope.rs | 16 | ||||
-rw-r--r-- | components/script/dom/bindings/record.rs | 6 | ||||
-rw-r--r-- | components/script/dom/bluetooth.rs | 6 | ||||
-rw-r--r-- | components/script/dom/dedicatedworkerglobalscope.rs | 6 | ||||
-rw-r--r-- | components/script/dom/document.rs | 4 | ||||
-rw-r--r-- | components/script/dom/elementinternals.rs | 2 | ||||
-rw-r--r-- | components/script/dom/identityhub.rs | 6 | ||||
-rw-r--r-- | components/script/dom/node.rs | 6 | ||||
-rw-r--r-- | components/script/dom/offlineaudiocontext.rs | 3 | ||||
-rw-r--r-- | components/script/dom/serviceworkerglobalscope.rs | 6 | ||||
-rw-r--r-- | components/script/dom/servoparser/async_html.rs | 1 | ||||
-rw-r--r-- | components/script/dom/servoparser/html.rs | 1 | ||||
-rw-r--r-- | components/script/dom/servoparser/mod.rs | 1 | ||||
-rw-r--r-- | components/script/dom/servoparser/xml.rs | 1 |
19 files changed, 56 insertions, 47 deletions
diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index 50b598c86e5..9e55648f5eb 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -877,8 +877,10 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> { let key = self.webrender_api.generate_font_instance_key(); let mut transaction = Transaction::new(); - let mut font_instance_options = FontInstanceOptions::default(); - font_instance_options.flags = flags; + let font_instance_options = FontInstanceOptions { + flags, + ..Default::default() + }; transaction.add_font_instance( key, font_key, diff --git a/components/gfx/font.rs b/components/gfx/font.rs index de42f6c321c..fe899a4ea82 100644 --- a/components/gfx/font.rs +++ b/components/gfx/font.rs @@ -443,7 +443,7 @@ impl FontGroup { .font_family .families .iter() - .map(|family| FontGroupFamily::new(family)) + .map(FontGroupFamily::new) .collect(); FontGroup { @@ -465,10 +465,8 @@ impl FontGroup { let should_look_for_small_caps = self.descriptor.variant == font_variant_caps::T::SmallCaps && codepoint.is_ascii_lowercase(); let font_or_synthesized_small_caps = |font: FontRef| { - if should_look_for_small_caps { - if font.synthesized_small_caps.is_some() { - return font.synthesized_small_caps.clone(); - } + if should_look_for_small_caps && font.synthesized_small_caps.is_some() { + return font.synthesized_small_caps.clone(); } Some(font) }; @@ -565,7 +563,6 @@ impl FontGroup { .chain(fallback_font_families(codepoint).into_iter().map(|family| { FontFamilyDescriptor::new(FontFamilyName::from(family), FontSearchScope::Local) })) - .into_iter() .filter_map(|family_descriptor| { FontGroupFamily { family_descriptor, @@ -646,11 +643,11 @@ impl FontGroupFamily { .next() } - fn members<'a, S: FontSource>( - &'a mut self, + fn members<S: FontSource>( + &mut self, font_descriptor: &FontDescriptor, font_context: &FontContext<S>, - ) -> impl Iterator<Item = &mut FontGroupFamilyMember> + 'a { + ) -> impl Iterator<Item = &mut FontGroupFamilyMember> { let family_descriptor = &self.family_descriptor; let members = self.members.get_or_insert_with(|| { font_context diff --git a/components/gfx/font_cache_thread.rs b/components/gfx/font_cache_thread.rs index 3c1790edb6f..22cd5edee47 100644 --- a/components/gfx/font_cache_thread.rs +++ b/components/gfx/font_cache_thread.rs @@ -108,7 +108,7 @@ impl FontTemplates { // If a request is made for a font family that exists, // pick the first valid font in the family if we failed // to find an exact match for the descriptor. - for template in &mut self.templates.iter() { + if let Some(template) = self.templates.first() { return vec![template.clone()]; } @@ -231,7 +231,7 @@ impl FontCache { .font_data .entry(identifier) .or_insert_with(|| font_template.data()); - let _ = bytes_sender.send(&data); + let _ = bytes_sender.send(data); } }, Command::GetFontInstance(identifier, pt_size, flags, result) => { @@ -557,10 +557,7 @@ impl From<&FontFaceRuleData> for CSSFontFaceDescriptors { ), } } - let style = rule_data - .style - .as_ref() - .map(|style| style_to_computed(style)); + let style = rule_data.style.as_ref().map(style_to_computed); let unicode_range = rule_data .unicode_range .as_ref() diff --git a/components/gfx/platform/freetype/font.rs b/components/gfx/platform/freetype/font.rs index f68e370e6d3..c6c7f802c3b 100644 --- a/components/gfx/platform/freetype/font.rs +++ b/components/gfx/platform/freetype/font.rs @@ -338,7 +338,7 @@ impl PlatformFontMethods for PlatformFont { } } -impl<'a> PlatformFont { +impl PlatformFont { fn set_char_size(face: FT_Face, pt_size: Au) -> Result<(), &'static str> { let char_size = pt_size.to_f64_px() * 64.0 + 0.5; diff --git a/components/gfx/platform/freetype/font_list.rs b/components/gfx/platform/freetype/font_list.rs index 65a6457b25d..a958248f8c5 100644 --- a/components/gfx/platform/freetype/font_list.rs +++ b/components/gfx/platform/freetype/font_list.rs @@ -268,9 +268,9 @@ fn font_weight_from_fontconfig_pattern(pattern: *mut FcPattern) -> Option<FontWe let mapping = [ (0., 0.), - (FC_WEIGHT_REGULAR as f64, 400 as f64), - (FC_WEIGHT_BOLD as f64, 700 as f64), - (FC_WEIGHT_EXTRABLACK as f64, 1000 as f64), + (FC_WEIGHT_REGULAR as f64, 400_f64), + (FC_WEIGHT_BOLD as f64, 700_f64), + (FC_WEIGHT_EXTRABLACK as f64, 1000_f64), ]; let mapped_weight = map_platform_values_to_style_values(&mapping, weight as f64); diff --git a/components/script/dom/abstractworkerglobalscope.rs b/components/script/dom/abstractworkerglobalscope.rs index 835438c5f23..50844953a21 100644 --- a/components/script/dom/abstractworkerglobalscope.rs +++ b/components/script/dom/abstractworkerglobalscope.rs @@ -91,9 +91,9 @@ pub trait WorkerEventLoopMethods { fn task_queue(&self) -> &TaskQueue<Self::WorkerMsg>; fn handle_event(&self, event: Self::Event) -> bool; fn handle_worker_post_event(&self, worker: &TrustedWorkerAddress) -> Option<AutoWorkerReset>; - fn from_control_msg(&self, msg: Self::ControlMsg) -> Self::Event; - fn from_worker_msg(&self, msg: Self::WorkerMsg) -> Self::Event; - fn from_devtools_msg(&self, msg: DevtoolScriptControlMsg) -> Self::Event; + fn from_control_msg(msg: Self::ControlMsg) -> Self::Event; + fn from_worker_msg(msg: Self::WorkerMsg) -> Self::Event; + fn from_devtools_msg(msg: DevtoolScriptControlMsg) -> Self::Event; fn control_receiver(&self) -> &Receiver<Self::ControlMsg>; } @@ -114,13 +114,13 @@ pub fn run_worker_event_loop<T, WorkerMsg, Event>( .map(|_| scope.from_devtools_receiver()); let task_queue = worker_scope.task_queue(); let event = select! { - recv(worker_scope.control_receiver()) -> msg => worker_scope.from_control_msg(msg.unwrap()), + recv(worker_scope.control_receiver()) -> msg => T::from_control_msg(msg.unwrap()), recv(task_queue.select()) -> msg => { task_queue.take_tasks(msg.unwrap()); - worker_scope.from_worker_msg(task_queue.recv().unwrap()) + T::from_worker_msg(task_queue.recv().unwrap()) }, recv(devtools_port.unwrap_or(&crossbeam_channel::never())) -> msg => - worker_scope.from_devtools_msg(msg.unwrap()), + T::from_devtools_msg(msg.unwrap()), }; let mut sequential = vec![]; sequential.push(event); @@ -136,9 +136,9 @@ pub fn run_worker_event_loop<T, WorkerMsg, Event>( Err(_) => match devtools_port.map(|port| port.try_recv()) { None => {}, Some(Err(_)) => break, - Some(Ok(ev)) => sequential.push(worker_scope.from_devtools_msg(ev)), + Some(Ok(ev)) => sequential.push(T::from_devtools_msg(ev)), }, - Ok(ev) => sequential.push(worker_scope.from_worker_msg(ev)), + Ok(ev) => sequential.push(T::from_worker_msg(ev)), } } // Step 3 diff --git a/components/script/dom/bindings/record.rs b/components/script/dom/bindings/record.rs index 33377b0dd09..c437b8955f7 100644 --- a/components/script/dom/bindings/record.rs +++ b/components/script/dom/bindings/record.rs @@ -195,3 +195,9 @@ where rval.set(ObjectValue(js_object.handle().get())); } } + +impl<K: RecordKey, V> Default for Record<K, V> { + fn default() -> Self { + Self::new() + } +} diff --git a/components/script/dom/bluetooth.rs b/components/script/dom/bluetooth.rs index 77ca187a671..7ae54893064 100644 --- a/components/script/dom/bluetooth.rs +++ b/components/script/dom/bluetooth.rs @@ -98,6 +98,12 @@ impl BluetoothExtraPermissionData { } } +impl Default for BluetoothExtraPermissionData { + fn default() -> Self { + Self::new() + } +} + struct BluetoothContext<T: AsyncBluetoothListener + DomObject> { promise: Option<TrustedPromise>, receiver: Trusted<T>, diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs index 7e1c9e1abc3..b8647c305ce 100644 --- a/components/script/dom/dedicatedworkerglobalscope.rs +++ b/components/script/dom/dedicatedworkerglobalscope.rs @@ -219,15 +219,15 @@ impl WorkerEventLoopMethods for DedicatedWorkerGlobalScope { Some(ar) } - fn from_control_msg(&self, msg: DedicatedWorkerControlMsg) -> MixedMessage { + fn from_control_msg(msg: DedicatedWorkerControlMsg) -> MixedMessage { MixedMessage::Control(msg) } - fn from_worker_msg(&self, msg: DedicatedWorkerScriptMsg) -> MixedMessage { + fn from_worker_msg(msg: DedicatedWorkerScriptMsg) -> MixedMessage { MixedMessage::Worker(msg) } - fn from_devtools_msg(&self, msg: DevtoolScriptControlMsg) -> MixedMessage { + fn from_devtools_msg(msg: DevtoolScriptControlMsg) -> MixedMessage { MixedMessage::Devtools(msg) } diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 85e1d53e95d..c67780115ef 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -994,8 +994,8 @@ impl Document { // (like Acid2). let device_pixel_ratio = self.window.device_pixel_ratio().get(); ( - rect.origin.x.to_nearest_pixel(device_pixel_ratio) as f32, - rect.origin.y.to_nearest_pixel(device_pixel_ratio) as f32, + rect.origin.x.to_nearest_pixel(device_pixel_ratio), + rect.origin.y.to_nearest_pixel(device_pixel_ratio), ) }) .or_else(|| { diff --git a/components/script/dom/elementinternals.rs b/components/script/dom/elementinternals.rs index 716bddd94b0..3956b1cccc8 100644 --- a/components/script/dom/elementinternals.rs +++ b/components/script/dom/elementinternals.rs @@ -238,7 +238,7 @@ impl ElementInternalsMethods for ElementInternals { if bits.is_empty() { self.set_validation_message(DOMString::new()); } else { - self.set_validation_message(message.unwrap_or_else(DOMString::new)); + self.set_validation_message(message.unwrap_or_default()); } // Step 6: If element's customError validity flag is true, then set element's custom validity error diff --git a/components/script/dom/identityhub.rs b/components/script/dom/identityhub.rs index 1fe8051f44c..976637dac51 100644 --- a/components/script/dom/identityhub.rs +++ b/components/script/dom/identityhub.rs @@ -218,3 +218,9 @@ impl Identities { self.select(id.backend()).render_bundles.free(id); } } + +impl Default for Identities { + fn default() -> Self { + Self::new() + } +} diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index b3b7fca3904..19178806944 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1325,7 +1325,7 @@ pub trait LayoutNodeHelpers<'dom> { fn owner_doc_for_layout(self) -> LayoutDom<'dom, Document>; fn containing_shadow_root_for_layout(self) -> Option<LayoutDom<'dom, ShadowRoot>>; - fn is_element_for_layout(self) -> bool; + fn is_element_for_layout(&self) -> bool; unsafe fn get_flag(self, flag: NodeFlags) -> bool; unsafe fn set_flag(self, flag: NodeFlags, value: bool); @@ -1387,8 +1387,8 @@ impl<'dom> LayoutNodeHelpers<'dom> for LayoutDom<'dom, Node> { } #[inline] - fn is_element_for_layout(self) -> bool { - self.is::<Element>() + fn is_element_for_layout(&self) -> bool { + (*self).is::<Element>() } #[inline] diff --git a/components/script/dom/offlineaudiocontext.rs b/components/script/dom/offlineaudiocontext.rs index 072f19d80da..fcdffddb449 100644 --- a/components/script/dom/offlineaudiocontext.rs +++ b/components/script/dom/offlineaudiocontext.rs @@ -81,8 +81,7 @@ impl OfflineAudioContext { if channel_count > MAX_CHANNEL_COUNT || channel_count == 0 || length == 0 || - sample_rate < MIN_SAMPLE_RATE || - sample_rate > MAX_SAMPLE_RATE + !(MIN_SAMPLE_RATE..=MAX_SAMPLE_RATE).contains(&sample_rate) { return Err(Error::NotSupported); } diff --git a/components/script/dom/serviceworkerglobalscope.rs b/components/script/dom/serviceworkerglobalscope.rs index 36b2ccd9504..8bede70297e 100644 --- a/components/script/dom/serviceworkerglobalscope.rs +++ b/components/script/dom/serviceworkerglobalscope.rs @@ -201,15 +201,15 @@ impl WorkerEventLoopMethods for ServiceWorkerGlobalScope { None } - fn from_control_msg(&self, msg: ServiceWorkerControlMsg) -> MixedMessage { + fn from_control_msg(msg: ServiceWorkerControlMsg) -> MixedMessage { MixedMessage::Control(msg) } - fn from_worker_msg(&self, msg: ServiceWorkerScriptMsg) -> MixedMessage { + fn from_worker_msg(msg: ServiceWorkerScriptMsg) -> MixedMessage { MixedMessage::ServiceWorker(msg) } - fn from_devtools_msg(&self, msg: DevtoolScriptControlMsg) -> MixedMessage { + fn from_devtools_msg(msg: DevtoolScriptControlMsg) -> MixedMessage { MixedMessage::Devtools(msg) } diff --git a/components/script/dom/servoparser/async_html.rs b/components/script/dom/servoparser/async_html.rs index 95081d753eb..7200b9ed5c6 100644 --- a/components/script/dom/servoparser/async_html.rs +++ b/components/script/dom/servoparser/async_html.rs @@ -283,7 +283,6 @@ impl Tokenizer { tokenizer } - #[must_use] pub fn feed(&mut self, input: &mut BufferQueue) -> TokenizerResult<DomRoot<HTMLScriptElement>> { let mut send_tendrils = VecDeque::new(); while let Some(str) = input.pop_front() { diff --git a/components/script/dom/servoparser/html.rs b/components/script/dom/servoparser/html.rs index 11b26869963..ade1fdf4613 100644 --- a/components/script/dom/servoparser/html.rs +++ b/components/script/dom/servoparser/html.rs @@ -78,7 +78,6 @@ impl Tokenizer { Tokenizer { inner } } - #[must_use] pub fn feed(&mut self, input: &mut BufferQueue) -> TokenizerResult<DomRoot<HTMLScriptElement>> { match self.inner.feed(input) { TokenizerResult::Done => TokenizerResult::Done, diff --git a/components/script/dom/servoparser/mod.rs b/components/script/dom/servoparser/mod.rs index 3d8fbc347b4..507e2a2cb99 100644 --- a/components/script/dom/servoparser/mod.rs +++ b/components/script/dom/servoparser/mod.rs @@ -698,7 +698,6 @@ enum Tokenizer { } impl Tokenizer { - #[must_use] fn feed(&mut self, input: &mut BufferQueue) -> TokenizerResult<DomRoot<HTMLScriptElement>> { match *self { Tokenizer::Html(ref mut tokenizer) => tokenizer.feed(input), diff --git a/components/script/dom/servoparser/xml.rs b/components/script/dom/servoparser/xml.rs index d07d6bc6afb..26b43910100 100644 --- a/components/script/dom/servoparser/xml.rs +++ b/components/script/dom/servoparser/xml.rs @@ -41,7 +41,6 @@ impl Tokenizer { Tokenizer { inner: tok } } - #[must_use] pub fn feed(&mut self, input: &mut BufferQueue) -> TokenizerResult<DomRoot<HTMLScriptElement>> { self.inner.run(input); match self.inner.sink.sink.script.take() { |