{: test a compilation error occurs if parameter lists are not congruous }

{$d+}
program e002( output );

type
   smallInt  = 1..10;
   arrayType =   array['1'..'9'] of integer;

var
   aci, aci1 : arrayType;
   aci2      : array['1'..'9'] of integer;

   aii : array[1..9] of integer;

procedure p1(ii1: integer);
begin
   aci1['1'] := ii1;
end; { p1 }

procedure p2( function ff1: integer);
var
   z   : char;
begin
   z := '3';
   aci2[z] := 3;
   aci['8'] := 3;
end;

procedure test( procedure p(ii1: integer ) );
begin
   p(aii[2]);
end; { test }

begin {e002}

   test(p1);    { OK }
   test(p2);    { !!! parameter is not a function }
   writeln( 'fails: parameter list type error not detected' );

end. { e002 }

