@@ -982,4 +982,35 @@ function has_trivial_array_constructor(::Type{T}, args...) where T
982982 applicable (convert, T, args... )
983983end
984984
985+ # Declare the documented, user-facing API as `public` so downstream packages can
986+ # reference these names without ExplicitImports non-public allow-lists. The
987+ # `public` keyword only parses on Julia 1.11+, so the declaration is gated and
988+ # `eval`'d to keep the source loadable on the package's older compat floor.
989+ @static if VERSION >= v " 1.11.0-DEV.469"
990+ eval (Expr (:public ,
991+ # conversions
992+ :aos_to_soa , :promote_eltype , :restructure , :safevec ,
993+ :has_trivial_array_constructor ,
994+ # indexing traits
995+ :can_avx , :can_change_size , :can_setindex , :fast_scalar_indexing ,
996+ :ismutable , :ndims_index , :ndims_shape , :defines_strides ,
997+ :ensures_all_unique , :ensures_sorted , :indices_do_not_alias ,
998+ :instances_do_not_alias , :device ,
999+ # allowed indexing
1000+ :allowed_getindex , :allowed_setindex! ,
1001+ # indexing type buffers
1002+ :ArrayIndex , :GetIndex , :SetIndex! ,
1003+ # linear algebra
1004+ :zeromatrix , :undefmatrix , :issingular , :bunchkaufman_instance ,
1005+ :cholesky_instance , :ldlt_instance , :lu_instance , :qr_instance ,
1006+ :svd_instance ,
1007+ # sparse arrays
1008+ :isstructured , :findstructralnz , :has_sparsestruct , :fast_matrix_colors ,
1009+ :matrix_colors ,
1010+ # wrapping
1011+ :is_forwarding_wrapper , :buffer , :parent_type ,
1012+ # tuples
1013+ :flatten_tuples , :map_tuple_type ))
1014+ end
1015+
9851016end # module
0 commit comments