Есть исходник, из текста которого неясно, вызывается функция или процедура (конкретно - это модуль в исходниках FPC, называется AVL_TREE.PP).
Процедура и функция имеют одно имя, являются методами одного класса, в качестве формальных параметров получают класс или указатель:
- Код: Выделить всё
TAVLTree = class
...
procedure Add(ANode: TAVLTreeNode);
function Add(Data: Pointer): TAVLTreeNode;
...
Соответственно, можно вызвать функцию как процедуру, ничему не присваивая результат вычисления функции, и компилятор это проглотит

В результате исходник стал неоднозначным.
Можно ли запретить такую вольность?