<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 14.11.2018 um 02:05 schrieb John
      Doe:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAMEA+4q5Vx=GiOeOSWMHf5nk=AVec=V1ouCrSjiQmu20V_ohkQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div class="gmail_quote">
          <div dir="ltr">
            <div dir="ltr">On Mon, Nov 12, 2018 at 1:51 AM Sven Barth
              via fpc-pascal <<a
                href="mailto:fpc-pascal@lists.freepascal.org"
                moz-do-not-send="true">fpc-pascal@lists.freepascal.org</a>>
              wrote:<br>
            </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              <div dir="auto">
                <div class="gmail_quote" dir="auto">
                  <div dir="ltr">The compiler now correctly rejects such
                    declarations with a "Type is not completely defined
                    error".</div>
                </div>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>Making this not work is a ridiculous removal of a
              feature for no logical reason that serves no benefit to
              anyone whatsoever. It just makes records less useful, and
              that's it.</div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Just to avoid any confusion: I am talking about a typed constant
    declared inside a record's declaration of the same type as the
    record. Constants outside a record, even inside other records work
    as before.<br>
    Also there can't be that many libraries affected, because this only
    ever worked in trunk. In 3.0.x the compiler simply crashed when
    encountering such a constant.<br>
    <br>
    <blockquote type="cite"
cite="mid:CAMEA+4q5Vx=GiOeOSWMHf5nk=AVec=V1ouCrSjiQmu20V_ohkQ@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_quote">
          <div dir="ltr">
            <div><br>
            </div>
            <div>I've already encountered several large libraries that
              are pretty massively broken by this pointless change.
              You're very visibly just making up arbitrary "rules" out
              of nowhere that certainly aren't actually defined anywhere
              and implementing (or de-implementing) whatever strikes
              your fancy on a given day.</div>
            <div><br>
            </div>
            <div>Also:</div>
            <div><br>
            </div>
            <div>
              <div dir="ltr">On Sat, Nov 10, 2018 at 4:56 AM Sven Barth
                via fpc-pascal <<a
                  href="mailto:fpc-pascal@lists.freepascal.org"
                  moz-do-not-send="true">fpc-pascal@lists.freepascal.org</a>>
                wrote:</div>
              <blockquote class="gmail_quote" style="margin:0px 0px 0px
                0.8ex;border-left:1px solid
                rgb(204,204,204);padding-left:1ex">
                <div dir="auto">
                  <div class="gmail_quote" dir="auto">
                    <div dir="ltr">It's not possible to use typed
                      constants as initializers for variables.<br>
                    </div>
                  </div>
                </div>
              </blockquote>
              <div><br>
              </div>
              <div>What are you talking about? Of course that's
                possible. People do it literally all the time. <br>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    === code begin ===<br>
    <br>
    type<br>
      TTest = record<br>
      public<br>
        a: LongInt;<br>
        b: LongInt;<br>
      public //const<br>
        //Default: array of TTest;// = (a: 42; b: 21);<br>
      end;<br>
    <br>
    const<br>
      Test: TTest = (a: 42; b: 21);<br>
    <br>
    var<br>
      TestVar: TTest = Test; // <<<< this fails, because
    typed constants can't be used as initializers (would also be the
    case if Test and TestVar had any other type; only untyped constants
    are supported here)<br>
    <br>
    === code end ===<br>
    <br>
    Regards,<br>
    Sven<br>
  </body>
</html>