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