On Sunday, 10 August 2014 at 17:29:24 UTC, Walter Bright wrote:
1. labels
2. case statements
3. default statements
4. ?: expressions
and overloading this with more meanings is, in my
not-so-humble-opinion, not a good idea given the very marginal
benefit it might have.
5. Access permissions (public/private/protected).
6. File length attributes (@safe: @system: @trusted:)
But in all cases (except 4), the final symbol is the colon, and
it's effect lasts for that scope unless overridden. I don't see
how it would be making things all that much more complex. Unlike
with templates in C++ where the <>'s were overloaded for a new
(and completely unrelated) confusing purpose, the :'s use
wouldn't really change, and it would remain the last symbol for
it's declaration.
Although I'm not sure how much it adds for complexity to the
compiler (if any).