/* TEST_OUTPUT: --- fail_compilation/nestedtempl2.d(22): Deprecation: function `nestedtempl2.B.func!(n).func` function requires a dual-context, which is deprecated fail_compilation/nestedtempl2.d(34): instantiated from here: `func!(n)` fail_compilation/nestedtempl2.d(34): Error: `this` is only defined in non-static member functions, not `test` fail_compilation/nestedtempl2.d(34): Error: need `this` of type `B` to call function `func` fail_compilation/nestedtempl2.d(35): Error: `this` is only defined in non-static member functions, not `test` fail_compilation/nestedtempl2.d(35): Error: need `this` of type `B` to make delegate from function `func` fail_compilation/nestedtempl2.d(37): Error: `this` is only defined in non-static member functions, not `test` fail_compilation/nestedtempl2.d(37): Error: need `this` of type `B` needed to `new` nested class `N` --- */ class B { int n; } void test() { auto func(alias a)() { return a; } class N(alias a) { } auto b = new B(); b.n = 1; func!(b.n)(); auto dg = &func!(b.n); new N!(b.n)(); }