dmd/compiler/test/compilable/test23145.d

39 lines
817 B
D

/* TEST_OUTPUT:
---
compilable/test23145.d(117): Deprecation: `scope` allocation of `c` requires that constructor be annotated with `scope`
compilable/test23145.d(111): is the location of the constructor
compilable/test23145.d(124): Deprecation: `scope` allocation of `c` requires that constructor be annotated with `scope`
compilable/test23145.d(111): is the location of the constructor
---
*/
// https://issues.dlang.org/show_bug.cgi?id=23145
#line 100
class D
{
C c;
}
class C
{
D d;
int x=3;
this(int i) scope @safe @nogc;
this(D d) @safe @nogc;
}
C foo(D d)@nogc @safe
{
scope e = new C(1); // ok
scope c = new C(d); // deprecation
return c.d.c;
}
C bax(D d) @safe
{
scope e = new C(1); // ok
scope c = new C(d); // deprecation
return c.d.c;
}