diff --git a/tests/test/terecs6.pp b/tests/test/terecs6.pp index f0a5551612..5a7b8c9aa3 100644 --- a/tests/test/terecs6.pp +++ b/tests/test/terecs6.pp @@ -34,6 +34,8 @@ type class operator BitwiseXor(a, b: TFoo): TFoo; class operator Inc(a: TFoo): TFoo; class operator Dec(a: TFoo): TFoo; + class operator Negative(a: TFoo): TFoo; + class operator Positive(a: TFoo): TFoo; end; class operator TFoo.Explicit(a: TFoo): Integer; @@ -167,6 +169,17 @@ begin Result.F := a.F - 1; end; +class operator TFoo.Negative(a: TFoo): TFoo; +begin + Result.F := -a.F; +end; + +class operator TFoo.Positive(a: TFoo): TFoo; +begin + // to check that operator is called change the result value + Result.F := a.F+1; +end; + var a, b: TFoo; i: integer; @@ -232,5 +245,11 @@ begin halt(26); if Integer(b) <> 2 then halt(27); + b := -b; + if b.F <> -1 then + halt(28); + b := +b; + if b.F <> 0 then + halt(29); WriteLn('ok'); end.