2
0

tobjc34a.pp 891 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. { %fail }
  2. { %target=darwin }
  3. { %cpu=powerpc,powerpc64,i386,x86_64,arm,aarch64 }
  4. { Written by Jonas Maebe in 2010, released into the public domain }
  5. {$mode objfpc}
  6. {$modeswitch objectivec1}
  7. type
  8. MyOverride = objcclass(NSObject)
  9. class procedure testClassOverride; message 'testClassOverride';
  10. end;
  11. MyOverride2 = objcclass(MyOverride)
  12. class procedure testClassOverride; override;
  13. end;
  14. tmyoverrideclass = class of NSObject;
  15. var
  16. selfshouldbe: tmyoverrideclass;
  17. class procedure MyOverride.testClassOverride;
  18. begin
  19. if (self<>selfshouldbe) then
  20. halt(20);
  21. writeln('MyOverride.testClassOverride');
  22. end;
  23. class procedure MyOverride2.testClassOverride;
  24. begin
  25. if (self<>selfshouldbe) then
  26. halt(21);
  27. writeln('MyOverride2.testClassOverride');
  28. end;
  29. var
  30. a: MyOverride;
  31. classclass: tmyoverrideclass;
  32. begin
  33. classclass:=MyOverride;
  34. a:=classclass.init;
  35. end.