[swift-evolution] [pitch] Eliminate the "T1 -> T2" syntax, require "(T1) -> T2"

Антон Жилин antonyzhilin at gmail.com
Fri Apr 22 03:12:31 CDT 2016

+1, but this proposal need further work.
Specification of the new function grammar is needed.

Currently, it looks like:

function-type → type

It is already false, because some attributes can only be used in function

I suggest to rewrite it to something like:

*function-type* → ( *function-parameter-types*opt ) -> *type*

*function-type* → ( *function-parameter-types*opt ) throws -> *type*

*function-type* → ( *function-parameter-types*opt ) rethrows -> *type*

*function-parameter-types* → *function-parameter-type*

*function-parameter-types* → *function-parameter-type* ,

*function-parameter-type* → *function-parameter-attributes* *type*
It will also eliminate situation when you can pass () argument to a () → T
Function types Void->T will need to be migrated.

- Anton
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160422/39df9a89/attachment.html>

More information about the swift-evolution mailing list