/* 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;
}