On 15 May 2013, at 10:59, leledumbo wrote:

Is the following a bug or undocumented "feature"?

function f(s: string): string;
begin
 f := '''' + s + '''';
end;

function f(s: string): integer;
begin
 Val(s,f);
end;

var
 i: Integer;
begin
// i := f('123'); // Error: Incompatible types: got "ShortString" expected
"SmallInt"
 WriteLn(f('123')); // Calls function f(s: string): string;
end.

Looks like a bug. I guess they currently don't conflict because the string result is passed via a hidden parameter while the integer result is not.


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to