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

Vladimir.S svabox at gmail.com
Wed Jun 29 06:49:08 CDT 2016


I read such names as "Syntax.BlaBlaBlaBlaBlaBlaLiteral", then need to parse 
"Literal" at the end, then need to parse actual literal 
type(Integer,Nil,etc). Not clear from first view on such the name.

FWIW as non-English speaker, I prefer clear and short name like 
"Syntax.IntegerLiteral" or even really like "Syntax.Literal.Integer" - IMO 
it is so clear, first you find "Syntax", you understand that it is related 
to source code syntax features, then "Literal" - aha, this type could be 
expressed as literal, then "Integer" - got it, could be written as integer 
value. Or probably "Syntax.LiteralExpressible.Integer".

On 29.06.2016 6:39, Sean Heber via swift-evolution 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