http://d.puremagic.com/issues/show_bug.cgi?id=2811
Summary: mixin fields not visible inside mixin method Product: D Version: 2.027 Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzi...@digitalmars.com ReportedBy: 2kor...@gmail.com Let's start with code I'd like to write: struct Own(T) { void opAssign(ref Own other) { _ptr = other._ptr; other._ptr = null; } private T _ptr = null; } I'm trying to use it like this: alias Own!(Resource) ResourcePtr; but it causes template forward referencing all the time. So my next step is to workaround this issue: class Resource {} struct OwnT(T, Own) { void opAssign(ref Own other) { _ptr = other._ptr; other._ptr = null; } protected T _ptr = null; } struct ResourcePtr { mixin OwnT!(Resource, ResourcePtr); } But I'm getting the following errors: test.d(7): Error: no property '_ptr' for type 'ResourcePtr' test.d(7): Error: cannot implicitly convert expression (1) of type int to test.Resource test.d(7): Error: cannot cast int to test.Resource test.d(8): Error: no property '_ptr' for type 'ResourcePtr' test.d(8): Error: constant other._ptr is not an lvalue test.d(8): Error: cannot implicitly convert expression (null) of type void* to int --