[Ranted]Allow to compare generic types without providing a signature specialization

Please desist from posting. Your negative tone and thinly-veiled insults are unwelcome and unhelpful.

9 Likes

The beginning of the thread was fine. Then for some reason, people started publicly accusing me of things.

Perhaps English is not your first language, but your tone became very defensive early on. Most specifically about tagging the core team.

Words like this don't help your case:

The Swift development process is fairly well-understood at this point. There are Apple employees working on changes Apple wants (i.e. property wrappers and function builders). There's the core team, whose members work on what interests them (or what they get paid to work on), and there's 3rd-party contributors, who are like the core team, without the authority to merge into master.

This is besides the core team's role as moderators for 3rd-party contributions. And the key is that the core team is not required to work on anything the general public wants. The general public is both free and encouraged to work on what interests them the most, and to pitch and propose changes to be merged.

The negative feedback you've received in this area has been to this point, and you've either misunderstood it, or have chosen to ignore it.

17 Likes

I hesitate to wade into this, but a tangential note: C++ was developed by the dominant tech company of its day, which had a literal monopoly on nearly all telecommunications in the US, at a lab that employed about as many math PhDs as Apple ever has (e.g. my neighbor Doug, who is responsible for << as an iostream operator as well as UNIX pipes, is a math PhD, as were most of the people he managed there).

22 Likes

Ah, so now I know who to blame for the iostream operators. :stuck_out_tongue:

2 Likes

What do you think about the syntax:

if let aa = a as? Dictionary<let K:Hashable, let V> {
    if K.self == Int.self {
        ...
    }
}

I suppose that would make @Karl's suggestion:

if let aa = a as? let T:RandomAccessCollection
///Note: it would be just `as` without the type constraint

I get that it doesn't match the func myFunc<T> syntax quite as well, but I think it does clarify that the type value is dynamically being bound to the name T at that moment. It also matches switch syntax pretty well...

That's a lot of lets.