[swift-evolution] Removing explicit use of `let` from Function Parameters

Nicholas Maccharoli nmaccharoli at gmail.com
Sat Mar 19 09:29:13 CDT 2016

Thanks for the pointers Erica!
I have updated the motivation section and the section on the impact on
existing code.

How does the proposal look now?

- Nick

All the best,


Linked in:

On Fri, Mar 18, 2016 at 11:33 PM, Erica Sadun <erica at ericasadun.com> wrote:

> On Mar 17, 2016, at 10:45 PM, Nicholas Maccharoli via swift-evolution <
> swift-evolution at swift.org> wrote:
> Thank you!
> I have filed a PR here: https://github.com/apple/swift-evolution/pull/215
> How does it look?
> - Nick
> Because the proposals act as documentation for the evolution process, I
> think it may be worth
> expanding the motivation section and the impact on existing code slightly.
> You mention SE-0003
> <https://github.com/apple/swift-evolution/blob/master/proposals/0003-remove-var-parameters.md> which
> removed var parameters and state "it would make sense
> that the syntax for function  parameters being explicitly declared as
> `let` would be removed as well."
> I think it may be worth adding that SE-0001
> <https://github.com/apple/swift-evolution/blob/master/proposals/0001-keywords-as-argument-labels.md> restricted
> `inout`, `var`, and `let` as argument labels.
> SE-0003 removed `var, and SE-0031
> <https://github.com/apple/swift-evolution/blob/master/proposals/0031-adjusting-inout-declarations.md> moved
> `inout` declarations to the type, leaving `let`
> as the last remaining exception to SE-0001. Removing it reverts  SE-0001
> to a clear implementation
> without special cases.
> You might also mention `let` in its current use is redundant since its
> inclusion does not and
> cannot modify the behavior of the declaration it decorates. It is rarely
> if ever used and in the
> circumstances when added produces no positive contribution to  the
> language since the behavior
> is identical to its absence.
> In the Impact on Existing Code section, you suggest "The `let` keword
> would have to be deleted if
> placed before a function parameter." I'd recommend mentioning the migrator
> specifically and
> adding that if not migrated, the let will be be now be interpreted as an
> external label.
> -- E, who probably thought about this one a little too hard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160319/7a63d393/attachment.html>

More information about the swift-evolution mailing list