bevy_math: Apply #[deny(clippy::allow_attributes, clippy::allow_attributes_without_reason)]
(#17091)
# Objective We want to deny the following lints: * `clippy::allow_attributes` - Because there's no reason to `#[allow(...)]` an attribute if it wouldn't lint against anything; you should always use `#[expect(...)]` * `clippy::allow_attributes_without_reason` - Because documenting the reason for allowing/expecting a lint is always good ## Solution Set the `clippy::allow_attributes` and `clippy::allow_attributes_without_reason` lints to `deny`, and bring `bevy_math` in line with the new restrictions. No code changes have been made - except if a lint that was previously `allow(...)`'d could be removed via small code changes. For example, `unused_variables` can be handled by adding a `_` to the beginning of a field's name. ## Testing I ran `cargo clippy`, and received no errors. --------- Co-authored-by: IQuick 143 <IQuick143cz@gmail.com>
This commit is contained in:
parent
00533a6d1c
commit
e2248afb3e
@ -51,10 +51,12 @@ fn arc_bounding_points(arc: Arc2d, rotation: impl Into<Rot2>) -> SmallVec<[Vec2;
|
|||||||
// If inverted = true, then right_angle > left_angle, so we are looking for an angle that is not between them.
|
// If inverted = true, then right_angle > left_angle, so we are looking for an angle that is not between them.
|
||||||
// There's a chance that this condition fails due to rounding error, if the endpoint angle is juuuust shy of the axis.
|
// There's a chance that this condition fails due to rounding error, if the endpoint angle is juuuust shy of the axis.
|
||||||
// But in that case, the endpoint itself is within rounding error of the axis and will define the bounds just fine.
|
// But in that case, the endpoint itself is within rounding error of the axis and will define the bounds just fine.
|
||||||
#[allow(clippy::nonminimal_bool)]
|
let angle_within_parameters = if inverted {
|
||||||
if !inverted && angle >= right_angle && angle <= left_angle
|
angle >= right_angle || angle <= left_angle
|
||||||
|| inverted && (angle >= right_angle || angle <= left_angle)
|
} else {
|
||||||
{
|
angle >= right_angle && angle <= left_angle
|
||||||
|
};
|
||||||
|
if angle_within_parameters {
|
||||||
bounds.push(extremum * arc.radius);
|
bounds.push(extremum * arc.radius);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -475,7 +477,6 @@ mod tests {
|
|||||||
// Arcs and circular segments have the same bounding shapes so they share test cases.
|
// Arcs and circular segments have the same bounding shapes so they share test cases.
|
||||||
fn arc_and_segment() {
|
fn arc_and_segment() {
|
||||||
struct TestCase {
|
struct TestCase {
|
||||||
#[allow(unused)]
|
|
||||||
name: &'static str,
|
name: &'static str,
|
||||||
arc: Arc2d,
|
arc: Arc2d,
|
||||||
translation: Vec2,
|
translation: Vec2,
|
||||||
@ -629,7 +630,6 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn circular_sector() {
|
fn circular_sector() {
|
||||||
struct TestCase {
|
struct TestCase {
|
||||||
#[allow(unused)]
|
|
||||||
name: &'static str,
|
name: &'static str,
|
||||||
arc: Arc2d,
|
arc: Arc2d,
|
||||||
translation: Vec2,
|
translation: Vec2,
|
||||||
|
@ -995,7 +995,6 @@ impl<P: VectorSpace> CubicSegment<P> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Calculate polynomial coefficients for the cubic curve using a characteristic matrix.
|
/// Calculate polynomial coefficients for the cubic curve using a characteristic matrix.
|
||||||
#[allow(unused)]
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn coefficients(p: [P; 4], char_matrix: [[f32; 4]; 4]) -> Self {
|
fn coefficients(p: [P; 4], char_matrix: [[f32; 4]; 4]) -> Self {
|
||||||
let [c0, c1, c2, c3] = char_matrix;
|
let [c0, c1, c2, c3] = char_matrix;
|
||||||
@ -1376,7 +1375,6 @@ impl<P: VectorSpace> RationalSegment<P> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Calculate polynomial coefficients for the cubic polynomials using a characteristic matrix.
|
/// Calculate polynomial coefficients for the cubic polynomials using a characteristic matrix.
|
||||||
#[allow(unused)]
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn coefficients(
|
fn coefficients(
|
||||||
control_points: [P; 4],
|
control_points: [P; 4],
|
||||||
|
@ -471,9 +471,15 @@ mod easing_functions {
|
|||||||
// with blatantly more digits than needed (since rust will round them to the
|
// with blatantly more digits than needed (since rust will round them to the
|
||||||
// nearest representable value anyway) rather than make it seem like the
|
// nearest representable value anyway) rather than make it seem like the
|
||||||
// truncated value is somehow carefully chosen.
|
// truncated value is somehow carefully chosen.
|
||||||
#[allow(clippy::excessive_precision)]
|
#[expect(
|
||||||
|
clippy::excessive_precision,
|
||||||
|
reason = "This is deliberately more precise than an f32 will allow, as truncating the value might imply that the value is carefully chosen."
|
||||||
|
)]
|
||||||
const LOG2_1023: f32 = 9.998590429745328646459226;
|
const LOG2_1023: f32 = 9.998590429745328646459226;
|
||||||
#[allow(clippy::excessive_precision)]
|
#[expect(
|
||||||
|
clippy::excessive_precision,
|
||||||
|
reason = "This is deliberately more precise than an f32 will allow, as truncating the value might imply that the value is carefully chosen."
|
||||||
|
)]
|
||||||
const FRAC_1_1023: f32 = 0.00097751710654936461388074291;
|
const FRAC_1_1023: f32 = 0.00097751710654936461388074291;
|
||||||
#[inline]
|
#[inline]
|
||||||
pub(crate) fn exponential_in(t: f32) -> f32 {
|
pub(crate) fn exponential_in(t: f32) -> f32 {
|
||||||
|
@ -47,7 +47,10 @@ impl PartialOrd for FloatOrd {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Ord for FloatOrd {
|
impl Ord for FloatOrd {
|
||||||
#[allow(clippy::comparison_chain)]
|
#[expect(
|
||||||
|
clippy::comparison_chain,
|
||||||
|
reason = "This can't be rewritten with `match` and `cmp`, as this is `cmp` itself."
|
||||||
|
)]
|
||||||
fn cmp(&self, other: &Self) -> Ordering {
|
fn cmp(&self, other: &Self) -> Ordering {
|
||||||
if self > other {
|
if self > other {
|
||||||
Ordering::Greater
|
Ordering::Greater
|
||||||
@ -124,7 +127,10 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::nonminimal_bool)]
|
#[expect(
|
||||||
|
clippy::nonminimal_bool,
|
||||||
|
reason = "This tests that all operators work as they should, and in the process requires some non-simplified boolean expressions."
|
||||||
|
)]
|
||||||
fn float_ord_cmp_operators() {
|
fn float_ord_cmp_operators() {
|
||||||
assert!(!(NAN < NAN));
|
assert!(!(NAN < NAN));
|
||||||
assert!(NAN < ZERO);
|
assert!(NAN < ZERO);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#![forbid(unsafe_code)]
|
#![forbid(unsafe_code)]
|
||||||
|
#![deny(clippy::allow_attributes, clippy::allow_attributes_without_reason)]
|
||||||
#![cfg_attr(
|
#![cfg_attr(
|
||||||
any(docsrs, docsrs_dep),
|
any(docsrs, docsrs_dep),
|
||||||
expect(
|
expect(
|
||||||
|
@ -8,9 +8,6 @@
|
|||||||
//! It also provides `no_std` compatible alternatives to certain floating-point
|
//! It also provides `no_std` compatible alternatives to certain floating-point
|
||||||
//! operations which are not provided in the [`core`] library.
|
//! operations which are not provided in the [`core`] library.
|
||||||
|
|
||||||
#![allow(dead_code)]
|
|
||||||
#![allow(clippy::disallowed_methods)]
|
|
||||||
|
|
||||||
// Note: There are some Rust methods with unspecified precision without a `libm`
|
// Note: There are some Rust methods with unspecified precision without a `libm`
|
||||||
// equivalent:
|
// equivalent:
|
||||||
// - `f32::powi` (integer powers)
|
// - `f32::powi` (integer powers)
|
||||||
@ -23,6 +20,10 @@
|
|||||||
// - `f32::ln_gamma`
|
// - `f32::ln_gamma`
|
||||||
|
|
||||||
#[cfg(not(feature = "libm"))]
|
#[cfg(not(feature = "libm"))]
|
||||||
|
#[expect(
|
||||||
|
clippy::disallowed_methods,
|
||||||
|
reason = "Many of the disallowed methods are disallowed to force code to use the feature-conditional re-exports from this module, but this module itself is exempt from that rule."
|
||||||
|
)]
|
||||||
mod std_ops {
|
mod std_ops {
|
||||||
|
|
||||||
/// Raises a number to a floating point power.
|
/// Raises a number to a floating point power.
|
||||||
@ -519,6 +520,10 @@ mod libm_ops_for_no_std {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "std")]
|
#[cfg(feature = "std")]
|
||||||
|
#[expect(
|
||||||
|
clippy::disallowed_methods,
|
||||||
|
reason = "Many of the disallowed methods are disallowed to force code to use the feature-conditional re-exports from this module, but this module itself is exempt from that rule."
|
||||||
|
)]
|
||||||
mod std_ops_for_no_std {
|
mod std_ops_for_no_std {
|
||||||
//! Provides standardized names for [`f32`] operations which may not be
|
//! Provides standardized names for [`f32`] operations which may not be
|
||||||
//! supported on `no_std` platforms.
|
//! supported on `no_std` platforms.
|
||||||
|
Loading…
Reference in New Issue
Block a user