Am 21.12.2010 00:23, schrieb Jonas Maebe:

On 21 Dec 2010, at 00:16, Jonas Maebe wrote:

On 20 Dec 2010, at 21:37, Sven Barth wrote:

- should abstract methods be forbidden?

Yes, since
a) they are virtual
b) even if it were possible to have virtual methods, there would be no
way to override them with implementations that do something (since you
cannot inherit from a class helper)

Actually, it seems that inheritance is in fact allowed for Delphi-style
class helpers: http://qc.embarcadero.com/wc/qcmain.aspx?d=76577 (it's
not for Objective-C categories). But I'm still quite sure you cannot do
anything that requires changes to the VMT of the helped class.


Ok... I should be able to implement that rather easy.

There are also at some extra checks that must be added for
constructors/destructors introduced via class helpers
(Objective-C/Pascal doesn't have constructors or destructors, so it
doesn't matter there):
*
http://docwiki.embarcadero.com/RADStudio/en/E2295_A_class_helper_cannot_introduce_a_destructor_(Delphi)

Should be easy to check.

*
http://docwiki.embarcadero.com/RADStudio/en/E2296_A_constructor_introduced_in_a_class_helper_must_call_the_parameterless_constructor_of_the_helped_class_as_the_first_statement_(Delphi)

Ok... O.o that will be an interesting one.

*
http://docwiki.embarcadero.com/RADStudio/en/E2358_Class_constructors_not_allowed_in_class_helpers_(Delphi)

As we don't have them yet...

Regards,
Sven
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to