Not sure if this is expected or not but the following declaration does not parse
+(x::T,y::T) where {T} = #
whereas this correctly does
+{T}(x::T,y::T) = #
I know it works if you use parenthesis, but there seems to be an inconsistency when there is no parens.
The version without parentheses should in my opinion be disallowed. +(1, 2)
still looks like a unary operator applied to a tuple.
(+)(1, 2)
or (+(1, 2))
still looks like an unary operator applied to a tuple, though.
(+(1, 2))
does, but (+)(1, 2)
is fine.
Most helpful comment
The version without parentheses should in my opinion be disallowed.
+(1, 2)
still looks like a unary operator applied to a tuple.