fpc/tests/test/tthlp9.pp
svenbarth ddb78fefdc Add a modeswitch for type helpers as discussed in core on 24th October 2013. It is disabled by default in all modes (afterall type helper support in Delphi started only beginning with XE3)
+ globtype.pas: add new modeswitch to modeswitch enum and name array
* ptype.pas & pdecobj.pas: check for new modeswitch instead of modeswitch class
* ppu.pas: increase ppu version as we've added a new modeswitch which requires correctly compiled units

* adjusted tests to enabled the modeswitch when necessary
+ added three new tests that check for correct functionality of modeswitch typehelpers

git-svn-id: trunk@26796 -
2014-02-16 12:58:24 +00:00

39 lines
676 B
ObjectPascal

{ this tests that class methods can be used in type helpers }
program tthlp9;
{$mode objfpc}
{$modeswitch typehelpers}
{$apptype console}
type
TInt32Helper = type helper for Int32
class function Test: LongInt; static;
end;
TShortStringHelper = type helper for ShortString
class function Test: LongInt; static;
end;
class function TInt32Helper.Test: LongInt;
begin
Result := SizeOf(Int32);
end;
class function TShortStringHelper.Test: LongInt;
begin
Result := SizeOf(AnsiChar);
end;
var
i: LongInt;
begin
if LongInt.Test <> 4 then
Halt(1);
if i.Test <> 4 then
Halt(2);
if ShortString.Test <> 1 then
Halt(3);
Writeln('OK');
end.