d: Merge upstream dmd, druntime 26f049fb26, phobos 330d6a4fd.
[official-gcc.git] / gcc / testsuite / gdc.test / compilable / test9639.d
blobe79db9ecb81fc48b319d80311e50b0622807943f
1 class A { this(A) {} }
2 class B {}
3 class C {}
5 // two sibling nested functions in main
6 typeof(null) foo(alias fn)(A a) { fn(a); return foo!fn(B.init); }
7 typeof(null) foo(alias fn)(B b) { return foo!fn(A.init); }
9 // three sibling nested functions in main
10 typeof(null) bar(alias fn)(A a) { fn(a); return bar!fn(B.init); }
11 typeof(null) bar(alias fn)(B b) { return bar!fn(C.init); }
12 typeof(null) bar(alias fn)(C c) { return bar!fn(A.init); }
14 void main()
16 A a;
17 foo!((stuff){ new A(a); })(a);
18 bar!((stuff){ new A(a); })(a);