https://issues.dlang.org/show_bug.cgi?id=16180
[email protected] changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #1 from [email protected] --- (In reply to Maik Klein from comment #0) > I opened a stack overflow question which contains all the needed details > > http://stackoverflow.com/questions/37868594/disposing-a-class-with-an- > interface?lq=1 There a dispose overload that works with interface. It's available because you can retrieve the object that implements the interface using "cast(Object) itf". So to me the report is invalid: uint a; interface Bar{} class Foo: Bar { ~this(){a = 1;} } void main() { import std.experimental.allocator.mallocator; import std.experimental.allocator; auto f = Mallocator.instance.make!Foo(); Bar b = f; Mallocator.instance.dispose(b); assert(a == 1); } I think that on S.O you ignore what is done here https://github.com/dlang/phobos/blob/master/std/experimental/allocator/package.d#L1135 This is basically what allows to destroy an object from its interface. --
