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

Sean Heber sean at fifthace.com
Tue Jun 28 22:55:30 CDT 2016


Now that's just silly!

l8r
Sean

Sent from my iPad

> On Jun 28, 2016, at 10:49 PM, Greg Titus <greg at omnigroup.com> wrote:
> 
> I’m honestly shocked that y’all (that I’ve seen) haven’t come up with Syntax.LiterallyIntegerLiteral yet.
> 
> 
> 
>> On Jun 28, 2016, at 8:39 PM, Sean Heber via swift-evolution <swift-evolution at swift.org> wrote:
>> 
>> Arg. Dang it!
>> 
>> Syntax.ExpressibleAsIntegerLiteral
>> Syntax.FromIntegerLiteral
>> Syntax.IntegerLiteralManifestation
>> Syntax.GhostOfIntegerLiteral
>> Syntax.FormerlyKnownAsIntegerLiteral
>> 
>> l8r
>> Sean 
>> 
>> Sent from my iPad
>> 
>> On Jun 28, 2016, at 10:29 PM, Erica Sadun <erica at ericasadun.com> wrote:
>> 
>>>> 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
>>>>> 
>>>>> 
>>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 


More information about the swift-evolution mailing list