Paul Ishenin schrieb:
23.07.2010 9:20, Paul Ishenin wrote:
Is that intended? Or should a visibility change exit the type section?
This is a bug. I will fix it.
What to do with the generics syntax? FPC do this so:
generic TFPGList<T> = class(TFPSList)
type public
TCompareFunc = function(const Item1, Item2: T): Integer;
var protected
FOnCompare: TCompareFunc;
function ItemPtrCompare(Item1, Item2: Pointer): Integer;
public
constructor Create;
end;
This IMO is the wrong way. Remember that visibility sections require
(Delphi) that field declarations are not preceded by other (method...)
declarations. In so far a visibility specifier is somewhat equivalent to
"var". The "interface" and "implementation" sections also are kind of
visibility specifiers.
If we ever should agree that declaration sections (var, type...) can be
split into subsections of different visibility, then this should apply
to the entire interface part, not only to (inside) class declarations.
At the same time we should allow for (kind of, implied) "forward"
declarations for types, so that the final declaration of non-public
types can be moved into the implementation section - reducing chances
for circular unit references a lot! (kind of "partial" class declarations?)
DoDi
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel