//@ known-bug: #110395 // Demonstrates what's needed to make use of `?` in const contexts. #![crate_type = "lib"] #![feature(try_trait_v2)] #![feature(const_trait_impl, effects)] #![feature(const_try)] #![allow(incomplete_features)] use std::ops::{ControlFlow, FromResidual, Try}; struct TryMe; struct Error; impl const FromResidual for TryMe { fn from_residual(residual: Error) -> Self { TryMe } } impl const Try for TryMe { type Output = (); type Residual = Error; fn from_output(output: Self::Output) -> Self { TryMe } fn branch(self) -> ControlFlow { ControlFlow::Break(Error) } } const fn t() -> TryMe { TryMe?; TryMe } const _: () = { t(); };