[swift-evolution] [Proposal Draft] Literal Syntax Protocols

Ben Rimmington me at benrimmington.com
Mon Jun 27 10:39:43 CDT 2016

> On 27 Jun 2016, at 14:37, Xiaodi Wu <xiaodi.wu at gmail.com> wrote:
> DictionaryLiteral seems fine to me; it's as much a dictionary as ArrayLiteral is an array, right?

The `DictionaryLiteral` *structure* isn't a hash table.
It's an array of key-value pairs, and allows duplicate keys.
Entries are accessed by their position, not by their key.

> What's wrong with ExtendedGraphemeCluster? It precisely self-documents what must exist between the double quotes to qualify as such a literal. Plus, we don't have e.g. a single-quoted character type; the name CharacterLiteral is a misnomer for what's effectively a string literal constrained by length.

The `ExtendedGraphemeCluster` prefix is verbose.
The `Character` *structure* is already defined as:
"A single extended grapheme cluster, ..."
Why have different names for the same concept?

> Likewise, it's not a StringInterpolationLiteral but StringInterpolation; there's no syntax for demarcating it, so it's a string literal constrained by what's between the double quotes.

The design team suggested `InterpolatedStringLiteral` in their SE-0041 feedback.

I suggested using protocol inheritance.

-- Ben

More information about the swift-evolution mailing list