Hi,

I am trying to compile the following code:

unit Point3DType;

interface

uses SysUtils, Classes;

type Point3DTrMat = Array [0..8] of double; // 3x3 Transformation matrix (row-major)

type Point3D = record

x, y, z: double;

class operator Multiply(const left:Point3DTrMat; const right:Point3D):Point3D; overload; // Matrix multiplication (result is a column-matrix)

end;

implementation

class operator Point3D.Multiply(const left:Point3DTrMat; const right:Point3D):Point3D;

var retval: Point3D;

begin

Result := retval;

end;

end.

I get the following error message with -Sv compiler option:

Point3DType.pas(11,86) Error: Impossible operator overload

Point3DType.pas(14,1) Fatal: There were 1 errors compiling module, stopping

Fatal: Compilation aborted

Error: C:\FPC3.2.3\bin\x86_64-win64\ppcx64.exe returned an error exitcode

The problem is with the Point3DTrMat variable in the multiply operator. Theoretically, can its type be a static array?

`FPC version: fixes_3_2`

language mode: delphi

target OS: Win64

instructionset: COREAVX2

fpu: AVX2