Although this specific example doesn't reproduce the problem in a small project, this caused the problem in a larger project. The function was defined as follows:
interface function CompareItemEqualStatus(const Value1: TSomeEnumeratedType; const Value2: TSomeEnumeratedType): Integer; implementation function CompareItemEqualStatus(const Value1: TSomeEnumeratedType; const Value2: TSomeEnumeratedType): Integer; overload; begin ... end;
Solution[]
The function was defined with overload but there was no second function that was overloaded. Removing "overload" fixed the problem.