> On Jan 30, 2024, at 8:53 PM, Michael Van Canneyt via fpc-devel
> <[email protected]> wrote:
>
> 'yes I do' what exactly ?
>
> I thought I understood after your previous mail. Now I read your sentence as
> an argument for not having a "final" at all, so this is again confusing for
> me :/
I stepped in the middle of this and I didn't know methods could be final until
now so maybe I'm confused to :). This is what we're talking out right?
type
TAnimal = class
procedure Fly; virtual;
end;
TBird = class
procedure Fly; override;
end;
THawk = class
procedure Fly; final; // does it require override too or just final?
end;
The idea is that now if you do:
procedure FlyHawk(hawk: THawk);
begin
hawk.Fly;
end;
The compiler can just call THawk.Fly instead of using the VTable because it
knows that no class in another unit overrode Fly after THawk. The same applies
if the entire class is final too I would presume.
Regards,
Ryan Joseph
_______________________________________________
fpc-devel maillist - [email protected]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel