Hi,
for the source code below, the compiler says:
app.d(26): constructor app.TObject.this
hides base class function app.DelphiObject.this
app.d(26): add alias this = app.DelphiObject.this
to app.TObject
's body to merge the overload sets
But if I add alias this = app.DelphiObject.this
then the compiler says, the syntax is wrong:
Error: identifier or new
expected following .
, not this
app.d(20): Error: cannot use syntax alias this = app.DelphiObject
, use alias app.DelphiObject this
instead
But If I use alias app.DelphiObject this
then another error is shown:
app.d(22): Error: no identifier for declarator app.DelphiObject
app.d(22): this
is a keyword, perhaps append _
to make it an identifier
What is the correct "alias this" syntax to be able to access the super constructor (DelphiObjectReference)?
struct DelphiObjectReference
{
ptrdiff_t reference;
}
mixin template PascalClass(string name)
{
this (DelphiObjectReference r){}
}
class DelphiObject
{
this(){}
this (DelphiObjectReference r){}
}
class TObject : DelphiObject
{
mixin PascalClass!("System.TObject");
this(TObject AOwner){}
}
void main()
{
new TObject(DelphiObjectReference(123));
}
Kind regards
André