@@ -93,6 +93,7 @@ Size(::Type{Transpose{T, A}}) where {T, A <: AbstractVecOrMat{T}} = Size(Size(A)
93
93
Size (:: Type{Symmetric{T, A}} ) where {T, A <: AbstractMatrix{T} } = Size (A)
94
94
Size (:: Type{Hermitian{T, A}} ) where {T, A <: AbstractMatrix{T} } = Size (A)
95
95
Size (:: Type{Diagonal{T, A}} ) where {T, A <: AbstractVector{T} } = Size (Size (A)[1 ], Size (A)[1 ])
96
+ Size (:: Type{<:LinearAlgebra.AbstractTriangular{T, A}} ) where {T,A} = Size (A)
96
97
97
98
@pure Size (:: Type{<:AbstractArray{<:Any, N}} ) where {N} = Size (ntuple (_ -> Dynamic (), N))
98
99
@@ -117,7 +118,7 @@ Length(::Size{S}) where {S} = _Length(S...)
117
118
@inline _Length (S... ) = Length {Dynamic()} ()
118
119
119
120
# Some @pure convenience functions for `Size`
120
- @pure get (:: Size{S} ) where {S} = S
121
+ @pure ( :: Type{Tuple} ) (:: Size{S} ) where {S} = S
121
122
122
123
@pure getindex (:: Size{S} , i:: Int ) where {S} = i <= length (S) ? S[i] : 1
123
124
@@ -138,7 +139,7 @@ Base.LinearIndices(::Size{S}) where {S} = LinearIndices(S)
138
139
@pure size_tuple (:: Size{S} ) where {S} = Tuple{S... }
139
140
140
141
# Some @pure convenience functions for `Length`
141
- @pure get (:: Length{L} ) where {L} = L
142
+ @pure ( :: Type{Int} ) (:: Length{L} ) where {L} = L
142
143
143
144
@pure Base.:(== )(:: Length{L} , l:: Int ) where {L} = L == l
144
145
@pure Base.:(== )(l:: Int , :: Length{L} ) where {L} = l == L
0 commit comments