@@ -66,30 +66,32 @@ function sym_arguments_insert_unspecified(s1, s2)
6666 return arguments_insert_unspecified (s1, s2), arguments_insert_unspecified (s2, s1)
6767end
6868
69- function arguments_isequal (s1, s2)
70- return == (sym_arguments_insert_unspecified (s1, s2)... )
71- end
72-
73- # get clean results when mixing implementations
69+ arguments_isequal (s1, s2) = == (sym_arguments_insert_unspecified (s1, s2)... )
7470arguments_isequal (nt:: NamedTuple , t:: Tuple ) = arguments_isequal (t, nt)
7571function arguments_isequal (t:: Tuple , nt:: NamedTuple )
76- isempty (t) && return arguments_isequal ((;), nt)
7772 isempty (nt) && return arguments_isequal (t, ())
73+ isempty (t) && return arguments_isequal ((;), nt)
7874 return false
7975end
8076
81- arguments_product (:: NamedTuple{()} , t:: Tuple ) = t
82- arguments_product (t:: Tuple , :: NamedTuple{()} ) = t
83- arguments_product (:: Tuple{} , nt:: NamedTuple ) = nt
84- arguments_product (nt:: NamedTuple , :: Tuple{} ) = nt
77+ arguments_product (nt:: NamedTuple , t:: Tuple ) = arguments_product (t, nt)
78+ function arguments_product (t:: Tuple , nt:: NamedTuple )
79+ isempty (nt) && return t
80+ isempty (t) && return nt
81+ throw (ArgumentError (" Mixing Tuple and NamedTuple is illegal" ))
82+ end
8583
8684arguments_isless (s1, s2) = isless (sym_arguments_insert_unspecified (s1, s2)... )
87- arguments_isless (nt:: NamedTuple , :: Tuple{} ) = arguments_isless (nt, (;))
88- arguments_isless (:: Tuple{} , nt:: NamedTuple ) = arguments_isless ((;), nt)
89- arguments_isless (:: NamedTuple{()} , t:: Tuple ) = arguments_isless ((), t)
90- arguments_isless (t:: Tuple , :: NamedTuple{()} ) = arguments_isless (t, ())
91- arguments_isless (:: NamedTuple , :: Tuple ) = throw (ArgumentError (" Not implemented" ))
92- arguments_isless (:: Tuple , :: NamedTuple ) = throw (ArgumentError (" Not implemented" ))
85+ function arguments_isless (t:: Tuple , nt:: NamedTuple )
86+ isempty (nt) && return arguments_isless (t, ())
87+ isempty (t) && return arguments_isless ((;), nt)
88+ throw (ArgumentError (" Mixing Tuple and NamedTuple is illegal" ))
89+ end
90+ function arguments_isless (nt:: NamedTuple , t:: Tuple )
91+ isempty (nt) && return arguments_isless ((), t)
92+ isempty (t) && return arguments_isless (nt, (;))
93+ throw (ArgumentError (" Mixing Tuple and NamedTuple is illegal" ))
94+ end
9395
9496# ================================= Cartesian Product ====================================
9597× (c1:: AbstractSector , c2:: AbstractSector ) = × (SectorProduct (c1), SectorProduct (c2))
0 commit comments