[Review] Amendment: SE-0039: Moderning Playground Literals


(John McCall) #1

Original proposal:

  https://github.com/apple/swift-evolution/blob/master/proposals/0039-playgroundliterals.md

Pull request for modification:

  https://github.com/apple/swift-evolution/pull/324

Description

The Swift core team would like to amend this proposal to spell out what's happening with the literal protocols. The proposal was not explicit about the fact that the protocols were going to change, and in fact it turned out that changing them was not a good idea. We've already applied the effects of this amendment in trunk, but that is a decision that should be ratified by the community. Please do not allow the fact that it's "already done" to discourage you from speaking up if you have strong feelings about this amendment.

The adjusted proposal fully specifies the "changes" to the object literal protocols. I've put "changes" in quotes because, in fact, the result is no net change to the _ColorLiteralConvertible protocol vs. prior releases of Swift, and the other two protocols have been changed only to add "ResourceName" as a suffix to the argument label. Adding this to the label is more explicit and may be useful if we choose to embellish these protocols in the future; it also creates a simple algorithm for deriving the initializer name from the name of the protocol and the argument labels in the literal.

These protocols are currently underscored and therefore are not intended to be implemented outside of the Swift repository, which is why I did not initially push this through review.

We view this as a minor amendment to the proposal. The fast-track process for such amendments is to just open a pull request against the swift-evolution repository, which I've done and linked above. Any necessary discussion should occur on that PR. The core team will accept the PR after a reasonable amount of time unless there are strong objections; if there are, we will close the PR and start the ordinary evolution process.

John.