Can anyone help complete a list of all possible operators that could be used 
with constants in a record? I keep finding bugs with new operators so I need an 
exhaustive list for testing. The goal is complete the parser phase for the 
generic without getting errors so that only when it’s specialized you get 
specific errors if the wrong type was used.

Here’s what I have so far in my test:

type
  generic TUnaryOp<const I> = record
    const
      d0 = -I;
      d1 = +I;
      d2 = not I;
  end;

type
  generic TBinaryOp<const I> = record
    const
      d0 = I + I;
      d1 = I - I; 
      d2 = I * I; 
      d3 = I / I; 
      d4 = I div I; 
      d5 = I mod I; 
      d6 = I and I;
      d7 = I or I;
  end;

In addition to this are there other places where constants could be used in a 
record? I’m only aware of default values for function parameters.

type
  generic TRoutines<const I> = record
    procedure DoThis(param: integer = I);
  end;


Regards,
        Ryan Joseph

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to