[fpc-pascal] a proposal about "with" syntax
Sven Barth
pascaldragon at googlemail.com
Sun Mar 17 18:10:35 CET 2013
On 17.03.2013 15:33, Flávio Etrusco wrote:
> On Sun, Mar 17, 2013 at 6:59 AM, Sven Barth <pascaldragon at googlemail.com> wrote:
>> On 17.03.2013 06:00, Flávio Etrusco wrote:
>>>
>>> type generic TAlias1<T: TObject> = class(TObject)
>>> function Alias1: T;
>>> end;
>>
>> This already works.
>
> In 2.7 I assume, because it doesn't work in 2.6.2. Great anyway :)
Of course only 2.7.1 :P
>>> function<T: TObject> Alias1(Source: T): TAlias1<T>;
>>
>> I don't really get what you want to express with that...
>
> This is a Java a construction, I don't know whether it exists in other
> languages.
> In Java you specify it before the result type. It means the
> parameterized result is be based on the parameter it receives. You can
> also "bind" several parameters:
>
> static <T extends Comparable> int IndexOf(List<T> p_list, T p_item);
So you're basically just talking about generic methods here? The Delphi
compatible syntax for your two examples are:
=== code begin ===
function Alias1<T: TObject>(Source: T): TAlias1<T>;
function IndexOf<T: Comparable>(p_list: List<T>; p_item: T): LongInt;
=== code end ===
Support for generic methods (and global functions/procedures) is already
planned. They will of course support generic constraints as well (it
would be inconsistent if they wouldn't).
Regards,
Sven
More information about the fpc-pascal
mailing list