Skip to content

Commit c0afbf9

Browse files
committed
Cleanup custom lints
- Move custom lints from lib.rs/main.rs into Cargo.toml - Remove most custom lints, as this is overkill and difficult to maintain - Fix new lints from most recent Rust version
1 parent 953fbb2 commit c0afbf9

File tree

17 files changed

+112
-341
lines changed

17 files changed

+112
-341
lines changed

.github/workflows/rav1e.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
- name: Run clippy
2828
uses: clechasseur/rs-clippy-check@v3
2929
with:
30-
args: -- -D warnings --verbose -A clippy::wrong-self-convention -A clippy::many_single_char_names -A clippy::upper-case-acronyms
30+
args: -- -D warnings
3131

3232
msrv:
3333
runs-on: ubuntu-22.04

Cargo.toml

+12
Original file line numberDiff line numberDiff line change
@@ -211,3 +211,15 @@ members = [".", "ivf"]
211211

212212
[package.metadata.docs.rs]
213213
no-default-features = true
214+
215+
[lints.clippy]
216+
doc_link_with_quotes = "warn"
217+
doc_markdown = "warn"
218+
missing_errors_doc = "warn"
219+
missing_panics_doc = "warn"
220+
missing_safety_doc = "warn"
221+
comparison_chain = "allow"
222+
enum_variant_names = "allow"
223+
needless_range_loop = "allow"
224+
too_many_arguments = "allow"
225+
upper_case_acronyms = "allow"

ivf/Cargo.toml

+12
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,15 @@ homepage = "https://github.com/xiph/rav1e"
99

1010
[dependencies]
1111
bitstream-io = "2"
12+
13+
[lints.clippy]
14+
doc_link_with_quotes = "warn"
15+
doc_markdown = "warn"
16+
missing_errors_doc = "warn"
17+
missing_panics_doc = "warn"
18+
missing_safety_doc = "warn"
19+
comparison_chain = "allow"
20+
enum_variant_names = "allow"
21+
needless_range_loop = "allow"
22+
too_many_arguments = "allow"
23+
upper_case_acronyms = "allow"

ivf/src/lib.rs

+6-33
Original file line numberDiff line numberDiff line change
@@ -8,40 +8,12 @@
88
// Media Patent License 1.0 was not distributed with this source code in the
99
// PATENTS file, you can obtain it at www.aomedia.org/license/patent.
1010

11-
#![deny(bare_trait_objects)]
12-
#![allow(clippy::cast_lossless)]
13-
#![allow(clippy::cast_ptr_alignment)]
14-
#![allow(clippy::cognitive_complexity)]
15-
#![allow(clippy::needless_range_loop)]
16-
#![allow(clippy::too_many_arguments)]
17-
#![allow(clippy::verbose_bit_mask)]
18-
#![allow(clippy::unreadable_literal)]
19-
#![allow(clippy::many_single_char_names)]
20-
// Performance lints
21-
#![warn(clippy::linkedlist)]
22-
#![warn(clippy::missing_const_for_fn)]
23-
#![warn(clippy::mutex_integer)]
24-
#![warn(clippy::suboptimal_flops)]
25-
// Correctness lints
26-
#![warn(clippy::expl_impl_clone_on_copy)]
27-
#![warn(clippy::mem_forget)]
28-
#![warn(clippy::path_buf_push_overwrite)]
29-
// Clarity/formatting lints
30-
#![warn(clippy::map_flatten)]
31-
#![warn(clippy::mut_mut)]
32-
#![warn(clippy::needless_borrow)]
33-
#![warn(clippy::needless_continue)]
34-
#![warn(clippy::range_plus_one)]
35-
// Documentation lints
36-
#![warn(clippy::doc_markdown)]
37-
#![warn(clippy::missing_errors_doc)]
38-
#![warn(clippy::missing_panics_doc)]
39-
40-
/// Simple ivf muxer
41-
///
42-
use bitstream_io::{BitRead, BitReader, BitWrite, BitWriter, LittleEndian};
11+
//! Simple ivf muxer
12+
4313
use std::io;
4414

15+
use bitstream_io::{BitRead, BitReader, BitWrite, BitWriter, LittleEndian};
16+
4517
/// # Panics
4618
///
4719
/// - If header cannot be written to output file.
@@ -137,9 +109,10 @@ pub fn read_packet(r: &mut dyn io::Read) -> io::Result<Packet> {
137109

138110
#[cfg(test)]
139111
mod tests {
140-
use crate::{read_header, read_packet};
141112
use std::io::{BufReader, ErrorKind::InvalidData};
142113

114+
use crate::{read_header, read_packet};
115+
143116
#[test]
144117
fn read_invalid_headers() {
145118
// Invalid magic.

src/api/context.rs

+8-9
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,20 @@
88
// PATENTS file, you can obtain it at www.aomedia.org/license/patent.
99
#![deny(missing_docs)]
1010

11+
use std::fmt;
12+
use std::io;
13+
use std::sync::Arc;
14+
15+
use bitstream_io::*;
16+
1117
use crate::api::color::*;
1218
use crate::api::config::*;
1319
use crate::api::internal::*;
1420
use crate::api::util::*;
15-
16-
use bitstream_io::*;
17-
1821
use crate::encoder::*;
1922
use crate::frame::*;
2023
use crate::util::Pixel;
2124

22-
use std::fmt;
23-
use std::io;
24-
use std::sync::Arc;
25-
2625
/// The encoder context.
2726
///
2827
/// Contains the encoding state.
@@ -122,8 +121,8 @@ impl<T: Pixel> Context<T> {
122121
|| (self.inner.config.still_picture && self.inner.frame_count > 0)
123122
{
124123
return Err(EncoderStatus::EnoughData);
125-
// The rate control can process at most std::i32::MAX frames
126-
} else if self.inner.frame_count == std::i32::MAX as u64 - 1 {
124+
// The rate control can process at most i32::MAX frames
125+
} else if self.inner.frame_count == i32::MAX as u64 - 1 {
127126
self.inner.limit = Some(self.inner.frame_count);
128127
self.is_flushing = true;
129128
}

src/asm/x86/sad_plane.rs

+10-6
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
// Media Patent License 1.0 was not distributed with this source code in the
88
// PATENTS file, you can obtain it at www.aomedia.org/license/patent.
99

10-
use crate::cpu_features::CpuFeatureLevel;
11-
use crate::sad_plane::*;
12-
use crate::util::{Pixel, PixelType};
10+
use std::mem;
1311

1412
use v_frame::plane::Plane;
1513

16-
use std::mem;
14+
use crate::cpu_features::CpuFeatureLevel;
15+
use crate::sad_plane::*;
16+
use crate::util::{Pixel, PixelType};
1717

1818
macro_rules! decl_sad_plane_fn {
1919
($($f:ident),+) => {
@@ -46,8 +46,12 @@ pub(crate) fn sad_plane_internal<T: Pixel>(
4646
// SAFETY: Calls Assembly code.
4747
unsafe {
4848
let result = $func(
49-
mem::transmute(src.data_origin().as_ptr()),
50-
mem::transmute(dst.data_origin().as_ptr()),
49+
mem::transmute::<*const T, *const u8>(
50+
src.data_origin().as_ptr(),
51+
),
52+
mem::transmute::<*const T, *const u8>(
53+
dst.data_origin().as_ptr(),
54+
),
5155
src.cfg.stride,
5256
src.cfg.width,
5357
src.cfg.height,

src/bin/common.rs

+3
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,7 @@ pub struct ParsedCliOptions {
342342
pub metrics_enabled: MetricsEnabled,
343343
pub pass1file_name: Option<PathBuf>,
344344
pub pass2file_name: Option<PathBuf>,
345+
#[cfg(feature = "serialize")]
345346
pub save_config: Option<PathBuf>,
346347
pub photon_noise: u8,
347348
#[cfg(feature = "unstable")]
@@ -390,6 +391,7 @@ fn build_speed_long_help() -> Option<&'static str> {
390391
pub fn parse_cli() -> Result<ParsedCliOptions, CliError> {
391392
let matches = CliOptions::parse();
392393

394+
#[cfg(feature = "serialize")]
393395
let mut save_config_path = None;
394396
let mut enc = None;
395397

@@ -489,6 +491,7 @@ pub fn parse_cli() -> Result<ParsedCliOptions, CliError> {
489491
threads: matches.threads,
490492
pass1file_name: matches.first_pass.clone(),
491493
pass2file_name: matches.second_pass.clone(),
494+
#[cfg(feature = "serialize")]
492495
save_config: save_config_path,
493496
photon_noise: matches.photon_noise,
494497
force_highbitdepth: matches.high_bitdepth,

src/bin/decoder/mod.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
// PATENTS file, you can obtain it at www.aomedia.org/license/patent.
1010

1111
use rav1e::prelude::*;
12-
use std::io;
1312

1413
pub mod y4m;
1514

@@ -25,13 +24,12 @@ pub trait Decoder: Send {
2524
}
2625

2726
#[derive(Debug)]
28-
#[allow(clippy::upper_case_acronyms)]
2927
pub enum DecodeError {
3028
EOF,
3129
BadInput,
3230
UnknownColorspace,
3331
ParseError,
34-
IoError(io::Error),
32+
IoError,
3533
MemoryLimitExceeded,
3634
}
3735

src/bin/decoder/y4m.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ impl From<y4m::Error> for DecodeError {
8383
y4m::Error::BadInput => DecodeError::BadInput,
8484
y4m::Error::UnknownColorspace => DecodeError::UnknownColorspace,
8585
y4m::Error::ParseError(_) => DecodeError::ParseError,
86-
y4m::Error::IoError(e) => DecodeError::IoError(e),
86+
y4m::Error::IoError(_) => DecodeError::IoError,
8787
// Note that this error code has nothing to do with the system running out of memory,
8888
// it means the y4m decoder has exceeded its memory allocation limit.
8989
y4m::Error::OutOfMemory => DecodeError::MemoryLimitExceeded,

src/bin/rav1e-ch.rs

-74
Original file line numberDiff line numberDiff line change
@@ -7,80 +7,6 @@
77
// Media Patent License 1.0 was not distributed with this source code in the
88
// PATENTS file, you can obtain it at www.aomedia.org/license/patent.
99

10-
// Safety lints
11-
#![deny(bare_trait_objects)]
12-
#![deny(clippy::as_ptr_cast_mut)]
13-
#![deny(clippy::large_stack_arrays)]
14-
// Performance lints
15-
#![warn(clippy::inefficient_to_string)]
16-
#![warn(clippy::invalid_upcast_comparisons)]
17-
#![warn(clippy::iter_with_drain)]
18-
#![warn(clippy::linkedlist)]
19-
#![warn(clippy::mutex_integer)]
20-
#![warn(clippy::naive_bytecount)]
21-
#![warn(clippy::needless_bitwise_bool)]
22-
#![warn(clippy::needless_collect)]
23-
#![warn(clippy::or_fun_call)]
24-
#![warn(clippy::stable_sort_primitive)]
25-
#![warn(clippy::suboptimal_flops)]
26-
#![warn(clippy::trivial_regex)]
27-
#![warn(clippy::trivially_copy_pass_by_ref)]
28-
#![warn(clippy::unnecessary_join)]
29-
#![warn(clippy::unused_async)]
30-
#![warn(clippy::zero_sized_map_values)]
31-
// Correctness lints
32-
#![deny(clippy::case_sensitive_file_extension_comparisons)]
33-
#![deny(clippy::copy_iterator)]
34-
#![deny(clippy::expl_impl_clone_on_copy)]
35-
#![deny(clippy::float_cmp)]
36-
#![warn(clippy::imprecise_flops)]
37-
#![deny(clippy::manual_instant_elapsed)]
38-
#![deny(clippy::mem_forget)]
39-
#![deny(clippy::path_buf_push_overwrite)]
40-
#![deny(clippy::same_functions_in_if_condition)]
41-
#![deny(clippy::unchecked_duration_subtraction)]
42-
#![deny(clippy::unicode_not_nfc)]
43-
// Clarity/formatting lints
44-
#![warn(clippy::checked_conversions)]
45-
#![allow(clippy::comparison_chain)]
46-
#![warn(clippy::derive_partial_eq_without_eq)]
47-
#![allow(clippy::enum_variant_names)]
48-
#![warn(clippy::explicit_deref_methods)]
49-
#![warn(clippy::filter_map_next)]
50-
#![warn(clippy::flat_map_option)]
51-
#![warn(clippy::fn_params_excessive_bools)]
52-
#![warn(clippy::implicit_clone)]
53-
#![warn(clippy::iter_not_returning_iterator)]
54-
#![warn(clippy::iter_on_empty_collections)]
55-
#![warn(clippy::macro_use_imports)]
56-
#![warn(clippy::manual_clamp)]
57-
#![warn(clippy::manual_let_else)]
58-
#![warn(clippy::manual_ok_or)]
59-
#![warn(clippy::manual_string_new)]
60-
#![warn(clippy::map_flatten)]
61-
#![warn(clippy::match_bool)]
62-
#![warn(clippy::mut_mut)]
63-
#![warn(clippy::needless_borrow)]
64-
#![warn(clippy::needless_continue)]
65-
#![allow(clippy::needless_range_loop)]
66-
#![allow(clippy::too_many_arguments)]
67-
#![warn(clippy::range_minus_one)]
68-
#![warn(clippy::range_plus_one)]
69-
#![warn(clippy::ref_binding_to_reference)]
70-
#![warn(clippy::ref_option_ref)]
71-
#![warn(clippy::trait_duplication_in_bounds)]
72-
#![warn(clippy::unused_peekable)]
73-
#![warn(clippy::unused_rounding)]
74-
#![warn(clippy::unused_self)]
75-
#![allow(clippy::upper_case_acronyms)]
76-
#![warn(clippy::verbose_bit_mask)]
77-
#![warn(clippy::verbose_file_reads)]
78-
// Documentation lints
79-
#![warn(clippy::doc_link_with_quotes)]
80-
#![warn(clippy::doc_markdown)]
81-
#![warn(clippy::missing_errors_doc)]
82-
#![warn(clippy::missing_panics_doc)]
83-
8410
#[macro_use]
8511
extern crate log;
8612

src/bin/rav1e.rs

-74
Original file line numberDiff line numberDiff line change
@@ -7,80 +7,6 @@
77
// Media Patent License 1.0 was not distributed with this source code in the
88
// PATENTS file, you can obtain it at www.aomedia.org/license/patent.
99

10-
// Safety lints
11-
#![deny(bare_trait_objects)]
12-
#![deny(clippy::as_ptr_cast_mut)]
13-
#![deny(clippy::large_stack_arrays)]
14-
// Performance lints
15-
#![warn(clippy::inefficient_to_string)]
16-
#![warn(clippy::invalid_upcast_comparisons)]
17-
#![warn(clippy::iter_with_drain)]
18-
#![warn(clippy::linkedlist)]
19-
#![warn(clippy::mutex_integer)]
20-
#![warn(clippy::naive_bytecount)]
21-
#![warn(clippy::needless_bitwise_bool)]
22-
#![warn(clippy::needless_collect)]
23-
#![warn(clippy::or_fun_call)]
24-
#![warn(clippy::stable_sort_primitive)]
25-
#![warn(clippy::suboptimal_flops)]
26-
#![warn(clippy::trivial_regex)]
27-
#![warn(clippy::trivially_copy_pass_by_ref)]
28-
#![warn(clippy::unnecessary_join)]
29-
#![warn(clippy::unused_async)]
30-
#![warn(clippy::zero_sized_map_values)]
31-
// Correctness lints
32-
#![deny(clippy::case_sensitive_file_extension_comparisons)]
33-
#![deny(clippy::copy_iterator)]
34-
#![deny(clippy::expl_impl_clone_on_copy)]
35-
#![deny(clippy::float_cmp)]
36-
#![warn(clippy::imprecise_flops)]
37-
#![deny(clippy::manual_instant_elapsed)]
38-
#![deny(clippy::mem_forget)]
39-
#![deny(clippy::path_buf_push_overwrite)]
40-
#![deny(clippy::same_functions_in_if_condition)]
41-
#![deny(clippy::unchecked_duration_subtraction)]
42-
#![deny(clippy::unicode_not_nfc)]
43-
// Clarity/formatting lints
44-
#![warn(clippy::checked_conversions)]
45-
#![allow(clippy::comparison_chain)]
46-
#![warn(clippy::derive_partial_eq_without_eq)]
47-
#![allow(clippy::enum_variant_names)]
48-
#![warn(clippy::explicit_deref_methods)]
49-
#![warn(clippy::filter_map_next)]
50-
#![warn(clippy::flat_map_option)]
51-
#![warn(clippy::fn_params_excessive_bools)]
52-
#![warn(clippy::implicit_clone)]
53-
#![warn(clippy::iter_not_returning_iterator)]
54-
#![warn(clippy::iter_on_empty_collections)]
55-
#![warn(clippy::macro_use_imports)]
56-
#![warn(clippy::manual_clamp)]
57-
#![warn(clippy::manual_let_else)]
58-
#![warn(clippy::manual_ok_or)]
59-
#![warn(clippy::manual_string_new)]
60-
#![warn(clippy::map_flatten)]
61-
#![warn(clippy::match_bool)]
62-
#![warn(clippy::mut_mut)]
63-
#![warn(clippy::needless_borrow)]
64-
#![warn(clippy::needless_continue)]
65-
#![allow(clippy::needless_range_loop)]
66-
#![allow(clippy::too_many_arguments)]
67-
#![warn(clippy::range_minus_one)]
68-
#![warn(clippy::range_plus_one)]
69-
#![warn(clippy::ref_binding_to_reference)]
70-
#![warn(clippy::ref_option_ref)]
71-
#![warn(clippy::trait_duplication_in_bounds)]
72-
#![warn(clippy::unused_peekable)]
73-
#![warn(clippy::unused_rounding)]
74-
#![warn(clippy::unused_self)]
75-
#![allow(clippy::upper_case_acronyms)]
76-
#![warn(clippy::verbose_bit_mask)]
77-
#![warn(clippy::verbose_file_reads)]
78-
// Documentation lints
79-
#![warn(clippy::doc_link_with_quotes)]
80-
#![warn(clippy::doc_markdown)]
81-
#![warn(clippy::missing_errors_doc)]
82-
#![warn(clippy::missing_panics_doc)]
83-
8410
#[macro_use]
8511
extern crate log;
8612

0 commit comments

Comments
 (0)