//@ run-pass | |
#![allow(unreachable_code)] | |
// Regression test for #39808. The type parameter of `Owned` was | |
// considered to be "unconstrained" because the type resulting from | |
// `format!` (`String`) was not being propagated upward, owing to the | |
// fact that the expression diverges. | |
use std::borrow::Cow; | |
fn main() { | |
let _ = if false { | |
Cow::Owned(format!("{:?}", panic!())) | |
} else { | |
Cow::Borrowed("") | |
}; | |
} |