On Sunday, 21 August 2016 at 16:14:53 UTC, Zane wrote:
2) Does calling object.destroy() mean that the object is marked for future collection? If not, how can I ensure it is properly marked.
Because the GC is not of the incremental type, it can't perform any marking outside of a stop-the-world mark/sweep cycle. Instead, what `destroy()` does is finalise an object: that is, runs any destructors and puts it in an invalid state — in particular, all pointers contained within the object are nullified, so it doesn't reference any other objects.
When I say 'object' I mean anything; class instance, structure, array, primitive, whatever.