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
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus