digitalmars.D.bugs - Mixins creating nested functions in class methods
- David Friedman (32/32) May 03 2005 The 'class NotOk' example fails to compile with the error message:
- Thomas Kuehne (12/43) May 14 2005 -----BEGIN PGP SIGNED MESSAGE-----
The 'class NotOk' example fails to compile with the error message: "need 'this' to access member write" ------------------ class Ok { void write(int v) { } template rwop(alias F) { void op() { write(F(42)); } } ubyte asl(ubyte b) { return b << 1; } mixin rwop!(asl) rwAsl; void run() { rwAsl.op(); } } --------------------- class NotOk { void write(int v) { } template rwop(alias F) { void op() { write(F(42)); } } ubyte asl(ubyte b) { return b << 1; } void run() { // this works... void rwAslOp() { write(asl(42)); } rwAslOp(); // ... but this does not mixin rwop!(asl) rwAsl; rwAsl.op(); } } -------------------- David
May 03 2005
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 David Friedman schrieb am Tue, 03 May 2005 20:39:00 -0400:The 'class NotOk' example fails to compile with the error message: "need 'this' to access member write" ------------------ class Ok { void write(int v) { } template rwop(alias F) { void op() { write(F(42)); } } ubyte asl(ubyte b) { return b << 1; } mixin rwop!(asl) rwAsl; void run() { rwAsl.op(); } } --------------------- class NotOk { void write(int v) { } template rwop(alias F) { void op() { write(F(42)); } } ubyte asl(ubyte b) { return b << 1; } void run() { // this works... void rwAslOp() { write(asl(42)); } rwAslOp(); // ... but this does not mixin rwop!(asl) rwAsl; rwAsl.op(); } } --------------------Added to DStress as http://dstress.kuehne.cn/run/m/mixin_13_A.d http://dstress.kuehne.cn/run/m/mixin_13_B.d Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFChcEt3w+/yD4P9tIRAm8mAKDLrolrXx/lrjHcYcFIKbAgXIiKqgCfZHKW BbuIJ27ckwmEcVppmEdWF3o= =wtSg -----END PGP SIGNATURE-----
May 14 2005