> On Feb 7, 2017, at 9:09 PM, Jacob Bandes-Storch <jtban...@gmail.com> wrote:
> 
> PR'd:  https://github.com/apple/swift/pull/7326 
> <https://github.com/apple/swift/pull/7326>
> 
> Although I would also ask: why is CaptureListExpr a parent of ClosureExpr and 
> not a child?

I think it’s kind of arbitrary. You could also argue that they should be one 
and the same AST node. I think right now it’s just a property of how the parser 
works, the capture list comes first, before the closure body?

Slava

> 
> Jacob
> 
> On Tue, Feb 7, 2017 at 7:56 PM, Slava Pestov <spes...@apple.com 
> <mailto:spes...@apple.com>> wrote:
> 
>> On Feb 7, 2017, at 7:30 PM, Jacob Bandes-Storch via swift-dev 
>> <swift-dev@swift.org <mailto:swift-dev@swift.org>> wrote:
>> 
>> I just learned about CaptureListExpr when working on some diagnostics. Is 
>> there a particular reason that its member "closureBody" is an Expr* and not 
>> a ClosureExpr*? There seems to be only one place it's built 
>> <https://github.com/apple/swift/blob/1e46f13184d7256c991b2ba9424af9efe3cd860f/lib/Parse/ParseExpr.cpp#L2425>,
>>  and the body is always a ClosureExpr.
>> 
>> I can see one minor place 
>> <https://github.com/apple/swift/blob/1e46f13184d7256c991b2ba9424af9efe3cd860f/lib/AST/ASTWalker.cpp#L663-L665>
>>  where it might be less convenient to have a ClosureExpr, but otherwise 
>> there doesn't seem to be much of a reason to keep it generalized to Expr*.
> 
> Since autoclosures cannot have capture lists, I think the change you’re 
> suggesting makes sense.
> 
> Slava
> 
>> 
>> Jacob
>> _______________________________________________
>> swift-dev mailing list
>> swift-dev@swift.org <mailto:swift-dev@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-dev 
>> <https://lists.swift.org/mailman/listinfo/swift-dev>
> 
> 

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to