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

Erica Sadun erica at ericasadun.com
Tue Jun 28 22:29:23 CDT 2016


> On Jun 28, 2016, at 9:21 PM, Sean Heber <sean at fifthace.com> wrote:
> 
> IntegerLiteralExpressable?
> 
> Does Apple employ any philosophers? We might need one...
> 
> l8r
> Sean
> 

Aaaaaand...welcome to last night.

The problem being, that people see this and think that the type can be
expressed as an integer literal, not that an integer literal can be expressing
the type. (I won't even bring up other associations for that word since
most of the subscribers of this mailing list have not been nursing mothers
although some may be familiar with the technique.)

-- E


> 
>> On Jun 28, 2016, at 10:02 PM, Erica Sadun <erica at ericasadun.com> wrote:
>> 
>> 
>>> On Jun 28, 2016, at 8:08 PM, Sean Heber <sean at fifthace.com> wrote:
>>> 
>>> What about..
>>> 
>>> Syntax.ConvertibleFromIntegerLiteral
>>> etc..
>> 
>> I like it but Dave has already expressed that this isn't conversion. This
>> is something distinct, magical, and more importantly, ineffable.
>> 
>> He says it means an instance of the type can be written as a literal, and
>> not converted from a literal. He writes:
>> 
>>> Conformance to this protocol does *not* mean you can initialize the type with
>>> a literal. 
>>> 
>>> Proof:
>>> 
>>> func f<T: IntegerLiteralConvertible>() -> T {
>>>  return T(integerLiteral: 43) // Error
>>>  return T(43)                 // Also an Error
>>> }
>>> 
>>> It means an instance of the type can be *written* as a literal:
>>> 
>>> func f<T: IntegerLiteralConvertible>() -> T {
>>>  return 43   // OK
>>> }
>>>> 
>> 
>> So we're looking at something more like:
>> 
>> Syntax.AnIntegerLiteralCanBeSubstitutedForThisTypeAndTheCompilerWillNotBarf
>> 
>> -- E
>> 
>> 



More information about the swift-evolution mailing list