[swift-evolution] 100% bikeshed topic: DictionaryLiteral

Karl Wagner razielim at gmail.com
Mon Jan 8 19:08:33 CST 2018

> On 9. Jan 2018, at 01:29, Ben Cohen via swift-evolution <swift-evolution at swift.org> wrote:
> There exists in the standard library a type `DictionaryLiteral` that deserves naming re-consideration before we declare ABI Stability, because it’s confusingly misnamed, being neither a Dictionary (it doesn’t provide key-based lookup of values) nor a Literal. 
> Instead, it’s just an immutable collection of key-value pairs you can create _from_ a literal.
> I’m canvassing for opinions on what it ought to be called.  Some suggestions so far:
> - `AssociationCollection`: Following the term of art from some other languages. Slightly obscure-sounding to developers not already familiar. Also “association” and “associative” are confusingly similar, which brings back the is-this-a-dictionary problem.
> - `KeyValueCollection`: Problematic because key-value comes up in a totally different context in Cocoa.
> - `PairCollection`: “Pair” is kinda nondescript.
> - Do nothing. It’s not so bad.
> The old name can live on indefinitely via a typealias (which has no ABI consequences, so could be retired at a later date once everyone has had plenty of time to address the deprecation warnings). Removing it as not carrying its weight (and instead using `[(Key,Value)]`, which is basically what it’s a wrapper for) is probably off the table for source stability reasons.
> Any further thoughts welcome.
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

Since it is a generic type, could it not be nested inside of the appropriate Dictionary<Key, Value> type? That would make 2 or 3 more reasonable.

Also, what about Dictionary<Key, Value>.KeyValuePairs?

- Karl

More information about the swift-evolution mailing list