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

Reply via email to