@@ -101,9 +101,22 @@ function Base.:(*)(𝐼::IdentityMultiple, v::AbstractVector)
101101end
102102
103103# beside `AbstractMatrix`, we need some disambiguations with LinearAlgebra since v1.6
104- for M in @static VERSION < v" 1.6" ? [:AbstractMatrix] :
105- (:AbstractMatrix, :Diagonal, :(Transpose{<: Any ,<: AbstractVector }),
106- :(Adjoint{<: Any ,<: AbstractVector }), :(LinearAlgebra. AbstractTriangular))
104+ MATRICES = @static VERSION < v" 1.6" ? [:AbstractMatrix] :
105+ [:AbstractMatrix, :Diagonal, :(Transpose{<: Any ,<: AbstractVector }),
106+ :(Adjoint{<: Any ,<: AbstractVector }), :(LinearAlgebra. AbstractTriangular)]
107+ @static if VERSION < v" 1.8"
108+ append!(MATRICES,
109+ [:(Transpose{<: Any ,
110+ <: Union {LinearAlgebra. Hermitian{T,S},LinearAlgebra. Symmetric{T,S},
111+ LinearAlgebra. Symmetric{Complex{T},S}} where {T<: Real ,S}}),
112+ :(Adjoint{<: Any ,
113+ <: Union {LinearAlgebra. Hermitian{T,S},LinearAlgebra. Hermitian{Complex{T},S},
114+ LinearAlgebra. Symmetric{T,S}} where {T<: Real ,S}})])
115+ end
116+ @static if VERSION < v" 1.9"
117+ push!(MATRICES, :(Adjoint{<: Any ,<: LinearAlgebra.AbstractRotation }))
118+ end
119+ for M in MATRICES
107120 @eval begin
108121 function Base.:(* )(𝐼:: IdentityMultiple , A:: $M )
109122 𝐼. n != size(A, 1 ) && throw(DimensionMismatch(" incompatible dimensions" ))
0 commit comments