There are some issues with mixing opDispatch and property syntax. Try: base.items().printValue( true );
This list is not for posting bug reports, it's just for bugzilla issues. Please post this kind of thing to d.learn or open a bug report at http://d.puremagic.com/issues/ "Daniel L. Alves" <daniel_lopes_al...@hotmail.com> wrote in message news:jgd1oj$2r04$1...@digitalmars.com... > Hi, > I don't know if this is really a bug or some gotcha of the language that I > don't get. I'm sorry if it happens to be the later. > > When I run this simple program > > class DispatchBase > { > auto opDispatch( string m, Args... )( Args args ) > { > writefln( "Tried to call %s", m ); > return this; > } > } > > class DispatchDerived : DispatchBase > { > void printValue( T )( T value ) > { > writefln( "Value is %s", value ); > } > } > > void main() > { > DispatchBase base = new DispatchDerived(); > base.items.printValue( true ); > } > > I receive this output > > Tried to call items > Tried to call printValue > > But what I was expecting is > > Tried to call items > Value is true > > After all, opDispatch returns 'this'. The interesting thing is that when I > move opDispatch up to DispatchDerived, everything works fine. It's like > 'this' > inside opDispatch didn't recognize its real type when in a base class. > > Hope you can help me. > Daniel