[fpc-devel] Suggestion for change: Overly strict check
Micha Nelissen
micha at neli.hopto.org
Tue Oct 3 13:15:38 CEST 2006
On Tue, Oct 03, 2006 at 07:36:11AM +0000, Vinzent Hoefler wrote:
> On Monday 02 October 2006 17:16, Micha Nelissen wrote:
> > Ok, so enforcing different names is good then, that makes code more
> > context insensitive, since identifiers won't suddenly "resolve" to
> > parameters with the same name.
>
> No, it's more like the other way around. You get sudden name clashes
> which you didn't have before, because in the other class the field
> which clashes with your wisely chosen parameter name didn't exist.
We should be talking about semantics, not about 'compabilility whatever
the resulting meaning may be'.
> There's a reason, I always write "self.Identifier" and I also refuse to
> revert back to the so called Hungarian notation (like AParameter). Even
> if there is *no* parameter and/or field with that name it's always
> clear which part is meant.
This is not Hungarian notation. Hungarian is to prefix variable names
with the (abbreviated) type.
> It would be more wise to warn about name clashes between units, because
> for example NewStr is defined in objects.pas and in classes.pas (IIRC),
> but depending on which one and how it is used your program may crash.
Agree, it's separate, but a good point.
> As long as such problems exist in the language definition itself, this
> whole discussion about "cleaner code" and if such syntactic checks are
> needed is f*cking pointless, because the language already forces you to
> use fully qualified names anyway if you want to avoid such problems. So
> you can as well use "self" to distiguish between parameters and fields
> even if they have the same name.
In theory, yes, but in practice nobody prefixes every field usage of
self with 'Self.'.
Micha
More information about the fpc-devel
mailing list