[swift-evolution] [Proposal Draft] Literal Syntax Protocols
Steve Canon
scanon at apple.com
Wed Jun 29 07:49:11 CDT 2016
Semi-serious question for integer literals in particular: do we need a separate protocol at all? Are there types we want to support where integer literals should be supported, but + doesn't make sense? Where 1+1 actually isn't 2?
If not, are integer literals really just part of Arithmetic?
- Steve
> On Jun 28, 2016, at 11:21 PM, Sean Heber via swift-evolution <swift-evolution at swift.org> wrote:
>
> IntegerLiteralExpressable?
>
> Does Apple employ any philosophers? We might need one...
>
> l8r
> Sean
>
> Sent from my iPad
>
>> 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