mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-11 20:51:17 +02:00

tests o currently not yet integrated in the makefile system, use testall.sh/ testall.bat to run the tests git-svn-id: branches/jvmbackend@18777 -
44 lines
931 B
ObjectPascal
44 lines
931 B
ObjectPascal
program classmeth;
|
|
|
|
{$mode delphi}
|
|
|
|
type
|
|
TElCustomCryptoProviderClass = class of TElCustomCryptoProvider;
|
|
TElCustomCryptoProvider = class
|
|
class procedure SetAsDefault;
|
|
class procedure DoSetAsDefault(Value : TElCustomCryptoProviderClass);
|
|
end;
|
|
|
|
tc2 = class(TElCustomCryptoProvider)
|
|
class procedure SetAsDefault; //reintroduce;
|
|
end;
|
|
|
|
|
|
var
|
|
x: TElCustomCryptoProviderClass;
|
|
|
|
class procedure TElCustomCryptoProvider.SetAsDefault;
|
|
begin
|
|
DoSetAsDefault(Self); /// Illegal expression
|
|
end;
|
|
|
|
class procedure TElCustomCryptoProvider.DoSetAsDefault(Value : TElCustomCryptoProviderClass);
|
|
begin
|
|
// SetDefaultCryptoProviderType(Value);
|
|
x:=value;
|
|
end;
|
|
|
|
class procedure tc2.SetAsDefault;
|
|
begin
|
|
DoSetAsDefault(Self);
|
|
end;
|
|
|
|
begin
|
|
TElCustomCryptoProvider.SetAsDefault;
|
|
if x<>TElCustomCryptoProvider then
|
|
raise JLException.create('first');
|
|
tc2.SetAsDefault;
|
|
if x<>tc2 then
|
|
raise JLException.create('second');
|
|
end.
|