On Fri, 05 Dec 2014 07:06:34 +0000 Andre via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
> Hi, > > following coding fails to compile with 2.066.0 and > 2.067.0-b1. > > > This is a bug, or? > source\app.d(9): Error: mixin > app.Data.insertReadMethods!("readTinyInt", ubyte) > is not defined > > template insertReadMethods(string MethodName, DataType) > { > enum insertReadMethods = ""; > } > > struct Data > { > mixin insertReadMethods!("readTinyInt", ubyte); > mixin insertReadMethods!("readTinyInt", ubyte); > } > > void main(){} i.e. "mixin template" inserts it's names into the same scope, and compiler searching symbols from innermost scope up to module scope. here first mixin inserts 'enum' member, and searching for second mixin hits that enum member. to avoid things going out of control compiler is not trying to guess what you want but stops with error, giving you a chance to fix the code.
signature.asc
Description: PGP signature