From a07938ef43a417bd15db2d2cd47cdaab6e3d23dd Mon Sep 17 00:00:00 2001 From: Romeo Valentin Date: Tue, 21 Oct 2025 18:28:37 -0700 Subject: [PATCH 1/4] Make `DimensionMismatch` error string lazy This appeases `JET.jl` and makes this path testable for trimming with JuliaC.jl. --- src/StaticArraysCore.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/StaticArraysCore.jl b/src/StaticArraysCore.jl index 2db7d24..f7ba0c7 100644 --- a/src/StaticArraysCore.jl +++ b/src/StaticArraysCore.jl @@ -264,7 +264,7 @@ struct SizedArray{S<:Tuple,T,N,M,TData<:AbstractArray{T,M}} <: StaticArray{S,T,N function SizedArray{S,T,N,M,TData}(a::TData) where {S<:Tuple,T,N,M,TData<:AbstractArray{T,M}} Base.require_one_based_indexing(a) if size(a) != size_to_tuple(S) && size(a) != (tuple_prod(S),) - throw(DimensionMismatch("Dimensions $(size(a)) don't match static size $S")) + throw(DimensionMismatch(lazy"Dimensions $(size(a)) don't match static size $S")) end return new{S,T,N,M,TData}(a) end From dfa6113ad0531cb8c6f239f4248c98808ad904c4 Mon Sep 17 00:00:00 2001 From: Romeo Valentin Date: Tue, 21 Oct 2025 18:29:24 -0700 Subject: [PATCH 2/4] Bump version --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 115fcf4..5844f12 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "StaticArraysCore" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -version = "1.4.3" +version = "1.4.4" [compat] julia = "1.6" From 1df960eeb46bbf7947ca7bacb1af026fef02c01a Mon Sep 17 00:00:00 2001 From: Romeo Valentin Date: Tue, 21 Oct 2025 22:18:18 -0700 Subject: [PATCH 3/4] Fixup lazy string for older Julia versions This is fine since trimmability is anyways only a concern for later versions of Julia. --- src/StaticArraysCore.jl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/StaticArraysCore.jl b/src/StaticArraysCore.jl index f7ba0c7..e584c3b 100644 --- a/src/StaticArraysCore.jl +++ b/src/StaticArraysCore.jl @@ -264,7 +264,11 @@ struct SizedArray{S<:Tuple,T,N,M,TData<:AbstractArray{T,M}} <: StaticArray{S,T,N function SizedArray{S,T,N,M,TData}(a::TData) where {S<:Tuple,T,N,M,TData<:AbstractArray{T,M}} Base.require_one_based_indexing(a) if size(a) != size_to_tuple(S) && size(a) != (tuple_prod(S),) - throw(DimensionMismatch(lazy"Dimensions $(size(a)) don't match static size $S")) + if VERSION >= v"1.8" + throw(DimensionMismatch(lazy"Dimensions $(size(a)) don't match static size $S")) + else + throw(DimensionMismatch("Dimensions $(size(a)) don't match static size $S")) + end end return new{S,T,N,M,TData}(a) end From f887f3a6c01699a6cf343e9b28932c79c89bd2eb Mon Sep 17 00:00:00 2001 From: Mateusz Baran Date: Wed, 22 Oct 2025 09:12:22 +0200 Subject: [PATCH 4/4] Update src/StaticArraysCore.jl --- src/StaticArraysCore.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/StaticArraysCore.jl b/src/StaticArraysCore.jl index e584c3b..66d3d06 100644 --- a/src/StaticArraysCore.jl +++ b/src/StaticArraysCore.jl @@ -264,7 +264,7 @@ struct SizedArray{S<:Tuple,T,N,M,TData<:AbstractArray{T,M}} <: StaticArray{S,T,N function SizedArray{S,T,N,M,TData}(a::TData) where {S<:Tuple,T,N,M,TData<:AbstractArray{T,M}} Base.require_one_based_indexing(a) if size(a) != size_to_tuple(S) && size(a) != (tuple_prod(S),) - if VERSION >= v"1.8" + @static if VERSION >= v"1.8" throw(DimensionMismatch(lazy"Dimensions $(size(a)) don't match static size $S")) else throw(DimensionMismatch("Dimensions $(size(a)) don't match static size $S"))