Am 24.11.2018 um 05:20 schrieb Ryan Joseph:
I’d like to propose this mode switch ($modeswitch multiscopehelpers) to allow 
multiple helpers per scope. I have no idea why Delphi thinks only one helper 
should be allowed in any scope but it cripples the feature severely. Sharing 
helpers is mostly not possible because of potential conflicts and even relying 
on helpers in your own code base is not safe because conflicts could occur 
later. Helpers are basically just a way to extend procedural calls to dot 
notation so I don’t understand why this restriction was ever out in place 
(Objective-C and C# never imposed the restriction on their 
categories/extensions).

All of the hard work was already done so it was just a matter of lifting the 
artificial restriction that was placed on them. There’s still clean up to do 
and as always I may have misunderstood something fundamental about the compiler 
design.

https://github.com/genericptr/freepascal/commits/helperscope
This is a feature I'll definitely support as that was on my ToDo list for quite some time already.

It's a good thing that you saw the errors in your first design and rectified those in the third commit. ;) That commit however contains unnecessary noise (new line changes? space changes?), so when reworking the commits for a patch please try to get rid of these.

One thing that bothers me is the "lastonly" parameter. Why did you add that? In the two locations you added them you'd now have a problem if multiple helpers are in scope, but the last one does not contain the requested symbol. In my opinion that parameter is not needed at all.

Another important part of course are tests, both tests that should work and those that should not.

But other than that this looks good.

Regards,
Sven
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to