@oli Do you think you can explain #67251 a bit? My understanding is that we want to disallow
#[rustc_const_stable] functions in the standard library from using nightly-only features without
#[allow_internal_unstable]. Otherwise we would have no recourse if that feature was found to be unsound.
However, I don't understand why
#![feature(const_fn)] is involved?
Well, the thing was that if users used the feature gate, their functions got marked as
min_const_fn, now, without
allow_internal_unstable these functions are no longer
min_const_fn, thus requiring the
const_fn feature gate. We could probably come up with a scheme that "just allows" this without the
const_fn feature gate, but let's do that after the beta cutoff without any hurry
Ah okay. I'm trying to understand what exactly to do for loops, since it seems like a loop with an unconditional break will still be a min const fn unless it also has a false unwind. Maybe this is fine?
Yea seems fine to me, although if we were really strict this would require some additional trickery to carry the info down from HIR
But this is only a problem for libstd anyway, and who would use a loop with an unconditional break there
I'll stop fussing then :smile:
In that case, #67216 should be good to go