https://issues.dlang.org/show_bug.cgi?id=16747
Issue ID: 16747
Summary: Cannot have stack allocated classes in @safe code
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: regression
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
The following fails:
void foo() @safe {
scope o = new Object();
}
with:
Error: delete o is not @safe but is used in @safe function foo
because o is allocated on the stack and the destructor gets called. But in this
case there is no destructor, and no deallocation, so the unsafe delete call is
unnecessary.
This problem was introduced by a fix to:
https://issues.dlang.org/show_bug.cgi?id=16195
and change:
https://github.com/dlang/dmd/commit/e64ae1d3e5aa078a036242864a68499617c9b278
--