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 <[email protected]> wrote:

On Jun 28, 2016, at 9:21 PM, Sean Heber <[email protected]> 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 <[email protected]> wrote:


On Jun 28, 2016, at 8:08 PM, Sean Heber <[email protected]> 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
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to