I’m a bit late throwing my hat into the naming ring, but I was thinking Swift.Literal.IntegerInitializable, NilInitializable, StringInterpolationInitializable, etc.
-DW > On Jun 29, 2016, at 9:10 AM, Adrian Zubarev via swift-evolution > <[email protected]> wrote: > > Since bikeshedding ideas in here abusing a closed enum anyway I’d like to > share my vision of this proposal in a future release with pitched group > mechanism (proposal link > <https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160627/022644.html>) > and nested protocols in mind: > > public group Syntax { > > // No need for `public` because groups inherit > // the access modifier from its root group > group Literal { > > // no need for `public` here, because all group members > // will have the access modifier specified by the group > protocol NilProtocol { ... } > protocol BooleanProtocol { ... } > protocol IntegerProtocol { ... } > protocol FloatProtocol { ... } > protocol UnicodeScalarProtocol { ... } > protocol ExtendedGraphemeClusterProtocol { ... } > protocol StringProtocol { ... } > protocol StringInterpolationProtocol { ... } > protocol ArrayProtocol { ... } > protocol DictionaryProtocol { ... } > } > } > Changing my first example of Syntax.Literal.*Protocol to this design won’t > even break. :) > > > > > -- > Adrian Zubarev > Sent with Airmail > > Am 29. Juni 2016 um 16:55:10, Matthew Johnson ([email protected] > <mailto:[email protected]>) schrieb: > >> >>> On Jun 29, 2016, at 9:46 AM, Adrian Zubarev via swift-evolution >>> <[email protected] <mailto:[email protected]>> wrote: >>> >>> I wouldn’t use the Type suffix, because I believe this will create even >>> more confusion with the associatedtype IntegerLiteralType from the current >>> IntegerLiteralConvertible itself. >>> >>> >> >> Thanks for pointing this out! I wasn’t thinking about the associated type >> names. We definitely would not want the protocol and the associated type to >> have the same name. >> >> Of course we *could* open the door to renaming the associated type >> requirements to something like `IntegerLiteralParameterType` if we decide >> that `Syntax.*LiteralType` is the best naming convention for the protocols. >> >> I’m not necessarily advocating for this idea, but wanted to share it since >> there is very active bikeshedding happening right now. My plan is to stay >> neutral on the naming and let the community and core team decide what is >> best. >>> >>> >>> >>> -- >>> Adrian Zubarev >>> Sent with Airmail >>> >>> Am 29. Juni 2016 um 16:42:02, Matthew Johnson ([email protected] >>> <mailto:[email protected]>) schrieb: >>> >>>> >>>>> On Jun 29, 2016, at 9:15 AM, Erica Sadun via swift-evolution >>>>> <[email protected] <mailto:[email protected]>> wrote: >>>>> >>>>> I rather like this one. It produces: `Syntax.Literal.IntegerProtocol`, >>>>> which is honestly >>>>> the best I've seen so far *and* it might get past the Dave test. >>>> >>>> I’m curious to see what Dave thinks of this as well. >>>> >>>> `Syntax.IntegerLiteralType` is another that popped into my mind this >>>> morning. I don’t recall if that has been mentioned yet. The idea here is >>>> that an integer literal *can be typed as* a type that conforms to this >>>> protocol (the type suffix *is not* used in the sense that it used to be >>>> used in things like `SequenceType` which had the semantic that conforming >>>> types *are* sequences). >>>> >>>> -Matthew >>>> >>>>> >>>>> Thank you for bringing this into the conversation! >>>>> >>>>> -- E >>>>> >>>>>> On Jun 29, 2016, at 12:31 AM, Adrian Zubarev via swift-evolution >>>>>> <[email protected] <mailto:[email protected]>> wrote: >>>>>> >>>>>> How about: >>>>>> >>>>>> public enum Syntax { >>>>>> >>>>>> public enum Literal { >>>>>> >>>>>> public typealias NilProtocol = ... >>>>>> public typealias BooleanProtocol = ... >>>>>> public typealias IntegerProtocol = ... >>>>>> public typealias FloatProtocol = ... >>>>>> public typealias UnicodeScalarProtocol = ... >>>>>> public typealias ExtendedGraphemeClusterProtocol = ... >>>>>> public typealias StringProtocol = ... >>>>>> public typealias StringInterpolationProtocol = ... >>>>>> public typealias ArrayProtocol = ... >>>>>> public typealias DictionaryProtocol = ... >>>>>> } >>>>>> } >>>>>> >>>>>> extension Array : Syntax.Literal.ArrayProtocol { ... } >>>>> >>>>> _______________________________________________ >>>>> swift-evolution mailing list >>>>> [email protected] <mailto:[email protected]> >>>>> https://lists.swift.org/mailman/listinfo/swift-evolution >>>>> <https://lists.swift.org/mailman/listinfo/swift-evolution> >>>> >>> >>> >>> _______________________________________________ >>> swift-evolution mailing list >>> [email protected] <mailto:[email protected]> >>> https://lists.swift.org/mailman/listinfo/swift-evolution >>> <https://lists.swift.org/mailman/listinfo/swift-evolution> >> > > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
signature.asc
Description: Message signed with OpenPGP using GPGMail
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
