I may be making a causal inference based on a correlation.  What I had read about the compile time guarantees in Rust indicated that escape analysis was being used to implement them, but I don&#x27;t know if I read that or assumed.<p>I hadn&#x27;t encountered Cyclone, but reading through a paper about it now, and it sounds a lot like reading about how Java uses escape analysis with its generational garbage collection to decide where to allocate objects.  In fact in 8 goes a lot farther, and it can eliminate monitors, memory fences, and copy constructors that have no observable side effects.<p>Of course if Java ever conservatively wrong (retaining a dead allocation), the GC will take care of it later.  In a language without a collector you have to be right in both directions.