I have tried using NativeArray and Unity error is great at catching memory leaks. However it is getting out of hand when the class that is housing NativeArray is being in the other class in a big chain and turns out everything must implement `IDisposable` and have to remember to `.Dispose`. Things would be better if I had done ECS but a transition is needed. Having doing things in OOP all along there are so many places that I just let a newly created class instance goes out of scope for the GC to pick it up, thus left NativeArray dangling and Unity logs error. I have an idea to put all the NativeArray.Dispose() in the class's finalizer (~YourClass()) this way I would not have to propagate `IDisposable` to everything. Let the class instance variable being GC collected like usual and from there dispose all the insides. I log the finalizer method and it did get called when GC collects the class instance, however Unity checks and throws memory leak error one step before the finalizer call. So I want to ask what leads to this design decision? Could we check for memory leak after the finalizer? Also as a suggestion, the "It was allocated at line xxx" message is useful but some possible improvements : 1. Can we show something or some number which relates to an instance that is getting release causing memory leak. In my game when it shows "It was allocated at" they are all the same since I have only one place that creates NativeArray, however I want to at least see some differences between those message and see if how many of them came from the same instance release. I might be able to figure out something more. (More than following all of the possible usage of that class) 2. NativeArray allocated in a class field initializer show up on memory leak as "was allocated at line 0:" without file name. Can we at least show a file name?