[Rejected] SE-0123: Disallow coercion to optionals in operator arguments

(Chris Lattner) #1

Proposal Link: https://github.com/apple/swift-evolution/blob/master/proposals/0123-disallow-value-to-optional-coercion-in-operator-arguments.md

The review of "SE-0123: Disallow coercion to optionals in operator arguments" ran from July 12...19. The proposal has been *rejected*.

The majority of the feedback on this proposal was opposed to it. While the goal of the proposal is laudable, SE-0121 eliminated the most surprising problem that this proposal aimed to address, and the rest of it (notably the ?? operator) can be addressed in other ways in the Swift 3 timeframe. The core team recommends that the ?? case be handled by having the compiler produce a warning when the left side of the ?? operator is implicitly promoted to optional. In the post-Swift 3 timeframe, we can investigate other broader options for solving this problem more generally (e.g. a new parameter attribute).

Thank you to Mark Lacey, Doug Gregor, and Jacob Bandes-Storch for driving this discussion forward.

-Chris Lattner
Review Manager