<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>