https://issues.dlang.org/show_bug.cgi?id=18540
Issue ID: 18540 Summary: [scope] incorrect "escapes a reference to parameter e, perhaps annotate with return" Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: safe Severity: normal Priority: P2 Component: dmd Assignee: nob...@puremagic.com Reporter: c...@dawg.eu cat > bug.d << CODE module interpreter; import std.algorithm.mutation : move; struct S { string s; } struct Interpreter(Engine) { Engine _engine; S s; } Interpreter!Engine interpreter(Engine)(return scope Engine e) @system { return Interpreter!Engine(move(e)); } struct EchoEngine { @disable this(this); } void bug() { auto intp = interpreter(EchoEngine()); } CODE ---- dmd -c bug.d ---- Error: returning Interpreter(move(e), S(null)) escapes a reference to parameter e, perhaps annotate with return --