On 11/02/2021 04:20, Ryan Joseph via fpc-pascal wrote:
On Feb 10, 2021, at 7:47 PM, Martin Frb via fpc-pascal
<fpc-pascal@lists.freepascal.org> wrote:
I understand it is for conflict resolution only. But see my example => as soon
as you need to repeat a trait with just a change in name, you always need conflict
resolution.
Please post the code snippet again. I'm not sure I understand what you're
saying.
TEmployeList = trait
function FindByUnallocateWorkTime: TEmploye;
// other functions/members
end;
TCompany = class
end;
Now the company could have Engineers and Designers. It needs to lists....
But the trait can obviously only be added once.
Yet no-one wants to copy and paste the trait to create a 2nd verson
Maybe Something like (aliasing / no need to copy implementation)
TDesignerList = trait(TEmployeList)
function FindDesigerByUnallocateWorkTime: TEmploye; aliases
FindByUnallocateWorkTime; // no body /just a name replacement
// and the others
end;
===>
TCompany = class
_TraitDesigner: TDesignerList ;
_TraitEngeneers: TEmployeList;
end;
This is clearly something that can be done later. **IF** the design is
chosen to allow for it.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal