[fpc-devel] Fatal: Internal error 200111022
Michael Van Canneyt
michael at freepascal.org
Wed Oct 20 21:43:41 CEST 2010
On Wed, 20 Oct 2010, Sven Barth wrote:
> On 20.10.2010 15:33, Jonas Maebe wrote:
>>
>> On 20 Oct 2010, at 15:12, Sergei Gorelkin wrote:
>>
>>> Jonas Maebe пишет:
>>>> Prohibiting it breaks the compilation of dom_html.pp:
>>>> dom_html.pp(66,14) Error: Duplicate identifier "ClassName"
>>> If dom_html is the only problem, I think it can be fixed (by renaming
>>> ClassName). The w3.org specs
>>> has many property names which clash with Pascal reserved words (type,
>>> label, etc. That 'ClassName'
>>> was intended to be 'Class'.), so it's anyway impossible to follow the
>>> specs closely.
>>
>> Other than the ones from my second mail, Lazarus also has problems:
>>
>> comctrls.pp(930,14) Error: Duplicate identifier "Owner"
>> comctrls.pp(930,14) Hint: Identifier already defined in unit CLASSES at
>> line 497
>>
>> (and probably more, since the compilation doesn't get further).
>>
>> I guess it's more realistic to allow it in all modes.
>
> I don't know how others or the devs see that, but in my opinion its a very
> confusing possibilty to be able to redeclare e.g. "ClassName" (I shivered
> heavily when I read that). Like it's also confusing to have local variables
> in methods named like members of that class (which is forbidden in objfpc as
> well as you all might know).
>
> All these cases should be fixed (although that might break further code), but
> its for some greater good (less confusion for new users of such a class).
> Until the release after 2.4.2 all code will be fixed hopefully (what about
> adding a warning to 2.4.2 for such cases?).
If prohibiting (my preferred option) would cause too much breakage, I would
also think that a warning is the least we can do.
I'm sure that the ComCtrls case above is a very dubious case indeed, I see very
little reason to override TComponents 'Owner'.
Michael.
More information about the fpc-devel
mailing list