Inadequacy of UpperTriangular and LowerTriangular constructors

The constructors for UpperTriangular and LowerTriangular only accept square matrices. However concepts such as diagaonl, upper triangular and lower triangular are defined for matrices of arbitrary dimensions. Here is an example of these constructors not working for non-square matrices

julia> tm = [1 2; 0 1; 0 0]
3×2 Array{Int64,2}:
 1  2
 0  1
 0  0

julia> UpperTriangular(tm)
ERROR: DimensionMismatch("matrix is not square: dimensions are (3, 2)")
 [1] checksquare at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/LinearAlgebra/src/LinearAlgebra.jl:223 [inlined]
 [2] UpperTriangular at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/LinearAlgebra/src/triangular.jl:17 [inlined]
 [3] UpperTriangular(::Array{Int64,2}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/LinearAlgebra/src/triangular.jl:24
 [4] top-level scope at REPL[31]:1

Is it possible for the definitions of these constructors to be expanded. If I knew how to make entries of a matrix as non-elements, I would do so myself.