[fpc-devel] Language semantic suggesion regarding static methods
J. Gareth Moreton
gareth at moreton-family.com
Tue Oct 22 07:21:02 CEST 2019
Fair enough. Thanks Sven. It just seemed to be a bit of an anomaly in
my eyes. (The ambiguity shouldn't be an issue because of the semicolon
following directives)
Just something I thought I'd bring up.
Gareth aka. Kit
On 22/10/2019 06:17, Sven Barth via fpc-devel wrote:
> Am 22.10.2019 um 01:19 schrieb J. Gareth Moreton:
>> This is a very low-level semantic issue, but I'm not particularly
>> keen on how static methods are defined in classes.
>
> Not being "keen" on an existing, established syntax is not reason
> enough to change it.
>
> Please also note (to probably annoy you further) that static methods
> inside records use exactly the same syntax. ;)
>
>> *static function *StaticMethod: Integer;
>>
>> ****
>>
>> For backward compatibility, I would suggest keeping the 'static'
>> directive for class methods so existing code doesn't break, but maybe
>> mark it as deprecated.
>>
> This would introduce ambiguity especially with keeping the original
> syntax:
>
> === code begin ===
>
> class function Foo: Integer; static;
> function SomethingElse;
>
> vs.
>
> class function Foo: Integer;
> static function SomethingElse;
>
> === code end ===
>
> The static directive is - like all other directives - parsed by
> parse_proc_directives and it would consume the "static" token in both
> cases. Then it would need to check for the existance of a "function"
> or "procedure" token and pass that up it's call change. There are
> places in the parser where this is indeed done, but adjusting the
> parser that much for *no* gain is not something we like to do.
>
>> P.S. If I've missed something obvious as to why static methods are
>> implemented using a directive, please educate me!
> Simple: Delphi compatibility.
>
> Regards,
> Sven
>
> _______________________________________________
> fpc-devel maillist - fpc-devel at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20191022/bc644c76/attachment.html>
More information about the fpc-devel
mailing list