Having same function names as parameter names per se isn't a biggy but the biggest problem is:
TFirst = class protected FFirst: Integer; public property First: Integer read FFirst write FFirst; end; TTest = class(TFirst) FSomething: Integer; public procedure DoWithFirst(a, First: Integer); end; implementation procedure TTest.DoWithFirst(a, First: Integer); begin First:=a; // ??? FSomething:=First; // ??? end; Ofcourse the intention was setting FSomething to value of argument First and setting FFirst to value of First. It CAN be achieved with "FFirst" or "self.First" but it's just a stupid example of how easily you can overlook things especialy if some parts are hidden in another unit somewhere in an ancestor. Also notice that in mode delphi there's not a single warning about this. And believe me things like this CAN happen and will take you 3 days to find out... I name my arguments "aName" since this incident and not because {$objfpc}... PS: there are worse cases but I can't remember a better example now Ales _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel