/* REQUIRED_ARGS: -preview=dip1000 TEST_OUTPUT: --- fail_compilation/fix18575.d(27): Error: returning `s.foo()` escapes a reference to parameter `s` fail_compilation/fix18575.d(31): Error: returning `s.foo()` escapes a reference to parameter `s` fail_compilation/fix18575.d(35): Error: returning `s.abc()` escapes a reference to parameter `s` fail_compilation/fix18575.d(39): Error: returning `s.ghi(t)` escapes a reference to parameter `t` --- */ // https://issues.dlang.org/show_bug.cgi?id=18575 @safe: struct S { @safe: int x; void bar() { } auto foo() { return &this.bar; } auto def() { return &bar; } auto abc() { return &x; } auto ghi(ref S s) { return &s.bar; } } auto f(S s) { return s.foo(); } auto g(S s) { return s.foo(); } auto h(S s) { return s.abc(); } auto j(S s, S t) { return s.ghi(t); }