Generic problem: function Iif<T> ... : Wrong number of parameters specified for call to "Iif$1"
Original Reporter info from Mantis: silvioprog
-
Reporter name: silvioprog
Original Reporter info from Mantis: silvioprog
- Reporter name: silvioprog
Description:
Hello,
FPC can't compile inline generic specialization:
project1.exe: Exit code 1, Errors: 2 project1.lpr(25,45) Error: Wrong number of parameters specified for call to "Iif$1" project1.lpr(12,25) Error: Found declaration: class Iif$1(Boolean;const T;const T):&LtPos;undefined type>; Static;
Steps to reproduce:
Just try to compile the code below:
program Project1; {$mode delphi} type TUtils = class sealed(TObject) public class function Iif&LtPos;T>(ACondition: Boolean; const ATrueValue, AFalseValue: T): T; static; end; class function TUtils.Iif&LtPos;T>(ACondition: Boolean; const ATrueValue, AFalseValue: T): T; begin if ACondition then Result := ATrueValue else Result := AFalseValue; end; var S: string; begin S := TUtils.Iif&LtPos;string>(False, 'YES', 'NO'); S := TUtils.Iif&LtPos;string>(True, 'YES', 'NO'); end.
Mantis conversion info:
- Mantis ID: 29546
- Version: 3.1.1
- Fixed in version: 3.1.1
- Fixed in revision: 33037 (#05174f3e)