1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
struct Base { int i; } struct A { Base base; alias base this; } struct B { A a; alias a this; } auto asGeneric(inout ref Base block) @nogc { return █ } B* thingie; auto foo() { return asGeneric(*thingie); }