[swift-evolution] [Pitch] Remove type-inference for stored property

Víctor Pimentel Rodríguez vpimentel at tuenti.com
Wed Apr 12 02:58:25 CDT 2017

On Friday, April 7, 2017, Daniel Duan via swift-evolution <
swift-evolution at swift.org> wrote:

> Hi all,
> In a discussion about inferring parameter types from default value, Slava
> brought up some performance problems caused by type inference for stored
> properties in side types:
> https://lists.swift.org/pipermail/swift-evolution/
> Week-of-Mon-20170313/033882.html
> Towards the end, the post mentioned that some Swift team members
> contemplated requiring types for stored properties in type declarations. I
> think this idea deserves some more attention. Hence this last minute
> idea-floating.
> In addition to solving a performance headache in implementation, there're
> always the general benefit of making type declartion more explicit and
> readable (clarity for reader should out-weigh pleasure of the author).
> Making the
> language slightly more consistent (we are not inferring types for default
> parameter values in function anyways).
> The cons for doing this are obvious too: the inference makes the language
> feels more friendly and is, undoubtedly, a beloved feature for many. This
> would be a source breaking change.
> Just thought I'd float the idea to gather some quick reaction. What do
> y'all think?

I think this chabge would be too source breaking for Swift 4. Just for that
reason I would not implement it.

Also, I think the Core team talked about having specific themes for the
upcoming releases. I would very much like Swift 5 to have improving compile
times as a major theme.

Under such theme, maybe it makes sense to forbid complex expressions
in stored properties definitions with no explicit type. Forbidding literals
or direct function calls would remove a useful feature and the gains would
not be much, IMHO.

Víctor Pimentel



*[image: Imágenes integradas 5]*

*Víctor Pimentel Rodríguez · *Principal iOS Engineer
vpimentel at tuenti.com

+34 914 294 039 <+34914294039> — +34 687 840 886 <+34687840886>
C/ Gran Vía, nº 28, 6ª planta — 28013 Madrid
Tuenti Technologies, S.L.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170412/a763f630/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Transition_Logo_172.png
Type: image/png
Size: 6074 bytes
Desc: not available
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170412/a763f630/attachment.png>

More information about the swift-evolution mailing list