2023-10-16 17:36:39 +00:00
|
|
|
// skip-filecheck
|
2022-08-21 04:47:53 +00:00
|
|
|
//@ unit-test: EarlyOtherwiseBranch
|
|
|
|
|
|
|
|
// FIXME: This test was broken by the derefer change.
|
2020-08-01 23:47:52 +00:00
|
|
|
|
|
|
|
// example from #68867
|
|
|
|
type CSSFloat = f32;
|
|
|
|
|
|
|
|
pub enum ViewportPercentageLength {
|
|
|
|
Vw(CSSFloat),
|
|
|
|
Vh(CSSFloat),
|
|
|
|
Vmin(CSSFloat),
|
|
|
|
Vmax(CSSFloat),
|
|
|
|
}
|
|
|
|
|
|
|
|
// EMIT_MIR early_otherwise_branch_68867.try_sum.EarlyOtherwiseBranch.diff
|
|
|
|
#[no_mangle]
|
2020-09-20 12:45:08 +00:00
|
|
|
pub extern "C" fn try_sum(
|
|
|
|
x: &ViewportPercentageLength,
|
|
|
|
other: &ViewportPercentageLength,
|
|
|
|
) -> Result<ViewportPercentageLength, ()> {
|
2020-08-01 23:47:52 +00:00
|
|
|
use self::ViewportPercentageLength::*;
|
|
|
|
Ok(match (x, other) {
|
|
|
|
(&Vw(one), &Vw(other)) => Vw(one + other),
|
|
|
|
(&Vh(one), &Vh(other)) => Vh(one + other),
|
|
|
|
(&Vmin(one), &Vmin(other)) => Vmin(one + other),
|
|
|
|
(&Vmax(one), &Vmax(other)) => Vmax(one + other),
|
|
|
|
_ => return Err(()),
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
try_sum(&ViewportPercentageLength::Vw(1.0), &ViewportPercentageLength::Vw(2.0));
|
|
|
|
}
|