Re: [fpc-devel] FPC 3.0.0 class property default

2015-10-31 Thread Mark Morgan Lloyd

Mark Morgan Lloyd wrote:

Up to and including 2.6.4, this works:

TRoundRobin= CLASS(TObject)
.
 PUBLIC
.
(*$IFDEF HAS_TRUE YIELD *)
   PROPERTY HasTrueYield: BOOLEAN DEFAULT TRUE;
(*$ELSE *)
   PROPERTY HasTrueYield: BOOLEAN DEFAULT FALSE;
(*$ENDIF*)
.
 END;

However using 3.0.0 rc1 I get

roundrobin.pas(80,55) Fatal: Syntax error, "READ" expected but 
"identifier DEFAULT" found


It looks as though this was coded for a facility that wasn't actually 
used, but that the intention was to convert a compile-time conditional 
into something that could be incorporated into an ordinary boolean 
expression.


What is the correct syntax, and how far back is FPC compatible with it?


Anybody got any thoughts on this please?

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel


Re: [fpc-devel] FPC 3.0.0 class property default

2015-10-31 Thread Sven Barth
Am 31.10.2015 12:40 schrieb "Mark Morgan Lloyd" <
markmll.fpc-de...@telemetry.co.uk>:
>
> Mark Morgan Lloyd wrote:
>>
>> Up to and including 2.6.4, this works:
>>
>> TRoundRobin= CLASS(TObject)
>> .
>>  PUBLIC
>>
>> .
>> (*$IFDEF HAS_TRUE YIELD *)
>>PROPERTY HasTrueYield: BOOLEAN DEFAULT TRUE;
>> (*$ELSE *)
>>PROPERTY HasTrueYield: BOOLEAN DEFAULT FALSE;
>> (*$ENDIF*)
>> .
>>  END;
>>
>> However using 3.0.0 rc1 I get
>>
>> roundrobin.pas(80,55) Fatal: Syntax error, "READ" expected but
"identifier DEFAULT" found
>>
>> It looks as though this was coded for a facility that wasn't actually
used, but that the intention was to convert a compile-time conditional into
something that could be incorporated into an ordinary boolean expression.
>>
>> What is the correct syntax, and how far back is FPC compatible with it?
>
>
> Anybody got any thoughts on this please?

I answered already on 27th October. In case you missed it here's my answer
again:

A property must have at least a read or a write accessor if it isn't
inherited, so you need to add at least one of them. Since that is the
standard form for properties FPC supports this since the "default" keyword
for properties is supported.

Regards,
Sven
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel


Re: [fpc-devel] FPC 3.0.0 class property default

2015-10-27 Thread Sven Barth
Am 27.10.2015 12:30 schrieb "Mark Morgan Lloyd" <
markmll.fpc-de...@telemetry.co.uk>:
> What is the correct syntax, and how far back is FPC compatible with it?

A property must have at least a read or a write accessor if it isn't
inherited, so you need to add at least one of them. Since that is the
standard form for properties FPC supports this since the "default" keyword
for properties is supported.

Regards,
Sven
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel


Re: [fpc-devel] FPC 3.0.0 class property default

2015-10-27 Thread Ondrej Pokorny

On 27.10.2015 12:24, Mark Morgan Lloyd wrote:

Up to and including 2.6.4, this works:

TRoundRobin= CLASS(TObject)
..
 PUBLIC
..
(*$IFDEF HAS_TRUE YIELD *)
   PROPERTY HasTrueYield: BOOLEAN DEFAULT TRUE;
(*$ELSE *)
   PROPERTY HasTrueYield: BOOLEAN DEFAULT FALSE;
(*$ENDIF*)
..
 END;

However using 3.0.0 rc1 I get

roundrobin.pas(80,55) Fatal: Syntax error, "READ" expected but 
"identifier DEFAULT" found


It looks as though this was coded for a facility that wasn't actually 
used, but that the intention was to convert a compile-time conditional 
into something that could be incorporated into an ordinary boolean 
expression.


What is the correct syntax, and how far back is FPC compatible with it?



IMO
*   PROPERTY HasTrueYield DEFAULT TRUE; **
***
Ondrej
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel


Re: [fpc-devel] FPC 3.0.0 class property default

2015-10-27 Thread Ondrej Pokorny

On 27.10.2015 12:32, Ondrej Pokorny wrote:

*   PROPERTY HasTrueYield DEFAULT TRUE; **
*


But then there has tobe a property to override.

What do you use
PROPERTY HasTrueYield: BOOLEAN DEFAULT TRUE;
for?

In 2.6.4 you cannot read this property. Is it useful for RTTI?

Ondrej
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel


[fpc-devel] FPC 3.0.0 class property default

2015-10-27 Thread Mark Morgan Lloyd

Up to and including 2.6.4, this works:

TRoundRobin= CLASS(TObject)
..
 PUBLIC
..
(*$IFDEF HAS_TRUE YIELD *)
   PROPERTY HasTrueYield: BOOLEAN DEFAULT TRUE;
(*$ELSE *)
   PROPERTY HasTrueYield: BOOLEAN DEFAULT FALSE;
(*$ENDIF*)
..
 END;

However using 3.0.0 rc1 I get

roundrobin.pas(80,55) Fatal: Syntax error, "READ" expected but 
"identifier DEFAULT" found


It looks as though this was coded for a facility that wasn't actually 
used, but that the intention was to convert a compile-time conditional 
into something that could be incorporated into an ordinary boolean 
expression.


What is the correct syntax, and how far back is FPC compatible with it?

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel