<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Am 22.10.2019 um 01:19 schrieb J.
      Gareth Moreton:<br>
    </div>
    <blockquote type="cite"
      cite="mid:3462c63e-6784-52b1-a146-ad42301a680b@moreton-family.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      This is a very low-level semantic issue, but I'm not particularly
      keen on how static methods are defined in classes. </blockquote>
    <br>
    Not being "keen" on an existing, established syntax is not reason
    enough to change it.<br>
    <br>
    Please also note (to probably annoy you further) that static methods
    inside records use exactly the same syntax. ;)<br>
    <br>
    <blockquote type="cite"
      cite="mid:3462c63e-6784-52b1-a146-ad42301a680b@moreton-family.com"><b>static
        function </b>StaticMethod: Integer;
      <p>****<br>
      </p>
      <p>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.</p>
    </blockquote>
    This would introduce ambiguity especially with keeping the original
    syntax:<br>
    <br>
    === code begin ===<br>
    <br>
    class function Foo: Integer; static;<br>
    function SomethingElse;<br>
    <br>
    vs.<br>
    <br>
    class function Foo: Integer;<br>
    static function SomethingElse;<br>
    <br>
    === code end ===<br>
    <br>
    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.<br>
    <br>
    <blockquote type="cite"
      cite="mid:3462c63e-6784-52b1-a146-ad42301a680b@moreton-family.com">P.S.
      If I've missed something obvious as to why static methods are
      implemented using a directive, please educate me!<br>
    </blockquote>
    Simple: Delphi compatibility.<br>
    <br>
    Regards,<br>
    Sven<br>
  </body>
</html>