Am 16.04.2013 09:57, schrieb Anthony Walter:
I just wanted to get some opinions on this as to whether this is a bug. Generics in 2.7.x trunk allows units which use a generic class defined in another unit can access protected members.

Example:

unit A;

type
  TFoo<T> = class
  protected
    Bar: T;
  end;

<-- snip to next unit -->

unit B;

uses A;

Foo: TFoo<Integer>;
...
Foo.Bar := 42; // Code in unit B can access protected members of TFoo.

Should the above line generate a compiler error instead? That is ... TFoo.Bar shouldn't visible unless your code is in Unit A or in a method of a class which inherits TFoo<T>?

Delphi XE generates an error here, so this is indeed a bug. Would you please report it together with a complete example?

Regards,
Sven
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to