This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new e914935660 chore: enforce clippy::allow_attributes for 7 crates
(#19133)
e914935660 is described below
commit e914935660875bc415887ade3fea1f5e59bed5e1
Author: chakkk309 <[email protected]>
AuthorDate: Thu Dec 11 22:30:18 2025 +0800
chore: enforce clippy::allow_attributes for 7 crates (#19133)
## Which issue does this PR close?
Part of https://github.com/apache/datafusion/issues/18881
## Rationale for this change
Implement clippy::allow_attributes lint for 7 crates
## What changes are included in this PR?
Core crates modified:
- datafusion-doc
- datafusion-execution
- datafusion-expr
- datafusion-expr-common
- datafusion-catalog-listing
- datafusion-core
- datafusion-proto-common
## Are these changes tested?
yes
## Are there any user-facing changes?
No
---------
Co-authored-by: Andrew Lamb <[email protected]>
Co-authored-by: Jefffrey <[email protected]>
---
datafusion/catalog-listing/src/mod.rs | 1 +
datafusion/core/src/lib.rs | 3 +++
datafusion/doc/src/lib.rs | 1 +
datafusion/execution/src/disk_manager.rs | 7 ++++---
datafusion/execution/src/lib.rs | 1 +
datafusion/execution/src/object_store.rs | 2 +-
datafusion/execution/src/runtime_env.rs | 10 +++++-----
datafusion/expr-common/src/dyn_eq.rs | 4 ++--
datafusion/expr-common/src/lib.rs | 1 +
datafusion/expr/src/expr.rs | 2 +-
datafusion/expr/src/lib.rs | 1 +
datafusion/expr/src/logical_plan/plan.rs | 1 +
datafusion/expr/src/ptr_eq.rs | 2 +-
datafusion/expr/src/udf.rs | 4 ++--
datafusion/expr/src/udf_eq.rs | 2 +-
datafusion/proto-common/src/from_proto/mod.rs | 2 --
datafusion/proto-common/src/generated/mod.rs | 1 +
datafusion/proto-common/src/lib.rs | 1 +
18 files changed, 28 insertions(+), 18 deletions(-)
diff --git a/datafusion/catalog-listing/src/mod.rs
b/datafusion/catalog-listing/src/mod.rs
index bb4ff7bd02..dfb193317b 100644
--- a/datafusion/catalog-listing/src/mod.rs
+++ b/datafusion/catalog-listing/src/mod.rs
@@ -15,6 +15,7 @@
// specific language governing permissions and limitations
// under the License.
+#![deny(clippy::allow_attributes)]
#![cfg_attr(test, allow(clippy::needless_pass_by_value))]
#![doc(
html_logo_url =
"https://raw.githubusercontent.com/apache/datafusion/19fe44cf2f30cbdd63d4a4f52c74055163c6cc38/docs/logos/standalone_logo/logo_original.svg",
diff --git a/datafusion/core/src/lib.rs b/datafusion/core/src/lib.rs
index da8ffe298b..e83934a8e2 100644
--- a/datafusion/core/src/lib.rs
+++ b/datafusion/core/src/lib.rs
@@ -15,6 +15,7 @@
// specific language governing permissions and limitations
// under the License.
+#![deny(clippy::allow_attributes)]
#![doc(
html_logo_url =
"https://raw.githubusercontent.com/apache/datafusion/19fe44cf2f30cbdd63d4a4f52c74055163c6cc38/docs/logos/standalone_logo/logo_original.svg",
html_favicon_url =
"https://raw.githubusercontent.com/apache/datafusion/19fe44cf2f30cbdd63d4a4f52c74055163c6cc38/docs/logos/standalone_logo/logo_original.svg"
@@ -35,6 +36,8 @@
)
)]
#![warn(missing_docs, clippy::needless_borrow)]
+// Use `allow` instead of `expect` for test configuration to explicitly
+// disable the lint for all test code rather than expecting violations
#![cfg_attr(test, allow(clippy::needless_pass_by_value))]
//! [DataFusion] is an extensible query engine written in Rust that
diff --git a/datafusion/doc/src/lib.rs b/datafusion/doc/src/lib.rs
index 591a5a62f3..836cb9345b 100644
--- a/datafusion/doc/src/lib.rs
+++ b/datafusion/doc/src/lib.rs
@@ -15,6 +15,7 @@
// specific language governing permissions and limitations
// under the License.
+#![deny(clippy::allow_attributes)]
#![cfg_attr(test, allow(clippy::needless_pass_by_value))]
#![doc(
html_logo_url =
"https://raw.githubusercontent.com/apache/datafusion/19fe44cf2f30cbdd63d4a4f52c74055163c6cc38/docs/logos/standalone_logo/logo_original.svg",
diff --git a/datafusion/execution/src/disk_manager.rs
b/datafusion/execution/src/disk_manager.rs
index 1272e6c5f8..cb87053d8d 100644
--- a/datafusion/execution/src/disk_manager.rs
+++ b/datafusion/execution/src/disk_manager.rs
@@ -115,9 +115,10 @@ pub enum DiskManagerMode {
}
/// Configuration for temporary disk access
-#[allow(deprecated)]
#[deprecated(since = "48.0.0", note = "Use DiskManagerBuilder instead")]
#[derive(Debug, Clone, Default)]
+#[allow(clippy::allow_attributes)]
+#[allow(deprecated)]
pub enum DiskManagerConfig {
/// Use the provided [DiskManager] instance
Existing(Arc<DiskManager>),
@@ -135,7 +136,7 @@ pub enum DiskManagerConfig {
Disabled,
}
-#[allow(deprecated)]
+#[expect(deprecated)]
impl DiskManagerConfig {
/// Create temporary files in a temporary directory chosen by the OS
pub fn new() -> Self {
@@ -177,7 +178,7 @@ impl DiskManager {
}
/// Create a DiskManager given the configuration
- #[allow(deprecated)]
+ #[expect(deprecated)]
#[deprecated(since = "48.0.0", note = "Use DiskManager::builder()
instead")]
pub fn try_new(config: DiskManagerConfig) -> Result<Arc<Self>> {
match config {
diff --git a/datafusion/execution/src/lib.rs b/datafusion/execution/src/lib.rs
index 1a8da9459a..aced2f46d7 100644
--- a/datafusion/execution/src/lib.rs
+++ b/datafusion/execution/src/lib.rs
@@ -24,6 +24,7 @@
// https://github.com/apache/datafusion/issues/11143
#![deny(clippy::clone_on_ref_ptr)]
#![cfg_attr(test, allow(clippy::needless_pass_by_value))]
+#![deny(clippy::allow_attributes)]
//! DataFusion execution configuration and runtime structures
diff --git a/datafusion/execution/src/object_store.rs
b/datafusion/execution/src/object_store.rs
index 6af7bf4c3d..22ce1f0cf2 100644
--- a/datafusion/execution/src/object_store.rs
+++ b/datafusion/execution/src/object_store.rs
@@ -158,7 +158,7 @@ pub trait ObjectStoreRegistry: Send + Sync +
std::fmt::Debug + 'static {
/// Deregister the store previously registered with the same key. Returns
the
/// deregistered store if it existed.
- #[allow(unused_variables)]
+ #[expect(unused_variables)]
fn deregister_store(&self, url: &Url) -> Result<Arc<dyn ObjectStore>> {
not_impl_err!(
"ObjectStoreRegistry::deregister_store is not implemented for this
ObjectStoreRegistry"
diff --git a/datafusion/execution/src/runtime_env.rs
b/datafusion/execution/src/runtime_env.rs
index 6613018765..e38a9f0854 100644
--- a/datafusion/execution/src/runtime_env.rs
+++ b/datafusion/execution/src/runtime_env.rs
@@ -18,7 +18,7 @@
//! Execution [`RuntimeEnv`] environment that manages access to object
//! store, memory manager, disk manager.
-#[allow(deprecated)]
+#[expect(deprecated)]
use crate::disk_manager::DiskManagerConfig;
use crate::{
disk_manager::{DiskManager, DiskManagerBuilder, DiskManagerMode},
@@ -279,7 +279,7 @@ impl Default for RuntimeEnv {
/// See example on [`RuntimeEnv`]
#[derive(Clone)]
pub struct RuntimeEnvBuilder {
- #[allow(deprecated)]
+ #[expect(deprecated)]
/// DiskManager to manage temporary disk file usage
pub disk_manager: DiskManagerConfig,
/// DiskManager builder to manager temporary disk file usage
@@ -317,7 +317,7 @@ impl RuntimeEnvBuilder {
}
}
- #[allow(deprecated)]
+ #[expect(deprecated)]
#[deprecated(since = "48.0.0", note = "Use with_disk_manager_builder
instead")]
/// Customize disk manager
pub fn with_disk_manager(mut self, disk_manager: DiskManagerConfig) ->
Self {
@@ -418,7 +418,7 @@ impl RuntimeEnvBuilder {
disk_manager: if let Some(builder) = disk_manager_builder {
Arc::new(builder.build()?)
} else {
- #[allow(deprecated)]
+ #[expect(deprecated)]
DiskManager::try_new(disk_manager)?
},
cache_manager: CacheManager::try_new(&cache_manager)?,
@@ -451,7 +451,7 @@ impl RuntimeEnvBuilder {
};
Self {
- #[allow(deprecated)]
+ #[expect(deprecated)]
disk_manager: DiskManagerConfig::Existing(Arc::clone(
&runtime_env.disk_manager,
)),
diff --git a/datafusion/expr-common/src/dyn_eq.rs
b/datafusion/expr-common/src/dyn_eq.rs
index e0ebcae487..75d9c06d67 100644
--- a/datafusion/expr-common/src/dyn_eq.rs
+++ b/datafusion/expr-common/src/dyn_eq.rs
@@ -28,7 +28,7 @@ use std::hash::{Hash, Hasher};
///
/// Note: This trait should not be implemented directly. Implement `Eq` and
`Any` and use
/// the blanket implementation.
-#[allow(private_bounds)]
+#[expect(private_bounds)]
pub trait DynEq: private::EqSealed {
fn dyn_eq(&self, other: &dyn Any) -> bool;
}
@@ -45,7 +45,7 @@ impl<T: Eq + Any> DynEq for T {
///
/// Note: This trait should not be implemented directly. Implement `Hash` and
`Any` and use
/// the blanket implementation.
-#[allow(private_bounds)]
+#[expect(private_bounds)]
pub trait DynHash: private::HashSealed {
fn dyn_hash(&self, _state: &mut dyn Hasher);
}
diff --git a/datafusion/expr-common/src/lib.rs
b/datafusion/expr-common/src/lib.rs
index 0018694d18..2be066beaa 100644
--- a/datafusion/expr-common/src/lib.rs
+++ b/datafusion/expr-common/src/lib.rs
@@ -32,6 +32,7 @@
// https://github.com/apache/datafusion/issues/11143
#![deny(clippy::clone_on_ref_ptr)]
#![cfg_attr(test, allow(clippy::needless_pass_by_value))]
+#![deny(clippy::allow_attributes)]
pub mod accumulator;
pub mod casts;
diff --git a/datafusion/expr/src/expr.rs b/datafusion/expr/src/expr.rs
index 088880e28b..c7d825ce1d 100644
--- a/datafusion/expr/src/expr.rs
+++ b/datafusion/expr/src/expr.rs
@@ -2104,7 +2104,7 @@ impl Expr {
impl Normalizeable for Expr {
fn can_normalize(&self) -> bool {
- #[allow(clippy::match_like_matches_macro)]
+ #[expect(clippy::match_like_matches_macro)]
match self {
Expr::BinaryExpr(BinaryExpr {
op:
diff --git a/datafusion/expr/src/lib.rs b/datafusion/expr/src/lib.rs
index ec4942e9a8..b02254bb7d 100644
--- a/datafusion/expr/src/lib.rs
+++ b/datafusion/expr/src/lib.rs
@@ -24,6 +24,7 @@
// https://github.com/apache/datafusion/issues/11143
#![deny(clippy::clone_on_ref_ptr)]
#![cfg_attr(test, allow(clippy::needless_pass_by_value))]
+#![deny(clippy::allow_attributes)]
//! [DataFusion](https://github.com/apache/datafusion)
//! is an extensible query execution framework that uses
diff --git a/datafusion/expr/src/logical_plan/plan.rs
b/datafusion/expr/src/logical_plan/plan.rs
index c51be15b67..4219c24bfc 100644
--- a/datafusion/expr/src/logical_plan/plan.rs
+++ b/datafusion/expr/src/logical_plan/plan.rs
@@ -3235,6 +3235,7 @@ impl PartialOrd for Analyze {
// TODO(clippy): This clippy `allow` should be removed if
// the manual `PartialEq` is removed in favor of a derive.
// (see `PartialEq` the impl for details.)
+#[allow(clippy::allow_attributes)]
#[allow(clippy::derived_hash_with_manual_eq)]
#[derive(Debug, Clone, Eq, Hash)]
pub struct Extension {
diff --git a/datafusion/expr/src/ptr_eq.rs b/datafusion/expr/src/ptr_eq.rs
index 0bbfba5e8d..79ea3d7219 100644
--- a/datafusion/expr/src/ptr_eq.rs
+++ b/datafusion/expr/src/ptr_eq.rs
@@ -39,7 +39,7 @@ pub fn arc_ptr_hash<T: ?Sized>(a: &Arc<T>, hasher: &mut impl
Hasher) {
///
/// If you have pointers to a `dyn UDF impl` consider using
[`super::udf_eq::UdfEq`].
#[derive(Clone)]
-#[allow(private_bounds)] // This is so that PtrEq can only be used with
allowed pointer types (e.g. Arc), without allowing misuse.
+#[expect(private_bounds)] // This is so that PtrEq can only be used with
allowed pointer types (e.g. Arc), without allowing misuse.
pub struct PtrEq<Ptr: PointerType>(Ptr);
impl<T> PartialEq for PtrEq<Arc<T>>
diff --git a/datafusion/expr/src/udf.rs b/datafusion/expr/src/udf.rs
index d275e1eb8e..437dca61b5 100644
--- a/datafusion/expr/src/udf.rs
+++ b/datafusion/expr/src/udf.rs
@@ -228,7 +228,7 @@ impl ScalarUDF {
#[deprecated(since = "50.0.0", note = "Use `return_field_from_args`
instead.")]
pub fn is_nullable(&self, args: &[Expr], schema: &dyn ExprSchema) -> bool {
- #[allow(deprecated)]
+ #[expect(deprecated)]
self.inner.is_nullable(args, schema)
}
@@ -902,7 +902,7 @@ impl ScalarUDFImpl for AliasedScalarUDFImpl {
}
fn is_nullable(&self, args: &[Expr], schema: &dyn ExprSchema) -> bool {
- #[allow(deprecated)]
+ #[expect(deprecated)]
self.inner.is_nullable(args, schema)
}
diff --git a/datafusion/expr/src/udf_eq.rs b/datafusion/expr/src/udf_eq.rs
index 6664495267..30cfb1d831 100644
--- a/datafusion/expr/src/udf_eq.rs
+++ b/datafusion/expr/src/udf_eq.rs
@@ -26,7 +26,7 @@ use std::sync::Arc;
///
/// If you want to just compare pointers for equality, use
[`super::ptr_eq::PtrEq`].
#[derive(Clone)]
-#[allow(private_bounds)] // This is so that UdfEq can only be used with
allowed pointer types (e.g. Arc), without allowing misuse.
+#[expect(private_bounds)] // This is so that UdfEq can only be used with
allowed pointer types (e.g. Arc), without allowing misuse.
pub struct UdfEq<Ptr: UdfPointer>(Ptr);
impl<Ptr> PartialEq for UdfEq<Ptr>
diff --git a/datafusion/proto-common/src/from_proto/mod.rs
b/datafusion/proto-common/src/from_proto/mod.rs
index 73ece62eb8..c591a202af 100644
--- a/datafusion/proto-common/src/from_proto/mod.rs
+++ b/datafusion/proto-common/src/from_proto/mod.rs
@@ -935,7 +935,6 @@ impl TryFrom<&protobuf::ParquetOptions> for ParquetOptions {
fn try_from(
value: &protobuf::ParquetOptions,
) -> datafusion_common::Result<Self, Self::Error> {
- #[allow(deprecated)] // max_statistics_size
Ok(ParquetOptions {
enable_page_index: value.enable_page_index,
pruning: value.pruning,
@@ -1020,7 +1019,6 @@ impl TryFrom<&protobuf::ParquetColumnOptions> for
ParquetColumnOptions {
fn try_from(
value: &protobuf::ParquetColumnOptions,
) -> datafusion_common::Result<Self, Self::Error> {
- #[allow(deprecated)] // max_statistics_size
Ok(ParquetColumnOptions {
compression: value.compression_opt.clone().map(|opt| match opt {
protobuf::parquet_column_options::CompressionOpt::Compression(v) => Some(v),
diff --git a/datafusion/proto-common/src/generated/mod.rs
b/datafusion/proto-common/src/generated/mod.rs
index 24a062e4ca..08cd75b622 100644
--- a/datafusion/proto-common/src/generated/mod.rs
+++ b/datafusion/proto-common/src/generated/mod.rs
@@ -15,6 +15,7 @@
// specific language governing permissions and limitations
// under the License.
+#[allow(clippy::allow_attributes)]
#[allow(clippy::all)]
#[rustfmt::skip]
pub mod datafusion_proto_common {
diff --git a/datafusion/proto-common/src/lib.rs
b/datafusion/proto-common/src/lib.rs
index 6f7fb7b89c..b7e1c906d9 100644
--- a/datafusion/proto-common/src/lib.rs
+++ b/datafusion/proto-common/src/lib.rs
@@ -24,6 +24,7 @@
// Make sure fast / cheap clones on Arc are explicit:
// https://github.com/apache/datafusion/issues/11143
#![deny(clippy::clone_on_ref_ptr)]
+#![deny(clippy::allow_attributes)]
//! Serialize / Deserialize DataFusion Primitive Types to bytes
//!
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]