[swift-evolution] Property Getter Return Statement

Slava Pestov spestov at apple.com
Tue Oct 10 15:00:49 CDT 2017


> On Oct 9, 2017, at 10:54 AM, Jordan Rose <jordan_rose at apple.com> wrote:
> 
> 
> 
>> On Oct 8, 2017, at 21:56, Slava Pestov via swift-evolution <swift-evolution at swift.org> wrote:
>> 
>> 
>> 
>>> On Oct 7, 2017, at 7:07 AM, James Valaitis via swift-evolution <swift-evolution at swift.org> wrote:
>>> 
>>> Is it widely agreed that it is necessary to require a return statement on a one line property getter?
>>> 
>>> var session: AVCaptureSession { get { return layer.session } }
>>> 
>>> Or could we follow the convention for any other close and get rid of it? For me it seems redundant; the word `get` literally precedes the closure.
>> 
>> In multi-file projects, re-compiling one file that references the property would necessitate type checking the body of the getter, even if the getter is defined in a different source file. So one reason not to have this would be to avoid slowing down type checking.
> 
> This is not correct. Omitting the "return" is different from omitting the property's type.
> 
> (I'm minorly in favor of allowing the 'return' to be omitted for single-expression getters. Not enough to be the person who implements it, but enough to +1 a proposal-with-implementation even in the Swift 5 timeframe.)

I’m minorly opposed, because it feels like a slippery slope. What about function bodies? etc

func foo() -> Int { 3 } // should this be allowed?

Slava

> 
> Jordan
> 



More information about the swift-evolution mailing list