Fixing 'Identifier' with 'DeclBaseName'


(Jordan Rose) #1

Hi, all. I wanted to give a heads-up about some work Alex Hoppen has been doing to fix one of our longstanding problems: the DeclName for subscripts is just the Identifier “subscript”. (And similarly for ‘init’, ‘deinit’, etc.) The solution he’s come up with (after discussions with me and John) is to split out part of Identifier as “DeclBaseName”, which can either be a normal Identifier or a “special name”. This change then has to propagate through the whole compiler.

I’ve been putting off reviewing this because it’s such a big change, but in response Alex has split up the patch into several smaller PRs that adopt DeclBaseName separately in each component. That leads us to a question of timing, and I suspect the best time to land these patches is the last week of May. Why? Because it will make cherry-picking to other active branches very difficult, and since we have our final rebranch of swift-4.0-branch from master on Jun 1 that difficulty will then only last a short period of time.

If we don’t get the changes in now, then I’d want to hold off for even longer since I suspect there will be a lot of cherry-picking in the weeks immediately after the branch. I feel bad for Alex on this mark, since he’s already had to rebase his patches several times since he started this effort, but I wouldn’t want to disrupt anyone either.

Thoughts, objections?
Jordan