]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gdc.test/fail_compilation/ice14096.d
d: Import dmd b8384668f, druntime e6caaab9, phobos 5ab9ad256 (v2.098.0-beta.1)
[thirdparty/gcc.git] / gcc / testsuite / gdc.test / fail_compilation / ice14096.d
CommitLineData
b4c522fa
IB
1/*
2TEST_OUTPUT:
3---
5fee5ec3
IB
4fail_compilation/ice14096.d(29): Error: cannot access frame pointer of `ice14096.main.Baz!((i) => i).Baz`
5fail_compilation/ice14096.d(23): Error: template instance `ice14096.foo!(Tuple!(Baz!((i) => i))).foo.bar!(t)` error instantiating
6fail_compilation/ice14096.d(40): instantiated from here: `foo!(Tuple!(Baz!((i) => i)))`
b4c522fa
IB
7---
8*/
9
10struct Tuple(Types...)
11{
12 Types expand;
13 alias expand this;
14 alias field = expand;
15}
16Tuple!T tuple(T...)(T args)
17{
18 return typeof(return)(args);
19}
20
21auto foo(T)(T t)
22{
23 bar!t();
24}
25
26auto bar(alias s)()
27{
28 // default construction is not possible for: Tuple!(Baz!(i => i))
29 typeof(s) p;
30}
31
32struct Baz(alias f)
33{
34 void g() {}
35}
36
37void main()
38{
39 auto t = tuple(Baz!(i => i)());
40 foo(t);
41}