//@ known-bug: #110395 // FIXME check-pass // This is a non-regression test for const-qualification of unstable items in libcore // as explained in issue #67053. // const-qualification could miss some `const fn`s if they were unstable and the feature // gate was not enabled in libcore. #![stable(feature = "core", since = "1.6.0")] #![feature(staged_api, const_trait_impl)] enum Opt { Some(T), None, } impl Opt { #[rustc_const_unstable(feature = "foo", issue = "none")] #[stable(feature = "rust1", since = "1.0.0")] const fn unwrap_or_else T>(self, f: F) -> T { //FIXME ~^ ERROR destructor of //FIXME ~| ERROR destructor of match self { Opt::Some(t) => t, Opt::None => f(), //FIXME ~^ ERROR cannot call } } } fn main() {}