On Sun, 1 Sep 2019 20:46:07 +0200, Raphaël Gomès wrote: > > It wasn't trivial to fix leak_immutable() to be safe since we have to > > allow immutable operations (e.g. iter()) on the leaked reference. So > > let's mark it unsafe for now. Callers must take care of the returned > > object to guarantee the memory safety. > > > > I'll revisit this later. I think $leaked<T: 'static> could have a function > > that converts itself into $leaked<U: 'static> with a given FnOnce(&T) -> &U, > > where T is $inner_struct, and U is $iterator_type for example. > I like your idea for your next series on this issue, I think it's > possible to reduce the unsafety to a minimum.
Confirmed that it's doable with PoC-level code. I'll send a set of patches maybe next weekend. For reference, the lambda function should be FnOnce(&'static T) -> U, where U is Iter<'static, ..> for instance. _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel