/* TEST_OUTPUT: --- fail_compilation/ice14096.d(29): Error: cannot access frame pointer of ice14096.main.Baz!((i) => i).Baz fail_compilation/ice14096.d(23): Error: template instance ice14096.foo!(Tuple!(Baz!((i) => i))).foo.bar!(t) error instantiating fail_compilation/ice14096.d(40): instantiated from here: foo!(Tuple!(Baz!((i) => i))) --- */ struct Tuple(Types...) { Types expand; alias expand this; alias field = expand; } Tuple!T tuple(T...)(T args) { return typeof(return)(args); } auto foo(T)(T t) { bar!t(); } auto bar(alias s)() { // default construction is not possible for: Tuple!(Baz!(i => i)) typeof(s) p; } struct Baz(alias f) { void g() {} } void main() { auto t = tuple(Baz!(i => i)()); foo(t); }