// run-pass | |
#![allow(non_camel_case_types)] | |
use std::cell::Cell; | |
#[derive(Copy, Clone)] | |
enum newtype { | |
newvar(isize) | |
} | |
pub fn main() { | |
// Test that borrowck treats enums with a single variant | |
// specially. | |
let x = &Cell::new(5); | |
let y = &Cell::new(newtype::newvar(3)); | |
let z = match y.get() { | |
newtype::newvar(b) => { | |
x.set(x.get() + 1); | |
x.get() * b | |
} | |
}; | |
assert_eq!(z, 18); | |
} |