[fpc-pascal] Default properties first draft
Ben Grasset
operator97 at gmail.com
Sat Oct 20 23:37:03 CEST 2018
AFAIK you need to submit a ".patch" file with your changes against the most
recent trunk revision to the bugtracker (with the category set to "patch",
obviously.) I doubt it'll get considered seriously or looked at at all
otherwise. For what it's worth, I did do a checkout of your branch and then
a merge to get everything fully up to date, and when I went to do a
full-tree build (compiler, RTL, everything) it raised a nonsensical error
in the FCL-XML package in the "dom-html.pp" file, complaining that a call
to GetItem for one of the list classes there didn't have enough parameters
(which is not true.)
That function was being read from through a property, so it seems like you
may possibly have broken something somewhere.
On Fri, Oct 19, 2018 at 12:01 PM Ryan Joseph <ryan at thealchemistguild.com>
wrote:
> I finally finished what I think is first draft of default properties.
> Since it already took me so much time to just get the basics of the
> compiler figured out I thought I’d post this commit from GitHub and ask if
> I did anything seriously wrong or stupid. There are multiple ways I could
> approach this problem but I may have not achieved it a proper way
> considering the architecture of the compiler, which I admittedly don’t
> understand well.
>
> How should I present for consideration at this stage? If anyone on the
> compiler team can look at the commit to tell me anything that would be
> helpful, or let me know if you need this in some other form that you could
> actually compile (I understand the compiler uses svn but I only know git).
> I have some demos of the basics mostly working but I have
> questions/problems I wasn’t able to solve on my own.
>
>
> https://github.com/genericptr/freepascal/commit/e2992620e2e85d1100f60d13472571b8ebbf0bac
>
> Here’s an example test in case people forgot what this was about.
>
> ======================================================================
>
> program default_property_test_16;
> uses
> fgl;
>
> type
> generic TAuto<T> = record
> m_object: T;
> property obj: T read m_object; default;
> class operator Initialize(var a: TAuto);
> class operator Finalize(var a: TAuto);
> end;
>
> type
> TObjectAuto = specialize TAuto<TObject>;
> TStringList = specialize TFPGList<String>;
> TStringListAuto = specialize TAuto<TStringList>;
>
> class operator TAuto.Initialize(var a: TAuto);
> begin
> a.m_object := T.Create;
> end;
>
> class operator TAuto.Finalize(var a: TAuto);
> begin
> a.m_object.Free;
> end;
>
> var
> list: TStringListAuto;
> str: string;
> i: integer;
> begin
> list.Add('foo');
> list.Add('bar');
> for str in list do
> writeln(str);
> for i := 0 to list.count - 1 do
> writeln(list[i]);
> end.
>
> Regards,
> Ryan Joseph
>
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20181020/7e65fc30/attachment.html>
More information about the fpc-pascal
mailing list