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