[Lazarus] Forward declaration not solved
Hans-Peter Diettrich
DrDiettrich1 at aol.com
Fri Aug 9 22:00:18 CEST 2013
Santiago Amposta schrieb:
> El 09/08/2013 11:15, Antonio Fortuny escribió:
>> But the isn't there some ambiguity between LCL declarations and FPC
>> declarations for what is obviously the same type ?
>> Thanks Mattias,
>>
>
> In delphi, exists sysutils.abort and windows.abort. I don't know how
> long it took me to find the bug: Just because "windows" was used after
> "sysutils". In this case the compiler didn't complain, and the errors
> where very weird.
>
> Other languages, like Ada, raise a compiler error. IMHO, the FPC should
> not allow such ambiguity and raise an error, asking to qualify the
> identifier. I suppose it would break backward compatibility, a directive
> {$Check_Ambiguity+} would be fine for me ;-)
Some more people would like something like that. The compiler developers
most probably won't, because it would slow down compilation.
As a compromise a directive $RequireQualification could be added,
forcing error messages with *all* unqualified identifiers in the unit.
This in fact could speed up compilation, because searching the Uses
lists is not required any more. But before using such an switch a tool
or feature would be required to qualify all unambiguous identifiers, and
to offer choices for the ambiguous ones.
A global directive won't work, because the FCL, LCL and all other
library writers most probably won't update their code, only to please
some users. And I wouldn't like that, too, because it adds so many
qualifiers to the code, that it will become almost unreadable to me (and
other coders).
> Sure it's a FPC topic, but I couldn't help... it's just a rant ;-)
Ask again in FPC-devel, or create an feature request.
Or write your own tool for finding ambiguous declarations, and the whole
world will praise you ;-)
DoDi
More information about the Lazarus
mailing list