On Fri, Mar 2, 2012 at 5:14 PM, Sven Barth <pascaldra...@googlemail.com> wrote: > On 02.03.2012 20:03, Sven Barth wrote: >> >> > One more question: why this feature isn't works when used with >> arguments? >> > The arguments could have the same name of a property. >> >> Normally it should work with arguments as well, but there is a bug if >> you define a property with an identifier that's used in a method that >> was defined before the property. In that latter case the check does not >> work. > > > To illustrate this a bit: > > === source begin === > > program dupidenttest; > > {$mode objfpc} > > type > TTest1 = class > fFoo: LongInt; > property Foo: LongInt read fFoo; > procedure Bar(Foo: LongInt); > end; > > TTest2 = class > fFoo: LongInt; > procedure Bar(Foo: LongInt); > property Foo: LongInt read fFoo; > end; > > procedure TTest1.Bar(Foo: LongInt); > begin > > end; > > procedure TTest2.Bar(Foo: LongInt); > begin > > end; > > begin > > end. > > === source end === > > results in the following compiler output: > > === output begin === > > Free Pascal Compiler version 2.6.0 [2011/12/23] for i386 > Copyright (c) 1993-2011 by Florian Klaempfl and others > Target OS: Linux for i386 > Compiling dupidenttest.pas > dupidenttest.pas(9,19) Error: Duplicate identifier "Foo" > dupidenttest.pas(31) Fatal: There were 1 errors compiling module, stopping > Fatal: Compilation aborted > Error: /mnt/data/applications/fpc/2.6.0/bin/ppc386 returned an error > exitcode (normal if you did not specify a source file to be compiled) > > === output end === > > If I comment out TTest1 then the program compiles successfully. > > > Regards, > Sven
OK. Well, the safe way is using a prefix/suffix in everything. Thanks for the example. Marcos Douglas _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal