operator overload doesn't respect a NEW-type type alias

Summary

please read chapter "3.8 Type aliases" in the fp ref.guide 3.2.2
or the following lines:
|  3.8 Type aliases
|  ....
|     Type MyInteger = Type Integer;
|  actually creates a new different type.
|  ....
|  There are three consequences of having DIFFERENT types:
|  1. ....
|  2. They can be used in function overloads, that is
|        Procedure MyProc(A : MyInteger); overload;
|        Procedure MyProc(A : Integer); overload;
|     will work. This will not work with a simple type alias.
|  3. They can be used in operator overloads, that is
|        Operator +(A,B : MyInteger) : MyInteger;
|     will work too.
I tested 2+3, 2 works, 3 not.

System Information

  • Operating system: openSUSE Leap 15.6
  • Processor architecture: x86-64
  • Compiler version: 3.2.2
  • Device: computer

Steps to reproduce

compile (mode fpc) (and run) the example below, with both values of the 'define'.

Example Project

{$define p1}   // p1 or p2
{$ifdef p1}
   type myinteger = type integer;

   operator +( a,b: myinteger ) c: myinteger;    // --> 'Impossible operator
   begin                                         //                  overload'
      c:=3
   end;

   var
      i: integer;
      m: myinteger;
   begin
      i:=0; m:=0;
      writeln( 'i+i:  ', i+i );         // should be  'i+i:  0'
      writeln( 'm+m:  ', m+m )          // should be  'm+m:  3'
   end .
{$endif}
   // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{$ifdef p2}
   type myinteger = type integer;

   procedure myproc( a: integer); overload;
   begin
      writeln( 'myproc int' )
   end;

   procedure myproc( a: myinteger); overload;
   begin
      writeln( 'myproc myint' )
   end;

   var
      i: integer;
      m: myinteger;
   begin
      i:=0; m:=0;
      myproc(i);            // -->  'myproc int'        (ok)
      myproc(m);            // -->  'myproc myint'      (ok)
   end .
{$endif}

What is the current bug behavior?

in case 'p1' a compile time error message 'Impossible operator overload'. i think there is a clear contradiction to the fp reference, mentioned above.

What is the expected (correct) behavior?

no error message (compile+run time).