|
15 | 15 | // specific language governing permissions and limitations |
16 | 16 | // under the License. |
17 | 17 |
|
18 | | -use std::any::Any; |
19 | 18 | use std::ffi::c_void; |
20 | 19 | use std::hash::{Hash, Hasher}; |
21 | 20 | use std::sync::Arc; |
@@ -372,9 +371,7 @@ impl Clone for FFI_AggregateUDF { |
372 | 371 |
|
373 | 372 | impl From<Arc<AggregateUDF>> for FFI_AggregateUDF { |
374 | 373 | fn from(udaf: Arc<AggregateUDF>) -> Self { |
375 | | - if let Some(udaf) = |
376 | | - (udaf.inner().as_ref() as &dyn Any).downcast_ref::<ForeignAggregateUDF>() |
377 | | - { |
| 374 | + if let Some(udaf) = udaf.inner().downcast_ref::<ForeignAggregateUDF>() { |
378 | 375 | return udaf.udaf.clone(); |
379 | 376 | } |
380 | 377 |
|
@@ -644,7 +641,6 @@ impl From<AggregateOrderSensitivity> for FFI_AggregateOrderSensitivity { |
644 | 641 |
|
645 | 642 | #[cfg(test)] |
646 | 643 | mod tests { |
647 | | - use std::any::Any; |
648 | 644 | use std::collections::HashMap; |
649 | 645 |
|
650 | 646 | use arrow::datatypes::Schema; |
@@ -855,20 +851,12 @@ mod tests { |
855 | 851 |
|
856 | 852 | // Verify local libraries can be downcast to their original |
857 | 853 | let foreign_udaf: Arc<dyn AggregateUDFImpl> = (&ffi_udaf).into(); |
858 | | - assert!( |
859 | | - (foreign_udaf.as_ref() as &dyn Any) |
860 | | - .downcast_ref::<Sum>() |
861 | | - .is_some() |
862 | | - ); |
| 854 | + assert!(foreign_udaf.is::<Sum>()); |
863 | 855 |
|
864 | 856 | // Verify different library markers generate foreign providers |
865 | 857 | ffi_udaf.library_marker_id = crate::mock_foreign_marker_id; |
866 | 858 | let foreign_udaf: Arc<dyn AggregateUDFImpl> = (&ffi_udaf).into(); |
867 | | - assert!( |
868 | | - (foreign_udaf.as_ref() as &dyn Any) |
869 | | - .downcast_ref::<ForeignAggregateUDF>() |
870 | | - .is_some() |
871 | | - ); |
| 859 | + assert!(foreign_udaf.is::<ForeignAggregateUDF>()); |
872 | 860 |
|
873 | 861 | Ok(()) |
874 | 862 | } |
|
0 commit comments