Wen ich ein Typ von einem anderen Typ ableite und beide Typen ein typehelper haben, hat der Compiler Probleme.
Der Code sollte selbsterklärend sein. Spannend ist das zwischen begin und end.
Getestet mit FPC 3.3.1 Linux 64bit.
Code: Alles auswählen
program project1;
{$modeswitch typehelpers}
type
TGlfloats = array of single;
TVectors2f = TGlfloats; // Ableitung 1
TVectors3f = TGlfloats; // Ableitung 2
TGlfloatsHelper = type Helper for TGlfloats
procedure Testfloat;
end;
TVectors2fHelper = type Helper for TVectors2f
public
procedure TestV2;
end;
TVectors3fHelper = type Helper for TVectors3f
public
procedure TestV3;
end;
procedure TVectors3fHelper.TestV3;
begin
WriteLn('V3');
end;
procedure TVectors2fHelper.TestV2;
begin
WriteLn('V2');
end;
procedure TGlfloatsHelper.Testfloat;
begin
WriteLn('float');
end;
var
v2: TVectors2f=nil;
v3: TVectors3f=nil;
f: TGlfloats=nil;
begin
v2.TestV2; // illegal qualifier
v3.TestV3; // geht
f.Testfloat; // illegal qualifier
v2.TestV3; // geht komischwerweise
end.